- 积分
- 0
- 注册时间
- 2008-5-20
- 仿真币
-
- 最后登录
- 1970-1-1
|
单神经元自适应pid控制。
function[sys,x0,str,ts]=mhebb(t,x,u,flag,K,ni,np,nd)
switch flag,
case 0,
[sys,x0,str,ts]=mdlInitializeSizes;
case 2,
sys=mdlUpdate(t,x,u,ni,np,nd);
case 3,
sys=mdlOutputs(t,x,u,K);
case {1,4,9},
sys=[];
otherwise
error(['Unhandled flag=',num2str(flag)]);
end
function[sys,x0,str,ts]=mdlInitializeSizes
sizes=simsizes;
sizes.NumContStates =0;
sizes.NumDiscStates =3;
sizes.NumOutputs =1;
sizes.NumInputs =4;
sizes.DirFeedthrough=1;
sizes.NumSampleTimes=1;
sys=simsizes(sizes);
x0=[0.4,0.4,0.4]';
str=[];
ts=[-1 0];
function sys=mdlUpdate(t,x,u,ni,np,nd)
sys(1)=x(1)+ni.*u(1).*u(4).*u(1);
sys(2)=x(2)+np.*u(1).*u(4)+(u(1)-u(2));
sys(3)=x(3)+nd.*u(1).*u(4).*(u(1)-2.*u(2)+u(3));
function sys=mdlOutputs(t,x,u,K)
xx=[u(1),u(1)-u(2),u(1)+u(3)-2*u(2)];
%yy=abs(x(1))+abs(x(2))+abs(x(3));
sys=u(4)+K.*((x./sum(abs(x))).*xx);
最后一行有问题:
Error in 'untitled/Subsystem/S-Function' while executing M-File S-function 'mhebb', flag = 3 (output), at time 0. MATLAB error message:
Matrix dimensions must agree.
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|