function [sys,x0,str,ts]=fuz_pid(t,x,u,flag,T,aFuz,fx0,gam)
switch flag
case 0,
[sys,x0,str,ts]=mdlInitializesizes(T);
case 2
sys=mdlUpdates(x,u);
case 3
sys=mdlOutouts(x,u,T,aFuz,fx0,gam);
case{1,4,9}
sys=[];
otherwise
error(['Unhandled flag=',num2str(flag)]);
end;
function [sys,x0,str,ts]=mdlInitializesizes(T)
sizes=simsizes;
sizes.NumContStates=0;
sizes.NumDiscStates=3;
sizes.NumOutputs=4;
sizes.NumInputs=2;
sizes.DirFeedthrough=0;
sizes.NumSampleTimes=1;
sys=simsizes(sizes);
x0=zeros(3,1);
str=[];
ts=[T,0];
function sys=mdlUpdates(x,u)
sys=[u(1);x(2)+u(1);u(1)-u(2)];
function sys=mdlOutputs(x,u,T,aFuz,fx0,gam)
aFuz=readfis('fuz_pid.fis');
Kpid=fx0+gam(:).evalfis(x([1,3]),aFuz)';
sys=[Kpid'*x;Kpid];
运行Simulink模块会出现Error evaluating parameter 'afuz' in 'fuz_pid/Subsystem/S-Function': Undefined function or variable 'afuz'..这样的错误