Matlab Simulink中的 S函数报错,One or more output arguments not assigned during call to .程序如下,两输入三输出,实现根据输入量不同分段计算.检查了很多遍不知道哪里错了.【请高手告知如何具体修改,最好
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 06:16:18
![Matlab Simulink中的 S函数报错,One or more output arguments not assigned during call to .程序如下,两输入三输出,实现根据输入量不同分段计算.检查了很多遍不知道哪里错了.【请高手告知如何具体修改,最好](/uploads/image/z/11745361-1-1.jpg?t=Matlab+Simulink%E4%B8%AD%E7%9A%84+S%E5%87%BD%E6%95%B0%E6%8A%A5%E9%94%99%2COne+or+more+output+arguments+not+assigned+during+call+to+.%E7%A8%8B%E5%BA%8F%E5%A6%82%E4%B8%8B%2C%E4%B8%A4%E8%BE%93%E5%85%A5%E4%B8%89%E8%BE%93%E5%87%BA%2C%E5%AE%9E%E7%8E%B0%E6%A0%B9%E6%8D%AE%E8%BE%93%E5%85%A5%E9%87%8F%E4%B8%8D%E5%90%8C%E5%88%86%E6%AE%B5%E8%AE%A1%E7%AE%97.%E6%A3%80%E6%9F%A5%E4%BA%86%E5%BE%88%E5%A4%9A%E9%81%8D%E4%B8%8D%E7%9F%A5%E9%81%93%E5%93%AA%E9%87%8C%E9%94%99%E4%BA%86.%E3%80%90%E8%AF%B7%E9%AB%98%E6%89%8B%E5%91%8A%E7%9F%A5%E5%A6%82%E4%BD%95%E5%85%B7%E4%BD%93%E4%BF%AE%E6%94%B9%2C%E6%9C%80%E5%A5%BD)
Matlab Simulink中的 S函数报错,One or more output arguments not assigned during call to .程序如下,两输入三输出,实现根据输入量不同分段计算.检查了很多遍不知道哪里错了.【请高手告知如何具体修改,最好
Matlab Simulink中的 S函数报错,One or more output arguments not assigned during call to .
程序如下,两输入三输出,实现根据输入量不同分段计算.检查了很多遍不知道哪里错了.【请高手告知如何具体修改,最好把修正后的程序贴上,】
function [sys,x0,str,ts] = sys(t,x,u,flag)
switch flag,
case 0,
[sys,x0,str,ts]=mdlInitializeSizes;
case 3,
sys=mdlOutputs(t,x,u);
case{1,2,4}
sys=[];
case 9,
sys=mdlTerminate(t,x,u);
otherwise
error(['Unhandled flag=',num2str(flag)]);
end
function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates =0;
sizes.NumDiscStates =0;
sizes.NumOutputs =3;
sizes.NumInputs =2;
sizes.DirFeedthrough =2;
sizes.NumSampleTimes =1;
sys= simsizes(sizes);
x0 =[];
str =[];
ts =[0 0];
function sys=mdlOutputs(t,x,u)
if (u(2)>=0&u(2)=pi/3&u(2)=2*pi/3&u(2)=pi&u(2)=4*pi/3&u(2)=5*pi/3&u(2)
Matlab Simulink中的 S函数报错,One or more output arguments not assigned during call to .程序如下,两输入三输出,实现根据输入量不同分段计算.检查了很多遍不知道哪里错了.【请高手告知如何具体修改,最好
1.你的程序只用了output函数,所以大可不必用s-function,Embedded MATLAB Function足矣,s-function检查起来很麻烦.
2.给几个建议.
a.case{1,2,4,9}取消后面的mdlTerminate
b.sizes.NumSampleTimes =0;ts =[];
c.最后一个elseif改成else
再试试.
3.glusera9216 说对一半.要用仿真调试,光看很麻烦.不过他不懂s-function