找回密码
 注册
关于网站域名变更的通知
查看: 400|回复: 4
打印 上一主题 下一主题

s函数报错

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-9-28 11:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
s函数报错“during flag=i call must be a real vector of length n” ,怎么解决?$ U+ s" O# o9 j% D" T& ^  n' ~
代码如下:' ^8 s9 ?6 L" _7 p/ y* v
function [sys,x0,str,ts] = PMSM_chaos_controller(t,x,u,flag)" N; M2 s: L. d
switch flag,
& H# h! \* `; T% z( V    case 0," ^! N7 F: b; `" j- h; B& t
        [sys,x0,str,ts] = mdlIniticializeSizes;: g) A6 `- z/ Q$ A$ I
    case 3,
6 v7 {. P5 w# G2 r! a        sys = mdlOutputs(t,x,u);
/ l- }5 y, h  t6 F. Y    case {1,2,4,9},
0 Z0 |7 _+ A1 ]% h        sys = [];
4 {) x/ B' Q! v    otherwise,8 V4 ~2 T& o7 g  ^& d9 f
        DAStudio.error('Simulink:blocks:unhandledFlag',num2str(flag));" N% ~% h: Z% w( X6 w! W
end, a! ^5 y0 Q, }( B/ x
, N: G  _1 ~& e
function [sys,x0,str,ts] = mdlIniticializeSizes9 q) ?$ t- d0 |7 J- M6 d
sizes = simsizes;5 ?2 K' V& i* \% g
sizes.NumContStates  = 3;    %连续状态个数4 y, m% J2 ~+ [2 j  [4 ]  @
sizes.NumDiscStates  = 0;    %离散状态个数2 P: w/ Z) ^' j! g$ c( A+ j) I- h
sizes.NumOutputs     = 3;    %输出变量个数8 j' [% f$ ^9 t/ j0 M, H
sizes.NumInputs      = 9;    %输入信号个数  F! W- _- I4 |( W
sizes.DiRFeedthrough = 1;    %输入直接传入输出信号否
8 z: L+ l9 _( V/ Z, Osizes.NumSampleTimes = 0;    % at least one sample time is neededWO  一般来说为1个' w) C1 e( p$ X. }9 z2 M
sys = simsizes(sizes);8 S+ e, f' A! ^4 n; i/ o. ?0 p5 g' A
x0 = [0.001 0.001 0.001];
0 C5 V  ]7 e4 _str = [];0 u7 B' X+ m! K5 k* o& y
ts = [];& q7 M+ e6 r$ F; S
6 [  }0 }& ]4 _/ K# T# C
function sys=mdlOutputs(t,x,u)
. d% _% Z7 L! R6 p8 me1=u(1);e2=u(2);e3=u(3);$ F& D: ]) {! `& Z% G
s21=u(4);s22=u(5);s1=u(6);
1 ?3 R. I" v6 A" D& Xes_w=u(9);
" ?, R4 t  W' a/ Y7 X3 a, K, qalpha = 0.8;' d# V$ X) }& w: n1 j5 _: S
alpha1 = 5/7; beta1 = 7/5;. i% O2 |5 P; j* ]% X
alpha2 = 7/9; beta2 = 9/7;
! \1 w2 i% Z% Yk1 = 1;0 X' y# j2 `! U9 g# h5 _0 }
k2 = 1.2;/ N1 y+ U8 r8 y* L7 W' x7 @" z
miu = 10;
- n; z4 D7 G0 q3 Mdelta = 5.46;! h* w1 G( u3 Z+ I! X# A  g1 c
%assert(all(imag(u)==0), 'u is imaginary or nan');不起作用
" \' m2 g1 [' H5 oif e3==0
9 r/ n8 K# `4 E$ O3 J2 \    u1 = e1 - es_w*e1 - 10*((abs(e1))^alpha)*sign(e1) - 10*e1 - k2*((abs(s21))^alpha2)*sign(s21) -k2*((abs(s21))^beta2)*sign(s21) - miu*s21;+ @9 l1 F, f' W$ s9 f; r( F* z
    u2 = e2 - es_w*e2 - 10*((abs(e2))^alpha)*sign(e2) - 10*e2 - k2*((abs(s22))^alpha2)*sign(s22) -k2*((abs(s22))^beta2)*sign(s22) - miu*s22;% T3 m' ?' r, X# i9 H' q& h2 N
    u3 = -delta*(e2-e3) - 10*((abs(e3))^alpha)*sign(e3) - 10*e3 - k1*((abs(s1))^alpha1)*sign(s1) -k1*((abs(s1))^beta1)*sign(s1) - miu*s1;( a' }: a/ Y9 T
else
9 G; g3 N+ u2 ]+ z/ j; |    u1 = 0;/ m! L5 O0 {# Y1 N) P* n; P: m% v
    u2 = 0;
9 `3 _, x, Q1 K$ j7 ]8 g    u3 = -delta*(e2-e3) - 10*((abs(e3))^alpha)*sign(e3) - 10*e3 - k1*((abs(s1))^alpha1)*sign(s1) -k1*((abs(s1))^beta1)*sign(s1) - miu*s1;5 ?$ x& L7 ]$ ]( Q7 Q
end
4 }4 D; x: n4 I# xsys(1) = u1;
2 l+ [5 ]% t4 k/ {sys(2) = u2;% ?- x+ O# K, `' s  t+ y9 D1 n
sys(3) = u3;- U# ?2 c8 R! |8 w0 q: A: c
复制代码

该用户从未签到

2#
发表于 2020-9-28 13:09 | 只看该作者
帮你顶一下

该用户从未签到

3#
发表于 2020-9-28 13:21 | 只看该作者

) }/ E% }' {. ?( v3 I3 P: ~你这个没有用到状态变量吧

该用户从未签到

4#
发表于 2020-9-28 14:01 | 只看该作者
你上传一下simulink仿真图?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 18:20 , Processed in 0.187500 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表