Tuesday, February 21, 2017

Integration of Accelerometers

We have several 3-axis accelerometers attached to a rigid body at arbitrary positions. The rigid body is moving at arbitrary linear and angular movements, but the accelerometers can only sense linear accelerations. Consequently, the information about angular movements of the rigid body is not available.

A question is whether it is possible to integrate them to get an equivalent accelerometer without using angular movement information.
After consideration, I think the answer for that question is 'YES'.

If there are n accelerometers with accelerations,
$$ \mathbf{a}_1, \mathbf{a}_2, \mathbf{a}_3, \ldots, \mathbf{a}_n, \,$$
at locations,
$$ \mathbf{P}_1, \mathbf{P}_2, \mathbf{P}_3, \ldots, \mathbf{P}_n, \,$$
respectively, the value of the equivalent integrated accelerometer, \( \mathbf{a}_{eq} \), is
$$ \mathbf{a}_{eq}= \frac{1}{n} \sum_{i=1}^{n} \mathbf{a}_{i} \,$$
and its location, \( \mathbf{P}_{eq} \), is at
$$ \mathbf{P}_{eq}= \frac{1}{n} \sum_{i=1}^{n} \mathbf{P}_{i}. \,$$
To check the equations, I have made a simulation in Octave. The source code for the simulation is available at https://github.com/yan9a/Accelerometer_Integration.

The name of the main file to run is acc_i.m. It uses GenerateSin.m function to generate sinusoidal waveform for given peak and frequency. The function CalculateAcc2.m calculates the acceleration at location {j} using an acceleration at location {i} and angular motion of the rigid body. AddWhiteNoise.m function adds normally distributed noise with a given standard deviation to an input signal. Finally, it compares the result of the proposed equations with the simulated values and plots in 3 dimensions.

The following excerpts from an article by Latt et al. [1] explains the equation in CalculateAcc2.m. The total acceleration at location {i}, \(A_i\), of a rigid body can be represented by inertial acceleration of the body, \(A_{IN}\), the Gravity, G, and the rotation induced accelerations. The rotation induced accelerations are the centripetal accelerations, \(A_C\), and the tangential accelerations, \(A_T\). $$ A_i = A_{IN} + G + A_C + A_T $$
$$ A_i = A_{IN} + G + \Omega \times (\Omega \times R) + \alpha \times R $$
where all the variables are relative to the body frame {B}, \( \Omega = \begin{bmatrix} \omega_x & \omega_y & \omega_z \end{bmatrix} \) is the angular velocity vector, R is the vector from the unknown instantaneous center of rotation to the point of sensing, and \( \alpha = \begin{bmatrix} \alpha_x & \alpha_y & \alpha_z \end{bmatrix} \) is the angular acceleration vector. The symbol \( \times \) represents the cross product operation.
Finding the acceleration at location {j} using similar method, and taking the difference gives the following equation. $$ A_j = A_{j} + \Omega \times (\Omega \times R_{ij}) + \alpha \times R_{ij} $$ where \( R_{ij} = \begin{bmatrix} R_x & R_y & R_z \end{bmatrix} \) is the vector from {i} to {j}.


[1] Win Tun Latt, U-Xuan Tan, Cameron N. Riviere, Wei Tech Ang, Placement of accelerometers for high sensing resolution in micromanipulation, Sensors and Actuators A: Physical, Volume 167, Issue 2, June 2011, Pages 304-316, ISSN 0924-4247, http://dx.doi.org/10.1016/j.sna.2011.03.001. (http://www.sciencedirect.com/science/article/pii/S0924424711001282)

No comments:

Post a Comment

Comments are moderated and don't be surprised if your comment does not appear promptly.