马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
我想用MATLAB/simulink中的S函数做个阵风风速模型。老是提示错误如下:Error, M-File S-function 'gustvelocity' in 'half/S-Function' is expecting 1 parameter(s) while 3 were provided.
1 m# y9 |, c. F8 x$ W* T- b: b9 t源代码如下:( Q: t/ ]' n, y( [/ t3 g2 p
function [sys,x0,str,ts] = gustvelocity(u,flag,p1,p2,p3); o1 w9 S6 Q& z
switch flag,
( J( g+ r5 Y2 C' f' R3 dcase 0,
+ A7 J) e9 ~' V [sys,x0,str,ts]=mdlInitializeSizes(p1,p2,p3);
" t& v3 C/ T6 p* Bcase 3,8 u ]- ~: a, C+ \ ~
sys=mdlOutputs(u,p1,p2,p3);
: |2 Q7 [: u/ ^$ A: a! r l- y case{1,2,4,9}
( E- ^5 Z4 S" Q7 w$ F sys=[];- [- j- F6 {# T' m' N1 x$ e5 q) G
otherwise
9 | @4 F! ?7 }0 x7 [# R4 y error(['Unhandled flag = ',num2str(flag)]);/ [% t4 X5 M% v' ^% q. K' Y
end! e0 g, g! a1 S0 [0 E. |
function [sys,x0,str,ts]=mdlInitializeSizes
: m6 u% ]8 n: esizes = simsizes;8 e' z9 d! D2 T7 s5 ?1 Y* z$ l
sizes.NumContStates = 0;
8 \1 a! X2 k8 ssizes.NumDiscStates = 0;8 V7 S9 l: h/ i2 r
sizes.NumOutputs = 4;
' _4 D$ `3 s, b; ~) R5 W( y+ E4 dsizes.NumInputs = 3;
5 \& |8 n7 ?% b- w6 usizes.DirFeedthrough = 1;3 U) |) c: {, P
sizes.NumSampleTimes = 1; ) l; U% ^* U! f8 S& m2 S3 A, \
sys = simsizes(sizes);
& x& W! d0 O& H% xx0 = [];
- N1 C; n, h' s4 V' E3 Estr = [];9 l% |; }: d, |6 _4 l, g
ts = [0 0];
) U* O7 B Y' ~- A; {7 T# l2 dfunction sys=mdlOutputs(u,p1,p2,p3)
3 D. W! ?5 {$ x7 M8 O0 {% V+ Pif u<p1
' `2 `/ J7 J6 W/ P6 ~ sys=0;, z0 S- r0 P) S6 U
elseif u>=p1&&u<=p1+p2
: M/ ~" | ^% W6 T$ v- t sys=p3/2-p3/2*cos(2*pi*((u/p1)-(p2/p1)));
, Y1 a2 k* m) {; U: R2 i0 V" j# ~else
: @1 C2 Z/ Z3 m( o/ u# L sys=0;. a; f; e3 K, W6 M7 i
end
B7 Z+ w) B9 `/ n w我不知道哪出了问题,请高手指点一二。 |