Autonomous Navigation for Nano-satellites during Earth-Moon Transfer MSc Thesis Supervisor

Autonomous Navigation for Nano-satellites during Earth-Moon Transfer MSc Thesis Supervisor
Autonomous Navigation for Nano-satellites
during Earth-Moon Transfer
MSc Thesis
Supervisor
dr.ir. Erwin Mooij
Author
F.A.R. Belien - 1221582
July 16, 2015
Faculty of Aerospace Engineering
·
Delft University of Technology
Table of Contents
Nomenclature
iii
Foreword
v
Abstract
vii
1 Introduction
1
2 Background
2.1 Past and current Missions . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 OLFAR and Future Development . . . . . . . . . . . . . . . . . . . . . . .
3
3
4
3 System Architecture
3.1 Requirements Analysis . . . . . . . . . . . . . . . . . .
3.1.1 Mission Requirements . . . . . . . . . . . . . .
3.1.2 System Requirements . . . . . . . . . . . . . .
3.1.3 Navigation Subsystem Requirements . . . . . .
3.2 Component Selection . . . . . . . . . . . . . . . . . . .
3.2.1 Technique Selection . . . . . . . . . . . . . . .
3.2.2 Star Tracker - Pico Star Tracker ST-200 . . . .
3.2.3 Sun Sensor - Micro Digital Sun Sensor . . . . .
3.2.4 IMU - ADIS16405 . . . . . . . . . . . . . . . .
3.2.5 Optical Navigation - Pico Star Tracker ST-200
3.3 Interface Chart . . . . . . . . . . . . . . . . . . . . . .
3.3.1 System Interface Chart . . . . . . . . . . . . .
3.3.2 Development Interface Chart . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
7
8
8
8
9
10
10
11
11
12
12
12
4 Functional Description
4.1 Reference Frames Description . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1 Planet-centred Inertial Reference Frames . . . . . . . . . . . . . .
4.1.2 Spacecraft-Centred Inertial Reference Frame . . . . . . . . . . . .
17
17
17
18
i
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ii
Contents
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
19
19
19
23
23
27
30
30
33
33
34
34
34
34
35
36
36
37
38
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
41
41
42
42
44
46
47
49
49
53
55
58
59
63
6 Conclusions and Recommendations
6.1 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Recommendations for Future Work . . . . . . . . . . . . . . . . . . . . . .
83
83
84
A Unit Testing
A.1 Force and Moment Models . . . .
A.2 Propagators . . . . . . . . . . . .
A.2.1 Position: Cartesian State
A.2.2 Attitude: Quaternions . .
A.3 Sensor Models . . . . . . . . . . .
A.3.1 Star Tracker . . . . . . .
87
87
87
87
87
87
87
4.2
4.3
4.4
4.5
4.1.3 Spacecraft Body-Fixed Reference Frame
4.1.4 Sensor Reference Frame . . . . . . . . .
Astrodynamics . . . . . . . . . . . . . . . . . .
4.2.1 Force Models . . . . . . . . . . . . . . .
4.2.2 Translational Equations of Motion . . .
4.2.3 Attitude State Variables . . . . . . . . .
4.2.4 Rotational Equations of Motion . . . . .
Sensor Measurements . . . . . . . . . . . . . . .
4.3.1 Planet detection . . . . . . . . . . . . .
4.3.2 Sun Sensor . . . . . . . . . . . . . . . .
4.3.3 Star tracker . . . . . . . . . . . . . . . .
4.3.4 IMU . . . . . . . . . . . . . . . . . . . .
Integration Methods . . . . . . . . . . . . . . .
4.4.1 Euler Integration . . . . . . . . . . . . .
4.4.2 General Runge-Kutta Method . . . . . .
4.4.3 Runge-Kutta 4 . . . . . . . . . . . . . .
Filter Algorithms . . . . . . . . . . . . . . . . .
4.5.1 Introduction to Kalman Filtering . . . .
4.5.2 Extended Kalman Filter . . . . . . . . .
4.5.3 Unscented Kalman Filter . . . . . . . .
5 Implementation and Verification
5.1 General Implementation . . . . . . . .
5.2 Falling-body Problem . . . . . . . . .
5.2.1 Implementation Description . .
5.2.2 Results . . . . . . . . . . . . .
5.3 Position Estimation in Orbit . . . . .
5.3.1 Implementation Description . .
5.3.2 Results . . . . . . . . . . . . .
5.4 Planet Measurements for Position . . .
5.4.1 Implementation Description . .
5.4.2 Results . . . . . . . . . . . . .
5.5 Planet Measurements and Star Tracker
5.5.1 Implementation Description . .
5.5.2 Results . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Nomenclature
iii
A.3.2 Sun Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.3.3 Planet Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
87
B Derivations for System Testing and Simulations
B.1 3-D Falling Body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
89
Bibliography
89
iv
Nomenclature
Foreword
Here comes the foreword.
v
vi
0 Foreword
Abstract
Here comes the abstract.
vii
viii
0 Abstract
Chapter 1
Introduction
The thesis question is:
How can a nano-satellite autonomously navigate during lunar transfer and in lunar orbit
with sufficient performance to control and operate it?
New subquestions: To solve this main design question, a range of subquestions needs
to be answered in the following order.
1. What are the requirements for an autonomous navigation system on a nano-satellite
during lunar transfer and in lunar orbit?
2. What sensors and input data are available to obtain a position, velocity, attitude
and rotational velocity estimate of a nano-satellite during lunar transfer and in lunar
orbit?
3. How can the performance of filter/state variable combinations be evaluated for
nano-satellite missions?
4. What is the influence of different measurement inputs, depending on pre-processing,
on the correlation between position and attitude estimation of the nano-satellite.
5. What is the influence of the combination of state estimation filters (EKF and UKF)
on position and velocity estimation?
6. What are the hardware and software requirements to implement this navigation
system for real-time navigation on board of a nano-satellite?
In short: the goal is to find a concept of a system that works, show sufficient performance,
remains flexible. This is a first step in a research that needs to be continued.
Old subquestions: To solve this main design question, a range of subquestions needs to
be answered in the following order.
1
2
1 Introduction
1. What are the requirements for an autonomous navigation system on a nano-satellite
during lunar transfer and in lunar orbit?
2. What sensors and input data are available to obtain a position, velocity, attitude
and rotational velocity estimate of a nano-satellite during lunar transfer and in lunar
orbit?
3. What is the influence of state variables (Cartesian coordinates and MEE) on the
implementation of position and velocity estimation of the nano-satellite?
4. How can the performance of filter/state variable combinations be evaluated for
nano-satellite missions?
5. What is the influence of the combination of the aforementioned state variables and
state estimation filters (EKF, UKF and UPF) on position and velocity estimation?
6. What are the hardware and software requirements to implement this navigation
system for real-time navigation on board of a nano-satellite?
Chapter 2
Background
This chapter gives background information on the type of mission and the current developments, and provides input for the requirements analysis in section 3.1. The scope
is limited to what is currently present in the field of nano-satellite missions at Delft
University of Technology and plans for the future, with a focus on attitude and orbit
determination and control. Firstly, the past and current nano-satellite missions are presented in section 2.1. Then, OLFAR and the future developments and goals are presented
in section 2.2.
2.1
Past and current Missions
Delft University of Technology launched its first mission, Delfi-C3 , in 2008 as a part of
their space education programme [15]. Their second mission, Delfi-n3Xt, was launched
in 2013. The launch of nano-satellites provides increased in-house knowledge of system
design and hands-on experience for students. Both satellites are 3U Cubesats. A Cubesat
is a standard size for nano-satellites. A Cubesat consists of one or more cubes, with one
cube measuring 10x10x10 cm. A 3U Cubesat consists of 3-units and measures 10x10x30
cm. In figure 2.1, Delfi-C3 and Delfi-n3Xt are shown.
In the Delfi-C3 mission, the attitude determination is performed by measuring the incidence of the angle of the Sun on the solar panels. Furthermore, two experimental Sun
sensors are on board. The passive attitude control system consists of a permanent magnet
and magnetic hysteresis material, using the presence of the Earth magnetic field. The
main goal is to reduce the rotation rate of the satellite to under 2 rotations per minute
[15]. There is no active attitude or orbit control present.
For Delfi-n3xt new Sun sensors have been developed at the university, based on a quadrant
photodiode and a window in PEEK material. Furthermore, a commercially available
three-axis digital compass gives the orientation using the magnetic field of Earth. The
3
4
2 Background
Figure 2.1: Delfi-C3 (left) and Delfi-n3Xt (right) [15]
compass has an accuracy of 3◦ after calibration. These sensors are coupled with a bdot controller for detumbling and safe mode, and a Kalman filter for advanced attitude
determination. Attitude control is performed using in-house developed reaction wheels
and magnetorquers, which are controlled with a PID controller and a reaction wheel
offloading algorithm.
Currently, the university is working on its third mission, DelFFi [15]. This mission comprises two satellites, Delta and Phi, which form a part of the QB50 mission. QB50 is an
European FP7 project for facilitating access to space and consists of 50 Cubesats, delivered by universities around the world [7]. Those Cubesats are going to work together to
map the upper layers of the atmosphere. It is one of the first missions to test swarm principles. The DelFFi satellites are designed to use GPS receivers for position determination
and will demonstrate formation flying and swarm capabilities using various Guidance,
Navigation and Control (GNC) algorithms. These algorithms are essential for the further
development towards larger nano-satellite formations or swarms, as required for missions
like OLFAR.
2.2
OLFAR and Future Development
The orbiting low-frequency array (OLFAR) is a project for a radiotelescope formed by
an array of nano-satellites [8] [15]. The main scientific goal is to observe the redshift in
hydrogen motion from the dark ages of radio astronomy by performing measurements
in the frequency range between 10 kHz and 30 MHz. These dark ages occured around
100,000 years after the big bang. During this period the first stars were formed. These
observations provide valuable information on the formation of the universe. [5]
Due to interference between the low-frequency signals with noise from Earth, the deployment of such an array is not possible close to Earth. Different deployment locations have
been and are being considered, each with its advantages and disadvantages: the EarthMoon L2 point, a lunar orbit at various altitudes, the Earth-Sun L2 point et cetera. All
these deployment locations have one common property: they are far away from or shielded
against Earth.
2 Background
5
As a cost-effective solution, a large array of nano-satellites is seen as the solution. However, numerous challenges need to be tackled. These challenges come mainly from the
combination of three aspects. Firstly the limited capabilities of a single nano-satellite, secondly the requirements on operating a large number of satellites and thirdly the location
of deployment.
One solution is the application of swarm technology. A swarm of nano-satellites can be
compared to a swarm of bees. Separately, the nano-satellites are not capable of performing
great things, but with a large number they can complement each others capabilities. The
three main characteristics of a swarm of nano-satellites are cooperation, autonomy and
flexibility. Cooperation between the nano-satellites requires communication and relative
position knowledge. The autonomy of each separate satellite is a necessity to get rid
of expensive tracking, navigating and controlling from Earth. Flexibility implies the
possibility to add new satellites to the swarm and have old or damaged satellites leave
it. These three basic characteristics are the main design criteria for the satellites in the
OLFAR project and form the basic inputs to the requirements analysis. [5]
To reach the ultimate goal of constructing an array of spacecraft, several precursor missions are being proposed. These include DelFFi to test propulsion systems and formation
flying capabilities, and ends at the e-Moth nano-satellite mission concept to reach the
Moon [14]. Further pre-cursor missions are planned to allow for a stepwise approach and
verification of all critical systems before launching the complete system.
As already mentioned, several challenges remain. These challenges can be found in the
areas of propulsion, navigation and communications. This thesis focuses on the navigation
of the nano-satellites between Earth and Moon for OLFAR and its precursor missions primarily, although further applications exist. As described above, the main characteristics
of the navigation system should comply to those of the main OLFAR satellite and swarm
characteristics: cooperation, autonomy and flexibility. These three characteristics are to
be incorporated with their own implications. The reasons for autonomy are cost savings
and reduced operational complexity by reducing ground-based tracking. Cooperation can
increase the accuracy of the system by using position information of nearby satellites.
Flexibility is also required to increase robustness. Throughout the mission, certain sensors or input data for the navigation can be temporarily unavailable (e.g., Sun sensors
during eclipse or limited field-of-view (FOV)) and the system must be able to cope with
less or more information. Since OLFAR is taken as the basis and is needs to be kept in
mind during the requirements analysis.
6
2 Background
Chapter 3
System Architecture
The first step in developing a system is analysing the requirements and deriving the design
of the system. Therefore, this chapter starts with the requirements analysis in section 3.1.
Then, hardware is selected, which is used as a reference during this research in section 3.2.
These components are then combined in two interface charts in section 3.3. The system
interface chart shows the complete guidance, navigation and control system as it is to be
implemented in the satellite, including both hardware and software. In the development
interface chart, an overview is given of the software, which is to be programmed to create
a simulation environment for the navigation system.
3.1
Requirements Analysis
The requirements are drawn from the background information in chapter 2. The requirements are divided in three parts: one on mission level, one on system level and one on
navigation subsystem level. The requirements are listed in table 3.1.
3.1.1
Mission Requirements
The system requirements come straight from the mission description of OLFAR. As this
system is to serve two mission types, i.e. OLFAR and precursor missions, the requirements
must fit both mission types. As the precursor missions are also being covered by the outof-swarm operations of the satellites, there is no need for separate investigation. The main
requirements for OLFAR are defined by the overall mission architecture, i.e. a swarm.
The mission requirements are derived from the swarm philosophy and the five operational
modes: deployment, transfer to operational orbit, in-swarm operations, out-of-swarm operations and end-of-life. During all these mission phases, except the in-swarm operations,
the satellite is assumed to be on its own. As the number of satellites is larger than would
be possible to handle comfortably with ground-based operations, they need to be able
7
8
3 System Architecture
to operate autonomously. This thesis focuses on the attitude and position determination
during the transfer, with a limit on the transfer between Earth and Moon. However,
extensions to the other non-swarm modes remains possible.
To be able to design proper attitude and orbit control, it is required to track the position
and attitude of the spacecraft. As mentioned before, this navigation needs to be performed
autonomously, which is the prime requirement on mission level. One of the goals of this
research is to find out if it is possible to determine the attitude and position with sufficient
accuracy to be able to control the satellite during its transfer from Earth to the Moon.
Therefore, the accuracy of the position and attitude determination is not described by a
numerical value, but what is achievable. As a goal, a position accuracy of better than
1000 m during the complete transfer should be reached.
As a result, there are two requirements on mission level: (1) autonomy and (2) sufficient
accuracy for control during Earth-Moon transfer.
3.1.2
System Requirements
The system is restricted to a nano-satellite. This includes limitations and opportunities.
The limitations are its limited size, mass and available power. Currently, the size of the
satellites is estimated between 1 and 6 cubes of 10 by 10 cm, which cannot be completely
used for the navigation system only. This limits the selection of components. The largest
opportunity is the possibility of using unconventional hardware, like micro-processors
from mobile phones with relatively high computational power, instead of radiation hardened, space-proven (large and heavy) hardware. These requirements will influence the
possible hardware choices.
To reduce the cost of the system and make the study more realistic, all components must
be commercially off-the-shelf (COTS).
The system requirements are finding a system with (1) a small mass, (2) minimal size
and (3) limited power consumption, while (4) minimising the computational power. Furthermore, the components must be COTS.
3.1.3
Navigation Subsystem Requirements
The navigation subsystem needs to be flexible enough to include the available measurements and discard those which are not. Otherwise, the same requirements apply as on
the system level.
3.2
Component Selection
First a selection is made of the available techniques to see which ones could be feasible.
Then, a selection of components is presented of which the characteristics are being used
during the research.
3 System Architecture
9
Mission Requirements
Autonomy
Navigation accuracy
System Requirements
Mass
Size
Power
Computational power
Component selection
Navigation Requirements
Input data
The navigation must be performed autonomously
Sufficient to allow for control during Earth-Moon transfer (1000 m)
Minimal
Minimal
Minimal
Minimal
COTS
Flexible on available data
Table 3.1: Requirements overview
3.2.1
Technique Selection
The mission scenario of Earth-Moon transfer means that the system must be operable far
away from Earth. This means that magnetometers are not to be used. GNSS receivers
might be possible, although the main ones which are currently available for space are
expensive and/or military grade equipment, especially those which can be used up to
geostationary orbit and beyond. Therefore, these cannot be used. Radar is possible,
although these require (in general) a lot of power. Laser ranging violates the autonomy
requirement.
Therefore, the most suitable options are:
1. a star tracker
2. a sun sensor
3. an accelerometer
4. a gyro
5. an IMU, combining the accelerometer and a gyro
6. optical navigation
With further developments and use of certain techniques, it is possible that some of the
techniques which are discarded can be used for part of the mission, e.g. GNSS can be
used until geostationary altitude and beyond [12]. However, for limiting the scope of this
thesis, the above selection of techniques is used.
The accelerometer and gyroscope are combined in one sensor, the IMU. For each component, one sensor is selected. Further research can improve the sensor selection, but this
is part of further design iterations of the system. The main goal is to proof the concept
and develop basic algorithms.
10
3 System Architecture
Figure 3.1: The ST-200 compared to a 10 eurocent coin [13]
3.2.2
Star Tracker - Pico Star Tracker ST-200
The Pico Star Tracker ST-200, see Figure 3.1, is a low-power star tracker and the successor of the Micro Star Tracker ST-100, designed by Berlin Space Technologies GmbH in
cooperation with Syspa B.V. [13] The main changes with its predecessor are less mass,
a lower power consumption, a reduced size and a shorter lifetime. This reduced lifetime
is caused by a reduction of the aluminium shielding from 5 to 2 mm. This star tracker
also has the possibility of acting as an optical camera. In this function it can be used for
pattern matching, disc measurements and horizon scanning. This double use allows for a
continuous use of the star tracker. In Table 3.2 more data can be found.
Parameter
Mass
Power
Accuracy
Design life
Market readiness
Value
74 g
0.7 W peak
3000
1 year
2011
Table 3.2: Characteristics of the ST-200 [13]
3.2.3
Sun Sensor - Micro Digital Sun Sensor
The micro Digital Sun Sensor of TNO Science and Industry [3] uses a masked CMOS
Active Pixel Sensor. Its autonomy is increased by a wireless link to the avionics subsystem
and a solar panel to power the sensor. Extra details can be found in Table 3.3. This Sun
sensor has been tested on the Delfi-C3 mission. Since it has been designed for low-Earth
orbits, the radiation hardness is most likely not sufficient for lunar transfer. Sensors
based on the same technique are used on other interplanetary missions, like BepiColombo,
the capabilities of this sensor can be assumed to be realistic for future missions [ADD
3 System Architecture
11
SOURCE].
Parameter
Mass
Accuracy
FOV
Dimensions
Value
<30 g
<0.1◦
120◦
46x46x14 mm3
Table 3.3: Characteristics of the micro Digital Sun Sensor [3]
3.2.4
IMU - ADIS16405
The ADIS16405, from Analog Devices [4], is a combination of an IMU and a magnetometer. The IMU part has three different dynamic modes to increase the resolution
and dynamic range in different modes of operation. The magnetometer is included in
the package, providing a lower cost for the system. The radiation resistance is unknown,
but can again be assumed suitable for low-Earth orbit, but not for a high-Earth or lunar
orbit. A summary of the specifications can be found in Table 3.4.
Parameter
IMU
Dynamic range
Scale factor
Initial bias error
Bias stability
Angular random walk
3dB bandwidth0
Magnetometer
Dynamic range
Scale factor
Initial bias error
Output error
General
Dimensions
Mass
Power
Value
±300, ±150, ±75◦ /s
0.05, 0.025, 0.0125◦ /s
±3◦
◦ /s
0.007
√
2◦ / hr
330 Hz
±3.5 gauss
0.5 mgauss
±4 mgauss
1.25 mgauss rms
23x23x23 mm
16 g
0.35 V
Table 3.4: Characteristics of the ADIS16405 [4]
3.2.5
Optical Navigation - Pico Star Tracker ST-200
As already mentioned in 3.2.2, the star tracker can also be used as an optical camera.
The optical sensor of the ST-200 has 1024x1024 pixels and a field-of-view with an angular
size of 20◦ . For further details, see 3.2.2.
12
3 System Architecture
Figure 3.2: The system interface chart
3.3
Interface Chart
This section explains two interface charts: the system interface chart (see section 3.3.1)
and the development interface chart (see 3.3.2). The first one describes the system and its
basic interfaces between the hardware and software in the attitude and orbit determination
and control system on a high-level. The second is the development interface chart, see
section 3.3.2, which depicts the simulation environment to simulate the system.
3.3.1
System Interface Chart
The high-level attitude and orbit determination and control system is shown in figure
3.2. Basically, the goal of the system is to obtain measurements, process them and send
commands to actuators. On the right in figure 3.2, the sensors are shown, as discussed in
section 3.2. The outputs of the sensors are gathered and used for determining the orbit
and attitude. A control algorithm uses the knowledge of the orbit and attitude to send
commands to the actuators. A feedback is given from the controller to the attitude and
orbit determination on which commands are being given, so these can be incorporated in
the orbit and attitude estimation. The actuators, in combination with the environment,
have an influence on the orbital dynamics. These translate in new measurements, which
are begin processed in the satellite again. The focus of this research is on the attitude
and orbit determination. The environment for the development of the attitude and orbit
determination is presented in the next section, with some further details on what is
required for simulating this system.
3.3.2
Development Interface Chart
The development interface chart, see figure 3.4 is based on the system interface chart.
The starting point is like in the system interface chart, the measurements generation.
These are generated from sensor models, which are reused for the filter algorithms. The
3 System Architecture
13
measurements are being fed to the filter algorithms. As explained further, different implementations of the Kalman filter are chosen. Here the orbit and attitude determination
takes place. The filter shares the sensor models with the measurements and the propagators with the orbit and attitude simulation. From the filter, the states are fed to the
controller, which provides feedback to the filter and commands the actuators. The actuators feed their output to the orbit and attitude simulation, which updates the dynamics.
The loop is closed with the input back to the measurements generation. The environment
and ephemeris data are coupled to the loop by linking them to the sensor and propagation
library.
In figure 3.4, the controller and actuator have been added. Normally, the actuators should
be modelled similar to the sensors, resulting in an extra actuators library and a link to
the filter. Since this research focuses on the navigation and the influence of the sensor
inputs to the filters, the actuators and controller are not going to be modelled. Therefore,
an open-loop system can be constructed, as can be seen in figure ??. This means that
the propagation of the states and the generation of measurements can be performed first.
These inputs can then be reused by different filter implementations.
14
3 System Architecture
Figure 3.3: The closed loop development interface chart
3 System Architecture
Figure 3.4: The simplified open loop development interface chart
15
16
3 System Architecture
Chapter 4
Functional Description
This chapter describes the theory behind the implementation. This starts with an explanation of the reference frames and astrodynamics in sections 4.1 and 4.2. Section 4.3
describes the sensor implementations. The used filter algorithms are explained in section 4.5. The stepwise implementation of these algorithms and functions is presented in
chapter 5.
4.1
Reference Frames Description
THe reference frames which are being used are shortly explained.
4.1.1
Planet-centred Inertial Reference Frames
An inertial reference frame is a reference frame in which an object on which no forces are
being applied moves in a straight line with constant velocity. Newton’s laws are always
applicable in inertial reference frames. Furthermore, inertial reference frames can always
be transformed from one to another by a simple transformation, as they are not-rotating
and have a constant velocity with respect to each other.
The definition of an inertial reference frame requires these frames to be defined over the
complete universe. Therefore, they are Utopian, since it is currently impossible to define
the complete universe. However, in reference frames centred in large bodies, like the Sun,
Earth and other planets, motion approximates the motion as in a two-body system. They
are called pseudo-inertial reference frames.
The most important for this research are the Earth-fixed and Moon-fixed inertial coordinate system. In the Earth-fixed system, the X-axis points to the vernal equinox and the
Z-axis to the celestial pole. Currently, the vernal equinox coincides with the First Point of
Aries, but moves with a period of 26,000 years. Therefore a version of the vernal equinox
17
18
4 Functional Description
Figure 4.1: The spacecraft-centred inertial frame with respect to the planet-centred inertial
frame
needs to be defined, like 1950, 2000 or true of date (TOD). The J2000 frame, i.e., with
the vernal equinox of 01/01/2000, is used during the research, because this is currently a
commonly used one.
Since the relative positions of the Moon with respect to Earth is given in the J2000 frame,
this is used for the Moon too, making changes in central body (from Earth to Moon and
vice versa) easier.
Inertial reference frames are, due to the possibility of applying Newton’s laws very convenient for the description of forces and accelerations.
4.1.2
Spacecraft-Centred Inertial Reference Frame
The spacecraft-centred inertial frame is defined here as the J2000 reference frame, but
translated to the centre of the spacecraft. This is shown in figure ??.
4 Functional Description
19
Figure 4.2: The spacecraft-fixed inertial frame with respect to the spacecraft-centred inertial
frame
4.1.3
Spacecraft Body-Fixed Reference Frame
The spacecraft body-fixed reference frame is a non-inertial reference frame and is therefore
not bound to Newton’s laws. The attitude of the spacecraft is described by the rotation
to go from the inertial to this spacecraft-centred frame. The axes are shown in 4.2.
4.1.4
Sensor Reference Frame
The sensor reference frame is the sensor-fixed frame. The Z-axis is the boresight axis
of the sensor. The X- and Y-axis are chosen separately for each sensor. This frame is
used to describe the measurements from the point of view of the sensor. The rotation
between the sensor frame and the spacecraft-fixed frame normally remains constant. This
reference frame is shown in figure 4.3
4.2
4.2.1
Astrodynamics
Force Models
The orbits under consideration are very high Earth orbits or lunar transfer orbits. Due
to the distance to Earth, magnetic and aerodynamic forces can be neglected, as well as
20
4 Functional Description
Figure 4.3: The sensor frame in the spacecraft-fixed frame
4 Functional Description
21
Figure 4.4: An overview of the disturbance forces with respect to the altitude of the satellite
[19]
the influence of the gravitational disturbances. This can also be seen from figure 4.4
Therefore, the forces under consideration are the central gravity field of the main body
(Earth or Moon), the gravity of third bodies (Sun, Moon or Earth, possibly others) and
the solar pressure.
The only rotational disturbance would be the solar pressure and internal disturbances,
like sloshing. However, due to the high density of nano-satellites and the limited surface,
it is assumed these are negligible. Therefore, the attitude of the spacecraft is assumed
to be unperturbed. If there should be any further disturbances, it is assumed these are
small enough to be within the noise of the measurements and system.
The Universal Law of Gravitation
This law is stated as follows:
“Two particles attract each other with a force directly proportional to their masses and
inversely proportional to the square of the distance between them.”
The vectorised form of this equation is [18]:
F = −G
m1 m2
r
r3
(4.1)
For orbital mechanics, these equations are simplified by introducing µ = Gm1 , the
gravitational constant. m1 is taken as mass of the major body, i.e., Earth, Moon or Sun.
The acceleration of a satellite under the influence of one of these bodies is the result of
dividing the gravitational force by the mass of the satellite, m2 :
a=−
µ
r
r3
(4.2)
22
4 Functional Description
Body
Sun
Mercury
Venus
Mars
Jupiter
Saturn
Uranus
Neptune
Case1
1.489e−5
1.087e−11
1.715e−9
3.326e−11
1.919e−10
6.836e−12
1.087e−13
3.138e−14
Case2
2.395e−4
1.748e−10
2.758e−8
5.348e−10
3.086e−9
1.099e−10
1.747e−12
5.045e−13
Case3
1.661e−4
1.213e−10
1.913e−8
3.710e−10
2.141e−9
7.626e−11
1.212e−12
3.500e−13
Case4
4.948e−6
3.6128e−12
5.697e−10
1.105e−11
6.375e−11
2.271e−12
3.610e−14
1.042e−14
Case5
1.177e−7
8.594e−14
1.356e−11
2.623e13
1.517e−12
5.403e−14
8.590e−16
2.480e−16
Table 4.1: The ratio of disturbance force over central gravitational force for five cases.
Case1: geostationary altitude; case 2: Earth orbit at 100,000 km; case 3: lunar
orbit at 20,000 km; case 4: lunar orbit at 5,000 km; case 5: lunar orbit at 200
km
Sun and Planets
The gravitational influence of third bodies is determined by their position and their standard gravitational parameter. INCLUDE REFERENCE TO EPHEMERIS MODELS
To give an indication of the influence, one can use the following equation [18]:
md rs 3
ad
=2
am max
mM rd
(4.3)
Here md is the mass of the disturbing body, mM is the mass of the main body, i.e., the
Earth or Moon, rs the range of the satellite to the main body and rd is the distance of
the satellite to the disturbing body. The distance to the disturbing body is minimised
to maximise the disturbance. Five cases have been used. The same as for the spherical
harmonics: at geostationary altitude, Earth orbit at 100,000 km, lunar orbit at 20,000
km, 5,000 km and 200 km. The result can be found in table 4.1.
This maximum is at the minimal distance to the Earth, which is (rplanet − 1)AU , with
rplanet , the semi-major axis of the planet.
The only force of importance is the Sun. Especially during the transfer, the influence of
the Sun becomes important. Other planets have an influence of at most 2.758e−8 and can
be neglected.
Solar Pressure
The solar pressure is computed by [19]:
WS
f¯ = fp e¯s = CR
e¯s
Mc
(4.4)
Here fp is the size of the solar pressure, es is the unit vector pointing from the Sun to
the satellite, W is the power density of the solar radiation in the proximity of the Earth
(1360W/m2 ), M is the mass of the satellite, S is the effective cross-sectional area, c is
the speed of light in vacuum and Cr is the satellite’s reflectivity.
4 Functional Description
23
Figure 4.5: Euler’s eigenaxis rotation [2]
4.2.2
Translational Equations of Motion
The Cartesian coordinate system is the reference system for the research. The dynamics
and kinematics in a Cartesian coordinate system are described by:
Z
t
v(t) = v0 +
a(t)dt
(4.5)
v(t)dt
(4.6)
t0
Z t
r(t) = r0 +
t0
In combination with the second law of Newton, see equation 4.2, the motion of a body
can be described.
4.2.3
Attitude State Variables
To get to a good understanding of quaternions, it is necessary to first understand the
Eular eigenaxis rotation.
Euler Angles
Each (right-handed) coordinate system can be rotated to any other using one rotation.
This rotation is called the Euler eigenaxis rotation. The Euler eigenaxis, e = (e1 , e2 , e3 ),
is a unit vector and the axis around which the coordinate system needs to rotate. The
Euler angle, θ, is the total rotation around this axis. This derivation is required to come
to the definition of quaternions.
24
4 Functional Description
The eigenaxis shown in figure 4.5 can be described in two reference frames, A(a1 , a2 , a3 )
and B(b1 , b2 , b3 ).
e = e1 a1 + e2 a2 + e3 a3
(4.7)
= e1 b1 + e2 b2 + e3 b3
(4.8)
By rearranging, the derivation of the direction cosine matrix, C, can be initiated.
   
 
 
e1
C11 C12 C13
e1
e1
b1
e2  = a1 a2 a3 b2  e2  = C21 C22 C23  e2 
(4.9)
b3
e3
C31 C32 C33
e3
e3
Now the elements in the direction cosine matrix need to be derived. Three rotations are
required. The first rotation rotates frame A with rotation matrix R in such a way that
a1 coincides with e, forming the new frame A0 , as can be seen in figure 4.6. The second
rotation is the rotation of A0 around e = a01 through θ and form A00 . This rotation is the
same rotation to go from A to B. Due to this ’parallel’ rotation and the common rotation
axis e, the rotation from A to A0 is the same as a rotation from B to A00 , both with the
rotation matrix R. Use the inverse of the rotation from B to A00 as the third rotation
with rotation matrix RT . Now the total rotation from A to B can be described by:
 
 
b1
a1
b2  = RT C1 (θ)R a2 
(4.10)
b3
a3
with C1 (θ) as the rotation matrix of the second rotation, i.e., a rotation around a01 with
angle θ. The three rotation matrices are:


e1
e2
e3
R = R21 R22 R23 
(4.11)
R31 R32 R33


1
0
0
(4.12)
C1 (θ) = 0 cos θ sin θ 
0 − sin θ cos θ


e1 R21 R31
RT = e2 R22 R32 
(4.13)
e3 R23 R33
To solve for the unknown parameters Rij , two properties of direction
be used. The first one is the orthonormality:




e1 R21 R31
e1
e2
e3
1
RT R = e2 R22 R32  R21 R22 R23  = I = 0
e3 R23 R33
R31 R32 R33
0
cosine matrices can

0 0
1 0
0 1
(4.14)
The second is that the direction cosine matrices can be expressed by their co-factors:
e1 = R22 R33 − R23 R32 ;
e2 = R23 R31 − R21R33;
e3 = R21 R32 − R22 R31 (4.15)
4 Functional Description
25
Figure 4.6: The rotation of a1 , a2 , a3
Using these two properties and equation 4.10, the direction cosine can be calculated for
the Euler eigenaxis rotation:


cos θ + e21 (1 − cos θ)
e1 e2 (1 − cos θ) + e3 sin θ e1 e3 (1 − cos θ) − e2 sinθ
cos θ + e22 (1 − cos θ)
e2 e3 (1 − cos θ) + e1 sinθ
C = e2 e1 (1 − cos θ) − e3 sin θ
e3 e1 (1 − cos θ) + e2 sinθ e3 e2 (1 − cos θ) − e1 sinθ
cos θ + e23 (1 − cos θ)
(4.16)
Or in a more compact form
C = I cos θ + (1 + cos θ)eeT − E sin θ
(4.17)
With I as the identity matrix and:
 
e1
e = e2 
e3


0
−e3 e2
0
−e1 
E =  e3
−e2 e1
0
(4.18)
(4.19)
In this relation e1 , e2 and e3 are related by e21 + e22 + e23 = 1. θ can be found from a given
direction cosine matrix by:
1
cos θ = (C11 + C22 + C33 − 1)
2
(4.20)
Quaternions
To avoid singularities a rotation can also be described using four Euler parameters or
quaternions. The definition of the four quaternions is based on Euler’s eigenaxis rotations,
26
4 Functional Description
see Subsection ?? [2].
   
q1
e1
q = q2  = e2  sin(θ/2)
q3
e3
q4 = cos(θ/2)
(4.21)
(4.22)
Due to their relation to e1 , e2 and e3 the quaternions depend on each other.
q T q + q42 = q12 + q22 + q32 + q42 = 1
(4.23)
The direction cosine matrix in terms of quaternions can be derived by substituting equations 4.21 and 4.22 in theh direction cosine matrix for Euler angles, see equation 4.16. As
an example, the three first elements are derived:
θ
θ
+ 2e21 sin2
2
2
θ
θ
= 1 − 2(1 − e21 ) sin2 = 1 − 2(e22 + e23 ) sin2
2
2
= 1 − 2(q22 + q32 )
θ
θ
θ
= e1 e2 (1 − cos θ) + e3 sin θ = 2e1 e2 sin2 + 2e3 sin cos
2
2
2
θ
θ
θ
θ
= 2 e1 sin e2 sin + e3 sin cos
2
2
2
2
= 2(q1 q2 + q3 q4 )
θ
θ
θ
= e1 e3 (1 − cos θ) − e2 sin θ = 2e1 e3 sin2 − 2e2 sin cos
2
2
2
θ
θ
θ
θ
= 2 e1 sin e3 sin − e2 sin cos
2
2
2
2
= 2(q1 q3 − q2 q4 )
C11 = cos θ + e21 (1 − cos θ) = 1 − 2 sin2
C12
C13
This can be continued for the other elements. This results in the direction cosine matrix:


1 − 2(q22 + q32 ) 2(q1 q2 + q3 q4 ) 2(q1 q3 − q2 q4 )
C B/A = 2(q1 q2 − q3 q4 ) 1 − 2(q12 + q32 ) 2(q2 q3 + q1 q4 )
(4.24)
2
2
2(q1 q3 + q2 q4 ) 2(q2 q3 − q1 q4 ) 1 − 2(q1 + q2 )
This can be rewritten in more compact form as:
C = (q42 − q T q)I + 2qq T − 2q4 Q
(4.25)
with Q defined as:


0 −q3 q2
0 −q1 
Q =  q3
−q2 q1
0
(4.26)
A more compact form of this equation is
C = I cos θ + (1 + cos θ)eeT − E sin θ
(4.27)
4 Functional Description
27
With I as the unity matrix and:
 
e1

e = e2 
e3


0
−e3 e2
0
−e1 
E =  e3
−e2 e1
0
(4.28)
(4.29)
In this relation e1 , e2 and e3 are related by e21 + e22 + e23 = 1. θ can be found from a given
direction cosine matrix by:
1
cos θ = (C11 + C22 + C33 − 1)
2
4.2.4
(4.30)
Rotational Equations of Motion
To get to the equations of motion of quaternions, first the equations of motion based
on a direction cosine matrix are explained. Based on those, the dynamics of the Euler
Eigenaxis rotation are explained, to finish with the equations of motion of quaternions.
Direction Cosine Matrix
Assume two right-hand sets of three orthogonal unit vectors, {a1 , a2 , a3 } and {b1 , b2 , b3 }.
The relation between these two coordinate systems is given by:
  
 
 
b1
C11 C12 C13
a1
a1
b2  = C21 C22 C23  a2  = C B/A a2 
b3
C31 C32 C33
a3
a3
(4.31)
Here Cij = bi · aj , which is the cosine of the angle between aj and bi . Therefore Cij is
called the direction cosine matrix. The two sets of orthogonal vectors and the direction
cosines are shown by figure 4.7.
To construct the kinematic differential equation, the angular velocity, ω = (ω1 , ω2 , ω3 ),
and the time derivative of C are required. The time derivatives of Ċ is described by:


Ċ11 Ċ12 Ċ13
Ċ = Ċ21 Ċ22 Ċ23 
Ċ31 Ċ32 Ċ33
(4.32)
The elements in this matrix are described by:
Ċ11 = ω3 C21 − ω2 C31 ;
Ċ12 = ω3 C22 − ω2 C32 ;
Ċ13 = ω3 C23 − ω2 C33 ;
(4.33)
Ċ21 = ω1 C31 − ω3 C11 ;
Ċ22 = ω1 C32 − ω3 C12 ;
Ċ23 = ω1 C33 − ω3 C13 ;
(4.34)
Ċ31 = ω2 C11 − ω1 C21 ;
Ċ32 = ω2 C12 − ω1 C22 ;
Ċ33 = ω2 C13 − ω1 C23 ;
(4.35)
28
4 Functional Description
Figure 4.7: Reference frames and direction cosines [2]
The kinematic differential equation then becomes:
 


b1
0
−ω3 ω2
0
−ω1 
(Ċ T − C T Ω) b2  = 0; Ω =  ω3
b3
−ω2 ω1
0
(4.36)
Or in another form:
Ċ T − C T Ω = 0;
Ċ + ΩC = 0;
ΩT = −Ω
(4.37)
Euler Eigenaxis Rotation
For the Euler eigenaxis rotation, the direction cosine matrix, C, is expressed by:
C = I cos θ + (1 + cos θ)eeT − E sin θ
(4.38)
With I as the identity matrix and:
 
e1
e = e2 
e3


0
−e3 e2
0
−e1 
E =  e3
−e2 e1
0
(4.39)
(4.40)
Based on this input and equation 4.37, Ω can be expressed as a function of θ and e [2].
Ω = θ̇E − (1 − cos θ)(E ė)∗ + sin θĖ
(4.41)
with the superscript ∗ representing the skew symmetric form. When rewriting the equation to vector form, this becomes:
ω = θ̇e − (1 − cos θ)E ė + sin θė
(4.42)
4 Functional Description
29
From this equation, the following relation can be derived:
eT ω = θ̇eT e − (1 − cos θ)eT E ė + sin θeT ė = θ̇
After a derivation, the time derivative of the Euler axis can be given [2]:
!
cos 2θ
1
ė =
Eω −
EEω
2
sin 2θ
(4.43)
(4.44)
Quaternions
For representing the attitude, quaternions are chosen. Quaternions have the advantage of
avoiding singularities and relative ease of use. A quaternion represents an Euler eigenaxis
rotation. This is based on the fact that each rotation between two orientations can be
expressed by a single rotation around its eigenaxis, as explained before. The attitude
quaternion is here defined as:
 
q1
q2 

q=
(4.45)
q3 
q4
q1 , q2 and q3 are the vector part of the quaternion with (ex , ey , ez ) representing the rotation
axis. q4 is the scalar part, representing the size of the rotation:
   
q1
ex
q2  = ey  sin θ
(4.46)
2
q3
ez
θ
q4 = cos
(4.47)
2
The kinematic differential equation in terms of quaternions are based on those for direction
cosine matrices [2]:
Ċ + ΩC = 0;
Ω = −ĊC T
Now ω1 , ω2 and ω3 can be expressed as:
ω1 = Ċ21 C31 + Ċ22 C32 + Ċ23 C33
(4.48)
ω2 = Ċ31 C11 + Ċ32 C12 + Ċ33 C13
(4.49)
ω3 = Ċ11 C21 + Ċ12 C22 + Ċ13 C23
(4.50)
By substituting the direction cosines in terms of quaternions, see equation 4.24, this
becomes:
ω1 = 2(q̇1 q4 + q̇2 q3 − q̇3 q2 − q̇4 q1 )
(4.51)
ω2 = 2(q̇2 q4 + q̇3 q1 − q̇1 q3 − q̇4 q2 )
(4.52)
ω3 = 2(q̇3 q4 + q̇1 q2 − q̇2 q1 − q̇4 q3 )
(4.53)
30
4 Functional Description
To obtain a fourth equation, differentiate the quaternion constraint:
0 = 2(q̇1 q1 + q̇2 q2 + q̇3 q3 + q̇4 q4 )
Rewrite these in matrix form:
 

 
q˙1
q4
q3 −q2 −q1
ω1



−q3 q4
ω2 
q
−q
1
2  q˙2 
  = 2
 q2 −q1 q4 −q3  q˙3 
ω3 
q˙4
q1
q2
q3
q4
0
The matrix is orthonormal, so it can be
on ω as:
 

q˙1
q4
q˙2  1  q3
 = 
q˙3  2 −q2
q˙4
−q1

0
1
−ω3
= 
2  ω2
−ω1
(4.54)
(4.55)
solved with a matrix based on quaternions and
 
ω1
q1
ω2 
q2 
 
q3  ω3 
0
q4
 
−ω2 ω1
ω1


ω1 ω2  ω2 

0
ω3  ω3 
−ω3 0
0
−q3 q2
q4 −q1
q1
q4
−q2 −q3
(4.56)
ω3
0
−ω1
−ω2
(4.57)
In the more compact form, this becomes:
1
1
q̇ = (q4 ω − ω × q) = (q4 ω + q × ω)
2
2
1 T
1 T
q̇4 = − ω q = − q ω
2
2
4.3
(4.58)
(4.59)
Sensor Measurements
This chapter describes the functional implementation of the sensors, as they are implemented in the test environment. This includes the measurement equations and modelling
of errors. The unit tests of the implementation can be found in ??. The description of
the reference frames can be found in section 4.1.
4.3.1
Planet detection
Planet detection is used for two bodies: Earth and Moon. The principle consists of
making an image of a body with an optical camera and processing the image. From the
image, three observations are derived: the elevation, the azimuth and the angular size of
the body. The first two describe the position of the body in the sensor reference frame.
The angular size contains information on the distance between the body and the sensor,
and therefore also the spacecraft.
The centre of the coordinate system for the position of the spacecraft is either Earth
or the Moon. To generate the measurements of the body, which is not located in the
4 Functional Description
31
centre of the coordinate system, an ephemeris file is required to obtain the position of the
non-centre body with respect to the body in the centre of the system.
First, the azimuth and elevation of the central and non-central body are treated. Then
the angular size measurement algorithm and its errors are explained.
Azimuth and elevation
The only input for these measurements is the position of the planet in the sensor reference
frame, rS . To obtain this position, the position and attitude of the spacecraft and the
sensor on the spacecraft need to be known. For the non-central body, also the ephermis
data of the non-central body with respect to the central body are required. The resulting
transformation is:
rS = TSB TBI (−(rI − rT C ))
(4.60)
Here, rI is the inertial position of the spacecraft, which is part of the state. The matrices
TSB and TBI are the transformation matrices from sensor (S) to body (B) frame and
from body to inertial (I) frame. The first one is known from the orientation of the sensor
on the spacecraft. The latter is to be taken from the attitude in the state. The vector
which needs to be rotated is the negative of the position of the spacecraft minus rT C , the
vector from the central body to the third body.
The azimuth, α, and elevation, can then be calculated by:
zX1 = α = atan 2(xS , zS )
yS
zX2 = = asin( )
rS
(4.61)
(4.62)
with zX representing the measurements of body X, which is Earth or Moon. In the
equations above, no error is present in the measurements. Since the measurements are
the result of post-processing images of the optical camera, it is assumed the noise is a
white noise around the observation axis, the Z-axis, of the sensor. This can easily be
modelled with quaternion rotations. An angle, ψe is randomly drawn from a uniform
distribution between 0 and 360◦ . This angle is used to generate a unit vector in the
XY-plane. This unit vector is used for a rotation. The size of the rotation, η is a random
value from a normal distribution with the properties of the white noise. This is translated
in a quaternion by:


cos (ψe ) ∗ sin η2  sin (ψe ) ∗ sin η 
2 
q=
(4.63)


0 cos η2
The first three elements are the rotation axis, where the scalar part of the quaternion,
the fourth element, the size of the rotation describes.
The error description can only be used for relatively small field of views, since this rotation
is around the Z-axis of the sensor. The further the observed body is from the Z-axis, the
lower the error becomes. The optical camera has a half-cone angle of 20◦ . The reduction
of the error at that point is about 6%. This is assumed to be acceptable, since the
errors on the optical measurements are not well known, since this is depending on the
32
4 Functional Description
Figure 4.8: Trigonometry of a satellite imaging Earth [1]
pre-processing of the optical image. Therefore, the error on the error description is most
likely much higher than this. The size of the noise is described after the measurements of
the angular size of the central body.
Angular Size Measurement
Disc measurement is based on making an image of Earth or the Moon and by measuring
the angular size, determine the distance to the main body. This technique is explained in
[1] and is still being researched. By applying trigonometry on figure 4.8, one can estimate
the distance to Earth by:
rS
r=
(4.64)
sin θ2X
with the subscript X referring to Earth or Moon. From this equation, the angular size
can be derived as:
RX
zX3 = θ = 2 asin
(4.65)
rS
The measurement, as described here, is only valid if the complete main body is visible.
However, by having only part of the Earth in view, the angular size can still be determined
by using the visible arc. Different visibilities of Earth can be seen in figure 4.9.
The error on this measurement is depending on the altitude. By using only two pixels on opposing locations of the visible disc, the error is computed from figure reffig:discMeasurement:

r = rS 

1
sin
θX −θP
2
−
1
sin
θX +θP
2

(4.66)
with the θP representing the angular size of one pixel. The performance can be improved
by vectorising the disc using pixel averaging. This significantly lowers the errors on the
measurement. By correlating the error over the number of pixels in view, the total error
is being determined by:
1
1
(4.67)
1 = 1
+ 12 + ...
2
2
1
2
Here 1 , 2 , etc are the errors of the single pixels.
4 Functional Description
33
Figure 4.9: Visibility of the Earth from a low (upper series) and high (lower series) altitude
as seen by the imager
4.3.2
Sun Sensor
The measurements from the Sun sensor are assumed to be an elevation and azimuth after
processing. This is a simplification, since normally, the measurements are the voltages
from the solar cells on the sensor. These are then converted to the position of the Sun.
Based on these voltages, it is easy to obtain a certain attitude with respect to the Sun.
Since the complete attitude and position acquisition is required rather than a pure attitude controller, the choice has been made to simplify the measurements to elevation and
azimuth in a common design with the planet measurements. Therefore, the implementation of the Sun sensor is the same as the azimuth and elevation measurements of the
planet measurements. The main difference is the much lower accuracy. Therefore, the
influence of the Sun sensor in the complete system is expected to be relatively low, compared to the planet measurements and the star tracker. However, it remains an important
part of the spacecraft safe mode design.
4.3.3
Star tracker
The star tracker is a camera observing the sky. By combining its observations with a
star catalogue, it generates a quaternion providing the orientation of the sensor in the
inertial frame. This quaternion is the result of a quaternion multiplication of the attitude
quaternion of the spacecraft, q, and the quaternion describing the position of the sensor
on the spacecraft, s,.


zST R1
zST R2 


(4.68)
zST R3  = q · s
zST R4
EXPLANATION OF STR ERROR
34
4 Functional Description
4.3.4
IMU
The accelerometer measures all forces which are acting on the outside of the spacecraft.
Forces which act on the complete body, like gravity, are not measured, since the accelerometer will be susceptible to the same acceleration as the rest of the spacecraft. Since the
spacecraft is far away from Earth, there is no aerodynamic drag. The only force acting
on the outside of the spacecraft is the solar pressure. The benefit of measuring this is
limited. Therefore, the accelerometer is not modelled.
The gyroscope measures angular accelerations. On the short term, there are no significant
forces acting on the spacecraft. Therefore, it is assumed that there are no rotational
accelerations. From that point of view, there is no need for a gyroscope.
4.4
Integration Methods
For the integration in the filters, the Euler integration is one of the fastest methods. The
Runge-Kutta methods are an extension to the Euler integration as they use a weighted
average of multiple Euler integration. The Runge-Kutta 4 is commonly used for integration, due to thelow computational requirements and the reasonable accuracy. Below, the
Euler integration (see section 4.4.1), the general Runge-Kutta methods (see 4.4.2) and
the Runge-Kutta 4 integration (see 4.4.3) are explained.
4.4.1
Euler Integration
The Euler integration is a very basic stepwise integration method.
Assume the initial value problem:
y 0 = f (t, y)
(4.69)
y(t0 ) = y0
(4.70)
Then the Euler integration is defined as:
tn+1 = tn + hyn+1 =
4.4.2
yn + yn h
(4.71)
General Runge-Kutta Method
The Runge-Kutta methods compute the step in a stepwise integration process [6]. With
the same initial value problem as for the Euler integration, the stepwise Runge-Kutta
integration is defined by:
s
X
yn+1 = yn +
bi ki
(4.72)
i=1
Here [6]:
k1 = hf (tn , yn )
(4.73)
4 Functional Description
35
k2 = hf (tn + c2 h, yn + a21 k1 )
(4.74)
k3 = hf (tn + c3 h, yn + a3 1k1 + a3 2k2 )
(4.75)
...
(4.76)
k1 = hf (tn + cs h, yn + as1 k2 + ... + as,s−1 ks−1
(4.77)
To specify a certain method, an integer s is required and the coefficients aij (1 ≤ j < i ≤ s),
bi (i = 1, 2, ...s) and ci (i = 2, 3, ..., s). These coefficients are arranged in a Butcher tableau,
as seen in table 4.2.
0
c2
c3
...
cs
a21
a31
as1
b1
a32
...
as2
b2
...
...
as,s−1
bs−1
bs
Table 4.2: The Butcher tableau [6]
The time step does not need to be fixed. Depending on the expected amount of nonlinearity of the system, the time step can be reduced or increased. For example, in an
elliptical orbit, the non-linearities are higher with a higher velocity. This means that
the time step needs to be lowered around the perigee and increased around the apogee.
However, decreasing the time step too much can make errors due to round-off larger than
the integration errors. A way of adjusting the time step is by, for example, using the error
estimate of the Cash-Karp method.
The difference between the fourth- and fifth-order integration is determined.
δ=
|y5th − y4th |
tn+1 − tn
(4.78)
If δ is larger than a preset error, the step size needs to be reduced. If δ is much smaller
(e.g. 3 times smaller) than the allowed error, the time step needs to be increased to reduce
the computational load. This way, the computational load of the integration method can
be optimised and the available computational load can be used optimally.
4.4.3
Runge-Kutta 4
One of the most known is the Runge-Kutta 4 (RK4) integrator. The integration is described by [6]:
1
yn+1 = yn + (k1 + 2k2 + 2k3 + k4 )
6
tn+1 = tn + h
k1 = hf (tn , yn )
1
1
k2 = hf (tn + h, yn + k1 )
2
2
(4.79)
(4.80)
(4.81)
(4.82)
36
4 Functional Description
1
1
k3 = hf (tn + h, yn + k2 )
2
2
k4 = hf (tn + h, yn + k3 )
(4.83)
(4.84)
Here yn+1 is the approximation of y(tn+1 ).
4.5
Filter Algorithms
The linear Kalman filter is an optimal estimator for systems with linear models for both
the process and the measurements. To be able to work with non-linear systems, several
variations have been developed on the linear Kalman filter. The most commonly used
in the field of navigation is the extended Kalman filter (EKF), which uses Taylor series
expansions to linearise the system. Due to its well-known behaviour, the EKF is used
as the baseline and is explained in section 4.5.2. Lately, the unscented Kalman filter
shows great promise in solving non-linear problems. It generates a distribution based on
the posterior estimate and its covariance and generates a new covariance by assuming
a Gaussian noise over this distribution [9]. Due to the limited number of points in the
distribution, the computational load is lower than pure Monte Carlo based systems. Since
the UKF should be able to handle non-linear systems with larger errors, it is included in
this research and explained in 4.5.3 [11]. First, a short introduction to general Kalman
filtering is given in 4.5.1. This section also describes the nomenclature for the rest of the
chapter.
4.5.1
Introduction to Kalman Filtering
Kalman filters are recursive filters. This means they use information from previous for
estimating a new state [10]. For Kalman filters, this is not only limited to the reuse of the
state, but also to include the previous noise in the shape of a covariance matrix. Finding
the balance between reusing the previous step and putting more emphasis on the current
measurements, is the main focus of tuning the filter.
The system is described by a process and measurement model:
xk = f (xk−1 , uk , wk−1 )
(4.85)
zk = h(xk , vk )
(4.86)
The dynamics model, f , links the previous state, xk−1 to the current one, xk . The
measurement model h is used to calculate the measurements zk from the state. As extra
inputs to the dynamics model, control inputs, uk , can be added. The variables wk−1
and vk represent the process and measurement noise, respectively. The process and
measurement covariance matrix, Q and R, respectively, are given by:
Q = E(wwT )
T
R = E(vv )
(4.87)
(4.88)
Kalman filters follow a general pattern [20]. Firstly there is a predict cycle, then a
correction cycle. The predict cycle uses the a posteriori state of the previous loop, x̂k−1 ,
4 Functional Description
37
and the process to calculate a new state, the a priori state, x̂−
k . From the a priori state,
an a priori measurement, ẑk− , is calculated using the measurement model h. Finally,
the a priori covariance can be calculated. The correction cycle uses the innovation, the
difference between the a priori measurements, ẑk− , and the actual measurements, z, to
correct the apriori state, x̂−
k , to get the a posteriori state, x̂k . The degree of correction
is based on the different covariances and is the focus of tuning the filter, as mentioned
before. The different types of Kalman filters use different techniques during this process.
These techniques have a large influence on the capability of resolving non-linear systems,
the required computational power and the complexity of the filter implementation and
tuning.
The true measurements and states do not have a superscript (e.g. xk ). The hat represents
estimated values inside the filter. The superscript − denotes that the variable is an a priori
value. The subscript (e.g. k) denotes the evaluation step.
4.5.2
Extended Kalman Filter
In the predict cycle, the state can be updated by propagating the state using the nonlinear process equations [21].
(4.89)
x̂−
k = f (x̂k−1 , uk , 0)
Note that the noise of the system is put to zero for the integration. The integration can
be performed using an Euler integration, with one or multiple steps over the integration
interval, or more advanced methods (e.g. Runge-Kutta integrations). This has an influence on the performance of the filter, in both numerical results and computational load.
From x̂−
k , the a priori measurements are calculated with the measurement model:
ẑk− = h(x̂−
k , 0)
(4.90)
The problem is that a Kalman gain needs to be calculated for the non-linear system. In
the EKF, the Riccati equations are used, as for the linear Kalman filter:
Pk− = Φk Pk−1 ΦTk + Qk
(4.91)
Kk = Pk− H T (HPk− H T + Rk )−1
(4.92)
Kk H)Pk−
(4.93)
Pk = (I −
Here, Φ is the fundamental matrix, P is the covariance matrix of the filter, H is the
measurement matrix, and Qk is the discrete process covariance matrix. The fundamental
matrix is based on the state transition matrix, F . The state transition matrix, F , and
measurement matrix, H, are the Jacobians from the process and measurement equations:
∂f (x̂)
∂ x̂
∂h(x̂)
H=
∂ x̂
F =
(4.94)
(4.95)
These matrices can vary each time step, but to increase readibility the subscript k is left
out. Since the process is non-linear, the fundamental matrix, Φ can be approximated
38
4 Functional Description
with a Taylor series expansion:
Φ = I + F TS +
F 2 TS2 F 3 TS3
+
+ ...
2!
3!
(4.96)
with TS being the sample time. Accoring to Zarchan [21], an expansion of the Taylor
series above the first-order, generally does not improve the performance of the filter, since
the expansion is only used for computing the covariance and not for propagation of the
states. As a result, the fundamental matrix becomes:
Φ = I + F TS
The discrete process covariance matrix can now be calculated from Φ and Q:
Z TS
Φ(t)QΦT (t)dt
Qk =
(4.97)
(4.98)
0
Now the a posteriori state can be computed using Kk from equation 4.92, x̂−
k from
equation 4.89, ẑk− from 4.90, and the actual measurements (zk ).
x̂k = x̂k−1 + Kk (zk − ẑk− )
4.5.3
(4.99)
Unscented Kalman Filter
With large non-linearities, the EKF becomes inaccurate due to the linearisation process.
The unscented Kalman Filter (UKF), based on the unscented transformation, tries to
provide a solution for this problem by using a minimal set of sample points, the sigma
points. These sample points cover the mean and covariance of the system and, after
propagating these points with the non-linear process, also covers the mean and covariance
of the a posteriori mean and covariance up to the second order for all non-linearities [16].
This filtering technique was developed in the 1990s by Julier and Uhlmann [9].
By using the unscented transformation to generate the sigma points, the UKF reduces
the number of points, compared to Monte Carlo like techniques, while keeping the characteristics of the system.
The state in the UKF is augmented with zeros and the covariance is augmented with the
measurement covariance and the process noise:
xa = x 0 0
(4.100)


P0 0 0
Pka− =  0 Q 0 
(4.101)
0 0 R
To compute the sigma points, S needs to be computed from the covariance of the previous
step [16]:
a
Pk−1
= ST S
(4.102)
p a
a
If Pk−1 would be a 1-by-1 matrix, S would be Pk−1 . Therefore, it is sometimes called the
square root. There are multiple solutions to this problem. The Cholesky decomposition is
4 Functional Description
39
often used in UKF design for calculating S, since covariance matrices are positive definite
and symmetric [11]. The Cholesky decomposition is explained in appendix ??. The 2n+1
sigma points, with n the number of states, are calculated by:
a
X−
0 = x̂k−1
(4.103)
a
X−
i = x̂k−1 +
a
X−
i = x̂k−1 −
√
√
L + λSi
for i = 1, ...L
(4.104)
L + λSi
for i = L + 1, ...2L
(4.105)
with Si the i-th column of S, L the number of elements in the augmented state and
λ = α2 (L + κ). α is a constant representing the spread of the sigma points and κ is a
secondary tuning parameter.
Each of these sigma points is propagated using the (non-linear) process model and measurements are generated using the measurement model.
X i = f (X −
i , uk , 0) for i = 0, ...2n
(4.106)
Z i = h(X i , 0) for i = 0, ...2n
(4.107)
The /textita priori state estimate and measurement are computed by taking a weighted
mean:
x̂a−
k
=
ẑka− =
2n
X
i=0
2n
X
Wm i X i
(4.108)
Wm i Z i
(4.109)
i=0
with the weights being:
λ
L+λ
1
=
for i = 1, ...2L
2(L + λ)
Wm0 =
(4.110)
Wm i
(4.111)
a− , respectively, are now
The a priori state and measurement covariance, Pka− and Pzz
calculated based on the differences between the sigma points and their weighted means:
Pka− =
a−
Pzz
=
2n
X
i=0
2n
X
− T
Wci (X i − x̂−
k )(X i − x̂k )
(4.112)
Wci (Z i − ẑk− )(Z i − ẑk− )T
(4.113)
i=0
with the weights:
λ
+ (1 − α2 + β)
L+λ
Wci = Wmi for i = 1, ...2L
W c0 =
(4.114)
(4.115)
40
4 Functional Description
Here, β is tunable and represents the extend to which the spread of x is known beforehand.
For a Gaussian distribution, β is 2. As a result, the weights for Gaussian distributions are
the same for calculating covariances and means. For non-Gaussian distributions, further
tuning is possible. Now the cross-covariance can be calculated in a similar fashion:
Pxz =
2n
X
− T
Wci (X i − x̂−
k )(Z i − ẑk )
(4.116)
i=0
The first step for the correction cycle is calculating the innovation.
νk = zk − ẑk−
(4.117)
In the EKF, the a priori state covariance is used, in combination with H and R, to
calculate the Kalman gain. In the UKF, the information in Pk− is incorporated in Pzz ,
and therefore also in Pxz and Pνν , due to the propagation of the sigma points and by
taking the weighted mean. As a result, the Kk can be computed by:
−1
Kk = Pxz Pνν
(4.118)
which is a similar expression as in 4.92.
Now the a posteriori state, x̂k , and covariance, Pk , can be updated:
x̂k = x̂−
k + Kk ν k
(4.119)
Pk = Pk− − Kk Pνν KkT
(4.120)
There is also an simplified version of the UKF. This filter generates sigma points based
only on the state and its related covariance, instead of the augmented state. In that case,
the process and measurement covariance are added to Pk−1 and Pνν , respectively:
Pk−1 = Pk−1 + Q
(4.121)
Pνν = Pzz + R
(4.122)
The addition of the process noise is done before the sigma points are determined. The
measurement noise is added to the measurement covariance, resulting in the innovation
covariance. This replaces the measurement covariance for the calculation of the Kalman
gain. The rest of the covariances and states are calculated as for the normal UKF.
According to REFERENCE, the non-augmented state should have a better performance
for high noise systems, although higher-order non-linearity, especially in the measurements
is estimated less accurately.
An important note for the verification of the EKF and UKF compared to each other is
that both filters should have the same performance for linear systems, and very similar
for slightly non-linear systems.
To summarise, due to the spread of sigma points, the UKF has an advantage over the
EKF, since the covariances are computed from a propagation of sigma points, and should
therefore include a better mapping of non-linear relations in the state and in the measurement model. The disadvantage is the requirement to compute the square root, increasing
the computational load. Due to the autonomy requirement, a low computational load is
favourable. In combination with handling large noises better, the non-augmented state
UKF is chosen over the normal UKF.
Chapter 5
Implementation and Verification
This chapter describes the system implementation. This is a step-wise process, starting
with the falling-body reference case for the EKF and ending with the complete system
for EKF and UKF. Unit tests for smaller units have been added in A. Large derivations
are also included in the appendices.
First, the general implementation is described in 5.1. The other sections cover the stepwise approach.
5.1
General Implementation
The system is modelled in Matlab for the ease of implementation and debugging. For
more optimised performance, an implementation in other coding languages (e.g. C++)
could be better. However, for a relative performance comparison, this is sufficient.
Throughout the simulation campaign, a central library is used, so that incremental
changes are applied to all simulations. This is not always possible, but maximised if
possible to reduce the chance of errors.
The basic setup is straightforward and the same for all simulations:
1. Initialise the orbit, attitude and time for the true orbit
2. Load the simulation parameters: the filter tuning parameters, the description of the
environment, the sensor characteristics, and the standard deviation of the initial
conditions
3. Generate a trajectory: a propagation of the intialised conditions or a load of pregenerated trajectory
4. Generate measurements or load pre-generated measurements for the trajectory
5. Loop through the filter
41
42
5 Implementation and Verification
6. Analyse the results
The analysis of the results is mainly based on plots. Two sets of plots are use mostly.
The first type shows the difference between the actual and estimated state. In this plot,
the covariance is often included. The diagonal of the covariance matrix is, in a linear
system, the square of the standard deviation, σ. The 3 − σ value should contain about
99.7% of those differences. The second type of plots are measurement plots, containing
the input measurements and the measurements generated inside the filter. When the
filter converges, the internal measurements should stabilise on the average of the input
measurements.
5.2
Falling-body Problem
The goal of the falling body problem is testing the implementation of the EKF algorithms.
5.2.1
Implementation Description
Process Description
The falling-body problem is specified by Zarchan [21]. The system consists of a falling
body in a uniform gravity field, susceptible to aerodynamic drag. Only vertical motion is
taken into account. The states are:
x
x=
(5.1)
dotx
The acceleration is described by:
ẍ =
0.5ρẋ2
−g
β
(5.2)
where β is the ballistic coefficient of the body, g is the gravitational acceleration, and ρ
is the atmospheric density. ρ is described as:
−x
ρ = 0.0035e 22000
(5.3)
The gravitational acceleration, g, is 32.2ft/s2 . The ballistic coefficient is set to 500 lb/ft2 .
The input trajectory is propagated using the ode45 function. Zarchan uses a second-order
Runge-Kutta for the integration, but due to the simplicity of the system, the difference in
performance between these two should be negligible. This also allows to test the correct
implementation of the trajectory integration. Inside the filter, the state propagation is
performed with an Euler integration.
The details of the derivation of the process covariance matrix, the fundamental matrix
and the discrete process covariance matrix can be found in [21]. For completeness, the
matrices are presented below. The process covariance matrix is:
∂ ẋ ∂ ẋ ∂ ẋ
(5.4)
F = ∂x
∂ ẍ
∂ ẍ
∂x
∂ ẋ
5 Implementation and Verification
"
=
43
0
1
ˆ2
−ρ(x̂)g ẋ
44000β
ˆ
ρ(x̂)g ẋ
β
#
(5.5)
The first-order Taylor-series expansion of the fundamental matrix is:
Φ(t) = I + F t
1
t
=
f21 t 1 + f22 t
(5.6)
(5.7)
The continuous process-noise matrix is:
0 0
Q(t) =
0 ΦS
(5.8)
where ΦS is the spectral density of the white noise on the calculation of the acceleration
during the integration inside the filter. The discrete process-noise matrix can then be
calculated from Q(t) and F :
Z TS
Φ(t)QΦT (t) dt
(5.9)
Qk =
0
"
#
TS3
TS2
TS3
+
F
22
2
3
= ΦS T 2 3 T 3
(5.10)
3
2 + f 2 TS
S
S
+
f
T
+
f
T
22
22
S
22 3
S
2
3
Measurements Description
There is one measurement, a radar measurement. This measurement measures the range
from the radar to the object with a measurement accuracy with a standard deviation of
1000 ft. Measurements are taken at 10 Hz over a time period of 30 s. Initially, the object
is at 200 000 ft above the radar.
Filter Implementation and Assumptions
Zarchan describes three EKF implementations in chapter 7 of [21]:
1. EKF without and with process noise, with a first-order Taylor series expansion for
the fundamental matrix, and Euler integration for the process in the filter
2. EKF without process noise, second- and third-order Taylor series expansions for the
fundamental matrix, and Euler integration for the process in the filter
3. EKF without process noise, with a first-order Taylor series expansion for the fundamental matrix, and more accurate integration methods for the process in the
filter
The conclusions from those three implementations are, according to Zarchan, that the use
of higher-order Taylor series for the fundamental matrix does not have a large influence
on the stability of the filter. The addition of process noise and more accurate integration
helps. Therefore, the first and third implementation are tested to check whether the EKF
implementation is correct. The use of process noise and better integration can be used
later on for trying to optimise the filters.
44
5 Implementation and Verification
Figure 5.1: Difference between simulated and estimated altitude for the falling body problem
with a standard deviation of 1000 ft
5.2.2
Results
First Implementation
The first test is performed with the standard deviation of the measurements on 1000 ft,
without any process noise. The results are shown in figure 5.1. The filter converges and
the errors on the states remain within the boundaries, as predicted by the covariance.
The behaviour is the same as described by Zarchan [21]. The dotted red line is the square
root the diagonal of the covariance matrix and represents the 1 − σ value of the state.
The full red line is the 3 − sigma value. Ideally, the 1 − σ and 3 − σ bounds should cover
68% and 99.7% of the error distribution, respectively.
The second simulation uses a standard deviation of 25 ft for the measurements, without
process noise. As shown in figure 5.2, the error on the states diverges after 20 s. This
same behaviour is also observed by Zarchan and is caused by the Kalman gains being
very low. As a result, the filter wil give a higher weight to the process and reduce the
influence of the measurements as a correcting factor.
Based on the previous simulation, a third simulation is run with a process noise of 100
(= ΦS ). This is not an optimised value, but shows the influence on the stability of the
filter, as can be seen in figure 5.3. The filter no longer diverges, but remains within the
3−sigma boundaries. Increasing the process noise, increases the Kalman gain. Therefore,
the difference between the predicted measurement and the real measurement has a larger
influence on the behaviour of the filter, as can be deduced from equation 4.99.
5 Implementation and Verification
Figure 5.2: Difference between simulated and estimated altitude for the falling body problem
with a standard deviation of 25 ft
Figure 5.3: Difference between simulated and estimated altitude for the falling body problem
with a standard deviation of 25 ft and ΦS = 100
45
46
5 Implementation and Verification
Figure 5.4: Difference between simulated and estimated altitude for the falling body problem
with reduced integration steps
Third Implementation
In the third implementation, the step-size of the Euler integration is changed from 0.1 s
steps to 0.001 s. As a result, the integration accuracy over 0.1 s inside the filter becomes
more accurate. This simulation is run both without (ΦS = 0) and with process noise
(ΦS = 100). The results are similar to those described by Zarchan, see [21]. The result
of with ΦS = 0 is given in figure 5.4.
As mentioned by Zarchan, the difference between the simulations with process noise, but
with a different integrator are not very large. Therefore, it could be useful to use a larger
integration step to reduce the computational load and use process noise to avoid drifting.
5.3
Position Estimation in Orbit
The goal of the in-orbit position estimation is to check the implementation of the lateral
equations of motion and verify the implementation of the UKF by cross-checking with
the EKF.
5 Implementation and Verification
5.3.1
47
Implementation Description
Process Description
The states are:
 
x
y 
 
z 

x=
ẋ
 
ẏ 
ż
(5.11)
The initial conditions are chosen such that a circular orbit is obtained with a semi-major
axis of 40 000 km with an inclination of 45, in case no disturbances are present, and the
ascending node on the X-axis. Earth is chosen as the central body. First, a system with
only a central gravity acting on the spacecraft is implemented, then one with disturbances.
The dynamics of the undisturbed orbit are described by (see 4.2.1):
µ
ẍ = − 3 r
|r|
(5.12)
with r being the position vector.
The equations of motion for the disturbed orbit are described by:
ẍ = −
µ
µ
µ
W S rS
r−
rM −
rS + Cr 2
3
3
3
|r|
|rM |
|rS |
cm |rS |
(5.13)
with the subscripts M referring to the Moon and S to the Sun. The second and third
terms are the lunar and solar gravity, respectively, and the last term is the solar pressure.
The derivation of the Jacobians of the process matrix can be found in (REFERENCE
TO APPENDIX). For completeness, the Jacobian is also given here:
 ∂ ẋ ∂ ẋ ∂ ẋ ∂ ẋ ∂ ẋ ∂ ẋ 
∂x
 ∂ ẏ
 ∂x
 ∂ ż
 ∂x
F = 
 ∂ ẍ
 ∂x
 ∂ ÿ
 ∂x
∂ z̈
∂x
∂y
∂ ẏ
∂y
∂ ż
∂y
∂ ẍ
∂y
∂ ÿ
∂y
∂ z̈
∂y
∂z
∂ ẏ
∂z
∂ ż
∂z
∂ ẍ
∂z
∂ ÿ
∂z
∂ z̈
∂z
∂ ẋ
∂ ẏ
∂ ẋ
∂ ż
∂ ẋ
∂ ẍ
∂ ẋ
∂ ÿ
∂ ẋ
∂ z̈
∂ ẋ
∂ ẏ
∂ ẏ
∂ ẏ
∂ ż
∂ ẏ
∂ ẍ
∂ ẏ
∂ ÿ
∂ ẏ
∂ z̈
∂ ẏ
∂ ż
∂ ẏ 
∂ ż 
∂ ż 

∂ ż 
∂ ẍ 
∂ ż 
∂ ÿ 
∂ ż 
∂ z̈
∂ ż


0
0
0 1 0 0
0
0
0 0 1 0


0
0
0 0 0 1


= 

0
0
0


 F (4 : 6, 1 : 3)
0 0 0
0 0 0
(5.14)
(5.15)
The lower left part of the matrix becomes:
F (4, 1) =
−µ 2
−µ 2
−µ
WS
(r − 3x2 ) + 5 (rM
− 3x2M ) + 5 (rS2 − 3x2S ) + Cr 2 3 (rS2 − x2S )
5
r
rM
rS
cm rS
(5.16)
48
5 Implementation and Verification
WS
xy
xM yM
x S yS
+ 3µ 5
+ 3µ 5 + Cr 2 3 (xS yS )
5
r
rM
rS
cm rS
x S zS
WS
xz
x M zM
+ 3µ 5 + Cr 2 3 (xS zS )
F (4, 3) = 3µ 5 + 3µ 5
r
rM
rS
cm rS
F (4, 2) = 3µ
(5.17)
(5.18)
F (5, 1) = F (4, 2)
(5.19)
−µ
−µ
WS
−µ 2
2
F (5, 2) = 5 (r2 − 3y 2 ) + 5 (rM
− 3yM
) + 5 (rS2 − 3yS2 ) + Cr 2 3 (rS2 − yS2 ) (5.20)
r
rM
rS
cm rS
yz
WS
yM zM
yS z S
F (5, 3) = 3µ 5 + 3µ 5 + 3µ 5 + Cr 2 3 (yS zS )
(5.21)
r
rM
rS
cm rS
F (6, 1) = F (4, 3)
(5.22)
F (6, 2) = F (5, 3)
(5.23)
WS
−µ
−µ
−µ 2
2
F (6, 3) = 5 (r2 − 3x2 ) + 5 (rM
− 3zM
) + 5 (rS2 − 3zS2 ) + Cr 2 3 (rS2 − zS2 ) (5.24)
r
rM
rS
cm rS
For the undisturbed orbit, only the first terms need to be taken into account.
The fundamental matrix is calculated according to 5.6 with the matrix for the process
noise is given by:


ΦS1
0
0
0
0
0
 0 ΦS2
0
0
0
0 



 0
0
Φ
0
0
0
S3

(5.25)
Q(t) = 
 0
0
0 ΦS4 0 0
0 


 0
0
0
0
ΦS5
0 
0
0
0
0
0 ΦS6
with ΦS1 to ΦS6 representing the white noises on the process. The discrete process-noise
matrix is calculated using equation 5.9.
Measurements Description
The measurements consist of the position with a white noise with a standard deviation
of 1000 m. The measurements are kept simple to avoid further errors due to derivations
of the measurement matrix while verifying the behaviour of the orbit dynamics equations
and the implementation of the UKF.
For the EKF, the measurement matrix becomes:


1 0 0 0 0 0
H = 0 1 0 0 0 0
0 0 1 0 0 0
Filter Implementation and Assumptions
Four implementations are implemented:
1. The EKF without disturbances: this is used as the reference case
(5.26)
5 Implementation and Verification
49
2. The UKF without disturbances to verify the implementation of the UKF
3. The EKF with disturbances to verify the implementation of the disturbed orbit
4. The UKF with disturbances
The propagation of the orbit in both filters is performed using an Euler integration. In
case of the disturbed orbit, the disturbances are also included in the propagation. In a
later stage, removing the disturbances is tested.
The difference between the disturbed and undisturbed orbit are very small. The test
on the performance of the propagation is performed in appendix A.2. The evaluation of
the correct implementation of the disturbances is therefore based on the relatively small
impact they have on the orbit. Therefore, the difference between the disturbed orbit and
its estimation should remain almost the same as for the undisturbed orbit. Since there are
no large non-linearities in this system, the difference between the EKF and UKF should
also be minimal.
5.3.2
Results
The difference between simulated and estimated position are given in figure 5.5 and 5.5.
As expected, the difference between the simulation and the state converges within the 3−σ
boundaries. For the reference case, both position and velocity are given. For the other
implementations, only the position is shown. In section 5.1, it is mentioned the internal
measurements of the filter should settle around the average of the input measurements.
As can be seen in figure 5.5, the noise on the measurement difference is about the noise
of 1000 m which was put on the measurements.
The performance of the UKF is almost identical to the performance of the EKF for the
undisturbed case, as can be seen in figure 5.8. In case of a linear system, the performance
of the EKF and the UKF should be the same as for the linear Kalman filter. Since the
non-linearities in the system are very low, it is normal that the system performs almost
identical. Therefore, it can be assumed that the UKF is implemented correctly.
Since the disturbances should have a minor influence on the performance of the filter,
the difference between the disturbed and undisturbed cases should be negligible. As can
be seen in figures 5.9 and 5.10, the performance is very close to the undisturbed cases.
Therefore, the implementation of the disturbances in the propagator can be assumed
correct, as well as the derivation of the Jacobians of the disturbances.
5.4
Planet Measurements for Position
The goal is to verify the implementation of the planet measurements in the EKF and UKF.
Therefore, the attitude is not included, but the position is measured with the sensors fixed
in a spacecraft-centred inertial system. As a further simplification, the field-of-view of
the sensors is not limited. This could include singularities, so the resulting measurements
must be looked at with care.
50
5 Implementation and Verification
Figure 5.5: Difference between simulated and estimated position for the direct position estimation with EKF in a circular orbit without disturbances
Figure 5.6: Difference between simulated and estimated velocity for the direct position estimation with EKF in a circular orbit without disturbances
5 Implementation and Verification
Figure 5.7: Difference between input measurements and the internal filter measurements for
the direct position with EKF estimation in a circular orbit without disturbances
Figure 5.8: Difference between simulated and estimated position for the direct position estimation with UKF in a circular orbit without disturbances
51
52
5 Implementation and Verification
Figure 5.9: Difference between simulated and estimated position for the direct position estimation with EKF in a circular orbit with disturbances
Figure 5.10: Difference between simulated and estimated position for the direct position
estimation with UKF in a circular orbit with disturbances
5 Implementation and Verification
53
Three sensors are being used for this test: planet measurements of Earth and Moon,
and a Sun sensor. For the EKF, two different implementations are used for the planet
measurements. The first one is based on the azimuth, elevation and angular size. The
second one includes a further processing to obtain the position vector of the planet. For
the UKF, only the azimuth, elevation and angular size measurements are implemented.
5.4.1
Implementation Description
Process Description
The states are the same as the one used in the previous section, see 5.3.1.
The sensors are oriented in the same direction as the inertial frame. The sensor observation axis is the Z-axis in the sensor frame, and so also in the inertial frame. The initial
position is chosen on the -Z-axis, resulting in an initial azimuth and elevation of Earth of
0◦ . The semi-major axis is again chosen at 40 000 km. To check the behaviour of both
azimuth and elevation, the velocity is:
i
√
h√
vx vy vz = 22 v0 − 22 v0 0
(5.27)
with v0 being the velocity required for a circular orbit. With this initial velocity, the
azimuth and elevation should start at zero and decrease (azimuth) or increase (elevation).
Measurements Description
Two types of measurements are to be implemented. One is a the angles measurement
(azimuth, elevation and angular size), the other is the position vector measurement. To
allow for a fair trade-off between the two systems, the position vector measurement is
computed from the azimuth, elevation and angular size. This way, the noise on the
position is the same, only described differently. This allows for an extra cross-check
between the systems. Since the attitude is not modelled, the sensors are assumed to be
centred in an inertial frame, centred in the spacecraft.
The measurements consist of:
1. Planet measurements of Earth
2. Planet measurements of the Moon
3. Sun sensor
The planet measurements are described in 4.3.1.
The angle measurements consist of an azimuth (α), elevation () and a angular size
measurement. For simplicity, the Sun sensor is implemented similarly with azimuth and
54
5 Implementation and Verification
elevation as outputs. For the first implementation, the measurements are:


αE
 E 


 θE 


αM 


z=

 M 
 θM 


 αS 
(5.28)
S
with α (see equation 4.61), (see equation 4.62) and θ (see equation 4.65) calculated by:
α = atan 2(xX S , zX S )
(5.29)
= asin(yX S /|rX S |)
RX
θ = 2 asin
;
rX S
(5.30)
(5.31)
with the subscript XS referring to body X (Earth, Moon or Sun) in the sensor frame
(S). For the UKF, these equations are sufficient. For implementation in the EKF, the
measurement matrix, H, needs to be calculated. The implementation of the sensors,
centred in the spacecraft-centred inertial frame, is called the simplified model and the
derivation can be found in appendix ??. The elements of H related to the azimuth are:
H(i, 1) =
−zX S
2
xX SS + zX S 2
H(i, 2) = 0
H(i, 3) =
(5.32)
(5.33)
xX S
2
xX SS + zX S 2
(5.34)
where the i-th row is the row of the respective measurement and the columns 1, 2 and 3
are related to the states x, y and z. The elements of H related to the elevation are:
H(i, 1) =
x y
qX S X S
rX 2S rX 2S − yX 2S
yX 2S − rX 2S
q
rX 2S rX 2S − yX 2S
z y
qX S X S
H(i, 3) =
rX 2S rX 2S − yX 2S
H(i, 2) =
(5.35)
(5.36)
(5.37)
The elements of H related to the angular size are:
H(i, 1) =
2R x
q X XS
RE 2 rX 2S − RE 2
(5.38)
2R y
q X XS
rX 2S − RE 2
(5.39)
H(i, 2) =
RE
2
5 Implementation and Verification
H(i, 3) =
55
2R z
q X XS
RE 2 rX 2S − RE 2
(5.40)
The azimuth, elevation and angular size are not related to the angular rate, so the columns
4 to 6 of the matrix are zero.
For the position vector measurements, the Earth and Moon position are calculated from
the above measurements. In the filter, the system is easier, since the position vector of
Earth and Moon are directly related to the position of the spacecraft:
∂xX S
= −1
∂x
∂yX S
H(i + 1, 1) =
= −1
∂y
∂zX S
= −1
H(i + 2, 1) =
∂z
H(i, 1) =
(5.41)
(5.42)
(5.43)
All the other elements are zero.
Filter Implementation and Assumptions
In this test, the sensors are assumed to be in a spacecraft-centred inertial frame. This
choice was made to avoid further complications due to the cross-correlation of position
and attitude measurements.
The second assumption is the infinite field-of-view. To be able to check the convergence
of the filter, continuous measurements are helpful. However, problems can occur if the
measured elevation goes to ±90◦ . In that case, the tangent function goes to infinity and
the error behaviour could be incorrect. This could potentially cause problems for the
filter.
For the propagation inside the EKF and UKF, the Euler integration is used.
5.4.2
Results
The results are expected to be similar for all implementations, if there is no singularity
due to measurements. Therefore, the measurements are being looked at first. The measurements for the EKF and UKF implementation are the same. The measurements for
the position vector measurements are processed further. The measurements, both internal
and inputs, for Earth, Moon and Sun sensor are given for the EKF in figures 5.11 to 5.13,
respectively. In the Moon and Sun sensor measurements, there should be no singularities
over the simulated time 25 000 s. In the measurements of the Earth sensor, there could
potentially be a problem, due to the low noise on the elevation at about 20 000 s. The
elevation is measured in YZ-plane of the sensor system. If the azimuth is 90◦ , the planet
must be on the XY-plane. Due to the modelling of the noise, the standard deviation of
the noise will reduces. Normally, this is not a problem, because the field-of-view of the
sensors is limited to 20◦ half-cone. The deviation of the noise in that field-of-view from a
constant is less thamn 10%.
56
5 Implementation and Verification
Figure 5.11: Measurements of the Earth sensor for the estimation with EKF with angle
measurements in the inertial frame
Figure 5.12: Measurements of the Moon sensor for the estimation with EKF with angle
measurements in the inertial frame
5 Implementation and Verification
Figure 5.13: Measurements of the Sun sensor for the estimation with EKF with angle measurements in the inertial frame
Figure 5.14: Difference between simulated and estimated position for the estimation with
EKF with angle measurements in the inertial frame
57
58
5 Implementation and Verification
Figure 5.15: Difference between simulated and estimated position for the estimation with
UKF with angle measurements in the inertial frame
None of the filters is capable of handling the lower noise. All have a similar behaviour as
shown for the EKF in figure 5.14. However, if only the first 5000 s are looked at, with
data that is not or less influenced by the reduction of noise on one axis, the differences
between estimated and simulated position for the three implementations are converging
within the 3−σ boundaries, as can be seen in figures 5.14 to 5.15. For this reason, another
initial state is tested with Therefore, it can be assumed that the three implementations
are properly implemented, with a focus on the simplified model in the EKF and UKF,
the measurement matrix in the EKF and the position vector measurements for the EKF.
5.5
Planet Measurements and Star Tracker
The next step consists of adding the star tracker and observing the attitude. This is
included in the three configurations from the previous test: the EKF with angle measurements, the EKF with position vector measurements and the UKF.
The implementation is also performed in steps.
1. The implementation of the previous test is expanded with the star tracker measuring
the attitude and the other measurements measuring the position.
2. The attitude and position are linked by mounting the planet and Sun sensors on
the attitude.
3. The final step is having the system rotate and limit the field-of-view.
These final tests should show the capabilities of the system to estimate both position and
attitude with limited measurements.
5 Implementation and Verification
59
Figure 5.16: Difference between simulated and estimated position for the estimation with
EKF with position vector measurements in the inertial frame
5.5.1
Implementation Description
Process Description
The state is now expanded to include the attitude:
 
r
 ṙ 

x=
q 
ω
(5.44)
with
 
x
r = y 
z
 
q1
q2 

r= 
q3 
q4
 
ẋ
ṙ = ẏ 
ż
 
ωx
ω = ωy 
ωz
(5.45)
(5.46)
The states for the attitude are described in section 4.2.4.
q˙1 = 0.5(ωx q4 + ωy q3 − ωz q2 )
(5.47)
q˙2 = 0.5(ωy q4 + ωz q3 − ωx q3 )
(5.48)
60
5 Implementation and Verification
q˙3 = 0.5(ωz q4 + ωx q2 − ωy q1 )
(5.49)
q˙4 = 0.5(−ωx q1 − ωy q2 − ωz q3 )
(5.50)
ω˙x = 0
(5.51)
ω˙y = 0
(5.52)
ω˙z = 0
(5.53)
The derivatives of the rotational rates are assumed to be zero with the disturbances on the
rates assumed to be negligible for filter performance. On longer simulations, the difference
is notable in the attitude and rates. However, the disturbances are very low, so the rates
changes slowly. As a result, this should be easily filtered out with the measurements from
the star trackers with minimal influence on the filter.
For the UKF, the above description is sufficient.
needs to be derived. The complete derivation is

0
−0.5ωz 0.5ωy 0.5ωx
 0.5ωz
0
−0.5ωx 0.5ωy

−0.5ωy 0.5ωx
0
0.5ωz

−0.5ω
−0.5ω
−0.5ω
0
Fq = 
x
y
z

 0
0
0
0

 0
0
0
0
0
0
0
0
For the EKF, the state transition matrix
given in ??.

0.5q4
0.5q3 −0.5q2
−0.5q3 0.5q4
0.5q1 

0.5q2 −0.5q1 0.5q4 

−0.5q1 −0.5q2 −0.5q3 
(5.54)


0
0
0 
0
0
0 
0
0
0
Since no disturbances are taken into account for the attitude, there is no correlation
between attitude and position. As a result, the fundamental matrix is:
Fx 0
F =
(5.55)
0 Fq
with Fx described in 5.3.1.
Measurements Description
The star tracker is modelled as a quaternion multiplication of the attitude and the sensor
quaternion (see equation 4.68):
zST R1 = q4 s1 + q1 s4 − q2 s3 + q3 s2
(5.56)
zST R2 = q4 s2 + q1 s3 + q2 s4 − q3 s1
(5.57)
zST R3 = q4 s3 − q1 s2 + q2 s1 + q3 s4
(5.58)
zST R4 = q4 s4 − q1 s1 − q2 s2 − q3 s3
(5.59)
For the UKF, these equations are sufficient. For the EKF, the derivatives with respect to
the different states need to calculated. The results can be found in equations to .
For the first implementation of the angle measurements, the simplified model is used for
the planet and Sun sensor, as explained in section 5.4.1. The attitude and position, as
well as their measurements are kept unrelated. This means the Earth, Moon and Sun
sensor are mounted in the inertial frame, instead of on the spacecraft. The star tracker is
5 Implementation and Verification
61
fixed on the spacecraft and measures the attitude. This way, the implementation of the
star tracker can be tested.
For the link to the attitude, the derivatives of the azimuth, elevation and angular size are
to be calculated according to:
∂α
1
∂zS
∂xS
= −xS
+ zS
(5.60)
2
∂w
∂w
∂w xS + zS2
∂xS
1
∂yS
∂zS
∂
2 ∂yS
q
+ rs
= −yS xS
+ yS
+ zS
(5.61)
∂w
∂w
∂w
∂w
∂w r2 r2 − y 2
S
∂θ
= −2
∂r1
∂xP
∂yP
∂zP
xP +
yP +
ZP
∂w
∂w
∂w
rP2
R2
q P
S
S
(5.62)
rP2 − RP2
In this equation, w is a position or attitude state. The derivatives with respect to the
velocity or rates are zero. For the derivation of these equations and the derivatives, see
section ?? and ??.
The measurements of the position vector are given by:
 
 
xS
x
 yS  = TSI y 
z
zS
(5.63)
where TSI is the transformation matrix from inertial to sensor frame. The derivatives are
the same as the ones being used in the equations 5.60 until 5.62 for deriving xS , yS and
zS .
Filter Implementation and Assumptions
The first implementation keeps a complete separation between attitude and position.
This allows to check if the process for the attitude and the star trackers are properly
implemented. For the planet and Sun sensors, the simplified implementation is used and
they are linked to the inertial frame. To test the implementation of the star tracker
and the attitude, two attitudes are tested: q1 = (0.5, 0.5, 0.5, 0.5) and q2 = (0, 0, 0, 1).
The first one checks the normal behaviour, the second one whether the filter can handle
situations where one of the quaternions goes to a limit. In both cases, the rotational rates
are kept at zero. As a result, the attitude quaternions need to remain constant. The
field-of-view is not limited.
The second implementation includes the link between the attitude and position. This
implementation allows to check if the link between attitude and position works. The
field-of-view is not limited to be able to check the complete behaviour with all sensor
data. If it is not possible to converge with continuous measurements, it is most likely
not possible to converge with a limited field-of-view. The attitude is kept constant. The
spacecraft initial position is chosen at:
!
√
√
2
2
x=
r0 ,
r0 , 0
(5.64)
2
2
62
5 Implementation and Verification
Figure 5.17: Initial position of the spacecraft in Earth orbit
r0 is taken at 40 000 km. The velocity is computed to form a circular orbit with an
inclination of 10◦ . To have Earth in sight of the sensor, the attitude of the spacecraft is
defined by 2 rotations: one about the X-axis with -90◦ and one about the Y-axis with
-135◦ . This is achieved with the following equations:
q31 = (sin −90◦ , 0, 0, cos −90◦ )
◦
(5.65)
◦
q32 = (0, sin −135 , 0, cos −135 )
q3 = q1 · q2
T
q3 = −0.2706 − 0.65330.6533, 0.2706
(5.66)
(5.67)
(5.68)
This way, the Z-axis of the spacecraft points to the centre of the inertial reference frame,
thus to Earth, as shown in figure 5.17. By keeping the Earth sensor in the same direction
as the spacecraft-fixed, Earth will initially be at 0◦ azimuth and elevation. This scenario
is tested for the three filter implementations: the EKF with angle measurements, the
EKF with position vector measurements and the UKF with angle measurements.
In the final implementation, the field-of-view is restricted, according to the field-of-view
of the different sensors. First, the orientation is chosen such that one of the planet sensors
has a continuous view on Earth. This is achieved by starting with an initial position in
the XY-plane with the ascending node at 45◦ . The satellite Z-axis points to the centre
of Earth, and the Y-axis north. Then the satellite is given a rotational rate which makes
the satellite rotate once per orbit about its own axis. The resulting orbit allows the
5 Implementation and Verification
63
planet sensor to be pointed to Earth continuously. The star tracker is assumed to have
continuous observations.
Finally, the same orbit is taken, but with the satellite rotating four times per orbit about
its Y-axis in the opposite direction as before. Normally, Earth should pass five time in
the field-of-view per orbit during this ’strobing’ test. Due to the chosen rotation rate,
also the Moon is visible during short passages. The influence of the different objects on
the accuracy of the orbits can be analysed and a limited presence of objects in view can
be assessed.
5.5.2
Results
Without Link between Position and Attitude
The first step in the implementation of the star tracker is mounting it on the previous
system and expand the states. The sensors from the previous system remain fixed in the
inertial system to first check the implementation of the propagation and measurements
of the star tracker. Since the position is measured independently from the attitude, the
results are similar to those obtained in section 5.4.2.
For both q1 and q2 , the behaviour of the EKF and UKF is similar for measurements and
attitude. The measurements and the error on the attitude for the EKF with the initial
attitude q1 are given in figures 5.18 and 5.19. For the UKF, only the error on the attitude
is given in figure 5.20. The star tracker measurements are not given for the UKF, since
these are very similar to the EKF. For both filters, the attitude has a variation between
the 3 − σ boundaries, as required. The noise on the measurement for q4 is higher than
the noise on q1 until q3 , because the rotational noise is twice the directional noise. q1 to
q3 represent the pointing axis and q4 the rotation.
The results for q2 (EKF: measurements and attitude; UKF: only attitude) can be seen in
figures ?? to ??. In both cases, the behaviour is similar for the EKF and UKF with q1
and q2 having some variation, but with a fairly flat curve for q3 and q4 for both attitude
and measurements. The reason for the flat curve for q3 and q4 is caused by the noise
modelling on the measurements. The Z-axis of the sensor frame is the boresight of the
sensor. In case of an attitude of q2 , the axis on which the error is applicable is the Z-axis,
since there is no further rotation between sensor and inertial frame. As a result, the noise
results in a rotation close to the Z-axis, so with a small influence on the Z-direction and
a large iunfluence on the X- and Y- direction. Since q1 , q2 and q3 correspond to the X-,
Y- and Z-axis, respectively, the variation on q1 and q2 will be larger than on q3 . Finally,
q4 represents the cosine of (half of) the rotation. This means that noise, which causes
a small rotation, on a 0◦ angle has almost no influence. Therefore, also this difference
results in a flat trajectory. Despite the flat curve, the estimation converges.
Linking Position and Attitude
As a first test to check the implementation of the equations, the measurement matrix is
calculated using the complete model, but instead of using the attitude as an input, the
64
5 Implementation and Verification
Figure 5.18: Star tracker measurements (sensor (red) and in the filter (blue)) for star tracker
with the planet/Sun sensors in the inertial frame and attitude q1 .
Figure 5.19: Error on the attitude quaternion for the EKF with the planet/Sun sensors in
the inertial frame and attitude q1 .
5 Implementation and Verification
Figure 5.20: Error on the attitude quaternion for the UKF with the planet/Sun sensors in
the inertial frame and attitude q1 .
Figure 5.21: Star tracker measurements (sensor (red) and in the filter (blue)) for star tracker
with the planet/Sun sensors in the inertial frame and attitude q2 . Note the
different scale for q3 .
65
66
5 Implementation and Verification
Figure 5.22: Error on the attitude quaternion for the EKF with the planet/Sun sensors in
the inertial frame and attitude q2 .
Figure 5.23: Error on the attitude quaternion for the UKF with the planet/Sun sensors in
the inertial frame and attitude q2 .
5 Implementation and Verification
67
Figure 5.24: Error on the position for the EKF with position vector measurements with
attitude q3 .
orientation is fixed in the inertial frame. If implemented correctly, the result should be
the same as in the previous implementation, since the equations of the simplified model
are in principle a special case of the realistic one. The results are the same as in figures
5.21 to 5.23.
The position and attitude errors or the position vector measurements and the UKF with
attitude q3 are shown in figures 5.24 to 5.27. In both cases, the differences between
simulated and estimated follow the expected behaviour and converge quickly within the
3 − σ boundaries. For both implementations, a RK4 integrator has been used, since
the Euler integration was not sufficiently accurate for convergence. The results of the
UKF converge faster than those of the EKF and result in a better accuracy after 5000s.
However, the UKF requires about 57s, where the EKF is finshed after 27s using the
same computer. In the UKF, a propagation of the 26 sigma points, the generation of
the measurements from these and the decomposition of the covariance matrix using the
Cholesky decomposition is required. In the EKF, only one set of states needs to be
propagated and one set of measurements needs to be generated. This difference can
potentially be reduced by modelling the dynamics better.
Another observation on the performance of both filter is the better estimation of the
attitude when including the planet sensor and sun sensor measurements. For both the
EKF (with position vector measurements) and the UKF, the attitude estimations are
about 4 times more accurate when comparing figures ?? and ?? for the EKF and figures
?? and ?? for the UKF.
The results for the position and attitude estimation are shown in figures 5.28 and 5.29.
These results are generated using the same integrator as used for integrating the ’real’
68
5 Implementation and Verification
Figure 5.25: Error on the attitude for the EKF with position vector measurements with
attitude q3 .
Figure 5.26: Error on the position for the UKF with attitude q3 .
5 Implementation and Verification
69
Figure 5.27: Error on the attitude for the UKF with attitude q3 .
orbit, the ode45 integrator from Matlab. Despite using this integrator, compared to
the RK4 used for the EKF with the position vector measurements, the results are not
converging. The derivatives of xS , yS and zS in the equations 5.60 to 5.62 are also used
in the position vector measurement matrix. The use of this measurement matrix in the
position vector measurements implementation appeared be good, as shown in figures 5.24
and 5.25. Therefore, the cause of the non-divergence can be, either the implementation
or the derivation of the azimuth, elevation and/or angular size, or the link between the
attitude quaternion and the angular measurements in a linearised measurement matrix.
Since the derivation and implementation has been performed multiple times independently
from each other, ending with similar results, the conclusion of the author is that the cause
is, most likely, the incapability of the EKF to handle the link between attitude and position
as it is implemented here.
For identifying the potential causes, the correct behaviour of the UKF and EKF with
the position vector measurements is very useful due to commonly used parts. The fundamental matrix and process covariance matrix are the same as being used in the other
EKF implementation. The measurements generated by the sensors and the measurement
update inside the filter are the same as the ones used in the UKF. The filter equations
have been tested in previous simulations. Therefore, the cause must be in what is purely
specific to this implementation: the link between attitude and angle measurements in the
measurement matrix and/or the use of a diagonal measurement covariance, R. The other
two filter implementations also use a diagonal covariance matrix. The UKF overlays this
with the cross-covariance calculated inside the filter, making it easier to implement with
large cross-correlations. The EKF with the position vector reduces the problem to simple
vector inputs with a coloured noise. A final reason could be that the derivatives in the
70
5 Implementation and Verification
Figure 5.28: Error on the position for the EKF with angle measurements with attitude q3 .
The red line is the covariance.
Figure 5.29: Error on the attitude for the EKF with angle measurements with attitude q3 .
The red line is the covariance.
5 Implementation and Verification
71
Figure 5.30: Error on the position for the EKF with position vector measurements in Earth
pointing configuration.
measurement matrix are too much of a linearisation of the problem and that the EKF is
therefore not capable of solving it.
Limited Field-of-View, Continuous Earth Visibility
This test is not performed for the EKF with angle measurements, due to the failed test
before. For the other two implementations, the implementation was successful. In figures
5.30 to 5.46, the position and attitude are given for both filters. Since the star tracker
and Earth sensor have continuous observations, it is expected both position and attitude
converge.
In all previous tests, the attitude was kept constant. The changing attitude can be
observed from the star tracker measurements, see figure 5.37. The difference between the
filter measurements and the sensor outputs is hard to see and is shown separately in figure
5.38. Due to the nice fit of both the star tracker and attitude measurements, it can be
assumed the propagation of the rotational rates is properly implemented. Furthermore,
due to the rotational rates and the limited field-of-view, not all measurements are available
all the time, as can be observed in the Moon and Sun sensor measurements, see figures
5.35 and 5.36, respectively. When there are no measurements, they become zero. For
completeness, the Earth sensor measurements for the EKF are also given in figure 5.34.
Due to the missing measurements, the accuracy of bith implementations is slightly worse
than before. This is expected, since more information should result in more accurate
estimations.
72
5 Implementation and Verification
Figure 5.31: Error on the attitude for the EKF with position vector measurements in Earth
pointing configuration.
Figure 5.32: Error on the position for the UKF in Earth pointing configuration.
5 Implementation and Verification
Figure 5.33: Error on the attitude for the UKF in Earth pointing configuration.
Figure 5.34: Earth sensor measurements for the UKF in Earth pointing configuration. Left:
Red is the sensor output and blue the filter measurement. Red: the difference
between the sensor output and the filter measurement.
73
74
5 Implementation and Verification
Figure 5.35: Moon sensor measurements for the UKF in Earth pointing configuration. Left:
Red is the sensor output and blue the internal measurement. Red: the difference between the sensor output and the filter measurement.
Figure 5.36: Sun sensor measurements for the UKF in Earth pointing configuration. Left:
Red is the sensor output and blue the internal measurement. Red: the difference between the sensor output and the filter measurement.
5 Implementation and Verification
Figure 5.37: Star tracker measurements for the UKF in Earth pointing configuration. Red is
the sensor output and blue the internal measurement. The difference is shown
in figure 5.38
Figure 5.38: The difference between the filter measurements and sensor outputs of the star
tracker for the UKF in Earth pointing configuration.
75
76
5 Implementation and Verification
Figure 5.39: Earth sensor measurements for the UKF in Earth strobing configuration. Left:
Red is the sensor output and blue the filter measurement. Red: the difference
between the sensor output and the filter measurement.
Limited Field-of-View, Earth strobing
This test is performed using the EKF with position vector measurements and the UKF
over a simulation time of 250 000s, which is about 3 orbits around Earth. The Earth
sensor, Moon sensor, Sun sensor and star tracker measurements for the UKF are given in
figures 5.39 to 5.42. The rotation about the Z-axis is clearly visible in the measurements.
The observation periods are short, with long parts without measurements. Only the star
trackers are assumed to have full view all the time. Here the rotation is clearly visible in
the repeating motion of the attitude quaternions. This also results in coloured noise, due
to the changing influence of each quaternion, depending on the rotation of the spacecraft.
From the Earth sensor (see figure 5.39), it can be seen that the Earth orbit is being
disturbed. At around 190 000s, the angular size of Earth is significatly higher than in
the beginning. This reflects itself in longer visibility periods in the azimuth and elevation
curves. The plot showing the difference between the filter and the sensor output for the
elevation is zoomed in on one of the short periods. The normal noise behavious can clearly
be seen. In the elevation and the angular size, the sinusoidal motion of the orbit can be
observed, with only short parts of the motion visible due to the limited field-of-view.
A zoom-in on the Moon sensor azimuth (see figure 5.39), shows going through the azimuth
from maximum to minimum due to the rotation of the spacecraft along its (initially) northpointing axis. This same behaviour is also present in the Earth sensor measurements. For
the Earth measurements, the azimuth does not go from -20◦ to +20◦ , due to the higher
elevation and the fact a round field-of-view is assumed. For the Earth sensor, the elevation
5 Implementation and Verification
Figure 5.40: Moon sensor measurements for the UKF in Earth strobing configuration. Left:
Red is the sensor output and blue the internal measurement. Red: the difference between the sensor output and the filter measurement.
Figure 5.41: Sun sensor measurements for the UKF in Earth strobing configuration. Left:
Red is the sensor output and blue the internal measurement. Red: the difference between the sensor output and the filter measurement.
77
78
5 Implementation and Verification
Figure 5.42: Star tracker measurements for the UKF in Earth strobing configuration. Red is
the sensor output and blue the internal measurement. The difference is shown
in figure 5.43
Figure 5.43: The difference between the filter measurements and sensor outputs of the star
tracker for the UKF in Earth strobing configuration.
5 Implementation and Verification
79
Figure 5.44: Error on the attitude for the EKF with position vector measurements in Earth
strobing configuration.
is much lower and, as a result, the elevation uses more of the -20◦ to +20◦ range. Due to
disturbances on the orbit, the Moon is less visible near the end of the simulation.
The Sun sensor measurements (see figure 5.41) have a much larger error and a larger fieldof-view (60◦ half-cone). Besides the larger field-of-view, the typical saw-tooth behaviour
from Earth and Moon sensor is also visible here.
The position and attitude errors of EKF and UKF are given in figures ?? to ??, with
more details on the position errors in figures ?? and ??. Both configurations show similar
behaviour with different performance. In initial part of the position plots, there is a short
period of convergence, where Earth observations are available. Then the postion error
(and covariance) diverge due to lack of measurements. At about 10 000s, the Moon sensor
gets input and a small correction can be observed with the UKF. The EKF is capable of
estimating the state slightly better, which can be observed from the discontinuity on the
error, but the covariance is not changing. At about 25 000s, the Earth is visible to the
Earth sensor again and a big correction is made. After this point, the filter remains in
a certain band, where is converges every time observations are available and diverges at
the moment non are.
For all quaternion elements, a sine wave motion can be observed in the covariance. This
sine wave goes together with the sinusoidal change of the quaternions, as can also be
observed in the star tracker measurements (see figure ??). At certain moments, there
are short periods with lower covariance. At these moments, optical measurements are
available, which improve the accuracy. This has already been observed in the performance comparison between the inertially placed sensors and the body-mounted sensor
comparison.
80
5 Implementation and Verification
Figure 5.45: Error on the position for the UKF in Earth strobing configuration.
Figure 5.46: Error on the attitude for the UKF in Earth strobing configuration.
5 Implementation and Verification
Figure 5.47: Zoomed in on the error on the position for the EKF with position vector
measurements in Earth strobing configuration.
Figure 5.48: Zoomed in on the error on the position for the UKF in Earth strobing configuration.
81
82
5 Implementation and Verification
The performance of the UKF is better than for the EKF. However, the run-time of the
EKF is much faster than for the UKF. The state estimation took 469s for the EKF and
1275s for the UKF with a 2.7 GHz processor. Considering that worse processors are
generally used on-board, this should leave enough margin for both filters to work. It is
probably also possible to optimise both systems for speed by using C++ or better coding.
In any case, the UKF will always be slower.
Further tests have been performed using scenarios in the Earth and Moon environment
and results remain similar. The UKF provides more accurate results, but the EKF is
faster. The UKF is capable of reaching a 3 − σ covariance values of just below 1000m
after long term (3-4 days) of stabilisation, whereas the EKF remains below 1500m. If
a higher accuracy is required, an active control focused on keeping Earth or Moon inside the field-of-view could be considered. Other solutions can also be considered, like
the implementation of knowledge of swarm technology, meaning that calculations of the
different spacecraft can be used to improve the position estimation. At that moment,
a clear distinction needs to be made on the requirements for relative and absolute position and attitude. Furthermore, the current implementation uses the planet sensors
with an accuracy involving two points on opposite sides of the planet. By improving the
post-processing of the images, it is possible to improve the quality of the measurements.
Throughout the research, the update time of the filter and the measurements is kept at
1s. By changing the update time to fully use the possible capabilities of a processore, it
might be possible to increase the performance of the filter. However, this is all dependent
on the available hardware and on the tasks this processing unit needs to perform (i.e.
purely navigation or also processing of payload measurements and control of the rest of
the spacecraft).
Chapter 6
Conclusions and Recommendations
First, general conclusions are being drawn from the results in the implementation section
(see chapter 5) in section ??. Then recommendations for future work are given in section
6.2.
6.1
Conclusions
The general requirements for nano-satellites in a swarm are cooperation, autonomy and
flexibility. The main requirements for the attitude and orbit determination is autonomy.
Autonomy requires the spacecraft to have the instruments on board to provide sufficient
input for an algorithm to determine the attitude and orbit of a spacecraft without the
support of ground operations. The case of the spacecraft cooperating in the swarm is not
taken into account in this research. Throughout this research, it has been shown that
there are sensors available, which can be used to determine the attitude and orbit of a
spacecraft in an Earth-Moon transfer orbit.
The selected sensors include a star tracker, a sun sensor and an optical planet sensor.
The measurement capabilities of all sensors are sufficient for estimating the orbit, but the
lifetime of the star tracker and planet sensor (1 year) are not sufficient for long missions.
The shielding of the sensors (including the sun sensor) is been developed for a low-Earth
orbit. Therefore, it is possible that these sensors might not be able perform optimally
after passing through the Van Allen belts on longer missions.
The algorithms for processing the images from the optical camera to obtain useful outputs
for the planet sensors are also not available yet. However, it is not unreasonable to argue
that it is possible to do this, with currently available techniques. It can be assumed that
the computation power of the star tracker algorithm should be sufficient to perform this
calculation.
The sensor outputs are used as inputs for the EKF and UKF. For the EKF, problems arise
83
84
6 Conclusions and Recommendations
at the moment the sensors are mounted on the spacecraft and the errors on the attitude
become an influence on the performance of the optical instruments. Two potential causes
have been proposed: the link between the attitude and measurement matrix and/or the
use of a diagonal measurement covariance, R. Finding a solution to this convergence could
potentially increase the accuracy of the EKF, while keeping the computational advantage
of the EKF. For error tracking, the common use of scripts and functions between the UKF
and EKF, which are both Kalman filters, allows for error tracking. Using the different
implementations of the EKF further improves possiblities of cross-checking the results.
With both EKF and UKF a solution is found. The UKF can use the angle measurements
approach, which was unsuitable for the EKF. By post-processing the measurements to
position vectors, the noise remains coloured, but the EKF becomes capable of handling
the problem. However, there is a difference in accuracy between the filters, which only
appears at the moment the connection is made between the attitude and the planet
measurements. The accuracy of the UKF is better than 1000m (3 − σ) for the complete
transfer and better than 1500m (3 − σ) for the EKF after stabilisation. The order of
accuracy is good enough to allow for control to go from Earth to Moon. If a higher
accuracy is required, an active attitude control system can be used to keep Earth or
Moon in the field-of-view of the sensors. Potentially, other inputs can be used, like
relative positioning with other spacecraft in the swarm or object scanning on the surfaces
of Earth or Moon when approaching.
With the EKF, it is relatively easy to set up a filter with a low complexity in the process
and measurements. As soon as there are many dependencies between the different states,
the Jacobi matrices need to be derived, costing a lot of time and being very sensitive
to errors. The UKF is a bit more work to set up initially, but once a well functioning
filter is set up in a more or less generic way, extending it becomes very easy by simply
extending a measurement model or the integrator. Adding the robustness to higher-order
non-linearities and the higher accuracy, it can be more suited for rapidly testing a system
than the EKF. It might lose some time when running, but this is often made up by the
ease of implementation.
6.2
Recommendations for Future Work
A first step to improve the navigation system consists of improving and further developing the sensors. The planet sensors have a large potential, especially with the advances
in processors (weight, size and power consumption). However, the improvement (or reevaluation) of the radiation shielding and lifetime improvement of the star tracker, with
respect to the one used during this research, is required to ensure the sufficient performance over the longer term. Further improvments in computational power can also allow
for improved measurements on the planet in view and perhaps feature scanning on the
(lunar) surface.
For the simulation of the system, better models of the sensors and the errors can provide
a more accurate view on the behaviour of the filter. Currently, no biases are included
in the simulations, so also these could have an influence. The inclusion of the control
loop and actuators can also improve the truthfulness of the estimation. The same is true
6 Conclusions and Recommendations
85
for more accurate simulations of the dynamics, by including higher order gravitational
influences, sloshing, disturbance torques, and so on.
The general implementation of the sensors in the filters can also be changes by using other
inputs. For example, the Sun sensor is assumed to give an azimuth and elevation as an
output to the filter. In reality the outputs are four voltages or currents from which the
position of the Sun can be derived. The same is true for the other sensors. By using more
realistic models, more realistic results come out of the filters, which could be both better
or worse.
For the state estimation in general, there are several possibilities for further research.
The use of different state variables has an influence on the performance of the filter [17].
The same is true for the choice of the filter. The use of the unified state model (with 6
or 7 states) or the use of particle or other Kalman filters can increase the accuracy or
computational efficiency of the state estimation.
In the EKF, a thourough investigation of the measurements matrix or the measurement
covariance matrix could be helpful ot investigate if it is possible for the EKF to converge to
the correct position with the angle measurements. The measurements covariance matrix
can be derived from the noise of the measurements. However, this noise is included in
the angles itself. First a linearisation is required and then a derivation can be made to
obtain the covariance. The requirement for doing this is obviously linked to the output
that will come out of the planet sensors. If these are provided as a position vector, a
further investigation is not required.
To be able to reach a final implementation, a large trade-off needs to be made. Which
sensors and measurement techniques can be used in the end (or which ones are developed
far enough)? Is there going to be one state estimation algorithm been used throughout the
complete mission? When looking at the mission of OLFAR, it might be necessary to have
different algorithms for different stages of the mission. The presence of relative positioning
in a rapidly changing lunra orbit might be better suited for one estimator compared to
another. Another one might be more suited for the more predictable trajectory between
Earth and Moon, perhaps even with different state variables. This research might point
out certain possibilities, but there are still open issues on the overall mission design.
86
6 Conclusions and Recommendations
Appendix A
Unit Testing
A.1
Force and Moment Models
Central Gravity
Third Bodies
Solar Pressure
A.2
Propagators
A.2.1
Position: Cartesian State
A.2.2
Attitude: Quaternions
A.3
Sensor Models
A.3.1
Star Tracker
A.3.2
Sun Sensor
A.3.3
Planet Sensor
87
88
A Unit Testing
Appendix B
Derivations for System Testing and
Simulations
B.1
3-D Falling Body
89
90
B Derivations for System Testing and Simulations
Bibliography
[1] F.A.R. Belien, S. Engelen, A. Noroozi, and C.J.M. Verhoeven. Autonomous navigation for trans-lunar nano-satellite missions. In Proceedings of the 40th Small Satellites
Symposium, Cape Town, South Africa, 3-7 October 2011 (IAC-11,B4,3,3,x10526),
2011.
[2] Q.P. Chu. Spacecraft attitude dynamics and control, ae4305: Lecture notes. Blackboard: Delft University of Technology, 2009.
[3] C.W. de Boom, J.A.P. Leijtens, and N. van der Heiden. Micro digital sun sensor:
“a matchbox miracle”. In Proceedings of the 6th International ESA Conference on
Guidancec, Navigation and Control Systems, Loutraki, Greece, 17-20 October 2005
(ESA SP-606, January 2006).
[4] Analog Devices. Tri-Axis Inertial Sensor with Magnetometer, 2009.
[5] S. Engelen, C.J.M. Verhoeven, and M.J. Bentum. Olfar, a radio telescope based on
nano-satellites in moon orbit. In 24th Annual Conference on Small Satellites, 9-12
Aug 2010, Utah, USA, 2010.
[6] R. Fitzpatrick. Runge-kutta methods, 2006. URL http://farside.ph.utexas.
edu/teaching/329/lectures/node35.html.
[7] Von Karman Institute. Qb50, an fp7 project, April 2015. URL http://www.qb50.
eu/.
[8] ISIS. Olfar, April 2015. URL http://www.isispace.nl/cms/index.php/projects/
olfar.
[9] S.J. Julier and J.K. Uhlmann. New extension of the kalman filter to nonlinear systems. In Proceedings of AeroSense: the 11th international symposium on
Aerospace/Defence Sensing, Simulation and Control, pages 182–193, 1997.
[10] R.E. Kalman. A new approach to linear filtering and prediction problems. Transaction of the ASMEJournal of Basic Engineering, pages 35–45, March 1960.
91
92
BIBLIOGRAPHY
[11] E. Kraft. A quaternion-based unscencted kalman filter for orientation tracking. In
Proceedings of the Sixth International Conference of Information Fusion, 2003. (Volume 1), pages 47–54, 2003.
[12] M. Manzano-Jurado, J. Alegre-Rubio, A. Pellacani, G. Seco-Granados, J.A. LopezSalcedo, E. Guerrero, and A. Garcia-Rodriguez. Use of weak gnss signals in a mission
to the moon. In 7th ESA Workshop on Satellite Navigation Technologies and European Workshop on GNSS Signals and Signal Processing (NAVITEC), 2014, 2014.
[13] T. Segert, S. Engelen, M. Buhl, and B. Monna. Development of the pico star tracker
st-200 design challenges and road ahead. In 25th Annual AIAA/USU Conference
on Small Satellites, 2011.
[14] SSE-group. E-moth project, April 2015. URL http://www.lr.tudelft.nl/en/en/
organisation/departments/space-engineering/space-systems-engineering/
projects/e-moth-project/.
[15] TUDelft. Delfi a nanosatellite development line, April 2015. URL http://www.
delfispace.nl/.
[16] R. van der Merwe, A. Doucet, N. de Freitas, and E. Wan. The unscented particle
filter. Technical report, Cambridge University Engineering Department, 2000.
[17] V. Vittaldev. Unified state model - derivation and applications in astrodynamics and
navigation. Master’s thesis, Delft University of Technology, 2010.
[18] K. Wakker. Astrodynamics-I, ae4874: Lecture notes. Delft University of Technology,
2007.
[19] K. Wakker. Astrodynamics-II, ae4874: Lecture notes. Delft University of Technology,
2007.
[20] G. Welch and G. Bishop. An introduction to the kalman filter. Technical report,
Chapel Hill, NC, USA, 1995.
[21] P. Zarchan, H. Musoff, and F.K. Lu. Fundamentals of Kalman Filtering: Practical
Approach (Progress in Astronautics and Aeronautics. American Institute of Aeronautics & Astronautics, 2005.
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement