![]() |
[求助]s函数出错!
错误:Output returned by S-function 'feedback' in 'feedback_s/S-Function1' during flag=3 call must be a real vector of length 2.新手学习ing,此问题费解望高手不吝赐教!感谢!
|
回复: [求助]s函数出错!
此程序:
%S-function for continuous state equation function [sys,x0,str,ts]=feedback(t,x,u,flag) switch flag, %Initialization case 0, [sys,x0,str,ts]=mdlInitializeSizes; case 1, sys=mdlDerivatives(t,x,u); %Outputs case 3, sys=mdlOutputs(t,x,u); %Unhandled flags case {2, 4, 9 } sys = []; %Unexpected flags otherwise error(['Unhandled flag = ',num2str(flag)]); end %mdlInitializeSizes function [sys,x0,str,ts]=mdlInitializeSizes sizes = simsizes; sizes.NumContStates = 6; sizes.NumDiscStates = 0; sizes.NumOutputs = 2; sizes.NumInputs = 1; sizes.DirFeedthrough = 0; sizes.NumSampleTimes = 0; sys=simsizes(sizes); x0=[0,0,0,0,0,0]; str=[]; ts=[]; function sys=mdlDerivatives(t,x,u) %Friction Fc=0.28*1000; Fs=0.34*1000; vs=0.01; af=0.02; rou0=260; rou1=2.5; g=Fc+(Fs-Fc)*exp(-(x(2)/vs)^2)+af*x(2); sys(6)=x(2)-(rou0*abs(x(2))/g)*x(6); dt=rou0*x(6)+rou1*sys(6)+af*x(2); sys(1)=x(2); sys(2)=x(3); sys(3)=x(4); sys(4)=x(5); sys(5)=-0.0001e7*x(5)-0.0421e7*x(4)-1.3773e7*x(3)-2.9824e7*x(2)-5.9648e7*x(1)+u-dt; function sys=mdlOutputs(t,x,u) %Friction Fc=0.28*1000; Fs=0.34*1000; vs=0.01; af=0.02; rou0=260; rou1=2.5; g=Fc+(Fs-Fc)*exp(-(x(2)/vs)^2)+af*x(2); sys(6)=x(2)-(rou0*abs(x(2))/g)*x(6); dt=rou0*x(6)+rou1*sys(6)+af*x(2); sys(1)=-89.1739*x(4)-7.1578e4*x(3)-3.5786e7*x(2)+5.9648e7*x(1); sys(2)=dt; |
所有时间均为北京时间。现在的时间是 12:16。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.