毕业设计的一个MATLAB的仿真问题,求解答

function[sys,x0,str,ts]=spacemodel(t,x,u,flag)switchflag,case0,[sys,x0,str,ts]=mdlIni... function [sys,x0,str,ts] = spacemodel(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 = 0;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 1;
sizes.NumInputs = 3;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 0;
sys = simsizes(sizes);
x0 = [];
str = [];
ts = [];
function sys=mdlOutputs(t,x,u)
thd=0.1*sin(t);
dthd=0.1*cos(t);
ddthd=-0.1*sin(t);

x1=u(2);
x2=u(3);
e=thd-x1;
de=dthd-x2;

c=15;
s=c*e+de;

g=9.8;mc=1.0;m=0.1;l=0.5;
T=l*(4/3-m*(cos(x1))^2/(mc+m));

fx=g*sin(x1)-m*l*x2^2*cos(x1)*sin(x1)/(mc+m);
fx=fx/T;
gx=cos(x1)/(mc+m);
gx=gx/T;
xite=0.20;

M=2;
if M==1
ut=1/gx*(-fx+ddthd+c*de+xite*sign(s));
elseif M==2 %Saturated function
delta=0.05;
kk=1/delta;
if abs(s)>delta
sats=sign(s);
else
sats=kk*s;
end
ut=1/gx*(-fx+ddthd+c*de+xite*sats);
end
sys(1)=ut;

请问为什么执行后会出现Error using chap13_6ctrl (line 2)
Not enough input arguments.求大神指点,帮我改好了,财富值好说
展开
 我来答
我不仅仅是笨
2016-05-17
知道答主
回答量:9
采纳率:0%
帮助的人:9.6万
展开全部

  问题:这是一个函数,Not enough input arguments 的意思是输入的参数不够。这里的参数有 t,x,u,flag共四个,都需要你输入。

  解决方法:


  方式1:调试函数的时候直接 run运行 然后写入参数回车 即可(在命令窗口能看到结果),如图1所示;(如果是新建的mat文件 需要需要以函数名命名 “spacemodel.m”)


                 

                 

                                             图1 函数直接调试


  方式2:保存好函数之后,直接在命令窗口(如图2所示)或者在你的主程序里调用即可。


              

                                                    图2 命令窗口调试


  希望对你有所帮助。。。

上海华然企业咨询
2024-10-28 广告
在上海华然企业咨询有限公司,我们深知模型训练数据集对于AI项目成功至关重要。我们的数据集构建遵循高标准,确保数据质量、多样性与代表性。这些数据集涵盖广泛行业案例,如市场趋势分析、客户行为预测等,通过精心筛选与标注,为机器学习模型提供丰富的学... 点击进入详情页
本回答由上海华然企业咨询提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式