LMIs in Control/Click here to continue/Applications of Linear systems/H2 LMI Satellite Attitude Control

This is a H2 LMI for Satellite Attitude Control

Satellite attitude control is important for military, civil, and scientific activities. Attitude control of a satellite involves fast maneuvering and accurate pointing in the presence of all kinds of disturbances and parameter uncertainties.

The System
The satellite state-space formulation is given in the $$H_{\infty}$$ LMI page for Satellite Attitude Control which is also in the applications section of this WikiBook. This section discusses the derivation of that state-space formulation based on first principles.

The attitude dynamics of a satellite in an inertial coordinate system can be described in terms of the time rate of change of its angular momentum and the sum of the external torques and moments acting on the system. That is:



\begin{align} \dot H&=T_c+T_g+T_d,\\ H&=I_b\omega\\ \end{align}$$

where the following variables are defined as follows:


 * $$T_c,T_g, \text{ and } T_d $$ are the flywheel torque, the gravitational torque, and the disturbance torque.
 * $$H$$ is the total momentum/torque acting on the satellite
 * $$I_b$$ is the inertia matrix/tensor for the satellite
 * $$\omega$$ is the angular velocity vector of the satellite.

The time derivative of the total angular momentum in an arbitrary rotating reference frame (such as the body frame of the satellite) is given by:



\begin{align} \dot H&=I_b\dot{\omega}+\omega \times (I_b \omega),\\ \end{align}$$

which takes into the account of the angular velocity of the rotating reference frame relative to the inertial reference frame where Newton's laws are valid.

Combining equations, collecting terms and choosing the principle axes of the spacecraft so that the Inertia Tensor is diagonalized yields the following equations of motion:



\begin{align} I_b \dot{\omega} + \omega \times (I_b \omega) = T_c + T_g + T_d,\\ \end{align}$$

Using the small angle approximation, the angular velocity of the satellite in the inertial coordinate system represented in the body coordinate system can be written as



\begin{align} \omega = \begin{bmatrix} \omega _x \\ \omega _y \\ \omega_z \end{bmatrix} = \begin{bmatrix} \dot{\phi} - \omega _0 \psi \\ \dot{\theta} - \omega _0 \\ \dot{\psi} + \omega _0 \psi \end{bmatrix} \\ \text{where } \omega _0 = 7.292115 \times 10^{-5} \text{ [rad/s]} \\ \end{align}$$

These equations form the basis of the state-space representation used in the H-inf LMI for satellite attitude control. For clarity, they are repeated below.



\begin{align} \dot{x} &= Ax + B_1u+B_2d \\ z_{\infty} &= C_1x+D_1u+D_2d \\ z_2 &= C_2x \\ \\ \end{align}$$



\begin{align} A = \begin{bmatrix} 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 \\               0 & 0 & 0 & 0 & 0 & 1 \\                \frac{-4\omega_0^2 I_{yz}}{I_x}  & 0 & 0 & 0 & 0 & \frac{-\omega_0 I_{yzx}}{I_x} \\ 0 & \frac{-3\omega_0^2 I_{xz}}{I_y} & 0 & 0 & 0 & 0 \\ 0 & 0 & \frac{-\omega_0^2 I_{yx}}{I_z} & \frac{\omega_0 I_{yzx}}{I_x} & 0 & 0 \end{bmatrix}\\ \\ B_1 = B_2 = \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\                           0 & 0 & 0 \\                            \frac{1}{I_x} & 0 & 0 \\ 0 & \frac{1}{I_y} & 0 \\ 0 & 0 & \frac{1}{I_z} \\ \end{bmatrix}\\ \\ C_1 = 10^{-3} \times \begin{bmatrix} -4\omega_0^2I_{yz} & 0 & 0 & 0 & -\omega_0 I_{yxz}\\ 0 & -3\omega_0^2 I_{xz} & 0 & 0 & 0 & 0\\ 0 & 0 & -\omega_0^2 I_{yx} & \omega_0 I_{yxz} & 0 & 0 \end{bmatrix}\\ \\ C_2 = \begin{bmatrix} I_{3x3} & 0_{3x3} \end{bmatrix} \\ \\ D_1 = 10^{-3} \times L_1, D_2 = 10^{-3} \times L_2 \end{align}$$

The Data
Data required for this LMI include moments of inertia of the satellite being controlled and the angular velocity of the earth. Any knowledge of the disturbance torques would also facilitate solution of the problem.

The Optimization Problem
The optimization problem seeks to minimize the H2 norm of the transfer function from disturbance to output. Thus, we expect slightly different results than the H-inf case. Deriving the H2 control problem and setup also serves for useful setup for the mixed H-inf/H2 optimization that the book follows up with later.


 * Objective: H2 norm
 * Variables: Controller Gains
 * Constraints: Satellite Attitude Dynamics and Kinematics. Maximum safe rotational rate of Satellite, maximum jet pulse thrust

The LMI: H-2 Satellite Attitude Control
Duan and Yu use the following H-2 Satellite Attitude Control LMI to minimize the attenuation level from disturbance to output. Note that in the H2-case we are minimizing the integral of the magnitude of the bode plot transfer function whereas in the H-inf case the optimization is minimizing the maximum value of the bode plot magnitude.

To design an optimizing controller of the form



\begin{align} u=Kx\\ \end{align}$$

such that the closed-loop system is stable and the transfer function matrix



\begin{align} G_{z2w}(s) = C_2(sI-(A+B_1K))^{-1}B_2\\ \end{align}$$

satisfies



\begin{align} \|G_{z2w}(s)\|_2 < \gamma _2\\ \end{align}$$

for a minimal positive scalar $$\gamma_2$$.

This scalar is found from the solution of the following LMI



\begin{align} \\ \min &\ \ \rho \\ \\ \text{s.t. } &AX+B_1W+(AX+B_1W)^T+B_2B_2^T < 0 \\ \\ &\begin{bmatrix} -Z & C_2X \\ (C_2X)^T & -X \end{bmatrix} < 0 \\ \\ &\operatorname{trace}(Z)<\rho \\

\text{where } \rho = \gamma_2^2.

\end{align}$$

and the controller is given by $$K = WX^{-1}$$

Conclusion:
The LMI for H-2 Satellite Attitude Control comes up with a different attenuation value for the disturbance vs the H-inf problem which is expected. It also serves for good preparation for the mixed H2/H-inf problem that Duan and Yu cover in a later section. Though no implementation is included for the mixed H2/H-inf optimization problem it is interesting to compare the results of all three cases for the satellite attitude control problem.

Implementation
A link to CodeOcean or other online implementation of the LMI

Related LMIs
Links to other closely-related LMIs


 * Hinf_LMI_SatelliteAttitudeControl
 * H2OptimalOutputFeedback
 * Full-State_Feedback_Optimal_Control_H2