7. State dynamics#

The System dynamics defined the instantaneous accelerations of the aircraft in terms of local reference frames traveling with the aircraft. To record the behavior of an aircraft over time, a set of variables must be chosen to encode the state of the system relative to some global reference frame. The state dynamics — time derivatives of the state variables — encode the dynamic behavior of the aircraft in that global frame. A flight simulator integrates the state dynamics to generate a state trajectory: a record of how the state of the aircraft evolved over time.

This chapter develops state dynamics models for the paraglider system models. For each system model, it chooses a global coordinate system, defines a set of state variables \(\vec{x}\) in terms of that global coordinate system, and defines the state dynamics \(\dot{\vec{x}}\) in terms of the system dynamics.

7.1. State variables#

To track the position of the glider, the state models must choose a reference point in the glider’s local coordinate system. It does not have to be the same reference point used to calculate the system dynamics, but it turns out the riser midpoint \(RM\) is also good choice for tracking the glider position. Because the riser midpoint is close to where a pilot would likely mount their flight recorder, it is likely to be representative of the data in a flight track, which makes it the most convenient point for comparing real flight data to simulated data. Another advantage is that the riser midpoint is typically very close to the glider center of mass, which makes the position data easier to understand when developing the models.

Next, the state model must choose a coordinate system for the position. Most GPS applications, including paraglider flight records (IGC files), encode position using the WGS-84 geodetic datum, which uses the geocentric coordinates of latitude, longitude, and altitude. However, positioning on the global spheroid is overkill for these simulations, so to avoid the complexity involved with angular coordinates the state models here use a tangent-plane (\(tp\)) approximation ([12], p. 27) that records position as a linear displacement from an arbitrary origin.

For orientation, there are two common representations: Euler angles and quaternions. Euler angles have the advantage of being easier to understand, but they can experience an issue known as Gimbal lock which prevents their use in situations where the aircraft rotates to extreme angles. Although the limitations of the paraglider aerodynamics make it unlikely for the simulator to encounter situations in which the glider is facing straight up or straight down, quaternions provide peace of mind and a minor improvement in computational efficiency.

Given these choices, the state variables of the 6-DoF models are four vectors:

(7.1)#\[\begin{split}\begin{aligned} {\vec{r}}_{RM/O} \qquad & \textrm{absolute position of the riser midpoint} \, RM \\ {\vec{v}}_{RM/e} \qquad & \textrm{translational velocity of the riser midpoint} \, RM \\ {\vec{q}}_{b/tp} \qquad & \textrm{orientation of the body to the tangent plane} \\ {\vec{\omega}}_{b/e} \qquad & \textrm{angular velocity of the body} \\ \end{aligned}\end{split}\]

Similarly, the 9-DoF models use the same four vectors, plus an additional quaternion and angular acceleration vector for the payload:

(7.2)#\[\begin{split}\begin{aligned} {\vec{r}}_{RM/O} \qquad & \textrm{absolute position of the riser midpoint} \, RM \\ {\vec{v}}_{RM/e} \qquad & \textrm{translational velocity of the riser midpoint} \, RM \\ {\vec{q}}_{b/tp} \qquad & \textrm{orientation of the body to the tangent plane} \\ {\vec{q}}_{p/tp} \qquad & \textrm{orientation of the payload to the tangent plane} \\ {\vec{\omega}}_{b/e} \qquad & \textrm{angular velocity of the body} \\ {\vec{\omega}}_{p/e} \qquad & \textrm{angular velocity of the payload} \\ \end{aligned}\end{split}\]

7.2. State derivatives#

Next, define the derivatives of the state variables in terms of the current state and the system derivatives. The derivative of state variable for position is straightforward since it uses the same reference point as dynamics. The only modification is that the derivatives calculated by the system dynamics models were taken in the body and payload reference frames, \(\mathcal{F}_b\) and \(\mathcal{F}_p\), but tracking the position and orientation of the aircraft relative to the tangent plane requires derivatives taken with respect to the inertial frame \(\mathcal{F}_e\). To provide the simulator with the proper derivatives, the state dynamics models must use the equation of Coriolis ([12], Eq. 1.4-2) to calculate the derivative of velocity taken with respect to the inertial frame:

\[\begin{split}\begin{aligned} {^e \dot{\vec{v}}_{RM/e}^{tp}} &= \mat{C}_{tp/b} \cdot \left( {^b \dot{\vec{v}}_{RM/e}^b} + \vec{\omega}_{b/e}^b \times \vec{v}_{RM/e}^b \right) \\ {^e \dot{\vec{\omega}}_{b/e}^b} &= {^b \dot{\vec{\omega}}_{b/e}^b} \\ {^e \dot{\vec{\omega}}_{p/e}^p} &= {^p \dot{\vec{\omega}}_{p/e}^p} \end{aligned}\end{split}\]

For the orientation state variable, the time derivative of a quaternion \(\vec{q}\) that is tracking the orientation of an object can be calculated using the object’s angular velocity vector \(\vec{\omega} = \{ p, q, r \}\) in the coordinate system attached to that object (\(\vec{\omega}_{b/e}^b\) for the body, or \(\vec{\omega}_{p/e}^p\) for the payload) ([12], Eq. 1.8-15):

\[\begin{split}\mat{\Omega} \defas \begin{bmatrix} 0 & -p & -q & -r \\ p & 0 & r & -q \\ q & -r & 0 & p \\ r & q & -p & 0 \end{bmatrix}\end{split}\]
\[\dot{\vec{q}} = \frac{1}{2} \mat{\Omega} \cdot \vec{q}\]

The complete set of state dynamics equation for the 6-DoF models in terms of the system derivatives (6.2) and state variables (7.1) are then:

(7.3)#\[\begin{split}\begin{aligned} {^e \dot{\vec{r}}_{RM/O}^{tp}} &= {\vec{v}_{RM/e}^{tp}} \\ {^e \dot{\vec{v}}_{RM/e}^{tp}} &= \mat{C}_{tp/b} \cdot \left( {^b \dot{\vec{v}}_{RM/e}^b} + \vec{\omega}_{b/e}^b \times {\vec{v}_{RM/e}^b} \right) \\ {^e \dot{\vec{q}}_{b/tp}} &= \frac{1}{2} \mat{\Omega}_{b/tp} \cdot \vec{q}_{b/tp} \\ {^e \dot{\vec{\omega}}_{b/e}^b} &= {^b \dot{\vec{\omega}}_{b/e}} \end{aligned}\end{split}\]

Similarly, the complete set of state dynamics equation for the 9-DoF models in terms of the system derivatives (6.3) and state variables (7.2):

(7.4)#\[\begin{split}\begin{aligned} {^e \dot{\vec{r}}_{RM/O}^{tp}} &= {\vec{v}_{RM/e}^{tp}} \\ {^e \dot{\vec{v}}_{RM/e}^{tp}} &= \mat{C}_{tp/b} \cdot \left( {^b \dot{\vec{v}}_{RM/e}^b} + \vec{\omega}_{b/e}^b \times {\vec{v}_{RM/e}^b} \right) \\ {^e \dot{\vec{q}}_{b/tp}} &= \frac{1}{2} \mat{\Omega}_{b/tp} \cdot \vec{q}_{b/tp} \\ {^e \dot{\vec{q}}_{p/tp}} &= \frac{1}{2} \mat{\Omega}_{p/tp} \cdot \vec{q}_{p/tp} \\ {^e \dot{\vec{\omega}}_{b/e}^b} &= {^b \dot{\vec{\omega}}_{b/e}^b} \\ {^e \dot{\vec{\omega}}_{p/e}^p} &= {^p \dot{\vec{\omega}}_{p/e}^p} \end{aligned}\end{split}\]

The state dynamics models in (7.3) and (7.4) are ready to be used with a suitable numerical integration method to generate the state trajectories. Due to the significant nonlinear behavior of the dynamics, the implementation for this project uses a standard 4th order Runge-Kutta method.