ISSN: 2689-7636

Annals of Mathematics and Physics

Review Article       Open Access      Peer-Reviewed

Modelling Spacecraft Control Systems for On-orbit Manufacturing using Quaternion-based Variational Integration

Gianmarco Radice*

Sanjeeviraja Thangavel, Singapore Institute of Technology, Singapore

Author and article information

*Corresponding author: Gianmarco Radice, Sanjeeviraja Thangavel, Singapore Institute of Technology, Singapore, Email: [email protected]
Received: 09 July, 2025 | Accepted: 02 September, 2025 | Published: 03 September, 2025
Keywords: Spacecraft dynamics; Quaternion; Relative motion; Gyrostats; Extended kalman filter

Cite this as

Radice G. Modelling Spacecraft Control Systems for On-orbit Manufacturing using Quaternion-based Variational Integration. Ann Math Phys. 2025;8(5):149-159. Available from: 10.17352/amp.000159

Copyright License

© 2025 Radice G. This is an open-access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.

Abstract

This paper presents the application of discrete variational mechanics to spacecraft attitude dynamics using quaternion state variables. A general method is introduced for spacecraft dynamic system by deriving a variational integrators and quaternion state variables. The designed integrators demonstrate the behaviour of momentum and realistic energy which is comparable computational cost and less than a low order Runge-Kutta methods, it is suggestable for both real- time estimation and simulation of control application. The performance of integrators exemplifies rigid bodies with momentum actuators, internal viscous damping. In addition, Extended Kalman Filter (EKF) is presented for the purpose of attitude determination and on-orbit manufacturing operations.

Nomenclature

C: Dampling constant kg. m2. s-1; F: Quaternion generalized force, Kg.m2.s-2; Fd: Discrete generalized force, Kg. m2.s-1; f, q: Unit quarternions; h: Time step, s; I: Inertia matrix in body−fixed axes, kg.m2; J: Augumented inertia matrix in body−fixed axes, kg.m2; k: Time index; L: Lagrangian, kg.m2.s-1; Ld: Discrete Lagrangian, kg.m2.s-1; m: Rotor mass, kg; p: Angular momentum in body−fixed axes, kg..m2.s-1; S: Action, kg..m2.s-1; Sd: Discrete action, kg..m2.s-1; t: Time, s; x: Rotor position in body−fixed axes, m; γ, ϕ: Three parameter incremental rotations; δ: Variational derivative; ∈: Small scalar; η: Arbitary perturbation; ρ: Rotor angular momentum in body fixed axes, kg..m2.s-1; τ: External torque in body−fixed axes, kg.m2.s-1; ω: Angular velocity in body−fixed axes, rad.s-1

1. Introduction

The equation of motion for a mechanical system can be solved using variational integrators, which provide advantages over traditional algorithms such as Runge–Kutta methods. Instead of deriving the continuous-time differential equations of motion and then discretizing them, variational approaches begin by discretizing the Lagrangian and the action integral of the system. The tools of variational mechanics are then applied to derive discrete-time equations of motion.Integrators derived in this way retain many of the essential properties of the continuous system, such as momentum and energy conservation [1]. These integrators are symplectic, preserve energy in Hamiltonian conservative systems, and remain highly accurate for long-term integration. In addition, they are computationally efficient and stable, even for relatively large fixed time steps, making them well suited for real-time estimation and control applications.

Examples of integration methods that respect motion integrals of mechanical systems, often called geometric or symplectic integrators, have been known for decades. The classic example is the Stormer-Verlet and Galerkin Variational Integrators (GVI) [2,3]. GVI approach is non-symplectic integrators also reducing simulation time significantly for long integration periods and also noted, errors start growing proportionally to the square root of time [3]. These early methods were often devised in ad hoc ways that do not generalize well to arbitrary mechanical systems or higher orders of accuracy. More recently, systematic methods for deriving symplectic integrators using discrete-time versions of ideas from variational mechanics have been introduced [1]. These methods are straightforward applications of Lagrangian and Hamiltonian dynamics, and they can generate integration schemes of any desired order of accuracy.

Discrete variational mechanics has previously been applied to problems in optimal control and rigid-body dynamic control by using rotation matrices to parameterize attitude [4-6]. Momentum-preserving integrators have also been derived by other (non-variational) means for rigid-body dynamics using quaternions to parameterize attitude [7-11]. The primary contribution of this paper is the application of discrete variational mechanics to spacecraft attitude dynamics using quaternion state variables. The emphasis on quaternions over other attitude parameterizations here is due to both the compact and elegant derivations they enable and their prevalence in the implementation of spacecraft guidance, navigation, and control algorithms. Specifically, they lend themselves to straightforward feedback control and estimation schemes of practical relevance in flight software.

The paper proceeds as follows. Section 2 gives a brief review of quaternions and outlines the notation used throughout the paper. Section 3 derives the classical Euler equation of rigid-body dynamics in continuous time using Hamilton’s principle. Next, Section 4 presents this derivation in discrete time, leading to the variational integrator presented in Section 5. Sections 6-8 incorporate several extensions to the basic rigid-body integrator, including reaction wheels, external torques, and internal damping. Finally, in Section 9, several numerical examples are presented, including an extended Kalman filter for attitude determination.

2. Background

Attitude dynamics and rotations are parameterized with quaternions throughout this paper. A brief review of their properties is presented in this section. A more thorough treatment is given by Altmann [12].

Quaternions form an algebra with a noncommutative binary product operation. It is often convenient to think of them as four-dimensional objects composed of a three-dimensional vector v and a scalar s:

q=[ s v ]     (1) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyCaiaai2dadaWadaqaauaabeqaceaaaeaacaWGZbaabaGaaCODaaaaaiaawUfacaGLDbaacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqGXaGaaeykaaaa@42F2@

This representation allows the quaternion product to be written in terms of scalar and vector products:

q 1 q 2 =[ v 1 * v 2 + s 1 v 2 + s 2 v 1 s 1 s 2 v 1 . v 2 ]     (2) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyCamaaBaaaleaacaaIXaaabeaakiaadghadaWgaaWcbaGaaGOmaaqabaGccaaI9aWaamWaaeaafaqabeGabaaabaGaamODamaaBaaaleaacaaIXaaabeaakiaaiQcacaWG2bWaaSbaaSqaaiaaikdaaeqaaOGaey4kaSIaam4CamaaBaaaleaacaaIXaaabeaakiaadAhadaWgaaWcbaGaaGOmaaqabaGccqGHRaWkcaWGZbWaaSbaaSqaaiaaikdaaeqaaOGaamODamaaBaaaleaacaaIXaaabeaaaOqaaiaahohadaWgaaWcbaGaaCymaaqabaGccaWHZbWaaSbaaSqaaiaahkdaaeqaaOGaeyOeI0IaaCODamaaBaaaleaacaWHXaaabeaakiaah6cacaWH2bWaaSbaaSqaaiaahkdaaeqaaaaaaOGaay5waiaaw2faaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabkdacaqGPaaaaa@5B2E@

Note that q 1 q 2 q 2 q 1 MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqcLbsacaWGXbqcfa4aaSbaaSqaaKqzGeGaaGymaaWcbeaajugibiaadghajuaGdaWgaaWcbaqcLbsacaaIYaaaleqaaKqzGeGaeyiyIKRaamyCaKqbaoaaBaaaleaajugibiaaikdaaSqabaqcLbsacaWGXbqcfa4aaSbaaSqaaKqzGeGaaGymaaWcbeaaaaa@460B@ . Throughout the paper, quaternion products are indicated by juxtaposition, whereas scalar and vector products are indicated in the usual way, with the . and × symbols, respectively.

Rotations can be conveniently represented by unit-length quaternions. If r is a unit vector in 3 MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWefv3ySLgznfgDOjdaryqr1ngBPrginfgDObcv39gaiuaacqWFDeIudaahaaWcbeqaaiaaiodaaaaaaa@43A7@ representing the axis of rotation and θ is the angle of rotation, then the quaternion representing the rotation is as follows:

q=[ rsin( θ 2 ) cos( θ 2 ) ]     (3) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyCaiaai2dadaWadaqaauaabeqaceaaaeaacaWHYbGaaGjcVlGacohacaGGPbGaaiOBaiaaiIcadaWcaaqaaiabeI7aXbqaaiaaikdaaaGaaGykaaqaaiGacogacaGGVbGaai4CaiaaiIcadaWcaaqaaiabeI7aXbqaaiaaikdaaaGaaGykaaaaaiaawUfacaGLDbaacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqGZaGaaeykaaaa@5102@

Both q and −q correspond to the same rotation, making the unit quaternions a ``double cover'' of the group of rotations.

The conjugate of a quaternion is denoted with a superscript MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWaaWbaaSqabeaacaGGGacaaaaa@38F6@ and represents the rotation about the same axis r by −θ:

q =[ v s ]     (4) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyCamaaCaaaleqabaGaaiiiGaaakiaai2dadaWadaqaauaabeqaceaaaeaacqGHsislcaWG2baabaGaam4CaaaaaiaawUfacaGLDbaacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqG0aGaaeykaaaa@44D9@

Two rotations can be composed by multiplying their quaternion representations. A quaternion q3 representing a rotation q1 followed by a rotation q2 is simply q3 q2q1. The rotation of a three- dimensional vector x by a unit quaternion q is

x ^ '= q ^ × q      (5) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGabCiEayaajaGaaG4jaiaai2daceWGXbGbaKaacqGHxdaTcaWGXbWaaWbaaSqabeaacaGGGacaaOGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeynaiaabMcaaaa@44DA@

where x MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaaCiEamaaCaaaleqabaGaey4jIKnaaaaa@3AE1@ indicates the formation of a quaternion with zero scalar part from the vector x.

x ^ =[ x 0 ]      (6) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGabCiEayaajaGaaGypamaadmaabaqbaeqabiqaaaqaaiaadIhaaeaacaaIWaaaaaGaay5waiaaw2faaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqG2aGaaeykaaaa@4375@

Analytic functions can be defined for quaternion arguments in much the same way as for complex numbers and matrices. In particular, the quaternion exponential has a simple closed-form expression in terms of the quaternion’s scalar and vector parts:

e q = n=0 q n n! = e s [ v |v| sin(|v|) cos(|v|) ]      (7) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyzamaaCaaaleqabaGaamyCaaaakiaai2dadaaeWbqabSqaaiaad6gacaaI9aGaaGimaaqaaiabg6HiLcqdcqGHris5aOWaaSaaaeaacaWGXbWaaWbaaSqabeaacaWGUbaaaaGcbaGaamOBaiaaigcaaaGaaGypaiaadwgadaahaaWcbeqaaiaadohaaaGcdaWadaqaauaabeqaceaaaeaadaWcaaqaaiaadAhaaeaacaaI8bGaamODaiaaiYhaaaGaam4CaiaadMgacaWGUbGaaGikaiaaiYhacaWG2bGaaGiFaiaaiMcaaeaacaWGJbGaam4BaiaadohacaaIOaGaaGiFaiaadAhacaaI8bGaaGykaaaaaiaawUfacaGLDbaacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaae4naiaabMcaaaa@623C@

The formula for a rotation quaternion in Eq. (3) can be compactly written in terms of the exponential:

e ^ rθ/2 =[ rsin( θ 2 ) cos( θ 2 ) ]     (8) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGabmyzayaajaWaaWbaaSqabeaacaWHYbGaeqiUdeNaaG4laiaaikdaaaGccaaMe8UaaGypaiaaysW7daWadaqaauaabeqaceaaaeaacaWHYbGaaGjcVlGacohacaGGPbGaaiOBamaabmaabaWaaSqaaSqaaiabeI7aXbqaaiaaikdaaaaakiaawIcacaGLPaaaaeaaciGGJbGaai4BaiaacohadaqadaqaamaaleaaleaacqaH4oqCaeaacaaIYaaaaaGccaGLOaGaayzkaaaaaaGaay5waiaaw2faaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabIdacaqGPaaaaa@58F6@

Finally, in addition to the purely algebraic properties of quaternions outlined so far, the subsequent analysis requires some kinematic identities relating quaternion derivatives to vector quantities more familiar in rigid-body dynamics. First, the time derivative of a body’s attitude quaternion is related to its angular velocity in the following way:

ω ^ =2 q q     (9) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGafqyYdCNbaKaacaaI9aGaaGOmaiaadghadaahaaWcbeqaaiaaccciaaGccaWGXbGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeyoaiaabMcaaaa@438E@

Second, the quaternion generalized force corresponding to a torque on the body is [13,14].

F=2q π ^      (10) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamOraiaai2dacaaIYaGaamyCaiqbec8aWzaajaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeymaiaabcdacaqGPaaaaa@4303@

Schaub and Junkins provide a thorough discussion of rigid-body dynamics using quaternions [15].

3. Euler’s equation from Hamilton’s principle

This section presents a detailed derivation of the classical Euler equation using Hamilton’s principle. Although the results are not new, the techniques used provide the foundation for the development of the variational integrators in the following sections. A more in- depth treatment of variational mechanics on Lie groups, including the rotation group SO (3), is given by Holm [16].

The derivation begins with the Lagrangian for a free rigid body, which, in the absence of a potential, is simply its kinetic energy:

L= 1 2 ωIω= 1 2 ω ^ J ω ^        (11) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamitaiaai2dadaWcaaqaaiaaigdaaeaacaaIYaaaaiaayIW7iiWacqWFjpWDcqGHflY1caWGjbGaeyyXICTae8xYdCNaaGypamaalaaabaGaaGymaaqaaiaaikdaaaGaaGjcVlqb=L8a3zaajaGaeyyXICTaamOsaiabgwSixlqb=L8a3zaajaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqGXaGaaeymaiaabMcaaaa@59DA@

J is the following augmented inertia matrix:

J=[ I 11 I 12 I 13 0 I 21 I 22 I 23 0 I 31 I 32 I 33 0 0 0 0 0 ]      (12) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamOsaiaai2dadaWadaqaauaabeqaeqaaaaaabaGaamysamaaBaaaleaacaaIXaGaaGymaaqabaaakeaacaWGjbWaaSbaaSqaaiaaigdacaaIYaaabeaaaOqaaiaadMeadaWgaaWcbaGaaGymaiaaiodaaeqaaaGcbaGaaGimaaqaaiaadMeadaWgaaWcbaGaaGOmaiaaigdaaeqaaaGcbaGaamysamaaBaaaleaacaaIYaGaaGOmaaqabaaakeaacaWGjbWaaSbaaSqaaiaaikdacaaIZaaabeaaaOqaaiaaicdaaeaacaWGjbWaaSbaaSqaaiaaiodacaaIXaaabeaaaOqaaiaadMeadaWgaaWcbaGaaG4maiaaikdaaeqaaaGcbaGaamysamaaBaaaleaacaaIZaGaaG4maaqabaaakeaacaaIWaaabaGaaGimaaqaaiaaicdaaeaacaaIWaaabaGaaGimaaaaaiaawUfacaGLDbaacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeymaiaabkdacaqGPaaaaa@5DB1@

Following the standard approach in variational mechanics [17,18], an action integral is constructed and its variational derivative is taken:

δS=δ t0 t f 1 2 ω ^ .J. ω ^ .dt=0      (13) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqiTdqMaam4uaiaai2dacqaH0oazdaWdXaqabSqaaiaadshacaaIWaaabaGaamiDaaqdcqGHRiI8aOGaamOzaiabgwSixpaalaaabaGaaGymaaqaaiaaikdaaaGaaGjcVJGadiqb=L8a3zaajaGaaGOlaiaadQeacaaIUaGaf8xYdCNbaKaacaaIUaGaamizaiaadshacaaI9aGaaGimaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqGXaGaae4maiaabMcaaaa@58C5@

At this point, care must be taken to vary  in such a way that the quaternion unit-norm constraint is maintained. There are several ways to explicitly enforce the constraint in the action integral [14,19]. An alternative is to incorporate the constraint directly into the variation [4,6,16]. From the fact that the exponential of a quaternion with zero scalar part is always a unit quaternion, a varied unit quaternion can be defined as

ϵ q =q e ϵ η ^      (14) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWefv3ySLgznfgDOfdaryqr1ngBPrginfgDObYtUvgaiuGacqWF1pG8daWgaaWcbaGaamyCaaqabaGccaaI9aGaamyCaiaayIW7caWGLbWaaWbaaSqabeaacqWF1pG8iiWacuGF3oaAgaqcaaaakiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabgdacaqG0aGaaeykaaaa@53BE@

Where a left superscript  is used to denote a varied quantity. Next, q is differentiated with respect to time:

ϵ q =q e ϵ η ^ +ϵ( q e ϵ η ^ η ^ )     (15) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWefv3ySLgznfgDOfdaryqr1ngBPrginfgDObYtUvgaiuGacqWF1pG8daWgaaWcbaGaamyCaaqabaGccaaI9aGaamyCaiaayIW7caWGLbWaaWbaaSqabeaacqWF1pG8iiWacuGF3oaAgaqcaaaakiabgUcaRiab=v=aYpaabmaabaGaamyCaiaayIW7caWGLbWaaWbaaSqabeaacqWF1pG8cuGF3oaAgaqcaaaakiaayIW7cuaH3oaAgaqcaaGaayjkaiaawMcaaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabgdacaqG1aGaaeykaaaa@63B3@

Equations (14) and (15) can be substituted into the identity in Eq. (9) to obtain the desired variation of , keeping in mind that only terms linear in  need to be retained:

ϵ ω ^ =2 ϵ q ϵ q= e ϵ η ^ ω ^ e ϵ η ^ ω ^ +ϵ( ω ^ η ^ η ^ ω ^ +2 η ^ )      (16) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWefv3ySLgznfgDOfdaryqr1ngBPrginfgDObYtUvgaiuGacqWF1pG8cuaHjpWDgaqcaiaai2dacaaIYaWaaWbaaSqabeaacqWF1pG8aaGccaWGXbWaaWbaaSqabeaacaGGGaIae8x9dipaaOGaamyCaiaai2dacaWGLbWaaWbaaSqabeaacqGHsislcqWF1pG8cuaH3oaAgaqcaaaakiqbeM8a3zaajaGaaGjcVlaadwgadaahaaWcbeqaaiab=v=aYlqbeE7aOzaajaaaaOGaaGjbVlaaysW7cqGHijYUcaaMe8UaaGjbVlqbeM8a3zaajaGaey4kaSIae8x9di=aaeWaaeaacuaHjpWDgaqcaiqbeE7aOzaajaGaeyOeI0Iafq4TdGMbaKaacuaHjpWDgaqcaiabgUcaRiaaikdacuaH3oaAgaqcaaGaayjkaiaawMcaaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqGXaGaaeOnaiaabMcaaaa@7FC1@

Using Eq. (16), the variational derivative of the action integral in Eq. (13) is

δS= d dϵ |ϵ=0 t 0 t f ω ^ .J.(2 ω ^ .J.(2 ω ^ η ^ +2 η ^ )dt=0      (17) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqiTdqMaam4uaiaai2dadaWcaaqaaiaadsgaaeaacaWGKbWefv3ySLgznfgDOfdaryqr1ngBPrginfgDObYtUvgaiuGacqWF1pG8aaGaaGiFaiab=v=aYlaai2dacaaIWaWaa8qmaeqaleaacaWG0bWaaSbaaeaacaaIWaaabeaaaeaacaWG0bWaaSbaaeaacaWGMbaabeaaa0Gaey4kIipaiiWakiqb+L8a3zaajaGaaGOlaiaadQeacaaIUaGaaGikaiaaikdacuGFjpWDgaqcaiaai6cacaWGkbGaaGOlaiaaiIcacaaIYaGaf4xYdCNbaKaacuGF3oaAgaqcaiabgUcaRiaaikdacuGF3oaAgaqcaiaaiMcacaWGKbGaamiDaiaai2dacaaIWaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabgdacaqG3aGaaeykaaaa@70CC@

Following the usual procedure, integration by parts is used to eliminate , noting that variations must be zero at the endpoints of the integration interval:

δS= t 0 t f 2 ω ^ .J. ω ^ η ^ 2 ω ^ .J. η ^ dt=0       (18) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqiTdqMaam4uaiaai2dadaWdXaqabSqaaiaadshadaWgaaqaaiaaicdaaeqaaaqaaiaadshadaWgaaqaaiaadAgaaeqaaaqdcqGHRiI8aOGaaGOmaGGadiqb=L8a3zaajaGaaGOlaiaadQeacaaIUaGaf8xYdCNbaKaacuWF3oaAgaqcaiabgkHiTiaaikdacuWFjpWDgaqcaiaai6cacaWGkbGaaGOlaiqb=D7aOzaajaGaamizaiaadshacaaI9aGaaGimaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeymaiaabIdacaqGPaaaaa@5BDA@

Because all of the quaternions in Eq. (18) have scalar parts equal to zero, it can be converted to vector form:

δs= t 0 t f ω ^ .I.(ω×n) ω .I.ηdt=0      (19) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqiTdqMaam4Caiaai2dadaWdXaqabSqaaiaadshadaWgaaqaaiaaicdaaeqaaaqaaiaadshadaWgaaqaaiaadAgaaeqaaaqdcqGHRiI8aGGadOGaf8xYdCNbaKaacaaIUaGaamysaiaai6cacaaIOaGaeqyYdCNaey41aqRaamOBaiaaiMcacqGHsisldaWgaaWcbaGaeqyYdChabeaakiaai6cacaWGjbGaaGOlaiabeE7aOjaadsgacaWG0bGaaGypaiaaicdacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeymaiaabMdacaqGPaaaaa@5CAB@

Using the fact that cyclically permuting the factors in a scalar triple product does not change its value, Eq. (19) can be rewritten as

δs= t 0 t f η[ (Iω)×ω ]ωIηdt=0      (20) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqiTdqMaam4Caiaai2dadaWdXaqabSqaaiaadshadaWgaaqaaiaaicdaaeqaaaqaaiaadshadaWgaaqaaiaadAgaaeqaaaqdcqGHRiI8aOGaeq4TdGMaeyyXIC9aamWaaeaacaaIOaGaamysaiabgwSixlabeM8a3jaaiMcacqGHxdaTcqaHjpWDaiaawUfacaGLDbaacqGHsislcqaHjpWDcqGHflY1caWGjbGaeyyXICTaeq4TdGMaaGjcVlaadsgacaWG0bGaaGypaiaaicdacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeOmaiaabcdacaqGPaaaaa@66D9@

Finally, recognizing that equality must hold for all perturbations results in Euler's equation:

I.ω+ω×I.ω=0      (21) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamysaiaai6cacqaHjpWDcqGHRaWkcqaHjpWDcqGHxdaTcaWGjbGaaGOlaiabeM8a3jaai2dacaaIWaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabkdacaqGXaGaaeykaaaa@4B84@

4. Discrete-time Euler's equation

This section derives an algebraic equation that is a discrete-time analogue of Euler’s equation. The ideas used, collectively known as discrete mechanics, are presented in detail by Marsden and West [1]. The derivation here roughly follows that of Lee et al. [4] but uses quaternions where they have used rotation matrices.

The point of departure from classical mechanics is the action integral in Eq. (13). It is first broken into finite short segments of length h, with t k = t 0 +kh MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamiDamaaBaaaleaacaWGRbaabeaakiaai2dacaWG0bWaaSbaaSqaaiaaicdaaeqaaOGaey4kaSIaam4AaiaadIgaaaa@3F93@ :

S= t 0 t f 1 2 ω ^ .J. ω ^ dt= K=0 N1 t k t k +1 1 2 ω ^ .J. ω ^ dt      (22) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaam4uaiaai2dadaWdXaqabSqaaiaadshadaWgaaqaaiaaicdaaeqaaaqaaiaadshadaWgaaqaaiaadAgaaeqaaaqdcqGHRiI8aOWaaSaaaeaacaaIXaaabaGaaGOmaaaacuaHjpWDgaqcaiaai6cacaWGkbGaaGOlaiqbeM8a3zaajaGaamizaiaadshacaaI9aWaaabCaeqaleaacaWGlbGaaGypaiaaicdaaeaacaWGobGaeyOeI0IaaGymaaqdcqGHris5aOWaa8qmaeqaleaacaWG0bWaaSbaaeaacaWGRbaabeaaaeaacaWG0bWaaSbaaeaacaWGRbaabeaacqGHRaWkcaaIXaaaniabgUIiYdGcdaWcaaqaaiaaigdaaeaacaaIYaaaaiqbeM8a3zaajaGaaGOlaiaadQeacaaIUaGafqyYdCNbaKaacaWGKbGaamiDaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqGYaGaaeOmaiaabMcaaaa@68CD@

The integral of the Lagrangian over a single time step h inside the summation on the right-hand side of Eq. (22) is known as the exact discrete Lagrangian [1]:

L d E = t k t k +1 1 2 ω ^ .J. ω ^ dt     (23) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamitamaaDaaaleaacaWGKbaabaGaamyraaaakiaai2dadaWdXaqabSqaaiaadshadaWgaaqaaiaadUgaaeqaaaqaaiaadshadaWgaaqaaiaadUgaaeqaaiabgUcaRiaaigdaa0Gaey4kIipakmaalaaabaGaaGymaaqaaiaaikdaaaGafqyYdCNbaKaacaaIUaGaamOsaiaai6cacuaHjpWDgaqcaiaadsgacaWG0bGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeOmaiaabodacaqGPaaaaa@52BF@

The next step is to approximate L d E MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamitamaaDaaaleaacaWGKbaabaGaamyraaaaaaa@3AB6@ using a quadrature rule. Any quadrature rule for approximating integrals can be used for this purpose, with higher order rules generally leading to higher order variational integrators [1]. The resulting approximation is known as the discrete Lagrangian of the system. In general, different quadrature rules lead to different discrete Lagrangians. For simplicity and clarity, the rectangle rule is used here. First, a finite difference approximation of  is defined:

ω ^ k =2 q k q k 2 q k ( q k +1= q k h )=2( f k 1 h )      (24) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGafqyYdCNbaKaadaWgaaWcbaGaam4AaaqabaGccaaI9aGaaGOmaiaadghadaqhaaWcbaGaam4AaaqaaiaaccciaaGccaWGXbWaaSbaaSqaaiaadUgaaeqaaOGaaGjbVlaaysW7cqGHijYUcaaMe8UaaGjbVlaaikdacaWGXbWaa0baaSqaaiaadUgaaeaacaGGGacaaOGaaGikamaalaaabaGaamyCamaaBaaaleaacaWGRbaabeaakiabgUcaRiaaigdacaaI9aGaamyCamaaBaaaleaacaWGRbaabeaaaOqaaiaadIgaaaGaaGykaiaai2dacaaIYaGaaGikamaalaaabaGaamOzamaaBaaaleaacaWGRbaabeaakiabgkHiTiaaigdaaeaacaWGObaaaiaaiMcacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeOmaiaabsdacaqGPaaaaa@643B@

The quaternion rotation from qk to qk+1 is denoted by f k = q k q k+1 MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamOzamaaBaaaleaacaWGRbaabeaakiaai2dacaWGXbWaa0baaSqaaiaadUgaaeaacaGGGacaaOGaamyCamaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaaaaa@416D@ . Substituting the approximation for ω ^ k MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGafqyYdCNbaKaadaWgaaWcbaGaam4Aaaqabaaaaa@3AFE@ into Eq. (23), applying the rectangle rule, and simplifying leads to the following discrete Lagrangian:

L d = 2 h f k .J. f k      (25) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamitamaaBaaaleaacaWGKbaabeaakiaai2dadaWcaaqaaiaaikdaaeaacaWGObaaaiaadAgadaWgaaWcbaGaam4AaaqabaGccaaIUaGaamOsaiaai6cacaWGMbWaaSbaaSqaaiaadUgaaeqaaOGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeOmaiaabwdacaqGPaaaaa@48C9@

Using Eq. (25), the discrete action sum for the system can be formed:

S d = K=0 N1 L d = K=0 N1 2 h f k .J. f k       (26) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaam4uamaaBaaaleaacaWGKbaabeaakiaai2dadaaeWbqabSqaaiaadUeacaaI9aGaaGimaaqaaiaad6eacqGHsislcaaIXaaaniabggHiLdGccaWGmbWaaSbaaSqaaiaadsgaaeqaaOGaaGypamaaqahabeWcbaGaam4saiaai2dacaaIWaaabaGaamOtaiabgkHiTiaaigdaa0GaeyyeIuoakmaalaaabaGaaGOmaaqaaiaadIgaaaGaamOzamaaBaaaleaacaWGRbaabeaakiaai6cacaWGkbGaaGOlaiaadAgadaWgaaWcbaGaam4AaaqabaGccaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeOmaiaabAdacaqGPaaaaa@5A5D@

Equation (26) approximates Eq. (22) and serves the same role in discrete mechanics as the action integral does in traditional variational mechanics [1]. Analogously to the continuous case, Hamilton's principle is applied to the action sum. First, a varied fk that obeys the unit quaternion constraint is needed:

ϵ f k = ϵ q k q k+1 = e ϵ ^ η f k ϵ ^ η f k +ϵ( f k η ^ k+1 η ^ k f k )      (27) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWefv3ySLgznfgDOfdaryqr1ngBPrginfgDObYtUvgaiuGacqWF1pG8daWgaaWcbaGaamOzamaaBaaabaGaam4Aaaqabaaabeaakiaai2dacqWF1pG8daqhaaWcbaGaamyCamaaBaaabaGaam4AaaqabaaabaGaaiiiGaaakiaadghadaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaOGaaGypaiaadwgadaahaaWcbeqaaiabgkHiTiqb=v=aYBaajaGaeq4TdGgaaOGaamOzamaaDaaaleaacaWGRbaabaGaf8x9diVbaKaacqaH3oaAaaGccaaMe8UaaGjbVlabgIKi7kaaysW7caaMe8UaamOzamaaBaaaleaacaWGRbaabeaakiabgUcaRiab=v=aYlaaiIcacaWGMbWaaSbaaSqaaiaadUgaaeqaaOGafq4TdGMbaKaadaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaOGaeyOeI0Iafq4TdGMbaKaadaWgaaWcbaGaam4AaaqabaGccaWGMbWaaSbaaSqaaiaadUgaaeqaaOGaaGykaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqGYaGaae4naiaabMcaaaa@7F14@

Using ϵ f k MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWefv3ySLgznfgDOfdaryqr1ngBPrginfgDObYtUvgaiuGacqWF1pG8daWgaaWcbaGaamOzamaaBaaabaGaam4Aaaqabaaabeaaaaa@4628@ , the variation of the action sum is set equal to zero:

δ S d = d dϵ | ϵ=0 K=0 N1 2 h ϵfk.J. ϵ fk = K=0 N1 4 h f k .J.( f k η ^ k+1 η ^ k f k =0      (28) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqiTdqMaam4uamaaBaaaleaacaWGKbaabeaakiaai2dadaWcaaqaaiaadsgaaeaacaWGKbWefv3ySLgznfgDOfdaryqr1ngBPrginfgDObYtUvgaiuGacqWF1pG8aaGaaGiFamaaBaaaleaacqWF1pG8caaI9aGaaGimaaqabaGcdaaeWbqabSqaaiaadUeacaaI9aGaaGimaaqaaiaad6eacqGHsislcaaIXaaaniabggHiLdGcdaWcaaqaaiaaikdaaeaacaWGObaaaiab=v=aYlaadAgacaWGRbGaaGOlaiaadQeacaaIUaGae8x9di=aaSbaaSqaaiaadAgacaWGRbaabeaakiaai2dadaaeWbqabSqaaiaadUeacaaI9aGaaGimaaqaaiaad6eacqGHsislcaaIXaaaniabggHiLdGcdaWcaaqaaiaaisdaaeaacaWGObaaaiaadAgadaWgaaWcbaGaam4AaaqabaGccaaIUaGaamOsaiaai6cacaaIOaGaamOzamaaBaaaleaacaWGRbaabeaakiqbeE7aOzaajaWaaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaakiabgkHiTiqbeE7aOzaajaWaaSbaaSqaaiaadUgaaeqaaOGaamOzamaaBaaaleaacaWGRbaabeaakiaai2dacaaIWaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabkdacaqG4aGaaeykaaaa@8673@

The next step is to eliminate η k+1 MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeq4TdG2aaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaaaaa@3C6A@ from the right-hand side of Eq. (28) by performing the discrete equivalent of integration by parts, which amounts to some simple index manipulation:

δ S d = f N1 .J. f N1 η ^ N f 0 .J. f 0 η ^ 0 = K=1 N1 4 h f k1 .J.( f k1 η ^ k η ^ k f k =0      (29) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqiTdqMaam4uamaaBaaaleaacaWGKbaabeaakiaai2dacaWGMbWaaSbaaSqaaiaad6eacqGHsislcaaIXaaabeaakiaai6cacaWGkbGaaGOlaiaadAgadaWgaaWcbaGaamOtaiabgkHiTiaaigdaaeqaaOGafq4TdGMbaKaadaWgaaWcbaGaamOtaaqabaGccqGHsislcaWGMbWaaSbaaSqaaiaaicdaaeqaaOGaaGOlaiaadQeacaaIUaGaamOzamaaBaaaleaacaaIWaaabeaakiqbeE7aOzaajaWaaSbaaSqaaiaaicdaaeqaaOGaaGypamaaqahabeWcbaGaam4saiaai2dacaaIXaaabaGaamOtaiabgkHiTiaaigdaa0GaeyyeIuoakmaalaaabaGaaGinaaqaaiaadIgaaaGaamOzamaaBaaaleaacaWGRbGaeyOeI0IaaGymaaqabaGccaaIUaGaamOsaiaai6cacaaIOaGaamOzamaaBaaaleaacaWGRbGaeyOeI0IaaGymaaqabaGccuaH3oaAgaqcamaaBaaaleaacaWGRbaabeaakiabgkHiTiqbeE7aOzaajaWaaSbaaSqaaiaadUgaaeqaaOGaamOzamaaBaaaleaacaWGRbaabeaakiaai2dacaaIWaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabkdacaqG5aGaaeykaaaa@770E@

Using the fact that variations at the endpoints must be zero, just as in the continuous case, the first two terms in Eq. (29) can be eliminated:

δ S d = k=1 N1 4 h f k1 J( f k1 η ^ k η ^ k f k )=0      (30) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqiTdqMaam4uamaaBaaaleaacaWGKbaabeaakiaai2dadaaeWbqabSqaaiaadUgacaaI9aGaaGymaaqaaiaad6eacqGHsislcaaIXaaaniabggHiLdGcdaWcaaqaaiaaisdaaeaacaWGObaaaiaadAgadaWgaaWcbaGaam4AaiabgkHiTiaaigdaaeqaaOGaeyyXICTaamOsaiabgwSixpaabmaabaGaamOzamaaBaaaleaacaWGRbGaeyOeI0IaaGymaaqabaGccuaH3oaAgaqcamaaBaaaleaacaWGRbaabeaakiabgkHiTiqbeE7aOzaajaWaaSbaaSqaaiaadUgaaeqaaOGaamOzamaaBaaaleaacaWGRbaabeaaaOGaayjkaiaawMcaaiaai2dacaaIWaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabodacaqGWaGaaeykaaaa@6490@

At this point, Eq. (30), which implicitly includes unit-norm constraints on the quaternions, is converted to an unconstrained vector equation by parameterizing fk in the following way:

f k = ϕ k 1 ϕ k . ϕ k       (31) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamOzamaaBaaaleaacaWGRbaabeaakiaai2dadaWcaaqaaiabew9aMnaaBaaaleaacaWGRbaabeaaaOqaamaakaaabaGaaGymaiabgkHiTiabew9aMnaaBaaaleaacaWGRbaabeaakiaai6cacqaHvpGzdaWgaaWcbaGaam4AaaqabaaabeaaaaGccaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaae4maiaabgdacaqGPaaaaa@4CBA@

This parameterization is only valid for ϕ k <1 MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaqeeuuDJXwAKbsr4rNCHbacfaGae8xjIaLaeqy1dy2aaSbaaSqaaiaadUgaaeqaaOGae8xjIaLaaGipaiaaigdaaaa@4348@ . Therefore, h must be chosen small enough to ensure that the incremental rotations between adjacent time steps are less than 1800. A number of other three-parameter attitude representations could be used instead (modified Rodrigues parameters, for example); however, Eq. (31) is a natural choice that leads to simple and elegant expressions. In terms of φk, Eq. (30) is

K=1 N1 [ 1 ϕ k .ϕ n k .I. ϕ k ϕ k .I.(ϕ× η k ) 1 ϕ k1 . ϕ k1 η k .I. ϕ k1 ϕ k1 .I.( ϕ k1 × η k ) ]=0      (32) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWaaabCaeqaleaacaWGlbGaaGypaiaaigdaaeaacaWGobGaeyOeI0IaaGymaaqdcqGHris5aOWaamWaaeaafaqabeGabaaabaWaaOaaaeaacaaIXaGaeyOeI0Iaeqy1dy2aaSbaaSqaaiaadUgaaeqaaaqabaGccaaIUaGaeqy1dyMaamOBamaaBaaaleaacaWGRbaabeaakiaai6cacaWGjbGaaGOlaiabew9aMnaaBaaaleaacaWGRbaabeaakiabgkHiTiabew9aMnaaBaaaleaacaWGRbaabeaakiaai6cacaWGjbGaaGOlaiaaiIcacqaHvpGzcqGHxdaTcqaH3oaAdaWgaaWcbaGaam4AaaqabaGccaaIPaaabaGaeyOeI0YaaOaaaeaacaaIXaGaeyOeI0Iaeqy1dy2aaSbaaSqaaiaadUgacqGHsislcaaIXaaabeaaaeqaaOGaaGOlaiabew9aMnaaBaaaleaacaWGRbGaeyOeI0IaaGymaaqabaGccqaH3oaAdaWgaaWcbaGaam4AaaqabaGccaaIUaGaamysaiaai6cacqaHvpGzdaWgaaWcbaGaam4AaiabgkHiTiaaigdaaeqaaOGaeyOeI0Iaeqy1dy2aaSbaaSqaaiaadUgacqGHsislcaaIXaaabeaakiaai6cacaWGjbGaaGOlaiaaiIcacqaHvpGzdaWgaaWcbaGaam4AaiabgkHiTiaaigdaaeqaaOGaaGjbVlabgEna0kabeE7aOnaaBaaaleaacaWGRbaabeaakiaaiMcaaaaacaGLBbGaayzxaaGaaGypaiaaicdacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaae4maiaabkdacaqGPaaaaa@902E@

Recognizing that Eq. (32) must be true for all η k MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeq4TdG2aaSbaaSqaaiaadUgaaeqaaaaa@3ACD@ and performing some simple vector algebra reveals an algebraic equation relating the incremental rotation from the last time step to the current time step φk to the incremental rotation from the current time step to the next time step φk+1:

1 ϕ k . ϕ k I. ϕ k ϕ k ×I. ϕ k = 1ϕk+1 . ϕ k+1 I. ϕ k+1 ×I.ϕk+1      (33) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWaaOaaaeaacaaIXaGaeyOeI0Iaeqy1dy2aaSbaaSqaaiaadUgaaeqaaaqabaGccaaIUaGaeqy1dy2aaSbaaSqaaiaadUgaaeqaaOGaamysaiaai6cacqaHvpGzdaWgaaWcbaGaam4AaaqabaGccqGHsislcqaHvpGzdaWgaaWcbaGaam4AaaqabaGccqGHxdaTcaWGjbGaaGOlaiabew9aMnaaBaaaleaacaWGRbaabeaakiaai2dadaGcaaqaaiaaigdacqGHsislcqaHvpGzcqGHsislcaWGRbGaey4kaSIaaGymaaWcbeaakiaai6cacqaHvpGzdaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaOGaamysaiaai6cacqaHvpGzdaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaOGaey41aqRaamysaiaai6cacqaHvpGzcqGHsislcaWGRbGaey4kaSIaaGymaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqGZaGaae4maiaabMcaaaa@71C9@

As a brief aside, Eq. (33) bears some resemblance to the classical Euler’s equation. Taking its limit as h goes to zero does, in fact, recover Eq. (21). This result confirms that the discrete-time equation converges to the true differential equation for small time steps and establishes consistency with the continuous theory.

5. Variational integrator for the free rigid body

This section uses Eq. (33) as the starting point for the development of a variational integrator for the unforced rigid body. The additional ingredients needed are a way to initialize the integrator given an attitude q0 and angular velocity ω0, a way to update the attitude qk+1 and angular velocity ωk+1 after solving for φk+1, and a way to solve Eq. (33) for φk+1 given φk. Although it might seem simple enough to approximate φ0 in any number of ways given ω0, ad hoc approaches do not maintain the variational integrator's conservation properties. The discrete Legendre transform [1] gives a consistent way to convert between φk and ωk. Similar to the classical Legendre transform [17], it maps from φk (which is effectively the discrete-time velocity variable) to pk, the momentum at time k, which can then be multiplied by I−1 to recover ωk. Unlike the continuous version, there are actually two discrete Legendre transforms for a given time step [1]:

p k = L d ( q k , q k+1) q k . q k        (34) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamiCamaaBaaaleaacqGHsisldaWgaaqaaiaadUgaaeqaaaqabaGccaaI9aGaeyOeI0YaaSaaaeaacqGHciITcaWGmbWaaSbaaSqaaiaadsgaaeqaaOGaaGikaiaadghadaWgaaWcbaGaam4AaaqabaGccaaISaGaamyCamaaBaaaleaacaWGRbGaey4kaSIaaGymaiaaiMcaaeqaaaGcbaGaeyOaIyRaamyCamaaBaaaleaacaWGRbaabeaaaaGccaaIUaGaeyOaIyRaamyCamaaBaaaleaacaWGRbaabeaakiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaae4maiaabsdacaqGPaaaaa@572D@

p k + = L d ( q k , q k+1 ) q k+1 d q k+1          (35) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamiCamaaDaaaleaacaWGRbaabaGaey4kaScaaOGaaGypamaalaaabaGaeyOaIyRaamitamaaBaaaleaacaWGKbaabeaakiaaiIcacaWGXbWaaSbaaSqaaiaadUgaaeqaaOGaaGilaiaadghadaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaOGaaGykaaqaaiabgkGi2kaadghadaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaaaakiaayIW7caqGKbGaamyCamaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaGccaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaae4maiaabwdacaqGPaaaaa@5AF0@

Applying these transformations to the discrete Lagrangian in Eq. (25) reveals that p k MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamiCamaaDaaaleaacaWGRbaabaGaeyOeI0caaaaa@3B04@ and pk correspond to the left and right sides of Eq. (33):

p k = 2 h 1 ϕ k . ϕ k I. ϕ k ϕ k ×I. ϕ k      (36) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamiCamaaBaaaleaacqGHsislcaWGRbaabeaakiaai2dadaWcaaqaaiaaikdaaeaacaWGObaaamaakaaabaGaaGymaiabgkHiTiabew9aMnaaBaaaleaacaWGRbaabeaaaeqaaOGaaGOlaiabew9aMnaaBaaaleaacaWGRbaabeaakiaadMeacaaIUaGaeqy1dy2aaSbaaSqaaiaadUgaaeqaaOGaeyOeI0Iaeqy1dy2aaSbaaSqaaiaadUgaaeqaaOGaey41aqRaamysaiaai6cacqaHvpGzdaWgaaWcbaGaam4AaaqabaGccaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqGZaGaaeOnaiaabMcaaaa@5AA8@

p +k = 2 h 1 ϕ k+1 . ϕ k+1 I. ϕ k+1 ϕ k+1 ×I. ϕ k+1      (37) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamiCamaaBaaaleaacqGHRaWkcaWGRbaabeaakiaai2dadaWcaaqaaiaaikdaaeaacaWGObaaamaakaaabaGaaGymaiabgkHiTiabew9aMnaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaaabeaakiaai6cacqaHvpGzdaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaOGaamysaiaai6cacqaHvpGzdaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaOGaeyOeI0Iaeqy1dy2aaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaakiabgEna0kaadMeacaaIUaGaeqy1dy2aaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaakiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabodacaqG3aGaaeykaaaa@62AF@

This result leads to several key conclusions. First, Eqns. (36) and (37) provide a new interpretation of the discrete-time equation of motion as a momentum balance between adjacent time steps. Second, Eq. (36) can be used to initialize the integrator by solving for φ0 given I and ω0. Lastly, pk, and hence ωk, can be calculated at any point during the integration using either Eqns. (36) or (37).

The final missing piece of the integrator is a method for solving Eq. (33), which is both implicit and nonlinear. Newton’s method, which amounts to solving successive linear approximations of the equation until a desired level of accuracy is achieved [3,20], provides an efficient solution in this case. The necessary linear approximation is the Jacobian matrix of Eq. (37),

p k p k+1 = 2 h [ 1 ϕ k+1 . ϕ k+1 I I ϕ k+1 + ϕ k+1 ×I.ϕk+1 +skew( ϕ k+1 )Iskew( ϕ k+1 ) ]       (38) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWaaSaaaeaacqGHciITcaWGWbWaaSbaaSqaaiaadUgaaeqaaaGcbaGaeyOaIyRaamiCamaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaaaaOGaaGypamaalaaabaGaaGOmaaqaaiaadIgaaaWaamWaaeaafaqabeGabaaabaWaaOaaaeaacaaIXaGaeyOeI0Iaeqy1dy2aa0baaSqaaiaadUgacqGHRaWkcaaIXaaabaWefv3ySLgznfgDOfdaryqr1ngBPrginfgDObYtUvgaiuaacqWFKksLaaaabeaakiaai6cacqaHvpGzdaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaOGaamysamaakaaabaGaamysaiabew9aMnaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaGccqGHRaWkcqaHvpGzdaqhaaWcbaGaam4AaiabgUcaRiaaigdaaeaacqWFKksLaaGccqGHxdaTcaWGjbGaaGOlaiabew9aMjabgkHiTiaadUgacqGHRaWkcaaIXaaaleqaaaGcbaGaey4kaSIaam4CaiaadUgacaWGLbGaam4DaiaaiIcacqaHvpGzdaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaOGaaGykaiaadMeacqGHsislcaWGZbGaam4AaiaadwgacaWG3bGaaGikaiabew9aMnaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaGccaaIPaaaaaGaay5waiaaw2faaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaae4maiaabIdacaqGPaaaaa@8FF3@

where skew φ indicates the skew-symmetric matrix-multiplication equivalent of the cross-product operation:

skew[ ϕ 1 ϕ 2 ϕ 3 ]=[ 0 ϕ 3 ϕ 2 ϕ 3 0 ϕ 1 ϕ 2 ϕ 1 0 ]      (39) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaam4CaiaadUgacaWGLbGaam4DaiaaygW7daWadaqaauaabeqadeaaaeaacqaHvpGzdaWgaaWcbaGaaGymaaqabaaakeaacqaHvpGzdaWgaaWcbaGaaGOmaaqabaaakeaacqaHvpGzdaWgaaWcbaGaaG4maaqabaaaaaGccaGLBbGaayzxaaGaaGypamaadmaabaqbaeqabmWaaaqaaiaaicdaaeaacqGHsislcqaHvpGzdaWgaaWcbaGaaG4maaqabaaakeaacqaHvpGzdaWgaaWcbaGaaGOmaaqabaaakeaacqaHvpGzdaWgaaWcbaGaaG4maaqabaaakeaacaaIWaaabaGaeyOeI0Iaeqy1dy2aaSbaaSqaaiaaigdaaeqaaaGcbaGaeyOeI0Iaeqy1dy2aaSbaaSqaaiaaikdaaeqaaaGcbaGaeqy1dy2aaSbaaSqaaiaaigdaaeqaaaGcbaGaaGimaaaaaiaawUfacaGLDbaacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaae4maiaabMdacaqGPaaaaa@6648@

Three or four Newton iterations are sufficient to reach machine precision in all of the examples presented in Section 9 using standard 64-bit floating-point arithmetic. Once φk+1 is computed, the attitude can be updated by simple quaternion multiplication with the previous attitude, q k+1 = q k q ϕ k MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaaCyCamaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaGccaaI9aGaaCyCamaaBaaaleaacaWGRbaabeaakiaayIW7caWHXbWaaSbaaSqaaiabew9aMnaaBaaabaGaam4Aaaqabaaabeaaaaa@4439@ .

In summary, given an inertia and initial conditions q0 and ω0, the integrator is initialized by computing the momentum p 0 =I ω 0 MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaaCiCamaaBaaaleaacaaIWaaabeaakiaai2dacaWGjbGaeyyXICnccmGae8xYdC3aaSbaaSqaaiaaicdaaeqaaaaa@4088@ and an initial guess for φ0. A reasonable guess is

ϕ 0 h 2 ω 0 . MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqy1dy2aaSbaaSqaaiaaicdaaeqaaOGaeyisIS7aaSqaaSqaaiaadIgaaeaacaaIYaaaaOGaaGjcVlabeM8a3naaBaaaleaacaaIWaaabeaakiaac6caaaa@433D@

The true value of φ0 is then calculated to machine precision using Newton’s method with Eqns. (37) and (38). From φ0, p1 is calculated using Eq. (36), followed by ω1 and q1. The process is then repeated as desired.

6. Gyrostats

A gyrostat is a system of coupled rigid bodies whose relative motions do not change the total inertia tensor of the system [21]. A practical example is a rigid body with internal rotors or momentum actuators that can spin relative to the carrier body, such as a spacecraft with reaction wheels. Using the variational framework developed in the preceding sections, both the classical equations of motion and a variational integrator are straightforward to derive. The Lagrangian for a gyrostat system is

L= 1 2 ω B . I B . ω B + r=0 N 1 2 ( ω B + ω r ). I r .( ω B + ω r )+ 1 2 m r ( ω B × x r ) 2       (40) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamitaiaai2dadaWcaaqaaiaaigdaaeaacaaIYaaaaiabeM8a3naaBaaaleaacaWGcbaabeaakiaai6cacaWGjbWaaSbaaSqaaiaadkeaaeqaaOGaaGOlaiabeM8a3naaBaaaleaacaWGcbaabeaakiabgUcaRmaaqahabeWcbaGaamOCaiaai2dacaaIWaaabaGaamOtaaqdcqGHris5aOWaaSaaaeaacaaIXaaabaGaaGOmaaaacaaIOaGaeqyYdC3aaSbaaSqaaiaadkeaaeqaaOGaey4kaSIaeqyYdC3aaSbaaSqaaiaadkhaaeqaaOGaaGykaiaai6cacaWGjbWaaSbaaSqaaiaadkhaaeqaaOGaaGOlaiaaiIcacqaHjpWDdaWgaaWcbaGaamOqaaqabaGccqGHRaWkcqaHjpWDdaWgaaWcbaGaamOCaaqabaGccaaIPaGaey4kaSYaaSaaaeaacaaIXaaabaGaaGOmaaaacaWGTbWaaSbaaSqaaiaadkhaaeqaaOGaaGikaiabeM8a3naaBaaaleaacaWGcbaabeaakiabgEna0kaadIhadaWgaaWcbaGaamOCaaqabaGccaaIPaWaaWbaaSqabeaacaaIYaaaaOGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabsdacaqGWaGaaeykaaaa@73F3@

where IB and ωB are the carrier body’s inertia tensor and angular velocity, the Ir are the rotor inertia tensors, the ωr are the rotor angular velocities relative to the carrier body, and the Xr are the rotor positions relative to the carrier body’s center of mass. The Lagrangian can be simplified by introducing a modified body inertia.

I B 0 MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamysamaaDaaaleaacaWGcbaabaGaaGimaaaaaaa@3A81@ , which includes the rotor masses,

I B 1 = I B r=1 N m r skew ( x r ) 2      (41) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamysamaaDaaaleaacaWGcbaabaGaaGymaaaakiaai2dacaWGjbWaaSbaaSqaaiaadkeaaeqaaOGaeyOeI0YaaabCaeqaleaacaWGYbGaaGypaiaaigdaaeaacaWGobaaniabggHiLdGccaWGTbWaaSbaaSqaaiaadkhaaeqaaOGaaGjcVlaadohacaWGRbGaamyzaiaadEhacaaIOaGaamiEamaaBaaaleaacaWGYbaabeaakiaaiMcadaahaaWcbeqaaiaaikdaaaGccaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqG0aGaaeymaiaabMcaaaa@5595@

Substituting I B 0 MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamysamaaDaaaleaacaWGcbaabaGaaGimaaaaaaa@3A81@ into Eq. (40) eliminates the last term, giving the simpler expression

L= 1 2 ω B . I B ' . ω B + r=1 N 1 2 ( ω B + ω r ). I r .( ω B + ω r )       (42) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamitaiaai2dadaWcaaqaaiaaigdaaeaacaaIYaaaaiabeM8a3naaBaaaleaacaWGcbaabeaakiaai6cacaWGjbWaa0baaSqaaiaadkeaaeaacaaINaaaaOGaaGOlaiabeM8a3naaBaaaleaacaWGcbaabeaakiabgUcaRmaaqahabeWcbaGaamOCaiaai2dacaaIXaaabaGaamOtaaqdcqGHris5aOWaaSaaaeaacaaIXaaabaGaaGOmaaaacaaIOaGaeqyYdC3aaSbaaSqaaiaadkeaaeqaaOGaey4kaSIaeqyYdC3aaSbaaSqaaiaadkhaaeqaaOGaaGykaiaai6cacaWGjbWaaSbaaSqaaiaadkhaaeqaaOGaaGOlaiaaiIcacqaHjpWDdaWgaaWcbaGaamOqaaqabaGccqGHRaWkcqaHjpWDdaWgaaWcbaGaamOCaaqabaGccaaIPaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqG0aGaaeOmaiaabMcaaaa@6760@

The rotor angular velocities ωr are treated as exogenous inputs to the system that can be set arbitrarily (e.g., by a controller), and so variations need only be taken with respect to ωB. This fact makes the derivation for the gyrostat nearly identical to the free rigid body. The only difference is that a few extra terms involving Ir and ωr are carried through. Using ωB to vary the action and following the rest of the steps in Section 3 results in the following differential equation:

I B ' . ω B + ω B × I B ' . ω B + r=1 N I B . ω B + ω b × I r . ω B + I r . ω r + ω b × I r . ω r =0     (43) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamysamaaDaaaleaacaWGcbaabaGaaG4jaaaakiaai6cacqaHjpWDdaWgaaWcbaGaamOqaaqabaGccqGHRaWkcqaHjpWDdaWgaaWcbaGaamOqaaqabaGccqGHxdaTcaWGjbWaa0baaSqaaiaadkeaaeaacaaINaaaaOGaaGOlaiabeM8a3naaBaaaleaacaWGcbaabeaakiabgUcaRmaaqahabeWcbaGaamOCaiaai2dacaaIXaaabaGaamOtaaqdcqGHris5aOGaamysamaaBaaaleaacaWGcbaabeaakiaai6cacqaHjpWDdaWgaaWcbaGaamOqaaqabaGccqGHRaWkcqaHjpWDdaWgaaWcbaGaamOyaaqabaGccqGHxdaTcaWGjbWaaSbaaSqaaiaadkhaaeqaaOGaaGOlaiabeM8a3naaBaaaleaacaWGcbaabeaakiabgUcaRiaadMeadaWgaaWcbaGaamOCaaqabaGccaaIUaGaeqyYdC3aaSbaaSqaaiaadkhaaeqaaOGaey4kaSIaeqyYdC3aaSbaaSqaaiaadkgaaeqaaOGaey41aqRaamysamaaBaaaleaacaWGYbaabeaakiaai6cacqaHjpWDdaWgaaWcbaGaamOCaaqabaGccaaI9aGaaGimaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabsdacaqGZaGaaeykaaaa@7A81@

Two new definitions help simplify Eq. (43). First, the gyrostat inertia IG is

I G = I B ' + r=1 N I r = I B + 0 N I r m r skew ( x r ) 2       (44) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamysamaaBaaaleaacaWGhbaabeaakiaai2dacaWGjbWaa0baaSqaaiaadkeaaeaacaaINaaaaOGaey4kaSYaaabCaeqaleaacaWGYbGaaGypaiaaigdaaeaacaWGobaaniabggHiLdGccaWGjbWaaSbaaSqaaiaadkhaaeqaaOGaaGypaiaadMeadaWgaaWcbaGaamOqaaqabaGccqGHRaWkdaaeWbqabSqaaiaaicdaaeaacaWGobaaniabggHiLdGccaWGjbWaaSbaaSqaaiaadkhaaeqaaOGaeyOeI0IaamyBamaaBaaaleaacaWGYbaabeaakiaadohacaWGRbGaamyzaiaadEhacaaIOaGaamiEamaaBaaaleaacaWGYbaabeaakiaaiMcadaahaaWcbeqaaiaaikdaaaGccaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeinaiaabsdacaqGPaaaaa@60CB@

Second, ρ is the total angular momentum stored in all the rotors:

ρ= r=1 N I r . ω r       (45) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqyWdiNaaGypamaaqahabeWcbaGaamOCaiaai2dacaaIXaaabaGaamOtaaqdcqGHris5aOGaamysamaaBaaaleaacaWGYbaabeaakiaai6cacqaHjpWDdaWgaaWcbaGaamOCaaqabaGccaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeinaiaabwdacaqGPaaaaa@4C6A@

Substituting IG and ρ into Eq. (43) results in the classical equation of motion for the gyrostat [21]:

I G . ω B + ω B ×( I G . ω B +ρ)+ρ=0      (46) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamysamaaBaaaleaacaWGhbaabeaakiaai6cacqaHjpWDdaWgaaWcbaGaamOqaaqabaGccqGHRaWkcqaHjpWDdaWgaaWcbaGaamOqaaqabaGccqGHxdaTcaaIOaGaamysamaaBaaaleaacaWGhbaabeaakiaai6cacqaHjpWDdaWgaaWcbaGaamOqaaqabaGccqGHRaWkcqaHbpGCcaaIPaGaey4kaSIaeqyWdiNaaGypaiaaicdacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeinaiaabAdacaqGPaaaaa@572F@

The steps involved in deriving the discrete-time equivalent of Eq. (46) are now briefly highlighted. If ωB is approximated as in Eq. (24) and the rectangle rule is used, the discrete Lagrangian for the gyrostat is

L d = 2 h [ f k J B ' f k + r=1 N ( f k + h 2 ω ^ r,k ) J r ( f k + h 2 ω ^ r,k ) ]      (47) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamitamaaBaaaleaacaWGKbaabeaakiaai2dadaWcaaqaaiaaikdaaeaacaWGObaaamaadmaabaGaamOzamaaBaaaleaacaWGRbaabeaakiabgwSixlaadQeadaqhaaWcbaGaamOqaaqaaiaadEcaaaGccqGHflY1caWGMbWaaSbaaSqaaiaadUgaaeqaaOGaey4kaSYaaabCaeqaleaacaWGYbGaaGypaiaaigdaaeaacaWGobaaniabggHiLdGcdaqadaqaaiaadAgadaWgaaWcbaGaam4AaaqabaGccqGHRaWkdaWcbaWcbaGaamiAaaqaaiaaikdaaaGccaaMi8UafqyYdCNbaKaadaWgaaWcbaGaamOCaiaaiYcacaWGRbaabeaaaOGaayjkaiaawMcaaiaadQeadaWgaaWcbaGaamOCaaqabaGcdaqadaqaaiaadAgadaWgaaWcbaGaam4AaaqabaGccqGHRaWkdaWcbaWcbaGaamiAaaqaaiaaikdaaaGccaaMi8UafqyYdCNbaKaadaWgaaWcbaGaamOCaiaaiYcacaWGRbaabeaaaOGaayjkaiaawMcaaaGaay5waiaaw2faaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqG0aGaae4naiaabMcaaaa@71BF@

where J B 0 MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamOsamaaDaaaleaacaWGcbaabaGaaGimaaaaaaa@3A82@ and Jr are the augmented 4 × 4 equivalents formed as in Eq. (26) and its variation taken using εfk of I B 0 MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamysamaaDaaaleaacaWGcbaabaGaaGimaaaaaaa@3A81@ and Ir. The discrete action sum Sd can then be formed as in Eq. (26) and its variation taken using εfk from Eq. (27):

S d = k=1 N1 [ f k J B .( f k η ^ k+1 η ^ k f k )+ r=1 N ( f k + h 2 ω ^ r,k ). J r .( f k η ^ k+1 η ^ k f k )=0 ]      (48) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeyOaIyRaam4uamaaBaaaleaacaWGKbaabeaakiaai2dadaaeWbqabSqaaiaadUgacaaI9aGaaGymaaqaaiaad6eacqGHsislcaaIXaaaniabggHiLdGcdaWadaqaaiaadAgadaWgaaWcbaGaam4AaaqabaGccqGHflY1caWGkbWaaSbaaSqaaiaadkeaaeqaaOGaaGOlamaabmaabaGaamOzamaaBaaaleaacaWGRbaabeaakiqbeE7aOzaajaWaaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaakiabgkHiTiqbeE7aOzaajaWaaSbaaSqaaiaadUgaaeqaaOGaamOzamaaBaaaleaacaWGRbaabeaaaOGaayjkaiaawMcaaiabgUcaRmaaqahabeWcbaGaamOCaiaai2dacaaIXaaabaGaamOtaaqdcqGHris5aOWaaeWaaeaacaWGMbWaaSbaaSqaaiaadUgaaeqaaOGaey4kaSYaaSqaaSqaaiaadIgaaeaacaaIYaaaaOGaaGjcVlqbeM8a3zaajaWaaSbaaSqaaiaadkhacaaISaGaam4AaaqabaaakiaawIcacaGLPaaacaaIUaGaamOsamaaBaaaleaacaWGYbaabeaakiaai6cadaqadaqaaiaadAgadaWgaaWcbaGaam4AaaqabaGccuaH3oaAgaqcamaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaGccqGHsislcuaH3oaAgaqcamaaBaaaleaacaWGRbaabeaakiaadAgadaWgaaWcbaGaam4AaaqabaaakiaawIcacaGLPaaacaaI9aGaaGimaaGaay5waiaaw2faaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqG0aGaaeioaiaabMcaaaa@86B5@

Following the rest of the steps in Section 4 and substituting in IG and ρ results in the discrete-time gyrostat equation:

1 ϕ k . ϕ k [ I G . Φ k + h 2 ρ k ] ϕ k ×[ I G . ϕ k + h 2 ρ k ]=  1 ϕ k+1 . ϕ k+1 [ I G . Φ k+1 + h 2 ρ k+1 ] ϕ k+1 ×[ I G . ϕ k+1 + h 2 ρ k+1 ]           (49) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGceaqabeaadaGcaaqaaiaaigdacqGHsislcqaHvpGzdaWgaaWcbaGaam4AaaqabaGccaaIUaGaeqy1dy2aaSbaaSqaaiaadUgaaeqaaaqabaGcdaWadaqaaiaadMeadaWgaaWcbaGaam4raaqabaGccaaIUaGaeuOPdy0aaSbaaSqaaiaadUgaaeqaaOGaey4kaSYaaSaaaeaacaWGObaabaGaaGOmaaaacqaHbpGCdaWgaaWcbaGaam4AaaqabaaakiaawUfacaGLDbaacqGHsislcqaHvpGzdaWgaaWcbaGaam4AaaqabaGccqGHxdaTdaWadaqaaiaadMeadaWgaaWcbaGaam4raaqabaGccaaIUaGaeqy1dy2aaSbaaSqaaiaadUgaaeqaaOGaey4kaSYaaSaaaeaacaWGObaabaGaaGOmaaaacqaHbpGCdaWgaaWcbaGaam4AaaqabaaakiaawUfacaGLDbaacaaI9aGaaeiiaaqaamaakaaabaGaaGymaiabgkHiTiabew9aMnaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaGccaaIUaGaeqy1dy2aaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaaaeqaaOWaamWaaeaacaWGjbWaaSbaaSqaaiaadEeaaeqaaOGaaGOlaiabfA6agnaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaGccqGHRaWkdaWcaaqaaiaadIgaaeaacaaIYaaaaiabeg8aYnaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaaakiaawUfacaGLDbaacqGHsislcqaHvpGzdaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaOGaey41aq7aamWaaeaacaWGjbWaaSbaaSqaaiaadEeaaeqaaOGaaGOlaiabew9aMnaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaGccqGHRaWkdaWcaaqaaiaadIgaaeaacaaIYaaaaiabeg8aYnaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaaakiaawUfacaGLDbaacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqG0aGaaeyoaiaabMcaaaaa@9E10@

Equation (49) can be directly substituted into the variational integrator developed in Section 5. The only other change necessary is to the Jacobian in the Newton iteration:

p + ϕ k+1 = 2 h [ 1 ϕ ϕI Iϕ ϕ 1 ϕ ϕ +skew(ϕ)Iskew(Iϕ) h 2 ρ ϕ 1 ϕ ϕ h 2 skew(ρ) ]       (50) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWaaSaaaeaacqGHciITcaWGWbWaaWbaaSqabeaacqGHRaWkaaaakeaacqGHciITcqaHvpGzdaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaaaakiaai2dadaWcaaqaaiaaikdaaeaacaWGObaaamaadmaabaWaaOaaaeaacaaIXaGaeyOeI0Iaeqy1dy2aaWbaaSqabeaatuuDJXwAK1uy0HwmaeHbfv3ySLgzG0uy0Hgip5wzaGqbaiab=rQivcaakiabew9aMjaadMeaaSqabaGccqGHsisldaWcaaqaaiaadMeacqaHvpGzcqaHvpGzdaahaaWcbeqaaiab=rQivcaaaOqaamaakaaabaGaaGymaiabgkHiTaWcbeaakiabew9aMnaaCaaaleqabaGae8hPIujaaOGaeqy1dygaaiabgUcaRiaadohacaWGRbGaamyzaiaadEhacaaIOaGaeqy1dyMaaGykaiaadMeacqGHsislcaWGZbGaam4AaiaadwgacaWG3bGaaGikaiaadMeacqaHvpGzcaaIPaGaeyOeI0YaaSaaaeaacaWGObaabaGaaGOmaaaadaWcaaqaaiabeg8aYjabew9aMnaaCaaaleqabaGae8hPIujaaaGcbaWaaOaaaeaacaaIXaGaeyOeI0Iaeqy1dy2aaWbaaSqabeaacqWFKksLaaGccqaHvpGzaSqabaaaaOGaeyOeI0YaaSaaaeaacaWGObaabaGaaGOmaaaacaWGZbGaam4AaiaadwgacaWG3bGaaGikaiabeg8aYjaaiMcaaiaawUfacaGLDbaacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabwdacaqGWaGaaeykaaaa@9898@

7. External torques

External torques can be incorporated into the variational framework using the Lagrange–d’Alembert principle (often known simply as d’Alembert’s principle) [17,18]. In particular, its integral form [1,22]:

t0 t f Ldt+ t0 t f F.qdt=0      (51) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeyOaIy7aa8qmaeqaleaacaWG0bGaaGimaaqaaiaadshadaWgaaqaaiaadAgaaeqaaaqdcqGHRiI8aOGaamitaiaadsgacaWG0bGaey4kaSYaa8qmaeqaleaacaWG0bGaaGimaaqaaiaadshadaWgaaqaaiaadAgaaeqaaaqdcqGHRiI8aOGaamOraiaai6cacqGHciITcaWGXbGaamizaiaadshacaaI9aGaaGimaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqG1aGaaeymaiaabMcaaaa@56AF@

is most readily applied here, where the term on the left is simply the variation of the action δS and the term on the right is the integral of the virtual work done by a generalized force F. To apply the Lagrange–d’Alembert principle to a rigid body, the expression for the quaternion generalized force given in Eq. (10), as well as the variational derivative of the attitude quaternion δq, are substituted into the second term of Eq. (51):

t 0 t f Fδqdt= t 0 t f 2q τ ^ (q η ^ )dt     (52) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWaa8qmaeqaleaacaWG0bWaaSbaaeaacaaIWaaabeaaaeaacaWG0bWaaSbaaeaacaWGMbaabeaaa0Gaey4kIipakiaadAeacaaMi8UaeqiTdqMaamyCaiaayIW7caWGKbGaamiDaiaaysW7caaI9aGaaGjbVpaapedabeWcbaGaamiDamaaBaaabaGaaGimaaqabaaabaGaamiDamaaBaaabaGaamOzaaqabaaaniabgUIiYdGccaaIYaGaamyCaiaayIW7cuaHepaDgaqcaiabgwSixlaaiIcacaWGXbGaaGjcVlqbeE7aOzaajaGaaGykaiaayIW7caWGKbGaamiDaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabwdacaqGYaGaaeykaaaa@66DA@

A little algebra reveals that q τ ^ q η ^ τη, MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyCaiqbes8a0zaajaGaeyyXICTaamyCaiqbeE7aOzaajaGaeqiXdqNaeyyXICTaeq4TdGMaaGilaaaa@463D@ further simplifying the expression. Combining this result with the action term from Eq. (18) leads to the following equation:

t 0 t f ( 2 ω ^ J ω ^ η ^ 2 ω ^ J η ^ +2 τ ^ η ^ )dt=0F.δqdt=      (53) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWaa8qmaeqaleaacaWG0bWaaSbaaeaacaaIWaaabeaaaeaacaWG0bWaaSbaaeaacaWGMbaabeaaa0Gaey4kIipakmaabmaabaGaaGOmaiaayIW7cuaHjpWDgaqcaiabgwSixlaadQeacqGHflY1cuaHjpWDgaqcaiaayIW7cuaH3oaAgaqcaiabgkHiTiaaikdacaaMi8UafqyYdCNbaKaacqGHflY1caWGkbGaeyyXICTafq4TdGMbaKaacqGHRaWkcaaIYaGaaGjcVlqbes8a0zaajaGaeyyXICTafq4TdGMbaKaaaiaawIcacaGLPaaacaWGKbGaamiDaiaai2dacaaIWaGaamOraiaai6cacqaH0oazcaWGXbGaamizaiaadshacaaI9aGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabwdacaqGZaGaaeykaaaa@7453@

It is then straightforward to work through the rest of the steps in Section 3 to arrive at the forced Euler equation:

I.ω+ω×I.ω=τ       (54) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamysaiaai6cacqaHjpWDcqGHRaWkcqaHjpWDcqGHxdaTcaWGjbGaaGOlaiabeM8a3jaai2dacqaHepaDcaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabwdacaqG0aGaaeykaaaa@4D38@

Incorporating forcing into the discrete variational framework is a bit more subtle than in the continuous case. The discrete version of the Lagrange–D’Alembert principle is

δ k=1 N L d +δ k=1 N F d .δ q k + F d + .δ q k+1 =0      (55) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqiTdq2aaabCaeqaleaacaWGRbGaaGypaiaaigdaaeaacaWGobaaniabggHiLdGccaWGmbWaaSbaaSqaaiaadsgaaeqaaOGaey4kaSIaeqiTdq2aaabCaeqaleaacaWGRbGaaGypaiaaigdaaeaacaWGobaaniabggHiLdGccaWGgbWaa0baaSqaaiaadsgaaeaacqGHsislaaGccaaIUaGaeqiTdqMaamyCamaaBaaaleaacaWGRbaabeaakiabgUcaRiaadAeadaqhaaWcbaGaamizaaqaaiabgUcaRaaakiaai6cacqaH0oazcaWGXbWaaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaakiaai2dacaaIWaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabwdacaqG1aGaaeykaaaa@6275@

where F d MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamOramaaDaaaleaacaWGKbaabaGaeyOeI0caaaaa@3AD3@ and Fd are known as discrete generalized forces [1]. Similar to what is encountered with the discrete Legendre transform, there are two discrete generalized forces corresponding to the beginning and end of a time step:

F d = t k t k+1 1 2 F(q,q). q(t) q k dt     (56) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamOramaaDaaaleaacaWGKbaabaGaeyOeI0caaOGaaGypamaaqahabeWcbaGaamiDamaaBaaabaGaam4AaaqabaaabaGaamiDamaaBaaabaGaam4AaiabgUcaRiaaigdaaeqaaaqdcqGHris5aOWaaSaaaeaacaaIXaaabaGaaGOmaaaacaWGgbGaaGikaiaadghacaaISaGaamyCaiaaiMcacaaIUaWaaSaaaeaacqGHciITcaWGXbGaaGikaiaadshacaaIPaaabaGaeyOaIyRaamyCamaaBaaaleaacaWGRbaabeaaaaGccaWGKbGaamiDaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabwdacaqG2aGaaeykaaaa@5AD8@

F d + = t k t k+1 1 2 F(q,q). q(t) q k+1 dt       (57) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamOramaaDaaaleaacaWGKbaabaGaey4kaScaaOGaaGypamaaqahabeWcbaGaamiDamaaBaaabaGaam4AaaqabaaabaGaamiDamaaBaaabaGaam4AaiabgUcaRiaaigdaaeqaaaqdcqGHris5aOWaaSaaaeaacaaIXaaabaGaaGOmaaaacaWGgbGaaGikaiaadghacaaISaGaamyCaiaaiMcacaaIUaWaaSaaaeaacqGHciITcaWGXbGaaGikaiaadshacaaIPaaabaGaeyOaIyRaamyCamaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaaaaOGaamizaiaadshacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabwdacaqG3aGaaeykaaaa@5DB1@

As with the discrete Lagrangian, the integrals in the definition of the discrete generalized forces are approximated by quadrature. Here, the rectangle rule is used, though more accurate quadrature rules can lead to more accurate integrators at the expense of increased computational burden:

F d h q k τ ^ k       (58) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamOramaaDaaaleaacaWGKbaabaGaeyOeI0caaOGaeyisISRaamiAaiaadghadaWgaaWcbaGaam4AaaqabaGccuaHepaDgaqcamaaBaaaleaacaWGRbaabeaakiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqG1aGaaeioaiaabMcaaaa@492E@

F d + h q k+1 τ ^ k+1      (59) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamOramaaDaaaleaacaWGKbaabaGaey4kaScaaOGaeyisISRaamiAaiaadghadaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaOGafqiXdqNbaKaadaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaOGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeynaiaabMdacaqGPaaaaa@4BBB@

Substituting the approximations for F d MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamOramaaDaaaleaacaWGKbaabaGaeyOeI0caaaaa@3AD3@ and Fd , as well as the discrete Lagrangian for the rigid body from Eq. (25), into Eq. (55) results in

δ k=0 N 2 h f k .J. f k + k=0 N h q k τ ^ k.δ q k+1 τ ^ k+1 .δ q k+1 =0       (60) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqiTdq2aaabCaeqaleaacaWGRbGaaGypaiaaicdaaeaacaWGobaaniabggHiLdGcdaWcaaqaaiaaikdaaeaacaWGObaaaiaadAgadaWgaaWcbaGaam4AaaqabaGccaaIUaGaamOsaiaai6cacaWGMbWaaSbaaSqaaiaadUgaaeqaaOGaey4kaSYaaabCaeqaleaacaWGRbGaaGypaiaaicdaaeaacaWGobaaniabggHiLdGccaWGObGaamyCamaaBaaaleaacaWGRbaabeaakiqbes8a0zaajaGaam4Aaiaai6cacqaH0oazcaWGXbWaaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaakiqbes8a0zaajaWaaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaakiaai6cacqaH0oazcaWGXbWaaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaakiaai2dacaaIWaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqG2aGaaeimaiaabMcaaaa@6D13@

Carrying out the variational derivatives leads to the following:

δ k=0 N 4 h f k .J( f k η k+1 η k f k )+h τ ^ k . η ^ k +h τ ^ k+1 . η ^ k+1 =0       (61) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqiTdq2aaabCaeqaleaacaWGRbGaaGypaiaaicdaaeaacaWGobaaniabggHiLdGcdaWcaaqaaiaaisdaaeaacaWGObaaaiaadAgadaWgaaWcbaGaam4AaaqabaGccaaIUaGaamOsaiaaiIcacaWGMbWaaSbaaSqaaiaadUgaaeqaaOGaeq4TdG2aaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaakiabgkHiTiabeE7aOnaaBaaaleaacaWGRbaabeaakiaadAgadaWgaaWcbaGaam4AaaqabaGccaaIPaGaey4kaSIaamiAaiqbes8a0zaajaWaaSbaaSqaaiaadUgaaeqaaOGaaGOlaiqbeE7aOzaajaWaaSbaaSqaaiaadUgaaeqaaOGaey4kaSIaamiAaiqbes8a0zaajaWaaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaakiaai6cacuaH3oaAgaqcamaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaGccaaI9aGaaGimaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeOnaiaabgdacaqGPaaaaa@6EFF@

Eliminating the η k+1 MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeq4TdG2aaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaaaaa@3C6A@ terms again requires a “discrete integration by parts.” Manipulating indices results in

δ k=0 N 4 h f k1 .J( f k1 η k η k f K )+2h τ ^ k . η ^ k =0       (62) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqiTdq2aaabCaeqaleaacaWGRbGaaGypaiaaicdaaeaacaWGobaaniabggHiLdGcdaWcaaqaaiaaisdaaeaacaWGObaaaiaadAgadaWgaaWcbaGaam4AaiabgkHiTiaaigdaaeqaaOGaaGOlaiaadQeacaaIOaGaamOzamaaBaaaleaacaWGRbGaeyOeI0IaaGymaaqabaGccqaH3oaAdaWgaaWcbaGaam4AaaqabaGccqGHsislcqaH3oaAdaWgaaWcbaGaam4AaaqabaGccaWGMbWaaSbaaSqaaiaadUeaaeqaaOGaaGykaiabgUcaRiaaikdacaWGObGafqiXdqNbaKaadaWgaaWcbaGaam4AaaqabaGccaaIUaGafq4TdGMbaKaadaWgaaWcbaGaam4AaaqabaGccaaI9aGaaGimaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeOnaiaabkdacaqGPaaaaa@65B1@

Retracing the remaining steps in Section 4 yields the discrete-time equation of motion for the forced rigid body:

1 ϕ k I ϕ k ϕ k ( ϕ k ×(I ϕ k ) )= 1 ϕ k+1 I ϕ k+1 ϕ k+1 ( ϕ k+1 ×(I ϕ k+1 ) )+ h 2 2 τ k+1       (63) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWaaOaaaeaacaaMi8UaaGymaiabgkHiTiabew9aMnaaBaaaleaacaWGRbaabeaakiabgwSixlaadMeacqGHflY1cqaHvpGzdaWgaaWcbaGaam4AaaqabaGccaaMi8oaleqaaOGaaGjcVlabew9aMnaaBaaaleaacaWGRbaabeaakiabgkHiTmaabmaabaGaeqy1dy2aaSbaaSqaaiaadUgaaeqaaOGaey41aqRaaGikaiaadMeacqGHflY1cqaHvpGzdaWgaaWcbaGaam4AaaqabaGccaaIPaaacaGLOaGaayzkaaGaaGypamaakaaabaGaaGjcVlaaigdacqGHsislcqaHvpGzdaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaOGaeyyXICTaamysaiabgwSixlabew9aMnaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaGccaaMi8oaleqaaOGaaGjcVlabew9aMnaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaGccqGHsisldaqadaqaaiabew9aMnaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaGccqGHxdaTcaaIOaGaamysaiabgwSixlabew9aMnaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaGccaaIPaaacaGLOaGaayzkaaGaey4kaSYaaSaaaeaacaWGObWaaWbaaSqabeaacaaIYaaaaaGcbaGaaGOmaaaacaaMi8UaeqiXdq3aaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaakiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqG2aGaae4maiaabMcaaaa@9840@

This result can also be readily applied to the forced gyrostat by adding the same torque term onto the right-hand side of Eq. (49).

8. Gyrostat spacecraft with damping

The tools developed up to this point enable the construction of a variational integrator for a gyrostat with an internal energy-dissipating mechanism. The mechanism considered here is known as a Kane damper and consists of a spherical mass immersed in a viscous fluid inside a spherical cavity in the spacecraft body [23]. The torque exerted on the spacecraft by the damper is

τ=C( ω D ω B )       (64) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqiXdqNaaGypaiaadoeacaaIOaGaeqyYdC3aaSbaaSqaaiaadseaaeqaaOGaeyOeI0IaeqyYdC3aaSbaaSqaaiaadkeaaeqaaOGaaGykaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeOnaiaabsdacaqGPaaaaa@4A7D@

where C is a damping constant, ωD is the damper angular velocity, and ωB is the body angular velocity. The basic approach taken here is to treat the body and damper as separate rigid bodies coupled through the viscous damping force. Equation (64) is approximated by finite differences in the usual way, giving

τ k 2 h C( γ k ϕ k )       (65) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqiXdq3aaSbaaSqaaiaadUgaaeqaaOGaeyisIS7aaSaaaeaacaaIYaaabaGaamiAaaaacaWGdbGaaGikaiabeo7aNnaaBaaaleaacaWGRbaabeaakiabgkHiTiabew9aMnaaBaaaleaacaWGRbaabeaakiaaiMcacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabAdacaqG1aGaaeykaaaa@4E6C@

where ϕ k MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqy1dy2aaSbaaSqaaiaadUgaaeqaaaaa@38D6@ is the incremental body rotation defined in Eq. (31) and γk is the analogous incremental rotation for the damper. Substituting this approximation into Eq. (63) yields a set of coupled equations for the gyrostat–damper system:

1 ϕ k . ϕ k [ I G . ϕ k + h 2 ρ k ] ϕ k ×[ I G . ϕ k + h 2 ρ k ]= 1 ϕ k+1 . ϕ k+1 [ I G . ϕ k+1 + h 2 ρ k+1 ]+ ϕ k+1 ×[ I G . ϕ k+1 + h 2 ρ k+1 ]+hC( γ k+1 ϕ k+1 )        (66) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGceaqabeaadaGcaaqaaiaaigdacqGHsislcqaHvpGzdaWgaaWcbaGaam4AaaqabaGccaaIUaGaeqy1dy2aaSbaaSqaaiaadUgaaeqaaaqabaGcdaWadaqaaiaadMeadaWgaaWcbaGaam4raaqabaGccaaIUaGaeqy1dy2aaSbaaSqaaiaadUgaaeqaaOGaey4kaSYaaSaaaeaacaWGObaabaGaaGOmaaaacqaHbpGCdaWgaaWcbaGaam4AaaqabaaakiaawUfacaGLDbaacqGHsislcqaHvpGzdaWgaaWcbaGaam4AaaqabaGccqGHxdaTdaWadaqaaiaadMeadaWgaaWcbaGaam4raaqabaGccaaIUaGaeqy1dy2aaSbaaSqaaiaadUgaaeqaaOGaey4kaSYaaSaaaeaacaWGObaabaGaaGOmaaaacqaHbpGCdaWgaaWcbaGaam4AaaqabaaakiaawUfacaGLDbaacaaI9aaabaWaaOaaaeaacaaIXaGaeyOeI0Iaeqy1dy2aaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaakiaai6cacqaHvpGzdaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaaqabaGcdaWadaqaaiaadMeadaWgaaWcbaGaam4raaqabaGccaaIUaGaeqy1dy2aaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaakiabgUcaRmaalaaabaGaamiAaaqaaiaaikdaaaGaeqyWdi3aaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaaaOGaay5waiaaw2faaiabgUcaRiabew9aMnaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaGccqGHxdaTdaWadaqaaiaadMeadaWgaaWcbaGaam4raaqabaGccaaIUaGaeqy1dy2aaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaakiabgUcaRmaalaaabaGaamiAaaqaaiaaikdaaaGaeqyWdi3aaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaaaOGaay5waiaaw2faaiabgUcaRiaadIgacaWGdbGaaGikaiabeo7aNnaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaGccqGHsislcqaHvpGzdaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaOGaaGykaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabAdacaqG2aGaaeykaaaaaa@A9F2@

1 γ k . γ k I D = 1 γ k+1 . γ k+1 I D . γ k+1 hC( γ k+1 ϕ k+1 )         (67) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWaaOaaaeaacaaIXaGaeyOeI0Iaeq4SdC2aaSbaaSqaaiaadUgaaeqaaOGaaGOlaiabeo7aNnaaBaaaleaacaWGRbaabeaaaeqaaOGaamysamaaBaaaleaacaWGebaabeaakiaai2dadaGcaaqaaiaaigdacqGHsislcqaHZoWzdaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaOGaaGOlaiabeo7aNnaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaaabeaakiaadMeadaWgaaWcbaGaamiraaqabaGccaaIUaGaeq4SdC2aaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaakiabgkHiTiaadIgacaWGdbGaaGikaiabeo7aNnaaBaaaleaacaWGRbGaey4kaSIaaGymaaqabaGccqGHsislcqaHvpGzdaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaOGaaGykaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabIcacaqG2aGaae4naiaabMcaaaa@6B44@

These equations take advantage of the fact that the damper is spherical, and thus has an inertia tensor that is a scalar multiple of the identity, to eliminate the cross-product term in Eq. (67).

Equations (66) and (67) must be solved simultaneously for φk+1 and γk+1. Once again, Newton’s method is used, this time with both equations combined to form a single six-dimensional system. The necessary 6×6 Jacobian matrix is easily derived in terms of Eqs. (38) and (50). In addition to the steps outlined in Section 5, a subtlety arises in the implementation of this integrator in that the components of the damper’s angular-momentum vector must be rotated by fk at the end of each time step to keep them aligned with the spacecraft body frame.

9. Numerical examples

This section presents some numerical examples to demonstrate the performance of the variational integrators derived in Secs. IV–VIII. Comparisons are made to the second-order fixed-step midpoint rule and MATLAB's ODE45 and ODE15s variable-step Runge–Kutta solvers with default error tolerances [24]. The computational cost of the midpoint rule roughly equals that of the variational integrators.In all simulations, the following inertia matrix is used:

I=[ 1 0 0 0 2 0 0 0 3 ]        (68) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamysaiaai2dadaWadaqaauaabeqadmaaaeaacaaIXaaabaGaaGimaaqaaiaaicdaaeaacaaIWaaabaGaaGOmaaqaaiaaicdaaeaacaaIWaaabaGaaGimaaqaaiaaiodaaaaacaGLBbGaayzxaaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGOaGaaeOnaiaabIdacaqGPaaaaa@4A16@

A. Rigid body

The first test compares the energy and momentum behavior of the integrator in Section 5 with the midpoint rule and ODE45 by simulating a free rigid body with an initial angular velocity ω 0 = [ π 4 , π 5 , π 6 ] T rad/s MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaaccmGae8xYdC3aaSbaaSqaaiaaicdaaeqaaOGaaGypamaadmaabaWaaSqaaSqaaiabec8aWbqaaiaaisdaaaGccaaISaGaaGjbVlabgkHiTmaaleaaleaacqaHapaCaeaacaaI1aaaaOGaaGilaiaaysW7daWcbaWcbaGaeqiWdahabaGaaGOnaaaaaOGaay5waiaaw2faamaaCaaaleqabaGaamivaaaakiaaysW7caqGYbGaaeyyaiaabsgacaqGVaGaae4Caaaa@51E1@ . The time steps for the midpoint rule and the variational integrator are chosen to be h = 0.2 s to make the run time for both roughly equal to that of ODE45. Because this system is conservative, both the inertial angular-momentum vector components and the total energy should remain constant throughout the simulation.

The performance of the proposed variational integrator is first evaluated against conventional nonsymplectic schemes. Figure 1 illustrates the applied input torque components in the body frame. The sinusoidal profiles represent externally applied control or disturbance torques driving the rigid-body dynamics. These torque excitations are critical for benchmarking integration schemes since they generate oscillatory responses that challenge numerical stability. The smooth representation of all three components confirms that the variational integrator correctly captures torque transmission without introducing spurious oscillations or numerical artifacts, which are often observed in nonsymplectic methods at larger time steps.

Figure 2 shows the normalized internal rotor momentum evolution. Here, the momentum components remain bounded and follow physically consistent oscillations over the entire simulation horizon. This behavior highlights the momentum-preserving property of the variational integrator. In contrast, classical Runge–Kutta solvers gradually accumulate drift due to truncation errors, causing artificial energy injection or dissipation into the system. The fact that the variational results align almost exactly with the reference solution demonstrates that the scheme inherently respects conservation laws of rigid-body motion, even under long-duration simulations.

Figure 3 presents the body angular velocity components across an extended propagation interval. The oscillatory motion reflects the natural rotational dynamics of the system under the applied torques. The variational integrator maintains stable angular velocity trajectories for over one million integration steps, showing no evidence of instability or exponential error growth. The slight long-term drift is attributable solely to round-off error from finite-precision floating-point arithmetic. Importantly, this error remains bounded and grows at a much slower rate compared to nonsymplectic integrators, which typically amplify drift due to loss of symplectic structure. This confirms that the variational scheme is particularly well suited for long-duration attitude propagation, where numerical stability is critical.

Figure 4 depicts the inertial angular momentum components, which remain nearly constant throughout the simulation. This invariance is a direct consequence of the variational integrator’s geometric structure, which enforces conservation of first integrals such as angular momentum. Even over long integration windows, the deviation between the variational and reference solutions remains negligible. By contrast, conventional Runge–Kutta methods introduce gradual dissipation or amplification of momentum because they do not explicitly preserve invariants of motion. The near-perfect overlap of the momentum curves in Figure 4 demonstrates that the variational framework not only stabilizes the numerical solution but also guarantees physical consistency, making it a robust tool for spacecraft dynamics simulations.

Together, Figures 1-4 confirm that the variational integrator preserves key invariants of motion and provides long-term numerical stability. While higher-order Runge–Kutta schemes can reduce truncation error, they do so at substantially higher computational cost. The variational method strikes a more effective balance, delivering computational efficiency while rigorously maintaining the system’s physical properties. This makes it particularly suitable for spacecraft attitude propagation and real-time guidance, navigation, and control applications.

B. Damped rigid body

The second numerical experiment incorporates the spherical damper described in Section 8 into the rigid-body simulation. The damper inertia is set to ID = 0.2 and the damping constant C is varied from 0.1 to 100. The classical midpoint rule is excluded from the comparison, since it rapidly diverges as C increases and requires prohibitively small step sizes to maintain stability.

Figure 5 presents the total system energy over time for the case C = 100. Both ODE45 and the proposed variational integrator capture the dissipative behavior of the damped rigid body, showing a monotonic decay of energy. However, the variational integrator achieves this with a fixed time step of h = 0.3s, whereas ODE45 must continually adapt its step size to ensure stability. Despite this, the results remain nearly indistinguishable, confirming that the variational method can reproduce dissipative dynamics with high fidelity while being computationally more efficient.

Figure 6 shows the evolution of attitude quaternion components expressed in terms of system momentum. The variational integrator maintains consistency with ODE45 across all components, accurately reflecting the coupled dynamics between the body and the internal damper. Importantly, the momentum oscillations remain physically interpretable, and no artificial drift is introduced by the variational scheme, even under strong damping conditions.

Figure 7 depicts the rotor momentum components. These plots demonstrate the energy exchange between the damper and the primary body dynamics, where the damper dissipates rotational energy and stabilizes the system response. The smooth decay of momentum confirms that the variational framework is able to correctly capture the dissipative interaction between subsystems, a task that often destabilizes traditional integrators unless extremely small step sizes are employed.

Figure 8 presents the body angular velocity components. While both ODE45 and the variational scheme produce nearly identical results, ODE45 requires adaptive step refinement to avoid instability, whereas the variational method achieves stability with a fixed step size. This robustness highlights a significant advantage for real-time spacecraft applications, where computational budgets are limited and adaptive step solvers may not be practical.

Together, Figures 5-8 validate that the variational integrator not only conserves momentum and energy in conservative systems (as shown in Section 9A), but also extends naturally to dissipative dynamics without loss of accuracy or stability. This dual capability makes the method particularly attractive for modeling spacecraft equipped with passive damping mechanisms, where long-duration, stable simulations are essential.

C. Extended kalman filter

The final test case demonstrates the advantages of variational integrators in a real-time estimation application. A spacecraft attitude determination problem is simulated where a multiplicative extended Kalman filter (MEKF) [25,26] is used to estimate the attitude quaternion from noisy measurements of two inertial reference vectors. This situation is typical on CubeSats, for example, where magnetometer and sun vector measurements are commonly used for attitude determination.

A simulated truth model is constructed by integrating the rigid-body equations of motion with initial conditions q 0 0;0;0;1 T MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyCamaaBaaaleaacaaIWaaabeaakiaaicdacaaI7aGaaGimaiaaiUdacaaIWaGaaG4oaiaaigdadaahaaWcbeqaaiaadsfaaaaaaa@4029@ and ω 0 4; 5;6 T deg/s MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaeqyYdC3aaSbaaSqaaiaaicdaaeqaaOGaaGinaiaaiUdacqGHsislcaaI1aGaaG4oaiaaiAdadaahaaWcbeqaaiaadsfaaaGccaaMi8UaaeizaiaabwgacaqGNbGaae4laiaabohaaaa@4678@ using ODE45 in MATLAB. Simulated vector measurements are then generated and Gaussian noise is added. Attitudes for filter initialization are computed from the first pair of noisy measurement vectors using the triad of vectors (TRIAD) algorithm [27]. Figures 8-10 compare a standard EKF to one using a variational integrator to perform its state prediction step. The two filters have nearly identical performance at high sample rates but show very different behaviors as the sample rate decreases. The underlying reason for this performance difference is the quality of the linearization that the variational integrator yields. Equation (38) and the corresponding Jacobian of Eq. (36) lead to the true linearization of the map from φk to φk+1.

ϕ k+1 ϕ k = [ ρ k ϕ k+1 ] 1 ρ k ϕ k        (69) MathType@MTEF@5@5@+=feaaguart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr4rNCHbGeaGqk0Jf9crFfpeea0xh9v8qiW7rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWaaSaaaeaacqGHciITcqaHvpGzdaWgaaWcbaGaam4AaiabgUcaRiaaigdaaeqaaaGcbaGaeyOaIyRaeqy1dy2aaSbaaSqaaiaadUgaaeqaaaaakiaai2dadaWadaqaamaalaaabaGaeyOaIyRaeqyWdi3aaSbaaSqaaiaadUgaaeqaaaGcbaGaeyOaIyRaeqy1dy2aaSbaaSqaaiaadUgacqGHRaWkcaaIXaaabeaaaaaakiaawUfacaGLDbaadaahaaWcbeqaaiabgkHiTiaaigdaaaGcdaWcaaqaaiabgkGi2kabeg8aYnaaBaaaleaacaWGRbaabeaaaOqaaiabgkGi2kabew9aMnaaBaaaleaacaWGRbaabeaaaaGccaqGGaGaaeiiaiaabccacaqGGaGaaeiiaiaabccacaqGGaGaaeikaiaabAdacaqG5aGaaeykaaaa@6130@

This linearization is completely independent of the step size taken. As a result, filters built around variational integrators are highly insensitive to sample rate and can maintain good performance and convergence at much lower rates than standard extended Kalman filters.

10. Conclusion

The integrators developed in this study offer physically realistic momentum and energy behavior while maintaining modest computational costs. This study also highlights the importance of selecting appropriate control points in the quaternion curve and the quadrature points. Such choices lead to increased computational efficiency by enabling larger time steps. The quaternion approach has the potential to become an excellent tool for computing spacecraft orbital trajectories in proximity operations.

Additional problems may also benefit from using this type of integrator for long-term orbital motion propagation, such as the computation of trajectories for small moons around asteroids, orbital trajectories of small landers or non-propelled small satellites, and dust/particle ejection from an asteroid. It is worth noting that research is currently underway in this area, promising a bright future for symplectic implicit methods such as quaternion variational methods [28,29].

References

  1. Marsden JE, West M. Discrete mechanics and variational integrators. Acta Numer. 2001;10(1):357–514. Available from: https://www.cds.caltech.edu/~marsden/bib/2001/09-MaWe2001/MaWe2001.pdf
  2. Hairer E, Lubich C, Wanner G. Geometric numerical integration illustrated by the Stormer-Verlet method. Acta Numer. 2003;12(1):399–450. Available from: https://www.math.kit.edu/ianm3/lehre/geonumint2009s/media/gni_by_stoermer-verlet.pdf
  3. Dante AB, Anton HJ. Galerkin variational integrators for orbit propagation with application to small bodies. J Guid Control Dyn. 2018;1–17. Available from: https://doi.org/10.2514/1.G003767
  4. Lee T, McClamroch N, Leok M. Lie group variational integrator for the attitude dynamics of a rigid body with applications to the 3D pendulum. Proc IEEE Conf Control Appl. 2005:962–7. Available from: https://mathweb.ucsd.edu/~mleok/pdf/LeLeMc2005_lgvi.pdf
  5. Lee T, Leok M, McClamroch NH. Lie group variational integrators for the full body problem in orbital mechanics. Celest Mech Dyn Astron. 2007;98(2):121–44. Available from: http://dx.doi.org/10.1007/s10569-007-9073-x
  6. Hussein I, Leok M, Sanyal A, Bloch A. Discrete variational integrator for optimal control problems on SO(3). Proc IEEE Conf Decis Control. 2006:6636–41. Available from: https://mathweb.ucsd.edu/~mleok/pdf/HuLeSaBl2006_dvioc.pdf
  7. Barth E, Leimkuhler B. Symplectic methods for conservative multibody systems. In: Integration Algorithms and Classical Mechanics. Fields Inst Commun. 1999;10(1):25–43.
  8. McLachlan RI. Explicit Lie-Poisson integration and the Euler equations. Phys Rev Lett. 1993;71(19):3043–6. Available from: https://doi.org/10.1103/PhysRevLett.71.3043
  9. Omelyan IP. Algorithm for numerical integration of the rigid body equations of motion. Phys Rev E Stat Nonlin Soft Matter Phys. 1998;58(1):1169. Available from: https://doi.org/10.1103/PhysRevE.58.1169
  10. Omelyan IP. On the numerical integration of motion for rigid polyatomics: the modified quaternion approach. Comput Phys. 1998;12(1):97–103. Available from: https://doi.org/10.1063/1.168642
  11. Krysl P. Direct time integration of rigid body motion with discrete-impulse midpoint approximation: explicit Newmark algorithms. Commun Numer Methods Eng. 2006;22(5):441–51. Available from: http://dx.doi.org/10.1002/cnm.826
  12. Altmann S. Rotations, quaternions, and double groups. Oxford: Clarendon Press; 1986;201–223. Available from: https://archive.org/details/rotationsquatern0000altm/page/n5/mode/2up
  13. Nikravesh P, Wehage R, Kwon O. Euler parameters in computational kinematics and dynamics. Part 1. J Mech Des. 1985;107(3):358–65. Available from: https://experts.arizona.edu/en/publications/euler-parameters-in-computational-kinematics-and-dynamics-part-1
  14. Udwadia FE, Schutte AD. Alternative derivation of the quaternion equations of motion for rigid-body rotational dynamics. J Appl Mech. 2010;77(4):044505. Available from: https://doi.org/10.1115/1.4000917
  15. Schaub H, Junkins JL. Analytical mechanics of space systems. 2nd ed. Reston (VA): AIAA Education Series; 2009. p. 79–199.
  16. Holm D. Geometric mechanics. Part II: Rotating, translating, and rolling. 2nd ed. London: Imperial College Press; 2011. p. 19–135. Available from: https://www.ma.ic.ac.uk/~dholm/classnotes/GeomMech2-2nd.pdf
  17. Goldstein H, Poole C, Safko J. Classical mechanics. 3rd ed. San Francisco: Addison Wesley; 2001;34–64.
  18. Lanczos C. Variational principles of mechanics. 4th ed. New York: Dover Publications; 1986;35–68.
  19. Morton HS. Hamiltonian and Lagrangian formulations of rigid-body rotational dynamics based on the Euler parameters. J Astronaut Sci. 1993;41(4):569–91. Available from: https://ui.adsabs.harvard.edu/abs/1993JAnSc..41..569M/abstract
  20. Ascher U, Greif C. A first course on numerical methods. Philadelphia: SIAM; 2011;251–61.
  21. Hughes P. Spacecraft attitude dynamics. New York: Dover Publications; 2004;156–61.
  22. Marsden J, Ratiu T. Introduction to mechanics and symmetry. New York: Springer; 1994;186–91.
  23. Kane T, Barba P. Effects of energy dissipation on a spinning satellite. AIAA J. 1966;4(8):1454–5. Available from: https://doi.org/10.2514/3.3683
  24. Shampine LF, Reichelt MW. The MATLAB ODE suite. SIAM J Sci Comput. 1997;18(1):1–22. Available from: https://doi.org/10.1137/S1064827594276424
  25. Lefferts EJ, Markley FL, Shuster MD. Kalman filtering for spacecraft attitude estimation. J Guid Control Dyn. 1982;5(5):417–29. Available from: https://doi.org/10.2514/3.56190
  26. Markley FL. Attitude error representations for Kalman filtering. J Guid Control Dyn. 2003;26(2):311–7. Available from: https://doi.org/10.2514/2.5048
  27. Black HD. Passive system for determining the attitude of a satellite. AIAA J. 1964;2(7):1350–1. Available from: https://doi.org/10.2514/3.2555
  28. Xueteng S, Melvin L. Lie group variational integrators for rigid body problems using quaternions. arXiv. 2017; Available from: https://doi.org/10.48550/arXiv.1705.04404
  29. Manchester Z, Peck AM. Quaternion variational integrators for spacecraft dynamics. J Guid Control Dyn. 2015;39:1–8. Available from: https://doi.org/10.2514/1.G001176
 

Help ?