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

s函数报错

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
s函数报错“during flag=i call must be a real vector of length n” ,怎么解决?4 D$ F# N7 k. k9 F
代码如下:, M8 p; T( O# ~5 N4 M; W9 r. t& L+ H
function [sys,x0,str,ts] = PMSM_chaos_controller(t,x,u,flag)
, [) Q8 j8 @* vswitch flag,
% q. P5 Y" Z( D- W; b    case 0,; i# F$ r# m. A) l0 k  o
        [sys,x0,str,ts] = mdlIniticializeSizes;5 X9 j7 F8 g9 h0 e7 f
    case 3,
- W1 X" G; k+ H# M( a/ O        sys = mdlOutputs(t,x,u);. {* z' K5 W2 a& b9 v! x5 A
    case {1,2,4,9},
9 E: T3 j/ L+ |" F* l4 {        sys = [];
6 x5 F9 u- L' g( T    otherwise,
% y! X  b4 b# d' Q        DAStudio.error('Simulink:blocks:unhandledFlag',num2str(flag));
: {5 O' E4 o4 c& T4 J* J, c% x( {& Rend, ]( ^) F" q. I8 s+ g3 l/ C% T
, g( E5 m. x' K: b) c. w* m) e
function [sys,x0,str,ts] = mdlIniticializeSizes
1 [2 K* H/ {. c; Z& O4 csizes = simsizes;
9 b- K5 Y* d# Z+ E% `% Q, msizes.NumContStates  = 3;    %连续状态个数
- z* K, A: i6 Msizes.NumDiscStates  = 0;    %离散状态个数8 m. p' H1 }6 s- [
sizes.NumOutputs     = 3;    %输出变量个数6 d$ S  v+ m( H) H+ I
sizes.NumInputs      = 9;    %输入信号个数2 `5 P/ X0 S! `# U; M
sizes.DiRFeedthrough = 1;    %输入直接传入输出信号否
/ v7 X9 `/ a" _! ?8 k5 c! @sizes.NumSampleTimes = 0;    % at least one sample time is neededWO  一般来说为1个
. E$ R- X. T9 \6 D/ R1 m* tsys = simsizes(sizes);; ~  H* p. r! `8 N) x
x0 = [0.001 0.001 0.001];  D  v3 r2 T0 f: W3 z1 ^8 G  [
str = [];: v! J% o+ d9 J' y$ Z  w) z
ts = [];: D6 c: u# x; _  T/ D4 @. r
9 e$ Z# a% ?5 G9 ?8 X* o
function sys=mdlOutputs(t,x,u)) S2 k! q2 x5 s$ B
e1=u(1);e2=u(2);e3=u(3);
  e  Q6 C! {7 {s21=u(4);s22=u(5);s1=u(6);6 A  j( y2 d, _1 a( }& F
es_w=u(9);
) F- a  s) I  Q# kalpha = 0.8;; Q: L  j, \2 x- D( z. W, x/ m
alpha1 = 5/7; beta1 = 7/5;
5 v2 d' C. S8 C5 ]1 h+ g0 ialpha2 = 7/9; beta2 = 9/7;7 L  }  q1 J! ?! o0 Z8 ]" x
k1 = 1;
2 H+ i2 F. @- ck2 = 1.2;! A: z1 _( O: E5 ~; K- A7 r
miu = 10;5 L* m2 Q1 T% K* V3 y4 @
delta = 5.46;' M9 x+ M3 x: V% ^/ [: ?* h8 Y: L
%assert(all(imag(u)==0), 'u is imaginary or nan');不起作用
) b, f$ P& M$ \9 Dif e3==0! M. R- r+ m. x$ }& Z& n/ w
    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;+ i: A+ _% {9 B! `8 g
    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;
  O1 z7 E- y4 e9 {    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;, T+ {8 j6 o6 y* ?0 f
else
& C6 @0 s& Q" `9 M( x! n* c" L    u1 = 0;, I: x, n& Z+ f+ O% Z8 Z8 Y
    u2 = 0;
" L- R( p; s  A1 i) _9 `    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;
: ?' |1 b0 ~6 z* f: V$ jend, o. G7 x' l! z4 y
sys(1) = u1;% Z8 o" Y9 X, B4 \/ f5 R
sys(2) = u2;
  M$ P) B0 Q% r0 D: f4 J  psys(3) = u3;
* U7 C. N9 X" G0 P, J9 E5 {复制代码

该用户从未签到

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

该用户从未签到

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

" K) X' m7 P4 D你这个没有用到状态变量吧

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-22 01:16 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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