Re: Acceleration
- From: John Monro <johnmonro@xxxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Thu, 01 Nov 2007 11:25:23 +1100
Gareth wrote:
Gareth,Gareth wrote:acceleration.Hi
I am having trouble ( a lot of trouble ) trying to get meaningful and
timely acceleration data.
In essence, I have a wheel speed sensor that picks up around 40 to 100
pulses per wheel revolution (adjustable). This is captured by a 16bit
Micro/DSP.
All I want to assert, with reasonable accuracy is the wheelsteadyMy acceleration data at the moment is all over place.
How can I filter the data in real time so that I can assert wheel
acceleration? eg. DO I need to implement a Kalman filter or is there a
faster way of doing this?
In other words, as a test, I have fitted this setup to a car andtheacceleration does not show steady acceleration data - it's all overplace. I can see the acceleration component, but is is saturated withGareth,
acceleration spikes.
The methood you describe is very sensitive to any errors in pulse-timing
caused by road vibration and wheel eccentricity. Also, if you are taking the readings of a driven wheel you will have the influence of the pulsating torque of the engine as well.
I suggest the following:
1. Measure the time between pulses, as you are doing, and compute the differences. This gives you dt/d(theta) for 40 to 100 instants per revolution.
2. Compute the difference between these values to give you a set of
d^2t/d(theta)^2 values. The reciprocal of these gives you a set of acceleration values.
3. Average the acceleration values for one complete revolution of the wheel at a time to minimise errors due to wheel eccentricity.
4. If you can afford a slower response, put the acceleration values through a FIR filter, the longer the better.
Regards,
John
Hi John
Thank you for your reply. Most helpful. Please may I ask you to help me
through your formulas so that I can implement them.
You have given: A.) dt/d(theta) and B.) d^2t/d(theta)^2
I take it that in A, dt is the difference in time, what is d(theta)?
Sorry if I am coming accross as dumb, I just need some clarity please.
Do you have any simple working examples that I can play about with?
..Gareth
First a correction. As you already have the time between pulses,
step 1 is not needed.
On reflection, what I would suggest is:
Compute (1/t2 - 1/t1)* 2 /(t1 + t2)
Where t1 and t2 are successive measurements of the time between pulses.
This will give you a measure of the acceleration in degrees/s^2.
Filter or average the stream of acceleration values.
Multiply by (360 / pulses per rev.) to scale the results to degrees per second per second.
Unfortunatley I don't have any useful examples to send you.
Regards,
John
.
- Prev by Date: Re: Is there a scilab forum on the internet?
- Next by Date: Re: Why no flat topped windows?
- Previous by thread: more complicated address generation unit?
- Next by thread: Re: Acceleration
- Index(es):
Relevant Pages
|