0

I am working on balancing an air-spindle. For the unbalance analysis I use an accelerometer (NI device). I have the voltage signal from the accelerometer corresponding to the vibration of spindle at a particular frequency (rpm) saved in an excel file. To analyze the unbalance from this vibration signal I use the "fft" function in Matlab. My data is sampled at a sampling frequency of 100,000 Hz. I am using the same example code given in the fft documentation. In the documentation the fft has peak at the frequency corresponding to the frequency of sine wave signal (50Hz and 120Hz). When I use the same code for getting fft of my sampled data for a rotational frequency of 40Hz (2400rpm), I do not get the peak at 40Hz. Am I doing something wrong?? where should I mention the rotational frequency of my spindle in the fft code. I would like to know the phase and magnitude of vibration signal for my rotational frequency (40Hz). the fft plot looks like this. My code is as follows. Any help is much appreciated.

%For vibration analysis of signal without any trial mass.

filename = '2400RPM.xlsx';
sheet = 1;
xlRange = 'C40:C516039'; % Column C has sampled vibration data
x = xlsread(filename,sheet,xlRange);
T=1/100000;
Fs=1/T;
L = length(x);
t= (0:L-1)*T;
Y = fft(x);
mag1 = abs(Y/L);
mag = mag1(1:L/2+1);
mag(2:end-1) = 2*mag(2:end-1);
ph1 = rad2deg(Y/L);
ph = ph1(1:L/2+1);
ph(2:end-1) = 2*ph(2:end-1);
f=Fs*(0:(L/2))/L;

%PLOTTING RESULTS
%--------------------------------------

subplot(2,2,[1,2])
plot(t,x);
title('Vibration Signal: 2400RPM');
xlabel('Time (seconds)');
ylabel('Amplitude (voltage)');

subplot(2,2,3)
plot(f,mag);
title('Magnituge Plot');
xlabel('Frequency (Hz)');
ylabel('Amplitude');

subplot(2,2,4)
plot(f,ph);
title('Phase Plot');
xlabel('Frequency (Hz)');
ylabel('Phase (degree)');
Deep Shah
  • 15
  • 5
  • try 'spectrogram' and 'periodogram' – Mendi Barel Apr 19 '17 at 15:30
  • On a plot showing frequencies from 0 to 50000Hz, 40Hz will appear all the way to the left right on the y-axis which can make it hard to see. To better focus on the frequency of interest, use [`axis`](https://www.mathworks.com/help/matlab/ref/axis.html). For example: `axis([0 200])` should show 40Hz sufficiently far from the y-axis, and leave some room to also see a few harmonics if there are. – SleuthEye Apr 20 '17 at 00:20
  • Thanks a lot, I will try it. – Deep Shah Apr 20 '17 at 10:48

0 Answers0