Nonlinear H∞ Attitude Controller for Satellites: part2

Passive dynamics and the PD-liked controller

Hsieh, Sheng-Han
4 min readApr 20, 2022

Before diving into an H∞ controller design, it is helpful to have a big picture of how the attitude of a rigid body evolves with and without external torques. Consequently, a PD (proportional-differential) controller corresponding to the “attitude error” and the “angular speed” will be proposed with guaranteed stability. Readers should be prepared with basic knowledge of the kinematic for an SO3 object and the dynamics of a rigid body.

(part1)(part3)

Schematic of inertia frame “{s}”, body frame “{b}”, and the pseudovector representing the angular speed and the applied torque “ω,τ”

Simulation setup of rigid body motion

A rigid body motion modeling can be realized as a nonlinear second-order system composed of kinematics [1] and dynamics [2]. One may refer to this previous post for more detailed information.

Kinematics of the quaternion representation (referenced to the inertial frame) where the angular velocity was referenced to the body frame
Euler’s rotation equations, inertia matrix “M” defined at the center of mass and referenced to the body frame

The ODEs stated above with 7 states in total “[ω,σ,η]”, could be solved by almost any type of numerical solver. Simulink with a discrete-time approximation will be used in our case.

Simulation setup of a rigid body motion in a Simulink environment, the two feedback gains below should be neglected for passive case

Although the normalizing constraint “σᵀσ+ηη=1” is already embedded in the kinematic equation, additional regulation was still required to compensate for further bias due to numerical errors.

The modified kinematic equation to enforce the normalization for the quaternion “q=[σ]

Passive dynamics of a rigid body

People often get tricked into that, the angular acceleration was merely the familiar “F=ma” equation with some straightforward replacement. Furthermore, an even wider spread myth is that the angular speed of a rigid body remains constant without external torques. There is this interesting phenomenon called the “Tennis racket theorem”, which is a perfect example that shows a changing angular velocity even without any external torques. In case you urged a more detailed explanation, a very worthwhile online course I’ll recommend is held by professor Shane Ross [3].

Let’s put it simply:

Conserved angular momentum does not imply a constant angular speed both in the inertia and the body frame

Passive dynamics of a 3-DOF spacecraft with “M=diag([2, 1, 3])”, “ωb_init=[10, 0.01, 0.01]”
Passive dynamics of a 3-DOF spacecraft with “M=diag([2, 1, 3])”, “ωb_init=[1, 1, 10]”

PD attitude controller for a rigid body

In this section, a naive approach that stabilizes the attitude to the origin “[ω,σ,η]=[0,0,0,0,0,0,±1]” will be proposed and proven to be stable through the LaSalle’s invariance principle [4]. Although the term proportional sounds absurd for an attitude that belongs to SO3, it makes sense when using a quaternion.

The proposed PD control law

With a candidate as the Lyapunov function which is positive in the perspective of geodesic metrics. Its time derivative can be easily derived, assuming the case “η≥0” (change the sign of the term “1-η” for the case “η<0”):

Lyapunov function and its time derivative, this candidate will also work as a starting point to construct an H∞ design in the future post

To assure a negative rate “k₁=α, α>0” & “k₂>0”, for cases where “ω=0” we could further argue that those states other than the origin were not stationary. The stability was then guarded by LaSalle’s invariance principle.

Any positive gain k₁, k₂ will stabilize the satellite, cheers

Simulation results

The actual response could be intuitively visualized in 3D without being confused by the cursed quaternion representation.

P control

Let’s start with the fun one, with “k₁=50” & “k₂=0”, shown in the analysis above, we should expect a conserved Lyapunov function that is not stabilizing.

P controlled 3-DOF spacecraft with “M=diag([2, 1, 3])”, “ωb_init=[10, 0, 0]”, “q_init=[0, 0, 1, 0]”

PD control

The stability could easily be enforced by adding any damping larger than zero, for example, “k₁=50” & “k₂=5”.

P controlled 3-DOF spacecraft with “M=diag([2, 1, 3])”, “ωb_init=[10, 0, 0]”, “q_init=[0, 1, 0, 0]”

PD control, without sign-changing

As you may notice, the attitude space was double covered by the normalized quaternion representation, for instance, both “[0,0,0,1]” and “[0,0,0,-1]” represent the origin. This causes a funky issue if the control law does not take this into account. In the following example, lets us try out the controller without switching the sign corresponding to the value “η”.

Naively controlled 3-DOF spacecraft with “M=diag([2, 1, 3])”, “ωb_init=0”, “q_init=[0, 0, 0.6, -0.8]”

References

[1] R. J. Adams, J. M. Buffington, A. G. Sparks, and S. S. Banda, Robust Multivariable Flight Control. Springer London, 2012.

[2] L. N. Hand en J. D. Finch, Analytical Mechanics. Cambridge University Press, 1998.

[3] Shane Ross, Space Vehicle Dynamics 🛰 Lecture 22: Free Rigid Body Motion | Precession of Symmetric Bodies | General Motion, October 2021. [Online]. Available: https://youtu.be/vtCrcVKpWC0

[4] S. H. Żak, Systems and Control. Oxford University Press, 2003.

[5] 3D model of the spacecraft from Chris, Shakel. [Online]. Available: https://grabcad.com/chris.shakal

--

--