|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在simulink中搭建了模型,主程序使用matlab function写的,调用了两个子程序,其中一个因为分配了动态数组所以会报错,报错如下:
& C/ I3 \/ Q o: `' ?6 _7 t5 y, J; ^! f) i9 W4 C! ]8 S# h! m
Computed maximum size of the output of function 'colon' is not bounded.
' L/ D' M. F$ O/ S, FStatic memory allocation requires all sizes to be bounded.( {$ y2 q/ a l6 [# p
The computed size is [1 x :?].
) s% O4 E9 M( k) X: z5 I X+ @: L0 d7 [# X
Function 'Engine_State_inteRF0304.m' (#46.1271.1292), line 33, column 12:
8 Z4 r' A( A7 V6 q2 T$ v"Te_min(i):1:Te_max(i)"
3 p+ v" f8 n: O* |& D: o4 s% k# yLaunch diagnostic report.
0 o, L. K% a2 z8 k7 H$ ?7 e
. S- R! {1 ^8 E. Z6 C# A+ F9 y2 s
6 ]% X# V ~! r7 @下面是我这部分程序。刚接触simulink,一头雾水,被这个问题困扰很多天了,希望大神们可以提供解决思路。不胜感激!
5 d8 l7 B5 C: t3 D
) [6 G% t2 w4 a i2 uif T_req(i)>=0
& i( j( O2 i0 s) h. z. h) Q/ t' f Te_max(i)=interp1(engine_fullload_speed,engine_fullload_torque,n_e(i));%利用一维线性插值法求发动机转矩最大值& b( x1 \: m z" q' ?7 w! p( v
Te_min(i)=Te_max(i)*0.2; %低于此转矩值,发动机关闭
& v/ j0 t. r1 F if T_req(i)>=Te_min(i)* o! A* x. X9 Z
Te=Te_min(i):1:Te_max(i);
) N" ?8 c6 X1 p8 n3 b! `1 O1 { Te=Te( ;
( m! J& |$ e2 U9 e else0 x* R5 S# N+ ^/ o8 X* Q% x1 p
Te=0;7 E& o* E2 h/ a2 v
end
3 {$ v2 e* V% C' G* H, R |
|