|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
我想用MATLAB/simulink中的S函数做个阵风风速模型。老是提示错误如下:Error, M-File S-function 'gustvelocity' in 'half/S-Function' is expecting 1 parameter(s) while 3 were provided.
0 V4 w b+ D/ j* `5 _源代码如下:
6 W3 \+ |4 n T. ifunction [sys,x0,str,ts] = gustvelocity(u,flag,p1,p2,p3)
% _+ L5 B4 l- _' H( \switch flag,
/ b& @6 [- b; Ncase 0,
9 l" {! f& J: N# r' k [sys,x0,str,ts]=mdlInitializeSizes(p1,p2,p3);- M# H3 b& E4 E/ H: C8 Z' @8 V
case 3,
+ M7 |% Q$ F+ x* P% M sys=mdlOutputs(u,p1,p2,p3);5 H% Y5 L& J! e9 `0 `
case{1,2,4,9}
: Y* G; s1 r; K2 I: n sys=[];
: M; O; w, Y' w: F otherwise
. F- |2 Y ^% l4 r8 i# l/ M error(['Unhandled flag = ',num2str(flag)]);+ P4 q- f1 D- g+ c! u% b, W$ a
end1 C2 t2 j$ z8 V* g3 v8 H* z
function [sys,x0,str,ts]=mdlInitializeSizes' {, B6 A7 e; H0 t
sizes = simsizes;1 d6 h6 }% X; m& k
sizes.NumContStates = 0;: p/ d" D+ u. L- ^: b# E C
sizes.NumDiscStates = 0;
/ d! A9 R- g3 Ssizes.NumOutputs = 4;; k8 |, _2 M; s& d4 u; g3 J& u/ j/ B
sizes.NumInputs = 3;
, N7 b: R& t* @& Jsizes.DirFeedthrough = 1;2 m7 Q9 I# ^, p" Z$ @, b/ \- g
sizes.NumSampleTimes = 1; 7 T( P l0 A0 f+ o& j5 j$ E/ H2 Z
sys = simsizes(sizes);+ ~' e/ K5 F7 J+ k9 _0 x4 a: Q
x0 = [];
- [1 }& z" b& g* a( fstr = [];
# L, T6 D/ e" a% N3 ]* k9 wts = [0 0];, r8 A. G# L2 S* P0 y4 V
function sys=mdlOutputs(u,p1,p2,p3)9 ?: Q, E% h0 C9 d# d/ Y K
if u<p19 M' m( q( v) V/ d; S8 L+ q
sys=0;
7 {' S2 p! h/ m* Eelseif u>=p1&&u<=p1+p2
) k. z6 F1 R L' @9 u w sys=p3/2-p3/2*cos(2*pi*((u/p1)-(p2/p1)));
. A9 j, |2 n/ ^9 |3 r9 celse 3 {6 M& ?, \# [" t
sys=0;" e7 c, }/ ]0 R v
end6 R* X/ Z2 X) |1 s) l
我不知道哪出了问题,请高手指点一二。 |