<<

Pointing System Performance Analysis for Optical Inter-satellite Communication on by Hyosang Yoon B.S., Korea Advanced Institute of Science and Technology (2008) S.M., Korea Advanced Institute of Science and Technology (2010) Submitted to the Department of Aeronautics and Astronautics in partial fulfillment of the requirements for the degree of Doctor of Philosophy at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY June 2017 @ Massachusetts Institute of Technology 2017. All rights reserved.

Author ...... Signature redacted Department of Aeronautics and Astronautics May 24, 2017 Certified by.....Signature redacted ...... Kerri L. Cahoy Associate Professor of Aeronautics and Astronautics Thesij Supervisor Certified by ...... Signature redacted ..... Steven R. Hall Professor of eronVbics 4nd Asironautics Certified by...... Signature redacted ...... David W. Miller Professo.-ro r cs and Astronautics Accepted by ...... Signature redacted ('* Youssef M. Marzouk Associate Professor of Aeronautics and Astronautics MASSACHUSETTS INSTITUT E Chair, Graduate Program Committee OF TECHNOLOGY

SEP 272017 LIBRARIES ARCHIVES

Pointing System Performance Analysis for Optical Inter-satellite Communication on CubeSats by

Hyosang Yoon

Submitted to the Department of Aeronautics and Astronautics on May 24, 2017, in partial fulfillment of the requirements for the degree of Doctor of Philosophy

Abstract Free-space optical communication using lasers (lasercom) is a leading contender for future space-based communication systems with potential advantages over radio fre- quency (RF) communication systems in size, weight, and power consumption (SWaP). Key benefits are due to the shorter wavelength: additional bandwidth and narrow beam width. The narrower beam supports higher energy density for a given aperture size, so that lasercom can transmit data at the same rate with smaller SWaP as well as improve link security since the beam footprint is smaller. Lasercom is an attractive option for improving inter-satellite links (ISL) for resource- constrained CubeSats, which have emerged as a standard form of a small satellite since 1999. However, lasercom requires much more accurate pointing because of its nar- rower beam width. Accurate pointing is not trivial for most CubeSat platforms due to their resource constraints. A typical 3U CubeSat is 34 cm x 10 cm x 10 cm with less than 5 kg mass and about 10 W of available orbit-average power. This thesis presents pointing and tracking technologies to support lasercom on CubeSats. It covers three critical issues: (1) attitude determination and control of CubeSats, (2) relative orbit determination, and (3) development of a miniaturized fine beam pointing module. New attitude determination and control algorithms are de- veloped, simulated, and validated with hardware in the loop demonstrations; results indicate that lasercom at data rates competitive with or better than RF is feasible on CubeSats. For attitude determination and control (ADC), this thesis develops a new attitude estimation algorithm, which is called Attitude and Parameter estimation Kalman fil- ter (APKF). Attitude determination (AD) is thought to be more challenging than attitude control (AC) for CubeSats because of the limited capabilities of sensors that are compatible with the small form factor and resource constraints of CubeSats. The largest difference between a CubeSat and a larger satellite is the gyroscopes that measure rotation rates. Since a CubeSat is normally not able to accommodate high quality gyroscopes, the APKF is used to improve estimation without relying on gy- roscope measurements. The APKF estimates CubeSat attitude and body rates as

3 well as other unknown parameters such as the moment of inertia (MOI), actuator alignment, and the residual dipole moments. For relative orbit determination, this thesis describes an estimation algorithm that fuses different types of orbital measurements using the Kalman filter. There are three measurements that can be used in the relative orbit estimation for low earth orbiting (LEO) lasercom crosslink CubeSats: Global Navigation Satellite System (GNSS) nav- igation solutions for an individual satellite (e.g. Satellite A or "SatA"), beacon beam measurements at SatA, and GNSS navigation solutions of the other satellite (SatB) transferred through ground station networks. The GNSS and beacon are measured at SatA, so these can be assumed to have negligible time delay, but the arrival time of the SatB navigation solutions will be an out-of-sequence measurement (OOSM) whose arrival time will be delayed due to the ground station relay. To fuse the sensor data with different measurement times, a new algorithm called the Augment Fixed- Lag Smoother (AFLS) is developed. To update the Kalman filter with an OOSM, the AFLS generates the estimates at the measurement time of the OOSM by interpo- lation. The AFLS is applied to a nonlinear system as the extended AFLS (EAFLS). The Satellite Tracking Kalman Filter (STKF) is developed using the EAFLS. The fine pointing system (FPS) is necessary because while the CubeSat attitude determination and control and the orbit determination developments cover the Cube- Sat's body pointing capability, due to the extremely narrow beam desired for high-rate laser communications, body pointing alone cannot satisfy the beam pointing require- ments. The example case used in this thesis is a CubeSat design concept mission with an inter-satellite laser communication link. To reduce the pointing error, a FPS needs to be implemented as the final stage for beam pointing. This thesis demon- strates the feedback control loop of the FPS using a hardware-in-the-loop test. A key component of the FPS is the miniaturized micro-electro-mechanical systems (MEMS) fast steering mirror (FSM) which is the actuator used to point the laser beam. Using a commercial-off-the-shelf (COTS) MEMS FSM that is also planned for use on the flight module, the fine pointing control loop has been demonstrated with results that show that it is feasible to meet the pointing requirement for a 3U CubeSat mission whose goal is 20 Mbps link at 25 km to 1000 km crosslink range. By developing and demonstrating the critical technologies for both spacecraft body pointing and the fine beam pointing, this thesis has demonstrated the feasibility of a CubeSat lasercom crosslink at a data rate and form factor that can outperform RF, leading to a high-speed and secure ISL for CubeSats.

Thesis Supervisor: Kerri L. Cahoy Title: Associate Professor of Aeronautics and Astronautics

Thesis member: Steven R. Hall Title: Professor of Aeronautics and Astronautics

Thesis member: David W. Miller Title: Professor of Aeronautics and Astronautics

4 Acknowledgments

First of all, I would like to thank my thesis advisor, Prof. Kerri Cahoy. She is the one who selected me in the application process, and who supported me through the whole doctoral program. I am impressed with her enthusiasm for space missions and projects as well as her devotion to her students: it was not out of the ordinary to receive her reply emails at 3 in the morning. I would not have been able to do the research and projects without her support. Next, I am grateful to the rest of my thesis committee, Prof. Steven Hall and Prof. David Miller. I took a class on Kalman filtering (16.322) from Prof. Hall in my first semester at MIT and it plays a key role in this thesis. He gave me very constructive advice when I was stuck on control problems in my thesis research as well. Also, Prof. Miller's comments on pragmatic approaches for space missions were helpful to set up the structure of the lasercom pointing systems.

I thank all my friends in STAR Lab and SSL. KitKat, TimTam, Emily, Christian, Roman, Rachel, Michael, Greg, Derek, Max, Caleb, David, Chris, Pratik, and every- one! It was really lucky to work with you guys. Especially, Kathleen Riesing, thank you for being my best friend and English teacher for three years. Also, a special thank you to my Korean friends at MIT. My appreciation to Sangyeon Cho, who went through all the challenges of studying abroad with me from the beginning, and to Jinwook Lee, who has been a great consultant for me on various topics. I am going to miss you guys and all the time we spent together. I would like to acknowledge the support from Samsung Scholarship. Not only their financial support, but also their effort to enable networking among the recipients who are some of the most brilliant people in Korea. Finally I thank my family: my mom, dad, brother, Eunji Bang, and Geumchae Yoon. Thank you so much for everything. I love you.

5 6 Contents

1 Introduction 17 1.1 Challenges in Laser Beam Pointing ...... 18

1.2 Problem Statement ...... 21

1.3 Thesis Scope and Contributions ...... 21

1.4 Thesis Organization ...... 23

2 Gaussian Beam Optics and Pointing Requirement 25

2.1 Gaussian Beam Optics ...... 26

2.2 Aperture Diameter and Gaussian Beam Width ...... 28

2.3 Crosslink Lasercom Reference Mission Overview ...... 29

2.3.1 CubeSat Crosslink Lasercom Reference Mission ...... 29

2.3.2 CubeSat Intersatellite Lasercom Optics ...... 31

2.3.3 Pointing Requirement for the CubeSat Lasercom Intersatellite

Crosslink M ission ...... 32

3 The Kalman Filter Overview 33

3.1 The discrete-time Kalman filter ...... 33 3.2 The Extended Kalman Filter ...... 37

4 Attitude Determination 43 4.1 Research G ap ...... 43 4.2 N otation ...... 46

4.3 Attitude Kinematics and Dynamics ...... 47

7 4.4 6-State MEKF ...... 4 9 4.4.1 6-State MEKF Performance with MEMS Gyroscopes 54 4.5 Actuator and Sensor Models ...... 55 4.5.1 Reaction Wh eels ...... 56 4.5.2 Star Tracker. Model ...... 58 N/e...... 4.6 APKF 59 4.6.1 Error State 1 ynam ics ...... 59

4.6.2 Relative Cali )ration for MOIs and Alignments 64 4.6.3 State Transit ion M atrix ...... 65 4.6.4 Process Noise 69 4.6.5 Update . . . onNo...... n .N.t.s ...... 70 4.7 APKF Implementati .aeu...... 71 4.7.1 Calibration M aneuver ...... 71

4.7.2 RW Torque C ommand ...... 72

4.7.3 Angular Mon entum Bias ...... 73

4.7.4 Variable Fict itious Noise ...... 73

4.8 Simulation Results DiuNist neT...... 75 4.8.1 Case 1: Zero Disturbance Torque...... 78 4.8.2 Case 2: Sinusoidal Disturbance Torque ...... 81 4.8.3 Case 3: Partially Predictable Disturbance Torque 84

5 Orbit Determination 89 5.1 Background and Research Gap ...... 89 5.1.1 The SGP4 Model ...... 90 5.1.2 OD with Filtering ...... 91 5.1.3 Relative Navigation using Angles-Only Measurement 93 5.1.4 Research Gap ...... 94 5.2 Onboard Satellite Tracking ...... 95 5.3 Satellite Tracking Kalman Filter ...... 97 5.3.1 Prediction ...... 97

8 5.3.2 Correction with GNSS Data ...... 98 5.3.3 Correction with Beacon Measurement ...... 99 5.4 Update with Time-Delayed Measurements ...... 101 5.4.1 Fixed Lag Smoother ...... 102 5.4.2 In-Sequence Processing ...... 104 5.4.3 FLS with Synchronized Time-Delayed Measurement ..... 104 5.4.4 The Augmented Fixed-Lag Smoother (AFLS) ...... 105 5.4.5 OOSM Node Generation ...... 106 5.4.6 Comparison to Existing Algorithms ...... 109 5.4.7 Extension to Non-linear Systems ...... 111 5.5 STKF Simulation Study ...... 112 5.5.1 Simulation Description ...... 113 5.5.2 Pointing Vector in Body Frame ...... 115 5.5.3 STKF Simulation Results ...... 116

6 Attitude Control 121

6.1 Attitude Command Generation ...... 121

6.2 Torque Command in Body Frame ...... 122

6.3 Reaction Wheel Torque Command ...... 123

6.4 Pointing Performance Simulations ...... 124 6.4.1 Body Pointing Simulator ...... 124

6.4.2 Simulation Condition ...... 126 6.4.3 Gain Tuning by Simulation ...... 128 6.4.4 Pointing Simulation Result...... 128

7 Fine Pointing System 131 7.1 FPS Demonstration Overview ...... 131 7.2 Optical Hardware Design ...... 133 7.2.1 Beam Resizer ...... 134 7.2.2 Fast Steering Mirrors . .. . 135 7.2.3 Quadcell ...... 137

9 7.3 Electronics and Software ...... 139 7.3.1 P-FSM Tilt Angle ...... 141 7.3.2 MEMS FSM Control ...... 143 7.4 H Matrix Calibration ...... 146 7.5 FPS Demonstration Result ...... 150

8 Conclusion 153 8.1 Thesis Summary ...... 153 8.2 Contributions ...... 156 8.3 Recommendations for Future Work ...... 158

A APKF Derivations 161 A.1 Derivation of Error Rate Differential Equation ...... 161 A.2 Derivation of State Transition Matrix ...... 166

13 AFLS Derivations 171 B.1 Eq. (5.34) Derivation ...... 171 B.2 Eq. (5.35) Derivation ...... 173 B.3 Eq. (5.39) Derivation ...... 173

10 List of Figures

1-1 Block diagram of the overall pointing system architecture. This thesis will cover the four parts (red boxes) in the following order: 1. Attitude

Determination, 2. Orbit determination, 3. Attitude Control, 4. FPS . 21

2-1 Gaussian beam propagating in free space ...... 26

2-2 CubeSat Lasercom Intersatellite Crosslink Concept of Operations .. 30

2-3 CubeSat Lasercom Intersatellite Crosslink payload optics design ... 31

2-4 CubeSat Lasercom Intersatellite Crosslink payload optics CAD model 31

3-1 The operation concept of the Kalman filter ...... 35

4-1 6-state MEKF simulation results. The final 1- for attitude is (19.88, 19.88, 57.18) arcsec which is not much better than the raw star tracker accuracy of (20, 20, 60) arcsec...... 55

4-2 A set of calibration maneuver angle commands ...... 72

4-3 Sample non-converging APKF result for Jy, estimates ...... 74

4-4 Sample converging APKF result for Jyy estimates with variable ficti- tious noise ...... 75

4-5 Case 1 (zero disturbance torque) simulation results: most of errors are within 3- bounds and the errors of attitude parameter estimates are converging to zero. The attitude and body rate estimation error and 3a bounds oscillate due to the availability of star tracker measurements 79

II 4-5 Case 1 (zero disturbance torque) simulation results (continued): most of errors are within 3a- bounds and the errors of attitude parameter estimates are converging to zero ...... 80 4-6 Case 2 (sinusoidal disturbance torque) simulation results: most of er- rors are within 3c- bounds except f' and the errors of attitude param- eter estimates are converging to zero. The large error of f' is due to the discrepancy between the disturbance torque models ...... 82 4-6 Case 2 (sinusoidal disturbance torque) simulation results (continued): most of errors are within 3a- bounds and the errors of attitude param- eter estimates are converging to zero...... 83 4-7 Simplified disturbance torque model for Case 3 (partially predictable disturbance torque) ...... 85 4-8 Case 3 (partially predictable disturbance torque) simulation results . 86 4-8 Case 3 (partially predictable disturbance torque) simulation results (continued) ...... 87

5-1 Time-delayed measurement in Kalman filtering ...... 101 5-2 Plug-in the generated node ...... 106 5-3 Ground trajectories of SatA and SatB (ISS orbits with 2300 km spac- ing); screen-shot from Systems Tool Kit (STK) by Analytical Graphics, Inc...... 114 5-4 Case 1 (without SatB GNSS) simulation results ...... 117 5-5 Case 1 (without SatB GNSS) pointing vector estimation result (arcsec) 118 5-6 Case 2 (with SatB GNSS) simulation results ...... 119 5-7 Case 2 (with SatB GNSS) pointing vector estimation result (arcsec) . 120

6-1 Block diagram of the body pointing simulator ...... 125

6-2 Objective function J for settling time t ...... 129 6-3 Pointing error and stability without SatB's GNSS data ...... 130 6-4 Pointing error and stability with SatB's GNSS data (delayed 2 to 3 sec random ly) ...... 130

12 7-1 Lab demonstration part of FLARE lasercom optics ...... 132 7-2 FPS test setup block diagram ...... 132 7-3 FPS optical hardware design ...... 133

7-4 Fine pointing system (FPS) optical hardware setup picture ...... 134

7-5 Beam resizer optics ...... 135 7-6 P-FSM (OIM5001) and FSM (13L2.2) ...... 136 7-7 PDQ80A picture ...... 137

7-8 Quadcell and laser beam on quadcell ...... 138

7-9 FPS electronics and software block diagram ...... 140 7-10 AD660 DAC circuit boards ...... 140

7-11 CtrlAruino electronic circuit boards ...... 141

7-12 Xbee on CtrlArduino and SimArduino circuit boards ...... 141

7-13 Oscilloscope screen capture for P-FSM update frequency measurement 143 7-14 Laser beam pointing control loop block diagram with the FSM and Q1 144

7-15 Oscilloscope screen capture for the MEMS FSM update frequency mea-

surem ent ...... 145

7-16 h. and hy calibration results over (VO., Voy) ranges (not scaled) .. .. 148

7-17 Axh. and Ahy pattern over (Vox, VY) ranges ...... 148

7-18 FPS test result: pointing errors in X-Y plane ...... 150

7-19 FPS test result: time history of the pointing errors ...... 151

13 14 List of Tables

1.1 Typical FOG and MEMS gyroscope comparison ...... 19 1.2 Fine pointing systems for lasercom on large satellites (Refs. [11, 12, 13, 14 1) ...... 20

2.1 Lenses for FLARE lasercom payload ...... 32

7.1 Optical hardware list for FPS demonstration ...... 133 7.2 Fast steering mirror specifications ...... 136 7.3 PDQ80A specification ...... 138

15 16 Chapter 1

Introduction

Free space optical communication, or laser communication (lasercom) for space to

ground and space to space platforms is a contender to be the next generation tech-

nology because of its advantage in size, weight, and power consumption (SWaP)

compared with traditional communication methods using radio frequencies (RF). In

2001, the first inter-satellite link (ISL) using lasercom was demonstrated by the Euro-

pean Space Agency (ESA) [2]. The Earth observation satellite SPOT-4 transmitted

imagery to the data-relay satellite ARTEMIS at 50 Mbps data rate and prove the via- bility of an optical ISL. NASA and MIT Lincoln Laboratory (LL) are working on the

Laser Communication Relay Demonstration (LCRD) project which will demonstrate

the feasibility and the utility of a data relay system using optical communication

for both near-Earth and deep space communication [3]. The key benefit in SWaP comes from the short wavelength of a laser compared to RF signals. With a shorter wavelength it is possible to have a narrower diffraction limited beam given the same

aperture diameter, so that the energy density of the signal increases, which means

smaller SWaP with the same transmit power and data rate. Since 1999, CubeSats have emerged as a standard form of a small satellite because of its access to space, with launch opportunities using a Poly-PicoSatellite Orbital Deployer (P-POD). 1 Unit (U) of CubeSat is defined by 10 x 10 x 10 cm3 with mass of less than 1.33 kg per 1U [4]. CubeSats have become a standard for university-level research as well as adopted by industry for large large Earth observing constella-

17 tions [5, 61. For CubeSats, lasercom is an attractive option for power-efficient high-rate ISL. For space to ground downlinks, it is feasible, although potentially expensive, to in- crease the receive antenna diameter of the ground station to improve the gain. How- ever, for ISL, increasing the antenna diameter is not as feasible a solution since satel- lites are normally limited in terms of size and weight, especially CubeSats. Lasercom offers a potential solution for high performance ISL on CubeSats with constrained SWaP and cost. Although lasercom offers advantages for CubeSat ISL, it also comes with stricter pointing requirements. Lasercom can be more power efficient because of its narrower beamwidth, which also means that the satellite needs to be able to point the laser beam more accurately. Normally, a satellite is required to point the beam within its full width at half maximum (FWHM) to keep the pointing loss of the signal less than 3 dB [7]. Section 1.1 describes in more detail the pointing requirements for lasercom and challenges faced by CubeSats in meeting these requirements.

1.1 Challenges in Laser Beam Pointing

There are three critical aspects to achieve precision intersatellite pointing: (1) attitude determination and control (ADC), (2) orbit determination (OD), and (3) fine beam pointing. Spacecraft attitude control (AC) and attitude determination (AD) are classical fields of research that have been deeply investigated for decades. For CubeSats, it is AD rather than AC that typically limits performance. AC is not a limitation because of the relationship between the moment of inertia (MOI) of spacecraft and the available power on constrained space platforms such as CubeSats. Roughly speaking, the MOI is proportional to 11 for a given length 1' while the power generated by the solar panels, which is the most common power source for CubeSats, is proportional to 12, so that the available power per unit MOI is proportional to -'. If using reaction wheels (RWs), the actuator torque and angular momentum capacity

IMOI oc m12 and m c 13, so MOI Oc 15

18 is generally proportional to the available power. This means that a smaller satellite has more capability in AC than a bigger satellite - on the order of -3 .

However, AD is a major challenge for CubeSats. In case of star trackers, which are one of the most accurate attitude sensors for a spacecraft, the performance depends on the aperture area, which is proportional to 2, and the detector area, which is also proportional to 12. This implies that the sensor accuracy is worse for smaller satellites.

For gyroscopes, the performance difference becomes bigger. Fiber-optic gyroscopes

(FOG) are widely used in commercial satellites due to their high performance and compact size. However, in spite of their compact size, FOG are still too big and expensive for most CubeSat platforms. Therefore, a CubeSat normally utilizes small micro-electro-mechanical systems (MEMS) gyroscopes to measure its rotation rates.

Table 1.1 shows the specification of a typical FOG (FORS-1) [8] for commercial satellites and a MEMS gyroscope (BOI055) [9] for CubeSats. The FOG would take more than 0.5U while the MEMS gyroscope is just a chip on an electronic circuit board. The problem is that the MEMS gyroscope is 30 times worse than the FOG in terms of the angular random walk noise. Conventional AD heavily relies on the gyroscope measurements, so this makes AD for CubeSats challenging.

Table 1.1: Typical FOG and MEMS gyroscope comparison

Model Angular Random Walk (deg/v/-hr) Size (mm') Weight (gram) Power (W) pLFORS-1 0.1 3 x 22x53x78 3 x 137 3 x 2.5 BOI055 3 3x4.5x0.95 negligible 0.025

Orbit determination is another issue for supporting an ISL. A spacecraft will need to estimate its own orbit as well as the other's orbit. A satellite can determine its own position relatively easily if it has a Global Navigation Satellite System (GNSS) receiver, but it is almost impossible to directly measure the other satellite's absolute position in a Earth reference frame before establishing an ISL, either with RF or lasercom. It is possible to transfer position information via a ground station, but unlikely that real-time updates are feasible. There are two methods to estimate the

19 other satellite's position: orbit propagation and relative pointing vector estimation using a beacon signal. The former is usually done by Simplified General Perturbation 4 (SGP4) models with two-line element (TLE) sets produced by North American Aerospace Defence Command (NORAD). Normally, the position accuracy of SGP4 with NORAD TLEs is 1 km to 4 km, but it can be worse for CubeSats [101, up to 10s of kilometers. This implies that we cannot solely rely on the SGP4 orbit propagator.

Because we cannot rely on orbit propagators, beacon signals are needed. Beacon is a wide beamwidth laser that can cover the uncertainty that would result from using an orbit propagator. If we can utilize a beacon, it is possible to measure the relative pointing vector directly, and refine the orbit estimation result coupled with the satellite's attitude and orbital dynamics.

The third challenge for setting up an ISL is fine beam pointing. Because the at- titude control frequency of a CubeSat is typically less than 10 Hz and the attitude dynamics are normally slow, a fine pointing device would be needed to control the laser beam to compensate for the errors between attitude control time steps. Similar control was performed using two-axis gimbals in large satellite lasercom missions. Ta- ble 1.2 summarizes the actuators and sensors used in four previous lasercom missions.

However, most precision gimbal systems are too big and complicated for low cost and

Table 1.2: Fine pointing systems for lasercom on large satellites (Refs. [11, 12, 13, 14])

Mission Stages Actuator Sensor LCE 4 Gimbals (2) + Piezo (2) CCD + Quadcell ARTEMIS 4 Gimbals (2) + FSM (2) CCD + Quadeell LUCE 4 Gimbals (2) + Piezo (2) CCD + Quadcell LLCD 4 Gimbals (2) + Nutation (2) Quadcell + Nutation

low mass CubeSat missions. As proposed by Kingsbury in 2015 [151, a MEMS fast- steering mirror (FSM) can be used in CubeSat platforms due to its small size and weight. By compensating the residual pointing error from the attitude in the small platform of a CubeSat, a MEMS FSM will enable lasercom on a CubeSat.

20 1.2 Problem Statement

The central question of this research is: Can a CubeSat establish and maintain inter- satellite pointing of 12 arcsec for diffraction-limited lasercom? If not, what is the best pointing accuracy we can achieve with a CubeSat?

1.3 Thesis Scope and Contributions

The objective of this thesis is to develop a series of algorithms to solve the crosslink laser beam pointing problem on a CubeSat, which is a highly constrained platform, and demonstrate the feasibility of the accurate pointing for CubeSat lasercom. Fig. 1- 1 shows a block diagram of the overall pointing system architecture considered in this thesis. This thesis will cover the four components that are highlighted by red boxes. First, this thesis will describe a new attitude determination algorithm which is called

Data Signal Starlight Beacon Signal GNSS Signal

4 Beacon GNSS FSM Beam Detector Receiver

Quat. 1 Pointing Vec.

Attitude At Determination SGP4

RW Speed APVT 2 Actuator dCmd Attitude PVT bi SatB PVT From SatB (Reaction Wheels) Controller Determination

FPS: Firie Pointing System FSM: Fast Steering Mirror APD: Avalanche Photodetector PVT Position, Velocity, Time Quat: Quatemion Aft.: Attitude Vec.: Vector

Figure 1-1: Block diagram of the overall pointing system architecture. This thesis will cover the four parts (red boxes) in the following order: 1. Attitude Determination, 2. Orbit determination, 3. Attitude Control, 4. FPS the attitude and parameter estimation Kalman filter (APKF, block 1 in Figure 1-1)

21 to estimate the spacecraft's attitude precisely using only star tracker measurements, and without using gyroscopes. Second, a new orbit determination algorithm, which is called the satellite tracking Kalman filter (STKF, block 2 in Figure 1-1), is developed.

The goal of STKF is different from the conventional OD methods. Conventional

OD methods try to determine a satellite's orbit in a reference frame such as Earth- centered inertial (ECI) as precisely as possible, but the STKF only needs to estimate the relative pointing vector from one satellite to the other. Third is attitude control, block 3 in Figure 1-1. With the results of the APKF and the STKF, an AC algorithm needs to generate attitude commands and control torque commands that go to the reaction wheels. With the APKF, the STKF and the AC algorithm, overall body pointing algorithm will be assessed. The last part is FPS, block 4 in Figure 1-1. For a given body pointing accuracy, the FPS needs to reduce the pointing error to within the pointing requirement derived in Section 2.3.3. The FPS is demonstrated by a hardware-in-the-loop test.

The contributions of this thesis toward building an accurate and precise laser beam pointing system are:

1. Development of a spacecraft attitude determination and control algorithm that

do not depend on gyroscopes (the APKF).

2. Development of an orbit estimation method that estimates the relative pointing

vector from one CubeSat to the partner CubeSat using different data sources

(SGP4 orbit propagator, GNSS data of itself, beacon signal, and GNSS data

coming through ground stafion relay) measured at different time with a Kalman

filtering method to update out-of-sequence measurements.

3. Demonstration of a fine beam pointing system accurate to 4 arcsec for CubeSats

using a hardware-in-the-loop test with a MEMS FSM.

22 1.4 Thesis Organization

The reminder of this thesis is organized as follows: Chapter 2 will develop the pointing requirement for CubeSat crosslink lasercom. Chapter 3 will review the Kalman filter prior to getting into the main contents of this thesis in Chapters 4-5. Since the

AD and OD method developed in this thesis will use Kalman filtering approaches, Chapter 3 will introduce the concept and the structure of the Kalman filter and the necessary notation used in this thesis. Chapter 4 will cover attitude determination which is the first item needed toward crosslink laser beam pointing. An attitude determination algorithm called the Attitude and Parameter estimation Kalman Filter (APKF) is developed to provide accurate attitude and body rate estimates, without relying on gyroscopes. Chapter 5 will develop an orbit determination method which is called the Satellite Tracking Kalman Filter (STKF). In Chapter 6, the attitude control algorithm will be introduced, and the overall CubeSat body pointing performance using the APKF and the STKF will be assessed by simulations. In Chapter 7, the hardware-in-the-loop test for the fine pointing system (FPS) will be developed. Using the body pointing results from Chapter 6, Chapter 7 will demonstrate that accurate beam pointing for CubeSat lasercom crosslink is feasible. Chapter 8 will summarize the thesis contributions and identify remaining technical challenges for flight hardware implementation. Note that the literature reviews for the ADC and the OD will be presented in the first sections of the relevant chapters since each topic has been researched separately and has an independent history.

23 24 Chapter 2

Gaussian Beam Optics and Pointing Requirement

All electromagnetic waves coming out of a finite-size aperture are subject to diffrac- tion. Although a laser beam is perfectly collimated at its exit pupil (the wavefronts are planar and normal to the direction of propagation), the beam will diverge eventu- ally because of the diffraction property of waves. The divergence angle is a function of the aperture size, the wavelength, and the beam profile, and it is the physical limit of the narrowest beam that an electromagnetic wave can have. In lasercom, a link budget analysis normally assumes 3 dB loss from pointing error [71, which means that a satellite is required to point the beam within its full width at half maximum (FWHM) angle.

It is well known that the output beam of lasers can be approximated as a Gaussian beam for most lasers when it travels in free space [16], so it is important to calculate

FWHM angle of a Gaussian beam to set the pointing requirement for ISL using laser- com. This chapter will introduce Gaussian optics and set the pointing requirement that this thesis aims to meet for a target mission.

25 2.1 Gaussian Beam Optics

This section will review the basic principles of Gaussian optics and calculate the

FWHM angle of a diffraction-limited laser beam for a given aperture size and wave- length. The contents in this section are excerpted from Siegman (1986), and technical reports from Newport (2006) and Melles Griot (2010) [16, 17, 18] and adapted to fit the context of ISL lasercom.

A Gaussian beam is a laser beam whose electric field variation on a wavefront surface is the Gaussian distribution. Let us consider a Gaussian beam propagating along the x axis as shown in Fig. 2-1. At x = 0, the wavefront is a plane and it is

Circular Curved wavefron Gaussian 4 wavefront Profile Gaussian r Profile

Planaront wavefront

Figure 2-1: Gaussian beam propagating in free space orthogonal to the x axis. On this plane wavefront surface, the electric field E is given by the following equation:

E(r, x = 0) = Eo exp (-r 2 /wO) (2.1)

where E0 is the electric field at the center of the beam, or the peak, r is the radius from the center on a wavefront, and wo is the Gaussian beam radius at x = 0. As the beam propagates along the x axis, the wavefront becomes curved due to diffraction,

26 and the radius of curvature R(x) is given as:

R(x) = x [ + (I2 )], (2.2) and the Gaussian beam radius w(x) is given as:

2 W(X) = WO I (Ax 2 ) (2.3) grwo where A is the wavelength of the beam. As depicted in Fig. 2-1, the beam size increases slowly near x = 0, but it will eventually increase proportionally to x as shown in Eq. (2.3). For x >> , Eq. (2.2) and Eq. (2.3) become:

R(x) ~ x Ax w(x) ~ -- (2.4) 7rwo

The irradiance of the beam is given as:

2P~ I(r, x) = rE(r, x)E(r, x)* = 0Iexp(-2r 2/W 2 (X)) o exp(-2r2/w 2 (x)) (2.5) where PO, is the total power in watts (W) and r and w(x) are the radii in meters (m). Note that the unit of irradiance I(r, x) is W/m 2 which is power per unit area. At

FWHM rhaif, the irradiance is a half of the maximum irradiance by definition, which means

exp(-2r2l f/w 2 (x)) = 0.5

rhalf = w(x) ~ 0.589w(x) (2.6) 2

Since R(x) ~ x in the far field, the Gaussian radius angle 0 is simply given as:

0 = w ~x) (x) (2.7) R(x) x

27 and half width at half maximum (HWHM) angle OHWHM is given as:

OHWHM = rhalf (2.8) x

From Eq. (2.4), Eq. (2.6) and Eq. (2.8),

Ax 1 A OHWHM = 0.58871- - = 0.18739 (2.9) 7rwO X WO

Since FWHM is double of HWHM by definition, FWHM is given as

OFWHM = 0.37478- (2.10)

Note that wo is the Gaussian beam radius at which the electric field decreases 1/e, or equivalently, the irradiance decreases 1/e 2 at the beam waist, and it is not the radius of the aperture. To relate the Gaussian beam radius to the aperture size, the power contained within a given radius r at the beam waist should be considered. By integrating the irradiance distribution Eq. (2.5) from 0 to r, the optical power is given as:

= 0) = P [ - exp -2-- (2.11)

For r = wo, r = 1.5wo, and r = 2.0wo, the optical power contained inside of the radius r is 86.47 %, 98.89 %, and 99.97 % respectively. This power contained in the beam is important to decide the aperture diameter of transmitter optics in Section 2.2 since we do not want to lose the transmit power by cutting off the beam.

2.2 Aperture Diameter and Gaussian Beam Width

It is advantageous to make the Gaussian beam radius wo as big as possible to make the beam narrower in order to increase power density within the FWHM. However, one should be careful about the relationship between 1/e2 beam waist wo and the aperture diameter D. Since the output beam power is critical for lasercom and CubeSat systems, it is best to make the output beam contain as much power as

28 possible. Also, if the aperture cuts off the beam too much, the beam profile at the beam waist would not be a Gaussian distribution, and the equations derived in Section 2.1 would be no longer valid. More importantly, the beam would develop zeros in far-field [17]. Regarding this issue, the Newport technical report states, "If the aperture is at least three or four wo in diameter, these effects are negligible". For these reasons, the Gaussian beam radius wo is set to be one-fourth of D which will give 99.97 % of the total optical power contained in the output beam. Therefore, in this work, we use a FWHM given by:

A OFWHM = 1.5- (rad) (2.12) D

2.3 Crosslink Lasercom Reference Mission Overview

The example mission case used in a technology demonstration CubeSat crosslink mission. Each CubeSat supports a full-duplex laser communications transceiver op- erating at 1550 nn for intersatellite communication. This reference CubeSat crosslink mission will be a baseline CubeSat platform of this thesis.

2.3.1 CubeSat Crosslink Lasercom Reference Mission

The CubeSat crosslink lasercom is a technology demonstration mission with the fol- lowing objectives"

1. Primary objective: Demonstrate the feasibility of nanosatellite crosslinks at a

minimum intersatellite distance of 25 km and a minimum data rate of 20 Mbps.

Maximum range and data rate will only imposed by the limitations of minimum

acceptable bit error rate of 10- 4 .

2. Secondary objective: Demonstrate the crosslink capability at a range of dis-

tances up to 500 km with a goal of maintaining a 20 Mbps link.

Fig. 2-2 shows the concept of operations. SatA and SatB will be launched and de- ployed at the same time, possibly initially held together with a nylon burn-through

29 cord, from the same P-POD. They will go through initial de-tumbling and sun ac- quisition and pre-operation checks that include solar panel deployment and system diagnostics. As the mission begins, they will begin to separate up to 25 km using a differential-drag orbit-phasing method, and then start the lasercom experiment.

Other than the lasercom payload, we assume each spacecraft will also have a low-rate

Launch Vehicle Separation and Ejection Operations CUBESAT Launcher: P-POD Orbit Keeping Constellation LV: Co-located Lasercom Operations

Pre-Operations Deployment Spacecraft separation Deploy Solar Panels Uncover Payload UHF System Diagnostic 401 MHZ

De-Orbit Degraded and Failure Mode Operations Sun-Safe Mode HF Survival Mode 450 MHZ Launch

Figure 2-2: CubeSat Lasercom Intersatellite Crosslink Concept of Operations

UHF radio modem to receive commands from and send operational telemetry to the ground station. This UHF link will be used to command the satellites as well as relay the navigation data from one satellite to the other, via the ground station, to help their laser beam pointing.

This CubeSat lasercom reference mission example sets the lasercom pointing per- formance requirements that need to be met in this thesis. The lasercom payload optics are described in detail as they are the primary requirement driver.

30 2.3.2 CubeSat Intersatellite Lasercom Optics

The goal is to demonstrate an optical communications crosslink at a range 25 km, at a data rate > 20 Mbps, and at a 10-4 bit error rate. Fig. 2-3 is the block diagram

Blue- 635nm Calibration Red- 1565nm Tx Beacon (800 Purple- 1535nm Rx L1f Green - 800nm Beacon L2 FSM I (5mm)

ki Silicon detector Beacon (NODE camera) Dichroic BS Rx lens Quad cell * (visible) w/mirror U 1 BS Cube APDD4Jj w/ beam dump

NODE Tx (1565nm) WDM Collimator FSM 2 Coupler (3mm)

Cal beam (635nm) Courtesy of Michael Long

Figure 2-3: CubeSat Lasercom Intersatellite Crosslink payload optics design

FSMs

Beam - Splitters -- Collimator Quadcell- 100mm EDFA APD - Assembly

Receive Beacon Beam Camera Credit: Tingxiao Sun Expander/Reducer Assembly and Michael Long Assembly

Figure 2-4: CubeSat Lasercom Intersatellite Crosslink payload optics CAD model of the lasercom optics design (credit: Michael Long) and Fig. 2-4 shows the CAD model (credit: Tingxiao Sun and Michael Long). Li is the objective or primary lens

31 Table 2.1: Lenses for FLARE lasercom payload

Component Lens 1 (Li) Lens 2 (L2) Part No. Thorlabs, AC300-080-C Edmund Optics, 67-601-INK Optic Type Achromatic doublet Bi-convex Diameter 30 mm (using 20 mm) 6 mm Focal length 80 mm 6 mm Material N-BAF10/N-SF6 N-SF5

that collect the beacon beam, and L2 is the secondary lens for beam resizing. The beam is resized by the ratio of the focal lengths of Li and L2, and will be tilted by FSM1. The tilted beacon beam (green arrow) will be directed by the dichroic beam splitter (orange box) and go into the quadcell which is the angle sensor of the FPS. If Tx beam path is well aligned with the incoming beam path by FSM2 before the transmission, the beam pointing can be achieved by feedback control using FSM1 and the quadcell. Table 2.1 summarizes the Li and L2 specifications. The diameter of Li is 30 mm but only 20 mm is used as a clear aperture because of structural limitations. Note that the beam resizer that consists of Li and L2 has an angular magnification of fi/f2= 13.33 and this number will be used in Chapter 7 which discusses the FPS demonstration.

2.3.3 Pointing Requirement for the CubeSat Lasercom Inter- satellite Crosslink Mission

As derived in Sec. 2.1 and Sec. 2.2, the FWHM of the CubeSat Lasercom Intersatellite Crosslink mission is given as

1550 nm- OFWHM -- 1.5 = 116.18 (pirad) = 23.96 (arcsec). (2.13) 20 mm

Since OFWHM is the full angle, the beam pointing accuracy requirement is set to be the half of 0 FWHM, <58 prad or <12 arcsec.

32 Chapter 3

The Kalman Filter Overview

This chapter will review the Kalman filter that plays a key role for state estimations in this thesis. The purpose of this chapter is to give a conceptual understanding and introduce the mathematical notation for the Kalman filter used in this thesis, so only the concept and the derived results are covered here. The author refers the reader to reference textbooks [19, 20] for a more detailed description. The Kalman Filter has been one of the most powerful tools in the field of es- timation and tracking since it was published in 1960 [211. Besides its optimality, its recursive formulation is another key benefit, especially for real-time applications.

The Kalman filter was originally derived for a linear discrete-time system in Ref. [21], and has been extended to nonlinear and/or continuous-time systems. Section 3.1 will introduce the discrete-time Kalman filter to give the basic concept of the Kalman fil- tering to the readers, and Section 3.2 will review the extended Kalman filter (EKF) for nonlinear continuous-time dynamic systems with discrete-time sensor measurements.

3.1 The discrete-time Kalman filter

Let us consider a linear discrete-time system given as follows:

Xk = Fkrk-11 + Lk-Wkl (3.1)

k Hk Mk (3.2)

33 where Xk and Yk are the state and measurement vectors at time index k and 'i and

Vk are the process noise and the measurement noise vectors. ?S and Vk are white, zero-mean, and uncorrelated noise processes, and have known covariance matrices Qk and Rk:

Wk N(0,Qk)

V-7 N(ORk)

E[wkw,] = Qkxkj

E[vkv[] = Rk 6 kj

E[wkv[] = 0 (3.3) where N(j, 22) denotes a normal distribution whose mean and covariance are p and

E2, respectively, and 6kj is the Kronecker delta function given as:

=6j 1, if k = j(34. (ifk) 0, otherwise

The goal of the Kalman filter is to estimate the state vector at the time k, Xk, with

all available sensor measurements, Yi, 2, - Yk . Let us define two notations for estimates, Xk and i-, which are called a posteriori estimate and a priori estimate, respectively. The hat () means an estimate of (.) and the superscript "+" and "-"

means a posteriori and a priori, respectively. A posteriori estimate xk means an

estimate of S at time k conditioned on all of the measurements up to and including

time k, and a priori estimate 5; means an estimate of S at time k conditioned on

all of the measurements up to time k, but not including time k. In mathematical

notation, they can be expressed as:

E k=Y[k1,Y 2 , -- k]

= E[SkIY, Y2 ,- ,Yk-1]. (3.5)

34 Fig. 3-1 shows the operational concept of the Kalman filter. If we know the system

-Ioilk Yk+1 Corredtion Corredtion Corredtion

k- I k- Prediction~ l~k Xk X Prediction k+1i k+1

k k1k k k+1k+l k-1 k k+1

Figure 3-1: The operation concept of the Kalman filter dynamics which is given as Eq. (3.1) and we have an a posteriori estimate at time k - 1 i _1 , the Kalman filter can predict the state at time k, which is an a priori estimate X-, by propagating the state using Eq. (3.1). Then, we can calculate the predicted measurement yk with - and the measurement equation given as Eq. (3.2).

If a measurement Yk is available, we can compare the predicted measurement and the true measurement, and correct the state estimate from the difference between yk and Pk to get a posteriori estimate , . This is how the Kalman filter works.

At this point, one question may arise: "How much should we correct a priori estimate Xk from the difference between yk and YA to obtain the optimal posteriori estimate xc?". To answer this question, we need to define the meaning of "the opti- mal" first. "The optimal" is not a quantitative expression and it can be interpreted differently depending on the person. However, in modern estimation theories, the optimal estimation means the estimate that minimizes the sum of the variances of each state estimate while the expectation of the estimate is same as the true state

(un-biased). In mathematical notation, this sentence can be expressed as:

E[X - Y*] = 0 (3.6)

= arg min Tr (E[ ( - *) ( -* (3.7)

where the superscript "*" stands for the optimal. The Kalman filter was derived under these optimal conditions given by Eq. (3.6) and Eq. (3.7). The derivation is not covered in this thesis, but more details can be found in References [19, 21, 221.

35 The covariance matrix that the Kalman filter tries to minimize at time k will

be denoted as Pk and there will be a superscript of "+" or "-" corresponding to its estimate, a posteriori or a priori as follows:

P+= E[(--+ k-+ T (3.8)

-#-)T] (3.9) P - = [( -- _

The Kalman filter keeps calculating the covariance matrix Pk along with the state

estimate Xk, and uses this to calculate the "how much correction" term, which is called the Kalman gain. The following steps summarize the linear discrete-time Kalman filter for a linear discrete-time system given as Eq. (3.1) and Eq. (3.2).

1. Initialization: Initialize the Kalman filter with a given initial state estimate and covariance as follows:

Pf = E[(o- 4)(Xo- ) T] (3.10)

2. Prediction: Propagate the state estimate and the covariance from time k - 1 to time k as follows:

k= Fk _1_1

P Fk_1P+_ 1Fk_ 1 + LkQk,1LT_1 (3.11)

3. Correction: Update the state estimate and the covariance with a measurement vector Yk as follows:

Kk = P-HT(HkP-HT+MkRkMT-1

- k k (312 = Pk HITR:-l (3.12)

Xk = Xk+ K(y - HX-) (313)

pk = (I-KkHk)P-(IKkHk)T+KkRkI4

36 = [(P-)- + HTRk-1Hk] 1

= (I-KkHk)P - (3.14)

There are two equivalent expressions for the Kalman gain calculation (3.12) and three equivalent expressions for the posteriori covariance (3.14). There are two ways to cal-

culate Kk and Pk: i) calculating Kk first and ii) calculating Pk first. To calculate

Kk first, the first expression in Eq. (3.12) and the first or the third expression in Eq. (3.14) should be used. To calculate Pk' first, the second expression in Eq. (3.14) should be used first and then Kk is calculated by the second expression in Eq. (3.12). Both methods are analytically equivalent, but it is numerically faster to calculate the Kalman gain first because of the dimensions of a matrix inverse. In most estimation problems, the dimension of the state X is greater than the dimension of the measure- ment Yk, so the dimension of the matrix inverse in the first expression of (3.12) is less than the second expression of (3.14). Between the first and the third expressions in (3.14), the first one is generally used more because the first one guarantees symmetric covariance while the third one does not. After the initialization, the prediction and correction steps will be applied iteratively for k = 1, 2, --- as depicted in Fig. 3-1.

3.2 The Extended Kalman Filter

Since most of the dynamic systems in the real world are neither linear nor discrete- time, the Kalman filter derived for linear discrete-time systems has been extended to nonlinear and continuous systems. It is called the extended Kalman filter (EKF). This section reviews a type of the EKF for a nonlinear continuous-time dynamics with discrete-time measurements. The system equation and the measurement equation for this system is given as follows:

-= fQ(, _(t), t) (3.15)

Yk = hk (k ,i k) (3-16)

37 where t is time, w'(t) is the continuous-time white noise, and Vk is the white, zero-mean measurement noise whose covariance is Rk. The continuous-time noise is different from the discrete-time noise given as Eq. (3.3) and it is given as follows:

T E[iiJ(t)6i (T)] = Q6(t - T) (3.17) where 3(t - r) is the Dirac delta function given as

+Do if x = 0, 0 otherwise +oo ] 6(x)dx = 1. (3.18)

The subscript "k" in Eq. (3.16) means the time at the k-th step, tk. The structure of the EKF is same as the Kalman filter, prediction and correction as shown in Fig. 3-1, but the details are different. The major difference is that the EKF estimates the error state AY, not X', though AX' may disappear in the final EKF formulation. In most cases, the error state is defined as

AY = X - X. (3.19)

Eq. (3.19) is not necessarily the case. For example, attitude quaternion cannot be added linearly because of the unity-norm constraint, so a special approach to define the error state for attitude quaternion is required as we will see in Chapter 4. However, let us assume (3.19) for the rest of this section.

The basic idea of the EKF is to linearize a nonlinear system at the best state estimate for each prediction and correction step. By applying the Taylor series expansion on the system dynamic equation (3.15) at X = i and W' = 0,

- :+ A(,) f ( , 0, t) + -( 4, 0f 2 : 0, t)A2 +- dt atO A+( 2O 02 Of 00 1 02 f + ( (, 0, t) - 2 +- Ow 2! M0

38 + coupling terms of AX' and (3.20)(

By substituting A = f(,0, t) and ignoring the second and higher order terms, Eq. (3.20) becomes Of Of ~Ox 0AY+ (, , (3.21) and this is the linearized system dynamics of the error state. Likewise, the measure- ment equation (3.16) can be linearized as:

Ohk -hk Yk -hkOk ( )k (3.22)

The approximated error dynamics given as Eq. (3.21) is linearized but still in continuous- time domain. It is possible to apply the continuous Kalman filter to this system, but it gives a differential equation of the covariance and it is computationally burdensome to propagate all components of the covariance matrix using a numerical integration technique, especially in real-time applications. Therefore, the discretized system dy- namics of Eq. (3.21) will be used in the covariance propagation. The discretized model is derived as follows:

Ak = qk,k_1AXk-1 + Qt (3.23)

where the state transition matrix D,_k-1 is given as

(Dk,k-1 = eFAt

Qtk (3.24) Q= tk_-1 t TG GTD t Td where

F = Of (,0,t)

G = ( ,0, ). (3.25) Ow

39 Since the system dynamics equation and the measurement equation are linearized and discretized as Eq. (3.23) and Eq. (3.22), the Kalman filtering equations introduced in the previous section can be applied. The following steps summarize the EKF on a nonlinear continuous-time system given as Eq. (3.15) and Eq. (3.16).

1. Initialization: Initialize the Kalman filter with a given initial state estimate and covariance as follows:

+ = E[O]

P0+ = E [ (1 -- ko+)(z - T1 (3.26)

2. Prediction

(a) Propagate the state estimate by integrating the nonlinear continuous-time

system dynamics for the measurement time step from tk1 to tk as:

X = f(5, 0, t) (3.27)

from Sk. And set Xk as the integrated state x at tk.

(b) Calculate the time-average state as

4,_ = - + 5;) (3.28) 2

(c) Calculate the partial derivatives F and G as

of F = -- 5Xkk_1,Ot) Of G = -- (0,k_1, ,t). (3.29) Ow*

(d) Calculate the state-transition matrix 4Dk,k-1 and the total process noise covariance Qt as

eFAt-=

40 tk Qt = ()(tk

(e) Propagate the covariance as

P =

3. Correction: Update the state estimate and the covariance with a measurement vector Yk as follows:

(a) Calculate the partial derivatives Hk and Mk as

ahk Hk - (Ak,0) Mhk ( A4'k = ( i, 0). (3.32)

(b) Calculate the Kalman gain and update the covariance as

Kk = PCH[(HkPH + MkRk M -1

= Pk+HRk

pkt = (I _ KkHk)P,-(I - KHk)T+KkRkKk

1 = [(P1 )- + HkRk'Hk]

= (I - KkHk)P- (3.33)

(c) Calculate the error state estimate as

A-+ = Kk( - hk( , 0)) (3.34)

(d) Update the state estimate as

+k = Xt + (3.35)

Note that the error state Ax' in Eq. (3.34) and Eq. (3.35) can be omitted by combining

41 those two steps. However, the two steps are intentionally kept separate for use in the case where Eq. (3.19) is not valid.

Readers may notice that Eq. (3.30) contains an analytical integration to calculate the process noise covariance Qt, which is not desirable with digital computers. This integration can be approximated in a closed form to relieve the computational burden for each application as Section 4.6.

42 Chapter 4

Attitude Determination

To point one spacecraft to another, first needs to know where it is pointing at. This process is called attitude determination (AD). In this chapter, an AD algorithm called the attitude parameter determination Kalman filter (APKF) will be developed for pre- cise spacecraft AD without gyroscopes. The contents of this chapter are adapted and reprinted from "Kalman Filtering for Attitude Parameter Estimation of Nanosatellites without Gyroscopes," Journal of Guidance, Control, and Dynamics by Hyosang Yoon, Kathleen Riesing, and Kerri Cahoy t231 with permission of the American Institute of Aeronautics and Astronautics, Inc.

4.1 Research Gap

In spacecraft AD, the Kalman filtering (KF) approach has been used for decades to fuse different types of sensor data and calculate the optimal attitude estimates. Most prior art is based on the 6-state multiplicative extended Kalman filter (MEKF) for- mulation that was proposed by Lefferts et al. [24]. One key attribute of the 6-state MEKF is that it substitutes gyroscope measurements in place of the rotational dy- namics. Instead of augmenting the body rates in the KF state and propagating it with the rotational dynamics, the 6-state MEKF uses gyroscope measurement mod- els to determine the body rates and to propagate the attitude. This approach has been widely used in real-time onboard spacecraft AD because it is not subject to the

43 uncertainties in attitude dynamic parameters, actuator models, and external distur- bances. While the 6-state MEKF does not outperform an attitude estimation KF using rotational dynamics in terms of optimality in theory, in practice reducing the number of the unknown parameters in the system equations is preferable to make the estimator robust and stable. Additionally, modern gyroscopes such as the fiber optic gyroscope (FOG) and the hemispherical resonator gyroscope (HRG) show good performance, so there has been little need to incorporate the rotational dynamics in the filtering formulation and to deal with the uncertainties in the dynamic parameters for traditional spacecraft.

However, the emergence of nanosatellites has motivated new filtering approaches such as that presented here, since CubeSats differ from larger satellites in some im- portant respects. CubeSats have become a standard for university-level research as well as small satellite constellations [5, 6]. As discussed in Section 1.1, AD is chal- lenging for nanosatellites compared to larger satellites, and one of the most critical problems is the performance of MEMS gyroscopes. The MEMS gyroscopes' angular random walk are 10-100 times worse than the FOGs (30x in Talbe 1.1) and their bias drifts much more due to temperature [251. For this reason, precision pointing CubeSats tend not to use MEMS gyroscope measurements and solely rely on star trackers for both attitude and rate estimation when high attitude control accuracy is needed [26, 27, 28]. In this case, the 6-state MEKF based filtering formulation cannot be used and the rotational dynamics should be incorporated into the filtering formulation. This means that the filtering formulation must be extended to handle the uncertainties of the unknown attitude and actuator parameters as well.

The unknown parameters that need to be estimated include sensor and actuator alignment, spacecraft moment of inertia (MOI), spacecraft residual dipole moments, and actuator MOI if momentum-conserving actuators are used. For the on-orbit sensor alignment calibration, both least squares (LS), or batch, estimation techniques and KF approaches are proposed in the literature [29, 30, 31, 32, 331. LS techniques assume that all the data are downloaded to the ground and processed at once, while the KF approaches inherently process the data sequentially, which is more suitable

44 for on-board processor implementations. In the KF approaches, the 6-state MEKF formulation gives the base platform of the estimator, and the misalignment parameters are augmented as additional states [31, 321.

For MOI and other attitude parameter calibration, there are two general ap- proaches in the literature. The first approach is adaptive control. The goal of pa- rameter calibration is to improve attitude control (AC) accuracy. Adaptive control approaches can compensate for the effect of control errors from the parameter uncer- tainty [34, 35, 36, 371. The other general approach uses estimation techniques such as LS and Kalman filtering to estimate the MOI directly, along with the actuator parameters such as misalignments and scale error [38, 39, 40, 41, 42, 43j. Psiaki uses the extended Kalman filter (EKF) and nonlinear smoother in Ref. [39, 40] with only magnetometers to estimate the MOI and the other attitude parameters (excluding actuator parameters). Psiaki develops an attitude dynamics parameter estimator that includes actuator parameters with LS approaches [411. Fosbury and Nebelecky derived an EKF formulation to estimate the actuator alignment [42], and Norman et al. developed a momentum-based estimation scheme for MOI and actuator align- ments [43]. However, the three studies assume the use of gyroscope measurements, and accurate gyroscope measurements are generally not available for nanosatellites.

In this thesis, a Kalman filtering approach is proposed to estimate the spacecraft attitude and body rate, as well as other parameters including spacecraft body MOI, actuator MOI, actuator and sensor misalignments, and residual dipole moment. The proposed Kalman filter, called the Attitude Parameter calibration Kalman Filter (APKF), is not a momentum-based attitude parameter estimation and only uses star tracker measurements and reaction wheel speed readings. Since the APKF does not require gyroscope measurements and is based on the EKF, it is easily applicable to nanosatellite attitude determination even for real-time onboard AD.

45 4.2 Notation

This section briefly defines the mathematical notations for quaternion and vector operations that are used to describe attitude kinematics and attitude dynamics in the rest of this thesis. A 3 dimensional vector U is defined as

V P= VI V2 V3 (4.1) and a quaternion q is defined as

T q (4.2) q, q1 2 q3 q4 =4 where q' is called the vector part and q4 is called scalar term. In this study, the attitude is represented by the quaternion defined as (4.2) where

q = sin(O/2), q4 = cos(6/2) (4.3)

The unit vector 8 is the axis of rotation and 0 is the angle of rotation. So, the attitude quaternion always satisfies the unity norm constraint

Tq - I (4.4)

Vectors will be denoted by an arrow, and quaternions by an overbar in this paper. Let P, q, and f be quaternions and let T,, Tq, and T, be corresponding direction cosine matrices (DCM). The quaternion product operator 0 is defined such that

P4 P3 -P2 Pi

-P3 P4 Pi P2 q,q2 f - P0 q [Po®J = (4.5) P2 -P1 P4 P3 q3

-P1 -P2 -P3 P4_

Thus, f = P 0 q corresponds to the product T, = TpTq.

46 The skew symmetric matrix that satisfies the cross product V x b = [ x~b is given as

0 -V3 V2

[LIVx] = -VI (4.6)

-V2 V1 0

for a given 3 dimensional vector V'. Using the notations defined above, a DCM corre- sponding to an attitude quaternion g can be calculated as:

A(q) = (jq4| 2 -- ql)I3x3 + 24f* - 2q4[x] (4.7)

A(q) denotes the DCM corresponding to q in this document. From (4.7), it can be

inferred that both q and -q represent a same DCM. This means q = -q in the sense of rotation. The inverse quaternion q-' of a quaternion q is defined as a quaternion that satisfies

1 g4 ®q= @ =[0 0 0 1 T (4.8)

From (4.2), (4.7), and (4.8), the inverse quaternion - can be obtained as

-- or [ (4.9) Lq4 -_q4J

4.3 Attitude Kinematics and Dynamics

The time derivative of the attitude quaternion for a rotating body is given as:

(4.10) 2 0 where W is a 3 dimensional vector of a body rate. Regarding the angular rates of the spacecraft body, this thesis assumes the space- craft as a rigid body, so the rigid body dynamics, which is often referred to as Euler's rotation equations or Euler's equation, should be used as the system dynamics in the

47 APKF. Let us consider reaction wheels (RWs) as the primary attitude actuators and divide the spacecraft into two parts: RWs and the rest of the body. The total angular momentum of the spacecraft can be written as:

H =Ha +Hb (4.11)

where H, Ha, and H are the total, actuator and body angular momentum, respec- tively, in the body frame, and they are given as:

Ha = Hrw + Ja (4.12)

Hb =J (4.13) where Hrw is the RW angular momentum from spinning about their axes, Ja is the

3 x 3 MOI matrix of the RWs in the body frame, and J is the MOI of the spacecraft body except for the RWs. The rotational dynamics of the spacecraft body only can be written as

Hb I Inertial = Ta2b + Text

= HbBody+ XHb

JbW+WX=J + ' X JbQ.W (4,14) where Ta2b is the internal torque from RWs to the body and Text models the external torques such as gravity gradient torque and aerodynamic drag torque. The rotational dynamics for the RWs is given as:

HalInertial = ib2a = HalBody + X Ha

- Hrw + Ja+ x (Hrw+Ja)

- rw+ Ja + X (Hrw + Ja) (4.15) where Ta2b is the reaction torque from the body to RWs, Tb2a = -Ta2b and Trw -Hrw

48 is the reaction torque due to change in speed of the RWs. Combining (4.14) and (4.15),

J L= WX(J +Hrw) +Trw +Text (4.16) where J = J, + Jb. Eq. (4.16) is the time derivative equation of the body rate J and will be used as the system dynamics equation to propagate the state estimates and the covariances.

4.4 6-State MEKF

Most of prior art in spacecraft AD using the Kalman filter is based on the 6-state multiplicative extended Kalman filter (MEKF) formulation that was proposed by Lefferts et al. [24]. One important point of the 6-state MEKF is that it does not use the attitude dynamics (4.16) to propagate its body rate. Rather, the 6-state MEKF takes the body rate measurements from gyroscope and uses the gyro readings to propagate its attitude. Therefore, the gyroscope model is a part of its system dynamics which is given as

'= a++iia (4.17) where U' is the gyroscope output, W is the true body rate of the spacecraft, b is gyro- scope bias error, and 7a is an angular random walk (ARW) noise, which is assumed to be a Gaussian as

E[ a(t)] 0 (4.18)

E[(aft)a(t - t')T] Qa(t)(t - t') (4.19)

The gyro bias b is driven by a second Gaussian white-noise process as

db q (4.20) dt

49 where r is called rate random walk (RRW) noise:

E[(t)] = 0 (4.21)

E[ r(t) /r(t - t')T] = Qr(t(t - t') 2

The state to be estimated from the 6-state MEKF includes the attitude quaternion and the gyro bias as: X =-4 [e[T bj] T (4.23)

The error state which the 6-state MEKF actually estimates is defined by the vector part of the error quaternion (3 terms) and gyroscope bias error (3 terms) as follows:

Ax= [J' AgT] (4.24) where the error quaternion Jq and the gyro bias error are defined as

q = q- (4.25) Ab = - b (4.26) where (.) represents the estimate of (-). As a general Kalman filter, the 6-state MEKF consists of two steps: prediction and correction. Let us assume that the filter is initialized with the initial guess of the attitude, gyro bias, and their covariance as:

qO =O= , (4.27) bo

PO3 01 (4.28) [ 0 UboIsx3J

For each time step, the 6-state MEKF repeats the following Prediction and Cor- rection steps.

1. Prediction: The state, the attitude quaternion and gyro bias, from the previ-

50 ous step k-1 to the current step x is numerically integrated using the differ- ential equations (4.10) (4.20) with the estimated body rate given as

w = iZ- b-_ (4.29)

For the covariance P- propagation, let us consider the following linearized equa- tion. -- = Fi-+ G (4.30) dt where

F =-[U'x] -'/21 (4.31) 0 0

0] G -1/21 (4.32) 0 [

77=a (4.33)

The state transition matrix (D can be calculated using a Talyor series as

1 2 2 3 3 'Ik,k_1 = e Ft = I + FAt + - F At + - F At + - - - (4.34) 2! 3! where At is the time step between k - 1 and k step, or using the following approximated formulation:

-IAnt + [ Cx]At2

51 2 1 1 C 3 At -0 2 At 2 -_ At2 1C2At 2 2 - 01At -wA 3At 1 cZ1 At !LZ 3 At 2 2 w At 2 w2 At -Z 1 At 1 - 2 IC1At 2I At 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1

Using (4.35), the covariance can be propagated as

P- = 'bk,k-&1Pk 1 + W (4.36)

where

Wd = f (t, t')G(t')Q(t')G(t')T b(t, t')T dt'

Q(t) = E[t T ] (4.37)

The second term of (4.36), Wd can be approximated as

1/4QaAt + 1/12Q At3 _1/4QAt2 (4.38) Wd[ 2 -1/4QAt Q'At _

2. Correction: To update the filter, a vector measurement is assumed since most

of the attitude sensors are measuring vectors such as a Sun vector, star vectors, and a geomagnetic field vector (except gyroscopes). A vector measurement can

be modeled as the following:

ps = TbA(q)J4 + iT (4.39)

where '7 is the vector measurement in sensor frame, 'Tb is the DCM from the body frame to the sensor frame, ' is the true measured vector in the reference frame such as Earth-Centered Inertial (ECI) or J2000, and V' is the measurement

52 noise given as:

E[v] = 0 (4.40)

E[iriF] = R = diag(ri,r 2, r3 ) (4.41)

Using (4.25), (4.39) can be approximated as:

Ps = ps + 28TbflIbx] 6 q+ j (4.42) where

Pb = A(q)h pr (4.43)

Ps = TbA(). r (4.44)

So, the measurement error can be written in the matrix form as:

6158 = SPs - = HAY+ W (4.45) where

H = 12sTbjbx] 0 (4.46) M =I (4.47)

Using (4.45), the filter can be updated as:

1 Kk = P1 HT(HP1 HT + MRMT) = P+HT(MRMT)-I (4.48)

A k - K WS (4.49)

T Pk = (I - KkH)P1 (I - KkH)T + KkMRM KI

- (I - K H)P (4.50)

53 Note that the above equation used the fact that Axg = 0 by definition. After obtaining Ak, the state k is calculated as:

k = qk qk$(4.51)

bkj = k+b (4.52)

This 6-state MEKF formulation does not directly estimate the body rate of the spacecraft, so it does not use the rigid body dynamics given as (4.16). In theory, including the rigid body dynamics as a part of dynamic model should give more accurate estimation results. However, because of the uncertainty of the attitude dynamics such as alignment error, disturbance torque, and inaccurate spacecraft MOI, not incorporating Euler's equation may give more robust results since it can confine the uncertainties within the gyro and sensor models in practice.

4.4.1 6-State MEKF Performance with MEMS Gyroscopes

This section presents the simulated performance of the 6-state MEKF with MEMS gyroscopes. The gyroscope's ARW, bias repeatability, and bias stability are assumed to be 3 deg/V'hr, 1 deg/hr, and 0.05 deg/hr l-, respectively. The star tracker accuracy is assumed to be 20 arcsec (1a) in the cross boresight axes, which are x and y axis of the body frame, and 60 arcsec (la) in the boresight axis, which is the z axis of the body frame. The star tracker update frequency is 1 Hz. Five sets of the calibration maneuver described in Section 4.7.1 are used. During the maneuver, the star tracker does not give output if the spacecraft rotates faster than 0.1 deg/sec. Figure 4-1 shows the estimation errors (solid line) and the 3a bounds (dashed lines) from the covariance matrix.of the 6-state MEKF. The final la bound is (19.88, 19.88, 57.18) arcsec for attitude. Compared to the raw star tracker accuracy of (20, 20, 60) arcsec, the 6-state MEKF does not greatly improve AD. This is because of the large ARW noise of the MEMS gyroscopes; 3 deg/v'i ARW means the process noise of the attitude propagation using gyro measurements is 180 arcsec over 1 sec, which is much

54 1000 - 5 0 ------1000 x 0 1000 0 -5 5. -1000 1000 -5

0 200 400 600 800 1000 0 200 400 6 0 800 1000 Time (sec) Time (sec) (a) Attitude estimation error (arcsec) (b) Gyro bias estimation error (deg/hr) Figure 4-1: 6-state MEKF simulation results. The final 1o- for attitude is (19.88, 19.88, 57.18) arcsec which is not much better than the raw star tracker accuracy of (20, 20, 60) arcsec.

worse than the star tracker accuracy. Note that this simulation does not consider the other errors of gyroscopes such as misalignment and scale factor error; if these errors are considered, the benefit of the 6-state MEKF will be even worse than these results. This is the reason why a new attitude filtering formulation using the rigid body dynamics is needed.

4.5 Actuator and Sensor Models

Unlike the 6-state MEKF, the APKF will use Eq. (4.16) as the system dynamics to propagate the body rate. The problem is that every term in Eq. (4.16) is not perfectly known. Hr and T,, should be determined from the rotation axes, the moment of inertia, and the rotation rate of the RWs, which should be estimated along with w and J. This section introduces a reaction wheel model to describe these terms mathematically. Also, this section defines a star tracker model used for updating the APKF.

55 4.5.1 Reaction Wheels

Let us consider the RW model whose rotation axis is fixed in the body frame with a constant rotor MOI. The angular momentum of RWs in body frame is given as:

Cii C12

Hrw = i C21 W1 + i2 C22 W2 + +'i n C2n jn

C 3 1 C 3 2 J LC3nj

= 1101 i+ 2C2J2 + ' - + iJnCnWn (4.53) where ji, ', and wi are the MOI, the rotation axis vector, and the rotation speed of the i-th reaction wheel respectively, and n is the number of the reaction wheels in the reaction wheel assembly (RWA). Since the rotation axis only contains directional information, it has the unity norm constraint as:

C = 1 (4.54)

Eq. (4.53) can be expressed in a matrix form as:

1 j1 0 ... 0 Wi

C 1 1 C 1 2 ''' 0 i W 2

Hrw = C 2 1 C 2 2 ... C2n

C3 1 C3 2 ' ' ' .3n - -- o ... 0 jn Wn

Jrw

= Crw JrwZrw (4.55)

By definition, the reaction torque of the RWA is given as:

Trw = -Hrw = -CrwJrww (4.56)

where dr = &r. In actual reaction wheel hardware, ',w is directly measured by Hall-effect sensors or optical encoders and airw is obtained by numerical differentiation of ' w. Assuming a Gaussian RW speed read-out noise ,rw ~ N(0, Rw), the RW

56 speed measurement Wrw can be modeled as:

Wrw = Wrw + iirw (4.57)

Unlike the RW speed, there is no method to measure the RWA alignment matrix Crw and the RWA MOIs Jrw directly on orbit. These are the parameters that need to be estimated in the APKF. The rotation axis vector Crw has the unity constraint (4.54), so it needs careful consideration. Pittelkau has shown that the measurement vector of a gyroscope has two degrees of freedom in terms of misalignment, and derived a general gyroscope misalignment model in Ref. [44]. Reaction wheel misalignments can be modeled and linearly approximated in the same manner as:

6 Ci -iO + Cii 3,i + C2 2 , (4.58)

where , is the initial guess for the i-th RW, 2',1 and ',2 are the two unit vectors that 6 6 are orthogonal to ciO, and i,1 and i,2 are the small misalignment angles. c, 1 and ci,2 can be any two vectors that satisfy:

Cj, 0 I Cj,1I Ci, 2 . (4.59)

Strictly speaking, Eq. (4.58) does not exactly satisfy the unity norm constraint (4.54), but it is a good approximation for linear filtering approaches such as the Kalman filter. Using Eq. (4.58), the alignment matrix Crw can be approximated as:

61,1 0

Crw ~ ( 1,0 ... C-nO] + i j... [- n .

CrW'O CIW 0 6n, 1

61,2 0

+ [CJ,2 ... Cn,2]

C2 [ 0 6n,2

= Cw,0 + CrW,1D(Jrwi) + Crw, 2 D(6rw, 2 ) (4.60)

57 where

T - n,1 rw,1 1,1 * -T Jrw,2 = 11,2 - n,2 T (4.61)

We make an assumption for the RW acceleration that drw is constant during At between two time steps of the filter as:

I ckrw = -(r - W7W) (4.62) At

where the superscript - and + means the beginning and the end of each propagation step in the Kalman filter.

4.5.2 Star Tracker Model

The APKF is assumed to use a star tracker that measures an attitude quaternion from a reference inertial frame to its sensor frame, whose mathematical model is given as:

q = - & ' q q (4.63)

where Sqb is the attitude quaternion from the body frame to the sensor frame (sensor alignment) and q, is a noise quaternion, approximately given as:

qn 2sV (4.64) 1

where

Vq N(O, Rq) (4.65)

Rq = diag(o-21, 0 2 , 023) (4.66)

58 0 Note that the units of q are radians. Since the sensor alignment quaternion Sqb should be estimated along with the attitude quaternion q, it also needs to be augmented in the state vector afterwards.

4.6 APKF

4.6.1 Error State Dynamics

The APKF is basically an attitude estimation Kalman filter that estimates the at- titude q. Unlike the 6-state MEKF, the APKF does not use a gyroscope model to determine the body rate and to propagate its attitude. Therefore, the APKF needs to estimate the body rates W explicitly as a part of its state vector. The dynamics for the body rate are given by Eq. (4.16), and can be combined with the reaction wheel models Eq. (4.53)-Eq. (4.62) as:

1 S= J--- X ( J* + CrwJrwQrw) - ACrw Jrw(&Z - L--w) + Text] (4.67)

6 where Crw is a function of the reaction wheels' misalignment angles ( w,, and rw,2) with respect to its initial value Cw,o as Eq. (4.60). The external torque Tet consists of the gravity-gradient torque, magnetic torque due to body's residual dipole moment, aerodynamic torque, solar radiation torque, etc. as:

Text = 74+& + +s +a+etc (4.68)

The gravity-gradient torque and the magnetic torque are given as:

Gb 2 3 (Jyy - Jzz) + (Gb33 - Gb22)Jyz + Gb13JxY - Gbl2Jxz

7g= Gb1 3 J, -- Jxx) + (Gb1 - Gb33)Jxz + Gb12 Jyz - Gb23Jxy (4.69)

[Gbl2(Jxx - Jyy) + (Gb22- Gb11) Jxy + Gb 23 Jx - Gbl3JyzJ = P(Gb)J = -(J)Gb (4.70)

Tm = i x bb (4.71)

59 where = [mm, mY, mz]T is the residual dipole moment of the spacecraft,

Gb = A(q)GiA(q) T (4.72)

bb = A(q) i (4.73) and 'I(G) is defined for a 3 by 3 symmetric matrix G as:

0 G 23 -G 23 G 13 -G1 (G 33 - G 22 )

'I(G) = -G13 0 G 13 -G 23 (Gil - G33 ) G 12 (4.74)

G12 -G 12 0 (G 22 - Gil) G 23 -G 13

Gi is the gravity-gradient tensor in inertial coordinates given by:

p - _T Gi = - P(I - 3 2 ) (4.75) r3 r2 where r is the satellite's position in inertial frames, and bi is the geomagnetic field in inertial coordinates. Both are assumed to be known in this study. From this point, we regard the other external torques except 9' and 'm as contributors to the disturbance torque 7 which is a bias driven by a second Gaussian white-noise process, similar to the gyro bias in Ref. [24]. It is possible to explicitly model the disturbance torques such as the aerodynamic torque and solar radiation torque in theory, but it is difficult to have consistent mathematical models for aerodynamic torque and solar radiation torque in practice since they heavily depend on a satellite's shape and the solar activity level. Also, their magnitudes can be assumed to be smaller than reaction wheel control torques and the other external torques [45]. Therefore, we will use the simple bias model for the residual disturbance torques as:

7d = 77d (4.76) where E[rdi/] = Qd, and set Qd big enough to cover the un-modeled disturbance torque. This approach will be verified by numerical simulations in Section 4.8.

60 In Eq. (4.67), every term except At is unknown beyond an initial guess. The unknown parameters to be estimated along with 0 are the reaction wheel speed Qrw, the disturbance torque 'a, the MOI of the spacecraft Jy,, J Joy, J Jz]T,]=T, the MOI of the reaction wheels JrW = [Ei, J2, - , in], and the reaction wheel mis-

6 alignment angles rw = [6 , 2].

To apply the extended Kalman filter (EKF), it is important to obtain the linearized dynamics of the error states. For the attitude quaternion, the time derivative of the vector part of the error quaternion 6 q = 79 q-1 is given in Ref. [24] as:

qY= -[PxW+ (4.77) 2 for body rates, with the error states defined as:

Ird = Tdd

6J = J - J

Am = rw - rn

6 Jrw = Jrw - Jrw

6Wrw = Wrw - .rw

rw rw rw

6+ Wrw+ Wrw:Wrw (.8 and the RW speed measurement model (4.57), Eq. (4.67) can be written as:

w = (I - J~1 6J) - 1 [-(+6W) x { (i+6J)(+6)

+(Crw + SCrw)(Jrw + 6 Jw)(Prw + Lrw)}}

A(Crw + JCrw)(Jrw + 6 Jrw )((Lz. + 6W4 ) - (L + S&-r)) +T(Gb)(J +6J) + T x bb + d + Rd] (4.79)

61 where

0 rw = Crw,0 + Crw,iD(6rw,1) + Crw,2 D(Jrw,2 ) (4.80) arid

6Cr W = Crw - Orw (4.81) =Crw,D(A6rw,1) + Crw,2 D(A6rw, 2 )

Note that we used the approximation of the MOI matrix inverse as:

J-1 = (+6J) 1 [J(I+

(4.82)

The estimate of Eq. (4.79) is given as:

i -P( b ^1 :4 -(8 = J[ -x(J+CrwJrwWrw)---Crw Jrw (rw -c-&w ) +'P(Gb) J+M xb+*] (4.83) where

Gb = A(q)GL A( (4.84)

bb =A Mbi (4.85)

With Eq. (4.79) and Eq. (4.83), we can derive the linearized equation for the error body rates as (see Appendix A.1):

6W = 2j-l{(J)T(Gb) + [rx][bbx]}&+ J-{-[cx]J+ [HJx]}6 +

1 + {(0b)- [c x]Q(') - (J~P )}3J. j-1[g x]b

+J-{ C + C(tu}}s6+ J-1 {- x]D(& ) - CrwD(Vrw)1}}rw 1 - 1 - -J [ x]Ordr.W&rw + YjJ~ 01 rwJr.wrw - ~t UJ- Crrw rw (4.86)

62 where

hrw = JrwLrw (4.87)

erw =- ,- (4.88) At trw = -Jrwrw (4.89)

It= JW + Orwhrw (4.90)

= -xHt-t + C rt*w + 4(GOb)J + Mx bb + d (4.91)

and matrix C() and Q(U) are defined for a vector V as:

C(9) = [1I,ivi 2 ,1 v 2 - -- n,1ven C1 ,2 V 1 C2 ,2 V 2 - Cn,2Vnl (4.92)

v1 0 0 v 2 v 3 0

() = 0 V 2 0 V1 0 V3 (4.93)

0 0 V3 0 V1 v 2

and matrix T(G) is defined for a 3 by 3 symmetric matrix as:

0 2G13 -2G12

-2G 23 0 2012

2d23 -2G 13 0 T (G) =(4.94) -G13 G23 (Gil - G22)

012 ( 33 - O11 ) 023

(O22 - 033) -012 013

, ,rw, and Jrw are assumed to be constant, but we add small process noises (1g,

7 Tim, 7Sw and q ,J, respectively) to deal with a small change in the values due to thermal distortion and to prevent the APKF from becoming closed.

The reaction wheel speeds, with the assumption of constant acceleration with

Eq. (4.62), - w can be written as:

Wrw = W- + 5r(t - t) (4.95)

63 Wrw = arw

= A[At Wr (+7W-60-)] (4.96)

Since the estimate of Eq. (4.96) is given as Eq. (4.88),

J =r Wrw - Wrw 1 1 t 6, rw-t (4.97)

4.6.2 Relative Calibration for MOIs and Alignments

The error states in Eq. (4.78) include both the MOI of the spacecraft body and the MOIs of the RWs, which means there is no absolute reference we can rely on for the MOI calibration. Conceptually speaking, the attitude sensors such as star trackers measure the body rates (though it is an indirect measurement), the reaction wheels measure their rotation speed, and the filter compares those two measurements and extracts the relative ratio between the body MOI and the RW MOIs. For a simple example, consider a RW on a frictionless turntable and assume it is initially stationary. If the RW starts to rotate, the turntable will rotate in the opposite direction. Although we assume perfect measurements of the RW speed and the turntable rotation rate, the only thing we can calculate is the ratio between the MOIs of the RW and the turntable unless we know one of them a priori. This means that both MOIs are not observable from the two rotation rate measurements.

To resolve this observability issue, we assume J,, as the reference MOI and esti- mate the remaining five terms J5 = [Jz, Jo, , JYz, similar to Ref. [391. The estimation results of 5 and J, will be scaled to the ratio of the nominal and actual value of J,. The estimates of J5 and J, will not converge on the actual MOI values, but this does not matter for attitude determination and control because they only use the relative ratios between the MOIs. For attitude filtering, the multiplication of J 1 in Eq. (4.67) erases the scaling error of J and Jw. For attitude control, since the reaction wheel torque is typically generated by its rotation speed control, the same

64 scaling error in the MOIs will not produce any undesired torque error.

For alignment calibration, if N sensors are used, only N - 1 alignments can be

estimated by the sensor measurements as discussed by Pittelkau [32]. This means that

the misalignments of the RW axis Crw and the star tracker "qb are not fully observable

at the same time with only one star tracker. Therefore, we set the star tracker's sensor

frame as the reference frame, and the RWs rotation axes are estimated with respect

to the star tracker frame. The misalignment of the star tracker is blended into the

RW rotation axis and the body MOI. It is possible to use RWs rotation axes as the

reference as Pittelkau did in Ref. [44] using gyroscopes' measurement axes, but it is

not covered in this thesis.

4.6.3 State Transition Matrix

With Eq. (4.77) and Eq. (4.86), the linearized time derivative equations for the error states, Jq and Eq. (4.78), can be written in matrix form as:

-[zx] 0.51 0 0 0 0 0 0 0 0 Sq1 F 2 1 F 2 2 F23 -F2 4 F25 F26 F2 7 F28 F29 F2a Td 0

6 0 6 f d 0 A6rw Ajrw 0 J rw 0 Sirw

6 Wrw 6&rw 0 F89 Fsa

rw 0 L rw WLW 6 + J 11...... F

65 0 0 I- -

iiJ

+ Im (4.98) -i4 776rw

0 -7rw 0 0 0

G where

F21 = 2-{I(J)T(Ob)+[^-x1[bbx]} (4.99)

F 2 2 = .- {-['x]J+ [1tx]} (4.100) (4.101) F2 3 = j-1

- ~ Q( t (4.102) F 2 4 5 [5X](c)X(b) (4.103) F 25 = -J[bx] (4.104) F 26 = J- -[0 x]C(hrw) + C(Erw)}

F2 7 = J{[ Cx D(w ) - OrwD(erw)} (4.105)

1 (4.106) F 28 j 2[x]UCrw iw (4.107) F2 9 = j- Orw jrW

F2a = J ~Crwjrw (4.108)

F = - I (4.109) 89 At

F8 a A 1 (4.110)

66 and, Q5 (v) and F5 (G) are defined for the 5-element MOI error state vector 6f5 as:

0 0 V 2 V 3 0

Q5 (6) =V2 0 V 1 0 V3 (4.111)

V 0 V3 0 1 V2_

G 2 3 -G 2 3 G1 3 -G12 (G 33 - G 2 2 ) (4.112) 'F5(G) 0 G13 -G 2 3 (Gil - G 33 ) G12

-G12 0 (G 22 - Gil) G 2 3 -G13

The process noise has diagonal covariances E['7dfl = Qd = diag(qd, qd, qd), E['7] =

Qj = diag(qjm, qj,, qip, qjp, qjp), E[Fj] = Q, = dia g(qm, q ,q.), E [ ,w i ]

Q6rw = diag(q6rw, - . , q ), and E[7rwff,,rw] = Q rw = Cdiag (q jrw , . -, rw).

The state transition matrix D can be obtained by integrating Eq. (4.98) either numerically or with an analytical approximation. For the numerical method, P can be approximated using a Taylor series simply as:

(Dkk-1 = eFAt = I + FAt + -F2At2 + -F3At3 + - (4.113) 2! 3! where At is the time step between k - 1 and k. This numerical method is simple and easy to implement, but computationally burdensome especially when the number of states is large. It is preferable to use a closed-form approximation of 4, as derived in

67 Appendix A.2,

#11 '12 #13 #14 #15 016 017 0518 19 Oia1

#21 022 023 #24 #25 026 727 728 029 02a 0 0 I 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 o 0 0 0 0 1 0 0 0

0 0 0 0 0 0 0 I q89 08a 0 0 0 0 0 0 0 0 I 0 0 0 0 0 0 0 0 0 0 I

where

= I-[x]At (4.114) 1 2 (4.116) #1i 2 12F2i 1 1 7 1j = I K12F2 + 1 (413F28F117) 2 F 2 _ F ( 4 2 3 .1 1 8)'8 #21 = F 21At + (F22 F2 1 - F2 - 6[41x])AtF 22 F 2 1[P x]1t (4.118)

022 = I + F At + -( F + F F )At2 (4.119) 22 2 2 21 22 22 #02i K21F2 (4.120)

02j = i 21 F 2j + K 22 F 28 F8 j (4.121)

058j F8 j At (4.122)

for i = 3, 4,... , 8 and j = 9, a where

2 = I + 1t(F 2 2 - [c x])At - 2 2 A[tx]F3t3 (4.123)

[ x])At3 [ 2 At2 6 K = -It + -( - - IxXIF22 A- (4.124) 12 2 6 2 2 24

68 4 K 13 = !At3 + -(F - [Wx])At - 10 X]F22 (4.125) 6 22 1 K IAt + 1F At 2 (4.126) 21 2 22

K 2 = 2!IAt2 + IF 22 At3 (4.127) 2 6

4.6.4 Process Noise

In the EKF, the covariance propagation can be calculated by:

p- = Dtj,tOP+,DT,tO + Qt (4.128) where Qt is the process noise matrix given by:

Qt = J (t, r)G(-r)Q(r)GT(r)>T(tl,T)dT (4.129) Sto

With the approximated state transition matrix as:

51, ~ I (4.130) 1 #12 ~ IZt (4.131) 2 #1j ~- 0 (4.132)

#22 ~ I (4.133)

#2j - F2j At (4.134)

69 for j = 3,4,... , 8, Eq. (4.129) can be integrated as:

0 0 0 0 0 0 0 0 0 0 2 2 2 2 IF25QmAt 'F26Qrw At 1F27 QJrwAt Qt,22 IF23QdAt 'F24QJ~t 2 0 0 0 QdAt 0 0 0 0 0 0 0 Qjit 0 0 0 0 0 0 Qm/t 0 0 0 0 0 Qt= Ox, At 0 0 0 0 QjrwAt 0 0 0 0 0 0 0 0 0 (4.135) where

3 Qt,22 - [F QdF T3 + F QJF 4 + F QF T +F Q rwFT + F QJrwFfT]At (4.136) 3 23 2 24 2 25 2 26 6 27

Note that only the elements in the upper triangular part are displayed here. Since

Qt is symmetric, the lower triangular part is same as the transpose of the upper triangular part.

4.6.5 Update

With the same approach to substitute a quaternion by the product of an error quater- nion and its estimate q = 6q 0 q, Eq. (4.63) can be written as:

=0 6 q 0 qb 6q (4.137)

Using the same approaches described in Ref. 131], the vector part of the error mea- surement quaternion &Ym = m g q;- can be approximated in a linearized form as:

S ) j +1 # 4m. ~ J qb6+ A (s$qL q+ Vq (4.138)

70 As discussed in Sec. 4.6.2, the APKF does not estimate the misalignment of the star tracker 6Sgb by assuming that only one star tracker is used, which means Vq' = 0 and

qb remains the same as the initial value sqb,o. If more than one star tracker is used,

6 S for the extra star trackers should be augmented in the state vector and needs to be estimated. For the APKF in this thesis, the linearized measurement equation is given as:

6qm = [A(s) 0 - . 01 Ax + 2Vq (4.139)

H H in Eq. (4.139) is the measurement sensitivity matrix of the star tracker for the APKF update given as:

K = P-HT(HP-H +MRMT)- 1 (4.140)

A = Koq- (4.141)

P+ (I - KH)P-(I - KH)T + KMRMT KT (4.142)

4.7 APKF Implementation Notes

4.7.1 Calibration Maneuver

For complete observability of both MOI and alignment calibration, a set of calibration maneuvers that generate control torques and angular momentum in all directions is required, similar to the discussion for gyroscope alignment calibration in Ref. [31J. In the APKF case, all directions should include not only the three X, Y, and Z directions of the body frame, but also the null vector directions of the RW alignment matrix Cr. If no torques are applied in the null vector directions, it is not possible to update the misalignments on the null vector of C,.. In this study, we use three consecutive rotations in each X, Y, and Z axis as one set of the calibration maneuver. It is possible to use the other types of maneuvers such as the sinusoidal maneuver with different frequency as in Ref. [31]. However, star trackers for nanosatellites perform worse under rotation than star trackers for bigger satellites due to their smaller aperture

71 sizes, and even for bigger satellites, star trackers usually give their best performance when the spacecraft is not rotating. To be more applicable to real nanosatellite systems, we use three stop-and-go consecutive rotations for the calibration maneuvers. Figure 4-2 shows the attitude commands in terms of Euler angle for a set of calibration maneuvers.

30 -. -Roll 25. Pitch Yaw -C 20 (D

(D 15

<10

5

0' 0 50 100 150 200 250 Time (sec) Figure 4-2: A set of calibration maneuver angle commands

4.7.2 RW Torque Command

In this study, we assume the use of a quaternion feedback control law with proportional- derivative (PD) gain [461. This PD control law gives the desired control torque, Tc, in body frame. To calculate the RW torque command i,, that satisfies

c Crwtrw,, (4.143) the following pseudo-inverse is usually used when the RWs are identical:

iw,net = Crw(CrwC'w)-c (4.144)

Eq. (4.144) is the efficient solution of Eq. (4.143) that minimizes the norm of the RW torque vector by eliminating the torque in the direction of the null space of Crw which does not affect the effective control torque in the body frame. This RW torque command is good for spacecraft attitude control, but we need the RW torque in the

72 null space of Cw for the RW alignment calibration. So we add the RW torque in the null space into Eq. (4.144) as:

n-3 trw = CT(CrwCrw) Tc + aiJrw,i (4.145)

where N,, is the i-th null vector of Cw which satisfies CwNrw,i = 0 and ai is the magnitude of the null torque for the i-th null vector. ai should be determined to be small enough to avoid RW speed saturation.

4.7.3 Angular Momentum Bias

The spacecraft needs angular momentum bias to ensure complete observability of the relative MOI calibration. Let us consider a sample case where J = diag(J,2, Jy,, Jz) and there are only three reaction wheels that are aligned to the X, Y, and Z axes.

If we assume zero total angular momentum (JM + CrwJrwL, = 0) and ignore the external torque Test, the equation of motion given by Eq. (4.67) becomes:

32Crw,2 (4.146)

2 O. 3 rw,3

In Eq. (4.146), each axis is uncoupled with the other axes, so the relative MOI cali- bration to J,, is not feasible. Therefore, non-zero angular momentum bias is required for the relative MOI calibration. The magnitude of the bias should be determined to be small enough to avoid RW speed saturation.

4.7.4 Variable Fictitious Noise

The APKF applies the EKF, which is a linearized estimator, to the nonlinear system.

The APKF uses Eq. (4.98) as the system dynamics, but it is just a linearized equation, not the exact system dynamics. The discrepancy between the exact system and the linearized model may be large and may cause instability of the APKF, especially

73 when the estimation error is large and complete observability is not obtained. In the calibration maneuver, full observability is not ensured before completing one set of the maneuvers. Once the error of the estimate becomes large compared to its estimated covariance, the error may not converge even after completing the set of calibration maneuvers. Fig. 4-3 shows a typical non-converging estimation result. This is the estimation result of Jy, of the APKF. The first set of the calibration maneuver ends at 210 sec. The estimation error becomes larger then 3a- around 140 sec and it does not converge into the 3- boundary even after a couple of sets of the calibration maneuvers. The fundamental solution for this problem would be to

0.015 -Error 0.01 --

- 0.005 E 0 ------

-0.005-

-0.01

-0.015 0 200 400 600 800 Time (sec) Figure 4-3: Sample non-converging APKF result for Jyy estimates change the filtering approach from the EKF to other nonlinear estimation techniques such as the unscented Kalman filter [47, 20] and particle filter, but they normally require intensive calculations especially when the number of states is large [48]. The APKF's state has 41 components for n = 4, so nonlinear filtering techniques may be too burdensome. Instead of utilizing nonlinear filters, we propose a simple strategy to mitigate this problem by varying the process and measurement noise covariances. There are five process noise vectors and one measurement noise vector, 'd, ?j, fm, 6rw, fjrw, and

'q, and the six corresponding covariance matrices, Qd, QJ, Qm, Qarw, QJrw, and R,.

The nominal values of the process noise covariances are set to be small, such as 0.1%

MOI variation over one hour, since the MOIs and the alignments are assumed to be constant. On initializeing the filter, we set the Q's and Rq 100 times bigger than their

74 nominal values to prevent the filter from becoming closed before full observability is achieved. After the first set of the calibration maneuvers, the covariance values are set to 10 times the nominal for gradual convergence, and they return to their nominal values after the second set of the calibration maneuver. With this numerical approach, the APKF gives the converging result as shown in Fig. 4-4 with the same inputs as used in Fig. 4-3. This approach does not guarantee the optimal estimation results during the transient period, but when it converges to the steady state, the non-optiwality becomes negligible.

0.015

0.01 -

0.005 E 0-

-0.005

-0.01

-0.015 0 200 400 600 800 Time (sec) Figure 4-4: Sample converging APKF result for Jyy estimates with variable fictitious noise

4.8 Simulation Results

The following parameters for a satellite system are used to verify the APKF's per- formance by simulation. A typical 3U rectangular-prism CubeSat (30 x 10 x 10 cm 3) was assumed as the spacecraft. The nominal body MOI is JO = [12,47, 45,1,2, 3 ]T X 10-3 kg - m2 and the nominal MOI of each RW is 3 x 10-6 kg -m2 . We assume that 4 RWs are used and the nominal RW rotation matrix is given as:

CO 1 1 +1 (4.147) 1 13

75 which is a symmetric pyramid configuration. The MOI errors are set to be 6% to 12% of its nominal value as AJ= [-1.2,3.29, 3.6,0.1, -0.12, 0.21]Tx i04 kg.m2 and

2 Airw = [0.45, 0.36, -0.75, - 0 60 T x 10-6 kg - i . Regarding the RW misalignment, the two misalignment direction vectors a;,i and a;, 2 are calculated as:

- 'i,ox ci+1,o Ci,1i - ,l Koci'O Xx Ci+1,C, Ci,2 = - x (4.148) 1Ci'O X Ci, i for i = 1, 2,... , n and 'n+1,O = n,o. The RW alignment error angles are assumed to be 6rw,1 = [11, -7, -11, 8]" deg and 6rw,2 = [-12, 12, 9, 10]T deg, so that the actual RW rotation matrix is given as:

-0.76820 -0.72728 0.36636 0.70252 Crw -0.39087 0.39403 0.68484 -0.59026 (4.149) 0.50703 0.56195 0.62988 0.39755

The RW speed read-out noise is assumed to be 10 rpm (la). The star tracker accuracy is assumed to be 20 arcsec (la) in the cross boresight axes, which are x and y axis of the body frame, and 60 arcsec (la) in the boresight axis, which is the z axis of the body frame. The star tracker is assumed to give output only when the magnitude of the body rate is less than 0.1 deg/sec. The residual dipole moment is assumed to be

= [-0.11, 0.15, 0.20] Am2

Regarding the attitude maneuvers, we use 5 sets of the calibration maneuver as proposed in Section 4.7.1 in this simulation. The maneuver angle and the duration for each rotation are 30 deg and 30 sec respectively, and we put 30 sec attitude-hold time before the first set of the calibration maneuvers for the filter initialization as shown in Fig. 4-2. The total simulation period is 930 sec and the step time is 1 sec. The attitude, body rates, and the reaction wheel speeds are numerically integrated by the 4th order Runge-Kutta method. The magnitude of the null torque ai in Eq. (4.145) is set to be 10% of max(t-rw). The initial body rate is set to be &o = [1, 0, 0]Tdeg/sec

76 to give the momentum bias for complete observability.

The nominal process noise for the MOIs, the dipole moment, and the misalign-

ments is set to be qj,, = (4.7 - 10-5 kgm2 /vh'i)2, qjp = (4.7 - 10-6 kgm2/ vfh) 2

3 2 2 2 1 qm = (1. 10- Am / Vh) , qr = (0.01 deg/Ah) , and qjr. = (3 -10-9 kgm2/v/Y) 2 which are very small in order to only prevent the filter closed.

Regarding the initialization of the APKF, the initial attitude quaternion deter- mined by one star tracker output and the initial body rate are estimated by numerical differentiation of two star tracker outputs at the first two steps. The initial covari- ances (PO) for attitude and the body rate are set to be large enough to fully cover the expected initial errors as (10 deg) 2 and (10 deg/sec)2 respectively. The initial RW speed is determined by the RW speed reading and its PO is the same as the covariance of the read-out noise Rr. The initial values for the other states are set to be zero. The PO is (5.0. 10- 3 kgm2 )2 for J.. and J,, is which is 10.6% of the largest nominal body MOI value, (2.0. 10-3 kgm 2 ) 2 for J,, J,, and J,,, (0.3 Am 2 )2 for the residual dipole moment, (10 deg) 2 for RW misalignments, and (1. 10-6 kgm 2 ) 2 for RW MOIs.

The simulation code is written in MATLAB scripts. To generate the RW command torques, perfect knowledge on the attitude and body rate is assumed because the purpose of this simulation is to verify the APKF only. The complete set of the star tracker measurements were generated first, and the APKF processed the data later to estimate the attitude and parameters. The simulation of attitude control with the APKF will be presented in Chapter 6.

We present three sets of simulation results with different unmodeled disturbance torques. The first simulation is performed with zero disturbance torques to verify the convergence of the APKF itself (Case 1), and the second simulation is performed with sinusoidal disturbance torques to examine its stability for unmodeled disturbances (Case 2). The comparison of the results of Case 1 to Case 2 shows performance degradation due to the unmodeled disturbance torques. In the third simulation, we assume a simple disturbance torque model which only depends on the satellite's atti- tude quaternion (Case 3) to suggest a mitigation plan when the disturbance torques are partially predictable.

77 4.8.1 Case 1: Zero Disturbance Torque

In this case, the nominal process noise for the disturbance torque is set to be small 2 as qd = (2.0 -10- Nm/V/'iHr) in order to just prevent the filter from closing. Fig. 4-5 shows the estimation errors (solid line) and the 3o- bounds (dashed lines) estimated from the covariance matrix of the APKF. Note that most of the errors are within 3o bounds, which represents that the APKF is working as expected. The final l- is (9.81, 8.01, 19.70) arcsec for attitude and (49.08, 11.72, 15.89) arcsec/sec for body rate. The relative differences between the l-'s on each axis are qualitatively to be expected from the asymmetric body MOI, the asymmetric star tracker's accuracy, and the RW read-out noise. The l- is (0.078, 0.079) x 10-3 kgm2 for (Jyy, J,,), which is less than 0.17 % of their nominal values, and 0.002 Am 2 for nA . The largest lo- is 0.061 deg for 6rw and 0.61 - 10- kgm2 for Jrw which is 0.2% of its nominal value. Note that the 1o- of Wrw remains almost same as R,,, which implies that the RW speed read-out noise is the dominant noise that determines the filtering performance in the current system specification. In this case, it is worth considering removing 'rw, ., and W-m from the state vector to reduce state dimension and numerical burden.

78 1000 0.2- 0 0 -1000 -0.2

1000 2 0 100 -0.2 I

1000 0.2 2 V 0 -10002 0 200- 400 600 800 1000 0 200 400 600 800 1000 Time (sec) Time (sec) (a) Attitude estimation error (arcsec) (b) W estimation error (deg/sec)

x2- x 0.2 - -2- -0.4

0.2 -2b -0.4

2- N 0 . .... 0.2- .- -0.2. -0.4 0 200 400 600 800 1000 0 200 400 600 800 1000 Time (sec) Time (sec) (c) ' estimation error (10-6 kgm 2 ) (d) i estimation error (Am2 )

20 -

- 0 - -10 ...... ------.---.------.- . . .- .---

-20-

20- -10 10 0-0

-20 -10 0 200 400 600 800 1000 0 200 400 600 800 1000 Time (sec) Time (sec) 2 (e) Jyy, J,, estimation error (10-3 kgm 2 ) (f) Jo,, Jx, Jyz estimation error (i0~3 kgm ) Figure 4-5: Case 1 (zero disturbance torque) simulation results: most of errors are within 3a- bounds and the errors of attitude parameter estimates are converging to zero. The attitude and body rate estimation error and 3- bounds oscillate due to the availability of star tracker measurements

79 2 2~ 0 - 0 ------2 2 0 - - -2 ------...-... - --..

-2 - 12 2 0- 0 2 -2-2L 10~ -2 0 200 400 600 800 1000 0 200 400 600 800 1000 Time (sea) Time (sea) (g) Irwi estimation error (deg) (h) Irw,2 estimation error (deg)

U 40 20 10 -10 ------

4020 T N 010 40 -10 F N20 2j -40 01J 40 -40 ------10 40 ---- ,- F .20 -10L ------0 200 400 600 800 1000 0 200 400 600 800 1000 Time (sea) Time (see) (i) J,, estimation error (10-8 kgm2 ) (j) Lrw estimation error (rpm) Figure 4-5: Case 1 (zero disturbance torque) simulation results (continued): most of errors are within 3o- bounds and the errors of attitude parameter estimates are converging to zero.

80 4.8.2 Case 2: Sinusoidal Disturbance Torque

The most dominant unmodeled disturbance torque is the aerodynamic torque in low- earth orbit (LEO) [45]. The aerodynamic torque depends on the satellite's shape, attitude, altitude, and velocity. If we assume no other information on the aerodynamic torque other than its maximum magnitude, one approach is to set qd large enough to prevent the 3a of ' from covariance matrix P converging below the maximum disturbance. There are several studies about the order of magnitude of aerodynamic torques of a CubeSat in LEO: Gerhardt and Palo reported 8 - 10-8 Nm for a 3U CubeSat at 600 km altitude [49], Rawashdeh and Lumpp reported 6. 10- Nm for a 3U CubeSat at 400 km altitude [50], and Franquiz et al. reported 1 - 10-6 Nm for a 6U CubeSat at 500 km altitude [51]. To be conservative, we run the simulation with a nonharmonic sinusoidal disturbance torque model whose magnitude is Tmag 1 . 10-6 Nm as: sin( t + Ox)

d(t) = Trnag sin( t + OY) (4.150)

sin( t + 0,) where t is time, (Tx, Ty, Tz) = (80, 72.7, 82.47) sec, and (0, Oy, Oz) = (90, 0, 135) deg. Note that this disturbance model does not represent the actual aerodynamic torque which is a function of the altitude, the velocity, and the attitude. Eq. (4.150) is just used to show the behavior of the APKF to the varying disturbance torques whose maximum magnitude is 1 . 10-6 Nm. The covariance of the process noise is set to qd = (4.0. 10-6 Nm/ V F) 2 , which is 20 times greater than Case 1, to prevent the estimated covariance from becoming too small. This approach will degrade the performance of the filter in terms of minimum covariance, but will help to keep the filter stable.

Fig. 4-6 shows the estimation errors and the 3a bounds for Case 2. As intended, the ' estimation errors are mostly kept inside of the 3a, bounds as Fig. 4-6 (c), so does the other state errors. The final la is (9.83, 8.32, 21.19) arcsec for attitude and

(49.33, 12.19, 17.13) arcsec/sec for body rate. The la is (0.109, 0.123) x 10-3 kgm2 for

2 (JYY, Jzz), and 0.011 Am 2 for M'. The largest la is 0.13 deg for rw and 0.93.108 kgm

81 1000 0.2

-1000 -0.2

0.2 0 -1000-1000 ---- - 0 -0.2 -- 0 200 400 600 800 1000 0 200 400 600 800 1000 Time (sec) Time (sec) (a) Attitude estimation error (arcsec) (b) w- estimation error (deg/sec)

X 0.2 -2 r\1i -0.2 . 2-- -0.4

-0.2 2 I~ A -0.4-

N0.2 k-. ....

0 200 400 600 800 1000 0 200 400 600 800 1000 Time (sec) Time (sec) (c) - estimation error (10-6 kgm 2 ) (d) i estimation error (Am2 )

20 - 10

------.0 9:0 10-

0 -20 -

20 -10

10 S0-

-20' -10 0 200 400 600 800 1000 0 200 400 600 800 10 00 Time (sec) Time (sec) 2 (e) Jyy, J., estimation. error (10-3 kgm 2 ) (f) Jy, Jxz, Jy, estimation error (10-3 kgm ) Figure 4-6: Case 2 (sinusoidal disturbance torque) simulation results: most of errors are within 3o- bounds except ' and the errors of attitude parameter estimates are converging to zero. The large error of ' is due to the discrepancy between the disturbance torque models.

82 ------

2 -2 0 V 0 - fr - -2 -- -2 ------

-2 -2

0- -2- -2 0 200 400 600 800 1000 0 200 400 600 800 1000 Time (sec) Time (sec) (g) Irw,1 estimation error (deg) (h) 5r,,2 estimation error (deg)

10 40 IC I 20 -10 40

40 10 20 ~240 10 40 . 0 ------10 ~.2040 10 c- -- 0 40 -1 I ______-20 - - - - 0 200 400 600 800 1000 0 200 400 600 800 1000 Time (sec) Time (sec) (i) J,, estimation error (10-8 kgm2 ) (j) rw, estimation error (rpm) Figure 4-6: Case 2 (sinusoidal disturbance torque) simulation results (continued): most of errors are within 3o- bounds and the errors of attitude parameter estimates are converging to zero.

83 for Jr.w. Compared to Case 1, the la of attitude and body rate estimation is not much worse, but the lo- for the other parameter estimates are 2 to 10 times bigger than Case l's result. The effect of the degraded attitude parameter estimation is distinctly shown in the attitude and the rate estimation when the star tracker is not available for filter update. Comparing Fig. 4-6 (a) and (b) to Fig. 4-5 (a) and (b), the 3a- bounds

of Case 2 increase much faster than Case 1 during the attitude maneuver. However, the APKF is still stable enough with this approach to deal with the unmodeled disturbance torque.

4.8.3 Case 3: Partially Predictable Disturbance Torque

Though the aerodynamic torque is also a function of the altitude and the velocity, the attitude in local vertical, local horizontal (LVLH) frame is the dominant factor that determines the disturbance torque in near-circular LEO. This means the variation of the aerodynamic torque depends on the body rates in the LVLH frame. Though it is

difficult to represent this with an exact mathematical model, it is possible to adjust qd to mitigate the filter performance degradation caused by large qd in Case 2. In Case 3, a disturbance torque model given by Eq. (4.151) is used to simulate this property of the aerodynamic torque, and Fig. 4-7 shows the profile of the rd in Case 3.

-q2] (4.151) Td = Tmag I

1-q3

where Tmag = 1. 10-6 Nm.

On the APKF side, qd = diag(qd,x, qdy, qd,z) is tuned as follows:

qd,i= qdO + qd1 - Ws + qd2 I&-iW (4.152)

where i = x, y, z. qdo is for preventing the filter from closing as in Case 1, qdl is for

the linear variation of rd, and qd2 is for the variation coupled with the rotation in

other directions, which is not included in Eq. (4.151). qdO = (2.0. 10- 7 Nm/ V/P) 2 ,

84 1.2 x10

0.8 U ' E ., 0.6 -

0.4

0.2

0 0 200 400 600 800 1000 Time (sec) Figure 4-7: Simplified disturbance torque model for Case 3 (partially predictable disturbance torque)

qdI = (2.0 - 10-- Nm/V'I)2, and gd2 = 0.1 - qdI are used in this simulation. Fig. 4-8 shows the estimation errors and the 3a bounds for Case 3. The final 1 is (9.82, 8.10, 20.88) arcsec for attitude and (49.37, 11.76, 17.01) arcsec/sec for body rate. The la is (0.091, 0.095)x 10-1 kgm 2 for (Jyy, J2), and 0.0056 Am2 for M.

The largest la is 0.072 deg for 5,. and 0.71 - 10-8 kgm 2 for J,.v. Compared to Case 1, the la for the attitude parameter estimates are 20% to 40% bigger than Case l's result except M. Note that this result is just for a hypothetical disturbance torque model given by Eq. (4.151), not for the actual aerodynamic torques, so we cannot guarantee the APKF's performance in a real system. However, this result shows that it is possible to mitigate the effect of the unmodeled disturbance torque by tuning the process noise covariance qd even if we only have a partial and qualitative knowledge of it.

85 U.

1000 0.2 0 0 ~~ ~r~m -1000- -0.2 x 0 0i -1000 0.2

1000< -0.2 0.-

-1000 -0.2 0 200 400 600 800 1000 0 200 400 600 800 10 00 Time (sec) Time (sec) (a) Attitude estimation error (arcsec) (b) W estimation error (deg/sec)

x 0.2 0 -0.2 > 2[ -0.4

0.2

-04 ------0.4

N0. 0 -0.2-- -0.4 0 200 400 600 800 1000 0 200 400 600 800 10 10 Time (sac) Time (sec) 2 2 (c) Tdestimation error (10-6 kgm ) (d) i estimation error (Am )

20 10 ---- -1-

10 -20 -- - .___ _.._ 2 0 20 -10

100 0

0 200 400 600 800 1000 0 200 400 600 800 1000 Time (sec) Time (sec) 2 (e) J-, Jzz estimation error (10-3 kgm ) (f) Joy, Jx,, J., estimation error (10-3 kgm 2 ) Figure 4-8: Case 3 (partially predictable disturbance torque) simulation results

86 ji> ------0 -2 2

0 f - -2 - 2- N2[ 5 0- Q0 -2 -2 2 2 ------0 --.------2 -2 - 0 200 400 600 800 1000 200 400 600 800 1000 Time (sec) Time (sec)

(g) Ir,1 estimation error (deg) (h) I,, 2 estimation error (deg)

40 -

20740

10 ------10 -40 400 - 10F - 20 0.'O -10 S20-40 10 F 0 4 U 0 200 400 600 800 1000 0 200 400 600 800 1000 Time (sec) Time (sec) (i) J,, estimation error (10-8 kgm2 ) (j) w,, estimation error (rpm) Figure 4-8: Case 3 (partially predictable disturbance torque) simulation results (con- tinued)

87 88 Chapter 5

Orbit Determination

5.1 Background and Research Gap

Orbit determination (OD) is the method to determine the position and velocity of an orbiting object such as an Earth-orbiting satellite or Sun-orbiting asteroids. Histori- cally, astronomers and mathematicians were the first to work on orbit determination for celestial bodies [521. The modern understanding of OD started in the 1770s when Lexell computed the orbit of the comet now named after him [53]. Gauss solved the initial orbit determination (IOD) problem with a least squares (LS) estimation technique which he developed. OD for Earth orbiting satellites was developed in the 1950s after the launch of the first satellite Sputnik in 1957. The first OD techniques are mostly based on optical tracking or radio Doppler tracking systems that were orig- inally developed for missile tracking. Laser ranging techniques were used by NASA in 1964 and improved the ranging accuracy by a factor of a thousand, and is one of the most accurate OD methods for satellites that have retroreflectors. Early in the space age, OD was mainly performed on the ground using track- ing systems. The satellite did not measure its orbit on-board and had to rely on the ground tracking results and an onboard orbit propagator for the mission. The simplified general perturbations 4 model (SGP4) is one of the most popular orbit propagators that uses two-line elements (TLEs), a standard form for orbit elements.

In the ground tracking OD systems, the available sensor measurements are range,

89 azimuth angle, elevation angle, and the rates of each measurement, depending on the types of tracking. The OD methodologies have evolved in two ways: IOD using LS batch estimation and differential correction with the Kalman filter. Global Navigation Satellite Systems (GNSS) have enabled more autonomous OD. The Global Positioning System (GPS) was the first GNSS that became fully opera- tional in 1995 and has been playing a key role in the autonomous OD. Using the GPS satellites' positions that are precisely estimated on the ground and transmitted to the receivers or client satellites through the GPS signals, a satellite can estimate its position and time accurately in the order of 10s of meters (m) and 10s of nano-seconds

(ns). This accuracy is good enough for most of the commercial satellite missions, and even higher accuracy can be achieved by differential correction methods with or with- out full- or reduced-dynamic models [39, 54, 55, 56, 57, 58]. With current processor capabilities, it is now possible to perform real-time onboard differential correction. This section, Section 5.1, reviews the OD methods that are suitable for use with CubeSat platforms.

5.1.1 The SGP4 Model

Although GNSS is available even to CubeSats for use in OD (at least, in Low Earth Orbit), most CubeSats still use SGP4 and TLEs, which originate with the ground- tracking based IOD, as the primary or secondary onboard OD method. SGP4 is efficient in terms of calculation because SGP4 is an analytical orbit propagator which does not need numerical integration of dynamic models. This is a attractive property for satellite systems which have limited computing resources. Also, the North American Aerospace Defense Command (NORAD) updates the TLEs for almost all objects in low-Earth orbits (LEO) at www.space-track.org. The TLE update frequency is not guaranteed, but normally NORAD updates a LEO satellite's TLE two or three times a week [591. Though NORAD does not disclose how the NORAD TLEs are generated and the accuracies to the public, the methods to generate TLEs from state vectors (a set of positions and velocities) have been researched and the OD accuracy of the SGP4 model with the TLEs has been analyzed

90 by several researchers [60, 61, 62, 63, 64, 65]. According to the references, the position error of SGP4 is small, typically less than 1 km until +2 days from the epoch time and goes up to 4 km to 10 km in the worst case within one week. However, Riesing reported the error can be much larger, up to several tens of km for CubeSats sometimes 1101. This may be due to object identification or drag issues.

5.1.2 OD with Filtering

Since the focus of this thesis is on real-time onboard satellite tracking systems, Kalman filtering is a reasonable approach for the CubeSat target platform due to the Kalman filter's recursive structure. Several researchers have addressed this topic depending on the types of sensors and the details of dynamic models, but most of them are based on the extended Kalman filtering (EKF) formulation which is well-summarized and discussed by Vallado in Ref. [661. The dynamics of the orbital motion can be written as:

r= 3r + ap (5.1) where j' is the position vector of an Earth-centered inertial (ECI) frame, r is the magnitude of i?, and al is perturbation force, normally given as:

P nonspherical - adrag+ -- body + asR - d0 ther (5.2) where anonspherical models the non-spherical potential field of Earth, adrag models the aerodynamic drag, a3-body models the gravitational forces by the Sun and other planets, asR models the solar radiation pressure, and doti,, models other unknown disturbance forces. According to Ref. [1], the dominant disturbance is the J2 effect which is around 0.32 % of the primary gravity, and the others are much smaller than the J2 effect. Without d5, (5.1) becomes the simple two-body problem. The state vector that the EKF estimates is defined as

X = .(5.3)

91 If we neglect the perturbations, the partial derivative matrix (F in (3.29))of the state vector is simply given as:

0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 F2-body -- + 3r2 3 3 (5.4) 3 - " 0 0 0

3jtrir2 11 _2:L 3L r 5I" 0 0 0 rT5 0 r r r

Then, the nominal EKF structure can be applied with (5.4) along with any measure- ment model depending on the types of sensors. This is the simplest form of the OD EKF and easy to implement on any system. However, this formulation is rarely used in the traditional OD problem, even assuming negligible perturbation forces, since it does not consider process noise.

The Kalman filtering for OD is a non-trivial problem in practice because of the process noise. As the filter is updated with measurements over long time, the co- variance can become small, so the Kalman filter only believes its current state and stops updating it with new measurements. This behavior is referred to as the filter being closed. This might be okay if the system model is linear and we have perfect knowledge of the dynamics and noise, but this usually does not happen in the real world. The orbital dynamics are nonlinear even for the simplest two-body problem and it is almost impossible to have an exact model of the numerous disturbance forces and sensor models. To prevent the filter from becoming closed, accurate covariance of the process noise, Q in (3.30) is required, but it is normally hard to obtain since it is coupled with various parameters such as the orbits, shapes, and maneuvers of spacecraft. For this reason, EKF approaches are thought to be hard to tune and not practical to use for OD. According to Vallado, there arc two basic methods for ap- plying an EKF to OD, adaptive and non-adaptive. We do not discuss them in detail here, as that is outside the scope of this thesis, but they estimate the process noise Q more accurately. Using these techniques, Kalman filtering has been successfully

92 applied on spacecraft such as the GPS satellites and the TOPEX satellite [67, 66].

5.1.3 Relative Navigation using Angles-Only Measurement

In order to establish a lasercom link between two satellites, the most important thing is the pointing vector from one satellite to the other. Consider two satellites, called Satellite A (SatA) and Satellite B (SatB). SatA is the "master" satellite that de- termines the relative pointing vector to the target satellite, SatB, though the two satellites are identical and SatB also needs to determine the pointing vector to SatA at the same time. We assume each satellite has a GNSS receiver which can determine its position within few 10s of meters and a laser signal receiver that measures the bearing angles of SatB, or the pointing vector from SatA to SatB. It is true that if SatA measures the pointing vector continuously, SatA might be able to track SatB using feedback control without OD. However, in the initial acquisition phase, it may not be possible to obtain the beacon because of the narrow beam width of the beacon signal, though it is wider than the data signal beam, and a scan and search maneu- ver might be needed to find the beacon. OD is needed to ensure that initial beacon acquisition is timely and successful. OD is also important after beacon acquisition if control bandwidth is low and there is limited angles covered by the fine pointing device.

Among different types of OD methods, the ones that use relative measurements between two satellites are called relative navigation. Relative navigation is a popular field of research due to rendezvous missions and formation flying missions. Although there are many relative navigation approaches, relative navigation using angles-only measurements [68, 69, 70, 71] is most related to lasercom crosslinks because the beacon measurement is an angles-only measurement. Earlier work assumed angles- only measurement sensors such as an optical camera to obtain the line-of-sight (LOS) measurement, which is analogous to the beacon detector in this research. Since the relative navigation techniques were originally developed for the rendezvous problem, the relative dynamic equation of motion they use is the Clohesy-Wiltshire (CW)

93 equations or the Hill's equations given as

:= 3n 2 x+2ny

Qj = -

= -n2Z (5.5) where n = /pi/a3 is the orbital rotation rate of the target spacecraft. Relative navigation normally assumes a near circular orbit of a target spacecraft where n in Eq. (5.5) is nearly constant and the chaser is nearby the target within a few hundreds of meters. Relative navigation using angles-only measurement with one camera inherently suffers from the observability problem: without range information, the relative position cannot be determined uniquely. However, it was shown that the relative orbit can be estimated with a series of LOS measurements and the orbital dynamics [71].

5.1.4 Research Gap

Numerous OD techniques have been developed for applications such as initial orbit determination (IOD) to relative navigation. For IOD, most researchers focused on satellite tracking from the ground, and data processing is based on batch-estimation techniques to obtain meter or sub-meter accuracy; these are not suitable for real- time tracking. Relative navigation is based on recursive estimation techniques, but assumes near-circular orbits. Also, relative navigation is solely focused on OD and their attitude has been assumed to be known, but there are attitude uncertainties in real spacecraft systems. The attitude determination (AD) knowledge assumption may be valid for spacecraft with high performance sensors, but AD is not a trivial problem for CubeSats. The key challenge for a lasercom system is estimating the pointing vector from SatA to SatB, not estimating the exact relative position of SatB. We seek to develop a novel technique that estimates the pointing vector with attitude knowledge uncertainties in real-time to construct an optical inter-satellite link (ISL).

94 5.2 Onboard Satellite Tracking

The primary challenge in establishing a lasercom crosslink is estimating the pointing vector from SatA to SatB. The following discussion is based on the perspective of SatA although it can be applied in the same way to SatB. We assume each satellite that uses the SGP4 orbit propagator, an onboard GNSS receiver, and a beacon detector. The SGP4 propagator will be used for the initial estimate of SatB's position and SatA will try to capture SatB on the beacon detector from the estimate. The GNSS receiver will give SatA's position within a few tens of meters, typically 30 m for 3-

accuracy as well as time accurate to within 1 psec. If the GNSS receiver is used, SatA's position is not a significant problem for lasercom: assuming 200 km range

between the two satellites, 50 m position error corresponds to 0.25 mrad or 52 arcsec, which is a similar order of magnitude to the attitude control accuracy. The fine- pointing device detector's field of view (FOV) should be more than wide enough to cover this error. The challenge is to estimate SatB's position. Propagation with SGP4 would give 1 km to 10 km accuracy normally, but for CubeSats, it can be as large as tens of km [10]. As a sanity check, 10 km error corresponds to 50 mrad or 2.9 deg pointing error for 200 km range. Either the beacon detector should have a wide FOV to detect the signal, or the satellite has to perform a scanning maneuver to find SatB. In either case, estimating SatB's orbit is important for smooth tracking to overcome the measurement delay. It depends on hardware, but wide FOV cameras

usually have high resolution and need a non-negligible time to integrate beacon light, read out the pixels, process the image, and send the data to the onboard computer. Based on ST-16RT2 specification [72], a state of the art star tracker from Sinclair Interplanetary, which can be used as a beacon detector at visible wavelengths (FOV: 15 deg), has an update rate of 2 Hz which means a maximum 1 sec delay is expected.

Since the tracking should be performed onboard and in real-time, Kalman filtering is a suitable approach for this application. However, Kalman filtering for OD has been criticized since it can be easily closed in practical applications. To prevent this, intensive mathematical calculations are required to estimate the process noise

95 covariance matrix accurately f661. There are fundamental differences between the ordinary OD problem and this satellite tracking problem. The goal of the OD is to estimate a satellite's 3 dimensional position and velocity accurately with a number of measurement data sets. The previ- ous researchers were looking for meter or sub-meter level accuracy j73, 67, 74, 75]. For this application, the goal of the onboard satellite tracking is to estimate the pointing vector from SatA to SatB, which means the error in the line-of-sight (LOS) direction does not matter. Also, the required accuracy is more relaxed than the traditional OD problem; it depends on the FOV of the fine pointing detector; assuming a 0.2 deg FOV, only 200 meter accuracy in the cross LOS direction is required to put SatB within 1/3 of the FOV for 200 km range. This accuracy might be achieved with a brute-force approach to simply increase the process noise covariance in the Kalman filtering. This thesis will use this brute-force approach and will analyze the expected tracking accuracy as well as the filter convergence issues for two different scenarios, depending on availability of SatB's GNSS data at SatA.

Though SatA cannot directly receive SatB's navigation solution from its GNSS receiver before setting up the ISL, there are some ways to transfer the data from SatB to SatA. One way is using a ground station network or the constel- lation 17611 as a relay. If the two satellites are connected to ground stations or the Globalstar constellation at the same time, the GNSS data of SatB, which is just a few bytes in size, can be relayed to SatA through the network. For a ground station relay, the two satellites do not have to be connected to the same ground station. The data can be transferred over the network from one to the other, and it will just add more time delay. So, there are two scenarios for the initial acquisition - with and without a relay to transfer the GNSS navigation solution. In the second scenario with the GNSS data relay, the satellite tracking Kalman filter (STKF) needs to handle the time-delayed navigation data as well as the pointing vector measurement from the beacon detector. Of course, they both have their own time delays and it is unreasonable to expect that the measurement times would be

'Globalstar data rate: 9 to 700 Bytes/sec

96 synchronized. In the field of filtering theory, the arbitrarily time-delayed measure- ments are usually called out-of-sequence measurement (OOSM) and several methods to update a Kalman filter with OOSMs have been developed [77, 78, 79]. In this the- sis, a new filtering formulation called the Augmented Fixed-lag Smoother (AFLS) [80] is developed and used to update OOSMs in the STKF.

5.3 Satellite Tracking Kalman Filter

The end goal of the STKF is estimating the pointing vector from SatA to SatB, but it needs to estimate the satellite orbit of both satellites in order to work with the different types of measurements. The state vector that the STKF estimates is defined as: -T [ r V r- V (5.6) where TA and 'A are the position and the velocity of SatA, and rB and '5 are the position and the velocity of SatB, respectively.

5.3.1 Prediction

The system dynamics are given as

r = v

V= -3r+Tad (5.7) r where it = 398, 600.4415 km 3 /s- 2 is the standard gravitational parameter, and dd is the disturbance acceleration which models all perturbation forces acting on the space- craft, including J2 effect, aerodynamic drag, three-body effects, etc. The subscripts A and B are omitted since they share the same dynamic equations. The proposed STKF uses the brute-force approach that regards all disturbances as Gaussian random noise, so ad is given as

E[dd(t)] = 0

97 E[dd(t)dd(t - t')] = Qa(t)J(t - t') ( 5.8)

The value of Qa will be tuned using accurate dynamic models included in Systems Tool Kit (STK) software from Analytic Graphics, Inc., so that the filter does not diverge when it gives a reasonable result. Since the system dynamics are nonlinear, the EKF which is introduced in Sec. 3.2 should be implemented. In this STKF, F, G, and W' in Eq. (3.21) and Eq. (3.29) are given as

F - body,A 0 F= 2 0 F2-body,B_ 0 0 I 0 G= 0 0 0 I

ad,A (5.9) ad,B

where F2-bo dy,A and F2-body,B are F2-body of Eq. (5.4) for SatA and SatB. With this F, G, and ', the STKF can propagate its covariance matrix using Eq. (3.30) and Eq. (3.31).

5.3.2 Correction with GNSS Data

This thesis considers two types of measurements: the GNSS navigation solution and the beacon measurement. The GNSS navigation solution provides a satellite position and velocity, and the measurement ' can be simply modeled as:

r Yg + ng (5.10) V L J 98 where n'9 is the measurement noise, assumed to be Gaussian white noise:

E[nig] = 0

E[ ig7] = E= diag(U-1Uo1,T-, -v o, -v (5.11)

The partial derivative matrix, H and M in Eq. (3.32), for the GNSS measurement is given as:

Hg ,A = Mg,A[I I 0 0]

Hg,B = Mg,B = 10 0 i I] (5.12)

for the SatA and SatB GNSS navigation solutions, respectively.

Though the STKF can be updated with a GNSS measurement and the equations given above, the GNSS measurement of SatB transfered by a ground station network is not suitable for a STKF using a nominal EKF formulation due to the time delay it might have. The Kalman filter or the EKF estimates the state at the current time with a measurement at the same time, so a special filtering formulation should be applied to update the current estimates with a past measurement. This special filtering method will be covered in Sec. 5.4.

5.3.3 Correction with Beacon Measurement

The beacon measurement is a normalized directional vector from SatA to SatB in body frame. It is written as:

1 Yb = - TA) +AQ)(Bn' b (5.13) P where

P = |B - A|, (5.14)

99 q is the attitude quaternion, and n' is the measurement noise given as:

E [n-b] = 0 E[iad6 ] = 0 ~[ n-lbill = b= diag( o,1ob ) (5.15)

Note that g is a unitless directional ve ctor, similar to (4.39), so the units of c-b are radians. The measurement equation for the error states given as Eq. (3.22) can be derived as:

Yb - yb = A(q)HbAo A + A(q)Hb,B6FB + 2[Ybx13f+ '~b (5.16) where 6q'is the vector part of the error quaternion as Eq. (4.77) from the APKF and

2 1 + (rBl-Al) (rBI-rAl)(rB2 -rA2) (rB1-rA1)(rB3-A3) 3 P P P P3 2 = ( rB^-rA1)(rB2-rA2) (rB2 -rA2) (rB2 -rA2) (rB3-rA3) Hb,A 3 P P + P 3 P3 2 (rB1-rA1)(rB3-rA3) (rB2 -rA2) (rB3- rA3) (rB3-rA3 ) . P3 P3 P P3 J Hb,B = -Hb,A . (5.17)

Note that the STKF and the APKF will be correlated because of A(q) in Eq. (5.13) or Jq'in Eq. (5.16). To be rigorous, the APKF and the STKF should be merged into one filtering formulation since there will be a correlation between the two once the STKF is updated with the beacon measurement. However, it is not desirable to combine two filters because the state dimension will be large and computationally challenging. Also, the STKF uses less rigorous approaches than the APKF in terms of the process noise, so the STKF might degrade the APKF. Therefore, the STKF handles 6q as "measurement noise" and uses the corresponding portion of P of the

APKF as the covariance matrix of the "measurement noise" Rk in Eq. (3.33).

100 5.4 Update with Time-Delayed Measurements

The contents of this section are adapted and reprinted from "Interpolation Method for

Update with Out-of-Sequence Measurements: The Augmented Fixed-Lag Smoother,"

Journal of Guidance, Control, and Dynamics by Hyosang Yoon, David Sternberg, and Kerri Cahoy [80] with permission of the American Institute of Aeronautics and

Astronautics, Inc.

Fig. 5-1 shows a time-delayed measurement in the Kalman filter described in Chap- ter 3. The Kalman filter estimates the states at ta, tb, and t, with the measurements

Ya, Yb, and yc. Then, a time-delayed measurement, y, measured at tr, is delivered at t,. This section deals with the time-delayed measurement y, to obtain the optimal current state estimate - + conditioned by all the measurements available, Ya, Yb, Yc, and yr.

yr

ta t t& tc

Figure 5-1: Time-delayed measurement in Kalman filtering

To update the Kalman filter with the time-delayed sensor output, both the state and covariance estimate at the measurement time are needed. If the time delay can be synchronized with the Kalman filter update history, a smoothing algorithm can be used with only small changes to the measurement update equation, since the state es- timate at the measurement time is available immediately. If not, to ensure optimality, the system must generate estimates that are conditioned with all of the measurements.

There have been several approaches to managing this problem. A suboptimal filtering method is described in [81] and [82], where Blackman et al. describes a process for simplified covariances associated with state retrodiction, and Hilton et al. describes a constrained minimum mean square error (MMSE) negative time update technique

101 for highly varying states with limited data rates. They are suboptimal since they only partially take into account the process noise within the arbitrary delayed time. Bar-Shalom derived an exact solution when out-of-sequence measurements (OOSM) are within the last sampling interval [77]. Though Bar-Shalom briefly mentioned the generalization of his method at the end of [77], it was not derived in the paper. Be- yond the suboptimal solutions and Bar-Shalom's optimal solution for special cases, several general solutions that guarantee optimality have been proposed. Zhang et al. proposed a method to save the innovation history for the state estimate and the covariance and apply them to generate the state estimate and the covariance node at the time when OOSMs arrive [78]. For convenience, this section will use the term "node" to represent the paired state estimate and covariance at given time. Zhang and Bar-Shalom summarized the existing algorithms and proposed three methods for optimal update with OOSMs based on the complete in-sequence information (CISI) approach [79]. The concept of CISI is basically similar to [78] as it needs sequential updates from the OOSM time to the current time to obtain the OOSM node.

In this thesis, a novel method called the augmented fixed-lag smoother (AFLS) is proposed to handle OOSM in Kalman filtering. The AFLS is based on the Fixed- Lag Smoother (FLS) formulation which has been shown to be optimal [83J. The AFLS generates the OOSM node from the two adjacent nodes, plug the generated estimations into the state vector and the covariance matrix, and update the filter with OOSM using the FLS update equation. This approach gives a generalized solution which can handle any number of OOSMs. The AFLS is also extended to non-linear systems, called the extended AFLS (EAFLS), for various applications.

5.4.1 Fixed Lag Smoother

This section briefly describes the concept of the FLS, which is also described in more detail in 119], to introduce the base structure of the AFLS that will be derived in the following sections. The FLS is based on obtaining a new state estimate at time k-N, where the time index k iterates forward in time, but the delay time for measurement

102 inclusion, N, is a constant. Let us consider an augmented system as the following:

Xk Fk_1 0 ... 0 Xk1 I

Xk-1 I 0 ... 0 Xk-2 0 + Wk (5.18)

xk-N-1 0 ''' I 0 XkN-2 0

Xk

Yk = Hk 0 -- 01 .k:- + Vk (5.19) Xk-1

Xk-N--1

For convenience, we define Xk,m as the state Xk-m propagated with an identity

transition matrix and zero process noise to time k. With this definition, the aug-

mented system can be reformulated as follows:

Xk = AklXk_+ 1 k-1

yA = CkXk + vk (5.20)

where

- T Xk - [Xk X ... Xk,N+l]

Fk-1 0 ... 0 I 0 ... 0 Ak1 =

0 ... 1 J

Ck = [Hk 0 ... 0 (5.21) and

E(WkWr) = diag(Qk k-j, 0, - , 0)

103 E(vkvf) = Rk 5k-j E(WvT) = 0 (5.22)

Then, it is possible to apply the discrete Kalman filter equations (Eq. (3.11)-Eq. (3.14)) to this augmented system to obtain an optimal estimate for (Xk, - - - , Xk-N-1) condi- tioned with all the measurements up to yA. The FLS is designed for estimating the past states within fixed lag time steps with all the available measurements, not for estimating the current state. However, it is possible to take advantage of the optimal estimates of the past states and the covariances to update the current state, which is described in Section 5.4.2.

5.4.2 In-Sequence Processing

The easiest and simplest method to incorporate an OOSM is through the in-sequence processing (ISP) of all measurements. First, all the state estimate, covariance, and measurement histories from the ordinary Kalman filter described in Sec. 3.1 up to the current time can be stored in memory. When an OOSM arrives, the algorithm can go back to the time just before the OOSM, discard all the state estimates and covariance histories after the time of the OOSM, and process the Kalman filter through to the current state. Though this method guarantees the optimal estimation of the current state and covariance conditioned with all the measurements received, this approach is a computationally inefficient process, since these OOSM measurements can occur frequently and result in excessive delays in providing updated state estimates.

5.4.3 FLS with Synchronized Time-Delayed Measurement

The FLS described in 5.4.1 and in [19] assumes measurement without time delay,

Yk. However, the FLS can be easily modified to process a synchronized time-delayed measurement, or in-sequence measurement (ISM), where the time delay is known and matches with the filter updates [83]. If a measurement is delivered at time k but was measured at time k - I where I < N, then the output equation (5.20) and (5.21) may

104 be modified as the following:

Yk,l = Ck,lXk + Vkj,(

Ck,l = [0 ... 0 Hkl_ 0 ... 0] 2 where E(vk,IVTl) = Rk-I. Then, the same filtering equation of the Kalman filter can be applied. The update equation is derived as

1 4 =-k + P -_,kHk1(HkP-I,kHjik + Rk- (ykI - Hk-_) (5.24)

where Pj = E[(x -1-j)(xj - j)T], the covariance between the two state estimates at time i and j. This filtering method gives the optimal estimate regardless of whether

Xk_ has been updated prior to the time-delayed measurement or not.

5.4.4 The Augmented Fixed-Lag Smoother (AFLS)

Unlike the ISM, the measurement time of an OOSM is assumed not to be synchronized with the previous filter updates, so the update method in 5.4.3 cannot be used directly.

However, if it is possible to generate the state and covariance of the node at the OOSM time, we can apply (5.24) to update the state and covariance. The following steps summarize how the augmented fixed-lag smoother (AFLS) may be updated with any

OOSM with an newly generated OOSM node. The OOSM node generation of the AFLS is derived in the following section, 5.4.5.

1. Run the general FLS Kalman filter

2. If a time-delayed measurement is delivered,

(a) If the measurement time is one of the FLS nodes, update the FLS using (5.24)

(b) If the measurement time is not in the FLS nodes,

i. Generate a node using (5.40), (5.41), and (5.42)

105 ii. Plug the generated state estimate and the covariance into the FLS state vector and covariance matrix (Fig. 5-2)

iii. Update the FLS using (5.24)

P P _TCP~ Is Ps, Pct, xT => - t PaP P=> W_ PrC P, P,, Po SPa P,1 P PM

X", PI .P,,,IP,,.P

Figure 5-2: Plug-in the generated node

Fig. 5-2 describes the "plug-in" process of the generated node into the FLS nodes where the subscript r means the OOSM time between a and b. Since the number of the state of estimates increased, the dimension of Ak_1 in (5.21) should be increased with the dimension of the new covariance. Because of the AFLS' structure, the filtering process remains exactly the same whether there are single or multiple OOSMs and regardless of whether the measure- ments arrive in sequential order. For implementation with real systems, one must consider the number of nodes that should be kept. The basic rule is to keep all nodes up to the expected maximum delay time, and not to keep the measurement histories. Keeping up-to-date estimates for all nodes is beneficial in reducing the response time of the estimator. This will be discussed in Section 5.4.6 in detail.

5.4.5 OOSM Node Generation

The OOSM node generation of the AFLS expands upon the FLS. The basic idea is the following: the time of the OOSM occurs between two adjacent nodes where the filter update is performed so that the state of the OOSM can be regarded as an additional node between the two adjacent nodes. This new OOSM node is created without a corresponding filter update. This process may be shown by an inductive proof, with the base case being simply the FLS algorithm, since the new method expands upon the initialization provided by the FLS.

106 The following represents the inductive step for a particular initial measurement step s with subsequent measurement steps s + 2 and s + 3, and a step s + 1 for which the state is to be estimated with time delayed information. For this analy- sis, the letters a, b, c, d represent s, (s + 1), (s + 2), (s + 3), respectively. Also, ijk represents the conditioned state estimate of Node i as X^-k = E[xily1 -yk_1] and

Xi, = E[xily 1 ... yk] where yk is a measurement at tk, and P represents the condi- tioned covariance between xi and xj as PJ,, = E[(xi - Li)(xj - sy)Tfy 1 - Yk-1] and

P, = E[(xi - fi)(xy - sy)Tjy - Yk], which means _= and P _= Z-1 1 . ki,k-1 i: i,k iJ'k-1 ij,k essentially. The inductive step follows the initial base case of the initial Kalman smoother step, which has already been shown to generate state estimates optimally

[84]. We assume no measurement at step b, which means X is a non-updated node, and verify that the non-updated node (4k, P,, P ) can be generated by a linear combination of the two adjacent nodes. In the following equations, Fk, Qk, Rk, and

Wk follow the same definition as in Eq. (3.1) and Eq. (3.2) where Lk = I.

Time Step a-*b:

Xb Fa 0 -' a Feaa, a,a X 1F 0] [zk 1=[~ (5.25)

P b Pa,b Fa Pa, a F! + Qa Fa P a I (5.26) pabb Paa,i L aa,a P a

Since there is no update at b, we can move on to the next time step.

Time Step b-*c: Similar to (5.25) and (5.26), we can derive the posteriori estimates at c using Eqns. (3.13)- (3.14) as

FbFa4,a+ FbFapaLaFiFm + FbQaFm + Qbm, (5.27)

Xb-c = Fa,a + FaPa,aF Fb mc + QaFrme (5.28)

= a + PLaFT FrmT (5.29)

107 where mAHe'(HcP-,cPHc + Rc) 1 (ye - Hejj) (5.30)

Combining (5.27) and (5.29),

Me = Q ( ic - FbFasa,c) (5.31)

where Qca FbQaFb' + Qb from Xc = FbFaxa + Wca, Wca ~ N(0, Qca) From (5.28), (5.29), and (5.31),

Xbc =bc A a,c + B;c,c (5.32) where

A =^ (I - BFb)Fa, B AQaFbTQ (5.33)

The covariance matrix can be calculated as follows (see Appendix B.1 and B.2):

Pbb,c = A Pa+a,c AT + BPZC BT + APa+ccBT + BPc+a,cAT + (I - BFb )Qa, (5.34)

bj,c = APac + B Pcjc (5.35) for all j, j # b

Time Step c- *d: Similar to Step b-+c, we can derive the following:

Xcd =CC + PZcnd

Xbd = 2c + FaPaci+ QaF Qca-I(PZ,c - FFaPaZ,cfnd (5.36)

ad ac + Pac where

T n =Fi Hi(Hd P-, H + Rd) 1 (Yd - Hd d) (5.37)

108 Try the same form of (5.32) with (5.36) as follows:

1 Fad + QaFbTQe- (2 - FbFaad) 1 - Fasc + QaF6T Q-a + - FbFakc) + FaPac,cnd+ QaF Q , - FbFaP,c)nd

= i + FaPaccna+ Qa(FQc(Pc,c- FbFaP,c)nd

-Xb,d

(5.38)

Similar to (5.34)-(5.35), the covariance is given as the following (see Appendix B.3):

P A P = APL A T + BP+, dBT + AP,BT + BP, d AT + (I - BF)Qa

Pj d = APaid + BPe d (5.39) for all j, j # b where A and B are given by (5.33). Since d = c + 1, it is shown by mathematical induction that we can generate the non-updated node point b with the linear combination of two adjacent nodes, a and c for the state estimation and covariance as follows:

2 = Asa + Bs (5.40)

Pbob,k APa+a,kAT + BPe kBT + APa ,BT + BPc+a,kAT + (I - BF)Qa (5.41) P = APai,k + BP+ bj,k cj,k (5.42) for all j, j Z b and for k = c, c + 1, c + 2,--, where A and B are given by (5.33).

Note that there are no assumptions made about b except that b occurs after the first filter update that generates updated node a. Therefore, this induction shows that the proposed method is the general solution.

5.4.6 Comparison to Existing Algorithms

The existing methods for optimal updating with OOSM are well summarized by

Zhang and Bar-Shalom [79]. Among the several algorithms introduced in Ref. [79],

109 the complete in-sequence information based fixed-interval smoothing (CISI-FPS) was claimed as the most efficient one among the algorithms that guarantee the optimal es- timation result and was verified quantitatively by numerical simulations. The concept of CISI-FPS is that if an OOSM arrives, CISI-FPS goes back to the last step before the OOSM and updates the state estimation and covariance all the way to the current step. Another comparable algorithm was proposed as ALG-I in Ref. [781. In this ref- erence, ALG-I was compared to ALG-S which is proposed in Ref. [831 and capable of handling the ISM only. Zhang noted that the FLS approach is conceptually clearer, simpler, and more elegant, but criticized the required memory and the computation since the FLS algorithm needs to increase the sampling rate to generate and save the possible nodes for expected OOSM. However, with (5.40)-(5.41), the AFLS is able to generate the node for OOSM when it arrives, so the sampling rate can remain the same as the others. It is true that the FLS or the AFLS requires more throughput to update all the nodes in the FLS compared to the sequential-update-based algorithms, but the AFLS can be more efficient in terms of response time because it does not need to renew all the stored nodes to update the current state with it. Once the OOSM node is generated, the AFLS can give the real-time estimation at the current time first and update the other nodes later when the other time-critical processes are complete. Since most of real-time estimation is a part of a control loop, this can be effective to minimize the response delay in the overall control system.

The required memory is another issue for applications. the AFLS needs more memory than ALG-I or CISI-FPS since the AFLS requires sp+ s2 (p x p) while ALG-I needs (s - l)p + 2 s(p x p) where p is the dimension of the state xk and s is the number of the maximum delay [781. This is a typical trade-off problem between processing speed and memory usage, so it is hard to conclude which one is globally the most efficient.

Though Bar-Shalom did not explicitly derive his approach with FLS in Ref. [77], it can be directly used with the FLS in the same manner as the AFLS. Combined with the FLS, Bar-Shalom's algorithm (BSA) guarantees optimal state estimation as does the AFLS.

110 The difference between BSA and the AFLS is how to generate the OOSM node. BSA explicitly estimates the process noise and applies it when calculating the OOSM node, while the AFLS interpolates the two adjacent nodes. Despite the conceptual difference, either BSA with the FLS or the AFLS would require similar throughput for updates. In terms of the required memory, the AFLS is slightly more efficient than BSA since BSA needs to store the previous measurements to calculate the process noise while the AFLS does not.

5.4.7 Extension to Non-linear Systems

Since most dynamic systems in the aerospace field are non-linear, the AFLS needs to be extended to non-linear systems for actual applications. Consider a discrete-time non-linear system whose system and measurement equations are given as follows:

Xk+1 = fk(Xk, Wk)

Yk = hk(xkvk)

Wk - N(O,Qk)

Vk ~ N(0, Rk) (5.43)

By taking the same approach as the extended Kalman filter, the covariance of a node can be generated using (5.41)-(5.42) for this system with slight modification:

Pbb,k = AP,!,kA T + BP kB + APek BT + BPa,kAT + (I - BF)Qa (5.44)

bk = AP + BP, (5.45) where

A = (I - BF)Fa, B = QiaFTQ- (5.46)

Fk = , Lk = pz|+ (5.47) iDx i+ kw Xk

111 Qia = LaQaLa (5.48) Qica = FbLaQaLaFb + LbQbLb

For generating the state estimate, equation (5.40) is also useful for solving a non-

linear system. Equation (5.40) can be rewritten as:

b = Faak + QlaFbIQT-;Fb(FC-Uzcik - Fa a+ (5.49) = Xb|!+ + Q 1aFj'Qi-Fb( |+ - b1:j+ ) a,k + l b lack Xak

In a non-linear system given as (5.43), 4.b + and bp can be calculated: e'k a,k

|,k = faGsik, 0) (5.50)

c,k 26 - -'ke(Ck10) 0

where f,-1(... ) denotes the backward propagation from k + 1 to k:

1 Xk = f- (xk+1,wk) Xk+1 = fk(xk,wk) X (5.51)

To summarize, the state estimate and covariance of a node can be generated using the two adjacent nodes:

1 Xbk = fa(ak, 0) + BF6(fj- (,k ,0) - fa(+k ,0))

= T T Pbbk APak AT + BPZkB + APB + BPakA + (I - BF)Qa

'bj,k =AP+k+BP for j4 b (5.52)

where A and B are given by (5.46)-(5.48). We will call this the extended AFLS (EAFLS) for the rest of this thesis.

5.5 STKF Simulation Study

Since the GNSS data from SatB is a OOSM, the STKF has been implemented us- ing Eqns. (5.7) - (5.17) with the EAFLS structure introduced in Section 5.4.4 and

112 Section 5.4.7. This section will present the simulation results of the STKF for two

different cases. The first simulation assumes that SatA has the GNSS data of SatA

and the beacon measurements (Case 1), and the second simulation assumes that SatA

has the GNSS data of SatA, the beacon measurements, and the GNSS data of SatB which are OOSMs (Case 2). The comparison of the results of Case 1 to Case 2 will show the tracking performance difference depending on SatB's GNSS data, and it will be used to decide whether the relay of SatB's GNSS data is necessary.

5.5.1 Simulation Description

SatA and SatB are assumed to be on the same orbit as the International Space

Station (ISS), 400 km altitude and 51.65 deg inclination, with 2300 km spacing. The position, velocity and time (PVT) of SatA and SatB were propagated by the High-

Precision Orbit Propagator (HPOP) in STK and they are the "true" orbit data in this simulation study. The initial state vectors of SatA and SatB in the J2000 frame are:

rA = [5885.025, 1083.325, 3203.013] kin

VA = [1.547068,5.774748,-4.791070] km/sec

rB = [6005.858, 2721.229, 1610.554] km

VB = [-0.749660, 5.039841, -5.723465] km/sec (5.53) at '19 Dec 2016 03:24:57.4339', and the HPOP propagated the orbits numerically for the simulation duration. Fig. 5-3 shows the ground tracks of SatA and SatB.

Regarding the HPOP, it uses a variety of high-fidelity models including Joint Grav- ity Model (JGM) 2, which is a highly precise model of the Earth's oblateness, lunar and solar gravitational effects based on U.S. Naval Observatory data, atmospheric drag effect, and solar radiation pressure. Of course, it will be not exactly same as real disturbances acting on a spacecraft. However, if the order of magnitude and the characteristics of the perturbations are valid, it is sufficient to verify the convergence

113 I

Figure 5-3: Ground trajectories of SatA and SatB (ISS orbits with 2300 km spacing); screen-shot from Systems Tool Kit (STK) by Analytical Graphics, Inc.

of the STKF approach.

The beacon measurement accuracy is assumed to be 60 arcsec (l-) and the GNSS navigation solution accuracy is assumed to be 30 m (1-) for position and 1 m/sec

(lou) for velocity. The time delay of SatB's GNSS data is assumed to be randomly distributed between 2 and 3 seconds. The STKF is updated at 1 Hz. The initial guess of the covariance is set to be (4 km)2 for positions and (0.1 km/sec) 2 for velocities.

As described in Section 5.3.1, the process noise covariance Qa in Eq. (5.8) has been tuned as Qa = diag(0.1 2 , 0.12, 0.12) m 2 / sec3 using the "true" orbit from STK. The noise acceleration of 0.12 m 2 / sec 3 means that the spacecraft's velocity will vary by

0.1 m/sec over 1 sec and it is not an unreasonable number considering the magnitude of the disturbance forces, described in Ref. [1]. At 400 km altitude, the most dominant disturbing acceleration is the J2 effect, which is around 10-25 = 0.32 % of the primary

2 gravity. Assuming the primary gravity is 9.8 m/ sec , the J2 acceleration is around 0.031 m/sec2 , which means the velocity will vary 0.031 m/sec over 1 sec. In this case, the process noise is set to be three times greater than the disturbance, and it is a reasonable number considering the difference between the random noise and the quasi-constant J2 acceleration.

114 5.5.2 Pointing Vector in Body Frame

While the STKF determines the positions and velocities of SatA and SatB, the end goal of the STKF is to estimate the pointing vector from SatA to SatB in SatA's body frame. Therefore, the error and covariance of the pointing vector should be extracted and analyzed from x and P of the STKF. The pointing vector in body frame is given as 1 Pbody = A( )(rB - TA) (5.54) PM where

p = |B - TAI (5.55) which is exactly same as (5.13) and (5.14). Therefore, the error body pointing vector should be given as

OPbody = A()Hb,A6FA + A(t])Hb,B6qB 2[bodyx]cq' (5.56)

where H,A and Hb,B are given as Eq. (5.17).

To analyze the pointing accuracy, we need to perform another linear transfor- mation to SfAody. Since Abody is a unit vector, the angular errors only exist in the directions that are perpendicular to Abody. Let us define a direction cosine matrix

(DCM) from the body frame to Z frame whose z axis is Abedy, T2z that satisfies

0

Tb2zbody = 0 (5.57)

Note that Tb2Z is riot unique and can be any DCM that satisfies Eq. (5.57). The error of Abody in Z frame becomes

S= Tb2zA() (Hb,A6A + Hb,B6 i'B) + 2Tb2z[$bodyx]~ (5.58)

5 and only the first and the second components of J z contain the pointing error infor-

115 mation. The covariance of 6 ' is given as:

Pgz = E [6 j5

= Ti2z(Hb,APAA HA + Hb,BPBBHbB + Hb,APABH B + H,BPBAHA)Tz

+ 4 Tb2z [Pbody X ] Pq Pbody X ]T (5.59)

where

Ti2z = Tb 2zA(Q)

PAA = E[6 AJ6i] = P1.,1:3

N9,7:9 PBB = E[6 B B T

PAB = E[6iArJ = PL3,7:9

PB =E rB = N9,1:3 = AB

Pqq =E [Jq*] = P1 1:3 (5.60)

where PS is the covariance matrix from the STKF, pA is the covariance matrix from the APKF, assuming no correlation between the STKF and the APKF as mentioned in Sec. 5.3.3. To analyze the simulation results, the pointing vector estimation errors are calculated from Eq. (5.58) and the corresponding covariances are from Eq. (5.59)

5.5.3 STKF Simulation Results

Case 1: Without SatB GNSS Data

Fig. 5-4 shows the STKF simulation results, the position and velocity estimation results of SatA and SatB. The solid lines are the estimation errors and the dashed lines are the 3o, bounds estimated from the covariance matrix of the STKF. Note that most of the errors are within 3a bounds, which represents that the STKF is working properly although SatB's orbit estimates are not converging. The final 1o for

the three axes is 9.22 m for rA, 0.5252 m/sec for 'A, 3264.2 m for r'B, and 4.52 m/sec

for VB. Since SatB's GNSS data is not available in Case 1, the STKF cannot have

116 5- 20 H-_ 0 NI 5 ' ...... -20 L

5 20 -5 - 0 0 -20

-5

0. -20 ~ - 0 200 400 600 800 1000 1200 0 200 400 600 800 1000 1200 Time (sec) Time (sec) (a) 9 A estimation error (m) (b) A estimation error (m/sec)

x 104 100 0~ -1 -100

2 100 x 10 - +- +------S0 0 '------...... -1 - -10 0------...--

1 x104 100 *-"+ 0 --- 0

0 200 400 600 800 1000 1200 0 200 400 600 800 1000 1200 Time (sec) Time (sec) (c) rB estimation error (m) (d) VB estimation error (m/sec) Figure 5-4: Case 1 (without SatB GNSS) simulation results

complete observability for SatB's orbit. This does not mean that the STKF does not help with the estimation of a pointing vector from SatA to SatB. Fig. 5-5 shows the estimation error and the t3a bounds of the pointing vector calculated from (5.58) and (5.59). The final la of the pointing vector estimates is 23.0 arcsec for the two axes in total. It seems unreasonably small considering the covariance of SatB's position. However, the pointing vector information as updated from the beacon measurements is still contained in the STKF results, especially in the covariance between SatA and

SatB, PAB and PBA. These terms in Eq. (5.59) make the diagonal terms of Pg small and result in an estimation error that is better than the beacon measurements.

Case 2: With SatB GNSS Data

Fig. 5-6 shows the STKF simulation results with SatB's GNSS data and estimation errors with 3u bounds. The la for the three axes total is 9.21 m for 1'A, 0.5252

117 100- CD 0 -100

-100 0 200 400 600 800 1000 1200 Time (sec) Figure 5-5: Case 1 (without SatB GNSS) pointing vector estimation result (arcsec) m/sec for ' , 9.21 m for r'B, and 0.5252 m/sec for 'B. The OD performance for SatA is very similar to Case 1, and SatB's OD results become similar to SatA's. Though SatB's GNSS measurement has time-delay of a few seconds, it does not affect the OD performance much because of the comparatively small process noise. Using the first-order approximation, the covariance of the position driven by a continuous-time white noise acceleration is given by:

1 (5.61) PPOS = 3-qAt3 where Ppo, is in m 2 , q, is in m 2/sec 3, and At is in sec. Considering that the process noise covariance Qa is 0.12 m2 /sec 3 in Section 5.5.1, it takes 30 seconds for the process noise becomes as large as the GNSS measurement noise, which is still small enough. In this sense, the time delay of 2 to 3 sec does not affect the overall STKF performance if the time delay is considered properly. Fig. 5-7 shows the estimation error and the 3a bounds of the pointing vector in Case 2. The final laT of the pointing vector estimates for the two axes in total is 19.8 arcsec. Considering the OD accuracy shown in Fig. 5-6, 19.8 arcsec seems large since (9.21 + 9.21)/2300000 = 8ptrad = 1.65arcsec. However, this pointing vector error is in the body frame, and the attitude of the body frame is also a stochastic variable estimated by the APKF. The uncertainty of the attitude estimates, Pqq in Eq. (5.59), keeps the covariance large. Compared to the results of Case 1, SatB's GNSS measurements help the estimation a little, but not a lot. It does not mean that SatB's GNSS data is unnecessary for this application.

118 5- 20 - -- - - 0 -20 -5 0 5-

--- -20 - ---'.----.----

02 -20 -5 --- .------0 200 400 600 800 1000 1200 0 200 400 600 800 1000 1200 Time (sec) Time (sec) 20 ------..-..-...... 0 (a) rA estimation error (m) (b) 'A estimation error (m/sec)

5 .2020 0 ------~-~------~~---- 20- >02 -50 .. .

5 20-...... 2 0 5 -20

0 200 400 600 800 1000 1200 0 200 400 600 800 1000 1200 Time (sec) Time (sec) (c) r' estimation error (in) (d) -B estimation error (m/sec) Figure 5-6: Case 2 (with SatB GNSS) simulation results

119 Case 1 basically assumes use of the beacon measurements, but it is not trivial to see the beacon beam from SatA without knowledge of precise position of SatB which would be difficult to obtain without SatB's GNSS data.

100- -100 (1) 0 Y- -

-100 0 200 400 600 800 1000 1200 Time (sec) Figure 5-7: Case 2 (with SatB GNSS) pointing vector estimation result (arcsec)

120 Chapter 6

Attitude Control

With the AD results from the APKF (Chapter 4) and the OD results from the STKF (Chapter 5), the attitude controller generates the actuator commands which are the torque commands for the reaction wheels as shown in Fig. 1-1. This chapter will cover a series of the attitude control (AC) algorithms that will make SatA point and track SatB, and will assess the pointing performance that a CubeSat can achieve with body pointing only.

6.1 Attitude Command Generation

The AC shall generate attitude commands to point SatA's lasercom Tx beam to SatB. Since the laser beam is a directional vector, an attitude that satisfies the pointing is not unique. This is because the degree of freedom (DOF) of a directional vector is two while the DOF of an attitude is three. Physically speaking, SatA can rotate on the laser beam while it maintains the pointing. In this thesis, Orbit Frame is defined and used as the reference frame for the pointing and tracking maneuver to give the one additional DOE. The x axis is the velocity direction of SatA and the y axis is the orbit normal direction:

VA 0( VA

121 -A AX VA Yo = IrA XVAI 61 io = so X y0 (6.1)

and the direction cosine matrix (DCM) from the J2000 frame to the Orbit Frame

Tj2k is given as:

[T] (6.2) O7j2k 0

The desired attitude is calculated as the minimum rotation to align the laser beam

vector lb to SatB from Orbit Frame. The rotation quaternion from Orbit Frame Pq- is calculated as:

=~ TB -TA

/1 - q4 = 1+ V2I (b -Ap

P =0 2bX (6.3) q4

and the attitude command in J2000 frame is calculated as:

qc = Pqo qj2k (6.4)

where "qj2k is the attitude quaternion corresponding to Tj2k. Note that rA and T' can be obtained from the STKF.

6.2 Torque Command in Body Frame

A quaternion feedback control law with proportional-derivative (PD) gain is used in this study. Wie et al. proved that the quaternion feedback is stable using the Lyapunov stability theorem in the references [85, 461 and it has been widely used

122 in the field because of its stability and simplicity. The quaternion feedback PD control becomes an approximation of a second order PD control for small angles where sin 2 ~ 2 holds, so the response can be easily predicted analytically [86]. The control law to calculate the body torque command is given as:

Tc = Kqie + De (6.5)

where

vecq

We =

2wnJ

2w,(J. (6.6)

( is the damping ratio and w, is the natural frequency of the response, which are

the design parameters. ( = 1 is chosen for a critically damped system. The natural

frequency w, is set by a settling time t, as:

8 Wn - (6.7) ts

as proposed in Ref. [46]. The settling time t, is the tuning parameter in this study

and it will be determined by numerical simulations that are covered in Section 6.4.3.

6.3 Reaction Wheel Torque Command

The control torque is calculated by Eq. (6.5) and the reaction wheel assembly (RWA) of a CubeSat should provide the torque. The RWA model is given in Eqns. (4.53)- (4.56), or simply

Trw = CrwtErw (6.8)

123 The capital letter Trw denotes the combined RW torque in the body frame which is a

3 by 1 vector, and t1 w is the vector consisting of each RW's torques which is a n by 1 vector where n is the number of the RWs. As the RWA needs to provide the control torque, Trw = T, as

Tc = Crwtrw. (6.9)

Since n > 3 for most 3-axis stabilized spacecraft, there exist tw that satisfy Eq. (6.9), but it is not unique for n > 3. Mathematically speaking, the rank-nullity theorem tells us the following: rank(Cw) + nul(C,.w) = n (6.10) where rank(Crw) and nul(Cw) is the rank and the nullity of C, respectively. If n > 3, n - 3 null vectors exist for Crw and Eq. (6.9) can be satisfied regardless of the null vector component in w. The t that satisfies Eq. (6.9) while minimizing the magnitude of t4w is simply given as

trw = Cfw(CwCT)- 1Tc, (6.11) which is called the minimum-norm solution. This is the efficient solution of Eq. (6.9) that minimizes the norm of the RW torque vector by eliminating the torque in the direction of the null space of Crw which does not affect the effective control torque in the body frame. This torque distribution method is used in the attitude controller except during the attitude parameter calibration. In attitude parameter calibration maneuvers, the null-vector components are added intentionally to obtain complete observability as mentioned in Sec. 4.7.2.

6.4 Pointing Performance Simulations

6.4.1 Body Pointing Simulator

A spacecraft simulator has been developed to simulate the whole body pointing and to tune the gain of the attitude controller described in Sec. 6.2. Fig. 6-1 shows the

124 structure of the total simulator. The simulator consists of two parts: the spacecraft

Spacecraft Simulator

Runge-Kutta 4 hbIntegrator Lagrange Interpolator Reaction Attitude Wheel Orbit Data Dynamics from STK

Star Tracker Reaction Beacon StarTracer FGPS Model Model Wheel Model G Detector

Flight Software

APK A

APKF Attitude Controller STKF

Figure 6-1: Block diagram of the body pointing simulator simulator and the flight software. The spacecraft simulator has the attitude dynamics described by Eq. (4.16) and the reaction wheel dynamics described by Eq. (4.56). The differential equations are numerically integrated by the Runge-Kutta method (RK4) to generate the attitude quaternion q, body rates W and the RW speed ' ". The positions and velocities of SatA and SatB are imported from a text orbit file generated by HPOP in STK with the step time of 1 second for the simulation period, and interpolated by the 10th-order Lagrange Interpolation. Using the "true" attitude and orbit, the sensor models generate the sensor outputs. The star tracker model generates the quaternion measurement using Eq. (4.63), the reaction wheel model uses Eq. (4.57), the GPS

125 model uses Eq. (5.10), and the beacon detector model uses Eq. (5.13) with proper measurement time tags. The sensor measurements q, L , Yb,TA, VA, TB, TB are input to the flight software.

In the flight software, the APKF determines the attitude and the rate using the star tracker measurement q and the reaction wheel speed reading &rw, and the STKF estimates the positions and the velocities of SatA and SatB using the beacon mea- surements g and the GPS measurements 'A, VA, TB, VB, as well as using the attitude estimates q from the APKF. The attitude controller uses the outputs of the APKF and the STKF, and generates the reaction wheel torque command trK by the attitude control algorithms described in Sec. 6.1- 6.3.

All simulator code and the flight software code are written in C# without any other external libraries except Math.NET Numerics. Math.NET Numerics is a open- source library for numerical computing on .NET framework, and it is used only for matrix arithmetic in this simulator.

6.4.2 Simulation Condition

The same simulation conditions as in Sec. 4.8 and Sec. 5.5.1 are assumed in this sim- ulation. The usage of SatB's GNSS data depends on the cases which will be noted in each section. At the beginning, the flight software only has its initial guess on the attitude parameters such as the body MOI, the RW MOI, and the RW alignment, like the APKF simulation in Sec. 4.8. For the attitude parameter estimation, SatA first conducts 9 sets of the calibration maneuver as described in Sec. 4.7.1. After complet- ing the attitude parameter calibration maneuvers, the final parameter estimates and the corresponding covariances of the APKF are stored in an attitude parameter file for later use. For the pointing and tracking simulation, SatA initializes the APKF with the attitude parameter file and starts to track SatB. To analyze the pointing performance, 4t are given prior to collecting the pointing error angles and error an- gular rates for convergence of SatA's large attitude maneuver from initial attitude

error angles q [0, 0, 0, 1]T to the tracking attitude. For each time step, the pointing and the error angular rates are calculated as follows:

126 Pointing Error Angle (601, 602)

p = rB - A (6.12)

Pb - Tqrj2k (6.13) -. Pb (6.14)

ATJA (6.15) 6P1 = sin i rad (6.16) 602 [P1,21 where T = A() and 'Tb is the direction cosine matrix that transforms a vector from the body frame to a 1 frame, whose Z axis is the direction of the laser beam vector

1b, defined as:

q4 = 21(1+ rb l)

1 - qb = 4sX] 4 'Tb = A(lqb) (6.17) where z= [0, 0, 1]T.

Error Angular Rate (Swi, 6w 2 )

V = VB - VA (6.18)

Vb = Tq'iJ x Pb (6.19)

Vi = 'Tbb (6.20)

6W1 1 ,1 = -- (6.21) JW2 IA V1,2 where T = A() and 'Tb is given as Eq. (6.17). The control frequency of the flight software is 1 Hz, which means the flight software

127 estimates the attitude and orbit, and calculates the RW torque command once every 1 sec. The RK4's nominal step time is 1 sec for the attitude parameter calibration and attitude maneuvers, but it runs with 0.1 sec step time and the data is saved at 10 Hz when the pointing accuracies need to be analyzed.

6.4.3 Gain Tuning by Simulation

As mentioned in Sec. 6.2, the settling time t, is the tuning parameter to be determined. In this thesis, t, is set by simulations. A number of simulation have been conducted for different t, values and the most suitable t, is selected which minimizes the following objective function: J = E[6e"W6e] (6.22) where

rT = 601 602 6W 1 6W2] (6.23)

W = diag(1, 1, 10, 10) (6.24)

The weighting matrix W was set by the idea that the stability is more important than the pointing error, since the fine pointing system (FPS) will use an integral (1) controller in the fast steering mirror (FSM) control which is effective for compensating DC and low frequency terms. In this gain tuning simulation, SatB's GNSS data is assumed to be used in SatA's STKF. Fig. 6-2 shows the simulation results for t., from 10 sec to 100 sec. For each t,, the pointing error and the stability have been logged for 4000 sec at 10 Hz, so a total of 40,000 data points have been averaged. The minimum

J is obtained at t, = 33 see, therefore, the settling time t, was set to be 33 sec in this controller.

6.4.4 Pointing Simulation Result

With ts = 33 sec, the spacecraft pointing and tracking was simulated for with or without SatB's GNSS data. Fig. 6-3 shows the pointing error and stability over time

128 -I

10-6 1 x

0.8-

0.6-

0.4

0.2-

01 10 20 30 40 50 60 70 80 90 100 ts (sec)

Figure 6-2: Objective function J for settling time t, when SatA only uses the beacon measurement and SatA's GNSS data, and Fig. 6-

4 shows the case when SatA can use SatB's GNSS data as well. Without SatB's GNSS data, the (mean, 1a) of the pointing error is (1.261, 21.456) arcsec for 60, and

(18.644, 35.919) arcsec for 62, and the stability is (-0.033, 6.764) arcsec/sec for 6w1 and (-0.031, 8.617) arcsec/sec for 6w 2 . With SatB's GNSS data, the pointing error is (0.955, 20.143) arcsec for 61 and (12.795, 33.945) arcsec for 692, and the stability is (-0.024, 7.054) arcsec/sec for 6w1 and (-0.128, 8.744) arcsec/sec for 6w 2 . Similar to the simulation results in Sec. 5.5.3, the availability of SatB's GNSS data does not greatly affect in the pointing error and the stability. This simulation result shows that the CubeSat is able to point and track the other CubeSat with the given sensor specifications in Sec. 4.8 and Sec. 5.5.1 within the pointing error of 150 arcsec and the stability of 35 arcsec/sec for 3- bounds. The time histories of the pointing error will be used as the disturbance from the body pointing in the FPS demonstration in Chapter 7.

129 200 50

0

-200 -50

200

50 -5 0

-200 ---. 0 200 400 600 - 800--- -- 10000 0 200 400 600 800 1000 Time (sec) Time (sec) (a) Pointing error (arcsec) (b) Stability (arcsec/sec) Figure 6-3: Pointing error and stability without SatB's GNSS data

200 50

0

-200' -50

200 50

0 0

*200 0 200 400 600 800 1000 0 200 400 600 800 1000 Time (sec) Time (sE (a) Pointing error (arcsec) (b) Stability (arcsec/sec) Figure 6-4: Pointing error and stability with SatB's GNSS data (delayed 2 to 3 sec randomly)

130 Chapter 7

Fine Pointing System

This chapter covers the fine pointing system (FPS) demonstration in a lab environ- ment. The purpose of this demonstration is to verify the feasibility of using a com- mercial off-the-shelf (COTS) micro-electro-mechanical systems (MEMS) fast steering mirror (FSM) in the beam pointing control loop. Note that the actual FPS for a crosslink mission is still in development and the quadcell, which is the primary detec- tor for the FPS, has not been selected yet, so all of the hardware except the MEMS

FSM used in this demonstration are not for flight.

7.1 FPS Demonstration Overview

Fig. 7-1 is the block diagram of the crosslink lasercom optics. The fine pointing system section that will be demonstrated in this study is marked by the red box. To demonstrate the feedback control loop using FSMI and the quadcell, the test setup is designed as shown in Fig. 7-2. The laser beam is simulating the incoming beacon beam and it will be. tilted by the precise FSM (P-FSM), which is a large FSM that has 1 inch mirror. The P-FSM is used to simulate the pointing error (or disturbance) from the spacecraft body pointing and it is controlled by Arduino Zero microcontroller.

The beam will go through a beam resizer which is simulating the LI and L2 parts of the lasercom optics, and will hit the MEMS FSM which is intended for use as the flight actuator for the CubeSat crosslink demonstration. The tilted beam will be split

131 Blue- 635nm Calibration b Beacon (800nm)] Red- 1565nm Tx Purple- 1535nm Rx

L2

5mm)

Silicon detector Beacon (NODE camera) Dichroic BS Rx lens Quad cell wmro (visible) U U BS Cube APD w/ beam dump

NODE Tx (1565nm) WDMV Collimator FSM 2 Coupler (3mm)

Cal beam (635nm) Courtesy of Michael Long

Figure 7-1: Lab demonstration part of FLARE lasercom optics by a beam splitter into two and these go into two different quadcells. One quadcell is connected to an Arduino microcontroller and it will be used for the feedback control with the MEMS FSM. The other quadcell is connected to a Rasberry Pi single board computer, and the quadcell outputs are logged at high frequency (> 600 Hz) and will be used only for the pointing performance analysis. The goal of this demonstration is to show the pointing accuracy can be better than the pointing requirement of 12 arcsec as derived in Chapter 2.

Laser Source -FSM Beam Resizer MEMS FSM ) Beam sphtler Quadcell

Disturbance Stefing Beam - ~Command Vco Beam Simulator . Controller Vector Recorder ArdurQ ' Afujrta~rQuadcell Arduin)d (RP)

Oo~ca ComDonernt Detsclor Mechanical Actuator Light Source

o Laser Beam lo Feedback Sional

Figure 7-2: FPS test setup block diagram

132 7.2 Optical Hardware Design

Fig. 7-3 is the optical hardware design for the demonstration and Fig. 7-4 is the actual picture of the demonstration setup. Table 7.1 contains the list of the components used in this setup. Section 7.2.1 to 7.2.3 describe the key components in detail.

C

SXY P-FSM Li Bea m Resizer L2 FSM Q2

BS AM 0H Q1

Figure 7-3: FPS optical hardware design

Table 7.1: Optical hardware list for FPS demonstration

Item Description Manufacturer Part Number Note P-FSM Precise FSM Optics in Motion 0IM5001 $ =1" Li 1st lens of the beam resizer Thorlabs LA1131 f=50 mm, plano-convex L2 2nd lens of the beam resizer Thorlabs LA1509 f=100 mm, plano-convex FSM MEMS FSM Mirrocle Tech. Inc. 13L2.2 # =3 mm AM Adjustable mirror Thorlabs KC1-PZ-01" mirror mount Thorlabs PF1O-03-P01 #1" protected silver mirror BS Beam splitter Thorlabs CCM1-BS013 50:50, 400-700 nm Q1 Quadcell Thorlabs PDQ80A 400-1050 nm Q2 Quadcell Thorlabs PDQ80A 400-1050 mu SXY XY translation stage Thorlabs 2 x PT1

133 Figure 7-4: Fine pointing system (FPS) optical hardware setup picture

7.2.1 Beam Resizer

Since the beam coming out of the laser source has approximately 1 mm diameter, the beam resizer needs to expand the beam by a factor of 2 to make a 2 mm beam which is the desired beam size of the crosslink at FSM1 in Fig. 7-1. The beam resizer consists of two lenses, Li and L2, and they are separated from each other by fi + f2 where fi and f2 are the focal length of Li and L2, respectively. Another important role of the beam resizer is to provide the exit pupil. Without the beam resizer, the beam can walk away from the FSM whose mirror diameter is small (3 mm) when the

P-FSM tilts the beam to simulate the disturbance from the spacecraft body pointing.

However, with the beam resizer, the beam tilted by the P-FSM will always pass the exit pupil of L1/L2 system, which is the location where the FSM should be placed.

Let us consider a 2-lenis system as shown in Fig. 7-5. Using the ray transfer iiatrix

(usually called ABCD matrix), the outgoing beam's angle and the distance (a 2 , x 2 ) can be calculated from the incident beam's angle and the distance (&1, Xi) as

a2 1 0 1 - 1L 0 1 1 0 I[

X2 Z2 1 0 1 hi + f2 1 '0 1 _Zi1 I X1

134 X Li L2 x a\

z2 Z

X2

Figure 7-5: Beam resizer optics

0 f2 (7.1) fi1 + f2 - LZ2 + L2z1 - f2 X1 Lf2 fi 1 fiJ

For x1 = 0,

X2 = (fi + f 2 - fZ2 + Lz)ai (7.2) f2 hi

Eq. (7.2) means that any beam that passes x1 = 0 will pass x 2 = 0 regardless of the incident angle a, at z2 = L(fi + f2+ Lzi), and this is the location of the exit pupil.

If (ft, f2, zi) > 0, z2 is also positive so that the FSM can be located at the exit pupil. From Eq. (7.1), the angular magnification and the beam resizing factor are given as - L and -2, respectively. The minus sign implies the inverted image. In this demonstration setup, the angular magnification is I2 and the beam resizing factor is 2 which will give 2 mm diameter beam after the beam resizing. The angular mag- nification is important for the pointing demonstration using the simulated pointing errors obtained from Sec. 6.4.4.

7.2.2 Fast Steering Mirrors

There are two FSMs used in this demonstration. The P-FSM is used to simulate or "play" the disturbances from the body pointing and the FSM, which is a MEMS FSM, is used to compensate the disturbance and keep the fine beam pointing. The two FSMs are pictured in Fig. 7-6 and their specifications are summarized in Table 7.2. Additionally, the repeatability of the FSM has been identified as <0.02 mrad or 4 arcsec in Ref. [87]. The driver of the P-FSM takes only analog voltage inputs ranging from -10 V to +10 V, so the microcontroller that controls the P-FSM needs an external

135 (a) P-FSM (

Figure 7-6: P-FSM (OIM5001) and FSM (13L2.2) digital-to-analog converter (DAC) device to simulate the disturbances. The FSM's driver board takes digital commands through a Serial Peripheral Interface (SPI) bus, so it does not need an additional board to drive the FSM.

Table 7.2: Fast steering mirror specifications

0IM5001 13L2.2 Type Voice coil MEMS Mirror size #23.9 mm q3 mm Mechanical range 3 deg 1.25 deg Resolution 0.329 arcsec 0.137 arcsec Bandwidth >850 Hz >650 Hz Dimensions 41 x 41 x 42 mm3 5 x 20 x 20 mm 3 Peak power 30 W <0.5 W

136 7.2.3 Quadcell

A quadrant detector sensor head PDQ80A from Thorlabs is used as the quadcell sensor in this demonstration. Fig. 7-7 shows the picture of the quadcell module and Table 7.3 summarizes its specification. This component is originally for auto alignment of optical experiments using laser beams, and it is supposed to be used with an auto align module KPA101 from Thorlabs. In this study, this quadrant detector header is used alone as a quadcell sensor and the output voltages are read by the Arduino Zero's built-in 12-bit analog-to-digital converter (ADC) for the feedback control. Fig. 7-8 shows the quadcell's photodiodes and a laser beam on a quadcell.

Figure 7-7: PDQ80A picture

As "quadeell" denotes, a quadcell consists of four quadrant photodiodes as Fig. 7-8a. When a incident laser beam is on the quadcell as Fig. 7-8b, the incident optical power on each quadrant is different unless the beam is exactly on the center of the quadcell. The differences between the quadrants give the information about the beam position.

137 Table 7.3: PDQ80A specification

Wavelength Range 400-1050 nm Responsivity 0.4 A/W at 633 nm Transimpedance gain 10 kV/A Supply voltage 5 V - 15 V Bandwidth 150 kHz Sensor size #7.8 mm Recommended spot size # 1-3.9 mm

Q2 Q1 Q2 Q1

QQ3 ..Q3 Q3 LQ3)

(a) Quadcell photodiode (b) Laser beam on quadeell

Figure 7-8: Quadcell and laser beam on quadeell

PDQ80A outputs three voltages:

Vx = (Q2 + Q3) -(Q1 + Q4)

V = (Q1+ Q2) -(Q3+ Q4)

Vs Q1+Q2+Q3+Q4 (7.3) where Q1, - -- , Q4 are the voltage of each quadrant. These voltages also depend on the total power of the laser beam, but the ratios are calculated as:

V. -y (7.4) I V

138 and these will be invariant to the laser power which will only depend on the position

of the laser beam. Compared to digital cameras, a quadcell can be thought as a

four-pixel camera and Eq. (7.4) can be regarded as a calculation of the centroid of

the beam.

Since the incident beam shape is circular, the output of the quadcell, R, and RY, is

not totally linear with respect to the beam's position or the FSM's tilt angle. However, the integral controller that will be used in the feedback control will compensate this

nonlinearity.

7.3 Electronics and Software

Fig. 7-9 shows the block diagram of the electronics and the software used in this

demonstration. This setup uses two microcontrollers, Arduino Zeros, and one sin-

gle board computer, Raspberry Pi (RPi), on the bench and one laptop PC (PC)

to control the demonstration. Aruino Zero is a microcontroller board which has a ATSAMD21G18, 32-Bit ARM Cortex MO+ with 32 kB SRAM and working at 48

MHz clock speed. RPi used in this setup is Raspberry Pi Model B which has a Quad Core 1.2GHz Broadcom BCM2837 64bit CPU with 1GB RAM. On the PC, the Body

Pointing Simulator (BPS) is the simulator developed in Sec. 6.4 and it generates the

body pointing error profile and saves it as a file (distfile). The distfile is loaded to

a SD card on the simulator Arduino (SimArduino), and the SimArduino plays the distfile using the P-FSM through two-AD660 DACs (Fig. 7-10).

For the feedback control, there is a controller Arduino (CtrlArduino, Fig. 7-11a)

connected to the FSM and the quadcell Q1. The CtrlArduino reads the quadcell

.voltage, calculates the tilt angle for the FSM, and sends the tilt angle command to

the FSM via the SPI bus. Between Q1 and the CtrlArduino, an inverting amplifier

circuit using OPA1013 chips (Fig. 7-11b) is implemented to adjust the Qi's output

to the readable range of the built-in ADC, 0-3.3 V.

To record the pointing error, another quadeell Q2 is used with a RPi module.

The same inverting amplifier circuit is implemented to adjust the Q2's output for

139 P-FSM MEMS FSM QuadcellQd) Quadcell (Q2)

MEMS FSM

DAC (AD660) XBee SPI Ampifier Wireless (OPA1013) Simulator Modem Controller Amplifier ADC (SimArduino) (CtrlArduino) (OPA113) (ADS1256)

SD Card Recorder XBee (RPi) Wireless- - distfile Modem WiFi (TCP/IP)) 1Body Pointing F Simulator Test Control Software

Laptop PC

Figure 7-9: FPS electronics and software block diagram

Figure 7-10: AD660 DAC circuit boards

ADS1256 module which is an ADC board for the RPi. Since the RPi is much faster than Arduino and it has 1 GB memory, RPi is selected to record the Q2 output during the demonstration for poiuting performance analysis.

The SimArduino and CtrlArduino are connected to the Test Control Software

(TCSW) via universal asynchronous receiver/transmitter (UART) using the XBee wireless modem at 19200 bps (Fig. 7-12). This communication channel is only used to send and receive control commands and a few bytes of output data in low frequency. The RPi is connected to the TCSW through TCP/IP with its built-in WiFi module.

140 (a) Arduino Zero microcontroller board (b) Inverting amplifier circuit boards with OPA1013

Figure 7-11: CtrlAruino electronic circuit boards

Figure 7-12: Xbee on CtrlArduino and SimArduino circuit boards

7.3.1 P-FSM Tilt Angle

Since the beam resizer used in this demonstration is different from the crosslink reference design in Fig. 2-3, the tilt angles of the P-FSM should be scaled properly in the SimArduino's embedded software to give the same incident angle to the FSM as the reference case. In the reference design, the angular magnification is 13.33

141 (Sec. 2.3.2) which means the incident angle to Li is magnified by 13.33 for the outgoing beam angle beyond L2. Since the goal of this demonstration is to verify the beam pointing control loop using the MEMS FSM, the incident angle to the FSM should be matched to the actual situation. To write this angle matching in a equation,

0 e X Malreal OP-FSM x 2 X MaIdemo (7.5)

0 where e is the pointing error angle generated by the BPS, OP-FSM is the correspond- ing P-FSM angle, and

MaIreal 80 mm 13.33 6 mm 50 mm 1 Maldemo 10 m 2(7.6) 100 mm 2

The coefficient 2 on the right side of Eq. (7.5) is for converting the mirror's mechanical tilt angle to the incident beam's optical tilt angle. From (7.5) and (7.6),

OP-FSM = 13.33. Ge (7.7)

Since the P-FSM's tilt angles from -3 deg to +3 deg are mapped to the input voltages from -10 V to +10 V, The input voltage to the P-FSM for a given error angle 0e can be calculated as

10 V VP-FSM 3 deg 13.33 - edeg (V

4 4 4 3 - . e,deg (V)

0.0123430e,arcsec (V) (7.8)

0 9 where e,deg is the error angle in deg and e,arcsec is the error angle in arcsec.

The distfile loaded on the SimArduino has the time history of the error angles in X and Y axes. The BPS generates this distfile by simulating the attitude dynamics, the sensor and actuator models, and the AD/OD/AC algorithms described in Chapter 4 through 6. The RK4 numerical integrator propagates the dynamic models at 10

142 Hz and the BPS calculates the pointing error angles at the same rate. The error angles are re-sampled with a step time of 8.192 ms (122.08 Hz) by 3rd order Lagrange interpolation and saved in the distfile. When the distfile is played by the SimArduino, the SimArduino interpolates the error angles linearly between the step times of 8.192 ms. The update rate of the P-FSM is measured as 10.6 kHz using an oscilloscope as shown in Fig. 7-13.

F~ ~~ '1s 35 &X0 I06~ . " -

Figure 7-13: Oscilloscope screen capture for P-FSM update frequency measurement

7.3.2 MEMS FSM Control

The CtrlArduino executes the feedback control loop with the quadeell (Qi) and the FSM. Fig. 7-14 shows the control loop block diagram for the beam pointing control. The inputs to the actuator of this control loop, which is the FSM, are the two tilt voltages, Vog and Vy,,ta1t and they are mapped to the tilt angles as they range from -1.25 deg to 1.25 deg over the voltage range from -2.5 V to +2.5 V. Since the mapping is linear and the optical tilt angle is twice that of the mechanical angle, the

143 Laser Rx, Ry 1 Controller VxIt, Vyhilt MEMS FSM ) beam Command (Arduino) vector

Vx, Vy, Vs Quadcell (Q1)

Figure 7-14: Laser beam pointing control loop block diagram with the FSM and Q1

optical tilt angle can be written as

AOI (deg) = 2 0.5 0 Vx,tI AOYJ 0 0.5 Vy,tiit

The quadcell sensor of the control loop outputs the three voltages, Vx, Vy, and V, and they can be converted to Rx and R, as described in Sec. 7.2.3. By assuming that Rx and Ry are linear for the incoming beam angles, AOx and A~y, this can be written as: = [R] G AX = H (7.10) Ry -AO- -VY,titt where G is a 2 by 2 matrix that linearly relates the beam tilt angle to the quadcell ratios and p0.5 01 H=2G I (7.11) 0 0.5 which is the overall transfer function from the FSM input voltage to the quadcell ratios.

The above equations are based on the assumption of a linear response. Rigorously speaking, this assumption is not necessarily true. As discussed in Sec. 7.2.3, the mapping is not linear and the nonlinearity will be even larger when the magnitude profile is not uniform, since the laser source gives a Gaussian distribution. However, this assumption is good enough for the feedback control of the beam pointing to satisfy the 12 arcsec pointing requirement as will be shown in Section 7.5.

144 The CtrlArduino needs to calculate the FSM input voltages, (,tia, Voiti), from the quadcell output voltages (V1, Vy, V) or from the ratios (Rx, Ry). A simple discrete version of integral controller is implemented as:

V[tit V,tit H AR

k AR [V.1,ilt ] k+1 L -lt where

AR R Rx,cmd (7.13)

ARy Ry Ry,cmd and (Rx,cmd, Ry,cmd) is the ratio command. Now, the problem is to determine the H matrix, which is the conversion matrix from the FSM input voltages to the quadcell output ratios. It will be covered in Section 7.4.

With the hardware setup described above, the update frequency of the FSM com- mand is measured as 637.8 Hz (Fig. 7-15).

Figure 7-15: Oscilloscope screen capture for the MEMS FSM update frequency mea- surement

145

I 7.4 H Matrix Calibration

The H matrix in Eq. (7.10) is calibrated by finite difference methods using the test setup. As discussed in the previous sections, the quadcell output ratios are not linear with respect to the beam's incident angles or the FSM tilt angles, which means

H is not constant. However, H is only calibrated at the nominal point which is

(RX, Rv) = (0, 0) since we will set (Rx,cmd, Ry,cmd) = (0, 0) in this demonstration.

Also, H may depend on the FSM's input voltage (Vx,tit, Vy,tit) in actual hardware.

This might not have a large impact on the pointing stability, but it can affect the convergence in transient response.

For the H matrix calibration for different FSM input voltages, the P-FSM tilts the beam over a range from -5 V to +5 V for the two axes with 1 V steps which are mapped to the error angle range from -0.1125 deg to 0.1125 deg with 0.0225 deg steps. This gives 121 calibration points in total. For each calibration point or each error angle, the TCSW controls the FSM to make the quadcell output ratio

(R1 , Ry) = (0, 0) using the same algorithm used in Sec. 7.3.2. Let us call the input voltages that make (Rx, Ry) = (0, 0) for the FSM (Vox, Voy). Then, the TCSW gives a small voltage perturbation AV = 0.01 V, whose corresponding FSM's tilt angle is

180 arcsec, to (Vx, Voy) in the both plus and minus directions to the X and/or the Y axis, and gathers the quadcell outputs. This will give 8 data points for each (Vox, Voy).

For each (V, Voy), the quadcell ratios are assumed to have a linear relationship to the FSM's input voltages (V,.tt, Voilt)

R H j -[2] (714

a b A V

c d A V

146 With the 8 data points, Eq. (7.14) can be re-written as:

RX,1 AV, 1 AVY, 1 0 0 a RY, 0 0 AV, 1 A V, 1 b (7.15) C RX,8 AV,S AVy,8 0 0 d

Ry,8 0 0 AVx, 8 AVy, -

A and this can be solved using the least squares:

a RX,1 b (A T A)--A T (7.16) C d Rx,8 - - Ry,8

Eq. (7.14) can be re-written as:

[ =[:1 AV + A VY (7.17) Ry c KY and hx and hy are the sensitivity vectors of Rxy for the two FSM input voltages.

Fig. 7-16 shows the calibration results of H, or (hr, hy) over the (Vox, Voy) points.

The blue quivers denote h3 and the red quivers denote hy. Note that the magnitudes of the quivers are not scaled to the x and y axis grids. At the center (VX, VY) (0.0374, -0.0025) V (denoted as a black circle in Fig. 7-16), the sensitivity vectors are calibrated as:

-8.5221 - -0.0370 h= (V-, hy1(V-) (7.18) 0.0717 7.6871

147 1.5

'0h 0.5 2 22- 1

-0.5 ? 2 222- I

VV (V) -1.522~--

15 1-0.5 0 . .

V(V X,tiltM

Figure 7-16: hK and hy calibration results over (VOl, Voy) ranges (not scaled)

and therang differences fro0.0 % tto the12 center1.5o point-1 -0.5 are0% plotted0t5 1 in% Fig.1or.5 7-17Tedfeecsfr in percentage to the center hx and hy. The center is denoted as a black circle like Fig. 7-16, and the black quivers at the center are the scale bar for 10 % difference. The differences are on'the range from 0.05 % to 12 % for hx and 0 % to 1.4 % for h.. The differences for hx are typically larger than the difference for hy as Fig. 7-17 shows. The reason for the

difference in each axis is unknown, but the author suspects that the FSM's X axis

response is less stable than the FSM's Y axis response because the overall pointing

accuracy in the X axis is worse than the Y axis, which is discussed in Section 7.5. This

1.5 -

XK X- XX K X K X

* X X x X * Scale bar (10%) 0.5 X X X X X 0 Center XX X-5 X-W X x

>- X X X X X * *

x XX X )05**) Xx X X X X ftX

* XxX X xX f X

X X XX X X K XX X

-1.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 V~ (V)

Figure 7-17: Ah, and Ahy pattern over (VoX, Voy) ranges

148 calibration result gives the H matrix in the FSM feedback control law, Eq. (7.12).

For implementation, the CtrlArduino will find the proper H from these calibration results based on the FSM's current input voltages (V,tilt, V,tilt) and apply it to the control loop.

149 7.5 FPS Demonstration Result

With the FPS demonstration setup described in Section 7.1 to 7.4, the beam pointing control has been demonstrated. The results are recorded by the quadcell Q2 and the

RPi (see Fig. 7-3 and Fig. 7-9). Since the outputs of a quadcell are voltages, not error angles, the relationship between the Q2 output ratios and the beam error angles was calibrated by the same method as Sec. 7.4, but with the P-FSM and Q2. The Q2 output voltages were sampled at 630 Hz and recorded on a file by the RPi for 600 seconds, so a total of 378,465 sample points were used to analyze the pointing errors.

4 Effor 3 N I arcme 2 arcsec 3 arcsec 2 / 7 -4arcsec

0

LU

4.,. -2 I7 -3

-4L -5 -4 -3 -2 -1 0 1 2 3 4 5 X Error (arcsec)

Figure 7-18: FPS test result: pointing errors in X-Y plane

Fig. 7-18 and Fig. 7-19 show the pointing errors in the X-Y plane and the time history of the pointing errors. The average of the pointing error is (-0.4921, -0.29135) arcsec and the la is (0.5513, 0.3567) arcsec for the X and Y axes, respectively. The largest pointing error is 3.9103 arcsec and all error points .are within a 4 arcsec boundary as shown in Fig. 7-18. As shown in the figures and by the lo- values, the error in X axis is larger than the error in Y axis. The author suspects this is because of the particular

FSM's characteristics used in this demonstration since there is no fundamental reason for the difference in the test setup; the hardware and the software setup in X and

Y axes are identical. Also, the average pointing error is biased from the zeros. This

150 4

d-2

x

-4

-

0 100 20D 300 4.00 5DO 600 Time (sec)

Figure 7-19: FPS test result: time history of the pointing errors may be because of any remaining misalignment between the two quadcells, Q1 and Q2. This demonstration result shows the overall beam pointing requirement of 11.98 arcsec derived in Chapter 2 is met. This means the laser beam pointing control for optical inter-satellite communication on CubeSat using the MEMS FSM is feasible.

151 152 Chapter 8

Conclusion

This chapter will present a brief summary of the thesis, highlight the major contri- butions, and recommend future work.

8.1 Thesis Summary

The objective of this thesis is to develop and analyze a series of algorithms to solve the crosslink laser beam pointing problem on CubeSats, and to demonstrate the feasibility of using the MEMS FSM for fine beam pointing. The pointing requirement was de- rived based on a reference CubeSat intersatellite link lasercom design, and the sensors and the actuators' specifications in the analysis were adapted from this design. To achieve the laser beam pointing and tracking from a CubeSat to the other, this thesis divided the problem into four parts, attitude determination (AD), orbit determina- tion (OD), attitude control (AC), and the fine pointing systems (FPS), developed the algorithms, and demonstrated the performances at each step by simulation or hardware demonstration. In Chapter 2, the Gaussian beam optics are reviewed to provide context for how the pointing requirements are derived. Then, the CubeSat intersatellite link reference design is introduced and the full width at half maximum (FWHM) angle for the reference design lasercom optics is calculated by assuming diffraction limited optics. The pointing requirement in this thesis is set to be the half of the FWHM angles of

153 the Tx beam as 58.09 prad or 11.98 arcsec.

Chapter 3 briefly introduces the Kalman filter and the extended Kalman filter (EKF) for reader's understanding. As the Kalman filter is the main filtering technique which the AD and the OD are based on, Chapter 3 reviews the structure of the Kalman filter and its mathematical formulations before getting into the main body of this work. Since the original formulation of the Kalman filter is only applicable to linear discrete-time system, the EKF is introduced to apply the Kalman filter to nonlinear continuous-time system. Chapter 3 presents one kind of extended Kalman filter which is applied to nonlinear continuous-time dynamic systems with nonlinear discrete-time measurements because the dynamic systems that the AD and the OD deal with have nonlinear continuous-time dynamics and nonlinear discrete-time measurements.

Chapter 4 covers the AD for a CubeSat which is a highly hardware-constrained system compared to traditional large satellites. The largest difference in the AD is the performance of the gyroscopes that fit in small form factors. While large satellites have enough space for high performance gyroscopes such as the fiber optic gyroscope (FOG) and the hemispherical resonator gyroscope (HRG), CubeSats currently can only support small micro-electro-mechanical systems (MEMS) gyroscopes to measure rotation rates. The problem is the MEMS gyroscopes are 10-100x worse than the FOGs and their bias drifts much more due to temperature. To overcome this prob- , a new Kalman filtering formulation that estimates the attitude and the attitude parameters without gyroscope measurements (APKF) is proposed in Chapter 4. In traditional approaches, the AD Kalman filter solely relies on gyroscope measurements to propagate its attitude without attitude dynamics. This is an efficient approach that is free from the uncertainties of the body moment-of-inertia (MOI), disturbance torques, and actuators, but not an effective approach for MEMS gyroscopes. The APKF uses the attitude dynamics in its propagation step and estimates not only es- timate the attitude, but also the attitude parameters such as body MOI, disturbance torque, residual dipole moments, reaction wheel MOI, and reaction wheel alignments. Using the APKF, a CubeSat can estimate its attitude and body rates better than the star tracker's raw accuracy without gyroscopes.

154 Chapter 5 covers the OD for a CubeSat. To build a inter-satellite optical link, one CubeSat (SatA) needs to know the orbit of SatA as well as the orbit of the other satellite (SatB). One remarkable difference from traditional OD problems is that the goal of the OD in this thesis is to estimate the relative pointing vector from SatA to SatB, not the absolute positions and the velocities in a reference frame. There are three different measurements that can be used in the OD on SatA: SatA's GNSS navigation solutions, beacon beam measurements, and SatB's GNSS navigation solu- tions relayed through ground station networks. This thesis takes the Kalman filtering approach for the OD to fuse the three different types of the sensor measurements. Since SatA's GNSS data and the beacon measurements are measured on SatA, the ordinary EKF can handle these measurements. However, SatB's GNSS data will be time delayed since it is measured by SatB and needs to transfered to SatA through relay systems. This time-delayed measurement is called an out-of-sequence measure- ment (OOSM) and this thesis proposes a new interpolation approach to update the Kalman filter with the OOSM, called augmented fixed-lag smoother (AFLS). The AFLS is derived for a linear discrete-time system, and then extended for a nonlinear system as the extended augmented fixed-lag smoother (EAFLS). Chapter 5 devel- ops the satellite tracking Kalman filter (STKF) using the EAFLS formulation and analyzes the onboard satellite tracking performance.

In Chapter 6, the spacecraft's body pointing for the crosslink laser beam is sim- ulated and the pointing accuracy is analyzed. In the simulations, the results of the STKF are used to calculate the desired attitude command and the results of the APKF are used to determine the current attitude and the body rates. The quater- nion feedback attitude controller proposed by Wie et al. is used as the attitude controller and the gain or the settling time of the controller is tuned by simulation to minimize the objective function which is the square sum of the pointing errors and the stabilities. The settling time is selected as 33 seconds and the overall body pointing accuracy and the stability are estimated as less than 150 arcsec and 35 arcsec/sec for 3-, respectively. The simulated pointing errors are recorded and used to verify the performance of the fine pointing system in Chapter 7.

155 Chapter 7 demonstrates the fine pointing system (FPS) in the lab. The purpose of this demonstration is to verify the feasibility of using the MEMS fast steering mir- ror (FSM) which is small enough to fit in a CubeSat. The beam pointing part of the reference crosslink lasercom optics is simulated by real hardware with the MEMS

FSM. The optical and electrical hardware designs for the demonstration are described in detail with the actual part numbers and the performance. The relationship be- tween the actuator inputs (the FSM voltages) and the sensor outputs (the quadeell voltage ratios) are calibrated over the FSM's operation ranges. A discrete version of an integral controller is implemented on a microcontroller for a feedback control of the MEMS FSM using the quadeell outputs. To test the overall pointing accuracy, including the body pointing, the body pointing errors generated in Chapter 6 are sim- ulated by a precise FSM (P-FSM) with proper scaling. The pointing error is recorded by the secondary quadcell Q2 which is independent from the quadcell Q1 used in the feedback control. From this demonstration, the pointing errors are measured as less than 4 arcsec, which satisfies the pointing requirement of 11.98 arcsec that is derived in Chapter 2.

In summary, this thesis verifies the feasibility of the laser beam pointing of a

CubeSat for a lasercom crosslink. The overall pointing accuracy of 4 arcsec is feasible with commercial off-the-shelf (COTS) parts and it satisfies the pointing requirement of the 1550 nm laser beam coming out from a diffraction-limited optics with 20 mm diameter aperture.

8.2 Contributions

The following list summarizes the key contributions made in this thesis:

9 A new attitude and attitude parameter estimation Kalman filter (APKF) that

does not rely on gyroscopes is developed. The traditional attitude estimation

Kalman filters do not use the attitude dynamics because of the uncertainties in

the attitude parameters. They solely rely on gyroscopes for attitude propaga-

tion, so the gyroscope's performance has been the key factor to determine the

156 overall attitude control performance. However, the traditional approach is not

suitable for CubeSats which normally cannot accommodate good gyroscopes.

By using the attitude dynamics in the filtering, the gyroscope data becomes

no longer essential for the attitude estimation. To overcome the uncertainties

on the attitude parameters, the APKF augments the parameters into the state

vector, and estimates them explicitly along with the attitude and the body

rates. Since the APKF is based on the EKF form, it may be implemented on

real-time embedded systems without a significant burden of computing power, and it enables precise attitude control for CubeSat systems. o A novel Kalman filtering formulation to update OOSMs is developed. The

proposed algorithm is called the augmented fixed-lag smoother (AFLS) and it

is an exact and general solution to update with OOSMs. Unlike the existing

algorithms that need a sequential update of the estimates when an OOSM

arrives, the AFLS simply interpolates the state estimates and the covariance

to generate the node at the OOSM time, and updates the filter with the new

node. This process does not require sequential updates for all nodes to calculate

the current estimates, which means the response time of the filter is faster than

the existing algorithms. The AFLS has been extended to nonlinear systems as the EAFLS. Its utility has been verified by the STKF to handle SatB's GNSS navigation solution which is a OOSM. o The CubeSat's body pointing for the crosslink laser beam has been simulated

and the pointing accuracy is analyzed. In a CubeSat design for a lasercom

crosslink mission, the body pointing accuracy is one of the most important

requirement driving factors, and it has not been simulated at this level of detail

for this application before. By developing the body pointing simulator with

the dynamic models and the sensor and the actuator models as well as the

AD, OD and AC algorithms, the body pointing accuracy can be estimated for

given sensor and actuator specifications. This simulator and the estimated body

pointing accuracies can be used to design a CubeSat lasercom mission.

157 * The fine beam pointing system using the MEMS FSM has been demonstrated

with real hardware. The demonstration uses COTS parts, and the MEMS FSM, which is the main actuator of the FPS, has been verified for use in a CubeSat lasercom mission with a simple feedback control loop combined with a quadcell detector.

8.3 Recommendations for Future Work

The following list provides the recommendations for future research that can strengthen and extend the work presented in this thesis.

" For AD, the APKF has been derived and verified by the simulation studies in this thesis. The APKF uses a brute-force approach to deal with the disturbance torques by assuming the disturbance torques as a second Gaussian white-noise process. This is not the exact model of the disturbances that will act on a Cube- Sat on orbit. Since the APKF relies on the attitude dynamics, the disturbance model will be a key factor for the filter performance and stability. In order to improve the filter performance, more rigorous disturbance models should be studied and verified by on-orbit tests.

" For OD, this thesis assumes the beacon measurements are obtained by a beacon camera. As other attitude sensors, the beacon camera will have misalignments and it will affect the STKF's performance. This thesis does not cover how to calibrate the beacon camera, but it is necessary to perform alignment calibration for the beacon camera on orbit. Future research about how to calibrate the beacon camera alignment is recommended for actual missions.

" For the FPS, characterization of the hardware in the loop, the MEMS FSM and the detector (quadeell), is required. Specifically, the frequency response of the overall FPS should be analyzed. This thesis demonstrated the FPS without the frequency response analysis, and the test results satisfied the beam pointing requirements for the target CubeSat mission. However, there might

158 be unconsidered disturbances that can affect the pointing accuracy such as

reaction wheel jitter, so the frequency response analysis should be required for

the success of a lasercom mission. Also, the sensor noise has not been analyzed

in this thesis since the hardware used in this demonstration are not yet for

flight components. When the hardware design and the part selection are set, the noise analysis on the quadcell and its supporting electronic circuits should

be conducted to confirm the performance of the FPS.

* For AC, the gain tuning of the attitude controller may be refined by a rigorous

frequency response analysis including the FPS. Since the FPS has a certain

frequency response, there should be a optimal AC gain that minimizes the

overall pointing error after including the FPS in frequency domain. This can

be done after the frequency response of the FPS is identified and the detector

noise is characterized. This can be extended to the frequency analysis of the

complete pointing system that includes the spacecraft bus body pointing and

the fine beam pointing.

159 160 Appendix A

APKF Derivations

A.1 Derivation of Error Rate Differential Equation

This section describes the derivation of (4.86). With Eq. (4.79) and Eq. (4.83), the derivative of the error angular rate is written as:

= (I - 16J)- 1[-(0 + &Z) x {(J + 6J)(& + &)

+(rw + Crw)(Jrw + 6Jrw)(r + 6Sw)}

- (Crw+ 6Crw)(Jrw +6 Jrw) (Pzw+ 6w) - (r-w + 3-))

+'()(J+ U) +( + 6 ) x A(q)bi +a + 6 ]

(Jw + CrwJrwrw) - CrJT(w - 0-w

+'I(Gb)J+r x A(^)b + ] (A.1)

Regarding the gravity-gradient torque term, consider the following:

A(q)= A(6Sq ®q) = A(6q)A(q)

Gb (I - 2[6q'x])A(q) (A.2) Gb A(6q & qn)G A(6q (& q) =A(q) A(q )G A(q)? A(6)

161 (I - 2[6q7x ])CG(I + 2[6q x])

Gb - 2[6qx]Gb + 26b[6qx] - 4[6qx]Gb[6qx] (A.3)

By ignoring the second order term [qx]Gb[67x], Gb can be expressed in a vector form of Gb = [Gbll, Gb22, Gb33, Gbl2, Gbl3, Gb 23 ]T as:

0 2G613 --2Gb12

-2b23 0 2 6b12

2023 -2b13 0 Gb Gb-2 A- -Gbl3 Gb23 (Gbll - Gb22)

Gb12 (Gb3 3 -- bll) -- b23

(Gb22 - Gb33) -Gb12 Gbl3

= Gb - 2T(Gb)&7 (A.4)

By expanding and ignoring the second or higher order terms with Eq. (A.2) and Eq. (A.4), (A.1) becomes:

- x (6MJc + J6O + Crwjrwrw + Crw6Jrw w + CrwJrw&3rw)

+6Crwtrw - Orw6Jrw.erw ,CrWJrw(& - L- r)

-60 x Ht + T (Gb)6J+ 2'I(J)T(Gb)6

+6Mn x bb - M x (2[8jx]bb) + 6' -- JJ- t (A.5) where

hrw = ' L0 (A.6)

5ew= (rw - - (A.7) At tw = -Jrwrw (A.8)

Ht= M + Crwhrw (A.9)

t = -x Ht+Crwtrw+4(G)J+n x bb+ (A.10)

162 D(U) = diag(6) (A.11)

C rw CrwO + Crw,iD(6rw,) + Crw,2 D(6rw,2 ) (A.12)

and

Cw = Crw - rw

Crw,1D(Arw,1) + Crw,2 D(Arw,2 ) (A.13)

Note that 6&rw and 6w;-, are not the same. 6w'- is 6 &rw at the measurement time

of 6w'- , and it remains constant. rw represents the uncertainty of the RW speed through time, so its uncertainty changes through time. In order to apply the Kalman filter approach, (A.5) should be expressed in x = F + Gi/ form. Since (A.5) con- tains so many terms, let us consider the terms related each error state one by one.

Regarding 6q,

60,1& = J-1{2'()T(Gb)6' - x (2['x]bb)} = j- 1{2(J)T(G)6q+ 2[iM x][bbx1]6q&

= 2j-{'I(J)T(Gb) + X][ q (A.14)

Regarding 6w',

I6L = J-W{- x j - 60 x I'} = J- 1{- X j6Lc + Ht x 6z}

=If{-[fwx ])+[tx]} (A.15)

Regarding 6'T, e5|I'= (A.16)

Regarding 6j,

60L:1 = j-1- 6x Jw +P(Gb)6J - 6JJ~ -} (A.17)

163 Since 6J is a symmetric 3 by 3 matrix:

6Jxy 6Jxz 6JYY 6Jyz (A.18) JJXz 6Jyz 6J zzJ and J is a 6 by 1 vector:

6J= -T (A.19) =JXX 6JYY 6Jzz 6JY 6Jxz 6jyz1

the following identity holds for any 3 by 1 vector ' = [v1i, v 2, v3].

J1= Q(QU)6f (A.20) where

V1 0 0 v2 v3 0 (A.21) b () a0s v 2 0 v1 0 v 3

0 0 v3 0 v 1 v 2 _

Therefore, (A.17) can be written as:

L 1, = (Ob) - [Px]Q(&) - Q(j (A.22)

Regarding 6M' , 6W 6,3= J-'(Jmix bb) = J[b-b x] n (A.23)

Regarding C,, or AI,

6015C, = j-{-[Zx]JCrwhrw - WCw" .} (A.24)

In order to make (A.24) in vector form, let us consider the following identity for any n by 1 vector 17.

6Cw1 = Crw,iD(A r,,1)V+ Crw,2D(A6rw, 2 )

164 = Cr,,D(7)Arw, + Crw,2 D(i7)A5rw,2

... Cn,ivn Aw,i + iC1, 2 vi - Cn,2Vn rw,2 [Cilvl

[Aw,1 ... Cn,lVn C1,2V - Cn,2Vn -, [Cilvl ,jw,2 =C(V)65,, (A.25) where C(U) is defined as:

... Cn, lVn - (A.26) C(6) = I1,1v1 C 2 ,1 v 2 cl,2vl C2 2 v2 n -- l,2Vn]

Using (A.25), (A.24) becomes:

W|6c. = J-1{-[WDx]C(hrw) + C(trW)Ir (A.27)

Regarding rw,

,WI=rw Wr - CrwtJrwarw} (A.28)

Since 6Jrw = D(6Jrw) and D(d)b = D(b)d, (A.28) can be written as:

61| -={-x ICrD(&-) - CrwD(rw)}6 Jrw (A.29)

Regarding 6&rw, &J- , and 6L,+

Wr rw rw = (A.30) W = -1 [x]or r r60- w Q |s = AJ 1 0rwirw66 - (A.31) 1 j (A.32) 60|+W = At Jr6,jw

Combining (A.14)-(A.16), (A.22), (A.23), (A.27), (A.29), and (A.30)-(A.32),

O= 2j- {XI(J)T(Gb) + [ff#x][bx]} T+ J-{-[ x]J + [tx]}63 + J-l7-d

165 1 +J4{(05)- [c x]Q(& - (J~ 6)}6J -J~i1[gx>5d +-{ -[x]C(hrw) + C(tiw)}sIw + J-1{ -[xx]brwD(w2) - rwDG5,w)}6Jrw 1 - 1 j-I [5x ]XI , j. + jJrj rwo- -t J- UJ6crw (A.33)

A.2 Derivation of State Transition Matrix

The state transition matrix 1 satisfies:

a(t) = FD(t) (A.34) ~(O) = I (A.35) where F is given in Eq. (4.98). Let us consider D partitioned into block matrices as:

O11 #12 ... Okia

021 #22 ... 02a (A.36)

LOal Oa2 ... 1Oaaj

Eq. (A.34) can be written as:

-[ix] jI2 0 0

O11 #12 ... #ia F 2 1 F 2 2 F2 3 F 2a #il # 12 ... 1a

- -. 21 22 - 2a 0 #21 #22 - 02a

.F 8 9 F8a .. ... ca1 Sa2 - aa_ 0 #a1 #a2 aa 0 (A.37) The j-th column of a can be expanded as:

1 #1, = [Wx]O# + 05 2j (A.38) 2

166 a 42j = ZF2k~kj (A.39) k=1

4 8j = F89cpj + Fsaqaj (A.40)

Oij = 0 (A.41) with the boundary condition:

(0)= (A.42)fij 0, otherwise for l=3,-- ,7,9,a.

For j 1: It is clear that Oil = 0 from Eq. (A.40) and Eq. (A.41) for i = 3,... , a. Then, Eq. (A.38) and Eq. (A.39) becomes:

1 =-[b x]#l + -021 (A.43) q1u 2

(21 = F 2 1 1 1 + F 2 2 02 1 (A.44)

Since 02l(0)= 0 and F 21 < I,

~ -x (A.45)

Useful approximation: the definite integral solution of 0(t) = A#(t) + B(t), where

A is constant, B(t) is a function of t, and #(to) = 0, is known as:

tief -^a'rBrjd f t=e Adt'IB(T)dT ef -Adt'Iti it jti e Adt'B (-T)dT

~ [I + A(t1 - Tr)]B(TF)dT (A.46)

167 This approximation will be repeatedly used in the following derivations. From Eq. (A.44),

Eq. (A.45), and Eq. (A.46), # 2 1 is approximated as:

1 1 2 q = F At + -(F F - x])At - F F [Wx]At (A.47) 21 2 1 2 22 2 1 F2 1 [ 22 2 1

For j = 2: Similar to above, it is possible to derive the following:

1 1 - 1 - 3 + IF 2L't2 - I[:x]F (A.48) 2 2[x]At2 2 6 WI22 2 t )

022 = I+F22At + IF222At2 (A.49)

Oi2 = 0 (A.50) for i=3,.. ,a.

For j= 3,... ,8: From Eq. (A.40), Eq. (A.41), and Eq. (A.42),

if i = j #ij (t) = (A.51) 0,1 otherwise

for i = 3,4, ... , a. From Eq. (A.38), Eq. (A.39), Eq. (A.51), and the fact that F2 1 < I and # 1 (0) = 0,

1j = - 0# + -2j (A.52)

2j = F2

~ F 22 # 2j + F2j (A.53)

Applying Eq. (A.46) to Eq. (A.53),

1 F $2j F2j st + -F221F23At2 (A.54)

168 With Eq. (A.54), Eq. (A.52) becomes:

2 4(t) = -[x ] 1 [F2j t - to) + F22F2j t - to) ] (A.55)

Applying Eq. (A.46),

3 #1~ j F2 t2 - [6 x]F jAt + -F F j At' - -[Ix]F F jAt (A.56) 12 2 12 22 2 48 2 2 2

For j = 9, a: From Eq. (A.40), Eq. (A.41), and Eq. (A.42),

ij)ifi = j (A.57) 0, otherwise

for i = 3,... , 7, 9, a. Then, Eqs. (A.38)-(A.40) become:

(A.58) ij =-[0Fx]# + 02+ 2

2j ~F2202j + F2808j + F2j (A.59)

qsj = Psj (A.60)

Since # 8 (0) = 0,

#8j = Fj At (A.61)

So,

02j = F2202j +F28Fsj t +F2 (A.62) I 1 1 2 1 3 2 02j ~F2At + 2-F2 2F2 2 t + 6F28 F t + F22F28F8 At' (A.63)

and

2 1;= -[W xI]1i + 2[F +t 2 + 2 F+ F2 t2 + 6F22 F2 8 F83 At'] 3 F j X [&]F 2j) At Oi 4-2jt2+ 12 (FFj F28 8

169 +-[ F22F28 F - ['x ](F2 2 F2j + F28 F8. )]t - -[x|F 22 F2 8 F8 jAt' 48 240 (A.64)

170 Appendix B

AFLS Derivations

B.1 Eq. (5.34) Derivation

From (3.1) and (5.32), the covariance matrixPbb,+ can be expanded as:

Pbb,c = E[(xb - :(c)(- +c)T]

= APa ,cA T + BP+,c T + APc,c BT + BPc,c AT +

(I - BFb)Qa(I - BF)T + BQbBT +

E[A(Xa -J +c)((I - BF)wa - Bwb)T + B(xe - +c)((I - BF)wa - Bwb)T] +

E[A(Xa -. ,+,)((I - BF)wa - Bwb)T + B(xc - )((I - BFb)Wa - Bwb)T]T

(B.1) where A and B is are given by (5.33). It is straightforward to show that the fifth and sixth term of (B.1) can be expanded as:

(I - BFb)Qa(I - BFb)T + BQbBT = (I - BF)Qa (B.2)

Considering the third line of (B.1), it is clear that:

E[(xa - ^a+,e)Wa] 0, E[(Xa - a+c)wJ] J 0

E[(xe, )w T] 0, E[(xe- .+ )wT] # 0 (B.3)

171 Before expanding the third line, let us consider the following. From (5.30),

H(T= HP-cc H T + Rc) 1 (yc - Hes--)

= H --- (HcFFa(Xa - Sia)+ HcFbWa + HeWb + ve) (B.4)

Since E[(xa - ia+,a)Wa] = 0 and E[(xa -a

E [mwa] = McFQa, E[mewb] = McQb (B.5) where Mc A HW (HcPcicHT + Rc)'Hc. Using (B.5), it is straightforward to prove that:

E[m,((I - BFb)Wa - BWb)T] = 0 (B.6)

More specifically,

E[(ye - He:z--c)((I - BFb)Wa - BWb)T] = 0 (B.7)

Equation (B.7) is a powerful condition which means that the innovation (yc - Hc-c) is orthogonal to the residual process noise ((I - BFb)Wa - Bwb). From (5.29) and (5.27) with (B.6), we can obtain:

E[A(Xa - -+j)((I - BFb)wa - Bwb)T] =0 (B.8)

E[B(xc - i+)((I - BFb)wa - BWb)T] -0 (B.9)

Finally, from (B.1), (B.2), (B.8) and (B.9),

Pb+,c = AP+,cAT + BP,,BT Ap+ BT+BP , AT + (I - BF)Qa (B.10)

172 B.2 Eq. (5.35) Derivation

Similar to (B.1),

Pbj, C = E[(xb -:+)(Xj - )T]

= APc + BP,c + E [(x - ((I - BFb)wa - Bwb)T]T (B.11)

The third term of (B.11) will become zero for all j, j $ b. For the case of j > b, which means j = c, it was shown in (B.9). When j < b, similar to (5.27)-(5.30), it is straightforward to show that:

zic = ' a + P.-,mc (B.12)

From (B.6) and (B.12),

E[(xj - -Jt)((I - BFb)wa - BWb)T] = 0 (B.13)

Therefore, from (B.11) and (B.13),

= AP,c + BP c (B.14)

B.3 Eq. (5.39) Derivation

Let us consider md similar to (B.4) as:

md = Hj( HdPa- Hj + Rd) -(Yd - Hd- d)

= (-... )-(H x- ) Hwc + V) (B.15)

By (B.9),

E[md((I - BFb)wa - BWb)T = 0 (B.16)

173 Similar to (B.1),

T Pbb,d APd AT + BPd AB + APd BT + BPc+a,dAT +

(I - BF)Qa(I - BFb)T + BQbBT +

E [A(xa - X2d(I - BFb)Wa - Bwb)T + B(xc - Xed)((I - BFb)Wa - Bwb)T] +

E [ A(xa - +(( -_ B Fb)Wa - Bwb)T + B(x, - se )((I - BFb)Wa - Bw4j3.]'"7)

daC +(... )md and ., - = +(--)m, Since . -

E[(Xa - a (I - BFb)wa - Bwb)T] =0

c-X )((I - BFb)Wa - Bwb)TI =0 (B.18)

By (B.2), (B.17), and (B.18),

T T bb,d = AP dA + BPZ, B + APa+c, ABT + BP,!dA T + (I - BFb)Qa (B.19)

Also, similar to (B.11),

= APa,d+ BP, + E [(x - X1j)((I - BFb)Wa - BWb )T]T (B.20)

And it is straightforward to show that E[(xj - d )((I - BFb) Wa - Bwb)T] = 0 with

the same approach from (B.9). Finally,

bij,d = Ap+j, d+ BPcj, (B.21)

174 Bibliography

[1] Peter Fortescue, Graham Swinerd, and John Stark. Spacecraft Systems Engi- neering. 4th edition, 2011.

[2] Zoran Sodnik, Bernhard Furch, and Hanspeter Lutz. Free-space laser communi- cation activities in Europe: SILEX and beyond. In LEOS 2006 - 19th Annual Meeting of the IEEE Lasers and Electro-Optics Society, pages 78-79, 2006.

[3] Bernard L Edwards, Dave Israel, Keith Wilson, John Moores, and Andrew Fletcher. Overview of the Laser Communications Relay Demonstration Project. In Space Operations, pages 209-226, 2012.

[4] Arash Mehrparvar. Cubesat Design Specification Rev. 13. CaliforniaPolytechnic State University Report, 2014.

[5] Eric Hand. Startup liftoff. Science, 348(6231):172-177, 2015.

[6] Alex Knapp. Spire To Launch Constellation Of Cubesats For Weather Forecast- ing, 2015.

[7] E Clements, R Aniceto, D Barnes, D Caplan, J Clark, I del Portillo, C Haugh- wout, M Khatsenko, R Kingsbury, M Lee, R Morgan, J Twichell, K Riesing, H Yoon, C Ziegler, and K Cahoy. Nanosatellite Optical Downlink Experiment Design , Simulation , and Prototyping. SPIE Optical Engineering, Accepted, 2016.

[81 NorthropGrumman. A FORS-1 Data sheet. Technical report, 2011.

[9] Bosch. BMI055 Data sheet. Technical report, 2013.

[10] Kathleen Riesing. Orbit Determination from Two Line Element Sets of ISS- Deployed CubeSats. In 29th Annual AIAA/USU Conference on Small Satellites, pages 1-9, Logan, 2015.

[11] D. M. Boroson, J. J. Scozzafava, D. V. Murphy, B. S. Robinson, and H. Shaw. The Lunar Laser Communications Demonstration (LLCD). In Third IEEE In- ternationalConference on Space Mission Challenges for Information Technology, pages 23-28, 2009.

175 [12] Jose Romba, Zoran Sodnik, Marcos Reyes, Angel Alonso, and Aneurin Bird. ESA's Bidirectional Space-to-Ground Laser Communication Experiments. In Proceedings of SPIE, volume 5550, pages 287-298, 2004.

[13] Yoshinori Arimoto, Morio Toyoshima, Masahiro Toyoda, Tetsuo Takahashi, Mo- tokazu Shikatani, and Kenichi Araki. Preliminary result on laser communication experiment using (ETS-VI). In Proc. SPIE 2381, Free-Space Laser Communica- tion Technologies VII, volume 2381, pages 151-158, 1995.

[14] Takashi Jono, Yoshihisa Takayama, Nobuhiro Kura, Koichi Ohinata, Yoshisada Koyama, Koichi Shiratama, Zoran Sodnik, Benoit Demelenne, Aneurin Bird, and Katsuyoshi Arai. OICETS on-orbit laser communication experiments. Proceed- ings of SPIE, 6105:610503, 2006.

[15] Ryan Kingsbury. Optical Communications for Small Satellites. Phd thesis, Mas- sachusetts Institute of Technology, 2015.

[16] Anthony E. Siegman. Lasers. University Science Books, 1st edition, 1986.

[17] Newport. Gaussian Beam Optics. Technical report, 2006.

[18] CVI Melles Griot. Gaussian Beam Optics. Technical report, 2010.

[19] Dan Simon. Optimal State Estimate: Kalman, H Infinity, and Nonlinear Ap- proaches. John Wiley & Sons, 2006.

[20] John Crassidis and F. Landis Markley. Unscented Filtering for Spacecraft Atti- tude Estimation. Journal of Guidance, Control, and Dynamics, 26(4):536-542, 2003.

[21] R. E. Kalman. A New Approach to Linear Filtering and Prediction Problems. Journal of Basic Engineering, 82(1):35-45, 1960.

[22] J. L. Crassidis and J. L. Junkins. Optimal Estimation of Dynamic Systems. CRC press, Boca Raton, 2nd edition, 2011.

[23] Hyosang Yoon, M. Riesing, Kathleen, and Kerri Cahoy. Kalman Filtering for At- titude and Parameter Estimation of Nanosatellites without Gyroscopes. Journal of Guidance, Control, and Dynamics, 2017.

[24] E. J. Lefferts, F. L. Markley, and M. D. Shuster. Kalman Filtering for Spacecraft Attitude Estimation. Journal of Guidance, Control, and Dynamics, 5(5):417- 429, 1982.

[25] KVH. Guide to Comparing Gyro and IMU Technologies - Micro-Electro- Mechanical Systems and Fiber Optic Gyros. Technical report, KVH Industries, Inc., Middletown, Rhode Island, U.S.A., 2014.

176 [261 Samir a. Rawashdeh, James E. Jr. Lumpp, James Barrington-Brown, and Mas- similiano Pastena. A Stellar Gyroscope for Small Satellite Attitude Determina- tion. In Proceedings of the AIAAIUSU Conference on Small Satellites. Advanced Technologies II, SSC12-IX-7, 2012. [27] B. Johnston-Lemke, K. Sarda, C. C. Grant, and R. E. Zee. Arc-Minute Attitude Stability on a Nanosatellite: Enabling Stellar Photometry on the Smallest Scale. In Proceedings of the AIAA/USU Conference on Small Satellites, pages 1-13. Mission Enabling Technologies II, SSC11-X-7, 2011.

[28] Karan Sarda, C. Cordell Grant, Monica Chaumont, Seung Yun Choi, Bryan Johnston-Lemke, and Robert E. Zee. On-Orbit Performance of the Bright Target Explorer (BRITE) Nanosatellite Astronomy Constellation. In Proceedings of the AIAA/USU Conference on Small Satellites. Year in Review, SSC14-XII-6, 2014.

[29] Malcolm D. Shuster and Daniel S. Pitone. Batch Estimation of Spacecraft Sen- sor Alignments II. Absolute Alignment Estimation. Journal of Astronautical Sciences, 39(4):547-571, 1991.

[30] Malcolm D Shuster, Daniel S Pitone, and Gerald J Bierman. Batch Estimation of Spacecraft Sensor Alignments I. Relative Alignment Estimation. Journal of Astronautical Sciences, 39(4):519-546, 1991.

[311 Mark E. Pittelkau. Kalman Filtering for Spacecraft System Alignment Calibra- tion. Journal of Guidance, Control, and Dynamics, 24(6):1187-1195, 2001.

[32] Mark E Pittelkau. Everything Is Relative in Spacecraft System Alignment Cali- bration. Journal of Spacecraft and Rockets, 39(3):460-466, 2002.

[33] M. C. Zanardi and Malcolm D. Shuster. Batch, Sequential and Hybrid Ap- proaches to Spacecraft Sensor Alignment Estimation. Journal of Astronautical Sciences, 51(3):279-290, 2003.

[34] J Ahmed, Vt Coppola, and Ds Bernstein. Adaptive Asymptotic Tracking of Spacecraft Attitude Motion with Inertia Matrix Identification. Journal of Guid- ance, Control, and Dynamics, 21(5):684-691, 1998.

[35] Nalin A. Chaturvedi, Dennis S. Bernstein, Jasmin Ahmed, Fabio Bacconi, and N. Harris McClamroch. Globally Convergent Adaptive Tracking of Angular Ve- locity and Inertia Identification for a 3-DOF Rigid Body. IEEE Transactions on Control Systems Technology, 14(5):841-853, 2006.

[36] Julie Thienel, Richard Luquette, and Robert Sanner. Estimation of Spacecraft Inertia Parameters. In AIAA Guidance, Navigation and Control Conference and Exhibit, number August, Honolulu, 2008.

[37] Frederick Leve and Moriba Jah. Spacecraft Actuator Alignment Determination Through Null-Motion Excitation. IEEE Transactions on Aerospace and Elec- tronic Systems, 50(3):2336-2342, 2014.

177 [381 E. V. Bergmann, B. K. Walker, and D. R. Levy. Mass Property Estimation for Control of Asymmetrical Satellites. Journal of Guidance, Control, and Dynam- ics, 10(5):483-491, 1987.

[391 Mark L. Psiaki, Eric M. Klatt, Paul M. Kintner Jr., and Steven P. Powell. Attitude Estimation for a Flexible Spacecraft in an Unstable Spin. Journal of Guidance, Control, and Dynamics, 25(1):88-95, 2002.

[40] Mark L. Psiaki. Global Magnetometer-Based Spacecraft Attitude and Rate Es- timation. Journal of Guidance, Control, and Dynamics, 27(2):240-250, 2004.

[411 Mark L. Psiaki. Estimation of a Spacecraft's Attitude Dynamics Parameters by Using Flight Data. Journalof Guidance, Control, and Dynamics, 28(4):594-603, 2005.

[42] Adam M Fosbury and Christopher K Nebelecky. Spacecraft Actuator Alignment Estimation. In AIAA Guidance, Navigation, and Control Conference, number August, pages 1-18, 2009.

[43] Michael C. Norman, Mason A. Peck, and Daniel J. O'Shaughnessy. In-orbit Estimation of Inertia and Momentum-Actuator Alignment Parameters. Journal of Guidance, Control, and Dynamics, 34(6):1798-1814, 2011.

[441 Mark Pittelkau. RIMU Misalignment Vector Decomposition. In AIAA/AAS Astrodynamics Specialist Conference and Exhibit, number August, pages 1-9, Providence, Rhode Island, 2004.

[45] D. M. Schrello. Passive Aerodynamic Attitude Stabilization of Near Earth Satel- lites. North America Aviation Inc., Columbus OH, 1961. [46] B. Wie, H. Weiss, and A. Arapostathis. Quarternion Feedback Regulator for Spacecraft Eigenaxis Rotations. Journal of Guidance, Control, and Dynamics, 12(3):375-380, 1989.

[47 Simon Julier, Jeffrey Uhlmann, and Hugh F. Durrant-Whyte. A New Method for the Nonlinear Transformation of Means and Covariances in Filters and Esti- mators. IEEE Transactions on Automatic Control, 45(3):477-482, 2000.

[48] Weston Alan Navarro Marlow. Improving attitude determination and control of resource-constrainedCubeSats using unscented Kalman filtering. Master thesis, Massachusetts Institutde of Technology, 2016.

[491 David T Gerhardt and Scott E Palo. Passive Magnetic Attitude Control for CubeSat Spacecraft. In Proceedings of the AIAA/USU Conference on Small Satellites, pages 1-10. Student Competition, SSC1O-VII-5, 2010.

[501 Samir A Rawashdeh and James E Lumpp. Aerodynamic Stability for CubeSats at ISS Orbit. Journal of Small Satellites, 2(1):85-104, 2013.

178 [51] Francisco J. Franquiz, Peter Edwards, Bogdan Udrea, Michael V. Nayak, and Thorsten Pueschl. Attitude Determination and Control System Design for a 6U CubeSat for Proximity Operations and Rendezvous. In AIAA/AAS Astrody- namics Specialist Conference, number August, pages 1-19, 2014.

[52] Jerome R. Vetter. Fifty years of orbit determination: Development of modern astrodynamics methods. Johns Hopkins APL Technical Digest (Applied Physics Laboratory), 27(3):239-252, 2007.

[53] Giovanni B. Valsecchi. 236 years ago... In Proceedings of the InternationalAs- tronomical Union, number 236, page xvii, 2007.

[54] Vivian M. Gomes, Helio K. Kuga, and Ana Paula M. Chiaradia. Real time orbit determination using GPS navigation solution. Journal of the Brazilian Society of Mechanical Sciences and Engineering, 29(3):274-278, 2007.

155] S. C. Wu, T. P. Yunck, and C. L. Thornton. Reduced-dynamic technique for precise orbit determination of low earth satellites. Journal of Guidance, Control, and Dynamics, 14(1):24-30, 1991.

[56] Thomas P. Yunck, Sien-chong Wu, Jiun-tsong Wu, and Catherine L. Thorn- ton. Precise Tracking of Remote Sensing Satellites With the Global Positioning System. IEEE Transactions on Geoscience and Remote Sensing, 28(1):108-116, 1990.

[57] Jae-Cheol Yoon, Byoung-Sun Lee, and Kyu-Hong Choi. Spacecraft orbit deter- mination using GPS navigation solutions. Aerospace Science and Technology, 4(3):215-221, 2000.

[58] Eun-Jung Choi, Jae-Cheol Yoon, Byoung-Sun Lee, Sang-Young Park, and Kyu- Hong Choi. Onboard orbit determination using GPS observations based on the unscented Kalman filter. Advances in Space Research, 46(11):1440-1450, 2010.

[59] Brian G Coffee, Kerri Cahoy, and Rebecca Bishop. Propagation of CubeSats in LEO using NORAD Two Line Element Sets : Accuracy and Update Frequency. In AIAA Guidance, Navigation, and Control Conference, Boston, 2013.

[60] Dwight E. Andersen. Computing Norad Mean Orbital Elements From a State Vector. PhD thesis, Air Force Institute of Technology, 1994.

[61] V P Osweiler. Covariance estimation and autocorrelation of NORAD two-line element sets. Master thesis, Air Force Institute of Technology, 2006.

[62] Michael R Greene and Robert E Zee. Increasing the Accuracy of Orbital Position Information from NORAD SGP4 Using Intermittent GPS Readings. In Proceed- ings of the 23rd Annual AIAA/USU Conference on Small Satellites, number SSC09-X-7, 2009.

179 [63] David Vallado and Paul Crawford. SGP4 Orbit Determination. AIAA/AAS Astrodynamics Specialist Conference and Exhibit, 2008.

[64] Saika Aida and Michael Kirschner. Accuracy Assessment of Sgp4 Orbit Infor- mation. ESA Special Publication, 723:160, 2013.

[651 Danial L. Oltrogge and Jens Ramrath. Parametric Characterization of SGP4 Theory and TLE Positional Accuracy. Advanced Maui Optical and Space Surveil- lance Technologies, 2014.

[661 D. A. Vallado. Fundamentals of Astrodynamics and Applications. Springer- Verlag, New York, 3rd edition, 2007.

[67] David Hobbs and Preben Bohn. Precise Orbit Determination for Low Earth Orbit Satellites. Annals of the Marie Curie Fellowship Association, 4(1):1-7, 2006.

[68] W. H. Clohessy and R. S. Wiltshire. Terminal Guidance System for Satellite Rendezvous. Journal of the Aerospace Sciences, 27(9):653-658, 1960.

[69] Jason Schmidt and Thomas Alan Lovell. Estimating Geometric Aspects of Rel- ative Satellite Motion Using Angles-Only Measurements. AIAA/AAS Astrody- namics Specialist Conference and Exhibit, (August):1-17, 2008.

[70] Hemanshu Patel, T. Alan Lovell, Shawn Allgeier, Ryan Russell, and Andrew Sinclair. Relative navigation for satellites in close proximity using angles-only observations. Advances in the Astronautical Sciences, 143:1485-1495, 2012.

[71] David K. Geller and T. Alan Lovell. Angles-only navigation range observability during orbital rendezvous and proximity operations. Advances in the Astronau- tical Sciences, 154(6):739-755, 2015.

[72] Synclair Interplanetary. ST-16RT2 Datasheet. Technical report, 2016.

[731 Mark L. Psiaki. Autonomous Orbit Determination for Two Spacecraft from Relative Position Measurements. Journal of Guidance, Control, and Dynamics, 22(2):305-312, 1999.

[741 Mark L Psiaki, Ryan M Weisman, and Moriba K Jah. Gaussian Mixture Approx- imation of the Bearings-Only Initial Orbit Determination Likelihood Function. In AAS/AISS Astrodynamics Specialist Conference, number August, 2015.

[75] Keith a. LeGrand, Kyle J. DeMars, and Henry J. Pernicka. Bearings-Only Initial Relative Orbit Determination. Journal of Guidance, Control, and Dynamics, 38(9):1699-1713, 2015.

[76] Jeff Dailey, Hank Voss, Art White, and Stefan Brandle. Globalstar Communi- cation Link for CubeSats. In 29th AIAA/USU Conference on Small Satellites, 2015.

180 [77] Yaakov Bar-Shalom. Update with out-of-sequence measurements in track- ing: Exact solution. IEEE Transactions on Aerospace and Electronic Systems, 38(3):769-778, 2002.

[78] Keshu Zhang, X. Rong Li, and Yunmin Zhu. Optimal Update With Out-of- Sequence Measurements. IEEE Transactions on Signal Processing, 53(6):1992- 2004, 2005.

[791 Shuo Zhang and Yaakov Bar-Shalom. Optimal Update with Multiple Out-of- Sequence Measurements with Arbitrary Arriving Order. IEEE Transactions on Aerospace and Electronic Systems, 48(4):3116-3132, 2012.

[80] Hyosang Yoon, David Sternberg, and Kerri Cahoy. Inrterpolation Method for Up- date with Out-of-Sequence Measurements: The Augmented Fixed-Lag Smoother. Journal of Guidance, Control, and Dynamics, 39(11):2544-2551, 2016.

[81] Samuel Blackman and Robert Popoli. Design and analysis of modern tracking systems. MA: Artech House, Norwood, 1999.

[82] Richard D. Hilton, David A. Martin, and William D. Blair. Tracking with time- delayed data in multisensor systems. Technical report, Naval Surface Warfare Center, Dahlgren, VA, 1993.

[831 Subhash Challa, Robin J. Evans, and Xuezhi Wang. A Bayesian solution and its approximations to out-of-sequence measurement problems. Information Fusion, 4(3):185-199, 2003.

[84] Brian D. 0. Anderson and John B. Moore. Optimal Filtering. Dover Publications Inc., 2005.

[85] B. Wie and P. M. Barba. Quaternion Feedback for Spacecraft Large Angle Maneuvers. Journal of Guidance, Control, and Dynamics, 8(3):360-365, 1985.

[861 H. Yoon, J.H. Choi, Y. Chung, and H. Bang. Practical approach for quick attitude maneuver of spacecraft with actuator saturation. In Proceedings of the InternationalAstronautical Congress, JAC, volume 8, 2012.

[87] Kathleen Riesing. Development of a Pointing, Acquisition, and Tracking System for a Nanosatellite Laser Communications Module. Master thesis, Massachusetts Institute of Technology, 2015.

181