Satellite Control

Satellite attitude control is a crucial factor in their operation. Taking advantage of “zero” gravity, spacecraft can orient themselves by manipulating the angular momentum of a Control Moment Gyroscope (CMG). CMGs are composed of flywheels, spun to build angular momentum, and gyroscopes, used to manipulate the orientation of the flywheels. By maneuvering the flywheels in certain directions we can impart torque on the spacecraft, changing its orientation.

For this project, I am building a simulation to test and tune the control of a double-gimbal scissored-pair CMG for object tracking in Low Earth Orbit (LEO) using a 3U CubeSat platform.

Hirohisa Kojima, Reiji Nakamura, Sajjad Keshtkar,
Steering control law for double-gimbal scissored-pair CMG,
Advances in Space Research, Volume 66, Issue 4, 2020, Pages 771-784, ISSN 0273-1177,
https://doi.org/10.1016/j.asr.2020.05.007.

Project Overview

  • Build a simulation in MATLAB and implement the control scheme from this paper.
  • Animate the orientation of the spacecraft and double-gimbal scissored-pair CMG.
  • Test control scheme from the paper on moving targets.
  • Migrate the simulation to MATLAB Simulink.
    • Incorporate a 3-axis gyroscope to simulate sensor noise.
  • Determine the slew rate necessary for tracking objects in space.
    • Scale CMG to work on CubeSat-sized spacecraft.
  • Refine controls for the current satellite setup.
  • Place into orbit and evaluate perturbations along with Earth surface tracking.

Satellite Control

The input to the first controller is based on the satellite’s orientation, determining if the satellite’s reference frame is aligned with the goal reference frame.

To describe the satellite’s orientation quaternions will be used as they avoid the singularities that Euler angles are prone to.

Input: Error between current quaternion and goal quaternion

Output: Command torque on the spacecraft

CMG Control

With a command torque on the spacecraft calculated from the difference in orientation, the CMG will begin to manipulate the angular momentum to rotate the satellite.

Double-Gimbal Scissored-Pair Control Moment Gyroscope set up. \delta_{sp} describes flywheel orientation. \delta_{i} describes the interior gimbal orientation and \delta_{o} describes the outer gimbal. The two black vectors from flywheels 1 and 2 are the angular momentum vectors due to their rotation.

Despite the use of quaternions for the satellite, the gimbals of the CMG still have a few singularities that result in gimbal lock.

Singularities occur when:

  • \delta_{sp}=0, \pi, \pm\pi/2.
  • \delta_{i}=\pm\pi/2.

Singularity \delta_{sp}=0

To recover from this singularity the inner and outer gimbals are rotated to align the output torque of the CMG with the goal quaternion. Then the flywheels are rotated to impart a torque and the satellite begins to move towards the target, eventually slowing the satellite by rotating the flywheels back to their initial position

Singularity \delta_{sp}~\&~\delta_{i} =\pm\pi/2

To eliminate most of the singularities \delta_{sp} and \delta_{i} are limited to angles less than \pi/2.

When the satellite is near \delta_{sp}=\pm\pi/2, the CMG imparts the most torque to the satellite. The satellite will drift towards the target orientation, not moving any gimbals until it approaches the goal, then rotate the flywheels back to zero slowing and stopping the rotation.

MATLAB Simulation

To simulate the satellite dynamics and controls I used MATLAB Ode45 numerical integration solver. Integrating the quaternion rate (\dot_q), satellite angular rate (\dot_w_{sat}), and CMG angular rate (\dot{\delta} = [\dot{\delta_{sp}}~\dot{\delta_{i}}~\dot{\delta{o}}]).

Initial Conditions:

  • \delta = [0~0~0]
  • q = [0~0~0~1]
  • w_{sat} = [0~0~0]

Goal:

  • q = [0.3~0.4~0.5~0.7071]

From the output, we can see it settled in about 17.5 seconds at the goal state.

Moving Targets

To analyze the current control scheme’s ability to track objects, I slowly moderated the initial quaternion target of [0.3~0.4~0.5~0.7071] to [0.5~0.4~0.3~0.7071]. The system tracked within 0.01 of each quaternion.

The system will have to be analyzed further for expected required slew rates of targets on Earth’s surface or in space.

Animation

Simulink

Converted the system over to MATLAB Simulink. Incorporated Simulink 3-axis gyroscope to calculate the satellite’s angular velocity rather than integrating to incorporate sensor noise.

Quaternion Value vs. Time (seconds)

The noise introduced by the gyroscope degrades the controller’s performance. To mitigate this, state estimation methods such as the Kalman filter or a low-pass filter will be explored to improve the satellite’s response and behavior.

System Design

To scale the current double-gimbal scissored-pair CMG to fit within a CubeSat-scale satellite, we must first define the satellite’s attitude requirements.

Typical slew rates (change in angle per second) range from 0.1 ^\circ/s to 1 ^\circ/s. But for high agility satellites, we can expect necessary slew rates to be between 1 ^\circ/s to 10 ^\circ/s.

A simple analysis of an equatorial LEO orbit tracking a storm moving west would have to track at a minimum of 1.5 ^\circ/s. For relative motion between satellites, the required slew rate can be up to 10 ^\circ/s.

Designing between 1-5 ^\circ/s range is optimal for testing both conditions. Starting, the design will be targeted at 5 ^\circ/s.

A slew rate 5 ^\circ/s is the same as a 90 ^\circ turn in 18 seconds. Using the equation below we can find the necessary angular acceleration.

\dfrac{\Delta\theta}{2} = \dfrac{1}{2} \ddot{\theta}(\dfrac{t}{2})^2
\vspace{0.1}
\ddot{\theta} = 0.0582 \dfrac{rad}{s^2}

We can find the required torque of the CMG from the angular acceleration.

N_{w}=I_{w}*\dot{\omega}_{w}=I_{s}*\ddot{\theta_{w}}

N_{w} = necessary~wheel~torque \\I_{w} = wheel~moment~of~inertia \\I_{s} = satellite~moment~of~inertia \\\ddot{\theta}_{w} = satellite~angular~acceleration

The needed wheel torque is N_{w} = 4.871~mNm. The flywheels provide the maximum torque at \delta_{sp} = 90^\circ.

Angular momentum output from each flywheel (1 & 2), Hw is the angular momentum of a singular flywheel. Image from Steering control law for double-gimbal scissored-pair CMG.

The torque output is controlled by two variables h~\&~\dot{\delta}, the angular momentum of the wheel, and the gimbal angle rate respectively.

N_{w} = h \times \dot{\delta}_{sp}

The old \dot{\delta}_{sp} will be used at 1 \dfrac{rad}{s}. Now the double-gimbal scissored-pair CMG has to be sized to fit with a 3U CubeSat and provide the necessary angular momentum h. Our satellite is modeled after the MiRaTA satellite. The MiRaTA’s mass was 6 kg but to account for unknowns our satellite will be 8 kg but have the same envelope size of 10x10x34 cm. Considering there are two flywheels the angular momentum of a singular flywheel H_{w} is found below.

h = N_{w}

h = 2H_{w} \rightarrow H_{w} = 2.44\times 10^{-3} \dfrac{kg~m^2}{s}

With CubeSat’s limited power budget, the flywheel in our case will be spun at 5,000 rpm and made of aluminum 6061. Material research was limited to concentrate on the important aspects of this project. To meet the required angular momentum, the disk will be 2.16 cm in radius and 0.5 cm in thickness. Building the double gimbal around these flywheels leaves ample room inside the satellite’s body.

In total, we resized the CMG to fit within a 3U CubeSat body and give the required slew rate of 5^\circ/s for Earth surface object tracking and relative motion tracking.

Starting quaternion angle [0 0 0 1], target quaternion [0.3 0.4 0.5 0.7071]
System PerformanceSpec
Average Slew Rate (^\circ/s)3.56
Max Slew Rate (^\circ/s)5.18
Settling Time (seconds)20.62
Steady-State Error0.019

V.J. Lappas, W.H. Steyn, C.I. Underwood,
Attitude control for small satellites using control moment gyros,
Acta Astronautica, Volume 51, Issues 1–9, 2002, Pages 101-111, ISSN 0094-5765,
https://doi.org/10.1016/S0094-5765(02)00089-9.

Adjusting Controls for New Satellite

The gains in our control system are listed below.

GainPurposeOld Design Value
kMoving the gimbals 9.0
cThe influence of satellite angular velocity on moving the gimbals5.4
k_{r}Returning rotors to initial position when approaching goal1.0
k_{n}Moving the scissored pair during null motion10.0

Equations (2) and (3) define the gains k and c. These were found by linearizing the dynamic equation that governs the CMG (1).

J*\dot{\omega}+\omega \times J*\omega = -J(2*k*q_{error}+c*\omega)

k = \omega_{n}

c = 2\zeta\omega_{n}

J=moment~of~inertia~tensor
\omega=angular~velocity~of~satellite
q_{error}=difference~between~current~and~target~quaternion

(1)

(2)

(3)

Where \omega_{n} is the angular natural frequency and \zeta is the damping ratio, each with values of 3.0 \frac{rad}{s}) and 0.9 respectively.

Without the controller’s input, the system has no natural frequency or damping ratio, so we can apply desired values through the controller.

Orbit Simulation

Continuing the simulation, I placed the satellite in an orbit with the following orbital elements. This orbit is temporary, just for testing the satellite’s controls in a simulated orbit.

Orbital ElementValue
Semi-major axis (km)6,786
Eccentricity0.01
Inclination (degrees)50
RAAN (degrees)95
Argument of Periapsis (degrees)93
True Anomaly Start (degrees)203

Above is an animation of the satellite pointing at a stationary ground station. The green line represents the satellite and ground station line of sight. We can export the target quaternion pointing angles from this simulation and test the current control setup.

The top graph shows the current satellite orientation and the bottom graph shows the target orientation. From this we can see the satellite tracks the ground target closely, exact metrics will be delineated later.

The body axis points towards the stationary ground target, the cyan axis being the body x-axis.
Satellite’s movement in inertial space. RGB axis on the satellite represent LVLH and CMY represent the body axis for pointing.

When the satellite is not in the ground station’s line of sight, the controller will align the body axis with the Local Vertical Local Horizontal (LVLH) reference frame.

Simulation Details

MATLAB’s Simulink offers satellite dynamics and pointing requirements, but I found it more beneficial for learning and debugging to create the code and perform the calculations from scratch.

The general procedure is shown below.