Attitude propagation stability and accuracy

Click For Summary
SUMMARY

This discussion focuses on the verification and validation of a rotational state propagator within a dynamic simulation package. The current technique integrates attitude and attitude rate using quaternions and angular velocity, but faces significant issues with stability and accuracy, particularly when using Euler and RK-4 integrators. The author proposes a new approach that includes an analytical quaternion propagation method and the propagation of angular momentum in the inertial frame, which has shown improved results in test cases.

PREREQUISITES
  • Understanding of quaternion mathematics and their application in rotational dynamics.
  • Familiarity with numerical integration techniques, specifically Euler and RK-4 methods.
  • Knowledge of angular momentum conservation principles in physics.
  • Experience with dynamic simulation packages for modeling physical systems.
NEXT STEPS
  • Research quaternion exponential functions for improved propagation accuracy.
  • Explore the use of Padé approximants for numerical stability in trigonometric functions.
  • Investigate alternative numerical integration methods for rotational dynamics.
  • Study the effects of floating-point precision on numerical simulations in dynamic systems.
USEFUL FOR

Engineers, researchers, and developers involved in dynamic simulations, particularly those focusing on rotational dynamics and numerical methods for attitude propagation.

D H
Staff Emeritus
Science Advisor
Homework Helper
Insights Author
Messages
15,524
Reaction score
769
I am verifying and validating a rotational state propagator used in a dynamic simulation package. I have found some problems and solutions to them. This post outlines the propagation, the problems, and the solutions.

Some questions before I start:

- Has anyone else analyzed stability and accuracy for rotational state propagation techniques?
- Is there a "gold-standard" for propagating the rotational state?1. The propagation technique
The propagator currently integrates attitude and attitude rate as a quaternion and angular velocity using
<br /> \begin{align*}<br /> {\cal Q} \;<br /> &amp;\text{is the inertial-to-body left transformation unit quaterion} \\<br /> \vec\omega \;<br /> &amp;\text{is the angular velocity wrt inertial expressed in the body frame} \\<br /> \vec\tau \;<br /> &amp;\text{is the external torque expressed in the body frame} \\<br /> \mathbf I \;<br /> &amp;\text{is the body inertia tensor expressed in the body frame} \\<br /> \frac{d\cal Q}{dt} &amp;=<br /> \left[\begin{matrix} 0 \\ -1/2 \vec\omega\end{matrix}\right]{\cal Q} \\<br /> \frac{d\vec\omega}{dt} &amp;=<br /> \mathbf{I}^{-1}\left(\tau - \vec\omega \times \mathbf I \vec\omega\right) \\<br /> {\cal Q} (t+\Delta t) &amp;= {\cal Q}(t) + \frac{d{\cal Q}(t)}{dt}\Delta t \\<br /> \vec\omega(t+\Delta t) &amp;=<br /> \vec\omega(t) + \frac{d \vec\omega(t)}{dt} \Delta t<br /> \end{align*}<br />

We use several integrators, ranging including Euler, the standard RK-4, Adams-Bashford-Moulton, and others. All use the above as the basis for propagation.

The quaternion propagation does not result in a unit quaternion. To overcome this problem, we normalize the quaternion after each integration step.

2. Accuracy and stability analysis
I have found some apparently significant problems with this technique.

- The quaternion step is mathematically invalid for all but the trivial case, omega=0. Unit quaternions multiply; they do not add. The normalization hack fixes the problem to some extent. However, with some very simple test cases, I can make the attitude propagation fail (error grows unbounded) or even blow up (floating point underflow exception). For a simple Euler integrator, problems can appear when \omega \Delta t is as small as 1e-5.

- The angular velocity propagation can fail catastrophically (floating point overflow). Numerical precision problems and poor quaternion propagation can couple with the inertial torque term \vec\omega \times \mathbf I \vec\omega to result in a torque-free system that does not conserve angular momentum, making the angular velocity undergo secular growth.

3. New approach
I am doing two things to overcome these problems:

1. Fixing the quaternion step algorithm.
The quaternion can be propagated analytically for a constant rotation rate vector via
<br /> {\cal Q} (t+\Delta t) = \exp\left(\left[\begin{matrix} 0 \\ -1/2 \vec\omega\end{matrix}\right]\right) {\cal Q}(t)<br />
I am using this as the basis for propagation. The quaternion exponential of a pure vector quaternion expands to transcendental functions. To avoid calls to sin and cos, I am using the second-order Padé approximant for cos(x) and the third-order Padé approximant for sin(x).

2. Propagating angular momentum in the inertial frame rather than the angular velocity in the body frame.
This appears to work well on my test cases with analytic solutions (torque-free spherical body, torque-free symmetric top, and simple spherical body torsional oscillator).
 
Last edited:

Similar threads

  • · Replies 2 ·
Replies
2
Views
779
  • · Replies 20 ·
Replies
20
Views
3K
  • · Replies 17 ·
Replies
17
Views
2K
  • · Replies 9 ·
Replies
9
Views
3K
  • · Replies 30 ·
2
Replies
30
Views
4K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 17 ·
Replies
17
Views
1K