attitude determination and control hardware acceptance ... · pdf fileabstract attitude...
Post on 06-Feb-2018
226 Views
Preview:
TRANSCRIPT
Attitude Determination and Control Hardware AcceptanceTesting for Next Generation Microsatellites
by
Young-Young Shen
A thesis submitted in conformity with the requirementsfor the degree of Master of Applied Science
Graduate Department of the Institute for Aerospace StudiesUniversity of Toronto
c© Copyright 2015 by Young-Young Shen
Abstract
Attitude Determination and Control Hardware Acceptance Testing for Next Generation
Microsatellites
Young-Young Shen
Master of Applied Science
Graduate Department of the Institute for Aerospace Studies
University of Toronto
2015
In a spacecraft development cycle, components must undergo a rigorous regime of testing,
known as acceptance testing, to ensure that they can operate in the required environment
and at the required level before being accepted for spaceflight. This thesis discusses the
acceptance testing of attitude determination and control hardware using these procedures
for four satellite missions currently under development at the time of writing in the
Space Flight Laboratory at the University of Toronto Institute for Aerospace Studies.
Focus is placed on improvements made to the acceptance testing procedures and analysis
methods for the hardware. The key contributions of the thesis are improvements to
the magnetometer functional test and calibration, rate sensor calibration, sun sensor
calibration, and reaction wheel long-form functional test. This work demonstrates that
the hardware integrated into the satellites is reliable, improving confidence in mission
success, and in some cases could improve the performance of missions on-orbit.
ii
Acknowledgements
This thesis would not have been possible without the support of some key people along
the way. I would first like to thank Dr. Robert Zee for providing me with the opportunity
to study at SFL where I got a taste of working in the space industry on real satellite
missions. I am certain that the skills I had learned here will continue to prove useful as
I continue with my studies elsewhere. I only wish I could have had more time to fully
explore the many other exciting topics I had encountered in my work.
Next, I would like to acknowledge Karan Sarda, manager of the attitude group at SFL,
with whom I’ve had the pleasure of working closely and who has directly coordinated my
work over the last two years. I appreciate the countless hours you’ve spent answering my
questions and puzzling with me over problems I had run into in my work, and also doing
everything in your power to help me make the most of my experience at SFL.
I am also grateful to the other members of the attitude group, namely Niels Roth,
Marc Fournier, Najmus Ibrahim, and Pawel Lukaszynski, for getting me started on many
of my responsibilities at SFL.
Penultimately, I would like to thank all of my fellow students and the staff at SFL
for being a part of my experience here. I have enjoyed working with you all, and I have
learned a lot from everyone I had worked with.
Last, but certainly not least, I would like to thank my parents for going to sometimes
extreme lengths to support me in my undergraduate and graduate studies at the Univer-
sity of Toronto for the last six years. I absolutely could not have made it this far without
your support.
iii
Contents
1 Introduction 1
2 Acceptance Testing 7
2.1 Magnetometers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1 Theory of Operation . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.2 Testing Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.3 Functional Test Updates . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.4 Outdoor Calibration Verification . . . . . . . . . . . . . . . . . . 9
2.2 Angular Rate Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.1 Theory of Operation . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.2 Testing Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.3 Reduction of Calibration Orientations . . . . . . . . . . . . . . . . 13
2.2.4 Screw Torque and Bias . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Fine Sun Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.1 Theory of Operation . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.2 Testing Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.3 Calibration Improvements . . . . . . . . . . . . . . . . . . . . . . 22
2.4 Reaction Wheels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4.1 Theory of Operation . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4.2 Testing Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4.3 Torque Test Improvements . . . . . . . . . . . . . . . . . . . . . . 32
2.4.4 Timestamp Uniformity . . . . . . . . . . . . . . . . . . . . . . . . 45
3 Conclusion 49
Bibliography 52
iv
List of Tables
2.1 Orientation Sets for Rate Sensor Calibration . . . . . . . . . . . . . . . . 15
2.2 Reaction Wheel Torque Test Speeds and Torques . . . . . . . . . . . . . 32
2.3 Reaction Wheel Torque Test Old Metrics . . . . . . . . . . . . . . . . . . 33
v
List of Figures
1.1 Attitude Determination and Control Architecture for GNB and NEMO
Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 UTIAS-SFL ADCS Hardware Testing Cycle . . . . . . . . . . . . . . . . 3
1.3 UTIAS-SFL Standard Thermal Acceptance Profile [6] . . . . . . . . . . . 5
2.1 Magnetometer Calibration Setup . . . . . . . . . . . . . . . . . . . . . . 10
2.2 UTIAS-SFL Rate Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Misalignment Angle Definitions . . . . . . . . . . . . . . . . . . . . . . . 14
2.4 Rate Sensor Calibration Orientations . . . . . . . . . . . . . . . . . . . . 15
2.5 EV9 Scale Factor vs. Orientation Set . . . . . . . . . . . . . . . . . . . . 16
2.6 AISSat-3 Scale Factor vs. Orientation Set . . . . . . . . . . . . . . . . . 17
2.7 GHGSat-D Scale Factor vs. Orientation Set . . . . . . . . . . . . . . . . 17
2.8 EV9 Skew Angle vs. Orientation Set . . . . . . . . . . . . . . . . . . . . 18
2.9 AISSat-3 Skew Angle vs. Orientation Set . . . . . . . . . . . . . . . . . . 18
2.10 GHGSat-D Skew Angle vs. Orientation Set . . . . . . . . . . . . . . . . . 19
2.11 Screw Torque vs. Bias for Y-Axis Sensor . . . . . . . . . . . . . . . . . . 20
2.12 UTIAS-SFL Fine Sun Sensor Theory of Operation . . . . . . . . . . . . . 21
2.13 Fine Sun Sensor Calibration Setup, Side View . . . . . . . . . . . . . . . 23
2.14 Calibration Results, ρrli and ρrsr Hard-Coded . . . . . . . . . . . . . . . . 26
2.15 On Orbit vs. Simulated Sun Sensor Error . . . . . . . . . . . . . . . . . . 27
2.16 Calibration Results, ρrli and ρrsr Estimated . . . . . . . . . . . . . . . . . 29
2.17 Reaction Wheel Control Modes . . . . . . . . . . . . . . . . . . . . . . . 31
2.18 Reaction Wheel Torque Jitter FFT . . . . . . . . . . . . . . . . . . . . . 37
2.19 Torque Jitter FFT Spike on NORSAT-1 Reaction Wheel . . . . . . . . . 44
2.20 Torque Jitter FFT Spike on NEMO-HD Reaction Wheel . . . . . . . . . 46
2.21 Old WheelTerm Time Step Variation, 60 Hz Torque Test . . . . . . . . . 47
2.22 New WheelTerm Time Step Variation, 50 Hz Torque Test . . . . . . . . . 47
vi
List of Abbreviations
AIS Automatic Identification System
AISSat Automatic Identification System Satellite
BRITE Bright Target Explorer
CMOS Complementary Metal-Oxide Semiconductor
CVG Coriolis Vibratory Gyro
EV9 exactView-9
FSS Fine Sun Sensor
FFT Fast Fourier Transform
GHGSat-D Greenhouse Gas Satellite Demonstrator
GNB Generic Nanosatellite Bus
IGRF International Geomagnetic Field Reference
LEO Low Earth Orbit
LFFT Long Form Functional Test
MEMS Micro-Electromechanical System
NEMO Next-Generation Earth Monitoring and Observation
NOAA National Oceanic and Atmospheric Administration
NORSAT-1 Norwegian Satellite 1
OASYS On-board Attitude Subsystem Software
PCB Printed Circuit Board
PSD Power Spectral Density
RMS Root Mean Square
SFFT Short Form Functional Test
T-Shock Temperature Shock
UTIAS-SFLSpace Flight Laboratory at the University of Toronto Institute for
Aerospace StudiesVHF Very High Frequency
vii
List of Notation
F b Reference frame~F b Vectrix of reference frame, i.e. column matrices consisting of basis
vectors of frame F b, e.g. ~F b =[~b1
~b2~b3
]T~(·) Vector
v Column matrices, e.g. v =[v1 v2 . . . vn
]Tbi Vector ~b resolved in frame F i
A Matrix
Cbi Rotation matrix from frame F i to frame F b, i.e. vb = Cbivi
1 Identity matrix
|·| Absolute value (scalar), determinant (matrix)
〈·〉 Expected value˙(·) Time derivative
viii
Chapter 1
Introduction
Attitude determination and control refers to the determination and control of a space-
craft’s orientation in three-dimensional space. This is achieved using sensors to measure
attitude and using actuators to change it. Taken together, these sensors and actuators,
along with the software used to operate them, are referred to as a spacecraft’s attitude
determination and control system (ADCS). The ability of a spacecraft to determine and
control its attitude is often critical to accomplishing key objectives of its mission, and
is typically a defining metric of a mission’s capabilities. Many of the recent missions
developed by the Space Flight Laboratory at the University of Toronto Institute for
Aerospace Studies (UTIAS-SFL) have been enabled by improved pointing accuracy due
to advances in the lab’s technology for small satellite attitude determination and control.
For example, the satellites comprising the Bright Target Explorer (BRITE) mission, a
constellation of five astronomy nanosatellites observing brightness and temperature vari-
ations in bright stars, achieve a pointing accuracy of 12 arc-seconds within one standard
deviation [1], enabling them to direct their telescope payloads with the accuracy required
to meet their science objectives.
The generic ADCS architecture for UTIAS-SFL satellites is shown in Figure 1.1. This
architecture is used in two UTIAS-SFL small satellite platforms: the Generic Nanosatel-
lite Bus (GNB) – a 7 kg nanosatellite platform, and the Next-Generation Earth Moni-
toring and Observation (NEMO) bus – a 15 kg microsatellite platform. For the purposes
of this thesis, a nanosatellite refers to a satellite with mass between 1 kg and 10 kg, and
a “microsatellite” refers to a satellite with mass between 10 kg and 100 kg, in conformity
with the generally accepted industry definitions [2]. In the illustrated ADCS architec-
ture, reaction wheels and magnetic torquers are used as actuators. Fine sun sensors, a
magnetometer, and an angular rate sensor are used as coarse attitude sensors. Some
missions also have a star tracker for fine attitude determination. A discussion of the
1
Chapter 1. Introduction 2
ActuatorsSensors
On-board Attitude Software Subsystem
(OASYS)
Fine Sun SensorsMagnetometer Reaction Wheels
Magnetorquers
Attitude Dynamics
Star Tracker
Disturbance Torques
Commanded Attitude
Angular Rate Sensor
Figure 1.1: Attitude Determination and Control Architecture for GNB and NEMO Plat-forms
theory of operation for these devices is presented later in this thesis. Finally, the On-
board Attitude Subsystem Software (OASYS) processes sensor measurements, estimates
the spacecraft attitude state, and commands the actuators to apply a torque in order to
track a given commanded torque. An extended Kalman filter (EKF) is used to produce
state estimates and a proportional-derivative attitude control law is used as a controller.
The focus of this thesis is acceptance testing of attitude determination and control
hardware. Acceptance testing is a key part of the later stages of most spacecraft develop-
ment cycles [3]. Its purpose is to ensure that pieces of hardware designated for spaceflight
operate within the range of conditions required in the mission design, perform at the level
required by the system design, and are free of defects. This is distinguished from qual-
ification testing, which ensures that hardware of a particular design or model can be
included in the design of the spacecraft, which is usually completed in the earlier stages
of the spacecraft development cycle. The general acceptance testing cycle for ADCS
hardware is shown in Figure 1.2. Note that for some hardware, some of the steps in this
cycle are skipped or do not apply. The specifics of the testing cycle for each type of
hardware is discussed in their respective sections. The testing cycle includes four types
of tests: the functional test, the thermal shock (T-Shock) test, the thermal acceptance
campaign, and calibration.
Functional Test The purpose of a functional test is to operate hardware in a flight-
Chapter 1. Introduction 3
1. Initial Functional
2. T-Shock3. Post-T-
Shock Functional
4. Thermal Acceptance
5. Calibration6. Final
Functional
Pre-T-Shock Inspection
Post-T-Shock Inspection
Figure 1.2: UTIAS-SFL ADCS Hardware Testing Cycle
representative manner [4]. This ensures key components of the hardware are func-
tioning, but does not usually measure the performance of the hardware. UTIAS-
SFL distinguishes between two types of functional tests. A long form functional test
(LFFT) is a comprehensive test providing high confidence of a device’s function-
ality, and is usually performed before and after major environmental tests such as
a thermal acceptance test. A short form functional test (SFFT) is an abbreviated
test usually consisting only of a subset of the procedures of the LFFT to expedite
testing when only a basic assurance of a device’s functionality is needed. This may
be performed in the middle of an environmental test, or when small changes are
made to the hardware that don’t warrant an LFFT. For some ADCS hardware,
a comprehensive functional test is sufficiently simple to make it unnecessary to
distinguish between long form and short form tests.
Thermal Shock A thermal shock test subjects the hardware to sudden and extreme
changes in temperature in order to test the hardware’s capacity to survive extreme
temperature changes and to check the workmanship of solder joints on printed
circuit boards (PCBs) [5]. The rapid temperature changes cause uneven expansion
and contraction of PCB components, applying stress to them and dislodging ones
that are not properly soldered. At UTIAS-SFL, this test is normally performed by
a third-party contractor based on UTIAS-SFL specifications and is consequently
not part of the work discussed in this thesis. However, inspections of parts before
and after the T-shock are performed in-house.
Thermal Acceptance The thermal acceptance campaign is not a single test, but is
instead a series of tests that operate the test unit at various temperatures as well
as throughout changing temperatures. This ensures that the hardware is able to
tolerate the full range of temperatures required by the mission profile [6]. The
hardware is tested to two categories of temperatures – non-operational temper-
atures and operating temperatures. Non-operational temperatures refer to the
Chapter 1. Introduction 4
temperature range over which a device must be capable of being powered on while
remaining undamaged, whereas operating temperatures refer to the temperature
range over which the device must be capable of powering on and operating within
specifications. A third category of temperatures, survival temperatures, refers to
the range of temperatures over which a device must be capable of remaining free
from damage while powered off. However, devices are never subjected to these tem-
peratures during testing, and the thermal designs of UTIAS-SFL satellites prevent
devices from reaching these temperatures on orbit. Operating temperatures are
usually more stringent than non-operational temperatures, which in turn are more
stringent than survival temperatures. Non-operational and operating temperature
ranges are specified by the design of a satellite’s mission and are a function of orbit
and attitude profile. The design takes into consideration survival and operational
ranges typically provided by manufacturers of the parts out of which the devices
are constructed. General practice at UTIAS-SFL calls for these ranges to be de-
rated, i.e. applying stricter limits, leading to typical non-operational temperatures
for ADCS hardware of −30◦C to 70◦C and operational temperatures of −20◦C to
60◦C [7]. This practice allows for additional safety margin.
Figure 1.3 shows the UTIAS-SFL standard thermal testing profile. As illustrated,
the thermal testing campaign tests hardware at both their non-operational hot
and cold limits and their operating hot and cold limits, as well as throughout
temperature changes. Note that full SFFTs and LFFTs for ADCS sensors are not
usually possible during a thermal test since physical access to the sensors is required
in order to expose them to a stimulus, for example by moving them. Physical access
to the units is restricted once they are placed in the thermal chamber. Note also
that the temperature extremes shown in the figure are labeled as “survival” hot
and cold temperatures, a typical albeit misleading internal shorthand for a device’s
non-operational temperatures.
Calibration A calibration is a characterization of the performance of a piece of hard-
ware. This is usually performed only for ADCS sensors. In general, a calibration
involves comparing measurements made by a sensor against a set of reference mea-
surements that are known to be accurate in order to calculate the value of correction
factors. These correction factors are applied on orbit when measurements from the
sensor are used. Details of the calibration techniques for some sensors are provided
in later sections.
Note that while satellite components must also in general be tested to survive in the hard
Chapter 1. Introduction 5UTIAS/SFL Thermal Vacuum and Standard Thermal Test Procedure, Issue 1.2, 2009/06/04
UTIAS/SFL, Tel (416) 667-7864, E-mail: rzee@utias-sfl.net, UTIAS/SFL Confidential Page 4 of 6
Standard Temperature
25 deg C
T_hot, survival
T_cold, survival
T_hot
T_cold
Long-Form Functional
Test (LFFT)
Temperature
Soak, for t_soak
Warm Start + LFFT
Cold Start +
LFFT
Temperature
Soak, for t_soak
Final LFFT
All Slews at
2 deg C / min
Temperature Soak, for t_soak
Temperature
Soak, for t_soak
Temperature Soak, for t_soak
Temperature
Soak, for t_soak
Phase IV – Temperature Cycling – Check Telemetry and Communications at Regular Intervals (short-form test every t_sfft seconds)
Phase I – Initial Check Phase II – Warm Start Phase III – Cold Start Phase V –
Final Check
Temperature Profile for Unit Thermal Vacuum or Standard Thermal Tests
Figure 1.3: UTIAS-SFL Standard Thermal Acceptance Profile [6]
vacuum of space, vacuum testing is only performed at the system, or satellite, level if the
component has already been qualified in thermal vacuum.
The contribution of this thesis was to perform acceptance testing of ADCS hard-
ware for the exactView-9 (EV9), Automatic Identification System Satellite 3 (AISSat-
3), Greenhouse Gas Satellite Demonstrator (GHGSat-D), and Norwegian Satellite 1
(NORSAT-1) missions. EV9 and AISSat-3 are two ship-tracking nanosatellites based
on the Generic Nanosatellite Bus platform [8][9]. The main role of the attitude deter-
mination and control subsystem for these satellites is to point a very high frequency
(VHF) antenna to nadir, or Earthward, in order to receive positioning broadcasts from
ships. GHGSat-D is a mission that will demonstrate space-based monitoring of indus-
trial greenhouse gas emissions using a microsatellite based on the NEMO platform [10].
Attitude determination and control is used to allow the satellite to track fixed ground
targets with high accuracy as it passes over them to enable measuring of greenhouse gas
emissions from a single industrial site. Finally, NORSAT-1 is a science microsatellite also
based on the NEMO platform that will carry a radiometer for studying variations in solar
irradiance and a pair of Langmuir probes to study the plasma environment in low Earth
orbit (LEO) [11]. The satellite will also carry an AIS payload. Attitude determination
and control will be used to point the radiometer payload continuously at the Sun while
keeping the Langmuir probes pointed in the local velocity direction. GHGSat-D has the
most stringent pointing accuracy requirements of the four missions.
Testing for each mission was completed according to project timelines handed down
Chapter 1. Introduction 6
from the system-level design of the satellites. The goal of the testing was to ensure
not only that all hardware passed each test in its testing cycle, but also to ensure that
existing test procedures and acceptance criteria appropriately reflected system require-
ments. Where necessary, previously established test procedures and acceptance criteria
were adjusted, and new test procedures and criteria were developed. The testing of
ADCS hardware contributed by this thesis will help ensure to a high degree of confidence
that the satellites using the hardware will be capable of achieving the pointing objectives
required by their missions.
Chapter 2
Acceptance Testing
The sections in this chapter treat the acceptance testing of each type of attitude determi-
nation and control hardware involved in this thesis. Each section begins with a discussion
of the theory of operation of the device, followed by a description of its specific accep-
tance testing cycle, and then identifies the contributions of this thesis to the acceptance
testing of that device.
2.1 Magnetometers
2.1.1 Theory of Operation
Magnetometers are used to measure the magnitude and direction of the local magnetic
field. Combined with a model of the geomagnetic field, these can be used to determine
a satellite’s attitude about two axes at any point in its orbit. A single magnetometer
measurement leaves uncertainty in attitude about the local magnetic field vector, and
is usually combined with a measurement of another vector to obtain a full attitude
solution. UTIAS-SFL’s in-house magnetometers use three magneto-inductive sensors
oriented orthogonally to each other to measure the components of the magnetic field
vector. These sensors have the property that their inductance is proportional to the
magnetic field applied along their axes. An interface circuit measures this inductance
and converts it into a magnetic field strength value. In pointing budgets for UTIAS-SFL
missions, the magnetometer is expected to achieve an accuracy on the order of 3◦ [12] to
5◦ [13].
Due to their ability to make measurements at any point in a satellite’s orbit as well as
their relatively low cost, magnetometers have become ubiquitous in UTIAS-SFL missions.
7
Chapter 2. Acceptance Testing 8
2.1.2 Testing Cycle
The testing cycle for magnetometers at UTIAS-SFL follows the general cycle identified
in Figure 1.2. This thesis contributes updates to the functional and calibration tests for
UTIAS-SFL’s magnetometers in addition to performing the acceptance testing for the
EV9, AISSat-3, GHGSat-D, and NORSAT-1 magnetometers.
2.1.3 Functional Test Updates
A functional test of the magnetometer involves a polarity check, noise measurement, and
a rough test of sensor bias [14]. The purpose of the polarity check is to ensure that
measurements qualitatively respond in the right way to a change in the applied magnetic
field. Previously, the polarity check called for placing a permanent magnet close to the
sensor [15]. The change in the observed magnetic field along each axis should be positive
when aligned with the magnet south-to-north and negative when aligned with it north-
to-south. However, this test carried a risk of permanently magnetizing components on
the magnetometer or damaging the magneto-inductive sensors due to the strength of the
permanent magnet. It was observed that the ambient magnetic field within the lab was
sufficiently strong and consistent to be used in place of the permanent magnet in the
polarity check. Specifically, the ambient field seemed always to be the strongest along
the local vertical and in the downward direction, and was strong enough to be greater
than both the typical noise and bias levels of the magnetometer. A new procedure was
developed for the polarity check in which the magnetometer would be polled continuously
while being held in a series of orientations to align each axis with the vertical. Since the
field in the lab is known to be dominated by the vertical component in the downward
direction, the test would check that the field measured by each axis would measure a
positive field when pointed downward, and change to a negative field when flipped to
point upward.
Another update to the functional test procedure was the addition of the rough bias
check. During calibration of the magnetometer for the GHGSat-D mission, it was noticed
that measurements on one axis exhibited an abnormally large bias of approximately
23µT , where typical biases have been observed to be in the low thousands of nano-
Tesla. Additional testing confirmed that the bias was inherent to the sensor and not a
result of experimental error. Despite this bias, the unit was accepted for the mission
as a spare since it was determined that, even with the bias, the maximum expected on-
orbit field measurement on any axis (36µT unbiased) would fall well within the sensor’s
measurement range of ±131µT , and that the unit was functioning properly otherwise.
Chapter 2. Acceptance Testing 9
However, since no attempt at measuring the bias was made prior to calibration, it was
unclear at what point the bias had changed, or if it had always been high. It was therefore
decided to add a bias check to the functional test. In a similar vein to the polarity check,
the bias check consisted of aligning each axis of the sensor with the vertical while polling
for one minute, then inverting the alignment and polling for another minute. The bias for
each axis is estimated by summing the average fields measured in positive and negative
alignment. This bias check revealed through the acceptance testing campaign of the
NORSAT-1 magnetometers that a large bias similar to that seen on the GHGSat-D
sensor only appeared once the magnetometer was integrated into an interface plate that
mounts the sensor to the calibration facility. The cause of this bias was traced to a
magnetic threaded helical insert used in this plate. The helical inserts have since been
replaced with nonmagnetic titanium substitutes. Another benefit of adding this check
to the magnetometer functional test is that it could help detect faulty units with biases
outside of manufacturer specifications early in the acceptance testing cycle. This helps
reduce schedule cost in the event of a faulty sensor since replacement sensors can be
ordered before most of the testing is done rather than after calibration is completed near
the end of the cycle.
2.1.4 Outdoor Calibration Verification
The magnetometer calibration compares measurements of a series of applied magnetic
fields made by an uncalibrated “flight” magnetometer with those made by a calibrated
“lab” magnetometer in order to calculate a number of calibration parameters. The
magnetometers are mounted side-by-side on an aluminum L-bracket, which is secured
to a platform in the center of three pairs of orthogonal Helmholtz coils that generate
the applied magnetic fields. Figure 2.1 shows the magnetometer calibration setup. The
parameters determined from the calibration are programmed into OASYS, the attitude
determination and control software, to be used for estimating the true magnetic field
based on measured values and include factors that correct for sensor bias, nonlinearity of
the magnetometer’s measurements, and non-orthogonality of its axes, as well as scaling
factors for converting between the magnetometer’s native units, or “counts”, to nano-
Tesla [14].
Previous iterations of the calibration procedure were considered complete once these
parameters had been determined. However, in order to provide an additional measure
of confidence for calibrations performed with a newly commissioned in-house calibration
facility, it was decided to implement a test to verify the parameters extracted from cal-
Chapter 2. Acceptance Testing 10
Lab Magnetometer Flight Magnetometer
Helmholtz Coil (1 of 6)
Aluminum L Bracket
Figure 2.1: Magnetometer Calibration Setup
ibration. In this test, both the lab and flight magnetometers are brought outside of the
magnetically noisy lab environment and into a field far away from buildings and machin-
ery. The two magnetometers are held in a fixed orientation using the same L-bracket
from the calibration setup, and measurements of the ambient geomagnetic field are col-
lected for five minutes from both magnetometers. The calibration parameters are applied
to the flight magnetometer measurements and the corrected average field is compared
against that measured by the lab magnetometer. The error between the corrected flight
magnetometer measurement and the lab magnetometer measurement has been found to
be typically below 0.5◦ in direction and 0.6% in magnitude within 3 standard deviations.
This provides an estimate of the calibration error contributed by variations in the indoor
magnetic field that was applied to the flight and lab magnetometers during calibration.
Other contributions to the calibration error include mounting misalignment between the
lab and flight magnetometers due to manufacturing tolerances in the placement of holes
for screws and the calibration error of the lab magnetometer. The mounting misalignment
contributes up to 1.42◦ within 3 standard deviations. The lab magnetometer calibration
is accurate to 0.5% on any axis [16], which corresponds to 0.29◦ peak error. No confi-
dence interval is provided, but 3 standard deviations is assumed. Treating each source
of calibration error as a zero-mean normally distributed random variable, the total cal-
Chapter 2. Acceptance Testing 11
ibration error is found to be 1.53◦ within three standard deviations, and is dominated
by the misalignment error. Adding on misalignment error from satellite integration of
0.41◦ within 3 standard deviations, these results show that the total magnetometer error
could amount to 1.59◦ within three standard deviations. This falls well below the allotted
magnetometer error of 3.62◦ in the coarse pointing budget for the NEMO-AM mission
[12], which is also used for GHGSat-D and NORSAT-1. The AISSat-1 pointing budget
[13], which is also used for EV9 and AISSat-3, allows 5.4◦ within 3 standard deviations.
The corrected flight magnetometer measurements from the outdoor test are also com-
pared against the local magnetic field vector predicted by the International Geomagnetic
Reference Field (IGRF) model for the day of the test, retrieved from the National Oceanic
and Atmospheric Administration (NOAA) website [17]. The error between the magni-
tude of the corrected field measurement and that of the IGRF predicted field is typically
below 0.5%, suggesting that the location chosen for the verification test is magnetically
clean, as desired. The angle between the measured and predicted fields cannot be com-
pared since the attitude of the lab and flight magnetometers is not accurately measured
during the test.
2.2 Angular Rate Sensors
2.2.1 Theory of Operation
Angular rate sensors measure the angular velocity, or angular rate, of a spacecraft with
respect to inertial space. This is used to propagate the spacecraft’s attitude based on
previous measurements in order to balance the effect of measurement error in sun sensors,
the magnetometer, or other sensors that measure attitude using the ambient environment.
Propagating attitude based on angular velocity measurements is also useful for tracking
satellite attitude when one of these sensors is not available. An example of this is when
the satellite passes into the shadow of the Earth, a condition known as eclipse, during
which the sun sensors have no view of the Sun. However, as an inertial sensor, which
measures the spacecraft’s motion rather than its position or orientation, a rate sensor is
unreliable on its own for tracking spacecraft attitude. As with any sensor, a rate sensor’s
output is biased and has noise. Although the bias is characterized during calibration, the
bias of an inertial sensor drifts over time and is usually also a function of temperature.
Moreover, even with the bias deducted from the output signal, integrating the noisy rate
measurements to track attitude results in a gradual departure from the true attitude.
This process is known as random walk.
Chapter 2. Acceptance Testing 12
UTIAS-SFL’s in-house rate sensors use three orthogonally mounted micro-electromechanical
system (MEMS) Coriolis vibratory gyros (CVGs) to measure the three components of
the angular velocity vector, as shown in Figure 2.2. The Z sensor is placed on a mother-
board, and the X and Y sensors are placed on two daughter-boards1 A MEMS CVG
measures angular velocity by measuring the Coriolis force on a proof mass vibrating ra-
dially in the measurement plane, the amplitude of which is linearly proportional to the
component of the angular velocity in the measurement plane [18]. This force is then
transduced into a voltage. Rate sensors for UTIAS-SFL missions are usually expected to
be sufficiently accurate to contribute to no more than 1.8◦ of pointing error within one
standard deviation [19].
X Sensor
Y Sensor
Z Sensor
+X
+Y
+Z
Figure 2.2: UTIAS-SFL Rate Sensor
Rate sensors based on MEMS CVGs are relatively inexpensive and for this reason,
UTIAS-SFL’s in house rate sensor has made its way into the designs of most of the lab’s
newer satellites, including each of the four with which this thesis is concerned.
1The axes shown in Figure 2.2 form a right-handed triad, but the assignment of the X and Y CVGsin the actual sensor design is swapped such that the axes of the rate sensor do not correspond to aright-handed triad. This detail is omitted here for simplicity. The handedness of the rate sensor axeswas not considered during its original design because the axes are easily remapped in flight software.However, since this was found to cause confusion during testing, future revisions of the rate sensor designwill use the axes shown here.
Chapter 2. Acceptance Testing 13
2.2.2 Testing Cycle
The testing cycle for angular rate sensors at UTIAS-SFL follows the general cycle identi-
fied in Figure 1.2. This thesis contributes updates to the calibration test for UTIAS-SFL’s
rate sensors, discovered a correlation between sensor bias and screw torque, and evalu-
ated the performance of a new sensor package. Additionally, acceptance testing was
performed for the EV9, AISSat-3, GHGSat-D, and NORSAT-1 rate sensors.
2.2.3 Reduction of Calibration Orientations
The calibration procedure for UTIAS-SFL’s in-house angular rate sensor involves mount-
ing the sensor to a rate table and polling measurements from the sensor while it is rotated
on the table at specified, fixed rates [20]. This is repeated with the sensor mounted in
various orientations in order to exercise each measurement axis of the sensor. The rate
of rotation of the rate table is accurately known, to ±0.1◦ accuracy [21], and forms the
truth data to which the rate sensor measurements are compared to find the calibration
parameters. These are applied to correct the raw angular rate measurements from each
of the three measurement axes using
ωz,i =ωz,i − bz1 + sz
(2.1)
ωx,i = ωz,i tan θy +ωx,i − bx1 + sx
1
cos θy(2.2)
ωy,i = ωx,i tan θz +
(ωy − by1 + sy
1
cos θx− ωz,i tan θx
)1
cos θz(2.3)
where ωx,i, ωy,i, and ωz,i are the corrected rate measurements at time ti, in rad/s and
ωx,i, ωy,i, and ωz,i are the raw rate measurements at time ti in counts. The remaining
variables are the calibration parameters to be solved for. The variables bx, by, and bz
are the biases on each axis, sx, sy, and sz are the scale factors for each axis, and θx, θy,
and θz are misalignment angles between the raw non-orthogonal axes and an orthogonal
set of axes defined in Figure 2.3. Equations 2.1 to 2.3 treat the raw z axis as being
aligned perfectly with the z axis of the desired orthogonal axes and the raw x axis is
taken to lie in the x-z plane of the orthogonal axes, with its misalignment described
by θy. The misalignment of the raw y axis is then described by a rotation in the x-
y plane about the z axis by θz followed by a rotation out of the plane toward the z
axis by θx. The misalignment between the sensor axes and the satellite body axes is
dealt with by including an estimate for the rate sensor misalignment in the mission’s
pointing budget. For AISSat-1, UTIAS-SFL’s first mission flown with a rate sensor,
Chapter 2. Acceptance Testing 14
this misalignment was 0.10◦ within one standard deviation [13]. Note that although the
biases of the sensor are solved for in the calibration, these only reflect the biases at room
temperature. Since CVG biases are a strong function of temperature, these are not used
in flight. Instead, a separate thermal calibration is performed to characterize the bias as
a function of temperature across the operating temperature range. Additionally, the on-
board extended Kalman filter (EKF) is designed to be capable of continuously estimating
and tracking the rate sensor bias to allow for changes throughout the life of the mission,
and uses the measured temperature of the sensor and the thermal calibration results to
generate its initial guess. Details of the thermal calibration procedure are provided in
[22].
Figure 2.3: Misalignment Angle Definitions
A least-squares method is used to estimate the calibration parameters by minimizing
the residual sum of squares given by
Sres =N∑i=1
(|ωT,i| −
√ω2x,i + ω2
y,i + ω2z,i
)2
(2.4)
where ωT,i is the rate table rate at time ti, used as the truth value, ωx,i, ωy,i, and ωz,i
are functions of the calibration variables calculated using Equations 2.1 to 2.3, and N is
the total number of measurements over all rate setpoints and all orientations. A detailed
derivation of the calibration method is found in [23].
Previously, the calibration procedure called for the rate sensor to be mounted in 21
different orientations [20]. These consisted of each axis being placed in alignment with
the rotation axis of the rate table and stepping through 15◦ increments until the axis is
perpendicular to the table rotation axis for a total of 7 orientations per axis. A selection
of these orientations are shown in Figure 2.4. This number of orientations provided
Chapter 2. Acceptance Testing 15
accurate estimation of the calibration parameters, but required an entire work day to
complete.
(a) Orientation 1 (b) Orientation 2 (c) Orientation 5
Figure 2.4: Rate Sensor Calibration Orientations
It was shown that the duration of the test could be significantly reduced while achiev-
ing similar results using fewer orientations. Calibrations were performed using 12, 9, 6,
and 3 orientations by removing intermediate orientations from the original set of 21. The
difference in the resulting scale factors and misalignment (skew) angles for three rate
sensors with serial numbers AUZ, B1A, and B1D are shown in Figures 2.5 to 2.7 and
Figures 2.8 to 2.10. The enumeration of the orientation sets is explained in Table 2.1.
These results indicate that Orientation Sets 3 to 6 achieve a similar level of performance
in estimating the skew angles, with rapidly diminishing return in all cases for increas-
ing the number of calibration orientations past that of Set 3. No significant change is
observed in the accuracy of estimating the scale factors for any orientation set since the
value of the scale factors is typically in the range of 200 counts·s/◦.
SetNumber
Number ofOrientations
Description
1 3 One orientation for each axis aligned with table axis2 6 As in Set 1 plus one for each axis aligned 45◦ with table axis.3 6 One for each axis aligned perpendicular with table axis, and
one for each axis aligned 45◦.4 9 As in Set 3 plus one for each axis aligned with table axis.5 12 Each axis oriented 0◦, 30◦, 60◦, and 90◦ from table axis.6 21 Full original set consisting of each axis oriented 0◦, 15◦, 30◦,
45◦, 60◦, 75◦, and 90◦ from table axis.
Table 2.1: Orientation Sets for Rate Sensor Calibration
Though Orientation Set 3 provided good performance, it was decided to use Orienta-
tion Set 4 for future rate sensor calibrations as an added measure of confidence, reducing
Chapter 2. Acceptance Testing 16
the number of mounting orientations to 9 and cutting the calibration time roughly in
half. However, although this analysis has shown that the effect of reducing the number
of orientations has had a small effect on the accuracy with which the calibration pa-
rameters are determined, the resulting impact on the satellite pointing error is not well
understood. Future work would explore the effect of reducing the number of calibration
orientations on pointing error arising from errors in determining the rate sensor’s scale
factors and axis skew angles.
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6−0.5
0
0.5
1
1.5
2AUZ Scale Factor Error* vs. Orientation Set
Sca
le F
acto
r E
rror
(co
unt/(
° /s))
Orientation Set *Using 6 (full set) as true scale factor
sx
sy
sz
Figure 2.5: EV9 Scale Factor vs. Orientation Set
Chapter 2. Acceptance Testing 17
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6−0.3
−0.2
−0.1
0
0.1
0.2
0.3
0.4B1A Scale Factor Error* vs. Orientation Set
Sca
le F
acto
r E
rror
(co
unt/(
° /s))
Orientation Set *Using 6 (full set) as true scale factor
sx
sy
sz
Figure 2.6: AISSat-3 Scale Factor vs. Orientation Set
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6−0.3
−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5B1D Scale Factor Error* vs. Orientation Set
Sca
le F
acto
r E
rror
(co
unt/(
° /s))
Orientation Set *Using 6 (full set) as true scale factor
sx
sy
sz
Figure 2.7: GHGSat-D Scale Factor vs. Orientation Set
Chapter 2. Acceptance Testing 18
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6−6
−4
−2
0
2
4
6
Orientation Set Number *Using set 6 (full set) as true skew angle.
Ske
w A
ngle
Err
or (°
)
AUZ Skew Angle Error* vs. Orientation Set
θx
θy
θz
Figure 2.8: EV9 Skew Angle vs. Orientation Set
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6−5
−4
−3
−2
−1
0
1
2
3
Orientation Set Number *Using set 6 (full set) as true skew angle.
Ske
w A
ngle
Err
or (°
)
B1A Skew Angle Error* vs. Orientation Set
θx
θy
θz
Figure 2.9: AISSat-3 Skew Angle vs. Orientation Set
Chapter 2. Acceptance Testing 19
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6−3
−2
−1
0
1
2
3
4
Orientation Set Number *Using set 6 (full set) as true skew angle.
Ske
w A
ngle
Err
or (°
)
B1D Skew Angle Error* vs. Orientation Set
θx
θy
θz
Figure 2.10: GHGSat-D Skew Angle vs. Orientation Set
2.2.4 Screw Torque and Bias
It was discovered during calibration of EV9’s rate sensor, after the sensor was integrated
into its aluminum enclosure, that the biases on its X- and Y-axis sensors had changed
drastically since the thermal acceptance campaign and prior functional tests completed
before the sensor was integrated into its enclosure. Where the biases were typically in the
range of −200 counts to 200 counts at room temperature, the bias on the Y-axis sensor
was now around 800 counts. A similar level of change in the bias was subsequently
observed in the test campaigns for the AISSat-3 and GHGSat-D rate sensors. Further
investigation revealed that the bias change was related to the torque applied to the
screws used to fix the daughter-boards on which the X- and Y-axis sensors reside to the
enclosure. A plot of bias versus a rough measurement of screw torque is shown in Figure
2.11. The screw torque measurements were made with an adjustable-torque screwdriver
and are accurate to 8.8× 10−3 N m.
Upon consulting with the manufacturer of the rate sensor’s CVG modules, it was
established that the cause behind this relationship between screw torque and bias is that
the stress profile on the sensor package influences the sensor’s measurement of Coriolis
force upon which the rate measurements depend. According to the manufacturer, this
level of change is not unexpected. Since the problem has not been observed to occur
Chapter 2. Acceptance Testing 20
0.08 0.1 0.12 0.14 0.16 0.18 0.2−940
−930
−920
−910
−900
−890
−880
−870
−860
−850
−840Y Axis Angular Rate Bias vs. Torque
Ang
ular
Rat
e ω
(co
unts
)
Screw Torque (Nm)
Figure 2.11: Screw Torque vs. Bias for Y-Axis Sensor
for the Z-axis sensor on the mother-board, whose screws are further away from the
sensor package, it was recommended that the daughter-boards be made larger in future
revisions of the rate sensor design to increase the spacing between the screws and the
sensor package, or to use adhesives to bond the daughter-boards to the enclosure.
There is no guarantee that the present mounting scheme for the rate sensor daughter-
boards does not place the X- and Y-axis CVG modules under unsafe stress levels. How-
ever, the current schedules for the four missions discussed in this thesis do not allow
sufficient time for a redesigned sensor to be implemented for those missions. Further
testing revealed that, though unusually high, the bias was relatively stable once the
sensor was integrated into its enclosure. Furthermore, other aspects of the rate sensor’s
performance appear to be unaffected, and the rate sensor was at no risk of saturating dur-
ing operation since spacecraft body rates were expected to remain well below ±10rad/s,
or approximately ±2200 counts, where the full range of the rate sensor is ±8192 counts.
Moreover, as previously explained, the EKF implemented in the attitude determination
and control flight software is capable of estimating and tracking a slowly changing bias,
and, additionally, is also capable of propagating spacecraft attitude state using actuator
inputs in place of rate sensor measurements. It was therefore decided to accept the rate
sensors for flight despite the high bias, and a recommendation was made to integrate
future sensors into their enclosures before the start of the acceptance test campaign to
ensure consistent performance throughout the campaign.
Chapter 2. Acceptance Testing 21
2.3 Fine Sun Sensors
2.3.1 Theory of Operation
Sun sensors are used to measure the direction of the Sun relative to the spacecraft. Fine
sun sensors provide a more accurate measurement of the sun direction vector relative to
the spacecraft, while coarse sun sensors provide a much rougher measurement and are
used in some space missions to point fine sun sensors. Pointing budgets for UTIAS-SFL
missions typically require fine sun sensors to be accurate to approximately 3◦ within three
standard deviations or better [12][19]. Coarse sun sensors are no longer used on UTIAS-
SFL missions, but have been implemented in the past by using solar panel currents to
determine the incident angle of the sun on each face of the satellite, which have been
observed to be accurate to about 30◦ or better.
As with the magnetometer, a single fine sun sensor measurement can only determine
a satellite’s attitude about two independent axes, leaving uncertainty about the Sun
vector, and is therefore typically used in combination with a magnetometer to provide
a full three-axis attitude solution. UTIAS-SFL’s in-house fine sun sensors measure the
sun vector using a two-dimensional complementary metal-oxide semiconductor (CMOS)
phototransistor array located underneath a pinhole lens. As light from the Sun passes
through the pinhole lens, a spot is projected onto the CMOS array below. A cross-section
of this is shown in Figure 2.12. In the figure, w is the width of the array. Given known
Incident Sunlight
CMOS Array
Pinhole
Figure 2.12: UTIAS-SFL Fine Sun Sensor Theory of Operation
values for the height of the pinhole h and the two components of the bias of the pinhole
from the center of the CMOS array b = [ bx by ]T , the location of the centroid of the
light spot c = [ cx cy ]T can be used to calculate the direction of the Sun in the sensor
Chapter 2. Acceptance Testing 22
frame, indicated by the subscript s, using
ss =1√
(b− c)T (b− c) + h2
[b− c
h
](2.5)
where ss, the sun vector has been normalized to unit length. Note that in Figure 2.12, ~b
and ~c are the bias and centroid vectors, with components in the sensor frame of b and c
as defined above, respectively. These are confined to the plane of the CMOS array, but
can in general be in any direction in that plane. A neutral density filter is placed on top
of the pinhole to attenuate the intensity of the incoming sunlight and also reduces the
intensity of most sources of stray light to nearly undetectable levels.
One of these sensors is typically placed on each face of a satellite in order to allow
measuring the sun vector in any attitude so long as the Sun is visible from the satellite’s
position in orbit. The low price of CMOS arrays in recent years has allowed sun sensors
of this type to be made relatively cheaply. Various iterations of UTIAS-SFL’s in-house
fine sun sensor have therefore been used on every UTIAS-SFL mission to date.
2.3.2 Testing Cycle
The testing cycle for fine sun sensors at UTIAS-SFL follows the general cycle identified in
Figure 1.2. This thesis contributed improvements to the sun sensor calibration procedure
in addition to performing acceptance testing for the EV9, AISSat-3, GHGSat-D, and
NORSAT-1 sun sensors.
2.3.3 Calibration Improvements
The sun sensor calibration estimates a sensor’s pinhole height and bias [24]. These
are estimated by finding the values of height and bias that minimize the angular error
between the measured sun direction and the true sun direction for a large number of
measurements across the range of the sensor field of view. This is elaborated below.
The sun sensor calibration setup is shown in Figure 2.13. Note that the size of the
rotator has been exaggerated for clarity. The sensor is mounted on a 3-axis rotating
platform and a simulated sun source is used to illuminate the sensor. Mirrors are used
to extend the distance between the light source and the sensor. The sensor is mounted
such that its Z-axis is parallel within misalignment error with the rotator roll axis. In
the rotator’s home position, when all actuator angles are set to 0◦, the rotator roll axis is
pointed toward the front of the room directly at the light source with some misalignment
Chapter 2. Acceptance Testing 23
error, the rotator yaw axis points at the ceiling, and the rotator pitch axis points to the
right side of the room, or out of the page in Figure 2.13.
Three right-handed orthogonal reference frames are defined in the figure: these are
the lab frame F i, the rotator frame F r, and the sensor frame F s. The lab frame
has its origin at the rotator’s center of rotation and remains fixed with respect to the
room. Its three axes[~i1 ~i2 ~i3
]Tcoincide with the rotator’s yaw, pitch, and roll axes,
respectively, at home position. The rotator frame also has its origin at the rotator’s
center of rotation, but remains fixed with respect to the sensor throughout the test.
Its three axes[~r1 ~r2 ~r3
]Tare a transformation of the axes of F i by the rotator’s
rotation angles in a yaw-pitch-roll, or 1-2-3, order. Finally, the sensor frame finds its
origin at the center of the CMOS array and remains fixed with respect to the sun sensor
throughout the test. Its three axes[~s1 ~s2 ~s3
]Tcoincide with the CMOS array’s X, Y,
and Z axes, respectively. Three vectors are also defined: ~ρrs, ~ρrl, and ~ρsl. The vector ~ρrs
extends from the rotator center of rotation to the sensor CMOS and stays fixed relative
to F r throughout the calibration. The vector ~ρrl extends from the rotator center of
rotation to the apparent position of the light source. This stays fixed with respect to
F i. Finally, ~ρsl is the vector from the sensor CMOS to the apparent light source. The
superscript letters r, s, and l refer to the rotator center of rotation, CMOS center, and
light source origin, respectively. Note that the size of the CMOS is considered negligible
at this scale and it is assumed that the rays of light incident across the CMOS are all
parallel to ~ρsl.
Rotator
Sensor
Mirror
Light Source (True)
Light Source (Apparent)
Mirror
Figure 2.13: Fine Sun Sensor Calibration Setup, Side View
Measurements of the vector from the sensor to the sun source ~ρsl are made across the
Chapter 2. Acceptance Testing 24
sensor field of view by holding the sensor at a series of pitch angles between 0◦ and 57◦,
which covers most of a typical sensor’s field of view. For each pitch angle, the sensor is
rotated into a series of roll angles evenly spaced between −180◦ and 180◦. A measurement
of the centroid of the projected light spot on the CMOS is made at each position and
the rotator angles are recorded. The yaw axis is held fixed at 0◦ throughout the test.
This generates concentric annuli of measured centroids spanning the field of view. The
spacing between the pitch and roll angles are chosen to get a total of 2000 roughly evenly
distributed measurement orientations.
The measurements made in each orientation throughout the test allow for the direction
of the sun vector ~ρslk to be calculated in two different ways. The subscript k refers to the
kth measurement orientation. The measured sun vector is calculated and normalized to
unit length using Equation 2.5, which naturally resolves the vector in the sensor frame.
Adding indices, Equation 2.5 can be rewritten as
ss,k =1√
(b− ck)T (b− ck) + h2
[b− ck
h
](2.6)
where (·) is used to indicate that this is the measured sun direction vector. This is similar
to how the sun direction vector is calculated on orbit. The true sun vector is calculated
by observing that ~ρsl = ~ρrl − ~ρrs, and using
ρslr,k = Cri,kρrli − ρrsr (2.7)
where ρrli and ρrsr are ~ρrl and ~ρrs resolved in the lab frame and rotator frame, respectively,
which are the frames in which the two vectors can be measured. ρslr,t is the true sun vector
resolved in the rotator frame, and Cri is the rotation matrix from the lab frame to the
rotator frame. In order to compare the measured and true sun vectors, the two must be
expressed in the same frame. The true sun vector can be expressed in the sensor frame by
applying an additional rotation from the rotator frame to the sensor frame to Equation
2.7 to get
ρsls,k = Csr
(Cri,kρ
rli + ρrsr
)(2.8)
This is then normalized to get the unit vector for the true sun direction
ss,k =ρsls,kρsls,k
(2.9)
Cri,k is obtained by composing three principal rotations in the order of the rotator’s order
Chapter 2. Acceptance Testing 25
of rotation
Cri,k =
cos θ3,k sin θ3,k 0
− sin θ3,k cos θ3,k 0
0 0 1
cos θ2,k 0 − sin θ2,k
0 1 0
sin θ2,k 0 cos θ2,k
1 0 0
0 cos θ1,k sin θ1,k
0 − sin θ1,k cos θ1,k
(2.10)
where θ1,k, θ2,k, and θ3,k correspond to the rotator yaw, pitch, and roll angles recorded
during the test, respectively. Csr can similarly be expressed as the composition of three
principal rotations in 3-2-1 order
Csr =
1 0 0
0 cosα − sinα
0 sinα cosα
cos β 0 sin β
0 1 0
− sin β 0 cos β
cos γ − sin γ 0
sin γ cos γ 0
0 0 1
(2.11)
where α, β, and γ are respectively referred to as the tip, tilt, and clock angles, which
characterize the misalignment between the sensor frame and the rotator frame and remain
constant throughout the test.
The angle between the measured and true sun vectors is obtained by taking
δk = cos−1 sTs,kss,k (2.12)
The calibration variables are then determined by finding the values that minimize the
root-mean-square (RMS) of δk
δRMS =
√√√√ 1
N
N∑k=1
δ2k (2.13)
where N is the total number of measurement orientations. A complete derivation of the
UTIAS-SFL fine sun sensor calibration method can be found in [25].
Since only the actuator angles and centroid locations are recorded during each cal-
ibration test, the pinhole height h and bias b are not the only parameters estimated
in post-processing of the calibration data. Previously, the sun sensor calibration script
also estimated the three sensor misalignment angles α, β, and γ, while ρrli and ρrsr were
hard-coded to values that reflect an estimate of these quantities made in the past [25].
The calibration, stated as an optimization problem, is therefore
{c∗, h∗, α∗, β∗, γ∗} = arg minc,h,α,β,γ
δRMS. (2.14)
Chapter 2. Acceptance Testing 26
A sample plot of the output from this calibration script from the NORSAT-1 sun sensor
calibration campaign is shown in Figure 2.14. The color map shows the residual sun
direction measurement error across the sensor field of view resulting from the optimal
pinhole height and bias values found by the script, while the red points indicate the
centroid locations measured throughout the test. The pinhole height and bias found
by the script are shown above the plot, and fall within the expected range for these
parameters. The tip, tilt, and clock angles are not shown, but were found to be α =
−0.19◦, β = −0.13◦, and γ = 266.1◦. These are also within the expected ranges, with
the tip and tilt angles being small and the clock angle corresponding roughly to a 3/4
rotation about the rotator frame roll axis, which is how the sensor was mounted. The
full accuracy and inner 90% accuracy displayed above the plot refer to the root mean
square (RMS) error of the whole field of view and the inner 90% of the field of view,
respectively. These results suggest that the RMS accuracy of the sensor is 0.35◦ within
the inner 90% of the field of view.
Figure 2.14: Calibration Results, ρrli and ρrsr Hard-Coded
However, on-orbit performance of the sun sensors calibrated using this procedure has
Chapter 2. Acceptance Testing 27
shown that this accuracy is not being achieved, and that the actual accuracy is typically
around 2◦. This is shown using on-orbit data from one of the BRITE satellites in Figure
2.15. The angle between the sun direction measured by a sun sensor and that predicted
based on the star tracker attitude, which is considered much more accurate than the
sun sensor, are shown from both on-orbit data and a simulation. One suggested reason
Figure 2.15: On Orbit vs. Simulated Sun Sensor Error
for this discrepancy was that the values of ρrli and ρrsr implemented in the script were
wrong, possibly due to changes in the setup geometry since the values were measured.
It was therefore decided to investigate the possibility of estimating ρrli and ρrsr together
with the pinhole height and bias and sensor misalignment angles using the same data.
If successful, this would improve the accuracy of sun sensors flying on satellites that are
already on-orbit without recalibrating.
Estimating ρrli and ρrsr amounts to estimating the geometry of the triangle formed
by ~ρsl, ~ρrl, and ~ρrs. In general, this would be defined by 6 independent parameters.
However, since the calibration works with unit vectors for the sun direction, the true
lengths of the sides of this triangle are ignored by the calibration routine, which removes
Chapter 2. Acceptance Testing 28
one independent parameter. It was therefore decided to enforce ~ρrl to be unit length.
This constraint was enforced by defining a new frame F l and a new rotation matrix
Cil , ~F i · ~FT
l . F l shares an origin with F i at the rotator center of rotation and its axes
are such that ~l3 is colinear with ~ρrl, ~l2 lies in the plane defined by ~ρrl and ~i3, between
~ρrl and ~i3, and ~l1 completes the right-handed orthogonal triad. The components of ~ρrl
in F l are then simply ρrll =[
0 0 1]T
. The rotation between F l and F i can then be
expressed as a composition of two principal rotations, first about ~l1, and then about the
third axis of the intermediate frame so that
Cil =
cosφ − sinφ 0
sinφ cosφ 0
0 0 1
1 0 0
0 cosλ − sinλ
0 sinλ cosλ
(2.15)
This guarantees that the resulting vector estimated in F i is of unit length. The newly
added parameters to be estimated are therefore φ, λ, and the three components of ρrsr ,
corresponding to the 5 independent parameters that define the triangle described earlier.
The optimization problem for the calibration thus becomes
{c∗, h∗, α∗, β∗, γ∗, φ∗, λ∗,ρrsr∗} = arg min
c,h,α,β,γ,φ,λ,ρrsrδRMS. (2.16)
The output from the modified calibration routine is shown in Figure 2.16. The plot
shows that the residual error has been highly reduced, with the RMS error for the
inner 90% of the field of view roughly halved. Moreover, the error in the higher er-
ror regions near the edge of the field of view has been drastically reduced. However,
the pinhole height falls far outside of the expected range of 1 mm ± 0.1 mm that has
been observed for all past calibrations of identical sensors, including those performed
with an older setup that produced good results. The calibration also estimated that
ρrsr =[
0.00077 −0.0050 −0.28]T
, which suggests that ~ρrs is nearly one third of the
length of ~ρrl, where in reality this fraction should be an order of magnitude smaller. The
true length of ~ρrl is on the order of a few meters, whereas the true length of ~ρrs is just
a few centimeters. However, λ and φ were found to be 1.53◦ and 44.2◦, both believable
values. There was no appreciable change in the tip, tilt, and clock angles.
Given the unrealistic estimates of the pinhole height and the rotator-sensor vector,
these results are not expected to provide accurate measurement of the sun direction vector
on-orbit despite what the residual error plot might suggest, showing that there is still a an
error in the updated calibration method. It was found through further experimentation
that constraining the third component of ρrsr to fall within 0±0.1 resulted in an estimate
Chapter 2. Acceptance Testing 29
Figure 2.16: Calibration Results, ρrli and ρrsr Estimated
of −0.1, but the RMS accuracy would be degraded, with the higher error regions around
the edge of the field of view becoming visible once again. The estimated pinhole height
would also be reduced. Fixing the third component of ρrsr to a value closer to 0 would
result in a further reduction in the RMS accuracy and a proportional increase in the
pinhole height. There was no appreciable difference observed in the other parameters.
It appears, therefore, that the degree of freedom introduced by adding ρrsr allows the
optimizer to falsely compensate for an unmodeled effect at the edge of the field of view,
with an accompanying change in the pinhole height.
More work is needed in order to understand and address this problem. One possible
approach is to measure the true values of ρrsr and ρrli and hard-code them into the cali-
bration script. This is, as was the previous version of the calibration routine, susceptible
to changes in the test setup and measurement error. Another approach, more preferable,
is to run the optimization on data collected for a smaller portion of the field of view. The
challenge with this approach is in deciding how much of the field of view to exclude, and
would require further study of the problem to understand the nature of the unmodeled
Chapter 2. Acceptance Testing 30
effect. In either case, validation of the calibration can be performed by comparing to
results from an on-orbit calibration of the fine sun sensors on the BRITE mission.
2.4 Reaction Wheels
2.4.1 Theory of Operation
Reaction wheels are used to control a spacecraft’s attitude by transferring angular mo-
mentum between the wheels and the rest of the spacecraft. A reaction wheel consists of
a rotor of known moment of inertia spun by a motor about a single axis. Three reaction
wheels are mounted orthogonally to the satellite bus for UTIAS-SFL satellites in order
to provide control on three independent axes. The dynamics of a spacecraft with three
reaction wheels expressed in some reference frame F b fixed to the spacecraft body and
centered at the center of mass is governed by [26]
Ibωb + ω×b Ibωb + IsAbωs + ωb×IsAbωs = Gb, (2.17)
where Ib is the satellite moment of inertia, ωb is the satellite angular velocity, Is is the
reaction wheel moment of inertia, and Gb is the sum of the remaining torques on the
satellite. The elements of ωs =[ωs,1 ωs,2 ωs,3
]Tare the rates of rotation, or wheel
speeds, of each reaction wheel, with each column ab,j ofAb containing the rotation axis of
the corresponding wheel. The term Isωs,j is sometimes referred to as the wheel “torque”.
Note, though, that this does not correspond to the total torque applied by the wheel to
the satellite since it ignores the gyric term ωb×Isωs,jab,j. On UTIAS-SFL satellites, the
wheel speed is measured by differentiating output from a Hall effect encoder. Two sizes
of wheel are used. The smaller model can sustain a maximum Isωs = 30 mN m s and
has a moment of inertia of Is = 5.12× 10−5 kg m2. These are standard on the Generic
Nanosatellite Bus platform and are used by AISSat-3 and EV9. The larger model can
sustain Isωs = 60 mN m s and has a moment of inertia Is = 8.78× 10−5 kg m2. These are
standard on the NEMO bus platform and are used by GHGSat-D and NORSAT-1. The
reaction wheel axes are usually aligned with the satellite axes, such that Ab is usually
treated as simply the 3 × 3 identity matrix, though in reality there is also a mounting
misalignment, which is budgeted for in the mission pointing budget.
The attitude control system for UTIAS-SFL satellites is, in theory, a zero-momentum
system, meaning that the wheels are nominally non-spinning when the satellite is held
fixed relative to inertial space. However, in practice, each wheel is set to track 50 rad/s
Chapter 2. Acceptance Testing 31
while idling in order to avoid operating in the zero-crossing range where wheel speed
measurement accuracy is poor due to less frequent encoder output. A spacecraft will
also gradually accumulate angular momentum in orbit due to the action of disturbance
torques. This angular momentum must be absorbed by the wheels and eventually re-
moved from the spacecraft to avoid saturating the wheels. For this reason, UTIAS-SFL
satellites are augmented with magnetic torquers, or magnetorquers, as secondary actua-
tors to continuously dump angular momentum as it is absorbed.
The reaction wheel controller can be configured in “speed” mode to track a com-
manded wheel speed, or “torque” mode to track a commanded wheel torque. The torque
mode overlies the speed mode in that the commanded torque is achieved by commanding
a profile of speeds to the wheel. The speed mode itself overlies another control loop, the
current controller, which tracks a given current commanded by the speed control mode.
This is illustrated in Figure 2.17.
-Wheel
DynamicsMotor Drive
Stages
Current Control LoopCurrent Control Loop
+-+- +
Speed Control LoopSpeed Control Loop
Torque Control LoopTorque Control Loop
TrueWheelTorque
TrueWheelSpeed
True Current
CommandedCurrent
CommandedWheel SpeedCommanded
WheelTorque Current
ControllerSpeed
ControllerTorque
Controller
Figure 2.17: Reaction Wheel Control Modes
Reaction wheels are the most complex and, consequently, the most expensive piece of
ADCS hardware used on UTIAS-SFL satellites, but enable a satellite to achieve highly
accurate pointing and allow it to slew to a pointing target relatively quickly. Though they
are used on each of the four satellites discussed in this thesis, some missions developed
by the lab forgo the advantages provided by reaction wheels when requirements allow in
order to reduce cost and complexity, and opt to use magnetorquers or magnetic hysteresis
rods as primary actuators instead.
2.4.2 Testing Cycle
Reaction wheels undergo a reduced set of tests compared to the standard test cycle.
The typical acceptance testing campaign for a reaction wheel consists of an initial long
Chapter 2. Acceptance Testing 32
form functional test (LFFT), a thermal acceptance campaign, and a closeout LFFT. The
LFFT for a reaction wheel consists of a built-in short form functional test (SFFT), a
torque tracking error test, a noise over speed test, and a power consumption over speed
test. The wheels are delivered by the manufacturer as an assembled unit, and T-shock
testing is handled by the manufacturer.
This thesis contributed improvements to the torque error test, investigated issues with
timestamping in wheel test results, and assessed the effect of a current sensor bias on the
EV9 and AISSat-3 wheels.
2.4.3 Torque Test Improvements
The purpose of the torque test is to measure a reaction wheel’s performance in tracking
torque commands at various speeds. The reaction wheel is commanded to hold a certain
speed, and then issued a torque command. Wheel speed measurements are collected for
one minute while the torque is being applied. This is repeated for other combinations
of wheel speeds and torques. The particular speeds and torques are notionally chosen to
reflect mission requirements, but in practice are standardized for the 30 mNms wheels
and the 60 mNms wheels. In either case, the speeds consist of a low speed and a high
speed, and the torques similarly consist of a low torque and a high torque. The low
torques are chosen to be roughly representative of the torque required for nadir tracking,
while the high torque is chosen to be reflective of the torque needed for slewing. The
low speed is chosen as the idle speed of the wheels, reflecting the wheel speed at the
beginning of a maneuver, and the high speed is chosen as the highest speed expected
for the wheels during a slew, reflecting the wheel speed mid-maneuver. Previously, the
low and high torques were applied in both the negative and positive directions, but
only positive speeds were tested, giving a total of eight speed and torque combinations.
However, it was decided that both negative and positive speeds should be included for
completeness to give a new total of 16 cases. Table 2.2 gives the values of low and high
speed and torque used for the 30 mNms wheels and the 60 mNms wheels.
30 mNms 60 mNms
Low Speed (rad/s) 100 50High Speed (rad/s) 300 300Low Torque (Nm) 10−6 10−5
High Torque (Nm) 4× 10−4 6× 10−5
Table 2.2: Reaction Wheel Torque Test Speeds and Torques
Chapter 2. Acceptance Testing 33
For each segment of the test, a regression line is fit to the collected speed measurements
ωk, the slope of which is referred to as the nominal acceleration α, where the subscript k
refers to the kth measurement. Multiplying this by the wheel moment of inertia gives the
nominal torque τn = Isα. This should be close to the commanded torque τc. The wheel
speeds obtained by evaluating the best fit line at the sample times are correspondingly
referred to as the nominal wheel speeds ωn,k. The difference between the measured speeds
and the nominal speeds is referred to as the wheel speed error ωe,k = ωk − ωn,k. Torque
jitter is then defined as the derivative of the wheel speed error multiplied by the wheel
moment of inertia. This is obtained by numerically differentiating using a first difference
method
τe,k =Is
∆tk(ωe,k+1 − ωe,k) . (2.18)
Several metrics are calculated using these quantities. Previously, these included the
torque bias, the torque jitter mean, the torque jitter standard deviation, the equivalent
one second torque jitter standard deviation, the torque jitter fast Fourier transform (FFT)
peak, and the FFT peak frequency. These are defined in Table 2.3. In the table, fs is
the sampling frequency of the wheel speed measurements.
Metric Symbol Formula
Torque Bias τb τn − τc
Torque Jitter Mean τe1
N
N∑k=1
τe,k
Torque Jitter Std. Dev. στ,e
√√√√ 1
N − 1
N∑k=1
(τe,k − τe)2
Equiv. 1s Torque Jitter Std. Dev. στ,1 See Equation 2.26
Torque Jitter FFT Peak Te,max maxn=1...floorN
2
∣∣∣∣∣N∑k=1
τe,ke−j2π(k−1)(n−1)
N
∣∣∣∣∣Torque Jitter FFT Peak Frequency fp
fsN· arg max
n=1...floorN2
∣∣∣∣∣N∑k=1
τe,ke−j2π(k−1)(n−1)
N
∣∣∣∣∣Table 2.3: Reaction Wheel Torque Test Old Metrics
This thesis made updates to the torque jitter mean, equivalent one second standard
deviation, and the two FFT metrics.
Chapter 2. Acceptance Testing 34
Torque Jitter Mean
The purpose of the torque jitter mean metric was to measure the mean deviation of
the applied torque from the nominal torque [27]. The intent was to detect long-period
drifts from the nominal torque. However, it was discovered that this metric was only
reflective of the difference between the first wheel speed measurement and final wheel
speed measurement as well as the total measurement duration in each test segment, and
was therefore not a meaningful metric. This result can be shown by first substituting
Equation 2.18 into the formula for torque jitter mean in Table 2.3
τe =IsN
N∑k=1
1
∆tk(ωe,k+1 − ωe,k) (2.19)
Usually, ∆tk = ∆tl = ∆t ∀k, l, i.e. the sampling interval is uniform. Substituting in the
definition of ωe,k gives
τe =IsN∆t
N∑k=1
(ωk+1 − ωn,k+1 − ωk + ωn,k) (2.20)
=IsN∆t
N∑k=1
(ωk+1 − ωk)−IsN∆t
N∑k=1
(ωn,k+1 − ωn,k) . (2.21)
Working with the second term, in Equation 2.21, we find
IsN∆t
N∑k=1
(ωn,k+1 − ωn,k) =IsN
N∑k=1
α = Isα = τn. (2.22)
Now working with the first term in Equation 2.21, the middle terms in the summation
cancel and the summation collapses into
N∑k=1
(ωk+1 − ωk) = ωN+1 − ω1. (2.23)
Finally, substituting Equations 2.22 and 2.23 into Equation 2.21 gives
τe =Is (ωN+1 − ω1)
N∆t− τn, (2.24)
which contains no information about the data between the first and last wheel speed
measurements.
It was decided to replace this metric with the coefficient of determination, or R-
Chapter 2. Acceptance Testing 35
squared value, of the regression line fitted through the wheel speed measurements. This
serves the original intent of the torque jitter mean to detect long-period drifts, since
these drifts would also be apparent in the wheel speed measurements and be reflected
by a lower R-squared value, indicating a poor fit. Further work is needed to validate the
efficacy of this metric in detecting real long-period drifts.
One-Second Equivalent Torque Jitter Standard Deviation
The one second equivalent standard deviation metric is used in Mirage, UTIAS-SFL’s in-
house satellite attitude simulator, as the standard deviation of an additive white Gaussian
source of torque noise. Using this standard deviation, the noise source should, when
sampled at the simulation update frequency, generate torque noise that has a similar
effect on spacecraft pointing as the torque jitter measured in the torque test. For Mirage,
the simulation update frequency is 1 Hz. The usual torque jitter standard deviation
στ,e could not be used to define the noise source because aliasing results in larger-than-
expected pointing error on the next cycle.
Previously, the approach used to calculate this metric was to first partition the torque
jitter into M one-second segments, where M =⌊N∆t
1s
⌋and calculate the means of each
segment
τe,l =1
Nl+1 −Nl
Nl+1−1∑k=Nl
τe,k (2.25)
where l indicates the lth segment and Nl refers to the index of the first point in the lth
segment. The one-second equivalent standard deviation is then the standard deviation
of these means
στ,1 =
√√√√ 1
M − 1
M∑l=1
(τe,l −
1
M
M∑l=1
τe,l
)2
. (2.26)
στ,1 usually has values on the order of 10−6, which is much lower than στ,e, which typically
has values on the order of 10−4, as desired. This seems intuitively to be a valid approach,
but it was never shown that this would result in a noise source that would accurately
reflect the measured torque jitter, and it was suspected that this approach produced
results that are too optimistic. A more rigorous approach to this metric was desired.
One approach that was considered was to apply an anti-aliasing filter to the signal and
calculate the standard deviation of the filtered signal. The anti-aliasing filter is simply
an ideal low-pass filter with a cutoff frequency of 0.5 Hz, or one half the sampling rate.
The filtered signal is calculated by taking its convolution with the anti-aliasing filter. In
Chapter 2. Acceptance Testing 36
the frequency domain, this is a multiplication given by
Te,k = H0.5Te,k (2.27)
where Te,k is the discrete Fourier transform of τe,k obtained by taking the fast Fourier
transform of the latter, and H0.5 is the anti-aliasing low-pass filter defined by
H0.5 =
{1, −0.5 Hz < fk < 0.5 Hz
0, otherwise(2.28)
Taking the inverse discrete Fourier transform of Te,k to convert it back to the time domain,
and assuming that the torque jitter is an ergodic process it is possible to estimate the
standard deviation as desired using
στ,1 =
√√√√ 1
N − 1
N∑l=1
(τe,l −
1
N
N∑l=1
τe,l
)2
. (2.29)
The drawback to this approach is that much of the content of the noise is deleted by
the anti-aliasing filter. Figure 2.18 shows a typical plot of the FFT magnitude of the
torque jitter. The plot shows that most of the power of the noise is contained in frequen-
cies above 0.5 Hz. Using this method of calculating the one second equivalent torque
jitter standard deviation would mean that the effect of the noise at higher frequencies
would not be captured in the simulation, i.e. the noise is undersampled. Ideally, this
would be taken into consideration when choosing the simulator update frequency. How-
ever, changing the simulator update frequency would require substantial code changes in
addition to bogging down the simulation.
A time-domain approach was also conceived for calculating this metric. The idea
behind this approach was to calculate a crude estimate of the maximum satellite pointing
jitter standard deviation, and then solve for the value of the torque jitter metric that
would achieve the computed pointing jitter in the simulator. To begin, a one-axis model
of the spacecraft is used to simplify the attitude dynamics. This has the form
Iθ = τ, (2.30)
where I is the spacecraft moment of inertia, θ is the spacecraft attitude, and τ is the wheel
torque. Note that this model includes torque and pointing jitter. This is a reasonable
approximation of the satellite dynamics when performing target tracking slew maneuvers
Chapter 2. Acceptance Testing 37
0 5 10 15 20 250
0.5
1
1.5
2
2.5x 10
−5Torque Jitter Single−Sided Amplitude Spectrum of Wheel: 60−171 at 48HzParsing of commanded torque 1×10−5 Nm at 300 rad/s completed.
Frequency (Hz)
Tor
que
Jitte
r A
mpl
itude
(N
m/√H
z)
Figure 2.18: Reaction Wheel Torque Jitter FFT
during which the satellite only slews about one axis. The nominal jitter free dynamics
are given by
Iθn = τn, (2.31)
where θn and τn are the nominal spacecraft attitude and wheel torque, respectively.
Subtracting Equation 2.31 from Equation 2.30 gives the jitter dynamics
I(θ − θn
)= τ − τn (2.32)
Iθe = τe. (2.33)
Here, θe and τe are the pointing and torque jitter, respectively. Integrating Equation 2.33
twice over one-second segments and dividing by the moment of inertia gives the pointing
jitter over each segment
θe,l =1
I
∫ tl+1
tl
∫ t′
tl
τedtdt′. (2.34)
This can be related to the one-second equivalent torque jitter τe,1,l by observing that the
latter is treated by the simulator as a zero-order hold, represented here by τe,1 as it is
Chapter 2. Acceptance Testing 38
propagated through the attitude dynamics. It is desired that the values of τe,1 satisfy
θe,l =1
I
∫ tl+1
tl
∫ t′
tl
τe,1dtdt′. (2.35)
Since τe,1 is a zero-order hold of a 1 Hz discrete-time signal, it is constant over one-second
intervals. Thus,
θe,l =τe,1,1I
∫ tl+1
tl
∫ t′
tl
dtdt′ (2.36)
=τe,1∆t2
2I(2.37)
where ∆t = tk+1 − tk.Taking the standard deviation of θe,l gives
σθ,1,l =√⟨
θ2e,l
⟩− 〈θe,l〉2 (2.38)
where 〈·〉 is the expected value operator. Assuming the pointing jitter is ergodic, σθ,1,l =
σθ,1,m = σθ,1 ∀l,m. Substituting in Equation 2.37 gives
σθ,1 =
√√√√⟨(τe,1,l∆t22I
)2⟩−⟨τe,1,l∆t2
2I
⟩2
(2.39)
=
√∆t4
4I2
(⟨τ 2e,1,l
⟩− 〈τe,1,l〉2
)(2.40)
=∆t2
2I
√⟨τ 2e,1,l
⟩− 〈τe,1,l〉2 (2.41)
=∆t2
2Iστ,1 (2.42)
which can be rearranged to get
στ,1 =2I
∆t2σθ,1. (2.43)
In practice, using discrete data and again assuming the pointing jitter is ergodic, θe,l
is calculated from the wheel torque measurements by trapezoidal integration
θe,l =1
I
kl+1−1∑k′=kl
∆t′k2
(k′+1∑k=kl
∆tk (τe,k+1 + τe,k)
2+
k′∑k=kl
∆tk (τe,k+1 + τe,k)
2
)(2.44)
Chapter 2. Acceptance Testing 39
and σθ,1 is estimated using
σθ,1 =
√√√√ 1
M − 1
M∑l=1
(θe,l −
1
M
M∑l=1
θe,l
)2
. (2.45)
where M is the total number of one-second intervals. The axial moments of inertia of
the spacecraft are used for I in order to produce an estimate of the metric for each axis.
This method is similar to the old method of Equation 2.26, the key difference being
that the torque signal is integrated twice rather than just once. The advantage of this
method is that it attempts to capture the effect of the torque jitter on the spacecraft
pointing jitter. Additionally, by substituting the allowable pointing jitter from the mis-
sion requirements as σθ,1 into Equation 2.43, a rough estimate of the required one-second
equivalent torque jitter of the wheels can be calculated and compared to the value cal-
culated from measurements as a quick check of a wheel’s performance. However, this
method relies on approximate numerical integration of the torque jitter to estimate the
pointing jitter, and also neglects the effects of gyric torques since it relies on a one-axis
model.
A third method conceived for calculating the metric arrives at a new model for gen-
erating torque noise in Mirage rather than a formula for calculating the existing metric.
This method approaches the conversion between the standard deviation of the measured
torque jitter to an equivalent one-second torque jitter standard deviation as a discretiza-
tion problem. As with the previous approach, this method uses a single-axis model for
spacecraft attitude dynamics but with variables defined differently. Here, the model is
constructed with the form
Iθ = u+ w (2.46)
where I is again the spacecraft moment of inertia, θ is the spacecraft attitude, u is the
applied wheel torque, and w is the wheel torque jitter. w is assumed to be an additive
white Gaussian noise source, i.e.
w ∼ N (0, στ,e) , 〈w(t)w(t′)〉 = 0 ∀t 6= t′ (2.47)
where στ,e is the usual torque jitter standard deviation as defined in Table 2.3.
Defining a state x =[x1 x2
]so that x1 , θ and x2 , θ and output y = θ,
Chapter 2. Acceptance Testing 40
Equation 2.46 can be written in state-space form
˙[x1
x2
]=
[0 1
0 0
]︸ ︷︷ ︸
A
[x1
x2
]+
[01I
]︸ ︷︷ ︸B
u+
[01I
]︸ ︷︷ ︸E
w (2.48)
y =[
1 0]
︸ ︷︷ ︸C
x (2.49)
Multiplying both sides of Equation 2.48 by e−At gives
e−Atx = e−AtAx+ e−AtBu+ e−AtEw (2.50)
Now, moving the first term on the right side of Equation 2.50 to the left side, then
integrating over the sample period T ,∫ tk+T
tk
(e−Atx− e−AtAx
)dt =
∫ tk+T
tk
e−At (Bu+Ew) dt (2.51)
e−A(tk+T )xk+1 = e−A(tk)xk +
∫ tk+T
tk
e−At (Bu+Ew) dt (2.52)
xk+1 = eATxk +
∫ tk+T
tk
eA(tk+T−t) (Bu+Ew) dt (2.53)
where xk = x(tk). Now making a change of variables so that
τ = tk + T − t, dτ = −dt, (2.54)
Equation 2.53 becomes
xk+1 = eATxk +
∫ T
0
eAτ (Bu+Ew) dτ. (2.55)
The commanded torque u remains constant over each control cycle. The control cycle
also has a period of one second, which means that u remains constant over the integration
period and may be factored out of the integral
xk+1 = eATxk +
∫ T
0
eAτdτBuk +
∫ T
0
eAτEwdτ (2.56)
Chapter 2. Acceptance Testing 41
where uk = u(tk). Now,
eAT =
[1 T
0 1
](2.57)
and ∫ T
0
eAτdτ =
∫ T
0
[1 τ
0 1
]dτ =
[T T 2
2
0 T
](2.58)
Dealing with the second integral term in Equation 2.56 is more involved due to the
integration of a random variable. However, this can be simplified by treating the entire
term as a random variable wk with covariance
QT =
⟨(∫ T
0
eAτEwdτ
)(∫ T
0
eAτEwdτ
)T⟩(2.59)
Combining the two integrals gives
QT =
⟨∫ T
0
∫ T
0
eAτEw(τ)w(τ ′)ET eAT τdτdτ ′
⟩(2.60)
The order of the integral and the expectation can be switched since the expectation
operator is an ensemble average, whereas the integration is over the time domain, getting
QT =
∫ T
0
∫ T
0
eAτE 〈w(τ)w(τ ′)〉ET eAT τ ′dτdτ ′ (2.61)
However,
〈w(τ)w(τ ′)〉 =
{0, τ 6= τ ′
σ2τ,e, τ = τ ′
(2.62)
Equation 2.61 thus becomes
QT = σ2τ,e
∫ T
0
eAτEET eAT τdτ (2.63)
= σ2τ,e
∫ T
0
[1 τ
0 1
][0 0
0 1I2
][1 0
τ 1
]dτ (2.64)
= σ2τ,e
[T 3
3I2T 2
2I2
T 2
2I2TI2
](2.65)
Substituting Equations 2.57, 2.58, and 2.65 into Equation 2.56, it is possible to write the
Chapter 2. Acceptance Testing 42
discretized state space equations[x1,k+1
x2,k+1
]=
[1 T
0 1
][x1,k
x2,k
]+
[T T 2
2
0 T
][01I
]uk +
[w1,k
w2,k
](2.66)
=
[1 T
0 1
]︸ ︷︷ ︸
Ad
[x1,k
x2,k
]+
[T 2
2ITI
]︸ ︷︷ ︸Bd
uk +
[w1,k
w2,k
](2.67)
yk =[
1 0]
︸ ︷︷ ︸Cd
xk (2.68)
where [w1,k
w2,k
]∼ N
(0, σ2
τ,e
[T 3
3I2T 2
2I2
T 2
2I2TI2
])(2.69)
Note that, under the one-axis model for spacecraft attitude dynamics, Equations 2.67
and 2.68 are the exact discretized forms of Equations 2.48 and 2.49, i.e. the solution of
Equations 2.67 and 2.68 satisfy xk = x (tk) ∀k.
In order to express the equivalent one-second wheel torque jitter in a form that can
be used in Mirage, Equations 2.67 and 2.68 must be converted into a single difference
equation. To do this, first take z transforms of both sides to get
zX (z) = AdX (z) +BdX (z) +W (z) (2.70)
Y (z) = CdX (z) . (2.71)
Rearranging and solving for Y as a function of U and W ,
(z1−Ad)X (z) = BdU (z) +W (z) (2.72)
X (z) = (z1−Ad)−1BdU (z) + (z1−Ad)
−1W (z) (2.73)
Y (z) = Cd (z1−Ad)−1BdU (z) +Cd (z1−Ad)
−1W (z) (2.74)
where 1 is the identity matrix. Now,
z1−Ad =
[z − 1 −T
0 z − 1
](2.75)
Chapter 2. Acceptance Testing 43
(z1−Ad)−1 =
[z − 1 T
0 z − 1
]∣∣∣∣∣ z − 1 −T
0 z − 1
∣∣∣∣∣=
1
(z − 1)2
[z − 1 T
0 z − 1
](2.76)
Substituting Equation 2.76 back into Equation 2.74,
Y (z) =1
(z − 1)2
([1 0
] [ z − 1 T
0 z − 1
][T 2
2ITI
]U (z)
+[
1 0] [ z − 1 T
0 z − 1
]W (z)
) (2.77)
Rearranging eventually leads to
z2Y (z)− 2zY (z) + Y (z) =T 2
2IzU (z) +
T 2
2IU (z) + zW1 (z)−W1 (z) + TW2 (z) (2.78)
Taking the inverse z transform gives
yk+2 − 2yk+1 + yk =T 2
2Iuk+1 +
T 2
2Iuk + w1,k+1 − w1,k + Tw2,k, (2.79)
and rearranging to convert back into units of torque, as well as substituting back θ in
place of y,
I
T 2(θk+2 − 2θk+1 + θk) =
1
2uk+1 +
1
2uk + w1,k+1 − w1,k +
w2,k
T, (2.80)
where wk = IT 2wk with [
w1,k
w2,k
]∼ N
(0, σ2
τ,e
[1
3T1
2T 2
12T 2
1T 3
])(2.81)
The last three terms of Equation 2.80 can be added to the nominal wheel torque in
Mirage to generate torque jitter, and constitute the terms of the new torque model. The
covariances of these terms are calculated using the standard deviation of the measured
torque jitter and scaled by the sampling time. This model suggests that an accurate
discrete torque jitter model requires two statistically dependent Gaussian white noise
sources rather than a single noise source.
This approach of modeling the torque jitter is the most rigorous of the three discussed
in this section. The only simplification made in deriving the model is the use of one-axis
Chapter 2. Acceptance Testing 44
attitude dynamics. However, further work is needed to validate this model and compare
its performance against the others, as well as against the previous method of averaging
the torque jitter. This would involve implementing each of these methods in Mirage
and comparing the simulation results against real on-orbit data collected under the same
pointing conditions. Unfortunately, the time available for this thesis was insufficient to
complete this work due to more mission-critical hardware testing taking higher priority.
Fast-Fourier Transform Area
During the acceptance testing campaigns for the NORSAT-1 and GHGSat-D reaction
wheels, a low-frequency spike was observed in the torque jitter FFT magnitude plots
for the low-speed torque test cases. An example of this is shown in Figure 2.19. Such
low-frequency spikes indicate the presence of a low-frequency oscillation in the reaction
wheel torque jitter, which could have a noticeable impact on the satellite’s pointing
performance.
0 5 10 15 20 25 30 35 40 45 500
1
2
3
4
5
6
7
8x 10
−6Torque Jitter Single−Sided Amplitude Spectrum of Wheel: 60−173 at 97HzParsing of commanded torque 1×10−5 Nm at 50 rad/s completed.
Frequency (Hz)
Tor
que
Jitte
r A
mpl
itude
(N
m/√H
z)
Figure 2.19: Torque Jitter FFT Spike on NORSAT-1 Reaction Wheel
These spikes were only detected upon reviewing the plots generated by the test anal-
Chapter 2. Acceptance Testing 45
ysis script. Due to the large number of plots generated by the script, reviewing them is
a labor-intensive process. In order to help automate the detection of these torque jitter
FFT spikes, it was decided that an estimate of the area under the FFT plot up to 10 Hz
would be added to the torque test analysis. Since the magnitude of the Fourier transform
is the square root of the power spectral density (PSD) of a signal, this gives an estimate
of the power of the torque jitter up to 10 Hz. The cutoff frequency of 10 Hz was chosen
because the spacecraft attitude dynamics act as a low-pass filter, reducing the impact of
torque jitter at higher frequencies.
The area under the FFT magnitude plot is calculated by applying a trapezoidal
integration rule to the torque jitter FFT magnitude, i.e.
A =kc−1∑k=1
∆fk(Te,k+1 − Te,k)
2(2.82)
where fkc = 10 Hz. This calculation was validated by comparing reaction wheel test data
from the earlier NEMO-AM and NEMO-HD missions, which showed even larger spikes,
to GHGSat-D and NORSAT-1 data. A plot of the torque jitter FFT magnitude from a
NEMO-HD reaction wheel is shown in Figure 2.20. The FFT area for NEMO-HD and
NEMO-AM wheels was found to be typically on the order of 3×10−5 whereas that for the
NORSAT-1 and GHGSat-D wheels was found to be around 8× 10−6. Using GHGSat-D
mass properties, analysis has shown that the corresponding overall contributions of these
spikes to the pointing error are 2.5 × 10−3 ◦ and 7.5 × 10−4 ◦, respectively, which are
negligible compared to the overall pointing error of 0.14◦ allocated to the reaction wheels
in the pointing budget [12]. However, further work is needed in order to determine an
acceptance criterion for this metric, since the relationship between the FFT area and the
impact on pointing error is not straightforward. As an interim measure, future wheels
tested with this metric will be compared to results obtained with past wheels, with further
analysis being performed as necessary if it is found that any future wheels perform worse.
2.4.4 Timestamp Uniformity
The reaction wheel torque test was previously run twice in each LFFT: once with a
polling rate of 20 Hz and once with a polling rate of 60 Hz. The purpose of this was to
determine if any anomalies seen in the results were artifacts of poor timestamping. It
has been observed that the 60 Hz test often produces results with inaccurate or duplicate
timestamps, which substantially degrades the results. Although the 20 Hz test usually
Chapter 2. Acceptance Testing 46
0 5 10 15 20 25 30 350
0.5
1
1.5
2
2.5
3x 10
−5Torque Jitter Single−Sided Amplitude Spectrum of Wheel: 60−141 at 64Hz
Parsing of commanded torque 6×10−5 Nm at 50 rad/s completed.
Frequency (Hz)
Tor
que
Jitte
r A
mpl
itude
(N
m/√H
z)
Figure 2.20: Torque Jitter FFT Spike on NEMO-HD Reaction Wheel
produces relatively uniform timestamps, the low sampling rate results in aliasing that
makes it impossible to distinguish between low-frequency torque jitter anomalies that
could affect the satellite’s pointing performance and high-frequency anomalies that would
be filtered out by the spacecraft’s attitude dynamics. A plot of the delta times, or time
steps, between each timestamp for one segment of a 60 Hz torque test is shown in Figure
2.21.
Updates to UTIAS-SFL’s wheel interface software, WheelTerm, were attempted,
which substantially improved the consistency of the timestamps for high poll rates. Figure
2.22 shows a plot of the time steps for a 50 Hz torque test using the updated WheelTerm.
However, it was found that some time stamp jitter still occurs, and, furthermore, that
the results showed significant rates of packet loss. It was therefore decided to turn to
addressing this issue by improving the way post-processing scripts handled timestamps.
Previously, the scripts would either read the timestamps for the test from the dataset,
or hardcoded the timestamps as either 20 Hz or 60 Hz. The problem with the hardcoding
approach was that if a substantial number of data points were lost due to packet losses,
the total duration of the test segment would be substantially reduced. This would skew
Chapter 2. Acceptance Testing 47
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0 500 1000 1500 2000 2500 3000 3500 4000
Tim
e S
tep
(s)
Measurement Number
Reaction Wheel Torque Test Time Step vs. Measurement Number
Figure 2.21: Old WheelTerm Time Step Variation, 60 Hz Torque Test
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0 500 1000 1500 2000 2500 3000 3500
Tim
e S
tep
(s)
Measurement Number
Reaction Wheel Torque Test Time Step vs. Measurement Number
Figure 2.22: New WheelTerm Time Step Variation, 50 Hz Torque Test
the calculation of torque test metrics, in particular the torque bias. A new option was
therefore added to the analysis scripts to generate timestamps with uniform time steps
Chapter 2. Acceptance Testing 48
between them the entire duration of the test divided by the number of data points.
This change helped reveal a previously unknown phenomenon – that the torque bias
is proportional to the applied torque. Specifically, the torque bias has been observed
to consistently equal approximately 0.55% of the applied torque. This behavior will be
captured in future iterations of Mirage, the attitude simulator, to determine its impact on
pointing performance, though the impact is expected to be small if it is at all noticeable.
Chapter 3
Conclusion
This thesis has contributed acceptance testing of attitude determination and control
system (ADCS) hardware for the AISSat-3, EV9, GHGSat-D, and NORSAT-1 missions
being developed by the Space Flight Laboratory at the University of Toronto Institute
for Aerospace Studies (UTIAS-SFL), as well as improvements to these tests and related
development and analysis work. In particular, acceptance testing was performed for
magnetometers, angular rate sensors, sun sensors, reaction wheels, magnetorquers, and
the GHGSat-D star tracker, and key contributions were made to the acceptance testing
procedures of magnetometers, angular rate sensors, sun sensors, and reaction wheels.
Updates were made to the magnetometer functional test, including the elimination of
the permanent magnet from the polarity check and the addition of a rough bias check.
The former eliminated a source of risk for the missions on which the magnetometers will
fly by reducing the chance that the magnetometer would be damaged or permanently
magnetized during testing. The latter allows the magnetometer bias to be checked more
frequently throughout the acceptance testing campaign, which facilitates troubleshooting
of anomalies encountered during testing and reduces the risk of delays in the acceptance
testing campaign by detecting faulty sensors early in the test cycle. An outdoor ver-
ification of the magnetometer calibration was also added. This test verified that the
calibration error of the magnetometers for each of the missions discussed in this thesis
was well below the alloted error in their pointing budgets.
The rate sensor calibration procedure was simplified and expedited with a reduction in
the number of calibration orientations from 21 to 9. It was found that this reduced num-
ber of orientations provides a comparable level of accuracy to the original 21 orientations
in determining the calibration parameters, and cuts the time required for calibrating the
rate sensor roughly in half. Additionally, a correlation was discovered between the screw
torque in the rate sensor daughter boards and the bias on the X- and Y-axis sensors,
49
Chapter 3. Conclusion 50
which reside on the daughter boards. The cause of this was determined to be stress ap-
plied by the screws to the sensor packages, affecting their measurement of Coriolis force.
It was determined that this issue was of minimum risk to the missions on which the rate
sensors will be flying, and that it would be impractical to design a replacement for the
upcoming missions. Recommendations for addressing this problem in future revisions of
the UTIAS-SFL rate sensor were to either increase the size of the daughter boards, or to
use adhesives to bond the daughter boards to their enclosures.
Corrections were made to the fine sun sensor calibration procedure in order to improve
the accuracy of the calibration. This included adding a sun source misalignment angle and
the vector between the sensor and rotator center of rotation to the calibration variables
estimated by the post-processing script. However, it was found that this extra freedom
was being exploited by the script to incorrectly compensate for unmodeled effects at the
edge of the sun sensor field of view, and was therefore producing unrealistic, unusable
results. Future work would test the calibration on only measurements collected within
a subset of the field of view in order to avoid including regions where the calibration
model breaks down, and explore the possibility of measuring and hardcoding the offset
between the sensor and rotator center of rotation. The results of these approaches would
be validated against on-orbit calibration results, and is expected to help eliminate a 2◦
calibration error observed in on-orbit operation of the sun sensors.
Finally, many improvements were contributed to the torque test in the reaction wheel
long-form functional test (LFFT). These included the replacement of the torque jitter
mean metric with the more meaningful angular velocity coefficient of determination, de-
veloping three new approaches to modeling the reaction wheel torque jitter as a simulated
noise source, adding an estimate of the area under the torque jitter fast Fourier transform
(FFT) magnitude plot as a new metric, and improving the uniformity of timestamps in
the data collected for the test. Examining the angular velocity coefficient of determi-
nation in the reaction wheel torque test helps to detect long-term deviations in applied
torque when the wheel is commanded to apply a constant torque, the occurrence of
which would indicate a faulty wheel or an error in the test setup. The three methods of
modeling torque jitter represent more rigorous approaches to simulating reaction wheel
performance in Mirage, UTIAS-SFL’s in-house attitude simulator, than what was previ-
ously implemented, providing better confidence in the representativeness of the models
to the wheels’ actual performance. The FFT area metric would help detect low-frequency
torque jitter anomalies, which could have an impact on satellite pointing performance,
though it was shown that the particular anomalies detected for the wheels tested in this
thesis did not. Finally, improving the uniformity of the test data timestamps has helped
Chapter 3. Conclusion 51
to improve the accuracy of the analysis performed on the data. Future work would im-
plement the three approaches to modeling torque jitter in Mirage and validating each
against on-orbit results in order to determine which approach provides the most accurate
simulation. Assessment of the effectiveness of the FFT magnitude plot area metric is
also pending.
The contributions of this thesis will contribute in large part to ensuring that the
hardware tested in this thesis and in the future will function and perform as demanded
by the mission and system requirements of the missions on which they will be flying, and
that the test procedures used to test the hardware are efficient and thorough.
Bibliography
[1] C. Grant et al., “On-orbit performance of the BRITE nanosatellite astronomy con-
stellation,” in 65th International Astronautical Congress, Toronto, Canada, 2014,
IAC-14-B4.2.3.
[2] J. R. Wertz, D. F. Everett, and J. J. Puschell, Space Mission Engineering: The New
SMAD. Microcosm Press, 2011, ch. 2.1, p. 37.
[3] W. J. Larson and J. R. Wertz, Space Mission Analysis and Design, 3rd ed. Micro-
cosm Press, 1999, ch. 12.1, p. 520.
[4] A. Philip, S. Eagleson et al., Test Plan, Procedure, and Results Report on Wheels
(Template), UTIAS-SFL, May 2015, SFL-AIM-ACS-TP002-2.1.
[5] G.-Y. Chung and R. E. Zee, Thermal Shock Test Procedure, UTIAS-SFL, August
2009, TPP0002A-1.3.
[6] R. E. Zee, UTIAS/SFL Thermal Vacuum and Standard Thermal Test Procedure,
UTIAS-SFL, TPP0001B-1.2.
[7] K. Sarda, “ADCS Hardware Temperature Limits,” UTIAS-SFL, Tech. Rep. SFL-
GEN-ACS-SP003-1.0, November 2014.
[8] “Nanosatellites: EV9,” University of Toronto Institute for Aerospace Studies Space
Flight Laboratory. [Online]. Available: http://utias-sfl.net/?page id=1271
[9] Nanosatellites: AISSat-3. University of Toronto Institute for Aerospace Studies
Space Flight Laboratory. [Online]. Available: http://utias-sfl.net/?page id=1268
[10] Microsatellites: GHGSat-D. University of Toronto Institute for Aerospace Studies
Space Flight Laboratory. [Online]. Available: http://utias-sfl.net/?page id=1254
[11] Microsatellites: NORSAT-1. University of Toronto Institute for Aerospace Studies
Space Flight Laboratory. [Online]. Available: http://utias-sfl.net/?page id=1260
52
Bibliography 53
[12] N. Ibrahim, “NEMO-AM attitude determination and control system design and
analysis,” UTIAS-SFL, Tech. Rep. SFL-NAM-ACS-D001-2.1, December 2014.
[13] S. Eagleson, “AISSat-1 attitude determination and control design document,”
UTIAS-SFL, Tech. Rep. SFL-AIS-ACS-D001-1.1, April 2008.
[14] S. Eagleson, K. Sarda, and Y. Shen, Test Plan, Procedures, and Results Report on
Magnetometers, UTIAS-SFL, August 2014, SFL-GNB-ACS-TP004-3.0.
[15] S. Eagleson and K. Sarda, Test Plan, Procedures, and Results Report on Magne-
tometers, UTIAS-SFL, February 2011, SFL-GNB-ACS-TP004-2.5.
[16] Operation Manual for Mag-03 Three-Axis Magnetic Field Sensors, Bartington In-
struments, Ltd., Witney, Oxford, UK, OM1004.
[17] Magnetic field calculators. NOAA National Centers for Environmental Information.
[Online]. Available: http://www.ngdc.noaa.gov/geomag-web/#igrfwmm
[18] R. Curey et al., IEEE Standard Specification Format Guide and Test Procedure for
Coriolis Vibratory Gyros, IEEE Aerospace and Electronic Systems Society, New
York, December 2004, IEEE-Std-1431-2004(R2010).
[19] S. Eagleson, K. Sarda et al., “Attitude determination and control CanX-4/5 sub-
system critical design review document,” UTIAS-SFL, Tech. Rep. SFL-CX4-CDR-
D003-1.0, March 2007.
[20] N. Roth, GNB Rate Sensor Calibration Procedure, UTIAS-SFL, January 2014, SFL-
GNB-ACS-TP012.
[21] 1270VS Single-Axis Rate Table Datasheet, Ideal Aerosmith, Inc., East Grand Forks,
MN, USA.
[22] M. Fournier, S. Eagleson, K. Sarda et al., Test Plan, Procedure and Results Report
on Rate Sensors, UTIAS-SFL, July 2015, SFL-GNB-ACS-TP006-2.3.
[23] E.-H. Shin and N. El-Sheimy, “A new calibration method for strapdown inertial
navigation systems,” Zeitschrift fur Vermessengswesen Journal, vol. 127, no. 1, pp.
1–10, 2001.
[24] S. Eagleson, K. Sarda, Y. Shen et al., Test Plan, Procedure and Results Report on
Sun Sensors, UTIAS-SFL, August 2014, SFL-GNB-ACS-TP010-2.8.
Bibliography 54
[25] P. Gavigan, “Design, test, calibration and qualification of satellite sun sensors,
power systems and supporting software development,” Master’s thesis, University of
Toronto, 2011.
[26] P. C. Hughes, Spacecraft Attitude Dynamics. Dover, 2004, ch. 6, p. 158.
[27] P. G. Lukaszynski, “Attitude control hardware and software for nanosatellites,”
Master’s thesis, University of Toronto, 2013.
top related