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

s函数报错

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
s函数报错“during flag=i call must be a real vector of length n” ,怎么解决?6 @$ C, Q' W- v' S' b
代码如下:
; b0 G8 G+ ~- o. _# @6 p) {function [sys,x0,str,ts] = PMSM_chaos_controller(t,x,u,flag)' L3 f7 u# [6 f- P( t) X
switch flag,
+ r2 }( K: e( u( u! c, _$ Y    case 0,) V0 z! O5 {+ o  N9 e
        [sys,x0,str,ts] = mdlIniticializeSizes;
/ Z( i$ D7 C; b* }: ]' R" D    case 3,/ O6 J( ^7 y/ z* V9 j: @; Y
        sys = mdlOutputs(t,x,u);1 n7 O) `+ h4 |5 b- Y* Y. Q
    case {1,2,4,9},
& e- u( x! R: ?9 e        sys = [];1 F. O. M- }, F# [0 n+ t
    otherwise,# j, Z/ g# L$ |& @' `
        DAStudio.error('Simulink:blocks:unhandledFlag',num2str(flag));% v! N# @$ b$ Z4 x* h' y" `
end
8 N2 S; b) O. C! b: I8 Y  v* ~; N3 j5 O1 t7 {
function [sys,x0,str,ts] = mdlIniticializeSizes
/ G: M* ^! N  u# R7 U' g% H, Z; o$ U3 Asizes = simsizes;
4 k8 W8 ~. @  o0 W( esizes.NumContStates  = 3;    %连续状态个数5 y0 V6 m8 N! |! j  m
sizes.NumDiscStates  = 0;    %离散状态个数5 a, L" V+ s7 F
sizes.NumOutputs     = 3;    %输出变量个数
" c6 |4 r8 y: m, k5 A. `! D- Esizes.NumInputs      = 9;    %输入信号个数
2 W4 n! j. d' q5 q9 ^6 Gsizes.DiRFeedthrough = 1;    %输入直接传入输出信号否2 {% J+ k* t5 ?; p: a% ?
sizes.NumSampleTimes = 0;    % at least one sample time is neededWO  一般来说为1个
  l" ?# Q8 b) Y3 Y( D( Vsys = simsizes(sizes);
9 I& u8 U& {9 Z% X# Y+ xx0 = [0.001 0.001 0.001];" q7 d" D7 t7 Z$ m# B, m
str = [];$ R; P% I$ [& r7 K3 _
ts = [];  f+ x2 W1 F8 z4 {# P3 d8 }
7 x- p7 G' Q1 b- p
function sys=mdlOutputs(t,x,u)$ {/ l" l% Z8 L% g3 R
e1=u(1);e2=u(2);e3=u(3);+ g8 O1 g/ J% E% H) s5 p) I- |
s21=u(4);s22=u(5);s1=u(6);! o3 C, A4 I3 ~: ]6 E+ |7 f
es_w=u(9);
  r6 d& w5 U& w) j6 B3 \) d% Xalpha = 0.8;
7 s, G! b0 s, B: L+ H5 g& _# dalpha1 = 5/7; beta1 = 7/5;5 [0 s5 I5 z. W/ a3 P
alpha2 = 7/9; beta2 = 9/7;3 _1 i0 [8 k; `; K3 x) \
k1 = 1;- I* O( g( N6 e7 H
k2 = 1.2;
! G+ L9 T# W4 g6 I" @5 ~' k; H$ W$ kmiu = 10;
" B+ _' T; ~: O/ k( Jdelta = 5.46;6 N' _; R7 C$ a+ o3 U3 r# E) X$ b
%assert(all(imag(u)==0), 'u is imaginary or nan');不起作用- B( k( V, x8 N2 }/ G/ e9 F. Q
if e3==08 [& m3 {( L/ {' ^! |, _
    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;/ L, M( J0 t" k+ |/ ?) _
    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;8 V+ N3 Y# }9 h2 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;9 `0 ]" e& x% \2 L/ l" |) M
else
4 O% Q) a5 I, n    u1 = 0;
' s3 V% E9 ?$ Y/ x( K% w8 ^  f& {    u2 = 0;
6 ^& B, J) z. R! O8 A    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;
8 l) L3 K4 e% d2 }! Qend
' d% l$ \6 c! S# I3 y, psys(1) = u1;& J( }( n) Q4 ~! f/ y$ s
sys(2) = u2;
- _" {2 K6 E7 s, Qsys(3) = u3;) y$ [! j+ g$ N- d* E5 z/ c
复制代码

该用户从未签到

4#
发表于 2020-9-28 14:01 | 只看该作者
你上传一下simulink仿真图?

该用户从未签到

3#
发表于 2020-9-28 13:21 | 只看该作者
( ]; V% C# x6 p: D2 d
你这个没有用到状态变量吧

该用户从未签到

2#
发表于 2020-9-28 13:09 | 只看该作者
帮你顶一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 14:22 , Processed in 0.203125 second(s), 25 queries , Gzip On.

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

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

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