How to conversion of Acceleration FFT to Velocity?

21 vues (au cours des 30 derniers jours)
Phakapol Tungboontina
Phakapol Tungboontina le 11 Mai 2022
Dear friends
I have accerelation of vibration data from the device, I need to convert it into velocity. I've tried several times and still stuck, I can't import that data into the formula/function. I've attached an excel file I got from the device. maybe you can download and see the excel files for complete information. Could you guys help me, what function/formula should I write? Thank You

Réponse acceptée

Star Strider
Star Strider le 11 Mai 2022
Modifié(e) : Star Strider le 11 Mai 2022
Perhaps something like this —
T1 = readtable('https://www.mathworks.com/matlabcentral/answers/uploaded_files/994900/fantest.xlsx%20-%20Sheet2.xlsx', 'VariableNamingRule','preserve')
T1 = 717×6 table
hours Current Voltage axis x axis y axis z _____ _______ _______ ______ ______ ______ 1 0.182 228.8 -0.14 -0.25 0.84 2 0.181 228.8 -0.1 -0.22 0.84 3 0.182 229 0.07 -0.06 0.86 4 0.182 228.9 0.04 -0.12 0.86 5 0.181 228.7 0.02 -0.08 0.85 6 0.182 228.9 0.15 -0.01 0.86 7 0.182 229.1 0.02 -0.1 0.85 8 0.181 228.8 0.16 0.04 0.86 9 0.181 228.9 0.02 -0.12 0.84 10 0.181 228.6 0.25 0.14 0.89 11 0.181 228.7 0.19 0.1 0.87 12 0.181 228.9 -0.17 -0.23 0.84 13 0.181 228.8 0.17 0.09 0.88 14 0.182 229.1 0.3 0.17 0.89 15 0.182 229.2 0.29 0.12 0.87 16 0.182 229.5 0.12 -0.01 0.86
VN = T1.Properties.VariableNames;
t = T1.hours;
x = T1.('axis x');
y = T1.('axis y');
z = T1.('axis z');
vel = cumtrapz(t,[x y z]);
velt = sqrt(sum(vel.^2,2));
figure
subplot(4,1,1)
plot(t, vel(:,1))
grid
title('x')
ylim([-1 1]*700)
subplot(4,1,2)
plot(t, vel(:,2))
grid
title('y')
ylim([-1 1]*700)
subplot(4,1,3)
plot(t, vel(:,3))
grid
title('z')
ylim([-1 1]*700)
subplot(4,1,4)
plot(t, velt)
grid
title('Net')
ylim([-1 1]*700)
sgtitle('Velocity')
Fs = 1;
V = lowpass(T1.Voltage, 0.015, Fs);
I = lowpass(T1.Current, 0.015, Fs);
figure
plot(t, V./I)
grid
xlabel('Time')
ylabel('Z')
title('Impedance')
EDIT — (11 May 2022 at 22:36)
The ‘z’ velocity appears to be integrating a constant, so correcting for that would likely be appropriate, since it is unlikely that a constant acceleration leading to a linearly-increasing velocity is what is actually being recorded here.
I doubt that taking the Fourier transform of the velocity would be very revealing, so I did not do it here.
.
  2 commentaires
Phakapol Tungboontina
Phakapol Tungboontina le 13 Mai 2022
Why script is error in line7 ?
vel = cumtrapz(t,[x y z]);
Star Strider
Star Strider le 13 Mai 2022
My code threw no errors.
I have no idea what the problem could be.

Connectez-vous pour commenter.

Plus de réponses (1)

Bora Eryilmaz
Bora Eryilmaz le 21 Mar 2024
The new convertVibration function in MATLAB R2024a release of the Predictive Maintenance Toolbox lets you compute baseline-corrected and filtered acceleration, velocity, and displacement signals from vibration measurements using a single sensor output from either an accelerometer, velocity sensor, or displacement sensor.

Catégories

En savoir plus sur Install Products dans Help Center et File Exchange

Tags

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by