Nonlinear H∞ Attitude Controller for Satellites: part1

System modeling and the output function

Hsieh, Sheng-Han
4 min readApr 15, 2022

In this series of posts, a typical workflow that constructs a nonlinear H∞ controller will be demonstrated for a fully-actuated rigid body (e.g. satellite). The intent of this type of controller is to regulate the attitude to a desired one with a reasonable controlling effort [1]. We will first formulate the dynamic equations for a 3-DOF rigid body in this post, and approach the problem with both a naive and a nonlinear H∞ design in future posts. For one’s information, MATLAB also provides a similar example argued under 2-DOF [2].

(part2)(part3)

Rotation matrix and Quaternion representation of the attitude

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

The attitude of a 3D object may be encoded by the new basis after a rotating operation “R_sb” (rotation action which takes frame “s” to “b”). The numerical representation of the rotation operator “R_sb” is typically held in either two of the frames “s” or “b” which both give identical results. The following equations roughly summarized the basic properties of the numerical representation of the rotating operation “R_sb”. The third equation treated “R_sb” as an operator which moves the basis “” to the new direction “” under the perspective of the frame “s”, and the fourth equation shows another interpretation of “R_sb”, which changes the reference frame from “b” to “s”.

The numerical representation of the rotation operator “Rsb” reference to frame “s”, same if using frame “b

An elegant alternative can be exploited by finding the logarithmic of the operator [3], which is closely related to the [direction, angle] “ω_hat,θ” and the quaternion representation.

Compact representation of the rotation matrix with the direction/angle “Φ,θ” and the quaternion “σ,η”

Without loss of generality, the desired attitude may be set at the identity, this implies an “origin” at either “θ=0” or “η=±1”.

Rigid body dynamics (Euler’s rotation equations)

So far we have only considered a static transformation/operator, we will now discuss the kinematics and the dynamics of a rigid body. Starting from the kinematics part, expressing the time derivative of a rotational matrix numerically:

Relation between the time derivative of the rotation matrix and the angular velocity, subscript of the pseudovector “ω” indicates the used reference frame

The same trick works similarly for a quaternion parameterization [1]:

Relation between the time derivative of the quaternion and the angular velocity reference to the body frame

On the other hand, the dynamics can be easily obtained from a derivative of the angular momentum [4]. With an angular speed referenced to the body frame and assuming a rigid body “dM_b=0”, the expression could be further simplified as follow:

Euler’s rotation equations for the rigid body with the Inertia matrix “M” defined at the center of mass

A nonlinear second order system

Combining both the dynamics and the kinematics modeled above, a second-order liked system can be formed with a self-modulating nature.

Representing the dynamics of the attitude “q” and the angular velocity “ω”, notice they are referenced to a different frame to avoid the complexity caused by “dM=0

Construction of the Output function

A properly designed output function is essential, not only to indicate the performance but also to serve as a building brick for H∞ controller design. Practically, it should be 0 at the origin (0 for a real number, I for SO(3), and (0,0,0,±1) for ) and positive elsewhere. A quadratic form is always a fair starting point, it is differentiable, has a unique slope at each point, and often leads to a linear controller.

The “distance” between the desired and current attitude could be defined as the following [1], which reaches 0 at the origin:

“Distance” between the origin and the current attitude

Therefore, the total cost or output function could be constructed as:

Output function for the attitude regulation problem

As you may guess, the root operator will be lifted in the subsequential quadratic operation either in HJI (H∞ controller) or HJB (Optimal control) and were just an artifact at this moment.

Appendix

Using quaternion to represent the rotation matrix:

The time derivative of the quaternion with angular speed referenced to body frame “ω_b”:

References

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

[2] https://www.mathworks.com/help/robust/ug/mimo-stability-margins-for-spinning-satellite.html

[3] K. M. Lynch and F. C. Park, Modern Robotics. Cambridge University Press, 2017.

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

--

--