SIMULINK仿真时 出现一个错误
在simulink仿真时,运行S函数出现了这个error:“Output returned by S-function 'sanz' in block 'try6E/S-Function' during flag=3 call must be a real vector of length 12”,各位高手知道是什么原因吗? 输出维数不一致回复 沙发 yufeng 的帖子
这个我也知道,就是不知道怎么解决,你有啥办法不?回复 沙发 yufeng 的帖子
function = sixy(t,x,u,flag)K=;
M=;
C=;
G=eye(6);
A=cat(1,cat(2,zeros(6,6),eye(6)),cat(2,-inv(M)*K,-inv(M)*C));
B=cat(1,zeros(6,6),-inv(M)*G);
C=eye(12);D=zeros(12,6);
switch flag,
case 0,
sizes = simsizes;
sizes.NumContStates = 12;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 12;
sizes.NumInputs = 6;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0=;
str=[];
ts=;
case 1,
sys=A*x+B*u;
case 3,
sys=C*x+D*u;
case {2,4,9},
sys = [];
end
我的输入是一个6行1列的矩阵,输出是12行1列的矩阵,输出后面接了个DEMUX,也设置为12个输出了,我的设置没问题啊,程序里面的矩阵相乘的行列数也是对应正确的啊,到底是什么问题? 程序没有问题 看是否外部输入输出有问题
回复 5楼 yufeng 的帖子
外部输入是一个6行1列的矩阵,输出是12行1列的矩阵,而且我在输出后面接了个DEMUX,也设置为12个输出了,输入输出应该也没问题啊,真不知道怎么办了,呵呵
页:
[1]