How to create an ISO 8606 disturbance profile?

10 vues (au cours des 30 derniers jours)
Nathan Batta
Nathan Batta le 23 Fév 2021
Hello!
I am trying to create an ISO 8606 class D disturbance profile. I tried to follow the code described here but I am getting a disturbance with a magnitude of 0.2 meters. Many of the papers I have seen that utilize this standard have magnitudes around 0.02 meters so I wasn't sure if I was doing something wrong. I have dropped my code below. Does anyone have any experience with creating this profile? Thank you!
function [dist, ref, hx] = ISO8606TypeD(t)
delay=.4; %there is a .4s gap between when the front wheel hits the bump and the second wheel hits it
deltaIndex = t(2)-t(1);
iP = 100;
hx = generateProfile(t, iP);
hx = hx - hx(1);
dist(1,:) = [hx zeros(1,iP)];
dist(2,:) = [zeros(1,delay/deltaIndex) hx zeros(1,iP-delay/deltaIndex)];
ref = zeros(12, length(t));
figure(2)
hold on
plot(t,dist(1,:))
plot(t,dist(2,:))
title('ISO8606 Disturbance Profile');
xlabel('Time [s]');
ylabel('Disturbance [m]')
end
function hx = generateProfile(t, iP)
vel=10; % car velocity [m/s]
N = length(t) - iP; % Number of data points
L = t(end)*vel; % Length Of Road Profile (m)
k = 6; % A = 3, B = 4, C = 5, D = 6, E = 7, F = 8, G = 9
B = L/N; % Sampling Interval (m)
dn = 1/L; % Frequency Band
n0 = 0.1; % Spatial Frequency (cycles/m)
n = dn : dn : N*dn; % Spatial Frequency Band
phi = 2*pi*rand(size(n)); % Random Phase Angle
Amp1 = sqrt(dn)*(2^k)*(1e-3)*(n0./n); % Amplitude for Road Class A-B
x = 0:B:L-B; % Abscissa Variable from 0 to L
hx = zeros(size(x));
for i=1:length(x)
hx(i) = sum(Amp1.*cos(2*pi*n*x(i)+ phi));
end
[q , C] = psd_1D(hx, B, 'x');
f = q / (2*pi); % spatial frequency
PSD = 2 * pi * C; % power spectrum
figure(1)
loglog(f,PSD)
title('Power Spectral Density');
xlabel('Frequency (Hz)');
ylabel('PSD (m^3)');
end

Réponses (0)

Catégories

En savoir plus sur Parametric Spectral Estimation dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by