Project

ISO road profile modelling

Aim:

To perform classification and generation of road profile according to ISO.

Given data:

Given power spectral density file can be viewed at the below link:

Objective:

Using the PSD data given, determine the road quality using the ISO classification. These are your deliverables:
  • Plot showing ISO classification for roads A through H (Use higher end of the range for the degree of roughness)
  • Plot showing the PSD profile
  • Overlay of PSD profile on ISO classification and determination of road quality

Governing equations:

Random signal in space domain: `Z_n(x)=A_nsin(2*pi*x)/l` , where`(2pix)/l=Omega_n`, l= wavelength

Random signal in time domain: `Z_n(t)=A_nsin(omegat)`

Temporal frequency(Hz)=Spatial frequency(cycles/m)*velocity(m/s)

For `Omega<Omega_o:S(Omega)=S(Omega_o)(Omega/Omega_0)^-2`

For `Omega>Omega_o:S(Omega)=S(Omega_o)(Omega/Omega_0)^-1.5`

where `S(Omega)`= Degree of roughness

Background theory:

Road roughness is the measure of longitudinal irregularities of road surface from the true reference plane, it plays a vital role in ride comfort and performance of the vehicle in terms of the maintenance cost, reduced speed and durability. Poor roads will increase fuel consumption, travel time and there will be more wear in spare parts of the vehicle. In other words, due to the irregular road surface, fatigue stress will act on the vehicle subsystem.
  • In a random signal we are concerned with the power rather than the amplitude.
  • The power spectrum can be calculated by multiplying the FFT by its complex conjugate which eliminates the phase information.
  • To obtain the power spectral density (PSD), the power spectrum is divided by the frequency increment or bandwidth. It is the plot of signal power (amplitude squared) v/s frequency (spatial frequency=cycles/m)
  • This ensures that the power level will not change when the frequency resolution is modified.
  • PSD is a plot that has units of amplitude squared per hertz

PSD Profiles of Roads:

  • PSD profiles of every road section are unique.
  • However, all roads show a characteristic drop in amplitude with wavenumber
  • Amplitude is indicative of roughness (higher = rougher)
  • The magnitude distribution in the high and low wavenumber regions determines the frequency range for vehicle vibration

ISO Classification of road based on Road Roughness:


International Organisation for Standardization gives the quality criteria as given below by plotting the graph of spatial frequency Vs Power Spectral Density. ISO classifies the roads into eight different classes, by indicating the bands of lines as shown in the figure. These bands of lines are obtained by classifying them based on the fixed PSD range. Then by overlaying the obtained PSD data with the ISO standard chart the road quality is determined.

`y=-mx+c`

`logy=-mlogx+logc`

`logy=log(c*x^-m)`

`y=cx^-m`

`S(Omega)=S(Omega_o)(Omega^-m)`

Matlab code:

%Road data
file='PSD_Data.txt';
data=importdata(file);
freq=data(:,1);         %frequency(cycle/ft)
amplitude=data(:,2);    %Amplitude(ft^2/(rad/ft))

%End point frequencies
omega(1)=0.01;
omega(2)=1/(2*pi);
omega(3)=10;

%Road roughness class lines
s_ab(2)=8e-6;
s_bc(2)=32e-6;
s_cd(2)=128e-6;
s_de(2)=512e-6;
s_ef(2)=2048e-6;
s_fg(2)=8192e-6;
s_gh(2)=3276e-6;
s_hi(2)=131072e-6;

s_ab(1)=s_ab(2)*(omega(1)/omega(2))^-2;
s_bc(1)=s_bc(2)*(omega(1)/omega(2))^-2;
s_cd(1)=s_cd(2)*(omega(1)/omega(2))^-2;
s_de(1)=s_de(2)*(omega(1)/omega(2))^-2;
s_ef(1)=s_ef(2)*(omega(1)/omega(2))^-2;
s_fg(1)=s_fg(2)*(omega(1)/omega(2))^-2;
s_gh(1)=s_gh(2)*(omega(1)/omega(2))^-2;
s_hi(1)=s_hi(2)*(omega(1)/omega(2))^-2;

s_ab(3)=s_ab(2)*(omega(3)/omega(2))^-1.5;
s_bc(3)=s_bc(2)*(omega(3)/omega(2))^-1.5;
s_cd(3)=s_cd(2)*(omega(3)/omega(2))^-1.5;
s_de(3)=s_de(2)*(omega(3)/omega(2))^-1.5;
s_ef(3)=s_ef(2)*(omega(3)/omega(2))^-1.5;
s_fg(3)=s_fg(2)*(omega(3)/omega(2))^-1.5;
s_gh(3)=s_gh(2)*(omega(3)/omega(2))^-1.5;
s_hi(3)=s_hi(2)*(omega(3)/omega(2))^-1.5;

%unit conversion
freq_new=freq/0.3048;    % cycle/ft to cycle/m
amplitude_new=amplitude*0.3048^3*2*pi;  %ft^3/rad to m^3/cycle

%plot
loglog(omega,s_ab);text(omega,s_ab,"A",'VerticalAlignment','bottom');
hold on
loglog(omega,s_bc);text(omega,s_bc,"B",'VerticalAlignment','bottom');
loglog(omega,s_cd);text(omega,s_cd,"C",'VerticalAlignment','bottom');
loglog(omega,s_de);text(omega,s_de,"D",'VerticalAlignment','bottom');
loglog(omega,s_ef);text(omega,s_ef,"E",'VerticalAlignment','bottom');
loglog(omega,s_fg);text(omega,s_fg,"F",'VerticalAlignment','bottom');
loglog(omega,s_gh);text(omega,s_gh,"G",'VerticalAlignment','bottom');
loglog(omega,s_hi);text(omega,s_hi,"H",'VerticalAlignment','bottom');
loglog(freq_new,amplitude_new,'color','k')
xlabel('spatial frequency(cycle/m)')
ylabel('power spectral density(m^2/(cycle/m))')
title('Road classification by ISO')
legend('A(very good)','B(good)','C(Average)','D(Poor)','E(Very Poor)','F','G','H','Road  profile')

%Space domain profile from surface roughness
delta_sigma(1)=freq_new(2)-freq_new(1);
delta_sigma(125)=freq_new(125)-freq_new(124);

for i=2:124
    delta_sigma(i)=(freq_new(i+1)-freq_new(i-1))/2;
end

for i=1:500
    x(i)=i;
    total(i)=0;

    for j=1:125
        z(j)=sqrt(amplitude_new(j)*delta_sigma(j));        %meter
        total(i)=total(i)+z(j)*sin(freq_new(j)*x(i)*2*pi); %signal reconstruction
    end
end

figure(3)
plot(x,total)
xlabel('Distance(ft)')
ylabel('Elevation(ft)')
title('Road elevation profile-Space domain')

figure(2)
loglog(freq_new,amplitude_new)
xlabel('Spatial frequency(cycle/m)')
ylabel("power spectral density(m^2/(cycle/m))")
title('Road Profile-PSD')

Output:

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.