马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
我想用MATLAB/simulink中的S函数做个阵风风速模型。老是提示错误如下:Error, M-File S-function 'gustvelocity' in 'half/S-Function' is expecting 1 parameter(s) while 3 were provided.' X; e. B6 \" x8 w4 f. r
源代码如下:1 L/ P, a: E3 J" Z
function [sys,x0,str,ts] = gustvelocity(u,flag,p1,p2,p3); v) x; }. f3 b
switch flag,
# ?/ p- P: y- J3 R: h6 }- w& ~case 0,
8 |$ n/ v5 R4 Y, r3 n0 ]' P [sys,x0,str,ts]=mdlInitializeSizes(p1,p2,p3);
# n1 Z/ f8 S/ R( ]$ J+ Ncase 3,6 o. H. q3 }& ?: ^% a" w' u j
sys=mdlOutputs(u,p1,p2,p3);( |. Q3 j, C, [ p$ f- X& q
case{1,2,4,9}& ^' ~! C% H* p0 D8 b' r! _
sys=[];
; E* t% [+ E+ B3 w2 d! Z/ x1 n otherwise$ ?4 w$ H5 K2 R
error(['Unhandled flag = ',num2str(flag)]);
+ V) V$ S g3 V# D* j3 p2 R% gend/ W+ W0 a, n: d6 A4 m
function [sys,x0,str,ts]=mdlInitializeSizes
6 g9 D' p& L8 j$ K8 Osizes = simsizes;9 y+ I$ O s; a" Y. u0 N
sizes.NumContStates = 0;( X2 i4 R8 `8 @/ x* s
sizes.NumDiscStates = 0;
7 W6 U6 X& |2 N6 ^6 R; W& ?, `sizes.NumOutputs = 4;
q9 k1 [; U p& ]( s* B6 u/ d7 Lsizes.NumInputs = 3;& Q0 H) R, p2 k3 m# C
sizes.DirFeedthrough = 1;3 {; y, W( V' \* K
sizes.NumSampleTimes = 1;
' D) X4 v! N6 psys = simsizes(sizes);
) v( N) x1 s: B* Dx0 = [];/ O; f! z0 E" F8 P! |
str = [];
- W% r+ B! k9 xts = [0 0];0 O9 b) i9 c3 ]0 V
function sys=mdlOutputs(u,p1,p2,p3)2 ]. A6 z+ b' r% d+ G# I3 [
if u<p1
$ N/ t, `4 O' ` x+ p! Q4 P6 [ sys=0;( W/ A: D/ r2 ?2 A
elseif u>=p1&&u<=p1+p2
) c6 o6 f. v. k* w0 U sys=p3/2-p3/2*cos(2*pi*((u/p1)-(p2/p1)));. t3 K8 p: g: E' G0 N6 ^$ \
else
. @* n( G$ y. J3 w sys=0;6 f* V# h) D% {4 A8 S, }
end g& T- j. ? l) H
我不知道哪出了问题,请高手指点一二。 |