24小时热门版块排行榜    

查看: 1194  |  回复: 3

zhangmingwei

新虫 (初入文坛)

[求助] 【求助】simulink程序滑模控制老是报错,已附上程序,谢谢

Error in 'untitled/S-Function' while executing MATLAB S-function 'zmwctrl2', flag = 0 (initialize), at start of simulation.

输入参数的数目不足。注:其中PL和Ps是同时运行的一个程序产生的
CODE:
function [sys,x0,str,ts]=zmwctrl2(t,x,u,Ps,PL,flag)
switch flag,
case 0,
    [sys,x0,str,ts]=mdlInitializeSizes;
case 1,
    sys=mdlDerivatives(t,x,u,Ps,PL);
case 3,
    sys=mdlOutputs(t,x,u,Ps,PL);
case {2, 4, 9 }
    sys = [];
otherwise
    error(['Unhandled flag = ',num2str(flag)]);
end
function [sys,x0,str,ts]=mdlInitializeSizes(t,x,u)
sizes = simsizes;
sizes.NumContStates  = 0;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 1;
sizes.NumInputs      = 5;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 0;
sys=simsizes(sizes);
x0=[];
str=[];
ts=[];
function sys=mdlOutputs(t,x,u,Ps,PL)
xd=u(1);
dxd=0.02*2*pi*cos(2*pi*t);
ddxd=-0.02*(2*pi)^2*sin(2*pi*t);
dddxd=-0.02*(2*pi)^3*cos(2*pi*t);
x=u(2);dx=u(3);ddx=u(4);dddx=u(5);
e=xd-x;
de=dxd-dx;
dde=ddxd-ddx;
ddde=dddxd-dddx;
c1=25;c2=25;Ee=1400e6; Kce=1.1615e-12;
A=pi*(0.048^2-0.032^2)/4; M=200;B=63.7;Vt0=A*0.1;
Vt0=A*0.1;K=120e3;Cdpi=0.62*pi*5e-3*sqrt(2/880);
s=c1*e+c2*de+dde;

f=-4*Ee*K*Kce*x/(M*Vt0)-(4*Ee*A^2+4*Ee*B*Kce+K*Vt0)*dx/(M*Vt0)-(4*Ee*M*Kce+BVt0)*ddx/(M*Vt0);
b=4*Ee*(A*6e-3)*Cdpi*sqrt(Ps-PL)/(M*Vt0);

ueq=1/b*(c1*de+c2*dde+ddde-f);
D=50;
xite=0.10;
H=D+xite;
usw=1/b*H*sign(s);

ut=ueq+usw;

sys(1)=ut;

CODE:
function [sys,x0,str,ts]=zmwplant2(t,x,u,flag)
switch flag,
case 0,
    [sys,x0,str,ts]=mdlInitializeSizes;
case 1,
    sys=mdlDerivatives(t,x,u);
case 3,
    sys=mdlOutputs(t,x,u);
case {2, 4, 9 }
    sys = [];
otherwise
    error(['Unhandled flag = ',num2str(flag)]);
end
function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates  = 4;   
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 1;
sizes.NumInputs      = 1;
sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 0;
sys=simsizes(sizes);
x0=[0,0,0,0];
str=[];
ts=[];
function sys=mdlDerivatives(t,x,u)
dt=9;
Ee=1400e6; Kce=1.1615e-12;
A=pi*(0.048^2-0.032^2)/4; M=200;B=63.7;Vt0=A*0.1;
Vt0=A*0.1;K=120e3;Cdpi=0.62*pi*5e-3*sqrt(2/880);
f=-4*Ee*K*Kce*x(1)/(M*Vt0)-(4*Ee*A^2+4*Ee*B*Kce+K*Vt0)*x(2)/(M*Vt0)-(4*Ee*M*Kce+BVt0)*x(3)/(M*Vt0);
b=4*Ee*A*(A*6e-3)*Cdpi*sqrt(Ps-PL)/(M*Vt0);
sys(1)=x(3);
sys(2)=f+b*u+dt;
sys(2)=x(4);
sys(1)=x(1);
sys(2)=x(2);
sys(3)=x(3);
sys(4)=x(4);

function sys=mdlOutputs(t,x,u)
sys(1)=x(1);
sys(2)=x(2);
sys(3)=x(3);
sys(4)=x(4)

回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : untitled.slx
  • 2017-05-17 10:38:27, 12.58 K

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangmingwei

新虫 (初入文坛)

2楼2017-05-20 12:01:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangmingwei

新虫 (初入文坛)

= =。。。。。
3楼2017-05-23 12:52:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

egpt

新虫 (初入文坛)

哥, 你的这个问题解决了没。我也碰到这个问题
拼搏
4楼2018-01-16 17:08:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zhangmingwei 的主题更新
信息提示
请填处理意见