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

s函数报错

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
s函数报错“during flag=i call must be a real vector of length n” ,怎么解决?" \* C1 I$ b0 }, d0 N5 j% n
代码如下:
+ f' e8 d, |$ X$ u; Z- yfunction [sys,x0,str,ts] = PMSM_chaos_controller(t,x,u,flag)
' [: q% F4 N: ]( K/ p+ d8 `+ |switch flag,! E- w# c3 G, d
    case 0,
8 ~3 W& F+ q3 _% C  x        [sys,x0,str,ts] = mdlIniticializeSizes;) O# z. q9 e4 T/ z
    case 3,
' ]' {) c, S* Y* N* Y  a        sys = mdlOutputs(t,x,u);
! P; T( \& w! C0 \3 q+ k4 u    case {1,2,4,9},+ W" w& |6 l( b- @' |3 k+ A
        sys = [];
7 e) e! e: l7 j2 M; x& \    otherwise," X* {% P' ?, m
        DAStudio.error('Simulink:blocks:unhandledFlag',num2str(flag));
' n( G3 _' r# g2 N8 o  z8 n2 nend
5 v( I* e/ a; S
9 e8 u) S) N& v3 t, rfunction [sys,x0,str,ts] = mdlIniticializeSizes
0 d) h4 I( D! W/ w$ t8 Isizes = simsizes;$ Z, r/ u+ w$ y: j  @6 u5 V
sizes.NumContStates  = 3;    %连续状态个数3 v5 N8 @# N, _# w; A5 U8 r7 V
sizes.NumDiscStates  = 0;    %离散状态个数
3 y+ o3 \" L* q9 s( d+ V& Hsizes.NumOutputs     = 3;    %输出变量个数# i+ B; \8 m7 X  r9 J. _, r
sizes.NumInputs      = 9;    %输入信号个数4 e! m+ E, d( n- l; b1 P( f0 h
sizes.DiRFeedthrough = 1;    %输入直接传入输出信号否
9 ?$ h$ Y& |: d3 y2 k$ Esizes.NumSampleTimes = 0;    % at least one sample time is neededWO  一般来说为1个
; Y5 e# W$ @0 y! D" K4 E( {sys = simsizes(sizes);1 s7 s" J5 v' W0 U
x0 = [0.001 0.001 0.001];" o/ W% P) P" H2 V
str = [];
6 o- E3 n+ D% T+ ^; y& J* h9 Uts = [];
. I+ F% N8 t  a% x. f4 E- Y0 l; J- s! W0 f
function sys=mdlOutputs(t,x,u)' g) g& r. W/ f, ?; v
e1=u(1);e2=u(2);e3=u(3);+ g, L+ n% W0 Q6 j4 \0 n+ n
s21=u(4);s22=u(5);s1=u(6);
% Z+ U: S5 i5 X& t( Ves_w=u(9);
4 n8 A1 J! `3 ?alpha = 0.8;
& r, e; r  S8 h  valpha1 = 5/7; beta1 = 7/5;: b, O* J5 R4 B" h/ v
alpha2 = 7/9; beta2 = 9/7;% b* @- F" Q2 T( j% c
k1 = 1;/ H( O0 `! F+ b8 h
k2 = 1.2;: M1 _, H7 L2 _! \$ R
miu = 10;
6 J  W. Z" j; t" s7 v% Ndelta = 5.46;
' Z% b: n2 U" q! R4 M/ [; R! Q%assert(all(imag(u)==0), 'u is imaginary or nan');不起作用( x) H! |3 w/ E6 n
if e3==0
9 Z- K$ _* Y( E" p8 \$ I    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;
& w$ D) G$ l* {0 @& \    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;! e% n/ m$ N# {/ E" G* @* p
    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;
) s- l9 N2 ?- }2 }else
5 X9 p6 {# j- {% B0 b# Y    u1 = 0;
4 H+ L5 b0 y" O5 ^1 ~    u2 = 0;1 w; x4 k9 _) r+ h$ e# h" e
    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;* [) M- e3 n; t9 i( c3 I
end  L' h1 f! w: w; l; T# o
sys(1) = u1;
& F2 _: ^% ^- B7 m  J; Psys(2) = u2;
  s4 a' w, s! rsys(3) = u3;
4 r4 Q) s) K3 R% c8 x2 Q复制代码

该用户从未签到

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

该用户从未签到

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

  \' T" R3 j) t) _7 }- o你这个没有用到状态变量吧

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-2 17:17 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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