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

s函数报错

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
s函数报错“during flag=i call must be a real vector of length n” ,怎么解决?( Y8 r* m, l' h6 B
代码如下:" b8 }  E! \. N8 {4 |* D( L  G# ?
function [sys,x0,str,ts] = PMSM_chaos_controller(t,x,u,flag)
/ J3 ~- Q5 t2 U6 N5 L/ P  ~, Xswitch flag,
  `. m' a) F6 D  Z2 h( ]! z) q7 J    case 0,
  F. D3 T6 j% `3 h( V3 O- W        [sys,x0,str,ts] = mdlIniticializeSizes;
& e  c' L) O. _' q8 {6 L8 ?    case 3," `1 S% C$ N. @9 e1 \1 {
        sys = mdlOutputs(t,x,u);) O1 A# w4 ?' m. b4 C% H
    case {1,2,4,9},
) c2 y; I& _( v8 @  y        sys = [];: {  k8 a1 f, f' n$ L
    otherwise,2 d( u; T' n# @% \
        DAStudio.error('Simulink:blocks:unhandledFlag',num2str(flag));; r# T, _4 a$ P8 g- h
end% @( l: I# M# q

6 U2 f; i( B; E" }0 nfunction [sys,x0,str,ts] = mdlIniticializeSizes% R3 k$ ~& R/ o, Z1 S  U* R
sizes = simsizes;
. s  _+ A0 l9 x* d- Asizes.NumContStates  = 3;    %连续状态个数/ D) q0 w& q: L) F* W. g: Y* Y2 o
sizes.NumDiscStates  = 0;    %离散状态个数% a* l2 }. v# g' w! v9 T
sizes.NumOutputs     = 3;    %输出变量个数
$ y) h1 E! }3 h# m6 d3 ~; ?" ]! Msizes.NumInputs      = 9;    %输入信号个数
; A3 m; y- p* z; w/ ksizes.DiRFeedthrough = 1;    %输入直接传入输出信号否6 Z6 ~6 v# H* |6 H+ s1 ]( s8 q
sizes.NumSampleTimes = 0;    % at least one sample time is neededWO  一般来说为1个: T3 F: E" b* G$ }6 D: s9 K
sys = simsizes(sizes);; p# x7 X" s- X! {
x0 = [0.001 0.001 0.001];
( |( a+ D9 T0 E9 Q- F3 cstr = [];
9 ~+ B$ S) c' i+ U& Zts = [];
$ K4 e: n* K' X5 ?" X
/ }: {5 s! w$ X8 zfunction sys=mdlOutputs(t,x,u)  c: G9 s& W' j( {. q8 E' `5 H" d
e1=u(1);e2=u(2);e3=u(3);* Q  p+ P7 a$ a% H  f
s21=u(4);s22=u(5);s1=u(6);- v7 ~* B: o3 q2 q0 C
es_w=u(9);5 R  h7 w% w5 Y0 J$ X& o6 O
alpha = 0.8;
4 l: o) ^! o: L7 x/ a. {/ P$ Ralpha1 = 5/7; beta1 = 7/5;
( d/ J3 x3 `* e1 S. B! n' \% u2 Yalpha2 = 7/9; beta2 = 9/7;3 `6 ^  v  L6 g+ q, p
k1 = 1;: `) A- D' c9 m2 s% J: O& a
k2 = 1.2;1 v# |6 h6 }% _7 N! p/ k
miu = 10;
* Y. n9 x3 B! b9 L+ l: z: Pdelta = 5.46;; ?# S$ U, K9 b3 l# t0 M
%assert(all(imag(u)==0), 'u is imaginary or nan');不起作用8 m; Q- Z4 I0 o0 q1 j
if e3==0
6 J; w% M- s) t* ^0 u  x    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;
7 a* p  r) o0 i; A8 Y+ }6 t    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;% I* g2 W% n" c" 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;, x1 w7 Y6 }4 e6 m) `7 P
else; u7 n7 m/ M$ a7 N! n
    u1 = 0;
( o4 B9 C% H! k) n8 x/ Y% e2 X    u2 = 0;
5 B  J' a9 r9 ?  t$ s7 S/ O    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;0 M% N  k* u( F' z9 _
end
6 l- B& Q9 ^- O! S* N. qsys(1) = u1;
' E9 g1 L9 e1 H. Psys(2) = u2;. a: z' T" D% I
sys(3) = u3;) l: z+ Z7 [( K. ^
复制代码

该用户从未签到

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

该用户从未签到

3#
发表于 2020-9-28 13:21 | 只看该作者
( N2 G# R! l/ R8 N% H- Q
你这个没有用到状态变量吧

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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