私はオイラーの方法を使って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
私はいくつかの友人にそのコードを尋ねましたが、どちらも分かりません。ここの誰かが助けてくれるでしょう。ありがとう!