马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
我想用MATLAB/simulink中的S函数做个阵风风速模型。老是提示错误如下:Error, M-File S-function 'gustvelocity' in 'half/S-Function' is expecting 1 parameter(s) while 3 were provided.( i7 g, y9 V2 j- D v/ r
源代码如下: d T b9 ]8 q1 B& B& j. L
function [sys,x0,str,ts] = gustvelocity(u,flag,p1,p2,p3)+ R% ]" k% o/ s7 ?( E# W* f
switch flag,# B' h, D* [: b$ l: |$ G
case 0,. O# r+ Q8 z9 X$ ]
[sys,x0,str,ts]=mdlInitializeSizes(p1,p2,p3);
( G& C: K% O/ Lcase 3,
% P2 t; t* M9 q6 |3 a0 O$ U sys=mdlOutputs(u,p1,p2,p3);/ ?5 c: y1 E/ `4 ?; Y
case{1,2,4,9}
0 q- p$ h% [% W8 b8 c sys=[];
1 }. T$ V V- g9 r) g9 P. ? otherwise
L% p1 D0 V9 {5 V& A, {/ l error(['Unhandled flag = ',num2str(flag)]);. H* }% g0 P3 R& X/ T
end
$ c* c- l/ T8 F- y. J, m2 \# ufunction [sys,x0,str,ts]=mdlInitializeSizes* V* ~, T1 k/ w( m. P6 ?
sizes = simsizes;( m" a4 V% K* z; S( O) _
sizes.NumContStates = 0;
2 |: ^4 e# J: ?8 H, K Lsizes.NumDiscStates = 0;
6 h2 o( z$ _( ]- r$ s2 wsizes.NumOutputs = 4;
9 z( h/ ~' \& x. }0 t( jsizes.NumInputs = 3;
( `1 U; K8 `3 a6 A0 g8 o, ?sizes.DirFeedthrough = 1;
5 b* b ~- ?! v! N, z+ d( f& Rsizes.NumSampleTimes = 1; 1 \, l2 w' N6 S
sys = simsizes(sizes);3 U/ C; s' `9 b3 H
x0 = [];$ F2 ]2 S1 n0 m; h8 {$ U
str = [];' n' z- ?* h) a) D G: ~; l
ts = [0 0];
/ R$ C# p0 K9 x8 b9 @ Gfunction sys=mdlOutputs(u,p1,p2,p3)% I# n: z5 E1 n; g& p6 H
if u<p1
I0 u( m- [0 A( m$ n+ D sys=0;6 y2 N2 s% F/ S: c* ?& \# ~
elseif u>=p1&&u<=p1+p2
N5 \4 i$ k% S+ V9 k0 z7 B sys=p3/2-p3/2*cos(2*pi*((u/p1)-(p2/p1)));
0 |" z, U5 {7 y$ Qelse
/ N3 `' {& x; P9 \ sys=0;
: o$ p$ b$ L7 L/ d/ Xend
, S ]" j' u" V: Y我不知道哪出了问题,请高手指点一二。 |