2017-10-03 17 views
1

私はオイラーの方法を使ってDEを統合しようとしています。私は方法全体を一度は得ることができますが、それはリループしません。私は "添え字インデックスは本当の正の整数か論理のどちらかでなければならない"というエラーに終わります。"添字インデックスは正の整数または論理でなければならない"ため、matlabのループインデックスは実行されません。

私は既に:Subscript indices must either be real positive integers or logicals, generic solutionを見つけて、これらのトラブルシューティングの方法を試してみましたが、無駄です。

ここに私のコードです。

clc 
clear 

N(1) = 2.5; %1st gear 
N(2) = 2.0; %2nd^
N(3) = 1.0; %3rd^

Diff = 2.3; %Final drive 

u = 0.8; 
fr = 0.015; 
Rt = .303; %Tire radius in m 
W = 13400; %Weight in N 
rho = 1.25; %Air density in kg/m^3 
A = 2.10; %Frontal alrea in m^2 
Cd = 0.38; %Coeff of drag 
L = 2.61; %Wheelbase in m 
LH = 3.93; %L/H ratio 
FR = 51.5; %F/R weight ratio 
theta1 = 0; %Road incline 
theta2 = 5; %Road incline 
Ftmax = 3000; 
m = W/9.81; 

w = 0.001; 
xdot = 0.001; 

dbstop if error 
% T = -(0.00108*w^2)+0.50143+111.77086 %Engine tq lookup 

for i = 1:0.001:200 %Total time of 200 seconds in 0.001 second intervals 
%  if i<.001 
%  end 
    T(i) = -(0.00108*w(i)^2)+0.50143*w(i)+111.77086; %Engine tq lookup 

    Ft(i) = T(i)*N(1)*Diff/Rt; %Calculate tractive force 

    if Ft>Ftmax %Check for traction limit 
     Ft = Ftmax; 
    end 

    xddot(i) = (1/m)*(Ft(i)/xdot(i)-W*u*(1+xdot(i)*3.6/160)-0.5*rho*Cd*A*xdot(i)^2-W*sin(theta1));% Using m/s for velocity 
    xdot(i) = xddot(i)*0.001+xdot(i); %Velocity calculation 
    w(i) = xdot(i)/Rt*N(1)*Diff; %Engine speed calculation 
end 

私はいくつかの友人にそのコードを尋ねましたが、どちらも分かりません。ここの誰かが助けてくれるでしょう。ありがとう!

答えて

0

添え字インデックスは整数ではありません。だから、代わりに:

for i = 1:0.001:200 %Total time of 200 seconds in 0.001 second intervals 

あなたはこのような何かを試みることができる:あなたがループ内のベクトルで作業していることから、あなたが事前にそれらを割り当てることもできます、また

for i = 1:200*1000 %Total time of 200 seconds in 1 millisecond intervals 

をので、あなたはこれを置き換えることができます:

w = 0.001; 
xdot = 0.001; 

をこれに伴い:

steps = 200*1000; % You might also want to replace 200*1000 in the for-loop with 'steps' 

T = zeros(1,steps); 
Ft = zeros(1,steps); 
xddot = zeros(1,steps); 
xdot = zeros(1,steps); 
w = zeros(1,steps); 

w(1) = 0.001; 
xdot(1) = 0.001; 
関連する問題