Maker Pro
Maker Pro

Vibration analysis???



Jan 1, 1970
I would like to construct a rudimentary vibration analysis system.
The goal would be to find the angular postition of the "heavy
side" of a shaft rotating at ~2400rpm (40 rev/sec). Ideally, the
system should report where (and how much weight) needs to be
added to the shaft opposite the heavy side. Think of how a tire
shop "spin balances" your new tires...

I know such systems can be purchased; however I have more time
than money...

I know about accelerometers, how to condition them, interface
them to an ADC, and have a strong background in analog and digital

One option that I see is a purely analog solution, which uses
an optical pickup to provide a single pulse per shaft rotation as a
reference, a PLL to get a clock locked to 50x or 100x the shaft
rotation rate, a switched-capacitor synchronous clock-tuned bandpass
filter to select only the fundamental of the accelerometer
signal, and then to use an oscilloscope to display the phase of
the filtered accelerometer signal relative to the optical pickup zero
crossing. A refinement would be to use a scope with a polar display.

I am also looking for some algorithms to do this in DSP software.
I am familiar with writing code for the ADSP2189, TMS430, Cygnal8051,
various PICs and VisualBasic on PCs. I dont have a strong DSP
background, so I am looking for suggestions of basic computation
based methods which would do this task.

At 40hz, I think it may be possible to implement this on a laptop,
using the laptop screen as a graphical or polar display. It is not
even necessary to update the display in real time, so postprocessing
a few revs worth of buffered ADCed accelerometer data may be

A stand-alone DSP chip driving an lcd or circle of leds display
would be a cadillac solution.

Looking for ideas.



Jan 1, 1970
I suggest the use of an optical phase quadrature shaft encoder (e.g. HP or
sim.) to deduce shaft position. This avoids the need for PLLs to
interpolate within a revolution. The PQ encoder should drive a
parallel-readable up/down counter.

You can place the encoder inline on the existing shaft if the shaft dia. is
rite, or run a toothed rubber belt to an idler shaft with the encoder on
it. Larger toothed wheels (1:1 ratio) will reduce the lumpiness of the
drive transfer function.

You can get resolutions up to several thousand points/revolution, but I
would assume that you are only looking for a degree or so. I recommend a
power of two (512, 1024 etc.) so that simple AND masking can give the
position within the current revolution without tricky modulo 360 stuff.

Some encoder models have an optional zero detect output, which can be very
handy for setting accurate zero or other reference points.

If the CPU is quick enough, you could poll the up/down counter for each
count change and store the force sensor reading for that instant.

You will need a fairly fast (>= 100Ksps) ADC. If it has a digital
anti-alias filter, you will need to allow for the time delay it introduces.

Due to the vagaries of bearing rattle etc., you may need to average the
measurements with the corresponding points from previous revolutions to
reduce noise. A variable averaging time constant is very handy here to let
you get a stable reading or assess the bearings as desired.

With a bit of effort, you could make the display indicate the part of the
rotor which needs to be brought to the top for manual attention.

Interesting job.
Jim Adamthwaite