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

[仿真讨论] simulink中的S——function模块老是报错,

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-8-18 15:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
这是我的程序
  a7 k7 H+ {# c3 Xfunction [sys,x0,str,ts,simStateCompliance] = bangbang(t,x,u,flag)" ]4 Y# {8 e% X2 X1 t5 i
switch flag,
" b6 t. {$ o* u1 c4 V/ p8 x( Y* U: V* P7 D, o) A+ y
case 0  u# Z- i+ t7 t
[sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes;
. ?& u0 G/ l8 Q! A
) o6 T1 L9 I. h' t; a9 ^case 37 I- K7 g) L) k  }3 [, @0 S
sys=mdlOutputs(t,x,u);4 O  S7 P  @. N5 I; l! H. S
1 e3 T$ P& s# P8 X" I
case { 1, 2, 4, 9 }! Y- Z; n( c9 Y' f2 N$ Q+ D/ @: @
sys=[];" j! t3 R2 D" }8 A: g4 V$ N3 }! k
  D7 x) |, X* m; D7 |
otherwise
) `4 H9 H* ]6 Q  J8 o4 [# p, _DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag));
5 G3 m7 H( h0 s0 E5 i: x+ V. u$ w6 Z: T
end% @" `$ j- c8 V/ L) Y
4 D- X$ n. ?! P, @8 t! ]/ f
function [sys,x0,str,ts,simStateCompliance] = mdlInitializeSizes()) u0 z3 n; M% v8 j( A7 [3 A

9 i( b" h4 v! Gsizes = simsizes;% B5 V; r* t& z. E3 W. M; U/ U% X9 e
sizes.NumContStates = 0;
* r  ^0 ]  R. Msizes.NumDiscStates = 0;
( S  C2 i5 [  e' J) I8 O) B1 isizes.NumOutputs = -1;
! ~+ i& g  T+ q7 ?* Usizes.NumInputs = -1;" J! n0 u3 `* V) T! k
sizes.DiRFeedthrough = 1;
: U$ u8 W* H, g# c$ I8 Vsizes.NumSampleTimes = 1;
& g; j( m( Y/ a* ]) `% |7 Y! O1 w% ~5 j3 c
sys = simsizes(sizes);
+ v6 C' N2 ^/ c, y. p: vstr = [];; k6 _1 e4 _1 _$ Y4 [
x0 = [];* U1 [) ]5 `) C- c. o6 g- D- s- t
ts = [-1 0];& b1 H* k+ p; Z0 V9 e3 h+ o2 s
0 Z4 ^1 q* m4 [3 l* l
simStateCompliance = 'DefaultSimState';
  T/ E: k  Z3 x. X9 K& H  v1 v" x2 A& d/ X5 a* l: P
function sys = mdlOutputs(t,x,u)
# V# A, v* [% l! H
8 d% z' D3 z7 bif(u>-5*pi/180&&u<5*pi/180)
5 e: Z/ u9 K/ R" Y1 zsys = 0;9 f& {8 O8 h; N
elseif(u>5*pi/180&&u<pi/4)3 d# `7 j9 {6 ?3 p
sys = 1;
: s" N5 {$ B. a' \& H9 pelseif(u<-5*pi/180&&u>-pi/4)  h# J1 _, n- Q+ A7 s, [% O
sys = -1;) y! l: k1 Q- G: J* T- I# k, i
elseif(u<pi&&u>pi/4)
+ I3 Z3 D" {! zsys = 2;
- }6 i0 z; ]: U: B* d, D( ]! g, Jelseif(u>-pi&&u<-pi/4); a# ]1 I$ q6 r, p) F& ~+ i0 u
sys = -2;
- {1 ^- H) o; L4 h7 B6 N* helseif(u>pi&&u<2*pi)4 `9 }4 I. I* P
sys = 5;) ~3 H# x7 H9 V2 g
elseif(u<-pi&&u>-2*pi)9 Y3 a: u( W/ Q* B+ U- L
sys = -5;
% Z5 g* b4 k5 ^end
* d1 f0 d! {" ]" N6 y. D- U7 P3 L, Z9 m
单独建立一个模型仿真时是没有问题的 可是一旦将这个模块加入到我已经建立好的模型中去仿真就出现上面的问题; p6 M' x5 h2 v

该用户从未签到

2#
发表于 2022-8-18 16:31 | 只看该作者
"sizes.NumOutputs = -1;0 E# F. c# |& ^' O
sizes.NumInputs = -1; "这个-1是什么意思?
! H8 w! {( s  j; `  c& ~* i你改这个试试:; ?6 ^# e' Y$ ?! c4 \/ |
sizes.NumSampleTimes = 0;
4 T' Q2 _7 E7 o" z1 ^- Yts = 0;$ ~# v0 C6 s1 P/ V+ z3 K% P

该用户从未签到

3#
发表于 2022-8-18 17:47 | 只看该作者
再看看别人是怎么说的& e5 K5 d& r$ O% H6 \4 J
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-2 21:26 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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