|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
我想用MATLAB/simulink中的S函数做个阵风风速模型。老是提示错误如下:Error, M-File S-function 'gustvelocity' in 'half/S-Function' is expecting 1 parameter(s) while 3 were provided.- e6 A& @6 ]+ z7 q: H0 Q+ D
源代码如下:5 M" F5 W6 I8 Q2 @6 @
function [sys,x0,str,ts] = gustvelocity(u,flag,p1,p2,p3)7 A3 M/ i& S0 U- S
switch flag,* u7 L7 \" N @9 a. ^
case 0,& B4 F5 m0 C- q# W8 q
[sys,x0,str,ts]=mdlInitializeSizes(p1,p2,p3);6 A% ?1 [% L( m) s, r8 q. E# h6 a
case 3,( i# O0 s4 z/ _0 J/ ~' G/ m) @" @
sys=mdlOutputs(u,p1,p2,p3);
: ?5 J0 V6 c4 T, W0 n case{1,2,4,9} q5 K" @% W" S" E3 Q
sys=[];$ p2 S, c+ ]8 M T5 U& M
otherwise0 O: @- }4 Y' i; }. O
error(['Unhandled flag = ',num2str(flag)]);4 D) u* T* P" J3 t2 X |3 n
end
0 n, {4 T% f! L6 ofunction [sys,x0,str,ts]=mdlInitializeSizes
/ ^3 p" O* g* g* d$ X; ~. rsizes = simsizes;) r* g9 W6 s; V& D" y" _, O1 o
sizes.NumContStates = 0;
+ ]! h% N2 W% Q6 X7 psizes.NumDiscStates = 0;0 I+ m( U8 a. a- ~$ U
sizes.NumOutputs = 4;. Z3 C1 L* D w* I4 u3 z0 w
sizes.NumInputs = 3;
5 \: \- s0 |$ z7 isizes.DirFeedthrough = 1;1 W% g! x4 m9 J0 Z8 @6 h1 b
sizes.NumSampleTimes = 1;
3 E0 y; d1 e6 R( l5 D$ `* O Asys = simsizes(sizes);
r- F) R T/ e3 Sx0 = [];
$ L- J7 `7 ?- z, B* S2 h) M8 gstr = [];
7 F" I) x7 j9 k" o0 ?1 s& }ts = [0 0];6 i% z8 B/ m; c0 F2 C5 ]. O
function sys=mdlOutputs(u,p1,p2,p3) h3 @$ b( r3 G$ n4 z6 G
if u<p1$ ~, ^8 S5 q2 t# w& P
sys=0;
9 ?* I! K- ]- i) { K& V" [elseif u>=p1&&u<=p1+p20 h2 B3 A% J% y/ B1 b
sys=p3/2-p3/2*cos(2*pi*((u/p1)-(p2/p1)));. F8 } O: \! s4 s$ _/ d
else ' d" b r3 _5 p8 s/ i; X8 Y
sys=0;( q9 y7 K7 r3 S
end8 Y1 ]0 B) s: X0 |
我不知道哪出了问题,请高手指点一二。 |