How to conversion of Acceleration FFT to Velocity?

조회 수: 22 (최근 30일)
Phakapol Tungboontina
Phakapol Tungboontina 2022년 5월 11일
답변: Bora Eryilmaz 2024년 3월 21일
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

채택된 답변

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

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Bora Eryilmaz
Bora Eryilmaz 2024년 3월 21일
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.

카테고리

Help CenterFile Exchange에서 Vibration Analysis에 대해 자세히 알아보기

태그

제품


릴리스

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by