Attitude Sensing, Actuation, and Control of the BRITE
and CanX-4&5 satellites
by
Adam Philip
A thesis submitted in conformity with the requirementsfor the degree of Masters of Applied Science
Graduate Department of Aerospace EngineeringUniversity of Toronto
Copyright c© 2008 by Adam Philip
Abstract
Attitude Sensing, Actuation, and Control of the BRITE and CanX-4&5 satellites
Adam Philip
Masters of Applied Science
Graduate Department of Aerospace Engineering
University of Toronto
2008
An attitude control system for the BRITE and CanX-4&5 nanosatellites is developed.
BRITE and CanX-4&5 are research satellites based on the Space Flight Laboratory’s
Generic Nanosatellite Bus, devoted to the study of star brightness and formation flying,
respectively. Novel low-cost testing procedures are developed and used to character-
ize satellite sensor and actuator performance. The algorithm governing the pointing of
CanX-4&5 is enhanced based on preliminary simulation results. A linear-time invariant
controller architecture, applicable to both BRITE and CanX-4&5, is designed based on
simulation of several competing controllers. Testing information is combined with con-
trol laws and controller to simulate the attitude performance of the satellites throughout
their missions.
ii
Dedication
For Em and the parental units
Acknowledgements
This thesis would not have been possible without the assistance of all staff and students
at the Space Flight Laboratory, of special note: Dr. Robert Zee for the opportunity
to work on real spacecraft; Stuart Eagleson - for all assistance with Mirage, OASYS,
general ADCS questions and things in general; Jonathan Gryzmisch - who is always
available to bounce an idea; Cordell Grant - for all things mechanical; Daniel Kekez -
for his endless patience in finding obscure (and not so obscure) pieces of lab equipment;
Jesse Eyer - for all questions formation flying; Mihail Barbu - for the many, many cam-
era software revisions; Benoit LaRouche - for his many great machining/jig fabrication
suggestions; Nathan Orr - for the NSP terminal interface; and Tarun Tuli for general
electrical engineering questions. Thanks should also be given to Prof. Jon Enright of
Ryerson University for his assistance with sun sensor testing and to Doug Sinclair of
Sinclair Interplanetary for all assistance wheel related.
iii
Contents
1 Introduction 1
1.1 The Space Flight Laboratory and the CanX program . . . . . . . . . . . 1
1.1.1 BRITE mission . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 CanX-4&5 mission . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 The Attitude Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1 BRITE ADCS configuration . . . . . . . . . . . . . . . . . . . . . 6
1.2.2 CanX-4&5 ADCS configuration . . . . . . . . . . . . . . . . . . . 7
1.3 Mirage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 Hardware Evaluation 11
2.1 Fine Sun Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.1 Fine Sun Sensor Calibration . . . . . . . . . . . . . . . . . . . . . 13
2.1.2 Albedo Effects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 Magnetometer Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.1 Operating Effectiveness . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.2 Axis gain calibration . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.3 Misalignment and Deviation . . . . . . . . . . . . . . . . . . . . . 24
2.3 Angular Rate Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3.1 Selection and Design . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3.2 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.4 Reaction Wheels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4.1 Initial testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4.2 Bearing Life . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.4.3 Lifetime testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
iv
3 CanX-4&5 Control Laws 43
3.1 Control Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 The Original Control Laws and Their Performance . . . . . . . . . . . . 44
3.3 Modified Control Laws . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4 Controller Design 49
4.1 Plant Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.1.1 Design Plant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.2 Discrete Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2.1 Zero momentum bias reaction wheel controller . . . . . . . . . . . 51
4.2.2 Biased reaction wheel controllers . . . . . . . . . . . . . . . . . . 62
5 Modelling and Simulation 65
5.1 Modelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.1.1 Reaction Wheels . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.1.2 Rate Gyros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.2.1 BRITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.2.2 CanX-4&5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6 Conclusions 86
Bibliography 86
v
List of Figures
1.1 GNB external and internal layout. Figures courtesy of SFL . . . . . . . . 2
1.2 Standard GNB components. Figures courtesy of SFL . . . . . . . . . . . 3
1.3 BRITE payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 CanX-4&5 payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5 Data flow for OASYS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6 Simulation environment simplified overview . . . . . . . . . . . . . . . . . 8
2.1 Profile sensor illumination response. . . . . . . . . . . . . . . . . . . . . . 12
2.2 Fine sun sensor theory of operation . . . . . . . . . . . . . . . . . . . . . 12
2.3 Testing facility and test set-up. Light source is projected along θ3 axis . . 13
2.4 Origin location concept. Any misalignment of the sun sensor to the test
rig base will result in a wander of the recorded centroid as θ3 is rotated. . 14
2.5 Sweep pattern and sensor frame. Sweeps are conducted along vectors in
the plane with normal in the direction of the 3 axis . . . . . . . . . . . . 14
2.6 Recorded vs. true angle . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.7 Gap thickness determination procedure. The tilt in the plane represents
the misalignment of the sun sensor to the test-rig. . . . . . . . . . . . . . 16
2.8 Peak response vs. rectified angle . . . . . . . . . . . . . . . . . . . . . . . 18
2.9 Peak response vs. intensity of admitted light . . . . . . . . . . . . . . . . 19
2.10 Fine sun sensor response for peak albedo - the sun sensor would detect
albedo if, at any point, the expected response exceeded 1 . . . . . . . . . 20
2.11 Angle definitions used in determining effect of albedo on the coarse sun
sensors on Face 1 and Face 2 . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.12 Coarse sun sensor face ratio as a function of off-nadir angle and southern
latitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.13 Gain Calibration Experimental Set-up . . . . . . . . . . . . . . . . . . . 24
vi
2.14 Magnetometer axes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.15 Misalignment of sensors from desired orthogonal frame . . . . . . . . . . 25
2.16 Graphical depiction of misalignment, deviation, and true field viewed from
three perspectives in one plane. The misaligned magnetometer (green) is
rotated in the constant field (orange). . . . . . . . . . . . . . . . . . . . . 26
2.17 Accuracy of the magnetometer heuristic as a function of guess value deviation 30
2.18 Determination during eclipse without rate sensors in passive mode (determination
only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.19 Coriolis acceleration - an induced acceleration (yellow) is created by the
interaction of a steady angular velocity (green) and a translational velocity
(red) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.20 Bartlett filter response as a function of non-dimensionalized frequency. . 33
2.21 Proposed rate sensor package layout . . . . . . . . . . . . . . . . . . . . . 34
2.22 Noise over rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.23 Rate sensor linearity and scale . . . . . . . . . . . . . . . . . . . . . . . . 35
2.24 Comparison of true and measured bias stability over temperature . . . . 36
2.25 GNB reaction wheels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.26 A typical SFFT time-speed curve . . . . . . . . . . . . . . . . . . . . . . 38
2.27 Comparison of equation modelled run-down to actual run-down data . . 39
2.28 A typical lifetime test time-speed profile . . . . . . . . . . . . . . . . . . 41
2.29 Lifetime profile for a failed first design iteration wheel with unusually long
survival life. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.1 Pointing constraints on CanX-4&5 . . . . . . . . . . . . . . . . . . . . . 44
3.2 Zenith angle pointing in a ATO formation with intermittent pointing failures 46
3.3 Rapid error quaternion shift during the middle of singularity . . . . . . . 47
3.4 Singularity free operation of the control laws. . . . . . . . . . . . . . . . 48
4.1 A single axis plant with a continuous PD controller . . . . . . . . . . . . 53
4.2 LQR poles. Note: Poles are extremely close but not equal in RH side of
z-plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.3 Performance of an LQR controller . . . . . . . . . . . . . . . . . . . . . . 56
4.4 Target acquistion with an LQR controller . . . . . . . . . . . . . . . . . . 56
4.5 Region of unacceptable poles . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.6 System performance with Butterworth poles . . . . . . . . . . . . . . . . 59
vii
4.7 Performance of de-coupled poles . . . . . . . . . . . . . . . . . . . . . . . 60
4.8 Biased reaction wheel controller comparison . . . . . . . . . . . . . . . . 63
4.9 -100rads and -25rad
s biased controller wheel speeds. . . . . . . . . . . . . 63
4.10 Zero bias controller applied to non-zero biased wheels . . . . . . . . . . . 64
5.1 Schematic of actual reaction wheel . . . . . . . . . . . . . . . . . . . . . 66
5.2 Mathematical wheel model . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.3 Test data from a step response to an applied torque with the original
controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.4 Step response to an applied torque with the modified controller. Settling
time, overshoot, and control mode transition are greatly improved. . . . . 70
5.5 Non-linear effects blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.6 Wheel under speed control at low speeds and the simulink model used to
capture this behaviour . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.7 Simulated wheel to real reaction wheel speed data comparison . . . . . . 73
5.8 Model of rate sensor behaviour implemented in Simulink . . . . . . . . . 75
5.9 True rates, measured rates, and true rates scaled and biased with known
sensor characteristics as a function of angle of tilt on a rate table. . . . . 76
5.10 Scaled measured and modelled rate over a 60s period . . . . . . . . . . . 76
5.11 Determination during BRITE passive operations . . . . . . . . . . . . . . 78
5.12 Determination during BRITE active operations . . . . . . . . . . . . . . 79
5.13 BRITE quaternion tracking . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.14 Telescope pointing error . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.15 Conceptual workings of the GNB EKF . . . . . . . . . . . . . . . . . . . 81
5.16 Monolithic vs. Cascading EKF . . . . . . . . . . . . . . . . . . . . . . . 82
5.17 CanX-4&5 EKF tuning performance with CanX-2’s EKF, tuned for a con-
stant drift, and tuned for no movement . . . . . . . . . . . . . . . . . . . 82
5.18 Typical CanX-4&5 targeting behaviour. . . . . . . . . . . . . . . . . . . . 84
5.19 Target errors during thrusts and determination errors over time . . . . . 85
viii
Variable Definitions
Variable definitions in the order they appear within the thesis. Due to the large number
of diverse subject areas broached, some variables are repeated. In cases of a double usage,
variables are marked ‘(usage context dependent)’.
Var. Definition Var. Definition
s# sun vector, # denotes frame
(Sx,Sy,Sz are components)
C# distance from origin to centroid on
sun sensor, # denotes axis
h distance between pinhole and sun
sensor back plane (gap thickness)
λ latitude, pole location (use context
dependent)
ρ reflectivity E# Irradiation, # denotes source
δ longitude A# Area, # denotes source
R# response from a sun sensor r response ratio
r position vector n normal vector
M magnetic field vector reading D deviation vector
B# magnetic field vector, # denotes
frame
A misalignment matrix, system ma-
trix (use context dependent)
ν noise vector C#& rotation matrix, # & denote frames
G magnetometer gain matrix f frequency
N sample size, rotation speed in rpm
(use context dependent)
t# time, # denotes usage
ω, ω rotation speed B damping coefficient
I, I moment of inertia G, G# torque, # denotes usage
Ai Bearing life adjustment factors K constant, bearing coefficient (usage
context dependent)
x−→ thruster direction T−→ target thruster direction
y−→ GPS antenna direction a−→, φ Euler axis and angle
ix
Var. Definition Var. Definition
K gain matrix x state vector
q quaternion ε, η quaternion components
p∫
qdt p Butterworth pole
Bn Butterworth polynomial ωn natural frequency
ζ damping ratio u control input
B input matrix C A generic constant (usage is context
dependent)
ν noise s sensitivity
ρ resolution
Generic Angles given by: α β γ θ - usage is context dependent.
# - denotes a unit vector
# - denotes an estimate
# - denotes a linearization or modification (usage context dependent)
#o - denotes original value not a frame
Acronyms
ADCS - Attitude Determination and Control System
BRITE - BRIght Target Explorer
Can-X - Canadian Advanced Nanospace eXperiment
EKF - Extended Kalman Filter
FIONA - Formation-flying Integrated Onboard Nanosatellite Algorithm
GCI - GeoCentric Intertial frame
GNB - Generic Nanosatellite Bus
OASYS - On-orbit Attitude SYstem Software
SFL - Space Flight Laboratory
XPOD - eXperimental Push-Out Deployer
x
Chapter 1
Introduction
As the complexity of microsatellite and nanosatellite missions increases, there has grown
a need for finer attitude control. The ability to finely control attitude is dependent on
two things: sensors of sufficient quality to determine pointing accurately and actuators
capable of delivering a fine level of torque control. To date, many nanosatellites have been
able to achieve their three-axis stabilization goals with a combination of good sensing,
magnetic actuators and at most a single reaction wheel(e.g. Surrey Satellite’s SNAP-
1 or the Space Flight Laboratory’s own CanX-2), however, an outstanding goal has
been control about all three body axes. To accomplish this on a nanosatellite scale
without the use of propellant, three orthogonally mounted reaction wheels can be used.
Presented in this thesis is the design for a three-axis stabilized satellite attitude control
system employing three reaction wheels as applied to the Space Flight Laboratory’s CanX
missions. Included are the calibration and test methods for the equipment necessary
to perform the fine determination and actuation, the control heuristics and controller
design necessary to implement fine control, and simulations to show how the spacecraft
will perform on-orbit.
1.1 The Space Flight Laboratory and the CanX pro-
gram
The Space Flight Laboratory (SFL) is part of the University of Toronto Institute for
Aerospace Studies (UTIAS ) and is concerned with the development of microsatellite
and nanosatellite spacecraft. Previously, SFL has worked on the MOST microsatellite
1
Chapter 1. Introduction 2
mission, nanosatellite deployers and other small scale spacecraft components. Currently
work at SFL is concerned primarily with the CanX series of nanosatellites.
The CanX (Canadian Advanced Nanospace eXperiment) program is a microspace
program run by SFL geared to the development of low-cost, nano-scale satellites on a
2-3 year timeframe. Intended to perform scientific investigations and test components at
a low cost, previous CanX nano-satellites have been used to test nanosatellite reaction
wheels and miniature spectrometers. To date, CanX satellites have massed anywhere
from under 1kg to just over 3kg and have ranged in size from 10 × 10 × 10cm3 to 10 ×10× 30cm3.
As the scope of mission attempted by SFL has grown, the need for a quickly re-
configurable platform has arisen. Consequently, CanX missions have moved towards
the Generic Nanosatellite Bus (GNB), a platform geared to be re-configured quickly
for different mission types. Shown in Figure 1.1 is the basic structure and layout of a
GNB satellite; the total mass of GNB satellites rests under 7kg. In the GNB, two trays
containing the spacecraft’s core electronics and equipment sandwich a 13 × 8 × 17cm3
volume that contains the experimental payload. The two trays are connected together
by means of panels which, in addition to providing structural support, also serve as a
mounting points for surface components like solar panels and patch antennas. Also on
the surface of the GNB are launch rails for mounting of the GNB in SFL’s eXperimental
Push-Out Deployer (XPOD) deployment system. XPODs like the GNB are designed to
be readily adapted to different missions depending on which accoutrements are placed
on the exterior of the GNB.
(a) External View (b) Internal View
Figure 1.1: GNB external and internal layout. Figures courtesy of SFL
By default, the trays (shown in Figure 1.2) and panels of the GNB contain: two
Chapter 1. Introduction 3
on-board computers (OBCs), a magnetometer, 6 sun sensors, 3 reactions wheels, magne-
torquers, several different radios, a GPS receiver, power system, and an imager. Any or
all of these components can be removed or added to suit a particular application’s needs.
The two OBCs are identical: one OBC is responsible for maintenance of communica-
tions and house-keeping tasks, while the other is devoted to attitude control and other
specialized tasks. In the event of an OBC failure, the OBCs are wired similarly so that
each OBC can take over for the other. The default attitude system for the GNB consists
of the magnetometer and sun sensors for determination, and the reaction wheels and
magnetorquers for actuation; the complete attitude sub-system is described in more de-
tail in Section 1.2. The remaining equipment, while important to the over-all spacecraft
function, has little impact on attitude determination or control.
(a) Z- Tray (b) Z+ Tray
Figure 1.2: Standard GNB components. Figures courtesy of SFL
1.1.1 BRITE mission
BRITE (BRIght Target Explorer - also known as CanX-3) is the first mission to employ
the GNB design. Its purpose is to assess the change in brightness of the most intrinsically
luminous stars over time [6]. Since the fundamental vibration mode of a star, which can
be measured by measuring brightness, is approximately related to the square-root of its
mean density, information can be gathered regarding the composition of a star simply
through measuring its brightness. Thus, through measurement of the brightness of these
stars, the BRITE mission will answer fundamental questions regarding the formation of
stars, their composition, and the ‘life-cycle’ of matter
To accomplish brightness measurement, a constellation of four BRITE satellites will
be placed in orbit. Each satellite will contain in its payload bay a small aperture telescope,
Chapter 1. Introduction 4
band-pass optical filter, CMOS detector and star tracker (Figure 1.3). Every BRITE
satellite in the constellation will be identical with the exception of the optical filters used,
half the constellation will have one filter and half the constellation will have another
filter. A constellation was chosen over a single satellite with a rotating filter disk for
three reasons: 1. Each BRITE can have a different filter to provide information on star
temperature without the risk of mechanical failure; 2. A constellation in the same orbit
can increase the observation time available for differential photometry; and 3. Multiple
satellites reduce the chance of catastrophic failure on a single satellite ending the mission
[6].
Figure 1.3: BRITE payload
Imaging on BRITE will be performed once per orbit in 15 minute stints. Observation
periods may be in excess of 100 days. Generally, imaging will focus on regions of interest
that contain between and 2 and 15 stars of interest so that differential brightness mea-
surements may be taken. Fortunately, over 90% of the sky contains regions where 2 or
more stars with magnitude of +3.5 or brighter are visible within the 24 field of view of
the telescope.
1.1.2 CanX-4&5 mission
CanX-4&5, like BRITE, are GNB satellites, their mission is to demonstrate autonomous,
sub-meter accurate, formation flying in a nano-satellite package [11]. Two formations
are in the baseline mission: a Projected Circular Orbit (PCO) and an Along Track Orbit
(ATO) as well as an autonomous re-configuration maneuver between the two formations.
In a PCO formation, one satellite completely encircles the other over the course of an orbit
- effectively demonstrating the ability of one satellite to inspect the other. In the ATO
Chapter 1. Introduction 5
formation, one satellite leads or trails the other, proving formation flying concepts for
remote sensing projects. The re-configuration maneuver is simply a means of transition
from one formation to another [11].
To achieve formation flying goals CanX-4 and CanX-5 are to be built as identical
satellites in all respects that will be launched together and separated in space. One satel-
lite will act as the chief throughout the mission, broadcasting its position and altering its
attitude. The deputy will follow in one of the formations around the chief, thrusting when
necessary to maintain position. The orientation and timing of thrusts is directed by the
formation flying algorithm FIONA (Formation-flying Integrated On-board Nanosatellite
Algorithm). The chief and deputy will match attitude over the course of an orbit to
ensure that the same GPS satellites will be in view at a given time. In the event that
either the chief or the deputy is damaged, roles can be reversed quickly to allow the
satellites to still perform the mission.
As has been alluded to, CanX-4 and CanX-5 will have a propulsion system CNAPS
(Canadian Nanosatellite Advanced Propulsion System) placed in their payload bay, a
GPS receiver and an inter-satellite radio link. The propulsion system is shown in Figure
1.4 and is a cold-gas system with four nozzles to adjust the direction of thrust as the
centre of mass shifts within the spacecraft. The GPS receiver, while part of the mission,
is also an experiment in position location to centimetre accuracy. The inter-satellite radio
is used to relay attitude and position information between the two satellites.
Figure 1.4: CanX-4&5 payload
Chapter 1. Introduction 6
1.2 The Attitude Subsystem
The Attitude Determination and Control System (ADCS) on GNB satellites is quite
modular with different components employed on different missions to perform a given
task. Uniting any variation of the GNB is, however, a common software layer: OASYS
(On-orbit Attitude SYstem Software). OASYS consists of several common libraries, the
Extended Kalman Filter (EKF), and the mission specific controller. Contained within
the common libraries are: all computations related to matrix and vector manipulation;
the ephemerides for estimating position in the Global Centric Inertial (GCI) frame, the
solar vector, and the magnetic field strength; as well as a common measurement library
for turning raw sensor values into sensible measurements. The EKF is constructed to be
modular more detail is given in Section 5.2.2 and in [14]. The mission specific controller
includes both the control laws (to acquire the target quaternion) and the actual controller
to regulate attitude (a more detailed discussion is given in Chapters 3 and 4). Binding all
the different sections of ADCS code together is the ACS exchange data structure which
provides a common point of reference for all variables (e.g. current state vector) that
can be accessed by both the operating system and any OASYS code fragments. Shown
in Figure 1.5 is a simplified flow diagram of OASYS’ operation.
Figure 1.5: Data flow for OASYS
1.2.1 BRITE ADCS configuration
The hardware side of BRITE’s ADCS consists of: sun sensors, a magnetometer, and
a star tracker for determination; and reaction wheels and magnetorquers for actuation.
There are six sun sensors (one per face) that consist of a both a coarse and fine sun sensor.
Chapter 1. Introduction 7
During the course of an OASYS execution cycle all six coarse sun sensors are read. The
coarse sun sensor with the brightest response determines which fine sun sensor is read,
after some manipulation from the measurement processing routines in OASYS the sun
sensors return the sun vector in the body frame. Only one three axis magnetometer
is used on BRITE, consequently the magnetometer is only read when radios and other
sources of electromagnetic interference are turned off; the magnetometer produces a
measurement of the magnetic field vector in the body frame. The star tracker on BRITE is
capable of producing a full attitude solution with a high fidelity, producing the quaternion
that would rotate the spacecraft from the (geocentric intertial frame) GCI to the present
body frame. On the actuation side, the three reaction wheels are configured orthogonally
and are used to produce the bulk of attitude control torques. The three magnetorquers
are also aligned orthogonally, however, they are not used to point any portion of the
spacecraft. The magnetorquers are simply present to transfer any build-up of angular
momentum in the wheels from secular torques (e.g. solar torque) to the Earth.
OASYS for BRITE is configured to receive target quaternions directly from ground
control software and point accordingly. The EKF in BRITE is set to rely most heavily on
the star tracker and thus favours slower movements. Similar to the EKF, the controller
on BRITE is geared for slower movements.
1.2.2 CanX-4&5 ADCS configuration
As CanX-4&5 are very similar to BRITE, the ADCS configuration is very similar. There
are, however, some notable differences: the star tracker is replaced with rate sensors, and
there is a potential for attitude disturbance from the thrusters. Since both space and
power are limited on CanX-4&5, it was necessary to use rate sensors, in lieu of a star
tracker, to help ensure a full attitude solution during the eclipse period. CanX-4&5 has a
lower determination accuracy than BRITE. Although not strictly an attitude component,
CanX-4&5 has thrusters in order to perform its formation flying mission. Though every
effort will be made during assembly, integration and test to eliminate misalignments of
the thrusters that might create a secular angular momentum build-up, the possibility
still exists as the centre of mass will shift as propellent is depleted. The thrusters have,
in consequence, been placed in a grid pattern to allow for periodic re-adjustments to
thrust levels. Thrust adjustment is not expected to be a real-time process, and therefore
the controller for CanX-4&5 must be robust enough to withstand periodic jolts to its
Chapter 1. Introduction 8
alignment.
OASYS for CanX-4&5 is configured to receive a target pointing direction from FIONA
(the Formation-flying Integrated Onboard Nanosatellite Algorithm the guidance con-
troller) and adjust its orientation to both point the thrusters and minimize the angle
between the GPS antenna and zenith detailed in Chapter 3. The EKF for CanX-4&5
is geared to favour no sensor over any other and operates best at small speeds. The
controller on CanX-4&5 is geared towards accomplishing its pointing task as quickly as
possible in order to accommodate the relatively rapid change in target pointing direction.
Details on both the controller and EKF can be found in Chapters 4 and 5 respectively.
1.3 Mirage
Mirage is the attitude simulation environment that has been developed for the CanX
missions through the work of several generations of SFL staff and students. The goal of
the simulator is to provide a reasonably accurate picture of how the satellite will move
physically over the course of a mission. A conceptual diagram of Mirage is shown in
Figure 1.6 with a detailed explanation of each block given below.
Figure 1.6: Simulation environment simplified overview
Chapter 1. Introduction 9
The external environment exists, as the name would suggest, largely external to the
rest of the simulation. The equations of motion for a point mass are applied to the satel-
lite to propagate position according to the external time signal. The SGP4 (Simplified
General Perturbations Satellite orbit model 4) propagator is used to propagate position
and includes the J2 through J5 effects in addition to an estimate of the effect of the
disturbance torques due to atmospheric drag and solar pressure. Information regarding
position is passed to both the magnetic field block and the solar ephemeris. The magnetic
field (and corresponding attitude disturbances) are calculated using IGRF (International
Geomagnetic Reference Field). In practice there is a small amount of attitude data (not
shown) fed back into the external environment blocks to calculate attitude disturbances.
Consequently, solar torques are calculated based on actual attitude rather than a simpli-
fied model, drag torques and magnetic torques are similarly calculated.
Plant dynamics forms the core of the Mirage simulation environment: torques are
fed into the block and the resultant attitude is calculated. Attitude is propagated from
integration of Euler’s equations and the quaternion rate/angular velocity relations; more
detail on the equations is given in Section 4.1. Included in the plant dynamics is the
effect of reaction wheel speed on the spacecraft. At this time there is no consideration
given to the effect on attitude of either flexible antennas or the change of mass during
the course of a mission. For BRITE and CanX-4&5, consideration of flexible elements
is not likely to be a problem, however, this may affect future GNB missions. Lack of
attention to the change in mass may affect CanX-4&5, though currently there exists no
good model for fuel slosh in its tanks.
The sensor models block takes input from both the external environment and the
plant dynamics to simulate the sensor data that will be given to OASYS. In addition
to the direct translation of orientation data to sensor output (e.g. position + attitude
→ sun vector in the body frame), each sensor model attempts to include an accurate
representation of noise, discretization, saturation, and dead-banding seen on the real
sensors. A more thorough discussion of some of the sensor models developed for GNB
missions is given in Section 5.1.
The external control block is an attempt to simulate the effects of external event
triggers on the behaviour of the spacecraft and governed primarily by the time signal.
Examples of external events would include mode switches (e.g. de-tumble to active
control) or the output of a new target quaternion/vector. For CanX-4&5 the complete
set of attitude targets is placed in this block for output to OASYS at fixed times.
Chapter 1. Introduction 10
The OASYS block provides bindings to the actual control code that will be used on
GNB missions. When Mirage is run, all telemetry that will be seen by the spacecraft’s
ACS is parsed into a large array of inputs that will become the input side of the ACS
exchange structure. This array is then passed to Simulink MEX code which then exe-
cutes a single OASYS control frame. Once commands have been given by OASYS (e.g.
commanded wheel torques), they are written to the output side of the ACS exchange
structure for feedback into the simulation. Because the control code is executed once
a second this sets the maximum simulation step time used by Mirage to integrate the
differential equations. More details on simulation time are given in Section 5.1.1.
Actuator models are similar in behaviour to the sensor models: commands given
by OASYS to control the spacecraft are converted into the actual torques that will
be seen; the simulated torques are then passed to the plant dynamics. Like the sensor
models, actuator models provide not only translation of a command to actual torque (e.g.
commanded torque → actual torque + phase-lag), but also noise models on telemetry
and real effects such as stiction or saturation. A more thorough discussion of some of the
actuator models developed for GNB missions is given in Section 5.1.
The output block is simply a large data collection block. It provides the data struc-
tures that capture commands, spacecraft telemetry, and true simulated environment data.
In addition to providing data acquisition, the output block also provides some limited
comparison of telemetry vs. actual spacecraft motion which is useful for assessing the
magnitudes of determination and pointing errors.
Chapter 2
Hardware Evaluation
2.1 Fine Sun Sensors
Theory of Operation
Provided here is a brief description of the theory of CanX Fine Sun Sensor (FSS) op-
eration; more detail can be found in [7] and [10]. The fine sun sensors consist of a two
dimensional profile sensor capable of outputting an X and Y profile showing the dis-
tribution of light over the profile. The 8-bit profiles are shown in Figure 2.1 (courtesy
of Hamamatsu corporation [15]), though in reality each profile consists of 256 elements
rather than the 12 shown. Light from the sun enters through a pin-hole filter mounted
some distance from the active plane to produce a spot of maximum intensity (Figure 2.2).
The recorded spot of maximum intensity is then investigated using a central tendency
technique developed in [14] and the centre of this peak (termed the centroid) is found.
The sun vector is then determined using (2.1), where Cx is the distance from the origin
(the area directly beneath the pinhole) to the centroid along the x-axis, Cy is the distance
from the origin to the centroid along the y-axis, and h is the separation distance from
the pin-hole to the sensor back plane (termed the gap thickness).
s =
Cx
Cy
h
√C2
x + C2y + h2
(2.1)
11
Chapter 2. Hardware Evaluation 12
Figure 2.1: Profile sensor illumination response.
Figure 2.2: Fine sun sensor theory of operation
Chapter 2. Hardware Evaluation 13
2.1.1 Fine Sun Sensor Calibration
Origin Detection
Determination of the origin is perhaps the most important test for the sun sensors.
Nominally, the pinhole filter should be directly above pixel (128, 128) of the profile
sensor, however, alignment of the pinhole to the profile sensor centre is exceptionally
difficult [14]. Figure 2.3(a) shows the testing facility (at Ryerson University) that is
used for all calibration including the mount point and Figure 2.3(b) shows the adapter
plate used to mount the sun sensor. Due to the large number of interfaces between
the sun sensor and the test-rig, including the dimensionally unstable plastic spacers,
determination of the origin was not simply a matter of using the calibrated light source
present at Ryerson with the sun sensor in the neutral position (θ1, θ2, θ3 = 0).
(a) Ryerson test-rig (b) Mounting Plate
Figure 2.3: Testing facility and test set-up. Light source is projected along θ3 axis
Instead of using the test-rig’s neutral position, the sensor was rotated about θ3 in order
to produce an ellipse about the origin on the profile sensor; this concept is illustrated
schematically in Figure 2.4. The centre of the projected ellipse was then calculated and
that pixel was determined to be the origin.
Sensitivity
Determination of sun sensor sensitivity would ideally consist of an examination of each
and every pixel on the sun sensor. Regrettably, in the interest of timely calibration, the
developed procedure only examines a large region of the sun sensor’s active region. At
Chapter 2. Hardware Evaluation 14
Figure 2.4: Origin location concept. Any misalignment of the sun sensor to the test rig
base will result in a wander of the recorded centroid as θ3 is rotated.
the suggestion of Dr. Enright from Ryerson University, the sun sensor was rotated about
θ3 and θ2 to produce a sweep pattern over the active area as shown in Figure 2.5(a). The
sun sensor would first be rotated about θ2 in increments of 1 from −45 to 45, when
this step was complete the sensor would be returned to θ2 = 0 and rotated by 5 about
θ3 before being swept again. For sweeps conducted along the fine sun sensor’s 1−→ and
2−→ axes (highlighted sweeps in Figure 2.5(a))rotations about θ2 were conducted in 0.1
increments from −45 to 45 to test resolution.
(a) Sweep pattern concept (b) Sensor axes
Figure 2.5: Sweep pattern and sensor frame. Sweeps are conducted along vectors in the
plane with normal in the direction of the 3 axis
As shown in Figure 2.6 (a plot typical of CanX sun sensors) a 0.3 − 0.4 change in
Chapter 2. Hardware Evaluation 15
angular orientation is required before a change is detected on the sun sensor. This is the
expected value of least detectable change based on the separation of individual pixels on
the sun sensor as calculated by θ = arctan(√
C2x + C2
y/h) where h is the gap thickness.
Due to the nature of the tangent function, the result becomes slightly more accurate as
the sun nears the edge of the detector.
Figure 2.6: Recorded vs. true angle
Gap Thickness Height
Almost as critical as determining the sensor origin, is determination of the separation
distance between the pin-hole filter and the active area of the sensor, referred to as gap
thickness. The data-sheet for the profile sensor indicates that the gap thickness should
be 0.9− 1.1mm [15], resulting in an uncertainty of 20% of the given value. Fortunately,
the Ryerson test facility provides two ways of determining the sun vector: through em-
ployment of (2.1) or through use of the known sun vector values as given by the test
stand. Determination of the gap height at a given location should then be a simple mat-
ter of rearranging (2.2). Unfortunately, due to the same potential alignment problems
present for origin determination, (2.2) cannot be used directly at one point. Instead,
Chapter 2. Hardware Evaluation 16
the gap height must be calculated over as many points as possible (employing the sen-
sitivity data) to create a point cloud of potential gap heights as shown in Figure 2.7(a).
Since resolution tends to decrease towards the origin due to the tangent relation, the gap
thickness calculation becomes increasingly noisy until the noise overrides the signal. To
avoid this issue, only points at the periphery of the field of view were used to determine
gap thickness height. These values were then used to create a plane of best fit (Figure
2.7(b)) to represent the tilt of the sun sensor with respect to the test jig. The height of
the plane at the origin was then calculated and that value was used as the gap thickness,
this value was found to be on the low end of the given datasheet values.√S2
x + S2y
Sz
=
√C2
x + C2y
h(2.2)
(a) Point cloud (b) Plane of best fit
Figure 2.7: Gap thickness determination procedure. The tilt in the plane represents the
misalignment of the sun sensor to the test-rig.
2.1.2 Albedo Effects
Fine Sun Sensor Reading
Crucial to the performance of the ADCS is the quality of the Fine Sun Sensor’s (FSS) sun
vector reading. As shown in Section 2.1.1, the fine sun sensors are accurate to between
0.3 and 0.4 when the proper sun sensor is chosen, however, the issue of correct fine sun
sensor choice is determined by the coarse sun sensor. The algorithm for choosing the fine
Chapter 2. Hardware Evaluation 17
sun sensor consists of using the FSS on the face with the brightest coarse sun sensor.
There remains, however, a question regarding whether or not the coarse sun sensors, due
to their larger field of view (FOV), would be affected by the effects of Earth albedo.
To ascertain the effects of albedo, it was necessary to first find data on the Earth’s
reflectivity in a readily accessible form. Fortunately, the work of Bhanderi [4] included the
development of a free Matlab program for the compositing of data from NASA’s TOMS
probe to create a full-sphere map of the Earth’s reflectivity. The inner workings of this
program are explained in detail in Bhanderi’s doctoral thesis [3], however, a summary of
the data product output is given here: 1. The oblate spheroid of the Earth is divided
into a series of 2D patches; 2. The TOMS raw reflectivity data is matched to each patch;
3. A weighted average reflectivity is calculated for the centre of each patch.
With full-sphere reflectivity, the amount of incident light seen by a nadir pointing
face can be readily calculated. For a given 2D ground patch, the amount of light received
(Ecell) from that patch is given by (2.3). This equation is a function of the incident
irradiation (Esun), the reflectivity (ρ) which is a product of latitude (λ) and longitude
(δ), the area of a given ground patch Acell which is a function of latitude, the dot product
of the unit sun vector (rsun) and the ground patch unit normal vector (ncell) expressed in
a common frame, all over the square of the distance of the satellite from the ground patch
(rsat). Since the number of visible ground patches is readily calculated for a satellite at
a given altitude, the total radiation incident on a nadir face, Etotal, is simply given as the
summation of all the individual visible cells (2.4).
Ecell =ρ(δ, λ)EsunAcell(λ)rT
sunncellrTsatncell
π|rsat|2(2.3)
Etotal =n∑
i=1
Ecell,i (2.4)
Determination of the intensity and direction of radiation for a given ground patch is
only half of the information necessary to determine the effects of albedo on the fine sun
sensor. The other half is, of course, the response of the sensor to light of a given intensity.
Unfortunately, the testing facility described in Section 2.1.1 is not guaranteed to produce
brightness equal to the sun over all wavelengths and the tests performed at this facility
were the only ones with a known sun vector direction. Due to this mismatch, it was
impossible to determine directly from measurements the sun sensor’s absolute response
to a full sun as a function of incident angle, only its trended response to a light source.
Chapter 2. Hardware Evaluation 18
Fortunately, data did exist for the peak response of a sun sensor at an unknown orienta-
tion (approximately normal to the true sun) with different light intensities modulated by
the degree of filtering, therefore, analysis proceeded as follows: 1. The response of the
sun sensor to varying angles was determined from calibration data; 2. The response of
the sun sensor to varying light intensities was determined; and 3. The data was combined
to produce a function that relates fine sun sensor response to light intensity and incident
angle. It should be noted that both the test facility’s bulb and the sun have the same
spectral response in the regions of interest (i.e. near 550nm).
The intensity of response of the sun sensor to incident angle was thought to be cosine
about the origin from a cursory glance at the data. Consequently, the function was
assumed to be R (θ) = Ro · cos (θ), where the response (R) of the fine sun sensor is
proportional to the intensity at the origin (Ro) and the cosine of the off normal angle
(θ). To verify this assumption, a plot of intensity vs. the cosine of the off normal angle
was created, a least squares fit was taken, and the corresponding correlation coefficient
was used to assess linearity of the rectified angle with respect to the response. Figure 2.8
shows the fit to data from some calibration tests on CanX-2’s FSS. The corresponding
square of the correlation coefficient is in excess of 0.95. Therefore a cosine response can
be deemed a good fit.
Figure 2.8: Peak response vs. rectified angle
The response of the sun sensor vs. the intensity of incident light was assumed to
be linear, however, this needed to be verified. Fortunately, data from sun sensor filter
selection could be used when coupled with radiation data from a nearby weather station
to find the light intensity/sensor response relation. This was accomplished by graphing
the peak response at a fixed angle vs. total light admitted through the filter. Figure 2.9
shows the response (RFSS) of the sensor to different light intensities and the corresponding
Chapter 2. Hardware Evaluation 19
linear curve fit with a slope C of 787 bitsW/m2
which has a correlation coefficient in excess of
0.95. This leads to the complete response vs. intensity and angle equation given by (2.5)
where E is the incident light, s−→ is the light direction, and n−→ is the sun sensor normal.
Figure 2.9: Peak response vs. intensity of admitted light
RFSS
(E, s−→
)= E · C s−→ · n−→ (2.5)
With equations for radiation from a particular ground patch (2.3) and the response
of the sun sensor to radiation given an incident angle and intensity (2.5) in hand, it
is possible to determine whether a nadir facing fine sun sensor would even register the
Earth’s albedo. This was done in four parts: 1. A yearly average albedo was constructed
from TOMS probe data using Dr. Bhanderi’s program for each point on Earth; 2. A
satellite orbiting at 615km in a noon-midnight sun-synchronous orbit was simulated and
the location of brightest albeo was determined; 3. Due to computational limitations
only the brightest spot was examined using a modified version of Bhanderi’s program
to determine the incoming radiation and its direction for each visible 1.25 x 1 patch
of the Earth; and 4. The impact of each portion of albedo was determined for a nadir
facing sun sensor. Figure 2.10 shows the fine sun sensor’s response from each contributing
ground patch. Due to the diffuse nature of the light, no single ground patch has sufficient
brightness to excite a bit change on the profile sensor. Consequently, it was concluded
that a ground facing sun sensor could not be ‘tricked’ into producing a false sun vector
to confuse the ACS. Instead, were a nadir-pointing sun sensor chosen, it would show up
as null error within OASYS.
Chapter 2. Hardware Evaluation 20
Figure 2.10: Fine sun sensor response for peak albedo - the sun sensor would detect
albedo if, at any point, the expected response exceeded 1
A final question regarding the use of the TOMS probe data is its suitably for use
with the particular sun sensor designed by SFL. The peak reflectivity measured by the
TOMS probe is at 380nm [23], however, SFL’s fine sun sensor has its peak response at
500nm, with a range from 380-1000nm [15]. There is, in consequence, a small mismatch
in the wavelengths of light employed by each sensor. Since both sensors have their peak
responses within the visible spectrum (a fairly small band) and the atmosphere quickly
attenuates wavelengths on either side of the visible spectrum [20], it was felt that this
datum was sufficient, particularly as no alternative exists.
Fine Sun Sensor Choice
Although the fine sun sensors would produce a null reading when exposed to albedo, it is
ultimately hoped that this situation would never occur. The appropriate fine sun sensor
is chosen based on the coarse sun sensors, it was therefore necessary to determine the
effects of albedo on the coarse sun sensor. The coarse sun sensor consists of a photo-
transistor, and consequently the response (RCSS) to a light source varies (approximately)
linearly with intensity and cosinusoidally with incident angle. It is therefore possible to
model the response from a variety of light sources with (2.6); where C is a scaling factor
based on operating voltage, Ii is the intensity from a given light-source, s−→i is the unit
vector of the light source, and n−→ is the coarse sun sensor normal.
Chapter 2. Hardware Evaluation 21
RCSS = CN∑
i=1
Ii s−→i · n−→ (2.6)
Since processing of albedo was computationally expensive (in excess of a day), it
was decided to only examine one longitude location from −90 to 0. The longitude
chosen had been previously determined to be the brightest longitude for the fine sun
sensor. The satellite’s coarse sun sensor response (R) was then calculated for the two
faces shown in Figure 2.11 while the off-nadir angle (β) of face 1 was varied from 0 to
90. The equivalent response of face 1 can be calculated using (2.7) and the response
of face 2 calculated using (2.8). Where Ra was the response of the coarse sun sensor to
albedo, Rs was the response of the coarse sun sensor to the sun, and Req1 & Req2 were
the combined responses for the first and second respectively. The corresponding ratio of
the equivalent response of the first face to the second (r) was then calculated using (2.9).
Figure 2.12 shows r as a function of β and southern latitude (λ); the coarse sun sensors
were considered to have failed in their purpose if for β < 45 the response ratio was
greater than 1. With the current sensor algorithm, a ratio greater than 1 corresponds
to choosing to read a fine sun sensor not in view of the sun. As Figure 2.12 shows, only
two points of concern exist: one between the sensor dead-bands when any face choice
will result in a bad reading due to fine sun sensor limitations, and the other when the
satellite is at the sub-solar point. The sub-solar point is a special case as instead of the
sun sensor choice being between two adjacent faces, it is between two opposite faces and
can therefore be disregarded. In consequence, it can be concluded that albedo does not
pose a threat to the determination abilities of the CanX sun sensors.
Req1(β, λ) =
Ra(λ, θ) cos(β) if cos(π − (α + β + λ)) ≤ 0
Ra(λ, θ) cos(β) + Rs(α) cos(π − (α + β + λ)) if cos(π − (α + β + λ)) > 0
(2.7)
Req2 = Rs(α) cos(α + β + λ− π
2
)(2.8)
r =Req1
Req2
(2.9)
Chapter 2. Hardware Evaluation 22
Figure 2.11: Angle definitions used in determining effect of albedo on the coarse sun
sensors on Face 1 and Face 2
Figure 2.12: Coarse sun sensor face ratio as a function of off-nadir angle and southern
latitude
Chapter 2. Hardware Evaluation 23
2.2 Magnetometer Calibration
2.2.1 Operating Effectiveness
The magnetometer used in GNB satellites employs magneto-inductive magnetic sensors.
These magneto-inductive sensors are both temperature and noise stabilized due to their
counter-field variation detection [25]. The output of the magneto-inductive sensors is
a linear relation, larger oscillation frequencies of the sensor indicate the presence of
larger magnetic fields. A special purpose ASIC is used to count the number of crossings
in a set period of time (depending on the sensor range and resolution desired), the
output from the sensor is therefore in units of counts. At the time of testing only the
CanX-2 prototype was available for testing, due to the space-constrained nature of the
magnetometer packaging, two of the axes employ a more sensitive element than the
third by a factor of approximately two. Consequently, the effective resolution of the
magnetometer is not equal in all axes.
2.2.2 Axis gain calibration
Due to the variable nature of the sensor’s manufacturing process, each sensor has a
different gain. This gain can be calculated on a per-axis basis to find the counts/µT of
each sensor. Theoretically calibration of the gain is a simple matter if the strength of
the magnetic field is known. At first glance, a permanent magnet would seem the ideal
choice against which to calibrate. Unfortunately, the strength of the field of interest
is on the order of ±50µT, approximately the strength of the Earth’s field. Due to the
relation |B| ∝ 1/|r|3, which relates magnetic field strength (B) to distance from the
dipole (r), small changes in position will translate into large changes in the measured
field as operating at the distance from the permanent magnet that will produce a field
in the ±50µT region is also near the limit of its sphere of influence as compared to the
Earth’s field. Consequently, it was decided to employ the Earth’s magnetic field as a
known field of sufficient strength against which to calibrate.
Shown in Figure 2.13 is the experimental set-up used to calibrate the magnetometer
gains. The compass was used to ensure alignment with the maximum field and spacers
were used to ensure alignment between the calibrated single axis magnetometer and
the flight magnetometer. Due to the wide spacing between the two magnetometer’s (to
avoid interference), this test was conducted in an empty room separated by > 1m in all
Chapter 2. Hardware Evaluation 24
directions from large ferromagnetic objescts. Both magnetometers were rotated a full
360 to capture as large a field as possible. Final gains were found to vary widely but
still within the tolerances specified by the manufacturer.
Figure 2.13: Gain Calibration Experimental Set-up
2.2.3 Misalignment and Deviation
Ideally, the magnetometer’s axes would be perfectly aligned such that each sensor on the
magnetometer was perpendicular to the other two. Unfortunately, due to uncertainty
in placement of the sensors on their boards and misalignment between the XY and Z
boards (Figure 2.14), perpendicularity cannot be guaranteed and must be determined
and corrected. Figure 2.15 shows one possible misalignment scenario.
Figure 2.14: Magnetometer axes
Deviation, also known as bias, of a magnetometer can occur for two reasons: 1. A
residual magnetic field is present on the device or intrinsic to the design; and 2. The
Chapter 2. Hardware Evaluation 25
Figure 2.15: Misalignment of sensors from desired orthogonal frame
sensors do not register a zero reading in the absence of a magnetic field. For practical
purposes, however, the two effects are indistinguishable and can be treated as a single
effect.
The combined effect of misalignment and deviation results in a reading distinct from
the true field. Mathematically, the effect of deviation and misalignment can be repre-
sented by (2.10), where M represents the sensor reading; Bi is the true magnetic field
expressed in the inertial frame; Csi is the rotation matrix from the inertial frame to the
sensor frame (intrinsically linked to the body frame); A is the misalignment matrix and is
composed of unit vectors in the sensor frame indicating the true directions of the sensors;
G is a diagonal matrix that represents per-axis scaling; D is the unit level deviation; and
ν is the noise. Since deviation appears in the same equation as the misalignment matrix,
it was most convenient to calibrate D and A simultaneously. In order to calibrate mag-
netometer misalignment and deviation, two avenues of calibration were considered: A
three-point measurement method per plane; and a many-point measurement redundant
magnetometer calibration.
M = G (A (CsiBi + D)) + ν (2.10)
Three-point calibration
Three-point calibration refers to the three orthogonal measurements required per plane
to estimate that plane’s angular misalignment and deviation component. Shown in Fig-
ure 2.16 (Green rectangles denote magnetic sensors) are the 6 pieces of information that
combine to form a reading in any planar measurement, namely: true field strength and
angle; true deviation strength and angle; and the true sensor misalignment. Since any
Chapter 2. Hardware Evaluation 26
measurement with the magnetometer on a given plane will produce two pieces of infor-
mation (an X and Y reading), 3 measurements are needed to achieve a deterministic
solution. To simplify calculation, three orthogonal measurements were used to gener-
ate (2.11)-(2.16). These 6 equations are highly non-linear and, consequently, no direct
analytic solution was found. If several simplifying assumptions are made the equations
become tractable. Specifically, if η and θ are assumed small than using the small angle
approximations and some iteration, a solution can be obtained with the equations given
by (2.17)-(2.22). Thus it is possible for a constant magnetic field to determine all mis-
alignments and deviations provided that the general direction of the field is known (so
as to maintain β within the correct quadrant).
Figure 2.16: Graphical depiction of misalignment, deviation, and true field viewed from
three perspectives in one plane. The misaligned magnetometer (green) is rotated in the
constant field (orange).
x1 = M · sin(α− θ) + D · cos(β + θ) (2.11)
y1 = −M · cos(α + η)−D · sin(β − η) (2.12)
x2 = M · cos(α− θ) + D · cos(β + θ) (2.13)
y2 = M · sin(α + η)−D · sin(β − η) (2.14)
x3 = −M · sin(α− θ) + D · cos(β + θ) (2.15)
y3 = M · cos(α + η)−D · sin(β − η) (2.16)
Chapter 2. Hardware Evaluation 27
α + η = arctan
[2(y2 − y1)− (y3 + y1)
y3 − y1
](2.17)
α− θ = arctan
[x3
x3 + x1 − x2
](2.18)
M =y2 − y1
sin(α + η) + cos(α + η)(2.19)
η =y2−y1
M− (cos(α) + sin(α))
cos(α)− sin(α)(2.20)
β = arcsin
[M cos(α + η)− y3
D
]+ η (2.21)
D =x1 + x3
2 cos(β + θ)(2.22)
With the equations in hand, calibration became a matter of finding a suitably even
magnetic field to use as a reference and applying all equations. Due to the fact that
field strength is related to distance from a dipole by an inverse cubed relation [20],
small permanent magnets are unsuitable as a calibration field as small variations in
position translate into large changes in field strength. Therefore, as with gain calibration,
calibration of deviation and misalignment was performed against the Earth’s magnetic
field. Although any three perpendicular orientations are acceptable for this method of
calibration, experience showed that results were most numerically stable when α was a
non-zero value. Consequently, readings were taken in the compass directions of NW, SW,
and SE in the XY, YZ, and XZ planes to generate solutions.
Assembly of the final misalignment solution was based upon small angle approxi-
mation as, in the limit, angles can be treated as vectors. During misalignment matrix
assembly, the η’s and θ’s of (2.11)-(2.22) for each plane become the α, β, γ, δ, ε and ζ
of Figure 2.15. Adding the angle vectorially as per Figure 2.15 produces a unit vector
in the sensor frame for each axis that represents the true sensor direction. These unit
vectors can then be assembled into a final misalignment matrix. Solution of the deviation
vector would be more complex as the small angle assumption no longer holds, however, in
actual practice deviation in the magnetometer’s Z direction was found to be quite small
and thus the planar XY solution was used. This method of misalignment estimation can
produce an accuracy of ±1 based on the accuracy of the compass used.
Chapter 2. Hardware Evaluation 28
Redundant calibration
The redundant calibration method was based largely on the work of Graven et al. [13] who
reported that, using their method, a magnetometer’s misalignments could be calculated
to 0.1 accuracy and deviation to 0.1% of the nominal field intensity. This relies on many
measurements in different orientations and employs the reading model given by (2.23),
where P is the transformation matrix to skew the readings along sensor misalignments
and scale them. This is a slightly different formulation given by (2.10), and so the results
of Graven’s work had to be reworked to accommodate what was felt to be a better
formulation for SFL’s magnetometer. This can be done applying the inverse gain matrix
G−1 to the measurements from the magnetometer to get an equation similar to (2.23)
which can be found in (2.24).
M = P (CbiBi + ν) + D (2.23)
M = A (CsiBi + D) + ν (2.24)
The underlying idea behind taking many measurements in different orientations is
to use the known magnetic field strength (obtained through IGRF in orbit and prior
measurement if done on the ground) to determine an estimate of A and D using a cost
function. Specifically, if Bi is squared with its transpose (2.25) for a given modified
measurement (Mk) then the unknown rotation matrix Csi disappears from the equation
when multiplied by its transpose. The residual for a measurement is then given by (2.26),
however, this residual, like the original measurement, contains noise terms. As noted by
Graven et. al [13], the random nature of the noise terms means that their expected value
should be a constant over many measurements. These terms will therefore be ignored
with the knowledge that they induce an upward bias when minimizing the residuals.
This bias renders the solution useless for determining the absolute scale of the readings,
however, it does provide a useful means of relative scaling. Consequently, for a given
estimate of A and D the residual of the equation will be given by (2.27). By employing
an optimizer, the values of A and D can be varied such that the guess values that will
yield a minimum residual. For this particular implementation, the lsqnonlin function
in Matlab was used.
BTi Bi =
[C−1
si A−1Mk −C−1si (D + νk)
]T [C−1
si A−1Mk −C−1si (D + νk)
](2.25)
Chapter 2. Hardware Evaluation 29
R = MTk (A−1)T A−1Mk − MT
k (A−1)T D − MTk (P−1)T νk (2.26)
−DT A−1Mk − νkA−1Mk + DT D + νT
k νk −BTi Bi
R = MTk (A−1)T A−1Mk − MT
k (A−1)T D − DT A−1Mk + DT D −BTi Bi (2.27)
In order to assess the efficacy of this method of determining calibration coefficients,
simulated data was generated and the optimization heuristic applied. The simulated data
were generated under the conditions as listed below:
• Noise levels were similar to those present on the magnetometer as determined from
previous calibration testing.
• Deviation was of a similar magnitude to that of the real magnetometer.
• The transformation matrix was the identity matrix.
• 400 simulated data points were generated per trial run, as previous work [13] has
indicated that this should produce accurate results.
Once the data were generated, the heuristic was applied with guess values for the devia-
tion vector and transformation matrix varied randomly about their true values by a fixed
percentage using the randomizing functions built into Matlab. At each level of percentage
error, 10 trials were performed and the angular misalignment was assessed. Figure 2.17
(note: relationship is linear, but plotted on a semi-log scale to emphasize area of interest)
shows the average misalignment error that can be expected for a given percentage error
in the input values.
If values from the three-point calibration method are used to seed the redundant
calibration solution the corresponding solution that can be obtained from this method
is no better than the guess values, as the guess values are only accurate to ±1, roughly
1.1%. This result is somewhat apparent in the real data when the calculated relative
misalignments of the axes are compared against those found with the heuristic. Both
results show similar levels of misalignment, however, for small angles these can differ in
sign. Therefore three-point calibration would only be useful in determining magnetometer
drift on-orbit if a better method of initial calibration were employed.
Chapter 2. Hardware Evaluation 30
Figure 2.17: Accuracy of the magnetometer heuristic as a function of guess value devia-
tion
2.3 Angular Rate Sensors
2.3.1 Selection and Design
The addition of rate sensors to certain GNB based satellites was a fairly late addition
based on the more intensive simulations performed of attitude determination following
the preliminary design review. As shown in Figure 2.18, quality of attitude determination
during eclipse declines precipitously for CanX-4&5 due to the loss of the sun sensor and
the high rates of motion for that mission. Consequently, it was decided that the addition
of rate sensors would improve performance during the eclipse period and allow more time
to stave off Extended Kalman Filter (EKF) divergence.
Figure 2.18: Determination during eclipse without rate sensors in passive mode
(determination only)
Chapter 2. Hardware Evaluation 31
Selection of angular rate sensors (referred to as rate gyros in the literature) for CanX
missions was a fairly straightforward task. All commercially viable rate gyros intended for
use on embedded devices employ a vibrating mass, this mass in the presence of a rotation
will move out-of-plane due to the coriolis force (Figure 2.19). It is the means of generating
this vibration and the corresponding means of out-of-plane movement detection that set
the different commercial rate gyros apart.
Figure 2.19: Coriolis acceleration - an induced acceleration (yellow) is created by the
interaction of a steady angular velocity (green) and a translational velocity (red)
In recent years, the MEMS industry has moved away from quartz rate sensors such
as Systron Donner ’s QRS series of rate sensors to bulk silicon such as those produced by
Analog Devices and Systron Donner. The move to bulk silicon from quartz rate sensors
was initiated for cost and throughput reasons, but has since resulted in numerous side
benefits [34] . These benefits include: power reduction, low drive/sense coupling, low
noise due to on-board ADC addition, and quadrature error elimination through redun-
dant proof masses [34] [32]. Consequently, the chief choice that was made in selection of
rate gyros was not between silicon or quartz, but was instead between on-board and off-
board processing. Table 2.1 provides a comparison of the advantages and disadvantages
of on-board and off-board signal processing.
At first glance, the advantages and disadvantages of the off-board processing seem
to outweigh those of on-board processing, however, on closer inspection the advantages
quickly disappear. Due to the weak nature of the coriolis force, the sense elements of a
rate gyro, which use capacitive pick-offs, will register signals (for low rates) on the order
of change of 1pF. Consequently, the lower signal noise and higher resolution of the off-
board processed rate gyro are only guaranteed in bench tests using highly sensitive test
equipment. When placed on a real spacecraft, implementation of measurement circuits
for the off-board case will result in a higher noise and consequently, a reduced resolution.
Chapter 2. Hardware Evaluation 32
Table 2.1: On-board and off-board signal processing comparison chart
Type Advantages Disadvantages
On-board • Temperature Compensated • Not available in a tri-axial package
• Output signal pre-conditioned • Higher signal noise
• Lower cost • Lower resolution
Off-board • Available in tri-axial package • Output signal in a raw state
• Lower signal noise • Not temperature compensated
• Higher resolution • Higher cost
By contrast, the on-board package uses the so called ‘flip-chip’ fabrication technique to
produce parts, where the MEMS portion of the chip is constructed on one side of the
silicon wafer and the circuitry on the other. As a result, lead lengths between the sensing
elements of the MEMS circuitry and the ADC/signal-processing circuits are both very
short and well insulated by a layer of SiO2. Thus, although the data-sheet values of noise
and resolution for the off-board signal processing circuits are technically better, only the
on-board chips will actually achieve data-sheet values. With the perceived superiority
of high resolution/low signal noise eliminated from the comparison, the advantages of
on-board processing quickly become apparent: the signal can be pre-conditioned to the
desired signal cut-off and the sensor does not need to be calibrated over temperature
(thus special measurement facilities do not need to be used).
With the options narrowed to an on-board signal processing chips for the rate gyros,
the Analog Devices ’ ADIS 16251 was chosen as a good compromise between price and
quality. This sensor has a base sensitivity (s) of 0.00458/sec/LSB with a noise density
(ν) of 0.056/sec/√
Hz. The effective resolution (ρ) of the device is therefore given by
(2.28) [31] where fc is the cut-off frequency of the on-board low pass filter.
ρ =ν ·√
fc
s(2.28)
Obviously, it is desirable to obtain the best resolution possible and therefore the
minimum cut-off frequency should be used. Since the control system loop operates at
1Hz, this sets the minimum cut-off frequency of 1Hz as the control system will not be
able to use any information faster than 0.5Hz anyways. Rather than processing the signal
on the OBC, the rate gyro has a built-in, user-adjustable Bartlett filter. Although this
filter greatly reduces the computation load on the OBC, it does have several limitations.
Chapter 2. Hardware Evaluation 33
The on-board sample time of the rate gyro is user-adjustable from 3.906ms to 11.718ms
in increments of 1.953ms, this results in a maximum sampling frequency of 256Hz. In
addition, the Bartlett filter can only look back at N = 2M samples where M can be
any integer from 1 to 7. Thus, choosing the correct cut-off frequency (fc) is a matter
of balancing sampling frequency (fs) and the number of samples filtered to choose the
optimal signal cut-off. Given in (2.29) is the magnitude of the Bartlett filter response as a
function of frequency, which was used to create the plot shown in Figure 2.20. The point
shown in Figure 2.20 is approximately the non-dimesionalized cut-off frequency (f/fs)
for N = 32; for a sample rate of 256Hz this yields fc = 1.664Hz. Attempting several
combinations of sampling rate and sample point observation, fc = 1.664Hz provided the
highest level of filtering without violating the 1Hz limitation.
HB(f) =
[sin(π ·N · f · ts)N · sin(π · f · ts)
]2
(2.29)
Figure 2.20: Bartlett filter response as a function of non-dimensionalized frequency.
With a sensor and cut-off frequency chosen, the next challenge was to package the
rate sensor to ensure perpendicularity between all three sensors. Separating the sensors
and placing them on other boards (e.g. the sun sensor boards) was briefly considered,
however, it was felt that this would impose an undue failure mechanism on these boards
and was discarded. As CanX-4&5 was already fairly tightly packed, spacing was limited
Chapter 2. Hardware Evaluation 34
and the entire package had to fit into a volume no more than 50x40x13.5mm3. The sensors
themselves are 11x11x5.5mm3, making the design of the sensor package fairly straight-
forward with the exception of the need to use flexible boards to accommodate bends
and avoid connectors. Presented in Figure 2.21 is the designed rate sensor packaging
including flexible connectors.
Figure 2.21: Proposed rate sensor package layout
2.3.2 Testing
As silicon rate sensors are a new technology to SFL, testing consisted primarily of as-
sessing the truth of data-sheet values in real-world practice. Testing was conducted with
an ADIS 16251 evaluation board and SFL’s rate table. Of interest were the sensor’s true
noise characteristics, true linearity, on-off bias, and true bias over temperature.
The true noise of the sensor was determined by evaluating the returned responses of
the sensor for a known rate over a representative period of time (≈1min) many times
resulting in thousands of samples. The standard deviation for the returned responses was
then calculated at each constant speed. Figure 2.22 is a plot of the calculated values, as
seen, the data shows no correlations. It is interesting to note that the average standard
deviation (0.0064/s) is on the order of the base resolution of the sensor (0.00458/s),
indicating that the low frequencies of the constant rate signals are being adequately
filtered. Unfortunately, it is not possible to test signals with higher frequency components
due to the inability of the test set-up to capture moving rates.
The output values of the rate sensors, while quite linear with increasing rate, are
curiously, improperly scaled. Figure 2.23 shows a high correlation between the measured
Chapter 2. Hardware Evaluation 35
Figure 2.22: Noise over rate
output of the sensor and the true rate, however, since the sensor’s output is nominally
in /s the corresponding curve should be 1:1 and it is not. Though there can be many
possible reasons for this off-scaling (e.g. the chip die has worn, thus degrading the
calibration of the proof mass), the effect on CanX-4&5’s rate package can be minimized
through simple but careful pre-calibration.
Figure 2.23: Rate sensor linearity and scale
Tests for on-off bias of the zero-rate reading were accomplished simply by turning
the rate sensor unit on and off and recording the average bias for a given ‘on’ period.
Similarly, in-run bias drift was measured by simply leaving the sensor still for a long
period and recording the drift in bias. As expected, there was some drift in bias with
each power cycle and over time, with the recorded bias stability standard deviation at
0.025/s and 0.07/s to the datasheet’s 0.018/s and 0.016/s respectively. Fortunately,
this higher value appears to have little effect on final determination, as is seen in Section
Chapter 2. Hardware Evaluation 36
5.2.2.
While the gyroscopes are nominally temperature compensated, there is a small amount
of bias that cannot be automatically calibrated at the factory. As shown by Figure 2.3.2,
the measured values with the evaluation unit are well within specifications. A look-up
bias table will need to be implemented in the final design with an individual curve for
each sensor. Fortunately, there is an on-board temperature sensor within in each ADIS
16251 that can be read.
(a) Datasheet bias over tempera-
ture. Courtesy Analog Devices [1]
(b) Averaged measured bias over temperature
Figure 2.24: Comparison of true and measured bias stability over temperature
2.4 Reaction Wheels
The chief actuators for GNB satellites are the Sinclair Interplanetary reaction wheels
(Figure 2.25), a joint product between Sinclair Interplanetary and SFL. Electrical design
was provided by Sinclair Interplanetary while the mechanical design was largely provided
by SFL with significant input from Sinclair Interplanetary. The wheels, in a departure
from previous reaction wheel designs, are unsealed and employ a custom-wound motor
to increase inertia without incurring a weight penalty. Consequently, it was imperative
that a full suite of qualification testing be conducted to ensure that the wheels would be
capable of surviving the rigours of space. All qualification testing of the hardware was
performed by SFL, this testing included: testing over temperature and voltage, TVAC
(temperature and vacuum), vibration, and lifetime testing.
Chapter 2. Hardware Evaluation 37
Figure 2.25: GNB reaction wheels
2.4.1 Initial testing
Initial testing on the reaction wheels was successful as the wheels performed well over
temperature, over voltage, and in vacuum. During this testing several key metrics useful
for gauging performance of the unit as a whole emerged, namely: maximum speed,
damping coefficient, and torque linearity. All metrics can be obtained during a Short
Form Functional Test (SFFT) illustrated in Figure 2.26. This test consists of a period of
application of maximum power in both the positive and negative direction to the reaction
wheel’s windings followed by a run-down period when no power is applied. The sequence
is then repeated with a braking mode used instead of a run-down period. Following
maximum power application, the wheel is operated at a variety of speeds to evaluate
speed control. After speed testing, a constant negative torque is applied to evaluate the
effectiveness of the torque controller. Finally, a series of low speed tests are conducted
to evaluate stiction and telemetry responsiveness.
Maximum speed is an obvious measure of wheel health, since the maximum wheel
speed that can be achieved for a set amount of power is a good measure of efficiency.
Damping coefficient is a less obvious, but still relevant means of determining the friction
present in the wheel’s bearing. The damping coefficient (B) is based on the differential
equation given by (2.30) which is used to model the behaviour of the wheel’s mechanical
components. In the absence of power applied to the windings, the governing factor in
slowing down a wheel is friction. This friction is composed several independent frictive
forces of which the dominating factors are the static friction of the rolling ball bearings,
the viscous losses of the grease, and loss due windage (skin friction drag on the rotor).
Static friction of the rolling ball bearings is obviously not speed-dependent, while windage
losses and viscous bearing friction are drag terms which are therefore approximately de-
pendent on ω2. Fortunately, the static rolling friction is small in magnitude compared to
Chapter 2. Hardware Evaluation 38
Figure 2.26: A typical SFFT time-speed curve
the two fluid based losses and therefore friction can be modelled as being solely velocity
dependent. Since drag terms are proportional to ω2, and hence non-linear, B can only be
considered valid for a range of values, essentially combining a quasi-static velocity term
into the drag coefficient. To assess the validity of this assumption (2.30) was solved for
drift-down boundary conditions to yield the solution given by (2.31), where I is the rotor
inertia, G the torque. Solving for B yields (2.32) which allows the predictive power of
(2.31) to be checked through a two-point measurement and comparison of the extrapo-
lated value to the true value. Figure 2.27 shows a comparison of actual to modelled data
from a two point measurement taken over a large range of speeds. The correspondence is
quite high indicating that B is indeed a good measure of bearing friction. Experiments
in vacuum indicate that up to a third of the calculated damping coefficient is due to
windage with the remainder due to bearing losses.
I · dω
dt+ B · ω = Garmature (2.30)
ω(t) = ωoe−B
It (2.31)
B = ln
[ω2
ω1
]−I
t2 − t1(2.32)
Torque linearity is a simple measure of the effectiveness of the torque controller in
maintaining a constant torque over all speed ranges. A constant negative torque is
Chapter 2. Hardware Evaluation 39
Figure 2.27: Comparison of equation modelled run-down to actual run-down data
commanded at a high speed (determined by the maximum power applied) and maintained
until a high negative speed is reached. A linear fit for the speed data is then taken
and its correlation coefficient calculated. A well-tuned controller will have a correlation
coefficient near the theoretical maximum of 1, including the portions of the curve that
cross the stiction point.
2.4.2 Bearing Life
Initially the pre-load placed on the bearings of the reaction wheel was high in expectation
of the damage that would be incurred on the bearings due to high vibration during launch.
Within a week of vibration testing, one of the three engineering model reaction wheels
had failed leading to the erroneous conclusion that high vibration levels had initiated
the damage. Upon further investigation of the frequency of sudden impacts of the wheel
rotor against the bearings [14] there was found to be little difference between a high
pre-load and reduced number of impacts. When it became apparent that no amount of
pre-load would alter the number of impacts incurred on the rotor against the bearing, a
re-examination of bearing life was conducted.
Bearing lifetime is a highly statistical process [28], [2], but a formula exists for a 90%
confidence in survival hours (Le) and is given by (2.33). In (2.33), N is the speed of
rotation in rpm, Cthrust is the manufacturer-supplied thrust loading in newtons, Pthrust
Chapter 2. Hardware Evaluation 40
is the actual thrust loading on the bearing in newtons, K is the empirically determined
bearing coefficient for the given class of bearings, 16700 is the adjustment from rpm to
hours, and A1, A2, and A3 being life adjustment factors. When this calculation was
performed for the original level of pre-load the wheel’s life was found to be on the order
of 100 hours. While the real reaction wheels survived for about 500 hours with one
exception, it should be noted that for low hours (i.e. high loads) and large numbers
of hours (i.e. low loads) the equation fails due to the characteristics of the SN fatigue
curve for steel. It was therefore concluded that the cause of the original failure was
not, as originally suspected, due to vibration loading but was instead due to excessive
pre-loading.
Le = A1A2A316700
N
(Cthrust
Pthrust
)K
(2.33)
With the cause of wheel failure established, it was then necessary to re-adjust the
pre-load for a suitable lifetime. Since (2.33) is geared for 90% reliability in terrestrial
environments it was necessary to apply modification factors to life to find the ideal
Pthrust. The design lifetime was specified by Sinclair Interplanetary to be 3 years with
a 99% reliability, which equates to 26,280 hours. Employing the factors given in Marks’
Standard Handbook for Mechanical Engineers [2]: the adjustment factor for 99% survival
life (A1) was given as 0.21; the adjustment for bearing type (A2) is 1.0 for standard steel
bearings (as used on CanX-2), with the expectation that diamond coated bearings used
on GNB satellites will increase life by a factor 2.0 due to their exceptional hardness; and
the adjustment factor for lubrication (A3) was set to 1.0 as the bearings are expected
to be adequately lubricated due to the vacuum grease. For a nominal operation speed
of N = 2000rpm and a bearing rating of Cthrust = 65N, the corresponding allowable
pre-load was determined to be 6.8N.
2.4.3 Lifetime testing
Following acceptance testing on wheels with the new pre-load it was necessary to verify
that the true lifetime of the wheel would meet or exceed the calculated lifetime and that all
electronics would perform well over many cycles; to test this, several wheels were placed
on lifetime testing. Lifetime testing as implemented is a partially accelerated life test as
wheel electronics are operated at ambient temperatures (ignoring the strains of thermal
cycling) while wheel bearings are operated at accelerated speeds (greatly reducing their
Chapter 2. Hardware Evaluation 41
life).
A lifetime cycle consists of: 1. A period of maximum power application; 2. A period
of drift down; 3. A period of maximum power application in the other direction; 4. A
period of drift up; and 5. A repetition of steps 1-4 with drifting replaced by braking. A
typical lifetime cycle is illustrated in Figure 2.28, it is designed to include both directions
of rotation and provide easy access to two important wheel health metrics: maximum
speed and damping coefficient. Employing (2.33) piece-wise over the time-speed curve
yields an accelerated life factor of 2.04. Thus, every hour of life testing is equivalent to
2.04 hours of flight as seen by the bearings, all other components are cycled in real-time.
Figure 2.28: A typical lifetime test time-speed profile
As mentioned above, the lifetime testing profile was designed to allow easy access to
two measurement metrics: the maximum speed and damping coefficient; torque linearity
is excluded as it was a measure of controller performance rather than wheel health.
During the course of lifetime testing a sample of data is taken once per day and the
maximum speed and damping coefficient are calculated. Shown in Figure 2.29 is the full
life test of one of the early wheels with the original pre-load plotting both maximum speed
and damping coefficient over time, it shows several common characteristics observed in
lifetime tested wheels. Characteristic of all lifetime tested wheels thus far is the initially
highly variable maximum speed and damping coefficient, after a period of about 1000
hours the initial variability disappears. Following the initial period of rapid change there
is a long period of near constant maximum wheel speeds and damping coefficients. Seen
so far only in the failed first generation wheels is the sudden rise in damping coefficient
Chapter 2. Hardware Evaluation 42
and maximum speed followed by a rise in damping coefficient and decay in maximum
speed. Though further testing is needed on the new bearing designs it is highly likely a
sudden drop in wheel maximum speed coupled with a sudden rise in damping coefficient
can be used to presage imminent wheel failure allowing users to mitigate problems.
Figure 2.29: Lifetime profile for a failed first design iteration wheel with unusually long
survival life.
Chapter 3
CanX-4&5 Control Laws
The control laws governing the current GNB satellites (BRITE and CanX-4&5) are by
necessity very different from each other, due to their differing missions. In the case of
BRITE, a single inertially-fixed attitude is held for some time (in excess of 15 minutes)
to allow observation of the stars. In the case of CanX-4&5 attitude is continually shifting
to meet the ever-changing thrust directions dictated by formation flying program FIONA
(Formation-Flying Integrated Onboard Nanosatellite Algorithm).
3.1 Control Goals
The control laws governing CanX-4&5 have two competing requirements: 1. The +X
face of the satellite (axes shown in Figure 1.1 ) must point in the direction of thrusts as
directed by FIONA; and 2. The +Y face towards zenith to maximize the GPS signals
received by the formation flying computer. Unless FIONA directs the thrusts along the
direction of travel, these two requirements will be in continual opposition. Ultimately,
the primary mission goal is to perform formation flying with the GPS experiment aiding
in its performance, in consequence, the requirements were prioritized such that the +X
pointing takes precedence over +Y zenith pointing.
With pointing priorities chosen, the control laws governing pointing were formulated
mathematically to replicate the behaviour illustrated in Figure 3.1, thrusters are denoted
by the red cylinders and the GPS antenna is denoted by the green rectangle.. Figure
3.1(a) shows the initial problem: x−→ (the true thruster direction) must be aligned with
T−→ (the target thrust vector); and the separation between r−→ (the zenith vector) and y−→(the GPS antenna vector) must be minimized. The control law first finds the rotation
43
Chapter 3. CanX-4&5 Control Laws 44
(a) Initial pointing problem (b) First constraint applied (c) Second constraint applied
Figure 3.1: Pointing constraints on CanX-4&5
that will align x−→ and T−→. Once this rotation has been found, y−→ is free to be spun about
x−→ (Figure 3.1(b)) to minimize zenith misalignment to get the final ideal configuration
shown in Figure 3.1(c) shows the ideal minimized misalignment.
For notation purposes: ()−→t refers to the orientation of a particular portion of the
spacecraft when it is in the target orientation, ()−→i refers to the orientation of a particular
portion of the spacecraft when it is aligned with the inertial frame, and ()−→m refers to the
orientation of a particular portion of the spacecraft when it is aligned with the mid-frame
(intermediary frame) concept shown in Figure 3.1(b).
3.2 The Original Control Laws and Their Perfor-
mance
Given the control goals mentioned in section 3.1, a heuristic that would perform this task
was developed by Sarda [10]. The heuristic finds the desired quaternion that would, if
the spacecraft were properly aligned, match Figure 3.1(c). The steps of the heuristic are
presented as follows:
1. The Euler axis a−→ and the Euler angle φ are calculated between the inertial x−→i and
the desired thrust vector T−→ such that:
a−→ = x−→i × T−→ (3.1)
φ = arccos( x−→i · T−→) (3.2)
Chapter 3. CanX-4&5 Control Laws 45
2. A rotation matrix is then generated to move from the inertial frame to an interme-
diary body frame via (3.3).
Cmi = cos(φ)13×3 + (1− cos(φ)) aaT − sin(φ)a× (3.3)
3. The rotation angle (α) about x−→t (which is equal to x−→m) that would minimize the
inner product between y−→t and r−→ is then calculated via (3.4) with all components
expressed in the intermediary frame.
αoptimal = arctan
(rm3
rm2
)(3.4)
Where, in practice the C-function arctan2() was employed to find the proper
quadrant.
4. A rotation matrix (Ctm) about x−→t is then calculated with α and a final rotation
matrix is generated by: Cti = CtmCmi.
5. The final quaternion (qt) is generated through deconstruction of Cti via (3.5)-(3.8).
η = ±1
2
√1 + C1,1 + C2,2 + C3,3 (3.5)
ε1 =1
4η(C2,3 − C3,2) (3.6)
ε2 =1
4η(C3,1 − C1,3) (3.7)
ε3 =1
4η(C1,2 − C2,1) (3.8)
Where the choice of sign of η is arbitrary.
6. Employing the current state estimate (generated through the spacecraft’s Extended
Kalman Filter - q) an error quaternion is then generated from (3.9).
qerror =
q4qt1 + q3qt2 − q2qt3 − q1qt4
−q3qt1 + q4qt2 + q1qt3 − q2qt4
q2qt1 − q1qt2 + q4qt3 − q3qt4
q1qt1 + q2qt2 + q3qt3 − q4qt4
(3.9)
This control heuristic would produce a target quaternion but was not robust. Oc-
casional pointing failures, termed singularities, were encountered over the course of an
orbit (Figure 3.2). Two probable causes regarding the origin of the singularities were
Chapter 3. CanX-4&5 Control Laws 46
considered and rejected: that the controller was unstable for large slews, and that the
singularities were a result of nadir or zenith pointing commands. The first cause was
rejected after an examination of the target vector inputs showed that singularities were
as likely to occur for large slews (in excess of the typical ≈ 14 - the average shift in
pointing proscribed by FIONA) as with small, indicating that the controller did not in
fact leave the linear region. Similarly, as Figure 3.2 shows, the singularities were as likely
to occur with small optimal zenith/GPS angles as with large ones. During the course of
these investigations it was found that in the time steps leading up to a singularity event
one or more of the quaternions would near either approach 0 or the ±1 boundary.
Figure 3.2: Zenith angle pointing in a ATO formation with intermittent pointing failures
The ramifications of approaching 0 were immediately obvious in the case of limη→0,
where the resulting quaternion, as calculated by the originally implemented Grubin
method [18] of quaternion extraction from a rotation matrix (Step 5 of the heuristic),
would be subject to divide by zero errors. A small change in the elements of Cti could
lead to a rapid sign shift in one of the elements of ε in the event that two of the elements
of Cti (e.g. C2,3 and C3,2 were similar to each other in magnitude. This behaviour, cou-
pled with the continual recalculation of the α over the course of the 65s, it is possible to
see oscillation in the calculated target quaternion. The angle α was continually recalcu-
lated due to the shift in the value of r−→, which was small but still present. Though the
shifts in values of the target quaternion are generally quite small, two changes prove to
be quite problematic. The first and most easily dealt with is divide by zero errors. These
can be dealt with either by a modified quaternion extraction method (e.g the Shepperd
method [27]) or through stringent error checking. The second and most problematic shift
in value involves rapid fluctuations in quaternion sign. While not problematic in and of
itself, when calculating the error quaternion, small changes in sign of the components
can lead to large changes in the error quaternion that is fed to the controller as shown
Chapter 3. CanX-4&5 Control Laws 47
in Figure 3.3. The rapid change in error quaternion in turn leads to excitation of the
controller due to a rapid target pointing shift.
Figure 3.3: Rapid error quaternion shift during the middle of singularity
3.3 Modified Control Laws
To address the issues with the original control laws outlined in Section 3.2, modifications
were attempted. Namely, the Grubin method of quaternion extraction was replaced with
the method proposed by Shepperd [27], and an error checking condition was instituted for
the case where limη→0. These modifications, while reducing the number of singularities,
failed to eliminate them. Consequently, a new heuristic for target quaternion formation
was attempted. While the principles of rotation remained the same, the method of
quaternion formation simplified. The altered algorithm was as follows:
1. The Euler axis a−→ and the Euler angle φ are calculated between x−→i and the desired
thrust vector T−→ such that:
a−→ = x−→i × T−→ (3.10)
φ = arccos( x−→i · T−→) (3.11)
2. An intermediate quaternion (qmi) expressed in the inertial frame is then generated
from a (expressed in the inertial frame) and φ.
3. A rotation matrix is then generated to express vectors described in the inertial
frame to an intermediary body frame by decomposing qmi via (3.12).
Cmi = (η2 − εT ε)1 + 2εεT − 2ηε× (3.12)
Chapter 3. CanX-4&5 Control Laws 48
4. The rotation angle (α) about x−→t that would minimize the inner product between
z−→t and r−→ is then calculated by expressing everything in the intermediary frame.
5. A quaternion (qtm) is calculated directly from the rotation about the vector x−→m
using (3.13). [q1 q2 q3 q4
]T=[
sin(
α2
)0 0 cos
(α2
) ]T(3.13)
6. The final quaternion target quaternion is then calculated using (3.14) as suggested
by Wertz [33].
qt =
q4 q3 −q2 q1
−q3 q4 q1 q2
q2 −q1 q4 q3
−q1 −q2 −q3 q4
qmi (3.14)
These modifications to the control law dealt with approximately half of the singu-
larities encountered, however, there were still occasions in which the target quaternion
would unexpectedly and rapidly change signs. As a further precaution against rapid sign
change and its undesirable effects, a check was performed on the sign of qt. If the signs
of two or more elements of the currently generated target quaternion differed from the
previous target quaternion’s signs, the quaternion was simply negated using the prop-
erty that the negative of a quaternion produces the same rotation as its positive. This
addition to the control laws seems to eliminate all remaining problems. Figure 3.4 shows
the singularity-free operation of the control laws.
Figure 3.4: Singularity free operation of the control laws.
Chapter 4
Controller Design
4.1 Plant Model
The plant model used to design the controller for both BRITE and CanX-4&5 is a simple
extension of rigid body dynamics as set out in [16] and [5]. The angular velocity of the
satellite (ω) is modelled by Euler’s equation of a rigid body motion modified for three
reaction wheels (denoted by ()s) expressed in the body frame, and is given by (4.1).
Torques are denoted by G, angular momentum by h, reaction wheel bias speed by ωbias
and the moment of inertia by I. Expanding the terms and recognizing that the rate of
change of momentum of the wheel acts as a control torque yields (4.3).
htotal + ω×htotal = Gexternal (4.1)
h + ω× (Iω + hs) = Gexternal + Gu (4.2)
Iω + ω×Iω + ω×Isωbias = Gexternal + Gu (4.3)
The angular orientation of the spacecraft is modelled through integration of the
quaternion rates which are given by (4.4), where q = [ε η]T [5].
q =1
2
[η1 + ε×
−εT
]ω =
1
2Q(q)ω (4.4)
Combining (4.3) and (4.4) and rearranging yields (4.5), which is of the form x =
Ax + Bu. Where the state vector is given by x =[ωT qT
]T, the system matrix (A) is
given by the first term and the input matrix (B) is given by the second term.
49
Chapter 4. Controller Design 50
ω
q
=
[ (−I−1ω×I + I−1 (Isωbias)
×) 03×4
12Q(q) 04×4
]ω
q
+
[I−1
04×3
]Gu (4.5)
4.1.1 Design Plant
Regrettably, (4.5) does not form a linear system due to the state-dependent terms in
the system matrix. Consequently, the plant model used to design any linear controller
must be linearized about the point of operation (x). The generally accepted method of
linearizing a vector equation to a linear system matrix is given by (4.7) and (4.8) [5],
where f is the vector equation of the time derivative of the state vector, in this case
given by (4.6).
x = f(x, u) (4.6)
A(x) =∂f
∂xT|x=x (4.7)
B(x) =∂f
∂uT|x=x (4.8)
In the case of both BRITE and CanX-4&5, the satellites do not need to rotate at
a constant speed (as would be the case in a nadir pointing satellite), nor is it desirable
for the body frame to differ from the target quaternion. Consequently, the point of
linearization becomes x =[
0 0 0 0 0 0 1]T
which, when substituted into (4.7),
yields the result given by (4.9).
A =
I−1h×s 03×4
1213×3 03×4
01×3 01×4
(4.9)
Since there are only 3 linearly independent elements of a quaternion (due to the
condition that the magnitude of a quaternion is always 1), it useful and safe to drop the
last row and column of (4.9) provided the full quaternion is calculated for control. This
reduces the order of the system matrix to satisfy the controllability condition that the
rank of[
B AB . . . An−1B]
must equal n for a system of n linearly independent
state variables [12]. As an added benefit, should an integrated state be required for the
Chapter 4. Controller Design 51
controller, the integration of the target state will not require the continual integration of
1 (i.e. avoids∫
η dt →∞).
While the continuous time system matrix is useful for understanding of system dy-
namics, it is only marginally useful for the discrete time implementation of the controller
that will be required for the OBC. To this end, either the system dynamics or the con-
troller must be discretized during design. Since there can be problems with discretization
of a linear controller [22], it was decided to discretize the plant prior to design of the
controller. This discretization is accomplished by (4.10) and (4.11), where Φ and Γ form
the discrete time complements to A and B respectively. With a discrete-time plant it is
possible to directly design the satellite’s controller entirely within the discrete domain.
Φ =
∫ to+tsample
to
eAtdt (4.10)
Γ =
∫ to+tsample
to
eAtB(t)dt (4.11)
4.2 Discrete Controller
Due to the effects of stiction on the reaction wheel, it is necessary and desirable to
operate the reaction wheels with some bias speed. This speed can be either positive or
negative, but its absolute value must, on balance, be numerically larger than 10rad/s as
the reaction wheels have poor control below this speed. While this is the eventual goal,
to simplify the initial control problem, a zero momentum bias reaction wheel controller
was designed first.
4.2.1 Zero momentum bias reaction wheel controller
Initially, the controller planned for both BRITE and CanX-4&5 was to be a simple de-
coupled controller such that the control signal (Gu) would be given by (4.12) [10], [9].
In the case of BRITE this was a full PID controller and in the case of CanX-4&5 it
was a PD controller. A controller was designed for each case and worked properly at
the time of the preliminary design review. When a more complete system model was
implemented, including a full reaction wheel model, both controllers quickly moved the
system to instability. In addition, during the critical design review and afterwards, it
was commented that effort should be made to operate the reaction wheels, the primary
Chapter 4. Controller Design 52
means of attitude actuation, away from the zero bias region. Since, the method of control
given by (4.12) has no means to include the off-axis terms that would be present due to
the inertia product terms in (4.1), the controller is essentially decoupled. Thus, while
the simplicity of the decoupled continuous time controller was appealing, it precluded
consideration of off-axis effects and devolved towards instability. Consequently, it was
decided to consider a full state-space design. It was hoped that it would be possible to
design a linear controller that would remain valid for entire expected region of operation.
Gu = Kdω + Kpεerror + Ki
∫εerror (4.12)
Although the final plant will have six poles (one per state), to further simplify the
initial design problem, a single axis spinning body was examined to determine where to
place the poles, as a single axis with a PD control can be approximated as a second order
system. Second order systems have well-known relations relating the placement of poles
to things such as 2% settling time (Ts) and percent overshoot (OS) given by (4.13) and
(4.14) [22].
Ts ≈4
ζωn
(4.13)
OS = 100e− ζπ√
1−ζ2 (4.14)
For both BRITE and CanX-4&5, the requirements can be translated into a settling
time performance specification, however, no stipulation was given on the allowable over-
shoot. If a reasonable value for overshoot is chosen (e.g. no more than 5%), then a
desirable range for a continuous time plant’s poles can be found. In order to provide use-
ful design variables these poles, once found, must be translated into the discrete domain
for implementation on the OBC. Translation into the discrete domain (z-plane) can be
accomplished by application of the bilinear transform (4.15). Thus, for the desired con-
tinuous poles and a sample time (T ) the desired z-domain equivalent poles can be found.
Design of the controller can then be performed entirely within the z-domain, avoiding
the issues associated with controller emulation methods [22].
s =2
T· z − 1
z + 1(4.15)
To take an example of a desired settling time and overshoot, 60s and 5% respectively,
which are approximately the useful values for both BRITE and CanX-4&5, a ζ and ωn
Chapter 4. Controller Design 53
Figure 4.1: A single axis plant with a continuous PD controller
can be generated. In this instance, ζ = 0.9312 and ωn = 0.0716 with the poles of the
corresponding system given by s = 0.0667±0.0261j. These poles can then be discretized
with a 1s sampling time via the bilinear transform to yield z = 0.9352±0.0218j. Therefore
for a second order system of the form found in Figure 4.1 were discretized, the desired
poles should lie at the above location in the z-domain. Since a spacecraft is in large part
three single axis plants attached together if Euler’s equation is linearized about a zero
velocity, it follows that the poles of the entire closed loop system should all lie within a
region near that found for the single axis case.
While (4.13)-(4.15) provide a useful means of determining the placement of two of
the poles, essentially dealing with one of the spacecraft’s axes, it fails to determine where
to place the remaining four poles. To determine the remaining pole locations, there are
several options:
1. Disregard the poles and attempt to apply an optimal controller (e.g. LQR) and
achieve the time domain specifications via simulation.
2. Employ a Butterworth pole configuration with two of the poles located in the region
associated with the performance specifications.
3. Attempt to decouple the design of each axis from the other and apply the same
performance specifications to each axis.
LQR
In solving the optimal control problem: choosing Q and R such that the cost function J
is a minimum for the equation given by (4.16), it is hoped that the poles found through
Chapter 4. Controller Design 54
this method will produce a performance exceeding that specified by the performance
specifications. Since the performance specifications can only be checked through simula-
tion after the design of the optimal controller, the problem of variable choice is to ensure
that the values of Q and R are chosen intelligently. The value of the gain matrix K can
then be calculated through the methods given in [12], however, in practice this operation
is performed in Matlab using the lqrd command.
J =
∫ ∞
0
xT Qx + uT Ru dt (4.16)
As noted in [12], Q in (4.16) is a measure of the relative weight given to each state
variable, while R is a measure of how much each actuator should be depended upon. For
the actuators, the value of R is trivial to determine as all three actuators should exert
the same control effort, consequently, R = 13×3. Though this differs from the values
suggested by Bryson’s rule [12], which recommends diagonal terms be equal to one over
their maximum allowable value, it should be remembered that the maximum allowable
value is the same in every axis and that R is relative. In determining Q only the portions
of x pertaining to orientation (ε) are truly of interest. Consequently, the diagonal terms
of Q pertaining to ε should be weighted higher than those pertaining to ω. Since terms
along the diagonal of Q should be non-zero for numerical stability, the diagonal terms
related to ω were chosen to be 10% of those chosen for ε. An additional tweak to prevent
repeated poles in the case of similar moments of inertia was performed by adjusting each
element along the diagonal of Q by 1%.
As Figure 4.2 shows, the poles for the designed LQR controller are significantly more
aggressive, but stable, than the pole locations for the second-order system approximation
would imply, suggesting that an LQR controller should handily achieve the performance
specifications. Unfortunately, when applied in simulation to the non-linear plant, the
controller generated through optimal control methods is less than perfect, with the con-
troller going unstable for large slews. The reason for an apparently stable controller going
unstable becomes apparent when the system is re-linearized during a large slew (slew ¿
than typical FIONA command of 14). Figure 4.3(a) shows an apparently stable large
slew using an LQR controller and the corresponding poles for the system at its maximum
angular velocity (Figure 4.3(b)). As is evident, the poles of the system mid-slew have
drifted significantly from the original pole locations. While this single incident of pole
drift is not sufficient to bring the controller into a region of instability, subsequent slews
Chapter 4. Controller Design 55
compound the error (as seen in Figure 4.4). Though this is unlikely to be a problem
for BRITE due to the low frequency of target quaternion change, it was decided that a
controller that was shown to be unstable in any instance would be a poor choice.
Figure 4.2: LQR poles. Note: Poles are extremely close but not equal in RH side of
z-plane
Chapter 4. Controller Design 56
(a) Large slew angular velocities (b) Poles at maximum angular velocities
Figure 4.3: Performance of an LQR controller
Figure 4.4: Target acquistion with an LQR controller
Chapter 4. Controller Design 57
The aggressive nature (increased control effort) of the LQR poles and the correspond-
ing issues associated with its use lead to an interesting possibility with regards to the
limit of the performance of the system. It was seen that as the poles moved farther
from the unit disk, which should increase stability the system in fact became less stable.
Essentially, their is a boundary on the ability of increased control effort from a linear
controller to improve system performance, however, due to the non-linear nature of the
plant, the exact locations of this boundary cannot be found without simulation. As the
plant moves towards the aggressive poles, instability creeps in for high slews (Figure 4.4)
and gradually the system becomes unstable for all control inputs. Figure 4.5 illustrates
the concept of a ‘soft’ boundary to pole placement, shown are the optimal poles and the
poles of a single axis system (far closer to the unit disk). Even though the LQR poles
are farther from the unit disk, the poles of a single axis system are far more stable as
seen below for a pole placement design.
Figure 4.5: Region of unacceptable poles
Butterworth Pole Placement
Butterworth pole placement is another well-regarded technique for locating system poles.
It is similar to an optimal controller in that the poles will be placed in same configuration
[12], however, it differs from an optimal controller in that a Butterworth configuration
is chosen to have poles located in specific regions of the open unit disk. As an initial
design choice, two of the poles were chosen to be placed at spots that would yield a 50s
Chapter 4. Controller Design 58
settling time and 5% overshoot; and, in the case of BRITE, a 120s settling time and a
5% overshoot. The remaining four poles were then placed by applying the Butterworth
polynomials to optimally separate the poles. The initial two poles were placed by finding
ζ and ωn, as with the single axis case. A variable p (for polynomial) was then created with
value λ/ωn and inserted into the Butterworth polynomials given by (4.17) and (4.18).
The values of λ then became the appropriately scaled poles for inclusion in the gain
matrix K.
Bn(p) = Πn/2k=1
[p2 − 2p cos
(2k + n− 1
2nπ
)+ 1
]for n even (4.17)
Bn(p) = (p + 1)Π(n−1)/2k=1
[p2 − 2p cos
(2k + n− 1
2nπ
)+ 1
]for n odd (4.18)
With poles in hand, calculation of the gain matrix can be achieved analytically
through employment of the Ackermann formula [12] to place the system poles at the
Butterworth locations. In actual practice, however, calculation through the Ackermann
formula is computationally difficult and prone to small numerical errors [21]. Conse-
quently, the place command in Matlab was used in lieu of the Ackermann formula.
place uses an algorithm that can be found in [17].
As Figure 4.6 shows, the performance of the spacecraft employing Butterworth poles
is not equal in all axes. In situations where the ‘bad’ axis (in this case the body’s Z axis)
is the primary axis of rotation, performance such as that seen at time t = 1525s is seen.
While this would be adequate were the poles capable of providing ‘good’ performance
in all axes, due to the same constraints present for an LQR controller, a Butterworth
controller cannot have ‘aggressive’ poles. Consequently, though a Butterworth controller
has an optimized pole spacing to avoid the problems of repeated poles, it fails to provide
adequate performance and cannot be used.
Pole Placement with Time Domain Specifications
Given the failure of both the LQR and the Butterworth methods to design a linear
controller valid over the entire operating range of the spacecraft, pole placement was
tried. Pole placement with time domain specifications is perhaps the most intuitive
method of controller development, as the controller gains map directly to performance
specifications. Initial design focused on de-coupling each of the axes and designing each
axis to achieve the three-axis pointing goals.
Chapter 4. Controller Design 59
Figure 4.6: System performance with Butterworth poles
A state space rendering of the system represented by Figure 4.1 is given by (4.19),
where the variable φ is given as φ = θ/2 in order to mirror the effect of (4.4) for small
angles. The poles of the closed loop system for a single axis are given by the eigenvalues
of (Aminor −BminorKminor). Since there are two free parameters (Kp and Kd) that must
be matched to the desired specifications (ζ and ωn), the poles can be placed through
pole placement methods such as Matlab’s place command. By this method, one Kp
and one Kd can be found per axis. To avoid the placement of all three poles in the
same location and the problems associated with repeated poles [12] slight modifications
were made to the performance specifications (e.g. Ts varies by ≈ 5% for each axis). A
final gain matrix was then assembled from all the attendant Kp’s and Kd’s to form the
gain matrix given by (4.20). To ensure that the assembled gain matrix was stable, the
eigenvalues of A −BK of the full linearized system where then found and the system
tested for robustness (Figure 4.7), as with the LQR and Butterworth cases.
ω
φ
=
([0 0
0.5 0
]−
[1I
0
] [Kd Kp
]) ω
φ
≡ (Aminor −BminorKminor)xminor
(4.19)
K =
Kdx 0 0 Kpx 0 0
0 Kdy 0 0 Kpy 0
0 0 Kdz 0 0 Kpz
(4.20)
Chapter 4. Controller Design 60
Figure 4.7: Performance of de-coupled poles
CanX-4&5 poles
Given that pole placement with time domain specifications performed the best of the
controller generation methods, the next step was to decide precisely where to place indi-
vidual poles. In the case of CanX-4&5 the requirements state:
AC.16 The ACS shall be able to slew the CNAPS thruster up to 90 degrees
within at most 50 seconds.
AC. 17 The ACS shall be able to provide 5 degrees RMS accuracy when
pointing the CNAPS thruster. [8]
Translating requirements AC.16 and AC.17 into standard controls terminology, the
2% settling time should be within 50s; these two requirements impose the only per-
formance constraint on the design. Consequently, a reasonable value for overshoot was
chosen (5%) and the poles were generated through the pole placement methods described
above and current estimates of spacecraft moment of inertia.
BRITE poles
The settling time performance requirements for BRITE are significantly less strenuous
than for CanX-4&5, with stability taking precedence over the speed of target pointing.
The two non-determination dependent requirements state:
AC. 12 The ACS shall be able to maintain a BRITE target star field lock for
at least 15 minutes of each orbital period.
AC. 13 The ACS shall be able to slew BRITEs telescope to target star field
and settle to the accuracy and stability limits defined in AC.10 and AC.11
Chapter 4. Controller Design 61
within a time defined by the remaining time left after the image duration and
length of the longest expected eclipse are subtracted from the mean orbital
period. [8]
If it is assumed that BRITE will be at approximately CanX-2’s altitude, then its orbital
period would be approximately 97 minutes and with eclipse periods that can be expected
to last as much as 35 minutes, leaving approximately 47 minutes to achieve AC. 12 and
AC. 13. While it is desirable to achieve a settling time for the controller to slew to target
somewhat better than 47 minutes, this value does not need to be as aggressive as that
for CanX-4&5. It was therefore decided to choose a settling time of about 120s, equating
to an average rate of roughly 1.5/s for a maximum slew. Percent overshoot is, similarly,
a somewhat arbitrary value: 5% overshoot was chosen to have some small amount of
overshoot to deal with the potential for droop that can occur with discretized sensing.
These poles can then be discretized as per the pole placement methods given above.
To ensure that BRITE can maintain an inertially fixed attitude in the presence of
a constant direction disturbance (e.g. solar torque) over a long time a small amount of
integral control was added to the BRITE controller. The addition of integral control
necessitated adding an additional three states to be considered by the controller which
form the integration of the first three error quaternion elements (denoted by p); the state
vector for this new plant is then given by x =[ωT εT pT
]T. The resulting linearized
continuous time plant matrix is given by (4.21), which can in turn be converted to a
discrete time plant as per (4.10) and (4.11). To ensure that the behaviour does not
deviate too far from what is expected, the integral terms are chosen such that their
addition results in poles near to the real part of the poles calculated for the PD controller.
A =
I−1h×s 03×3 03×3
1213×3 03×3 03×3
03×3 13×3 03×3
(4.21)
Actual implementation of a 9-element state vector and the associated 3x9 gain matrix
is somewhat problematic as the largest size supported by the vector and matrix functions
used on the OBC is a 7-element vector. While it would be trivial to extend matrix
programming to 9 element vectors, doing so would incur an increase in the memory
used by every vector and matrix declared within OASYS. Consequently, in the actual
implementation of the designed controller, (4.22) was used instead of a 3x9 matrix.
Chapter 4. Controller Design 62
u = KPD
ω
ε
+ KIp (4.22)
4.2.2 Biased reaction wheel controllers
With a pole placed controller proving the most effective for both BRITE and CanX-4&5
for the zero wheel momentum case, it was decided to extend this concept to biased mo-
mentum wheels. Employing the plant given by (4.9) with non-zero values for momentum
bias in the wheel, a controller was generated with the same poles as before. Hence the
controller was developed as follows: performance specifications were chosen on a per axis
basis; desired poles were found; the system was discretized; and poles were placed into
the modified plant using the place command rather than through assembly.
Figure 4.8 shows the behaviour of each of the controllers in their ability to track
a given target quaternion. As can be seen readily, the 100rads case is far worse than
the 25rads case, an examination of wheel speeds during the slew quickly reveals why.
Figure 4.9 shows the behaviour of the wheels during a slew for the 100rads bias case
superimposed with the wheel speeds for the 25rads bias case. The increased gyric stiffness
off the 100rads bias case over the 25rad
s results in far higher control torques, which in
turn result in larger changes in bias speed. This creates a vicious cycle effect where, the
more biased the spacecraft the poorer the control due to an increasing drift out of the
linearized region. This effect can also be seen in an analysis of the magnitude of the first
row of each gain matrix, essentially a measure of the magnitude of the gain applied to
one axis. In the case of a 100rads bias, the norm of the first row of the gain matrix is
0.00857 vs. 0.006248 for the 0rads bias case, roughly 1.4 times the magnitude. Thus, like
the gains of the LQR controller, the gains of the 100rads bias wheel controller are much
higher than the nominal zero bias case, indicating a need to overcome larger resistance
to achieve the same effect. Consequently, the problems encountered by a biased reaction
wheel controller are the same for large biases as those of the LQR controller.
With the performance of the off-zero bias controller so poor and the wheel velocities
varying so widely, it was decided to attempt to use the zero-bias reaction wheel controller
on an off-zero biased system. The was done in preference to attempting gain scheduling,
and the problems it entails, as the zero-bias controller had proved adept at a wide range
of wheel speeds. Figure 4.10 shows the controller’s target acquisition behaviour for bias
speeds of 25, 50, and 100rads . The performance in each instance is markedly better than
Chapter 4. Controller Design 63
Figure 4.8: Biased reaction wheel controller comparison
Figure 4.9: -100rads and -25rad
s biased controller wheel speeds.
Chapter 4. Controller Design 64
the performance given by the biased controllers, though it degrades with increased bias.
The final implemented controller will therefore be a trade-off between stiction avoidance
and rapid target error minimization. For BRITE, a higher bias is acceptable since the
controller can take a great deal of time to reach its final target, while CanX-4&5 will
require a lower bias to meet its targets quickly. As Section 5.1.1 indicates, current wheel
modelling, including stiction, is sufficiently accurate enough to show the effects of stiction
on target error. Consequently, a target bias of 25rads is adequate for CanX-4&5 as it
spends very little time in the 0rads regime, whereas BRITE may require a somewhat
higher bias speed (30 to 50rads range) depending on the projected target quaternions
that will be input into the system.
Figure 4.10: Zero bias controller applied to non-zero biased wheels
Chapter 5
Modelling and Simulation
5.1 Modelling
Mirage, the attitude simulator used for CanX missions, is designed in Simulink, the
graphical simulation programming tool that is part of the Matlab suite of programs.
All plant dynamics are modelled as a series of linked matrix operations and Laplace
transforms. The resulting physical characteristics (e.g. rotation rates and orientation)
are then sent as signals to models of the real sensors, which in turn generate simulated
telemetry. The simulated telemetry is then passed to a binding that executes the actual
ACS control code, written in C, that will be employed on the satellite. The resulting
control outputs generated by the control code are then passed to simulations of the
actuators which are in turn fed back as torques to the plant dynamics. While many
sensor and actuator models existed from previous CanX missions, components new to
GNB missions, such as the rate sensors and new reaction wheels, had to be modelled.
The principles used in modelling any sensor or actuator are the same as those sug-
gested by Neelamkavil [24]. In his book he gives five steps required to ensure the validity
of a computer model, namely:
1. Validation of concepts - the physical principles employed in creating the model
must be valid. e.g. A thermal model that does not include convection in space is
valid due to the near absence of gas, but the same does not hold true on Earth.
2. Validation of methodology - the methodology used in modelling is considered a
valid means of testing. e.g. Employing a step response to measure a system’s
parameters.
65
Chapter 5. Modelling and Simulation 66
3. Validation of data - any input data to the simulation must be valid. e.g. A simple
orbital propagator (gravity due to a point-mass) can be considered invalid over a
long period of time when its results are fed to a sun sensor model.
4. Validation of results - a simple check if the output of the simulation is as expected
for simple test cases.
5. Validation of inference - any inferences drawn from the model must also consider
the limitations of the simulation.
5.1.1 Reaction Wheels
The physical Sinclair Interplanetary reaction wheel is shown schematically in Figure 5.1;
a 6-phase stepper motor is driven by a power controller, which is turn driven by a control
loop. Depending on the wheel’s operating mode, the control loop can act as either a
speed controller or a torque controller. In either case, Hall effect sensors sense movement
of the wheel and convert this into an estimate of the wheel’s speed which is then fed to
the control loop. The control loop operates at a speed of 93Hz and the power controller
operates several orders of magnitude faster.
Figure 5.1: Schematic of actual reaction wheel
Optimally, it would be desirable to model the behaviour of the wheel in the detail
described above, but previous experience suggests that this would impose a large simu-
lator performance penalty. Currently, Mirage employs Matlab’s ode45 solver to compute
its results. The ode45 solver is a variable-step solver based on the Runge-Kutta formu-
lation [21] and will, in consequence, alter its behaviour based on the second derivatives
of the signals observed. Since OASYS operates at 1Hz, the solver is constrained to
re-calculate at least once per second, even in periods of quiescence for the spacecraft’s
plant. The reaction wheel originally intended for use on GNB missions had a control
Chapter 5. Modelling and Simulation 67
loop operating at 20Hz and was modelled with a high fidelity. When the original reac-
tion wheel model was applied to Mirage, simulations slowed from 120s for a 6000s period
to near real-time speeds indicating that the simulation had moved from re-calculation
once per second to a forced twenty times per second. Consequently, it was decided that,
even though the Sinclair wheel could be modelled to a high fidelity, in the interests of
simulator performance only its key characteristics should be modelled.
Mechanical Characteristics
The mechanical characteristics of the wheel were the most straight-forward to model as
the foundation had been laid in assessing the wheel’s performance metrics. Employing
results from Section 2.4.1, the damping coefficient (B) could be obtained readily and
used to simulate all but low speed friction effects. The reaction wheel’s moment of
inertia (Is) is similarly well known; the rotor is a simple geometrical shape made of
simple materials (uniform iron and plastics with known densities), and therefore the
moment of inertia estimate provided by a CAD application will be of a high fidelity
(≈ 5.16 × 10−5kg ·m2). Thus, (2.30) could be reformulated with the Laplace transform
into the Simulink compatible format given by (5.1)
ω(s)
Garmature(s)=
1/Is
s + B/Is
(5.1)
Electrical and Software Characteristics
Modelling of the electrical and software characteristics of the wheel was more difficult
than modelling of the mechanical side, as the goal was to replace the complexity of the
true system with a more computationally efficient model. It was therefore important
to decide which behaviour was to be kept and what was to be disregarded based on
known characteristics of the reaction wheel’s electronics and software systems. The power
controller operates with a 7kHz bandwidth [30], while the windings are likely to have
resistance and inductance on the order of 10Ω and 5 × 10−5H as inferred from wheel
geometry and engineering approximation. The control loop used to command speed
and torque is a discrete time implementation (93Hz) of a proportional, integral, double
integral, and derivative controller (5.2) [30] with zeroed proportional and derivative gains.
Based on simple motor models found in [12], inductance (L) and resistance (R) terms will
add poles of the form of the transfer function (Tf ) given in (5.3), where C is a constant.
Chapter 5. Modelling and Simulation 68
When compared to the poles of (5.1) the poles will be on the order of 1× 107 larger and
thus have induce a negligible phase lag. Consequently, (5.3) will be replaced with a gain
K that is comprised of (5.3)’s DC components. Similarly, the 7kHz bandwidth of the
power controller is far in excess of the bandwidth of the wheel’s mechanical characteristics
and thus like the motor’s windings the power controller can be replaced with a constant
with little loss in fidelity. Consequently, the electrical/software contribution to the system
becomes the multiplication of (5.2) by a constant.
C(s) = Kp +KI
s+
KII
s2+ Kd · s (5.2)
Tf (s) =C
s + R/L(5.3)
When mechanical and electrical characteristics are considered together, the closed
loop system becomes as shown in Figure 5.2. The power controller/electronics combina-
tion has been replaced with a simple gain, the discrete time controller has been replaced
with its continuous time counterpart, and the mechanical characteristics of the system
have been preserved. As this system is second order, it is possible to identify directly it’s
parameters based on overshoot and settling time.
Figure 5.2: Mathematical wheel model
Figure 5.3 shows the response to a step command for the reaction wheel in torque
mode with the initial controller parameters. The percentage overshoot and settling time
evident in Figure 5.3 can be readily related to the damping ratio and the system’s natural
frequency via (4.13) and (4.14). These parameters were then related to the system’s
unknown parameters via the closed loop transfer function of the block diagram given in
Figure 5.2.
Chapter 5. Modelling and Simulation 69
Figure 5.3: Test data from a step response to an applied torque with the original controller
The model generated from step response experiments was applied to Mirage to see
its effect on OASYS. Unsurprisingly, an approximately 40s settling time for an actuator
has detrimental effects (pushing the spacecraft to instability) on a main controller geared
to ensure its targets are met within a 50s time span. This left two possibilities: model
the wheel’s phase lag in the spacecraft’s plant and Kalman filter, or re-tune the wheel’s
controller. Since it was desirable to avoid a redesign of the Kalman filter at all costs, it
was decided to attempt to re-tune the wheel’s controller.
It was during re-tuning of the wheel that a major limitation of the model was found:
the fitted parameters Km (the mechanical constant) and Ke (the electrical constant)
found through the step response would change depending on the values of the controller
constants (KI and KII) rendering the model as a torque controller design tool useless.
The reasons for this failure of the model became apparent once the simplifications men-
tioned above were considered more carefully. Since the actual torque controller was
implemented in discrete time via an unknown emulation method, implementation of the
modelled torque controller equation (5.2) in continuous time was imprecise. Thus, the
parameters (Km and Ke) fitted with the step response would not necessarily remain con-
stant for different torque controller gains. Instead, gains were tuned through trial and
error to obtain the performance shown in Figure 5.4, which was the best performance
that could be found that did not saturate the wheel’s power controller. The model’s me-
chanical and electrical parameters were then re-fitted with the new controller and applied
to the Mirage simulation. Spacecraft performance including the updated wheel model is
shown in Section 5.2.
Chapter 5. Modelling and Simulation 70
Figure 5.4: Step response to an applied torque with the modified controller. Settling
time, overshoot, and control mode transition are greatly improved.
Stiction
To this point, modelling has focused on the behaviour of the reaction wheel when it is
biased away from a zero speed, but, as indicated in Section 4.2.2, a reaction wheel with
significant momentum bias has difficulty achieving the desired performance specifications
for CanX-4&5 due to gyric stiffness. Thought must therefore be given to the behaviour
of the reaction wheel about a zero speed. Near zero speed, three elements of friction
come into play: the viscous damping coefficient, detailed in Section 2.4.1; static friction,
which occurs exactly at zero speed; and Coulomb friction, which occurs for all other
speeds [19]. Viscous damping, although non-linear in reality, was already well modelled
via the relations developed in Section 5.1.1. Therefore modelling of sticking friction
(stiction) near the zero speed point focused on producing reasonable models for static
friction and Coulomb friction. Although Simulink provides several ready-made blocks for
modelling non-linear effects (Figure 5.5, courtesy of The Mathworks [21]), implementing
them directly created several problems.
(a) Dead-zone (b) Coulomb and
viscous friction
(c) Saturation
Figure 5.5: Non-linear effects blocks
The most natural place to put any friction effects is immediately following the me-
Chapter 5. Modelling and Simulation 71
chanical block shown in Figure 5.2, as it is this block that encapsulates how a torque on
the rotor translates into rotor speed. Since friction, in effect, detracts from how addi-
tional torque generates additional speed, placing frictional effects after the output of the
mechanical block models this the best. Unfortunately, as the corresponding torque gen-
erated on the spacecraft is what is truly of interest, the output of the mechanical/friction
blocks are immediately followed by a derivative. Simulink relies on variable step numer-
ical derivatives and integrals to calculate the simulation states [21]. Variable step solvers
will adjust their step size to a smaller value in the presence of a sudden change (e.g. the
effect of the Coulomb friction block), and the derivative of a sudden change from a value
to 0 is ∞. Consequently, the solver will attempt to use smaller and smaller step sizes
to capture ∞, never reaching the program loop’s exit condition without an error. To
avoid this error, a hybrid system was employed to reproduce the stiction telemetry seen
in a short form function test (Figure 5.6(a)), without attempting to capture the system’s
true physics. In the friction model (Figure 5.6(b)) a switch block evaluates if the speed
is below a certain threshold (10rads ). If the speed exceeds the threshold the signal is
passed through unaltered. Below the stiction threshold, another switch block is used to
either pass the signal through unaltered or zero the speed. This ‘zero-ing’ is controlled
by a square wave pulse to emulate the on-off behaviour seen Figure 5.6(a).
Model Verification
In validating the reaction wheel model, the most difficult portion of the validation is the
validation of methodology. The physical concepts underpinning the wheel model can be
considered valid as they are all well studied physical systems (stepper motors, controllers,
friction, etc.). It was in implementing the valid concepts that major simplifications were
made to the behaviour of the known reaction wheel in order to satisfy the computational
constraints for the mission simulator. In performing these simplifications it was necessary
to question whether or not the goals of the simulation were maintained: namely, does the
attitude simulator produce a reasonable facsimile of true attitude behaviour for testing
the OASYS control code? When the simplifications made to the behaviour of the wheel
are looked at it in this light, the elimination of states pertinent only to the internal
working of the wheel are unimportant, as they are not of interest to OASYS. Therefore
the methodology can be considered valid in so far as the model produced mimics the
behaviour of the reaction wheel’s input/output characteristics.
Chapter 5. Modelling and Simulation 72
(a) Wheel under speed control at low speeds
(b) Stiction model
Figure 5.6: Wheel under speed control at low speeds and the simulink model used to
capture this behaviour
Validation of the data and results consisted of more than simply comparing the results
of single event tests (e.g. applying a torque step input), instead the performance of the
reaction wheel was tested over a long period of time. To do this, a wheel torque command
profile was generated from simulation of the Can-X4&5 mission (which has the most
complicated attitude profile) and applied to the true reaction wheel. Complicating this
test is the fact that the profile generated relies on feedback from the very model that
is being verified due to the closed loop nature of the system. Since it is already known
that the input/output behaviour of the reaction wheel will not be entirely perfect, some
drift is expected between model and real reaction wheel, however, the degree of drift
expected is unknown. Figure 5.7(a) shows the speed curves of the model and true wheel
after being given the same torque commands at the same time. Immediately apparent
is the fact that their is clock drift between the simulated wheel and real wheel. Matlab
forces the simulated reaction wheel to receive its commands at exactly 1Hz intervals.
By contrast, the true reaction wheel’s processor relies on the charge/discharge cycle of
a capacitor to keep time, a method known to result in drift over time. Even when the
applied torque commands are scaled to account for the variation in clock speed over time
Chapter 5. Modelling and Simulation 73
(Figure 5.7(b)), there is still an eventual divergence. Fortunately, the bandwidth of the
spacecraft attitude controller has a cut-off of 0.25Hz, enabling the long-term differences
to be accounted for as noise in the plant.
(a) Simulated wheel and actual reaction wheel comparison of time-speed curves
(b) Simulated wheel and actual reaction wheel with scaled times
Figure 5.7: Simulated wheel to real reaction wheel speed data comparison
In validating the inferences that can be drawn from the reaction wheel model, stipula-
tions must be placed on any conclusions that can be drawn from the simulation. The first
limitation is that the wheel model cannot be used to simulate reaction wheel controller
gain changes - as stated above, the model is valid only for one set of control parameters
and no other. The second limitation is that the torque inputs to the plant can, due to
Chapter 5. Modelling and Simulation 74
the clock drift and stiction performance be seen as only representative not 1:1 over longer
time periods.
5.1.2 Rate Gyros
Modelling of the rate gyros was considerably less complicated that modelling of the
reaction wheels as the final model was simply a compilation of error sources, as depicted
in Figure 5.8. Considered in the model was the conversion from rad/s to /s, as the plant
model uses radians while the sensor measures in degrees; the gain scaling seen in initial
testing; quantization of the result; bias induced from power cycling; saturation; and the
baseline system noise plus bias. As was seen in Figure 2.23, the rate gain while not 1:1,
is still very linear, therefore scaling was modelled simply as a gain. It was known from
preliminary testing of the sensor that there was both an on-off bias introduced by the
sensor and an in-run bias due to temperature effects. At the present, Mirage does not
employ an estimate of unit temperature over the course of an orbit, therefore the in-run
bias was kept at a constant value and incorporated as a parameter in the system noise
block. On-off bias was more difficult to model: initial testing saw a marked difference
between power cycles in the rate sensor’s zero rate bias, however, in ideal conditions
the sensor would never be power-cycled frequently during the mission. Since the true
frequency of power cycling on the rate sensor was unknown, on-off bias was modelled
with the actual statistical variance in the noise block and an extremely long sample time
(3000s). With a long sample time on the on-off noise block, Mirage would see, over the
course of one orbit, one change providing some indication of the effect of on-off stability
on the EKF. Modelling of the rate sensor’s analog-to-digital converters was accomplished
simply with the quantization block. Rate sensor saturation was based on the rate sensor’s
range (±20/s). System noise was modelled after the worst case results seen in Figure
2.22 when the Bartlett filter was applied.
Validation of the rate gyro model follows the same process as given in section 5.1.0.
Since the rate sensor model does not model the behaviour of the vibrating proof-mass
and instead provides a direct pass-through of the signal, the validity of the concepts
can be questioned. It can be shown, however, that the amplitude of the rate signal is
directly proportional to the true rate and that the corresponding phase lag is miniscule
in comparison with the system’s sample time [34]. This leaves the question of whether
quadrature error (error induced by off-axis effects) should have been considered, though,
Chapter 5. Modelling and Simulation 75
Figure 5.8: Model of rate sensor behaviour implemented in Simulink
as seen in Figure 5.9, there is no discernible effect.
Validation of the methodology: taking known noises and applying them as noise blocks
is a well accepted modelling concept for noise sources in spite of the absence of truly white
noise sources [29]. The input data to the model is simply the rate, provided that it is
within the sensor’s sensing bounds there should be no issue. To validate the results,
modelled output was compared against true sensor output and the noise characteristics
of the two results were compared. Figure 5.10 shows a comparison of the modelled
and scaled measured rate over a 60s period. The modelled and measured data have a
good accordance with variation between the two due to the changing bias term. The
model is slightly conservative owing to the larger standard deviation. Lastly, given the
high accordance of model to measured data, there should be a virtually no limit on the
inferences that can be drawn from the sensor’s behaviour. Extremely, rapid transients
may create a problem, but given that the time constant of the sensor is in the range of
nanoseconds such a large slew would easily saturate the sensor in any case.
Chapter 5. Modelling and Simulation 76
Figure 5.9: True rates, measured rates, and true rates scaled and biased with known
sensor characteristics as a function of angle of tilt on a rate table.
Figure 5.10: Scaled measured and modelled rate over a 60s period
Chapter 5. Modelling and Simulation 77
5.2 Simulation
With a controller and accurate sensor models in place, accurate simulations of the BRITE
and CanX-4&5 ADCS missions were possible in Mirage. Consideration was then given
to what exactly should be simulated and under what conditions. Common to both
missions is the orbital environment: GNB satellites are designed for LEO, but exact
orbits are unknown until quite near the launch to reduce launch costs. In the interests of
simulating the satellites in a representative environment, CanX-2’s orbit was chosen for
all simulations of BRITE and CanX-4&5. Beyond their common orbital environment,
the two missions have little in common in terms of operating conditions or purpose and
will therefore be treated separately.
5.2.1 BRITE
Requirements AC. 12 and AC. 13 [8] listed in section 4.2.1 give further information on
the conditions under which BRITE will operate. Specifically, BRITE will be expected to
hold its telescope steadily fixed at a target for 15 minute intervals, and over the course
of an orbit slew to another target. Therefore, from an ACS perspective, simulation of
BRITE’s determination ability should focus on low to zero angular velocity situations
with sparse (once every 15min.) changes of the target quaternion.
Determination simulations
Determination simulations were performed primarily to tune BRITE’s Extended Kalman
Filter (EKF) in the absence of control inputs in accordance with the separation principle
[12]. For BRITE, during target acquisition, the spacecraft had to be able to determine
it’s position within 60 arc-seconds (0.0167) RMS accuracy [8]. Fortunately, the star
tracker present on the spacecraft is accurate to within 70 arc-seconds [26] in all three
-axes, leaving only 10 arc-seconds for the EKF to improve upon. Shown in Figure 5.11 is
the RMS determination error of the Euler angles during a 1000s period of quiescence prior
to active operations. Though a distinct trend can be seen in the satellite’s determination
ability, this trend can be explained by the presence of the magnetometer’s readings in
the EKF. Over the course of an orbit, the total magnetic field seen by the magnetometer
oscillates between about 20µT and 45µT as the spacecraft moves towards and away from
the poles. Since the resolution of the magnetometer is fixed, the ability to determine a
Chapter 5. Modelling and Simulation 78
change in angle due to the magnetic field varies over the course of an orbit. The trend
seen in Figure 5.11 exactly matches the waxing and waning of the magnetic field.
Figure 5.11: Determination during BRITE passive operations
Active operations do affect determination as the EKF is tuned towards low rates.
Consequently, during slews to new targets determination can be as poor as 0.07 RMS,
however, once the target is reached the EKF quickly settles to a higher determination
accuracy. Shown in Figure 5.12 is the determination accuracy during an observation
period of approximately 2000s; the mean error RMS just barely meets requirements
with a value 0.0160 accuracy. At the time of this writing, the star tracker intended
for use on BRITE has just arrived at SFL and an accurate model does not exist of the
star tracker’s behaviour (currently error is modelled as simple noise). Given the thin
margin of determination above the requirement, it recommended that a more accurate
star tracker model be constructed and the EKF be re-tuned about the new model. If the
star tracker is capable of meeting its datasheet specifications, there should be no issue in
meeting the requirements.
Target Pointing Simulations
The requirements for target pointing indicate that the satellite must be able to provide
0.5 accuracy RMS when pointing BRITE’s telescope with a stability of 1.5 arc-minutes
Chapter 5. Modelling and Simulation 79
Figure 5.12: Determination during BRITE active operations
(0.025) [8]. Achievement of these goals is dependent on two things: the quality of deter-
mination and the quality of control. As seen from the determinations results, knowledge
of attitude is only accurate to within 0.0160 RMS, leaving little room for controller
jitter. Shown in Figure 5.13 are BRITE’s quaternions over the course of an orbit with
a new target every 16 minutes (this is too frequent for BRITE and only for illustration
purposes). Though it appears that spacecraft is meeting the 0.5 goal, the exact error
and jitter of the spacecraft are unclear at this scale. Examining the target error more
closely (Figure 5.14), one sees an error of about 0.215, but with total error confined to
between 0.2 and 0.225; just barely meeting the stability requirement.
Figure 5.13: BRITE quaternion tracking
Chapter 5. Modelling and Simulation 80
Figure 5.14: Telescope pointing error
5.2.2 CanX-4&5
According to the requirements AC. 13 and AC. 14, CanX-4&5 can be expected to slew
by 90 within 50s to point its thrusters to within 5 accuracy RMS [8]. In addition to the
rapid slews, it is expected that these slews will be performed once every 65s [11] in order
to maintain formation flying. Consequently, unlike BRITE, the EKF should be tuned
for a more rapid angular velocity and the spacecraft should be simulated with frequent
shifts in target quaternions.
Determination Simulations
Before beginning a discussion of CanX-4&5’s determination, it is useful to first examine
the operation of the GNB Extended Kalman Filter. The EKF developed for the GNB
satellites is unconventional in its formulation in order to handle sensor drop-out periods
such as eclipses. The complete measurement vector (y) for the spacecraft when all sensors
are on consists of the three magnetic field vector measurements from the magnetometer
(bb), the three sun vector measurements (sb) from the sun sensor, and either the three
body rate measurements from the rate gyros (ωb) or four quaternion measurements from
the star tracker (qi). Of these measurements, only two of the three sun vector elements
are independent, and three of the four star tracker measurements are independent. All
measurements with the exception of the star tracker are expressed in the body frame
rather than the inertial frame. As CanX-4&5 has the rate sensors instead of the star
tracker, the measurement vector for CanX-4&5 is given by y =[bT
b sTb ωT
b
]T, where
it is understood that the measurement vector is derived from the state (x) by y =
h (x, t, rsat, ν), where rsat is the position vector of the satellite, and ν is the noise.
Chapter 5. Modelling and Simulation 81
In a typical EKF, the allowable innovation to the state estimate is given by xk|k =
xk|k−1 + Kkyk where the Kalman gain matrix for a given time step (Kk) is an n × m
matrix for an m element measurement vector that is a function of (5.4). In the GNB
formulation, instead of a single large update step from time k − 1 to k including all
measurements, the update is broken into pieces with each sensor having its own update
step so that there is one Hk (the linearization of the measurement function h given by
(5.4)), Kk and x generated per sensor. The estimate generated from the first sensor
updated is passed on to the second and so on; this concept is illustrated schematically in
Figure 5.15. As shown in Figure 5.16, this cascaded modification to the EKF does not
reproduce the exact results of the monolithic EKF, however, it does produce very similar
results.
H =∂h
∂x|x=xk|k−1
(5.4)
Figure 5.15: Conceptual workings of the GNB EKF
CanX-4&5 is required to have a determination accuracy better than 1 RMS [8].
While 1 pointing accuracy is obtainable (with difficultly) out of eclipse with only a
magnetometer and sun sensor, in eclipse it is more difficult to obtain without the addition
of a star tracker. For space, power, and mass reasons, a star tracker was not included in
Chapter 5. Modelling and Simulation 82
Figure 5.16: Monolithic vs. Cascading EKF
the design for CanX-4&5, in its place, angular rate gyros are used in conjunction with an
EKF to maintain accuracy during eclipse. Initial attempts to tune the EKF were able to
readily meet determination goals both during and after eclipse when the satellite was not
actively controlled, however, would fail utterly when control was applied. Similarly, an
EKF tuned for a satellite rotating at a constant tumble would fail in periods of quiescence
or under varying rotation rates as would be seen in practice. Figure 5.17 shows the tuning
of CanX-4&5’s EKF under different operation assumptions; performance in all cases failed
to meet 1 RMS accuracy.
Figure 5.17: CanX-4&5 EKF tuning performance with CanX-2’s EKF, tuned for a con-
stant drift, and tuned for no movement
To meet requirements, several different methods of further tuning the EKF’s perfor-
Chapter 5. Modelling and Simulation 83
mance were tried, including:
• Individual covariance matrices for each sensor update; the original cascade imple-
mentation had a single shared covariance matrix.
• Altering the Kalman noise based on which sensors were operational. e.g. Increasing
the ‘trust’ on the magnetometer and rate sensor when the sun sensor was removed.
• Altering the Kalman noise and covariances based on state. e.g. At higher body
rates increase the ‘trust’ placed on the rate sensors while increasing the estimated
state error.
• Disregarding the sun sensors entirely.
• Re-ordering which sensors were read first in the cascade EKF so that the final state
estimate would be based on something directly pertaining to orientation (e.g. the
magnetometer reading) vs. something directly related to rate (rate sensor reading).
In the end, no amount of tuning or other augmentation of the EKF would produce Euler
angle errors better than 2.3 RMS on average over the course of a mission. In every
tuning situation, performance would always show an increase in error over the course
of an eclipse (reaching a maximum of about 7-8), or would simply show uniformly
unsatisfactory performance (> 5 error RMS). At this point, it is felt that there is little
to be done to improve EKF performance beyond an increased update rate.
Target Pointing Simulations
Target pointing was simulated by taking the target vectors output directly from FIONA
(Formation-flying Integrated Onboard Nanosatellite Algorithm) and feeding them into
the simulation at the correct time intervals. Simulation was performed on shorter ver-
sions of both the PCO (Projected Circular Orbit) formation portion of the mission and
the ATO (Along Track Orbit) formation portion of the mission with a reconfiguration
maneuver placed between the two mission halves. Due to processing limitations, a full
mission could not be simulated at the present time.
Shown in Figure 5.18 is the target pointing behaviour of CanX-4&5 during three typ-
ical targeting events in the absence of state error. A target vector for thruster alignment
is generated by FIONA at the start of a given 65s period and processed into a target
quaternion by the heuristic given in Section 3.3; targets are typically about 15 to 20
Chapter 5. Modelling and Simulation 84
apart. After 55s of attempting to reach the new target, an adjusted target is given to
OASYS by FIONA to compensate for events that have happened in the interim. The
adjusted target is updated three times before CanX-4&5 is ordered to fire its thrusters
for that particular time interval: The cycle then repeats.
Figure 5.18: Typical CanX-4&5 targeting behaviour.
The mission requirements call for 5 accuracy RMS when pointing the CNAPS thruster
[8], but make no specific reference to duration of this pointing. Obviously, a finite time
is required to slew to the correct orientation so the requirements were interpreted as 5
pointing accuracy at the time of thruster firing. Shown in Figure 5.19 are the thrust
errors at the time of thruster firing plotted with the determination error over two orbits.
There is obviously a high correlation between the determination errors and the target
pointing errors, indicating that any deficiencies in pointing are due to the EKF. That
said, the average error during thrusts is approximately 2.31 with a standard deviation
of 1.13. This mean and standard deviation correspond to meeting the 5 requirement
99.09% of the time, with the remaining one percent exceeding requirements by at most
1. Discussions with FIONA’s creator have indicated that simulations with up to 8
attitude pointing errors still show FIONA performing the mission, and therefore these
results should be adquate. Given that control is adequate to make up for the deficiency
in determination the need for requirement AC.07 is questionable as it’s driver is to “...en-
sure that the total pointing error of the thruster to the target thrust vector is less than
5 degrees.” [8].
As a final note: in the absence of a time lag on actuator torque from the reaction
wheels, the controller performs much better (improving by approximately 1) indicating
Chapter 5. Modelling and Simulation 85
Figure 5.19: Target errors during thrusts and determination errors over time
that the 7s wheel settling time interferes with the 5s time allotted for target vector
corrections. A possible improvement could be obtained by only performing two attitude
correction maneuvers at the end of the 65s inter-thrust period, rather than the current
three.
Chapter 6
Conclusions
The design of a three-axis attitude control system for nano-scale satellites is eminently
feasible with the advent of small-scale reaction wheels and sensors to match. The degree
of performance of this control system is, however, highly dependent on the quality of
the sensors used for determination and the expected slew rates. For BRITE, which has
the necessary capacity and power for a star tracker and moves slowly, determination is
excellent. For CanX-4&5, which do not have room for star trackers and move rapidly,
determination suffers and this effects pointing. Fortunately, the other half of attitude
control (the actuation) suffers no problems on either GNB satellite as the reaction wheels,
in simulation at least, perform quite well.
Looking ahead to future CanX missions there are several possibilities for improvement
on the current design and test methods. First and foremost, the magnetometer can
perform better - the current methods of calibration are in reality poor substitutes for coil
facilities. The resolution and low noise of the individual magnetic sensors is such that the
magnetometer could, in theory, provide an accuracy superior to ±1 if calibration could
exceed this level of uncertainty. Secondly, the OASYS thread could be sped-up to higher
rates enabling better determination and possibly better and more exotic control (i.e.
coupled, biased wheel controllers). As current estimates of a GNB OBC’s performance
seem to indicate, the main obstacle to increasing OASYS execution rate is not processing
power, but is instead the additional power that would be required to read the sensors.
Thus, if power is available, the controller should be sped up. Lastly, a concerted effort
should be made to find the optimal torque controller parameters for the reaction wheel.
The current parameters perform well, but it may be possible to do better.
86
Bibliography
[1] Analog Devices, One Technology Way, P.O. Box 9106, Norwood, MA. ProgrammableLow Power Gyroscope ADIS 16251 - Datasheet, rev 0 edition, 2007.
[2] Eugene A. Avallone and Theodore Baumeister, editors. Marks’ Standard Handbookfor Mechanical Engineers 10th Ed. McGraw-Hill, 1996.
[3] Dan D. V. Bhanderi. Spacecraft Attitude Determination with Earth Albedo CorrectedSun Sensor Measurements. PhD thesis, Aalborg University - Department of ControlEngineering, Fredrik Bajers Vej 7, DK-9220 Aalborg 0, Denmark, July 2005.
[4] Dan D. V. Bhanderi and Thomas Bak. Modeling earth albedo for satellites in earthorbit. In 2005 AIAA Guidance, Navigation, and Control Conference and Exhibit;San Francisco, CA; USA; 15-18 Aug. 2005, number AIAA Paper 2006-6465 in 1,pages 1–12, 2005.
[5] Chris J. Damaren and Winnie S. W. Leung. A comparison of the pseudo-linearand extended kalman filters for spacecraft attitude estimation. In AIAA Guidance,Navigation, and Control Conference and Exhibit; Providence, RI; USA; 16-19 Aug.2004, number AIAA Paper 2004-5341 in 1, pages 1–11, 2004.
[6] Norman C. Deschamps, C. Cordell Grant, Daniel G. Foisy, Robert E. Zee, Anthony J.Moffat, and Werner W. Weiss. The brite space telescope: Using a nanosatellite con-stellation to measure steller variability in the most luminous stars. In InternationalAstronautical Congress, number 57, Valencia, Spain, October 2006. InternationalAstronautical Congress.
[7] Stuart Eagleson. Attitude determination and control: Detailed design, test, andimplementation for canx-2 and preliminary design for canx-3 and canx-4&5. Mas-ter’s thesis, University of Toronto Institute for Aerospace Studies, 4925 Dufferin St.Toronto ON M3H 5T6, August 2006.
[8] Stuart Eagleson and Karan Sarda. Brite and canx-4/5 attitude subsystem re-quirements document. Requirements document, University of Toronto Institute forAerospace Studies - Space Flight Laboratory, 2007.
[9] Stuart Eagleson, Karan Sarda, Jonathan Gryzmisch, and Adam Philip. Attitudedetermination and control - brite subsystem critical design review document. reportSFL-BRITE-CDR-D003, University of Toronto Institute for Aerospace Studies, 4925Dufferin St. Toronto ON M3H 5T6, March 2007.
87
Bibliography 88
[10] Stuart Eagleson, Karan Sarda, Jonathan Gryzmisch, and Adam Philip. Attitudedetermination and control - canx-4&5 subsystem critical design review document.report SFL-CX4-CDR-D003, University of Toronto Institute for Aerospace Studies,4925 Dufferin St. Toronto ON M3H 5T6, March 2007.
[11] Jesse Eyer, Chris J. Damaren, Robert E. Zee, and Elizabeth Cannon. A formationflying control algorithm for the canx-4&5 low earth orbit nanosatellite mission. InInternational Astronautical Congress, Hyderabad India, September 2007.
[12] Bernard Friedland. Control System Design - An Introduction to State Space Methods.Dover, first edition, 2005.
[13] Paul Graven and Thomas Kenny. Laboratory (and on-orbit) magnetometer cali-bration without coil facilities or orientation information. In AIAA/USU Conferenceon Small Satellites, 10th, Utah State Univ , Logan, UT; UNITED STATES; 16-19Sept. 1996, 1996.
[14] Jonathan Gryzmisch. Contributions to the attitude determination and control sys-tem of brite and canx-4&5. Master’s thesis, University of Toronto Institute forAerospace Studies, 4925 Dufferin St. Toronto ON M3H 5T6, July 2008.
[15] Hamamatsu, 325-6, Sunayama-cho, Hamamatsu City, Shizuoka Pref., 430-8587,Japan. Profile Sensor - S9132 Datasheet, 2004.
[16] Peter C. Hughes. Spacecraft Attitude Dynamics. Dover, Second Ed., 2004.
[17] J. Kautsky, N. K. Nichols, and P van Dooren. Robust pole assignment in linearstate feedback. International Journal of Control, 41(5):1129–1155, May 1985.
[18] Allan R. Klumpp. Singularity-free extraction of a quaternion from a direction-cosinematrix. AIAA: Journal of Spacecraft and Rockets, 13(12):754–755, December 1976.
[19] Benjamin C. Kuo and M. Farid Golnaraghi. Automatic Control Systems. John Wiley& Sons, Inc., 605 Third Ave. New York, NY, 8 edition, 2003.
[20] Wiley J. Larson and James R. Wertz, editors. Space Mission Analysis and Design.Microcosm Press and Kluwer Academic Publishers, 401 Coral Circle, El Segundo,California, third edition, 1999.
[21] Mathworks, 3 Apple Hill Drive, Natick, MA. Matlab - Documentation, r2007 edition,2007.
[22] Daniel E. Miller. Notes - ece 484 digital control systems. Course Notes, Jan.-Apr.2006.
[23] NASA. Total ozone mapping spectrometer – data product: Reflectivity, February2008. Available: http://toms.gsfc.nasa.gov/reflect/reflect v8.html.
[24] Francis Neelamkavil. Computer simulation and modelling. Wiley, Chichester, Sussex,England, 1 edition, 1987.
Bibliography 89
[25] PNI Corporation, 133 Aviation Blvd., Santa Rosa, CA 95403-1084 USA. PNI SEN-LMagneto-Inductive Sensor - Datasheet, r03 edition, April 2005.
[26] Bill Seng. Miniature Star Tracker - Datasheet. AeroAstro, 20145 Ashbrook Place,Ashburn, VA, 0 edition, 2007.
[27] Stanley W. Shepperd. Quaternion from rotation matrix. AIAA: Journal of GuidanceNavigation and Control, 1(3):223–224, May-June 1978.
[28] Joseph E. Shigley, Charles R. Mischke, and Richard G. Budynas. Mechanical Engi-neering Design. McGraw-Hill, 1221 Avenue of the Americas, New York, New York,seventh edition, 2004.
[29] Dan Simon. Optimal State Estimation - Kalman, H∞, and Non-Linear Approaches.Wiley-Interscience, New Jersey, 2006.
[30] Doug Sinclair. Reaction Wheel Software Interface Control Document. Sinclair In-terplanetary, 1.1 edition, Sept. 2007.
[31] Y. Sun. Mie 1069 - microelectromechanical systems course notes. Lecture Notes,2007 Jan.
[32] Mark S. Weinberg and Anthony Kourepenis. Error sources in in-plane silicon tuning-fork mems gyroscopes. Journal of Microelectromechanical Systems, 15(3):479–491,June 2006.
[33] James R. Wertz, editor. Spacecraft Attitude Determination and Control. Reidel,1978.
[34] Navid Yazdi, Farrokh Ayazi, and Khalil Najafi. Micromachined inertial sensors.Proceedings of the IEEE, 85(8):1640–1659, August 1998.