Re: Calculating velocity from position in a noisy enviroment



On Sat, 30 May 2009 16:21:08 +1000, James254 wrote:

Hi,

I've got a problem with calculating velocity from position data. Here's
what I've got

* A variable resistor that tells you the position of the object to be
tracked
* An A-D converter that samples the resistor every 10ms * I can track
the position of the object and output a control signal to my motor to
stop it at the desired point * Inertia keeps the object moving and I get
oscillations * I believe I can calculate velocity simply by saying V = (
Position(Current) - Position(Previous) ) / Sampling Time * When I
examine my calculation by outputing it to a port I get wild positive and
negative variations due to noise from the variable resistor * I can't
add an external filter to the system, I must deal with the noise in
software.
* I've tried a several types of filter (Averaging and simple low pass
filters) but the signal is still too noisy.

Do you have any suggestions?

1: Change the plant. Sometimes a mechanical arrangement just isn't
controllable in a satisfactory way, and you need to do something about it.

1a: Use a better pot.

1b: Use a different position sensor, such as an encoder, an RVDT, or a
resolver.

1c: Put a tachometer or an encoder on the motor itself (this has
advantages beyond just using a better sensor, if your motor has to go
through any sort of a reduction drive).

2: Filter more. I assume that you've already tried this, and can't find
a good tradeoff between how heavy a filter you need for noise suppression
vs. how light a filter you need for good control, but I thought I'd toss
out the suggestion.

2a: Knowing the relevant theory can help in cases like this: http://
www.wescottdesign.com/articles/zTransform/z-transforms.html; http://
www.wescottdesign.com/actfes/actfes.html.

3: If you need snappy positioning but can get away without the worlds
best disturbance rejection, consider using feed forward.

3a: Cleverly applied, the alpha-beta filter cited in another response
will let you construct a gizmo called an "observer" that gives you a nice
structured way to make a system with lots of feed forward that does what
you want -- but it helps to know your control theory.

4: Change your amplifier. If you're driving the motor with a current
amplifier then try changing it to a voltage amplifier -- this has the
effect of making the motor more of a constant-velocity device which adds
some nice damping, at the cost of not being able to directly limit
current to the motor.

4a: If you arrange your amplifier with just the right level of negative
resistance you can _really_ make it a constant velocity drive, with a
whole big pile of caveats. Do a web search on "tape capstan drive" to
see how it's done.

5: Ask questions like this on sci.engr.control. There's folks there
with lots of experience; if you make sure to explain your circumstance
they'll help you out as much as they can.

--
http://www.wescottdesign.com
.



Relevant Pages

  • Re: Filtering a tachometer generator
    ... the ripple is easily dealt with. ... The filter needed to smooth the ripple at 1 rpm ... > filter whose cutoff and group delay track the motor speed. ... filter heavily so that your system works well at low speeds. ...
    (comp.dsp)
  • Re: Active Filter Design: Motor Controller Current Sensing
    ... I am using PWM to control the motor. ... > pass filter the signal first, but I am not sure how to decide on the ... of unwanted signals at the filter input and output. ... bandwidth and watch the phase response carefully. ...
    (sci.electronics.design)
  • Re: Shop vac that doesnt pump dust?
    ... Then I remove the internal filter. ... Filters keep the dust from ruining your motor bearings/brush ... air through the motor for cooling. ... shop vacs I've ever looked at have a separate path for motor cooling ...
    (alt.home.repair)
  • Re: Shop vac that doesnt pump dust?
    ... Then I remove the internal filter. ... Filters keep the dust from ruining your motor bearings/brush contacts. ... air through the motor for cooling. ... shop vacs normally have a float ...
    (alt.home.repair)
  • Calculating velocity from position in a noisy enviroment
    ... I've got a problem with calculating velocity from position data. ... A variable resistor that tells you the position of the object to be ... * I can't add an external filter to the system, I must deal with the noise ... I've tried a several types of filter (Averaging and simple low pass ...
    (comp.arch.embedded)

Loading