Electronic – Linear accelerometer on a rotating platform

accelerometergyrophysicssensor

I want to measure the linear speed of a vehicle putting the accelerometer on its wheel. Assume the vehicle is moving at a velocity 70 KMPH and its wheel has a radius (R = Radius) 30 CM. I made this analogy, If the accelerometer will be placed on the wheel at position R/2 whose Z axis is now orthogonal to the wheel and let us assume there is no tilt in X and Y axis.

Image Axis of Sensor

The Accelerometer reading in X and Y should give the net accelerometer which is a_translational + a_rotational + TIGA = (R/2)alpha + (R/2) omega ^2 + TIGA where aplha is the angular accelartion and omega is the angular velocity and TIGA is the Tilt induced gravitational accelarion.

If my above observation is correct, how can i calculate TIGA factor? Will it change with the rotation degrees? How to balance it?

For calculating the speed (to correlate with 70 KMPH) i should integrate the accelration value in that period. In this case? Which accelration value from the accelrometer data should be considered? Should the a_rotational and TIGA factor must be removed from the data before integration?

Best Answer

This is what you are going to read from your accelerometer: $$ \begin{align*} a_{r}= & \frac{R}{2}\left ( 2\cos\vartheta \: \ddot{\vartheta } - \dot{\vartheta}^{2}\right )& +g \sin \vartheta\\ a_{t}= & \frac{R}{2}\left ( \ddot{\vartheta } - 2\sin\vartheta \: \ddot{\vartheta } \right ) & +g \cos\vartheta \end{align*} $$ and you want to get $$ v=R\dot{\vartheta} $$ If your speed is high enough (\$v=R\dot{\vartheta }\gg \sqrt{2gR} \approx 8.7km/h\$) you can neglect the other two factors and assume \$v=\sqrt{2a_{r}/R}\$ (this is the case for a normal travel by car).

Anyway the radial component can be easily filtered to obtain just \$\dot{\vartheta }\$, as the frequency of \$\vartheta\$ is way higher than the frequency of \$v\$.

I suggest you to simulate these equations and try to find a good strategy for your needs before going further. The following is a matlab code to simulate an experimental speed profile.

v = [20*ones(1,50*1e4) 20*2.^(-(1:(50*1e4))/(50*1e4)) 10+20/(50*1e4)*(1:(50*1e4)) 30*ones(1,50*1e4)];
plot(v)
disp('Velocity 72kph exponentially decreasing to 36kph then linearly increasing to 144kph')
pause

x = cumsum(v)/1e4;
theta = x / R;
xs = x + R/2*cos(theta);
ys = R/2*sin(theta);
xsd = diff(xs)*10000;
xsdd = diff(xsd)*10000;
ysd = diff(ys)*10000;
ysdd = diff(ysd)*10000+9.81;
ar = xsdd .* cos(theta(2:end-1)) + ysdd .* sin(theta(2:end-1));

plot(ar)
disp('Radial acceleration')
pause

plot(R*sqrt(-ar/R*2))
disp('Velocity recovered from radial acceleration')
pause