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

s函数报错

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
s函数报错“during flag=i call must be a real vector of length n” ,怎么解决?0 r9 Q  r5 G  t! F+ `
代码如下:( {6 G9 \5 k- N* m; J
function [sys,x0,str,ts] = PMSM_chaos_controller(t,x,u,flag)1 m, y) V# A; P/ z( v
switch flag,
6 p& ?6 [( Q9 a& Q: q$ o2 |# [# S    case 0,
9 c- O  x# m% `        [sys,x0,str,ts] = mdlIniticializeSizes;
5 C4 A# n! ~1 J/ N    case 3,
9 v2 N5 ?2 i7 J& A% V; v        sys = mdlOutputs(t,x,u);
, s% V5 x0 D3 U    case {1,2,4,9},3 o, }- P9 ^1 @" a4 Y2 D& |. P. R
        sys = [];
) r; O  G6 @- Z  c4 r! Z( Y3 A    otherwise,
2 Q8 s+ O2 K& l2 \/ ?* l! q        DAStudio.error('Simulink:blocks:unhandledFlag',num2str(flag));
# C0 _& r7 s" Z" q, ~* t) kend
8 A+ J# D4 _0 m! Z" L  j- K; b6 l# k6 G
function [sys,x0,str,ts] = mdlIniticializeSizes
' o% x+ n( o; r6 f1 r3 _4 nsizes = simsizes;
5 D0 Y/ o% {# rsizes.NumContStates  = 3;    %连续状态个数
% h9 J, D3 |1 Bsizes.NumDiscStates  = 0;    %离散状态个数
6 Q6 Q9 ?; z& n8 q" ^sizes.NumOutputs     = 3;    %输出变量个数' h; L/ y% n, x8 u3 v
sizes.NumInputs      = 9;    %输入信号个数" Z: W( r. c( M5 [2 w
sizes.DiRFeedthrough = 1;    %输入直接传入输出信号否
/ _/ u2 Y0 D+ R. d  y, v, Ssizes.NumSampleTimes = 0;    % at least one sample time is neededWO  一般来说为1个# s9 t3 a4 v( S& s
sys = simsizes(sizes);) m3 b" z( Q  P
x0 = [0.001 0.001 0.001];
8 C6 C# _. _* a8 lstr = [];
* h* v8 c6 J0 E$ ?ts = [];
9 {5 H7 M% k5 Z  Y& G9 v; v1 z* l9 W+ F
function sys=mdlOutputs(t,x,u)6 t# {: P( o4 y0 _1 {/ V" ?
e1=u(1);e2=u(2);e3=u(3);2 _/ q# z9 [1 J/ Q
s21=u(4);s22=u(5);s1=u(6);1 |6 E8 B9 w) S7 e+ D
es_w=u(9);( d% ^& }, f/ O* B
alpha = 0.8;1 n9 `$ z5 A$ r  U
alpha1 = 5/7; beta1 = 7/5;4 \2 }! [1 V( T
alpha2 = 7/9; beta2 = 9/7;
3 x0 F, K7 }) H% u, ok1 = 1;
  y0 P8 ~% Z) z( Z% k* G2 _k2 = 1.2;3 W" Y) z& ]$ c. `% N8 l, i5 B
miu = 10;
( X6 Z5 B) r1 k7 _! M; L3 Kdelta = 5.46;) Y$ h- u/ f) i% p0 T
%assert(all(imag(u)==0), 'u is imaginary or nan');不起作用- b( V4 R7 V( P. J
if e3==0- P4 d% c/ D; q. }% }+ Y
    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;' s  J+ M1 e% H4 ^$ E5 J0 f" _
    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;
, |9 p! J: _4 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;
6 s6 a3 B# b7 |- _$ S! Yelse  z5 u$ \/ F% R' N, k' T
    u1 = 0;4 J, M& E! |8 F) R( H
    u2 = 0;2 c) s+ u& q! t4 y- h0 ]
    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;
7 B' O. q0 E. W3 l% Y/ oend5 Q+ O; p: p/ Z$ Z$ s: C4 e1 b- g
sys(1) = u1;3 Z5 W) n- [" `0 E
sys(2) = u2;' Y2 N) r( K  A* q
sys(3) = u3;( D% l) D7 ]  _; U
复制代码

该用户从未签到

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

该用户从未签到

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

, J& F! }  ]& I3 c  B你这个没有用到状态变量吧

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 12:43 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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