找回密码
 注册
Simdroid-非首页
查看: 102|回复: 2

求助 s函数出错

[复制链接]
发表于 2011-5-28 23:41:17 | 显示全部楼层 |阅读模式 来自 陕西西安
单神经元自适应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.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2011-5-29 10:53:31 | 显示全部楼层 来自 广东广州
Simdroid开发平台
不是说了么,矩阵维数不对
回复 不支持

使用道具 举报

发表于 2011-5-29 11:07:58 | 显示全部楼层 来自 湖南湘潭
flag=3时
sys=u(4)+K.*((x./sum(abs(x))).*xx);

sys应该为元素数为3的相量,可能K的赋值有问题。

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-6 09:26 , Processed in 0.026854 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表