Nonlinear H∞ Attitude Controller for Satellites: part1
System modeling and the output function
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].
Rotation matrix and Quaternion representation of the attitude
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 “s¹” to the new direction “b¹” 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”.
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.
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:
The same trick works similarly for a quaternion parameterization [1]:
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:
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.
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 S³) 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:
Therefore, the total cost or output function could be constructed as:
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.