马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
我想用MATLAB/simulink中的S函数做个阵风风速模型。老是提示错误如下:Error, M-File S-function 'gustvelocity' in 'half/S-Function' is expecting 1 parameter(s) while 3 were provided.' U4 s* ~7 s/ _; T" z0 _) y5 ^
源代码如下:
- M; y! {6 z# O- q; x& |* {3 Ofunction [sys,x0,str,ts] = gustvelocity(u,flag,p1,p2,p3)
; M$ |# ^6 F+ C1 j* `( `' kswitch flag,
9 {# }- j" ]- R4 r, {case 0,. v0 g, O0 x0 q8 Q& R& H$ J0 P$ c4 @
[sys,x0,str,ts]=mdlInitializeSizes(p1,p2,p3);
3 y: ~% d7 F! ^% Scase 3,
% T. l4 s, C* q sys=mdlOutputs(u,p1,p2,p3);
+ K/ l2 o8 k7 v. ~ case{1,2,4,9}
9 @ m1 I' R/ E5 U$ J sys=[];( {5 M4 H: k7 Q. U6 A
otherwise
$ T- s6 i) U4 Y- e% s$ ?% T$ x0 @ error(['Unhandled flag = ',num2str(flag)]);
( q$ M- D8 a- T0 Q5 n. ~" ?$ Gend
4 C- z6 [) [, `' P! f5 Gfunction [sys,x0,str,ts]=mdlInitializeSizes
$ T' }3 r. f3 X; g' psizes = simsizes;+ A. c, i5 ]9 t% W! h
sizes.NumContStates = 0;
; v! v* O4 J+ U: t& F5 n8 a3 p+ S7 l4 Ssizes.NumDiscStates = 0;
% O3 b, P! j& ~: O4 hsizes.NumOutputs = 4;
0 |9 F1 t" W+ o3 E% h4 Z$ Rsizes.NumInputs = 3;
6 G" c1 Q8 P8 b, x% U! dsizes.DirFeedthrough = 1;
1 O' [, P$ f$ |5 }6 Wsizes.NumSampleTimes = 1;
" d4 s9 `. p/ H. ` [! Usys = simsizes(sizes);
' e, L7 m4 Q3 ox0 = [];
) h3 ]6 m. A3 J- |* Z8 g7 W4 a6 tstr = [];+ |( x7 R u3 K8 e
ts = [0 0];9 @2 y8 ~! F5 u! c( `
function sys=mdlOutputs(u,p1,p2,p3)
/ @3 r% J! j3 |if u<p1* Z6 ?3 d, N1 n4 E
sys=0;* }6 S- O$ j1 h) l: _
elseif u>=p1&&u<=p1+p2
+ U9 v! z) Z( F: w sys=p3/2-p3/2*cos(2*pi*((u/p1)-(p2/p1)));% G8 }. P, y; F R8 W
else 9 o! f! R7 b: M1 l, m4 M( \
sys=0;, b, g; i5 O( z
end9 x. T/ v& W$ g7 d3 B g, z/ @% |
我不知道哪出了问题,请高手指点一二。 |