FFT Based Order Tracking

I'm doing order analyis but unable to adjust the x-axis to find out the RPM orders. Also my tacho signal sampled synchronously in time, .mat timeseries result attached with this post.
Please guide me
In this link you will find out what I'm actually trying to do.
https://community.sw.siemens.com/s/article/what-s-an-order
Time= tsout.time;
Enc= tsout.Data(:,1);
k=1;
Time_old=0;
for i =1:(length(Enc)-1)
if Enc(i+1) ~= Enc(i)
Delta_T(k)=Time(i+1)-Time_old;
Time_old=Time(i+1);
k=k+1;
end
end
B = Delta_T(2:801); % delta T time for 8 cycles
Z = detrend (B);
z = Z;
R = 100; % event per revolution
L = length(z);
xf = fftshift(fft(z));
tc = (0:(1/R):((length(z)-1)/R));
plot (tc,abs(xf));

Answers (1)

hello
I was not able to understand the second part of your code
If the target was to compute the RPM value vs time , look here after
see the attached function used here
FYI, I had to "regenerate" the time values (assuming this is sampled at fixed sampling frequency) , because du to rounding (short format) the time precision was insufficient to compute the RPM with good accuracy
Time= tsout.time;
Enc= tsout.Data(:,1);
samples = length(Time);
dt = (Time(samples) - Time(1))/ (samples-1);
Fs = 1/dt;
Time2 = (0:samples-1)*dt;
n = 1500;
% find crossing points / positive slope / threshold = 2.5 V)
threshold = 2.5 ;
[~,t0_pos,s0_pos,~,~,~] = crossing_V7(Enc(1:n),Time2(1:n),threshold,'linear');
figure(1),
plot (Time2(1:n),Enc(1:n),'b',t0_pos,s0_pos,'r+');
delta_time = diff(t0_pos);
rotation_freq = 1./delta_time;
RPM = 60*rotation_freq;
figure(2),
plot (t0_pos(2:end),RPM,'b');
xlabel('time (s)');
ylabel('RPM');

8 Comments

Sorry maybe I think my second part of code mislead you. My target is to find out this one autopower. I know my shaft speed 1800 RPM.
I have this angle synchronous sampling data with help of incremental shat encoder. Also on the above code you can see I found out delta t time in which each increment but when I implement FFT on my data order axis is not correct.
you supplied only the tachometer data, so I assume you also have the vibration signal somewhere ... acquired synchronously with the tacho
Yes, I just need to plot it on the correct order axis.
so , my question is if you can supply the vibration data as well !
Actually I don't have any vibration data. I develope my engine excitation model based on similulink. Then with help of Incrementenal shaft encoder I got these readings. Once I get my order result correctly. I want to attach a torisonal vabirational damper with my engine and need to check what changes occur in my result.
ok , so let's continue once you have your data available
good luck !
Sorry, I want to rephrase my question do we need vibration data seprately to do the order analysis. Actually I'm quite new to this topic also if it"s possible can you provide me some refrences on this topic where it done like that.
You have to acquire the data simulteanously (synchro) with the tacho signal
there are basically two methods :
  • acquire both channels at a fixed sampling rate and do the resampling for order analysis afterwards
  • acquire at trigger events (rising slope of your tacho signal); in this case you have fixed number samples per shaft revolution and you can easily and directly (real time) do order analysis; it's also possible afterwards - no limitations, except that this method will not allow you to see other vibrations that the synchronous orders; that's why the method depends if you want to have a complete map with orders and non synchronous vibrations plotted in 3D map, or if you are only interested in orders analysis
there is quite a lot of information available on the internet :
...

Sign in to comment.

Categories

Asked:

on 3 Feb 2021

Commented:

on 4 Feb 2021

Community Treasure Hunt

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

Start Hunting!