Challenge

Vehicle Ride - Force Vs Velocity by MATLAB

Vehicle Ride 2 - Assignment by Ozan Kocabas

This Assignment is done by using Matlab Live Script. In order to change the values and see it effects sliders are used.

Given Parameters

m_total = 1900 %kg

m_total = 1900

front_weight_rate =0.55

front_weight_rate = 0.5500

rear_weight_rate = 1 - front_weight_rate

rear_weight_rate = 0.4500

m_un_front = 90 %kg

m_un_front = 90

m_un_rear = 60 %kg

m_un_rear = 60

k_spr_front = 20 %N/mm

k_spr_front = 20

k_spr_rear = 30 %N/mm

k_spr_rear = 30

mr_front = 0.97

mr_front = 0.9700

mr_rear = 0.85

mr_rear = 0.8500

k_tire_front = 250 %N/mm

k_tire_front = 250

k_tire_rear = 250 %N/mm

k_tire_rear = 250

c_sprung_front =0.7

c_sprung_front = 0.7000

c_sprung_rear =0.7

c_sprung_rear = 0.7000

c_unsprung_front = 0.2

c_unsprung_front = 0.2000

c_unsprung_rear = 0.2

c_unsprung_rear = 0.2000

mr_shock_front = 1

mr_shock_front = 1

mr_shock_rear = 1

mr_shock_rear = 1

reb_comp_ratio_front = 3

reb_comp_ratio_front = 3

reb_comp_ratio_rear = 3

reb_comp_ratio_rear = 3

v_knee_front = 50 %mm/sec

v_knee_front = 50

v_knee_rear = 50 %mm/sec

v_knee_rear = 50

Calculating the important parameters based on the given values

w_front = front_weight_rate*m_total %kg

w_front = 1045

m_sprung_front = w_front - m_un_front %kg

m_sprung_front = 955

m_sprung_front_quarter = (w_front - m_un_front)/2 %kg

m_sprung_front_quarter = 477.5000

w_rear = rear_weight_rate*m_total %kg

w_rear = 855.0000

m_sprung_rear = w_rear - m_un_rear %kg

m_sprung_rear = 795.0000

m_sprung_rear_quarter = (w_rear - m_un_rear)/2 %kg

m_sprung_rear_quarter = 397.5000

m_unsprung_front_quarter = m_un_front/2 %kg

m_unsprung_front_quarter = 45

m_unsprung_rear_quarter = m_un_rear/2 %kg

m_unsprung_rear_quarter = 30

Wheel rate must be calculated in order to get the ride rate because the motion ratio and spring rate is given.

k_wheel_front = k_spr_front * mr_front^2 % N/mm

k_wheel_front = 18.8180

k_wheel_rear = k_spr_rear * mr_rear^2 % N/mm

k_wheel_rear = 21.6750

Now the Ride rates should be calculated

k_ride_front_sprung = (k_wheel_front * k_tire_front)/(k_wheel_front + k_tire_front) %N/mm

k_ride_front_sprung = 17.5007

k_ride_rear_sprung = (k_wheel_rear * k_tire_rear)/(k_wheel_rear + k_tire_rear) %N/mm

k_ride_rear_sprung = 19.9457

k_ride_front_unsprung = k_wheel_front + k_tire_front %N/mm

k_ride_front_unsprung = 268.8180

k_ride_rear_unsprung = k_wheel_rear + k_tire_rear %N/mm

k_ride_rear_unsprung = 271.6750

Now Calculating the Sprung and Unsprung Frequencies for the Front and Rear Suspension

freq_front_sprung = sqrt((k_ride_front_sprung * 1000)/(m_sprung_front_quarter))/(2*pi) % Hz

freq_front_sprung = 0.9635

freq_rear_sprung = sqrt((k_ride_rear_sprung * 1000)/(m_sprung_rear_quarter))/(2*pi) % Hz

freq_rear_sprung = 1.1274

freq_front_unsprung = sqrt((k_ride_front_unsprung * 1000)/(m_unsprung_front_quarter))/(2*pi) % Hz

freq_front_unsprung = 12.3011

freq_rear_unsprung = sqrt((k_ride_rear_unsprung * 1000)/(m_unsprung_rear_quarter))/(2*pi) % Hz

freq_rear_unsprung = 15.1455

Sprung Mass Critical Damping

c_crit_sprung_front = 2*(sqrt(k_ride_front_sprung * 1000 * m_sprung_front_quarter)) % N-s/m

c_crit_sprung_front = 5.7815e+03

c_crit_sprung_rear = 2*(sqrt(k_ride_rear_sprung * 1000 * m_sprung_rear_quarter)) % N-s/m

c_crit_sprung_rear = 5.6315e+03

Unsprung Mass Critical Damping

c_crit_unsprung_front = 2*(sqrt(k_ride_front_unsprung * 1000 * m_unsprung_front_quarter)) % N-s/m

c_crit_unsprung_front = 6.9561e+03

c_crit_unsprung_rear = 2*(sqrt(k_ride_rear_unsprung * 1000 * m_unsprung_rear_quarter)) % N-s/m

c_crit_unsprung_rear = 5.7097e+03

Sprung Mass Initial Damping Coefficient

c_initial_sprung_front = c_crit_sprung_front * c_sprung_front % N-s/m

c_initial_sprung_front = 4.0471e+03

c_initial_sprung_rear = c_crit_sprung_rear * c_sprung_rear % N-s/m

c_initial_sprung_rear = 3.9420e+03

Unsprung Mass Initial Damping Coefficient

c_initial_unsprung_front = c_crit_unsprung_front * c_unsprung_front % N-s/m

c_initial_unsprung_front = 1.3912e+03

c_initial_unsprung_rear = c_crit_unsprung_rear * c_unsprung_rear % N-s/m

c_initial_unsprung_rear = 1.1419e+03

Low Speed Compression Damping Coefficient

c_low_comp_front = c_initial_sprung_front / 2 % N-s/m

c_low_comp_front = 2.0235e+03

c_low_comp_rear = c_initial_sprung_rear / 2 % N-s/m

c_low_comp_rear = 1.9710e+03

High Speed Compression Damping Coefficient

c_high_comp_front = c_initial_unsprung_front / 2 % N-s/m

c_high_comp_front = 695.6094

c_high_comp_rear = c_initial_unsprung_rear / 2 % N-s/m

c_high_comp_rear = 570.9729

Low Speed Rebound Damping Coefficient

c_low_reb_front = c_low_comp_front * reb_comp_ratio_front % N-s/m

c_low_reb_front = 6.0706e+03

c_low_reb_rear = c_low_comp_rear * reb_comp_ratio_rear % N-s/m

c_low_reb_rear = 5.9131e+03

High Speed Rebound Damping Coefficient

c_high_reb_front = c_high_comp_front * reb_comp_ratio_front % N-s/m

c_high_reb_front = 2.0868e+03

c_high_reb_rear = c_high_comp_rear * reb_comp_ratio_rear % N-s/m

c_high_reb_rear = 1.7129e+03

Force vs Velocity Graph

v = 0;

v_max =500

v_max = 500

v_iteration = 5

v_iteration = 5

% Preallocationg for calculation speed

v_array = ones(1,v_max/v_iteration+1);

comp_force_front = ones(1,v_max/v_iteration+1);

reb_force_front = ones(1,v_max/v_iteration+1);

comp_force_rear = ones(1,v_max/v_iteration+1);

reb_force_rear = ones(1,v_max/v_iteration+1);

i=1;

for V= v:v_iteration:v_max

v_array(i) = V;

if v_array(i) <= v_knee_front

comp_force_front(i) = c_low_comp_front/1000 * v_array(i);

reb_force_front(i) = -(c_low_reb_front/1000 * v_array(i)); % N

else

comp_force_front(i) = comp_force_front(i-1) + ((v_array(i) - v_array(i-1)) * c_high_comp_front/1000);

reb_force_front(i) = (rebound_force_front(i-1) - (v_array(i) - v_array(i-1)) * c_high_reb_front/1000);

end

i=i+1;

end

i=1;

for V= v:5:v_max

v_array(i) = V;

if v_array(i) <= v_knee_rear

comp_force_rear(i) = c_low_comp_rear/1000 * v_array(i);

reb_force_rear(i) = -(c_low_reb_rear/1000 * v_array(i));

else

comp_force_rear(i) = comp_force_rear(i-1) + ((v_array(i) - v_array(i-1)) * c_high_comp_rear/1000);

reb_force_rear(i) = (rebound_force_rear(i-1) - (v_array(i) - v_array(i-1)) * c_high_reb_rear/1000);

end

i=i+1;

end

subplot(2,1,1);

plot(v_array,comp_force_front,"r")

hold on

plot(v_array,reb_force_front,"g");

title('Front - Force vs velocity');

xlabel('Velocity(mm/s)');

ylabel('Force (N)');

legend('Compression','Rebound');

subplot(2,1,2);

plot(v_array,comp_force_rear,"r")

hold on

plot(v_array,reb_force_rear,"g");

title('Rear - Force vs velocity');

xlabel('Velocity(mm/s)');

ylabel('Force (N)');

legend('Compression','Rebound');

Different Parameters

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.