| 查看: 5288 | 回复: 0 | ||
mln5431铜虫 (初入文坛)
|
[求助]
请问simulink中出现这个错误如何解决?求指教。
|
|
请问simulink中出现这个错误怎么解决?求指教。 Error in 'CSTR_ISMCO/S-Function' while executing MATLAB S-function 'CSTR_sFun', flag = 1 (derivatives), at time 0.0. 试图访问 u(2);由于 numel(u)=1,索引超出范围。 Component: Simulink | Category: Block error 该模块原程序如下 function [sys,x0,str,ts]=mdlInitializeSizes sizes = simsizes; sizes.NumContStates = 4; sizes.NumDiscStates = 0; sizes.NumOutputs = 3; sizes.NumInputs = 2; sizes.DirFeedthrough = 0; sizes.NumSampleTimes = 1; % at least one sample time is needed sys = simsizes(sizes); x0 = [0.5 3 0 0]; str = []; ts = [0 0]; function sys=mdlDerivatives(t,x,u) u=u(1); filter=u(2); %***********CSTR parameters************** alfa=1.0; beta=0.3; gamma=20; b=-8.0; Da=0.072; alfa1=0.5; alfa2=0.5; %system states x1=x(1); x2=x(2); xx1=x(3); xx2=x(4); y=x2; %************* dynamic equation ********************** dx1=-alfa*x(1)+Da*(1-x(1))*exp(gamma*x(2)/(gamma+x(2))); dx2=-alfa*x(2)-b*Da*(1-x(1))*exp(gamma*x(2)/(gamma+x(2)))+beta*u-beta*x(2); sys(1)= dx1; sys(2)= dx2; %********** observer ********** xxx1=xx1-alfa2*filter/(-b*Da*exp(gamma*xx2/(gamma+xx2))); dxx1=-alfa*xx1+Da*(1-xx1)*exp(gamma*xx2/(gamma+xx2))+alfa1*sign(xxx1-xx1); dxx2=-alfa*xx2-b*Da*(1-xx1)*exp(gamma*xx2/(gamma+xx2))+beta*u-beta*xx2+alfa2*sign(y-xx2); sys(3)=dxx1; sys(4)=dxx2; function sys=mdlOutputs(t,x,u) y=x(2); f=sign(y-x(4)); sys(1)=x(3); sys(2)=x(4); sys(3)=f; |
» 猜你喜欢
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有5人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有6人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有3人回复
为什么中国大学教授们水了那么多所谓的顶会顶刊,但还是做不出宇树机器人?
已经有3人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有4人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有3人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有4人回复
“人文社科而论,许多学术研究还没有达到民国时期的水平”
已经有5人回复
过年走亲戚时感受到了所开私家车的鄙视链
已经有11人回复
什么是人一生最重要的?
已经有4人回复














回复此楼