Filter löschen
Filter löschen

How to conversion of Acceleration FFT to Velocity?

27 Ansichten (letzte 30 Tage)
Phakapol Tungboontina
Phakapol Tungboontina am 11 Mai 2022
Beantwortet: Bora Eryilmaz am 21 Mär. 2024
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

Akzeptierte Antwort

Star Strider
Star Strider am 11 Mai 2022
Bearbeitet: Star Strider am 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 Kommentare
Phakapol Tungboontina
Phakapol Tungboontina am 13 Mai 2022
Why script is error in line7 ?
vel = cumtrapz(t,[x y z]);
Star Strider
Star Strider am 13 Mai 2022
My code threw no errors.
I have no idea what the problem could be.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Bora Eryilmaz
Bora Eryilmaz am 21 Mär. 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.

Tags

Produkte


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by