查看: 308|回复: 0|关注: 0

[未答复] 索引超出矩阵维度 S函数

[复制链接]

新手

5 麦片

财富积分


050


5

主题

5

帖子

0

最佳答案
  • 关注者: 1
发表于 2019-7-6 09:27:14 | 显示全部楼层 |阅读模式
求大神指导为什么这个S函数会出现索引超出维度,菜鸟不懂,求赐教
function[sys,x0,str,ts]=s_function(t,x,u,flag)

switch flag,

case 0,

   [sys,x0,str,ts]=mdlInitializeSizes;

case 3,

   sys=mdlOutputs(t,x,u);

case {1,2, 4, 9 }

    sys= [];

otherwise

   error(['Unhandled flag = ',num2str(flag)]);

end

function[sys,x0,str,ts]=mdlInitializeSizes

sizes = simsizes;

sizes.NumContStates  = 1;

sizes.NumDiscStates  = 0;

sizes.NumOutputs     = 1;

sizes.NumInputs      = 6;

sizes.DirFeedthrough = 0;

sizes.NumSampleTimes = 1;

sys=simsizes(sizes);

x0=[0];

str=[];

ts=[-1 0];

functionsys=mdlOutputs(t,x,u)

yd=u(1);

dyd=cos(t);

ddyd=-sin(t);

dddyd=-cos(t);

x1=u(2);

x2=u(3);

x3=u(4);

bite=1.8*10^9;

Ap=4.812*10^-4;

Vt=6.2*10^-5;

Cil=2.48815*10^-14;

Cel=1.666*10^-14;

Ctl=(Cil+Cel)/2;

z1=x1-yd;

k1=350;

k2=1700;

kv=1.33*10^-5;

k3=130;

k=50;

b=1000;

m=10;

p=840;

Cd=0.6;

l0=1.49*10^3;

Ps=12*10^6;

w=5.2*10^-3;

x22=-(k*x1+b*x2)/m+Ap/m*x3-d/m;

d=-600-50*sin(pi*t)+sign(x2);

afta1=-k1*z1;

dafta1=-k1*(x2-dyd);

ddafta1=-k1*(x22-ddyd);


z2=x2-dyd-afta1;

z22=x22-ddyd-k1*(x22-ddyd);

dgu=u(6);

ddgu=-l0*(m*x22+k*x1+b*x2-Ap*x3+dgu);

afta2=(k*x1+b*x2-(Ap-m)*ddyd+m*(-k2*z2+dafta1-z1)+dgu(6))/Ap;


dafta2=(k*x2+b*x22-(Ap-m)*dddyd+m*(-k2*z22+(ddafta1-(x(2)-dyd)+ddgu/Ap)));

z3=x3-ddyd-afta2;

delta=0.05;

kk=1/delta;

if abs(fun)>delta

   sats=sign(fun);

else

   sats=kk*s;

end

fun=4*bite*Ap/Vt*x2+4*bite*Ctl/Vt*x3+dddyd+dafta2-k3*z3-Ap/m*z2;

vv=4*bite*Cd*w*kv/(Vt*sqrt(p))*sqrt(Ps-sign(fun)*x3)

ut=fun/vv;

sys(1)=ut;


求大神指导为啥这个S函数出现矩阵索引超出维度

求大神指导为啥这个S函数出现矩阵索引超出维度

111111.docx

13.92 KB, 下载次数: 0

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

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