I need to capture time taken by vehicle when velocity comes to zero after braking application by using following script.
I need to capture time taken by vehicle when velocity comes to zero after braking application by using following script.
clc
clear
l = 2.5; % wheelbase
ldis = 0.55; % lr/l
lr = ldis*l; % CG distance from the rear axle
lf = l - lr; % CG distance from the front axle
h = 0.55; % CG height of the total vehicle
rw = 0.3; % radius of the wheel
tw = 3; % radius to width ratio of the wheels
Mb = 960; % unsprung mass
Mwr = 20; % mass of rear axle
Mwf = 20; % mass of front axle
M = Mb + (Mwr + Mwf); % total vehicle mass
hb = (M*h - (Mwr + Mwf)*rw)/Mb - rw; % CG height of the vehicle body above the wheel centerw
Iwr = 0.5*Mwr*rw^2; % Moment of Inertia of rear axle
Iwf = 0.5*Mwf*rw^2; % Moment of Inertia of front axle
g = 9.81; % acceleration due to gravity
I = Iwr;
t_in = 1; % Step time
T_in = -306; % Final Value
t_brake = 36; % Step time
mu = 0.3; % coefficient of static friction
Kf_opt = [lr + l*I/(M*rw^2) + mu*(h - 2*I/(M*rw))]/[l*(1 + 2*I/(M*rw^2))];
Kf_app = 0.3;
accRearslip = mu*lf*g./[l*(1 - Kf_app) + mu*h + (I/(M*rw^2))*(l*(1 - 2*Kf_app) - 2*mu*rw)];
accFrontslip = mu*lr*g./[l*Kf_app - mu*h + (I/(M*rw^2))*(l*(2*Kf_app-1) - 2*mu*rw)];
acc_slip = min(abs(accRearslip), abs(accFrontslip));
T_opt = (M*rw^2 + 2*I)*acc_slip/rw;
T_app = 300;
if Kf_app > Kf_opt
T_sat = mu*g*[(rw*M)*(lf/l) + I/rw + mu*M*rw*(rw - h)/l]/[(1 - Kf_app + mu*(rw/l))];
if T_app <= T_opt
acc = rw*T_app/(M*rw^2 + 2*I);
alpha_f = acc/rw;
alpha_r = acc/rw;
Nf = (1/l)*(M*g*lr + M*acc*h + 2*I*acc/rw);
Nr = (1/l)*(M*g*lf - M*acc*h - 2*I*acc/rw);
Ff = (1/rw)*(Kf_app*T_app - I*acc/rw);
Fr = (1/rw)*((1-Kf_app)*T_app - I*acc/rw);
else if T_app <= abs(T_sat)
acc = [(mu*rw*M*g)*(lr/l) + T_app*(1 - Kf_app - mu*rw/l)]/[rw*M + I/rw + mu*M*rw*(h - rw)/l]; %may change
alpha_f = [T_app - (M*rw + (I/rw))*acc]/I;
alpha_r = acc/rw;
Nf = (1/l)*(M*g*lr + M*acc*h + I*alpha_f + I*acc/rw);
Nr = (1/l)*(M*g*lf - M*acc*h - I*alpha_f - I*acc/rw);
Ff = mu*Nf;
Fr = acc*M - Ff;
else
acc = mu*g;
A = [I*(1 - mu*rw/l), -mu*rw*I/l; mu*rw*I/l, I*(1 + mu*rw/l)];
alpha = inv(A)*[mu*rw*M*(acc*h/l - g*lr/l) + Kf_app*T_app; (1 - Kf_app)*T_app - mu*rw*M*(acc*h/l + g*lf/l)]; %may change
alpha_f = alpha(1,1);
alpha_r = alpha(2,1);
Nf = (1/l)*(M*g*lr + M*acc*h + I*alpha_f + I*alpha_r);
Nr = (1/l)*(M*g*lf - M*acc*h - I*alpha_f - I*alpha_r);
Ff = mu*Nf;
Fr = mu*Nr
end
end
else
T_sat = mu*g*[(rw*M)*(lr/l) + I/rw - mu*M*rw*(rw - h)/l]/[Kf_app - mu*(rw/l)];
if T_app <= T_opt
acc = rw*T_app/(M*rw^2 + 2*I);
alpha_f = acc/rw;
alpha_r = acc/rw;
Nf = (1/l)*(M*g*lr + M*acc*h + 2*I*acc/rw);
Nr = (1/l)*(M*g*lf - M*acc*h - 2*I*acc/rw);
Ff = (1/rw)*(Kf_app*T_app - I*acc/rw);
Fr = (1/rw)*((1-Kf_app)*T_app - I*acc/rw);
else if T_app <= abs(T_sat)
acc = [T_app*(Kf_app + mu*rw/l) + (mu*rw*M*g)*(lf/l)]/[rw*M + I/rw - mu*M*rw*(h - rw)/l]; %may change
alpha_f = acc/rw;
alpha_r = [T_app - (M*rw + (I/rw))*acc]/I;
Nf = (1/l)*(M*g*lr + M*acc*h + I*acc/rw + I*alpha_r);
Nr = (1/l)*(M*g*lf - M*acc*h - I*acc/rw - I*alpha_r);
Fr = mu*Nr;
Ff = acc*M - Fr;
else
acc = mu*g;
A = [I*(1 - mu*rw/l), -mu*rw*I/l; mu*rw*I/l, I*(1 + mu*rw/l)];
alpha = inv(A)*[mu*rw*M*(acc*h/l - g*lr/l) + Kf_app*T_app; (1 - Kf_app)*T_app - mu*rw*M*(acc*h/l + g*lf/l)]; %may change
alpha_f = alpha(1,1);
alpha_r = alpha(2,1);
Nf = (1/l)*(M*g*lr + M*acc*h + I*alpha_f + I*alpha_r);
Nr = (1/l)*(M*g*lf - M*acc*h - I*alpha_f - I*alpha_r);
Ff = mu*Nf;
Fr = mu*Nr;
end
end
end
slip_f = (rw*alpha_f - acc)/(rw*alpha_f);
slip_r = (rw*alpha_r - acc)/(rw*alpha_r);
Answers (1)
Categories
Find more on Programming in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!