Quantcast

Down-Home Vibrometer

HomeBuiltAirplanes.com

Help Support HomeBuiltAirplanes.com:

sming

Well-Known Member
Joined
Apr 10, 2019
Messages
106
Not sure if you really need "AI" and a neural network to do frequency analysis of your engine sound.
But an arduino is probably not the good plateform for that anyhow. Good idea though!
 

BrianW

Well-Known Member
Joined
Jul 2, 2018
Messages
140
Location
Altus SW Oklahoma
Not sure if you really need "AI" and a neural network to do frequency analysis of your engine sound.
But an arduino is probably not the good plateform for that anyhow. Good idea though!
There you go: probably don't need a smart sensor, but if you do, probably shouldn't use an Arduino. Ah, if only I had specified the use of an nRF52840 from Nordic Semiconductors, a 32-bit ARM® Cortex™-M4 CPU running at 64 MHz. with 1MB of program memory.. .
[forgive my making fun - this is a description of an Arduino Nano 33 BLE for $20) <g> ]
 

FinnFlyer

Active Member
Joined
Nov 19, 2019
Messages
30
Location
Bell, FL
OK, so I got the ADXL335 and hooked up with a photo sensor, mounted it to the neck of RWS redrive in my RV-3B and hooked it up to a 4-channel scope. Channel 1 for triggering and channel 2 for the z-axis from the ADXL335. The scope has a number of math functions, like Integral, Differential, Average, etc.
Running the prop up to about 1,400 RPM I simply could not see any pattern, even when removing the 25g weight the builder had added when balancing the prop with a Dynavibe. Other than problems with noise on the trigger signal (must be a bad ground because I filtered it to about 100 Hz), why can I not see a consistent pattern between the two trigger pulses? I mean, even if I did a single-short trigger, I should still see a definite acceleration during the 360 degree interval.

What am I missing?

I guess I'll try it on the RV-4 where I know the prop is out of static balance.

Finn
 

rv7charlie

Well-Known Member
Joined
Nov 17, 2014
Messages
1,153
Location
Jackson
Hey Finn,

Have you seen the comments from RV12 drivers that they've had problems balancing Rotax 912 props due to multiple vibration freqs from the engine itself, the gear box, and the prop? Since drives typically use 'hunting tooth' ratios, the freqs don't look related to each other.

Charlie
 

trimtab

Well-Known Member
Joined
Apr 30, 2014
Messages
120
Location
rocky mountains, rocky, usa
1. Collect data with a dummy channel indexed to an odd multiple greater than one of the rotating mass.

2. FFT the results.

3. Extract the magnitude and phase data, and relate it to the position to mass compensate.

This requires very little effort, and coarse data at some sampling rate greater than twice the rotational speed will eventually capture the vibrations similar in frequency to the engine speed. Go for 10x the engine speed to capture higher frequency components.

It is largely how tire spin balancers work, with almost no other tricks, without strain gauges.
 

FinnFlyer

Active Member
Joined
Nov 19, 2019
Messages
30
Location
Bell, FL
Hey Finn,

Have you seen the comments from RV12 drivers that they've had problems balancing Rotax 912 props due to multiple vibration freqs from the engine itself, the gear box, and the prop? Since drives typically use 'hunting tooth' ratios, the freqs don't look related to each other.

Charlie
No, I haven't, but that sort of makes sense, except the Rotary 13B is supposed to be smooth.
So the trick appears to be to extract only the prop vibrations from the signal. Probably what trimtab is talking about (I still need to wrap my head around his post).

Finn
 

FinnFlyer

Active Member
Joined
Nov 19, 2019
Messages
30
Location
Bell, FL
What are you using as a reflector on the prop blade?
Reflective alum tape on one bolt shank end, the other bolt ends and nuts black with a sharpie. I am getting an excellent signal from the one bolt.
But overnight I realized why my filtering doesn't work. I have a 100K resistor from photo transistor to +5V. Then at the other end of the cable 47nF to ground. I need to add a 100K resistor just before the 47nF. Looks like high frequency noise picked up along the length of the cable.

Finn
 

FinnFlyer

Active Member
Joined
Nov 19, 2019
Messages
30
Location
Bell, FL
1. Collect data with a dummy channel indexed to an odd multiple greater than one of the rotating mass.

2. FFT the results.

3. Extract the magnitude and phase data, and relate it to the position to mass compensate.

This requires very little effort, and coarse data at some sampling rate greater than twice the rotational speed will eventually capture the vibrations similar in frequency to the engine speed. Go for 10x the engine speed to capture higher frequency components.

It is largely how tire spin balancers work, with almost no other tricks, without strain gauges.
OK, so not as simple as I thought it would be.

1. Three pulses per rotation or one pulse for every three rotations?
2. The o'scope has a FFT match function. but minimum resolution is 50Hz, so that probably won't work. I'm not familiar with the math behind FFT. A scope normally shows amplitude as function of time. I think a FFT of that plots amplitudes (magnitudes) against frequencies (spectrum)? Is there a simple way (or formula) to express or do that?
3. Don't know how to do that. Unless a second component of a FFT plot would be the phase data. Can you explain how or point me to a tutorial?

Actually conceptually I do get it: the FFT lets me extract only the frequency I'm interested in (rotation of prop). Then by looking at phase and magnitude of just that, I should see what I'm interested in. So basically using FFT as a filtering function. Wouldn't an analog notch filter do the same thing?

Finn
 
Last edited:

trimtab

Well-Known Member
Joined
Apr 30, 2014
Messages
120
Location
rocky mountains, rocky, usa
The FFT (or DFT, in the case of digital acquisition), yields a real and imaginary part.

The square root of the sum of the squares is the magnitude of each spectral line.

The phase is extracted from the arctangent of the imaginary divided by the real.
 

BrianW

Well-Known Member
Joined
Jul 2, 2018
Messages
140
Location
Altus SW Oklahoma
OK, so I got the ADXL335 and hooked up with a photo sensor, mounted it to the neck of RWS redrive in my RV-3B and hooked it up to a 4-channel scope. Channel 1 for triggering and channel 2 for the z-axis from the ADXL335. The scope has a number of math functions, like Integral, Differential, Average, etc.
Running the prop up to about 1,400 RPM I simply could not see any pattern, even when removing the 25g weight the builder had added when balancing the prop with a Dynavibe.
/snip/

Finn
So the scope shows a straight line?
low level random noise?
high-level noise?
A scope shot would be worth a thousand words!

Anyway - the accelerometer signal needs a low pass filter: if you run the prop at 1400 rpm, you need to low pass the frequencies below 24Hz only - you only have one mass to balance with, per prop revolution. The peak to peak signal then represents the imbalance. The location of a peak in relation to the time between triggers indicates the position. Signal preparation is the name of the game!

Good luck!
 
Last edited:

FinnFlyer

Active Member
Joined
Nov 19, 2019
Messages
30
Location
Bell, FL
Now getting a decent scope signal. Two peaks, one slightly bigger than the other. Adding big washers to periphery of spinner do not alter them significantly. Then I spent most of yesterday learning about FFT. Programmed an Arduino Nano for prop balancing. Meanwhile I then found that my Rigol o'scope FFT function actually has the resolution I need at the frequencies I need. Going to try both next.

But for calibration, here is a question that has me stumped. How do you convert accelerometer readings to ips? One G is 386 inches/s/s. Do I just divide my G reading with 386 or is there a frequency involved. If so, why???

EDIT: Found this formula:
Formula for [A#] = {(.271 * 10^-3) * [V##] * [CPM]}

Formula for [A#] = {(.271 * 10^-3) * [V##] * [CPM]}

where acceleration is in Gs, velocity in ips and Frequency is cycles per minute (RPM).
Not sure I understand why, but I guess the faster you swing a mass around you the greater the force.

If running prop at 1000 RPM and want to detect 0.07 ips or less, we're looking for 0.015 Gs. If using the ADXL335, that has a sensitivity of 300 mV/G, that's 4.5mV!
Doubling the RPM to 2,000 we're looking to get the vibration below 9 mV from the ADXL335.

Using the FFT function of the o'scope I was not able to reliably detect a specific frequency. I have a 30Hz low pass filter after the output of the ADXL335. I thought I also had a 8.5 amplification using an op-amp, but that can't be true because it's DC coupled and DC input = DC output. As Brian wrote: "Signal preparation is the name of the game!"
If feeding the ADXL335 signal to an Adrduino Nano or Mega (has a 0 to 5V range and 4.9mV resolution) I'll probably first have to amplify the signal 100 to 200 times to get a reasonable resolution.

As for trimtab's "1. Collect data with a dummy channel indexed to an odd multiple greater than one of the rotating mass.", with the Arduino Nano program I'm trying to go a different route: make sure the sample period is one full rotation (beginning and end of sample same value: continuous). Then I won't have to apply a "window" to the FFT data.

Prop balancing software algorithm
0) Determine number of samples (512 for Mega and 128 for Nano)
1) Prompt user to press Start button when desired RPM has been stably reached.
2) Measure time from trigger pulse to trigger pulse 4 times, average and store as rotation period
3) Display as sample frequency and RPM
4) Take samples
5) Repeat sample taking, averaging with previous samples.
6) Perform FFT
7) Calculate amplitude and phase for rotational frequency (or 2 sets around rotational frequency bin)
8) Display amplitude and phase sets on 2x16 character LED display.

Currently in 7 the program finds max magnitude and displays phase and amplitude of that frequency, prior and following frequency bins. Should give same result, but may program it to alternate between the two methods to confirm results.

Finn
 
Last edited:
Top