Attitude propagation stability and accuracy

AI Thread Summary
The discussion focuses on verifying and validating a rotational state propagator within a dynamic simulation package, highlighting significant issues with stability and accuracy in current techniques. The existing quaternion propagation method fails to maintain unit quaternions and can lead to catastrophic errors, particularly with small angular velocities. To address these problems, a new approach is proposed that analytically propagates the quaternion for constant rotation rates and utilizes a Padé approximant to avoid trigonometric function calls. Additionally, the new method propagates angular momentum in the inertial frame instead of angular velocity in the body frame, showing improved performance in test cases. The conversation emphasizes the need for robust solutions in rotational state propagation techniques.
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:
Posted June 2024 - 15 years after starting this class. I have learned a whole lot. To get to the short course on making your stock car, late model, hobby stock E-mod handle, look at the index below. Read all posts on Roll Center, Jacking effect and Why does car drive straight to the wall when I gas it? Also read You really have two race cars. This will cover 90% of problems you have. Simply put, the car pushes going in and is loose coming out. You do not have enuff downforce on the right...
I'm trying to decide what size and type of galvanized steel I need for 2 cantilever extensions. The cantilever is 5 ft. The space between the two cantilever arms is a 17 ft Gap the center 7 ft of the 17 ft Gap we'll need to Bear approximately 17,000 lb spread evenly from the front of the cantilever to the back of the cantilever over 5 ft. I will put support beams across these cantilever arms to support the load evenly
Thread 'What's the most likely cause for this carbon seal crack?'
We have a molded carbon graphite seal that is used in an inline axial piston, variable displacement hydraulic pump. One of our customers reported that, when using the “A” parts in the past, they only needed to replace them due to normal wear. However, after switching to our parts, the replacement cycle seems to be much shorter due to “broken” or “cracked” failures. This issue was identified after hydraulic fluid leakage was observed. According to their records, the same problem has occurred...
Back
Top