In this post I will expose a numerical compensation technique for the acceleration measurements of an airframe, this kind of compensation require the knowledge of airframe angular rates. The measurements are usually available from an

Inertial Measurement Unit. Gyroscopes measurements don't need to be compensated.

Accelerometers measurements are affected by the position of the IMU respect to the center of gravity. In an ideal layout the measurements don't need to be compensated and the accelerometers are placed exactly over the center of gravity C.G., although that will rarely happen.

On many airframes the center of gravity is located over or near the main spar that fact makes nearly impossible to put the sensor over the C.G. Even on a middle wing or a low wing plane this location is often crowded by standard RC equipment. As general rule the closer is the IMU to the C.G the better; is to bear in mind that compensation for position offset reduces overall accuracy.

The C.G. position should be evaluated in the three dimensions; if the weight, typically affected by fuel consumption, or the aerodynamic configuration of the airframe changes during the fly then also the C.G. position should be tracked. This kind of procedures will not be treated here.

The C.G. is the point of rotation of the entire airframe. Let's use a body-fixed reference system; the origin is set to be coincident with C.G .On a conventional plane \(x\) coordinate is defined along the airframe from aft to fore, \(y\) is orientate along the right wing and \(z\) points toward the ground. Angular rates respect \(x,y,z\) axes are \(p,q,r\). Often \(p\) is called roll rate, \(q\) pitch rate and \(r\) yaw rate. \(p\) is positive rolling to right, \(q\) is positive pitching up and \(r\) is positive yawing right.

The IMU is installed, in the body reference frame, at \([x_a y_a z_a]^T\) coordinates. The IMU output is denoted as \(g[a_xIMU a_yIMU a_zIMU]^T\)

Refer to the following figure. Let's examine a planar case. We consider airplane symmetry plane \((x,z)\) and set to zero all the angular rates outside this plane;we suppose also small rotation misalignment between body and instrument reference frames [1][2]. The variables for our problem are reduced to\(x,z,q,\dot{q},x_a,z_a\). If the IMU is placed at a certain distance from C.G. centripetal and tangential acceleration terms affect the measured acceleration.

*Figure P45.2 Reduced dimensions problem definition*

By figure inspection we can write.

\(d cos(\alpha)=x_a\)

\(d sin(\alpha)=z_a\)

It is possible to write the transformation matrix from body reference frame to IMU reference frame, than by inversion we get the following acceleration expression [2]. Originally the expression have seven terms, many of them are set to zero by our assumptions.

\(ga_{xC.G.}=ga_{xIMU} + q^2 x_a- \dot{q}z_a\)

That is the explicit relation between measured acceleration and acceleration at C.G.

Suppose we've taken an acceleration measurement along x IMU axis of 3g; the IMU position is \([0.25 \ 0\ 0]^T\), \(q=2.6 1/s\) that is equivalent to a pitch rate of 150° per second.

Calculated acceleration along \(x\) at C.G. \(a_x\) is 4.7g, we have 36% of offset error in the acceleration measurement. With this simple example is evident the magnitude of the error impact of a casual or undetermined placement of the IMU.

Extending this approach to the three dimensions we can write [1]

*Equation 45.1*

\(g\begin{bmatrix}a_x\\a_y\\a_z\end{bmatrix}=g\begin{bmatrix}a_xIMU\\a_yIMU\\a_zIMU\\\end{bmatrix}+ \begin{bmatrix}(q^2+r^2)&-(pq-\dot{r})&-(pr+\dot{q})\\–(pq+\dot{r})& (p^2+r^2)&-(qr-\dot{p})\\–(pr-\dot{q})&-(qr+\dot{p})&(p^2+q^2)\\ \end{bmatrix} \begin{bmatrix} x_a\\y_a\\z_a \end{bmatrix}\)

The last equation confirms our result for the reduced dimensions case previously presented.

[3] Explicit calculation by ja72

in this link
I quote here in behalf of the reader

"

Starting from the well known acceleration transformation formula between an arbitrary point _A_ and the center of mass _C_ with $\vec{c} = \vec{AC}$.

$$ \vec{a}_C = \vec{a}_A + \dot{\vec{\omega}} \times \vec{c} + \vec{\omega} \times \vec{\omega} \times \vec{c} $$

one can you the 3×3 [cross product operator](https://en.wikipedia.org/wiki/Cross_product#Conversion_to_matrix_multiplication) to transform the above into

$$ \vec{a}_C = \vec{a}_A + \begin{vmatrix} 0 & -\dot{\omega}_z & \dot{\omega}_y \\ \dot{\omega}_z & 0 & -\dot{\omega}_x \\ -\dot{\omega}_y & \dot{\omega}_x & 0 \end{vmatrix} \vec{c} + \begin{vmatrix} 0 & -\omega_z & \omega_y \\ \omega_z & 0 & -\omega_x \\ -\omega_y & \omega_x & 0 \end{vmatrix} \begin{vmatrix} 0 & -\omega_z & \omega_y \\ \omega_z & 0 & -\omega_x \\ -\omega_y & \omega_x & 0 \end{vmatrix} \vec{c} $$

or in the form seen the linked post

$$ \vec{a}_C = \vec{a}_A + \begin{vmatrix}

-\omega_y^2-\omega_z^2 & \omega_x \omega_y - \dot{\omega}_z & \omega_x \omega_z + \dot{\omega}_y \\ \omega_x \omega_y + \dot{\omega}_z & -\omega_x^2-\omega_z^2 & \omega_y \omega_z + \dot{\omega}_x \\ \omega_x \omega_z - \dot{\omega}_y & \omega_y \omega_z + \dot{\omega}_x & -\omega_x^2 - \omega_y^2 \end{vmatrix} \vec{c} $$

"