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

s函数报错

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
s函数报错“during flag=i call must be a real vector of length n” ,怎么解决?; \) O2 l, o) Z
代码如下:
( K  Z+ C4 T/ x5 @4 X4 Sfunction [sys,x0,str,ts] = PMSM_chaos_controller(t,x,u,flag)
; J( j) k# v% ?0 Yswitch flag,( O/ H, c8 T- u: o
    case 0,7 w& n8 v6 a7 ]- b' |
        [sys,x0,str,ts] = mdlIniticializeSizes;7 G( S, e1 q1 t+ F/ @1 d. d
    case 3,4 B6 P+ i, @- U8 E1 O: o
        sys = mdlOutputs(t,x,u);
7 ]5 N8 L# l( i% ]    case {1,2,4,9},5 w$ {. R  q4 {) r3 \
        sys = [];
, b# I2 B0 l" a) t* d% w: [+ W$ x7 D    otherwise,
: E0 h, l! I6 W6 P1 d+ w  [6 y7 w        DAStudio.error('Simulink:blocks:unhandledFlag',num2str(flag));+ j: f$ c* S7 K, u
end0 `" t: b7 ~5 {: F1 I
% q# |7 z; O4 R* t* a
function [sys,x0,str,ts] = mdlIniticializeSizes, h) F& q  w1 y( q" C- u
sizes = simsizes;
8 K- w, A0 u- |  x: Osizes.NumContStates  = 3;    %连续状态个数
% o& `. J, [. Gsizes.NumDiscStates  = 0;    %离散状态个数
' Q5 V5 X0 \! o9 i3 t0 f) xsizes.NumOutputs     = 3;    %输出变量个数$ m. P% j8 b0 u7 i  @6 ]! g6 }# g
sizes.NumInputs      = 9;    %输入信号个数, c" Q; y$ ]9 A4 ?
sizes.DiRFeedthrough = 1;    %输入直接传入输出信号否
7 }* S( @( t  D9 ~+ Dsizes.NumSampleTimes = 0;    % at least one sample time is neededWO  一般来说为1个/ C/ v( S' Z) V: |# N; P1 J9 y+ H
sys = simsizes(sizes);
) U- ?) w' o1 E% m) p$ l; Zx0 = [0.001 0.001 0.001];. ^' U# F) q+ Z. [) q) @
str = [];
+ F7 c  }4 Y" {4 R: z# m! cts = [];% [! O% |& I3 ?4 d# n$ c

/ x, S3 q$ t: Gfunction sys=mdlOutputs(t,x,u)
0 Y$ G; Y/ B2 u1 W& p& Ze1=u(1);e2=u(2);e3=u(3);
. t8 U0 N1 D! `; ss21=u(4);s22=u(5);s1=u(6);; v  Y9 X/ E: I7 `6 n1 W
es_w=u(9);
, k) A( N' Q) @- m; @: g) r- ?: ~$ Palpha = 0.8;5 [: ^9 C8 B# c& |5 [
alpha1 = 5/7; beta1 = 7/5;9 e% s; Q+ Z6 G/ I) N' x$ u2 d% |
alpha2 = 7/9; beta2 = 9/7;
6 B2 V- ~- R$ J- ~- b- m6 R8 \k1 = 1;# x# R3 t4 r9 S; r0 t. G
k2 = 1.2;# l* f. p* h' A3 b2 f
miu = 10;
/ s; Y, F+ W4 o( G+ vdelta = 5.46;
( t# ?$ t8 _$ s7 ]  i: D! J%assert(all(imag(u)==0), 'u is imaginary or nan');不起作用; W. e: }! d0 x4 V8 a) x) ]8 c
if e3==07 b7 [/ Q0 q3 ]4 K/ l4 A! A. {
    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;
6 @% ]2 e) V  d) J    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;
& T$ E& V% R* j. Q: u1 E/ {: h! L    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' v6 i" Z, M# E: h+ D
else
  A9 T- }3 I  A( X' g    u1 = 0;/ V4 F4 u2 S' i! M7 {
    u2 = 0;
4 M+ ]' \7 H: @    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  u! [* f# ?8 w( b+ K
end
9 D; Q9 z8 a2 Q: gsys(1) = u1;
$ S$ P3 x: m$ Q7 K, H" wsys(2) = u2;" h( f/ T) s5 g- x9 E; D, i) x+ `
sys(3) = u3;: s' x" T' }, Z  \- c
复制代码

该用户从未签到

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

该用户从未签到

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

. s% h7 d4 w) o; H你这个没有用到状态变量吧

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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