Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

Rotating machinery imbalance

Status
Not open for further replies.

JMarkWolf

Electrical
Dec 20, 2001
40
0
0
US
Forgive my multiple posts but I have been directed to a couple different forums to better answer my question.

I have an embedded DFT that identifies the velocity magnitude and phase of the heavy spot on rotors, from time-series accelerometer and key-phasor data.

I wish to validate and eventually certify these results.

Can someone on the forum refer me to an individual or lab that offers such services?
 
Replies continue below

Recommended for you

Sorry. I had hastily edited and shortened this capture file. Now each channel has 2000 correlating samples.

The enigmatic filename, CH13.csv was simply generated by my Tektronix scope (meaning channels 1 & 3).

My embedded algorithm counts complete revolutions in the keyphasor channel and disregards any data past the last full revolution, or 5000 samples, whichever happens first.

There are 16 full shaft revolutions represented in this data set. Each positive "pulse" in the keyphasor channel is the start of a new revolution (0 degrees).

As before, the first column is the keyphasor strobe data, and each sample in this column corellates directly to the sample in the second column, which is the raw acceleration data.

The sample rate is 1mS, the accelerometer sensitivity is 1200mV per g, the amplitudes for both channels are in volts.

Each pair of samples is digitized "simultaneously" (some insignificant latency applies), with a 12-bit A/D.
 
 http://files.engineering.com/getfile.aspx?folder=b36315be-0d30-42d2-a814-22fea9879950&file=ch13.csv
For first order I get an amplitude of 0.042V for the second channel, energy correction, with a phase of 1.93 radians, where 0 radians means that the peak of the first order sinewave lines up with the rising ramp of the tacho pulse.

Your data is very dirty, it would probably be a good idea to use a low pass filter on both channels.

I am a bit baffled, you appear to have an 8 bladed helicopter!



Cheers

Greg Locock


New here? Try reading these, they might help FAQ731-376
 
Greg wrote: "For first order I get an amplitude of 0.042V for the second channel"

Need velocity in IPS please.

Greg wrote: "energy correction"

Huh?

Greg wrote: "phase of 1.93 radians"

Close, 1.93rads = 110.5 degrees. I show 113 degrees.

Greg wrote: "Your data is very dirty"

Yes it is, and I'm not sure why. The MEMS accelerometer has an integral 2-pole Besel filter with nominal roll-off at 50Hz. Frequency of interest is 8.7Hz (fundamental shaft rotation freq), and I'm sampling at 1Khz. Don't care about the full spectrum. The big spike at 70Hz coincides with engine RPM (4200RPM). The other at 250Hz is a mystery at this point. That's well beyond the accelerometer roll-off. Might be some noise on my circuit board.

Greg wrote: "I am a bit baffled, you appear to have an 8 bladed helicopter!"

Nope, can only afford two blades :)
 
Applying a window minimizes leakage but also changes the energy and spectral magnitude of resulting output. A correction factor is applied to correct for this. Two strategies available: energy correction factor or amplitude correction factor. Energy correction factor preserves overall energy. Amplitude correction factor preserves magnitude of spectral peaks... at least for a single frequency sinusoid. For multiple sinusoids, I'm not sure. I guess Greg is thinking energy correction factor does a better job at giving the correct amplitude of the peak of interest when there are multiple other frequencies present.

=====================================
Eng-tips forums: The best place on the web for engineering discussions.
 
Actually I should've waited for Greg to respond. I looked at the data quickly and couldn't figure out what the heck you have provided.

=====================================
Eng-tips forums: The best place on the web for engineering discussions.
 
The amplitude of an fft can be scaled in at least 4 different ways, I have scaled it so that the rms of the signal is the same as the rms of the fft. We call that energy correction. I actually screwed up by a factor of sqrt(2)

The phase is very dependent on the details of how the fft is done. I used synchronous sampling at several different resolutions, the number I gave was the average for the different resolutions.

revs per frame/Vrms/phase
2.000000 0.054359 1.789612
3.000000 0.055126 1.868418
4.000000 0.057182 1.905492
5.000000 0.058639 1.937415
6.000000 0.059522 1.952189
7.000000 0.059790 1.955220
8.000000 0.059752 1.954846
9.000000 0.059860 1.958020
10.000000 0.060458 1.969961
11.000000 0.060310 1.959680
12.000000 0.059962 1.954206
13.000000 0.059732 1.923215
14.000000 0.059209 1.904673
15.000000 0.059458 1.885334
16.000000 0.059967 1.899490

Cheers

Greg Locock


New here? Try reading these, they might help FAQ731-376
 
Attached is a plot of the timewaveform of the data and pulses.

The pattern as Greg said has a lot more going on than simple once per revolution sinusoid. Additionally I don't think it's even periodic at once per revolution (there seem to be some erratic changes). One might think the correction would involve something other than simple balancing.

Since you mentioned 30 degree error. I noticed the width of the pulse is 0.014. The separation between pulses is 0.114. The width of the pulse is 44 degrees. Have you consistently worked with the rising edge, middle or trailing edge?

=====================================
Eng-tips forums: The best place on the web for engineering discussions.
 
 http://files.engineering.com/getfile.aspx?folder=fb7cb67f-5ce2-4b36-8af0-874b7417712f&file=JMarkWolf.ppt
My objective was not to get a single number, just to get a picture of the variability.

Slide 2 shows the magnitude and phase computed based on a rolling one-period window. There is plenty of variability. If the only thing present were harmonics of the fundamental, the result would be stable. It is far from periodic at rotating speed.

Slide 3 shows the magnitude and phase computed based on a rolling 10-period window. There is still some variability as the window slides.

My results roughly agree with Greg. I would eyeball from slide 3 the magnitude is around 0.6 and the phase is around –1.9 radians. I used a lagging phase convention, I assume Greg used a leading phase convention.

Below is the code FWIW. It is based on observation that one rotation corresdonds to 114 samples and the rising edge phase reference occurs at 0.181 +/- Integer*Rotation. I set Nperiods between 1 and 10 for slides 2 and 3 and respectively
Code:
Public Function Mag(yrange As Range, trange As Range)

' yrange contains the beginning of the range for values
' trange range contains the beginning of the range for time

' Constants for this problem

Const WindowLength As Integer = 114        ' Number of samples in on rotation period
Const dt As Double = 0.001
Const tref As Double = 0.181        ' Reference time at Rising Edge.
    ' Phase is 0 if the sinusoidal peak occurs at this time
    ' phase is positive if sinusoidal peak occurs slightly after this time (LAGGING PHASE CONVENTION)
Const Nperiods = 10 ' Number of Periods to use for averaging

Dim counter As Integer
Dim t As Double, y As Double
Dim a As Double        ' cos term of fourier series
Dim b As Double        ' sin term of fourier series
Dim pi As Double
Dim w As Double        ' radian frequency corresponding to rotating speed

    pi = Application.pi ' A constant
    w = 2 * pi / (WindowLength * dt) ' Rot speed in rad/sec

    a = 0 ' initialize cos term
    b = 0 ' initialize sin term
    For counter = 1 To WindowLength * Nperiods
        t = trange.Offset(counter - 1, 0)
        y = yrange.Offset(counter - 1, 0)
        a = a + y * Cos(w * (t - tref))
        b = b + y * Sin(w * (t - tref))
    Next counter

    ' Find magnitude by combining cos and sine components
    Mag = 2 * Sqr(a ^ 2 + b ^ 2) / WindowLength / Nperiods

    ' Find the phase..
    ' atan2 function takes argument x, y
    ' find angle as a LAG angle.  Cos is 0 ref, Sin lags cos.
    Dim Ang As Double
    ' Ang = Application.WorksheetFunction.Atan2(a, b)

End Function
Actually I have a redundant function named Ang which does the same computation but outputs in a different cell.


=====================================
Eng-tips forums: The best place on the web for engineering discussions.
 
 http://files.engineering.com/getfile.aspx?folder=aa8dc684-96e4-4650-9865-a03542faac87&file=JMarkWolfR2.ppt
Attached is the excel file I used to produce previous ppt fwiw.
Notes
1 - It is in manual recalculation mode so you have to prese F9 before any recaclulation occurs.
2 - Note there are provisions for rescaling and browsing the data in the plot tab.
3 - The label "degrees" in the angle is wrong.. should be radians.

=====================================
Eng-tips forums: The best place on the web for engineering discussions.
 
 http://files.engineering.com/getfile.aspx?folder=705c153b-da03-4ad9-b287-e91951d5f40d&file=JMarkWolfR2.xls
Here's a waterfall plot of the first ten orders of the data, with progressively finer resolution. The lowest line has a resolution of 0.5 order, the final one has a res of 1/16 of an order.

The line of interest is the first order. You can see why I thought the rotor must have 8 blades.



Cheers

Greg Locock


New here? Try reading these, they might help FAQ731-376
 
You asked for ips.
0.06 volts peak/0
Using 1.2 volts/g conversion, that equates to 0.05 g's pk/0
At a frequency of 8.77 hz, that corresponds to 0.35 ips pk/0


=====================================
Eng-tips forums: The best place on the web for engineering discussions.
 
Wow, that was a little like drinking from a fire hose! :)

Who woke you guys up? :)

The more I learn, the less I know. I have no expertise in this subject matter so I rely on others'.

I purchased the embedded DFT, and my objective was to get some corroboration on the result report, and to get a "tie breaker" between the report my algorythm is generating and that from a commercial balancer (which may well be out of calibration).

Greg's phase and velocity report is quite close to mine:

Greg's 0.34ips at 110.5 degrees
Mine 0.35ips at 113 degrees

Thank you Greg & Pete

As for Pete's coment on the periodicity, run a 7Hz to 10Hz bandpass filter on the accel data (2nd column) and the periodicity jumps right out.

ElectricPete wrote: "One might think the correction would involve something other than simple balancing"

Nope. The velocity and phase report specifies the location of a "dot" on a polar chart, specific to a particular aircraft. Striking a line from this dot to notes on the margins of the chart, point to the "corrective action". Apply the corrective action, then take more data. The next report will indicate the "quality" of the corrective action. If the velocity magnitude decreases, the dot is closer to the center of the chart. The center of the chart is perfect (un-achievable) balance. Repeat process until best balance is reached.

This is how every rotor/propeller balancer (icluding Chadwick-Hellmuth) I've used works.
 
First comment – the magnitude 0.35 you computed was pk/0, not rms, correct? pk/0 is what I came up with. Greg said rms.

As for Pete's coment on the periodicity, run a 7Hz to 10Hz bandpass filter on the accel data (2nd column) and the periodicity jumps right out.
My comments were:
1 – The signal is not stable. Stable may be a vague term, but where I was headed is that it does not seem valuable as a calibration reference since the 1x component seems to vary over time.
2 – The entire waveform is not periodic at 1x (if it were the higher frequency content would not influence the computation of 1x in my algorithm as they did).

Further on discussion of 1, I performed filtering.
Slide 1 is original waveform and LP-filtered waveform.
I chose Kaiser Bessel 12hz cutoff, 5hz transisition width (about 2.5hz on each side), Allowable deviation at ends of transition width: 0.05, Resulting FIR Length: 253 Samples (output has half that many samples trimmed from each end). It does not preserve phase, but good enough to judge magnitude and phase stability imo.

Original and LP filtered waveform in slide 1.
Zoom-in on LP filtered waveform in slide 2.

Slide 3 is result of LP filtering. Since I know the periodicity of the signal of interest, I performed LP filtering by subtracting out a rolling average of length 115 samples, centered on the point of interest. You can already see substantial variation in the peak-to-peak values, more than just expected by result of sampling effects missing the true peak.

Slide 4 is sliding 1 period computation. The magnitude floats from 0.06 to 0.07 and phase floats –2.5 to –2.7 (again magnitude of phase no longer correct due to filtering, but variability is evident).

Slide 5 is zoom-in of the 1-period computation. Again you see magnitude vary 0.06 to 0.07. This is what I meant by not stable

Slides 6 and 7 are sliding 10-period computation. There is a variability 0.064 – 0.066 which has some sinusoidal 1x component in it.

Reviewing my algorithm:
1 – We do have very good knowledge of the fundamental period. There are 16 pulse rising edges and they are all separated by exactly 114 samples.
2 – The period is (114+1)*dt. 114 is the correct length for the sum since we don't want to count both endpoints (only one or the other). However I think I should have used 115 when computing w... i.e. should have used w = 2 * pi / ((WindowLength + 1) * dt).instead of w = 2 * pi / ((WindowLength) * dt)
3 – When I "corrected" w to be 2 * pi / ((WindowLength + 1) * dt) on slides 8 and 9, the once per revolution variability significantly unexpectedly increased. That was a surprise to me. I conclude for some reason using w = 2 * pi / ((WindowLength ) * dt) gives a better estimate than w = 2 * pi / ((WindowLength + 1) * dt), but I honestly don't know why. I would be interested to hear comments on why that is.
4 – Filtering seems to have slightly increased the magnitude unexpectedly – I don't know why that happened, but I'm not going to worry about that.

Regardless of those questions, I am left believing your signal has variability in the 1x component. I can understand you want to validate your algorithm using some kind of realistic signal, but I would think for calibration purposes you would want to use a signal with a repeatable (stable) 1x component.

This is how every rotor/propeller balancer (icluding Chadwick-Hellmuth) I've used works.
I didn't say this is not the way to balance. My comment was that some other corrections beyond simple balancing may be appropriate.


=====================================
Eng-tips forums: The best place on the web for engineering discussions.
 
 http://files.engineering.com/getfile.aspx?folder=21311402-49e7-416a-9403-f98f748b89e3&file=JMarkWolfPost2.ppt
Correction:
"Slide 3 is result of LP filtering..."
should have been
"Slide 3 is result of HP filtering..."

=====================================
Eng-tips forums: The best place on the web for engineering discussions.
 
I agree, I'd use a much longer time interval, something like 20 seconds of data.

There is a measure called 'coherence' that is an indication of the quality of your data, and would allow you to select the best compromise between resolution and total sample time.

It is defined as

sqrt((mod(Fxy))^2/(Fxx.*Fyy))

Where Fxy is the transfer function (FRF) between channels x and y

This I have always understood to be the ratio of the length of the vector sum of the averages to the total of the magnitudes of each vector, at each frequency.

If the signals are correlated you get 1, if not it drops towards zero. Essentially it is a measure of the phase stability of the transfer function at the frequency of interest.



Cheers

Greg Locock


New here? Try reading these, they might help FAQ731-376
 
4th column is coherence

2.000000 0.054359 1.789612 0.941900
3.000000 0.055126 1.868418 0.978263
4.000000 0.057182 1.905492 0.989251
5.000000 0.058639 1.937415 0.995448
6.000000 0.059522 1.952189 0.996754
7.000000 0.059790 1.955220 0.995691
8.000000 0.059752 1.954846 0.997073
9.000000 0.059860 1.958020 0.997832
10.000000 0.060458 1.969961 0.999614
11.000000 0.060310 1.959680 0.999743
12.000000 0.059962 1.954206 0.999499
13.000000 0.059732 1.923215 0.999489
14.000000 0.059209 1.904673 0.999327
15.000000 0.059458 1.885334 0.999931
16.000000 0.059967 1.899490 1.000000

From this I'd say that 0.2-0.33 (ie 3-5 revs per frame) orders is a good compromise between enough resolution to get good phase stability, and enough averages.



Cheers

Greg Locock


New here? Try reading these, they might help FAQ731-376
 
Actually that is misleading, I think the coherence is saying that there is not enough data. Reason is that these are not independent frames of data, the overlap varies from 50% to 100%.

Also the integration from acceleration to velocity causes a 90 degree phase shift, so I'm not really working in velocity, I have rescaled the volts into velocity magnitude at that frequemcy, not the same thing.

Cheers

Greg Locock


New here? Try reading these, they might help FAQ731-376
 
Status
Not open for further replies.
Back
Top