- 积分
- 18
- 回帖
- 0
- 西莫币
-
- 贡献
-
- 威望
-
- 存款
-
- 阅读权限
- 5
- 最后登录
- 1970-1-1
该用户从未签到
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在MATLAB中建立螺旋桨的模型,作为电机的负载。调用S函数出现问题,Output returned by S-function 'chazhi' in 'propeller/Subsystem/S-Function' during flag=3 call must be a real vector of length 2
S函数如下:
%插值运算
%输入量:u(1)=J;u(2)=Kt,u(3)=Kp;u(4)=J0;
%输出量:Kt0,Kp0
function[sys,x0,str,ts] = chazhi(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=0;
sizes.NumDiscStates=0;
sizes.NumOutputs=2;
sizes.NumInputs=28;
sizes.DirFeedthrough=1;
sizes.NumSampleTimes=1;
sys=simsizes(sizes);
x0=[];
str=[];
ts=[0,0];
%------------------------------------------------------
%状态变量导数子函数
function sys=mdlDerivatives(t,x,u)
%------------------------------------------------------
%输出子函数
function sys=mdlOutputs(t,x,u)
J=[u(1),u(2),u(3),u(4),u(5),u(6),u(7),u(8),u(9)];
Kp=[u(10),u(11),u(12),u(13),u(14),u(15),u(16),u(17),u(18)];
Kt=[u(19),u(20),u(21),u(22),u(23),u(24),u(25),u(26),u(27)];
J0=u(28);
J1=J0';
Kpj=interp1(J,Kp,J1,'cubic');
Ktj=interp1(J,Kt,J1,'cubic');
sys(1)=Kpj;
sys(2)=Ktj; |
|