Published in Proceedings of the 2005 AIAA Infotech@Aerospace Conference, Arlington, Virginia, Sep. 2005
Motion-Based Mass- and Thruster-Property Identification for Thruster-Controlled Spacecraft Edward Wilson*, David W. Sutter† Intellization, Redwood Shores, California, 94065 Robert W. Mah‡ NASA Ames Research Center, Moffett Field, California, 94303
Spacecraft control, state estimation, and fault-detection-and-isolation (FDI) systems are all affected by unknown variations in the vehicle mass and thruster properties. It is often difficult to accurately measure inertia terms on the ground, and mass properties can change on-orbit as fuel is expended, the configuration changes, or payloads are added or removed. Multiple concurrent recursive least squares identification (MCRLS ID) algorithms using gyros and accelerometers to monitor vehicle motions are derived and used here to identify on-line the vehicle inertia tensor, inverse inertia tensor, center of mass, thruster force magnitude, and total mass. Originally developed for application to the X-38 v.201 spacecraft thruster FDI system, the algorithms have been extended, refined, and implemented on the MIT SPHERES experimental spacecraft, which are now awaiting launch to the ISS for space-based testing. The MCRLS ID architecture makes approximations that enable application of linear parameter estimation methods to applications where the unknown parameters do not appear linearly in the regression equation. As compared to alternative methods, this approach favors efficiency of algorithm development, re-configurability, and on-line implementation over absolute algorithmic accuracy, which is often limited by other modeling deficiencies or system uncertainties. An accurate and computationally efficient filtering method for estimating angular acceleration from raw gyro signals is presented. The algorithms have been tested extensively in 2-D air-bearing testing on the flight hardware and during brief 0-g testing on the NASA 0-g KC-135. The SPHERES will launch to the International Space Station on STS-121, with a series of experiments following soon after. The experimental plan is presented.
Nomenclature
aˆ ak A , Ak b , bk Bk
= [6-by-1 vector] measured or estimated vehicle acceleration [angular ( αˆ ) and translational ( xˆ = [3-by-1 vector] temporary value used in manipulation of equations for least squares ID
body
= [matrix] a matrix in the general formulation of the LS problem, based on measurements at time step, = [vector] see A , Ak above
Ax ≅ b . Ak is the sub-matrix of A
k.
= [scalar] blowdown multiplier, a single scaling factor applied to all thrusters representing the reduction in thrust due to tank depletion = [3-by-1 vector] temporary value used in manipulation of equations for least squares ID
ck C dk
= [3-by-1 vector] x-y-z coordinates of the CM in the structural frame = [3-by-1 vector] temporary value used in manipulation of equations for least squares ID *
President,
[email protected], AIAA Senior Member Senior Research Scientist,
[email protected] ‡ Research Scientist, SSRL Group Lead,
[email protected] †
)]
D = [3-by- N matrix] unit vectors indicating the direction of thrust in the body frame f , f k , f kbody = [3-by-1 vector] net force on the vehicle through the center of mass. k subscript indicates the value at time step k . body superscript indicates measurement in the body frame, otherwise measurement is in the inertial frame.
Fk = [ N -by-1 vector] force from each thruster at time step k Fbias = [ N -by- N diagonal matrix] constant off-nominal strength of each thruster at full tank pressure Frandom ,k = [ N -by- N diagonal matrix] pulse-to-pulse off-nominal strength of each thruster at full tank pressure Fnom Fnom , k g ()
= [ N -by- N diagonal matrix] nominal strength of each thruster at full tank pressure = [ N -by-1 vector] nominal force from each individual thruster at time step
blowdown and firing commands = Function that calculates the multi-jet multiplier, S k , based on the number of thrusters firing simultaneously. S k = g (
h
I
k , accounting for estimated
∑T ) k
= [3-by-1 vector] vehicle angular momentum = [3-by-3 matrix] true spacecraft inertia tensor (also, dyadic, matrix), measured about the true center of mass. = [3-by-3 matrix] nominal spacecraft inertia tensor, measured about the nominal center of mass
I nom J = [3-by- N matrix] x-y-z location of each thruster in the structural frame k = [scalar] control (and ID) update counter L , Lnom = [3-by- N matrix] x-y-z location of each thruster in the body frame (this changes as the [true for L and nominal for Lnom ] center of mass changes) m = [scalar] vehicle total mass. M thrusters ,k = [3-by-1 vector] moment on the vehicle about the CM due to the thrusters firing at time step k n = [scalar] number of separate linear IDs used in MCRLS ID N = [scalar] number of thrusters r , rα , rω = [3-by-1 vector] radius from the acceleration reference point (e.g., C or [0;0; 0] ) to the accelerometer proof mass ( r ), accelerometer effective center of mass for angular acceleration ( rα ), or accelerometer effective center of mass for angular rate ( rω ). R = [3-by-3] direction cosine matrix used to rotate a vector from the body frame to the inertial frame (inertial = R body) Sk = [scalar] thruster magnitude scale factor applied to all thrusters. Includes effects of blowdown and the reduction in thrust when multiple thrusters are fired.
Tcommand ,k = [ N -by-1 vector] which thrusters are commanded to fire at time step k . 0 when thruster is
Tk
commanded off, 1.0 when commanded to fire, in between if pulse-width modulated, indicating the fraction of on time. = [ N -by-1 vector of 1’s and 0’s] effective value for which thrusters fire at time step k , accounting for
v ()
transient effects, but not for the multi-jet firing effect. = function that calculates Tk as a function of present and past values of Tcommand , k as well as the true fault mode. Tk = v (Tcommand ,1 ," , Tcommand , k , T failed
off , k
, T failed on , k )
x = [3-by-1 vector] vehicle position, measured in an inertial reference frame body x , x = [3-by-1 vector] vehicle translational acceleration, measured in an inertial reference frame (no superscript) or the body frame (body superscript)
2
xˆbody
= [3-by-1 vector] translational acceleration components of
αˆ
= [3-by-1 vector] angular acceleration components of
aˆ , as defined above
∆C
aˆ , as defined above = [3-by-1 vector] the difference between C and Cnom , ∆ C C − Cnom
∆I
= [3-by-3 symmetric matrix] the difference between I and I nom , ∆ I I − I nom
∆ I −1
= [3-by-3 symmetric matrix] the difference between I
−1
−1
and I nom ,
−1 ∆ I −1 I −1 − I nom
τ τ disturb
= [3-by-1 vector] sum of all torques on the vehicle, measured about the center of mass = [3-by-1 vector] sum of all torques on the vehicle resulting from other sources (drag, gravity gradient,
ω
etc.) = [3-by-1 vector] the angular velocity of the body-fixed frame with respect to an inertial reference frame
Superscripts: nom = the variable is calculated using the nominal parameters. body = measurement is in the vehicle body frame. ^ = an estimated or identified quantity. ~
= the error in an identified quantity, so for example
∆ C ∆ C − ∆ˆ C or Fbias = Fˆbias + Fbias .
Coordinate frames: Body frame – axes are aligned (parallel with, and pointing in the same direction) with the “Structural frame,” with the origin at the vehicle true center of mass. Inertial frame – fixed in inertial space, so Newton’s laws of motion can be used without coordinate transformation. Structural frame – fixed in the body (for example, at the geometric center). Abbreviations are listed in Appendix A.
I.
Introduction
Due to the very small disturbance forces and torques present on spacecraft on orbit and in free space, accurate knowledge of their mass and thruster properties is important from a control and estimation standpoint. Fortunately, these features also make it feasible to identify these properties on-line using measurements of vehicle motions. GPS Antenna
LED Array
Single Camera
Dual Cameras
GPS Antenna
Figure 1. Spacecraft used in development: (left to right) X-38 v.201, Mini AERCam, MIT SPHERES Spacecraft mass properties can be calibrated with limited accuracy during ground testing, and change further once on orbit due to expulsion of fuel mass, reconfiguration (of antennae, etc.), and for servicing robotic spacecraft, potentially variable payloads. For most spacecraft, the relative magnitude of uncertainty is, in decreasing order: products of inertia, moments of inertia, center of mass, and total mass. An important difficulty encountered is that the unknown parameters do not appear linearly in the governing physical equations of motion. Accurate ID of mass properties has been studied extensively, but those methods have limitations as compared to the present research, and have not yet been implemented and tested on-line on an actual spacecraft.
3
This paper will present recent advances in algorithms developed to achieve accurate on-line ID. These algorithms use and reference the MCRLS ID algorithm1,2. Initial mass-property ID algorithms as developed for the X-38 v.201 spacecraft and Mini AERCam3 are updated and extended here. Experimental results validating a subset of these algorithms on the MIT SPHERES spacecraft in zero-g aircraft flight tests are presented in4. These spacecraft are shown in Figure 1. A. Related research The use of linear least squares regression for the identification of unknown system parameters has been used and studied extensively, as by Lawson5 Ljung6. However, the requirement that a regression equation be formed with the unknown parameters linearly represented limits its direct applicability to many important problems, including the spacecraft application presented here. Tanygin and Williams developed a least squares (LS) based algorithm to identify mass properties for a spinning vehicle during coasting maneuvers7. The restriction to the case of a spinning spacecraft with no applied torques or thrusters firing limits its applicability considerably. Bergmann, et al.8,9,10 developed an ID approach using a Gaussian second-order filter11, which resembles an extended Kalman filter, but has extra terms to address the second order effects. This is significantly more complex and computationally intensive (by about two orders of magnitude) than the approach presented here, and may not produce better results for most spacecraft. Due to the extra complexity, it may be more susceptible to noise and parameter variations than the presented methods. It assumes perfect knowledge of thruster properties. It also ignores the gyroscopic term ( ω × ( I ω ) ). Peck12,13 uses the conservation of angular momentum of a spinning spacecraft to estimate inertia properties, even in the presence of sloshing fuel or significant gravity gradient torques. Lee and Wertz14 developed a method for estimation of the Cassini spacecraft’s inertia tensor. This method accounts for the effect of reaction wheel assemblies, assuming constant total angular momentum during a slew, and uses a least-squares approach. This development is similar to the approach presented here, except that it is limited to estimation of inertia properties. Significant limitations in these approaches that the present research effort has sought to overcome are the increased computational complexity, rigid assumptions on thruster and dynamic properties, and lack of flexibility in adding or removing properties from the list of identified parameters. Also, some of these examples estimate inertia properties only. Some examples do not consider the use of thrusters, which is the primary situation considered by this research. Wilson and Rock15,16 developed an ID method based on exponentially weighted RLS using accelerometer and angular rate sensors. Driven by the requirements of real-time on-line implementation as part of a reconfigurable fault-tolerant control system, the problem was reformulated to ID the accelerations resulting from thruster firings. By identifying the acceleration directly, reflecting both mass and thruster properties, the regression function was linearized. A neural network then provided adaptive control reconfiguration to multiple destabilizing hard and soft thruster faults. This was implemented on a 3-degree-of-freedom air-bearing vehicle. This approach (identifying thruster acceleration rather than separately identifying mass and thruster properties) is more direct (since thruster acceleration is the real value of interest from a control, estimation, or fault detection standpoint), and probably better for vehicles with properties that are truly unknown (such as for the case where deflected thrusters are allowed, such as on the vehicle tested in that research). However, for most vehicles, certain properties are well known, such as the thrust directions and locations in the structural frame. The approach presented here can take advantage of that knowledge to get better estimates of the properties that are not well known. The MCRLS algorithm enables the application of linear methods, such as recursive least squares (RLS) ID to certain nonlinear parameter estimation problems. Originally developed to address this spacecraft mass-property ID problem, it allows the nonlinear ID problem to be segmented into linear parts1. So the ID algorithms presented here (for inertia, thruster strength, etc.), may be considered without regard to the variability present in the other unknown parameters (an approximation). In summary, in contrast to the existing body of related research, this work derives a series of linear regression equations for many vehicle properties of a thruster-actuated rigid spacecraft: inertia tensor, inverse inertia tensor, center of mass, mass, and thruster force magnitude. These include the cases of measurements from gyros only, and also with accelerometers if available and useful. With this array of linear regression equation options to use, the sensors to use and parameters to be identified can be selected and readily identified using the MCRLS architecture, avoiding the need to effectively start from scratch for a new vector of parameters. For example, the Gaussian second order filter methods8,9,10 identify inverse inertia
4
and center of mass using gyro measurements, but ignore the ω × ( I ω ) term, assume perfect knowledge of thruster properties, and do not use accelerometers if they were available. Extending the Gaussian second order filter method to account for these effects, if possible, would result in a very different algorithm. The present approach, which finds an approximate solution to the nonlinear problem using coordinated linear solutions, will be sub-optimal to a nonlinear solution in estimation accuracy. However, for many applications, including the ones studied here, this suboptimality is less than the error inherently present due to other problem imperfections such as: sensor noise and bias; imperfectly modeled disturbances; thruster misalignment; and pulse-to-pulse thruster force variability. Since any motion-based ID method is reliant on the accuracy of the measurement data used, great care has been taken here to get highly accurate angular and translational acceleration estimates from the gyros and accelerometers. A unique special case that IDs the inertia tensor using both accelerometer and gyro measurements when thrusters are fired one at a time has been developed that effectively removes thruster uncertainty (misalignment and force) from the problem. These factors would otherwise be the dominant error sources for many applications. Some of the related research directly addresses effects of significant importance to those applications, but unaddressed here, including: use of reaction wheel assemblies (RWAs); gravity-gradient torque; and sloshing fuel. The extension to incorporating RWAs and gravity-gradient torque is expected to be straightforward, likely following Ref. 12 or 14. B. Range of applicability The basic MCRLS algorithm is a method for identifying unknown parameters in a system having a mathematical model describing its behavior and one or more measurements that are sampled regularly, and where the system’s governing equations cannot be manipulated into a form allowing (direct) linear regression of the unknown parameters. In this method, the single nonlinear problem is segmented into a plurality of separate problems that are exactly linear, thereby enabling the application of existing powerful linear regression algorithms such as recursive least squares (although any other linear method may be substituted for RLS). The individual linear sub-problems contain unknown parameters other than those that are identified; said parameters are initially set at their nominal values, and are subsequently updated by the other ID processes, which are running concurrently. With all subproblems sharing their results following each update, the results rival those of more computationally intensive nonlinear optimization algorithms. As long as reasonable initial parameter estimates are available, the approximation error for the spacecraft mass-property ID example is significantly smaller than that created by other un-modeled system parameters. C. Problem definition Development of the vehicle-property identification technology was driven through application in simulation to two specific spacecraft, the X-38 and the Mini AERCam, primarily to support thruster fault detection and isolation (FDI) capabilities. It was refined and extended through (on-going) hardware application for the MIT SPHERES experimental spacecraft. Specifics regarding these applications are listed in this section. 1. X-38 The Crew Return Vehicle (CRV) design consisted of a manned space vehicle, the Entry Vehicle (EV), based on a lifting body design, and a De-orbit Propulsion Stage (DPS). The CRV was designed to remain docked to the space station in a dormant mode until needed by the crew in an emergency. The X-38 (vehicle 201), shown in Figure 1, was to be the unmanned test vehicle for the CRV, until the cancellation of the X-38 program in 2002. Both vehicles were designed to maneuver on-orbit, de-orbit, and land using a large parafoil. The DPS includes a set of axial and RCS thrusters fed by three mono-propellant hydrazine tanks. Although the CRV design used pressure sensors in the thrusters to detect faults, the X-38 had only temperature sensors. In a related research development, a fault detection and isolation system was developed that uses only gyro signals (angular rates) to detect and isolate single- and multiple-jet hard-on or hard-off thruster faults17,18. Motion-based thruster FDI is dependent on an accurate dynamical spacecraft model, including accurate thruster and mass-property characterization. Mass-property uncertainty and variability is especially difficult for the X-38 or CRV due to the significant effects of fuel depletion (e.g., moves the CM forward by 20 cm as the DPS tanks empty) and unknown payload for the CRV, depending on the astronaut loading. This requirement was the original driver for this research.
5
2. Mini AERCam The Automation, Robotics, and Simulation Division of NASA Johnson Space Center is leading the development of the Miniature Autonomous Extravehicular Robotic Camera (Mini AERCam), a free-flying robotic inspection vehicle19,20,§. The Mini AERCam technology demonstration unit has been integrated into the approximate form and function of a flight system. The spherical Mini AERCam free flyer is 19 cm in diameter with a mass of approximately 4-5 kg, yet it incorporates significant additional capabilities compared to the 16 kg, 36 cm AERCam Sprint free flyer that flew as a remotely piloted Shuttle flight experiment in 1997, shown in Figure 2. It has 12 coldgas thrusters to provide attitude and translational control.
GPS Antenna
LED Array
LED Array Shield
Top Hemisphere Gyro Package Refuel Cluster
Transceiver Package
Single Camera Cluster Power Button Cluster
Single Camera
Dual Camera Cluster Avionics Board
Dual Cameras
GPS Antenna
GSE Port (x2)
Center Structural Rin
GPS Receiver Bottom Hemisphere
Figure 2. AERCam Sprint during STS-87 (top) and Mini AERCam (bottom) The Mini AERCam vehicle is designed for either remotely piloted operations or supervised autonomous operations including automatic station keeping, point-to-point maneuvering, and automated docking approaches. Free-flyer testing has been conducted on an air-bearing table and in a six degree-of-freedom closed-loop orbital simulation. Being a highly autonomous free-flying spacecraft in close proximity to the Shuttle or ISS, thruster FDI and mass-property ID to support it are very important.
§
http://aercam.nasa.gov
6
3. MIT SPHERES SPHERES (Synchronized Position Hold, Engage, Reorient, Experimental Satellites) is a program developed by the MIT Space Systems Laboratory and Payload Systems, Inc. to provide MIT, government and other scientists with a long term, replenishable, upgradeable and cost-effective laboratory that exploits the microgravity conditions of space to approximate the dynamics presented by distributed satellite and docking missions21,22,23. The SPHERES testbed will be used for the validation of high risk control and autonomy technologies critical to the operation of these missions. SPHERES provides a low-risk, representative dynamic environment for the interactive development and verification of formation flight, rendezvous, and docking control and autonomy algorithms. -X
Thruster
Ultrasonic receiverss receiver CO2 tank
Adjustable regulator
Pressure gauge
+Z
-Y
Figure 3. SPHERES components The SPHERES testbed consists of three micro-satellites, one of which is shown in Figure 3, which can control their relative positions and orientations in up to six degrees of freedom. The testbed can operate in 2-D (3-DOF motion) on a laboratory platform and in 3-D (6-DOF motion) on NASA’s KC-135 and inside the International Space Station (ISS), as shown in Figure 4. Flight tests aboard NASA’s KC-135 have confirmed the functionality of SPHERES as an autonomous docking and formation flight testing platform with dynamics representative of true spacecraft, and the testbed is currently scheduled for launch to the International Space Station (ISS) on STS-121 in 2006. This experimental spacecraft is serving as the hardware platform for in-space validation of the ID technology. Its relevant characteristics are described in detail. Hardware The SPHERES have on-board propulsion, processing, RF communication, and position and attitude determination systems. They use five ultrasound (US) transmitter beacons to define a work area in which the satellites can navigate, and a laptop computer that acts as a “ground station” to provide experiment control. Multisatellite control algorithms are loaded into the satellites’ onboard computers via RF, and the satellites are deployed by the operator within the work area created by the US beacons. All testing occurs in the pressurized volume of the International Space Station. The satellites are self-powered by batteries and carry enough CO2 propellant to enable test sessions of approximately one hour with normal thrusting. They operate semi-autonomously, requiring human interaction primarily for replenishment of consumables and to command the beginning of each test. The aluminum frame structure provides mounting locations for the subsystems, while the two-piece polycarbonate shell protects them. Some of the important hardware specifications are highlighted below: • The flight software is written in C/Embedded C++, and runs on a Texas Instruments C6701 DSP at 167 MHz. Sensor data are sampled and digitized by an FPGA at 12 bit resolution.
7
• •
Actuation is provided by twelve cold-gas thrusters fed by a tank containing liquid CO2 propellant. Thruster forces are fixed, but pulse modulation to a time resolution of one millisecond can be used to provide effective variable impulse levels. The position and attitude determination system has both inertial and external sensors. Gyroscopes and accelerometers are available for rapid updates to the state estimate over short time periods, and ultrasonic time of flight range measurements from wall-mounted beacons to the sphere surfaces are used to update the state estimate with respect to the laboratory reference frame.
Figure 4. Experiments on NASA Ames air-bearing table; NASA KC-135; and as to be conducted on ISS Launch Schedule/Operations The first SPHERES and consumables are scheduled for launch on STS-121 in 2006. The second and third SPHERES and the bulk of the consumables will launch two flights later on STS-116. The first elements (one beacon and beacon tester) of the system were flown to the ISS on Russian Progress flight 12P. Astronauts will monitor the experiments on ISS and provide feedback to the scientists on the ground approximately every two to four weeks. Using this feedback, scientists will enhance the performance of their controllers and send updated algorithms to ISS.
II. Technology development, derivations All analysis has been done in inertial free space, so gravity is not included and earth-referenced frames such as LVLH have not been used. Gravity gradient torques, solar pressure, and aerodynamic drag are expected to be negligible for the spacecraft applications studied. However, if significant for other applications, they may be calculated and included by the ID algorithms as a modeled disturbance. In contrast to the treatment of these effects, the thrusters, being the principal actuators, will be modeled as accurately as possible, taking into account transient and multi-jet firing characteristics. The level of detail warranted is determined by the magnitude of the remaining uncertainty. In the spacecraft studied, major uncertainties included pulse-to-pulse thrust magnitude, vibrationinduced sensor noise, and thruster misalignment. Steps are taken throughout the derivations to enable a matrix representation, although the mathematical operations do not need to be done with matrix math. For example, Fnom and other terms are represented as diagonal matrices and matrix operations are used rather than elemental operations. The matrix-based construction of these and other equations enables a more mathematically compact representation, and facilitates the matrix manipulations
8
that occur throughout the derivations. Alternatively and perhaps more directly, the expression for Fk could, for example, be written as for i = 1 to N , Fk (i ) = S k ( Fnom (i ) + Fbias (i ) + Frandom , k (i ))Tk (i ) , where Fnom , etc. are represented minimally and logically as vectors rather than diagonal matrices. A. Equations of motion 1. Rotational EOM Starting with Euler’s dynamical equation, and assuming the spacecraft inertia tensor is constant, the rotational equations of motion (EOM) are derived as follows24. Euler's dynamical equation:
dh =τ , dt
(1)
where h = Iω , τ is the sum of all external torques on the body, and the time derivative is with respect to an inertial reference frame. The vehicles studied here do not have reaction wheels or control moment gyros, but if they did, they could be modeled using additional terms in h . τ is broken up into M thrusters , the moment due to the thrusters and τ disturbance , the torque due to other sources, such as solar pressure, atmospheric drag, and gravity gradient.
τ = M thrusters + τ disturb
Taking the time derivative with respect to a body-fixed frame rotating with angular velocity,
h + ω × h = τ ,
(2)
ω , this becomes (3)
where h , ω , and τ are all defined in the rotating body frame. If the inertia tensor is a function of time, after differentiating, this becomes
or
Iω + Iω + ω × ( Iω ) = τ ,
(4)
Iω + Iω + ω Iω = τ ,
(5)
where the matrix-multiply implementation of the cross product calculation is used later to facilitate derivation of the matrix algebra.
−ω3
⎡ 0 ω ⎢⎢ ω3 ⎢⎣ −ω 2
0
ω1
ω2 ⎤ −ω1 ⎥⎥
(6)
0 ⎥⎦
Since the rate of change of the inertia tensor is relatively slow, it is assumed that I = 0 , so ω can be expressed as
ω = I −1 (τ − ω × ( Iω ))
(7)
ω = I −1 (τ − ω Iω ) ,
(8)
or**
or, with individual vector and matrix elements shown,
**
A reference for derivation of rotational equations of motion up to this point is Chobotov, “Spacecraft Attitude Dynamics and Control”, 1991.
9
⎛ ⎡ I11 ⎡ω1 ⎤ ⎢ω ⎥ = inv ⎜ ⎢ I ⎜ ⎢ 12 ⎢ 2⎥ ⎜ ⎢I ⎢⎣ω 3 ⎥⎦ ⎝ ⎣ 13
I12 I 22 I 23
I13 ⎤ ⎞ ⎛ ⎡τ 1 ⎤ ⎡ 0 ⎟⎜ I 23 ⎥⎥ ⎟ ⎜ ⎢⎢τ 2 ⎥⎥ − ⎢⎢ ω3 I 33 ⎥⎦ ⎟⎠ ⎜⎝ ⎢⎣τ 3 ⎥⎦ ⎢⎣ −ω 2
−ω3 0
ω1
ω 2 ⎤ ⎡ I11 −ω1 ⎥⎥ ⎢⎢ I12 0 ⎥⎦ ⎢⎣ I13
I12 I 22 I 23
I13 ⎤ ⎡ω1 ⎤ ⎞ ⎟ I 23 ⎥⎥ ⎢⎢ω 2 ⎥⎥ ⎟ . I 33 ⎥⎦ ⎢⎣ω3 ⎥⎦ ⎟⎠
(9)
2. Translational EOM The translational equations of motion are derived from Newton’s second law of motion,
f = mx or x = m −1 f ,
(10)
or, with individual vector and matrix elements shown,
⎡1 x1 ⎤ ⎢ m ⎡ ⎢ ⎥ ⎢ ⎢ x2 ⎥ = ⎢ 0 ⎢⎣ x3 ⎥⎦ ⎢ ⎢⎣ 0
0 1
m
0
0 ⎤ ⎥ ⎡ f1 ⎤ 0 ⎥ ⎢⎢ f 2 ⎥⎥ . ⎥ ⎥ 1 ⎢⎣ f 3 ⎥⎦ m ⎥⎦
(11)
The torque in Equation (9) and force in Equation (11) are determined primarily by the thruster firings as described below. 3. Thruster force and torque models
Fk , the thrust magnitude from each individual thruster at each control update, can be expressed as the following function, which accounts for: • Thruster command – i.e., whether a thruster is commanded to fire at this control update • Thruster faults – whether thrusters have failed off or on • Thruster transient effects – latency when thrusters are turned on or off, as well as transient variations in thrust are modeled • Reduction in thrust due to blowdown • Reduction in thrust due to multi-jet firing • The nominal thruster magnitude • A constant random bias added to the nominal value • A random pulse-to-pulse offset added to the nominal value
Fk = S k ( Fnom + Fbias + Frandom ,k )Tk
(12)
where S k accounts for blowdown in some systems and for the reduction in thrust when multiple thrusters fire (generally, regulated cold gas systems). For blowdown systems (e.g., X-38 DPS), S k = Bk .
(13)
In this case, Bk accounts for the reduction in thrust as the propellant tank(s) empties. As the fuel volume decreases, the (Nitrogen) gas bladder that pressurizes the tank expands, reducing its pressure. As this pressure drops, the fuel flow rate drops, causing the thrust to drop. For typical regulated cold gas systems (such as NASA JSC X-38 ACS, MIT SPHERES, NASA JSC Mini AERCam), where the pressure drop across the regulator increases as the number of thrusters increases,
S k = g (∑ Tk ) .
(14)
In this case, S k accounts for the reduction in thrust when multiple thrusters fire, and is represented as a function of the total number of thrusters firing at a given update time. A common way to model this effect is with a linear function such as the ones used by Wilson16 or Chen25 to characterize the thrust in the SPHERES spacecraft. In that example,
10
S k = 0.1865 − 0.0106∑ Tk .
(15)
Tk indicates the effective amount that each thruster is on (nominally ranges from 0.0 to 1.0), accounting for whether the thruster is commanded to fire, whether it has failed on or off, and the history of preceding thruster firings. It is calculated using the following function, (16) Tk = v(Tcommand ,1 ," , Tcommand ,k , T failed off ,k , T failed on ,k ) .
thruster command
The modeling and estimation approaches taken here analyze the acceleration that results over the control period when thrusters are fired. The computations are simplified by making the assumption that the thrusters produce a thrust that is constant during each sample period. In practice, latency, build up, trail off, and possibly thrust ringing are not negligible and can be modeled26.
nominal thrust
time
thrust multiplier
time
acceleration estimate
time Raw gyro sample Estimated rate Estimated acceleration
time
Figure 5. Approximation method to account for thruster transient behavior It is also possible to account for thruster transient effects with a simpler model as illustrated in Figure 5. For example, function v() in Equation (16) produces the 3rd plot in Figure 5. So if the commanded thrust level looks like the upper plot in Figure 5, but the nominal resulting thrust (using a nominal representation of latency, build up, trail off, ringing, etc.) is actually as shown in the second plot, then that thrust can be represented as the scaling values shown in the third plot, which represent the average thrust over the control update period (control updates occur at the vertical lines). The fourth plot in Figure 5 shows the estimated acceleration, aˆ , derived from the gyro signal (slight deviation from nominal added intentionally in this illustration). If multiple thrusters are firing, the effective thrusts would be superimposed.
11
The steps that take the thrust command and convert it to the effective thrust (Equation (16) or equivalently the third plot in Figure 5) are implemented as a pre-processor to the ID algorithms presented here–so those algorithms run unaltered. A simpler alternative, which may be acceptable depending on the application, would be to ignore any acceleration estimates that include the effects of thruster build up or trail off. In the simplified case where transient effects are not modeled, this can be written as Tk = max(min(Tcommand ,k , T failed off ,k ), T failed on ,k ) . (17) The true values of
Bk , Fbias , or Frandom ,k are unknown to the control, FDI, and ID systems, but Bk and Fbias
could be identified. There may be an unknown difference between
Tk and Tcommand ,k due to thruster faults and
transient effects. The net force through the CM due to thrusters, measured in the body frame, can be calculated using the forces and directions of each thruster. body fthrusters , k = DFk
(18)
The force vector is then rotated from the body to the inertial frame using the direction cosine matrix, R , as is needed to calculate the acceleration in inertial space.
fthrusters ,k = RDFk
(19)
A force disturbance term is also added (defined in inertial space), resulting in the total force on the vehicle. This force disturbance is defined as acting on the true CM, so there is no net torque produced. Any disturbance torque would be represented in τ disturb .
f = fthrusters ,k + f disturb
(20)
f = RDFk + f disturb
(21)
The moment due to thruster firings at time k , M thrusters ,k , referenced to the vehicle’s center of mass (the true CM, which is not known exactly) and defined in the vehicle frame is modeled as M thrusters ,k = ( L × D) Fk ,
(22)
where L and D are [3-by- N ] matrices containing the location and direction of each thruster. Each column contains the information for an individual thruster, and the cross product shown here indicates that the
i th column of
L is crossed with the i th column of D and entered into the i th column of the resulting [3-by- N ] matrix. Adding the disturbance term from (2),
τ = ( L × D) Fk + τ disturb .
(23)
The resulting torque about the CM and force through the CM, measured in the body frame, can now be written, by combining Equations (21) and (23) (and using R contains the EOM in the body frame.
−1
to rotate from inertial to body frames). Equation (24)
⎡ τ ⎤ ⎡L × D⎤ ⎡ τ disturb ⎤ = + F k ⎢ R −1 f ⎥ ⎢ f body ⎥ ⎢ D ⎥ ⎦ disturb ⎦ ⎣ ⎦ ⎣ ⎣
(24)
Most of the analysis in this research uses this formulation (i.e., force is calculated in the body frame); however, when integrating the equations of motion for simulation purposes, the net force in inertial space is needed. Equation (25) contains the EOM in the inertial frame.
⎡τ disturb ⎤ ⎡τ ⎤ ⎡L × D⎤ ⎢ f ⎥ = ⎢ RD ⎥ Fk + ⎢ f ⎥ ⎦ ⎣ ⎦ ⎣ ⎣ disturb ⎦
12
(25)
4. Combined equations of motion Combining the above results (specifically, (7) (12) and (23), repeated here††), rotational motion is governed by Equation (26)
ω = I −1 (τ − ω × ( Iω ))
(7)
Fk = S k ( Fnom + Fbias + Frandom ,k )Tk
(12)
τ = ( L × D) Fk + τ disturb
(23)
ω = I −1 (( L × D) Sk ( Fnom + Fbias + Frandom ,k )Tk + τ disturb − ω × ( Iω ))
(26)
Similarly combining (10) (12) and (21) (repeated here), translational motion is governed by Equation (27).
f = mx or x = m −1 f
(10)
Fk = S k ( Fnom + Fbias + Frandom ,k )Tk
(12)
f = RDFk + f disturb
(21)
(
x = m −1 RDSk ( Fnom + Fbias + Frandom ,k ) Tk + f disturb
)
(27)
The x here is measured in the inertial frame, which is needed in simulation. However, when doing ID, the relevant equation will relate to the available sensors. In this case, we assume to have accelerometers that measure accelerations directly in the body frame, so the rotation from body to inertial frame can be removed.
(
body xbody = m −1 DSk ( Fnom + Fbias + Frandom ,k ) Tk + f disturb
)
(28)
To summarize, Equations (26) and (27) are used in simulation of the vehicle motions. Equations (26) and (28) are used for ID, since they contain the available sensors (gyros give
ω , accelerometers give xbody ).
B. Estimating acceleration The ID algorithms are based fundamentally on analysis of the vehicle motions, during coasting or thruster-firing periods. Consequently ID accuracy is dependent on and limited by the accuracy of the velocity and acceleration estimates. This section summarizes the special-purpose algorithms developed to estimate angular rate, angular acceleration, and translational acceleration from the gyros and accelerometers (if available). These algorithms have been developed, tuned, implemented, and tested on the MIT SPHERES spacecraft, so they address the common issues of vibration disturbances and efficiency requirements for real-time code implementation. The estimated acceleration, aˆ (consisting of αˆ and xˆ ), is required at each ID update. If it is not directly measurable, it must be estimated. The applications presented here estimate aˆ using rate gyros and translational accelerometers, but the choice of sensors and the estimation method used are both independent of the ID algorithms. For example, if sufficiently accurate aˆ estimates can be obtained from a star tracker or GPS system, the ID would proceed unaltered. The EOM are modeled assuming that the thrust is constant during each control sample period, and the ID algorithms require estimates of accelerations corresponding to these control sample periods. So, for example, if latency in the control system causes a constant time-shift between thruster command and resulting acceleration, that must be accounted for. It is therefore important that any significant phase lag produced by the estimation method can be avoided, as that would distort the estimated correlation between the thruster command and resulting acceleration. It is also important that the estimation method accounts for the fact that thruster faults may be present – and does not make use of thruster knowledge in the estimation. So, for example, a Kalman Filter using a thruster model was not used since in the time update it would be using a model of the thrusters that might change suddenly. body
††
In this paper, repeated equations are listed with the original equation number, in italics.
13
1. Estimating angular acceleration using gyros In the application examples studied here, αˆ is calculated at each control update based on the gyro samples covering one full control interval (100 in the case of SPHERES, with 10 Hz control and 1000 Hz sampling rates). Assuming small angular rates (so axes are dynamically de-coupled) and that acceleration is constant during each control time period (corresponding to thruster firing times), the filtering method assumes that the velocity should change linearly over the segment of data. Since these algorithms are to be used in a thruster FDI system, where hard abrupt thruster faults can appear at any time, the filtering approach does not use any data beyond the control period in question. This is also important since either ID or FDI algorithms need to relate the measured motions during a particular control period to the thruster commands during that period. However, any sufficiently accurate filtering approach may be substituted for the one presented here and used with the ID algorithms. SPHERES gyro filtering was driven by two major issues: test data indicated a significant ringing following thruster opening and closing; and the constraints of real-time implementation (code size, development complexity, cycle time). The 1 kHz gyro data was processed in a batch following each control period, 100 samples at a time. In this approach, the segment of raw gyro readings covering the control segment of interest (during which thrust should be constant) is low-pass filtered with a forward-backward zero-phase smoothing filter to remove high frequency structural vibrations and vibration-induced ringing of the gyro’s tuning fork. A line is then fit using a linear least squares regression to the smoothed result, with the slope of the line providing the angular acceleration estimate. Since it used only samples taken during the thruster firing of interest, the estimate is thus properly correlated with the thruster firing that caused it. Also, no reliance on thruster properties was made in the estimate.
z-axis gyro, raw and estimated data
angular rate [rad/sec]
-0.9
raw (scaled+biased) samples estimated values
-0.95
-1
-1.05
62.85 62.9 62.95 63 63.05 63.1 63.15 63.2 time [sec] Figure 6. SPHERES gyro data from KC-135 0-g flight test, showing ringing and on-board filter performance While the above describes the algorithmic functionality, due to the constraints of real-time processing, it is desirable to implement this derivative filter using as little code memory, processor cycles, and software development time as possible. An approach was developed that takes advantage of the fact that both low-pass filtering and leastsquares line fitting act as linear operations on the data, meaning that the combination of the two is also linear. This means that the two-step procedure can be implemented as a single vector multiplication of a vector of filter
14
coefficients with the data segment. Further, the vector of filter coefficients can be determined automatically through a process whereby each point, one at a time, is set to one and the two-step filter process output then equals the value of the corresponding coefficient. This approach has the additional benefit of greatly simplifying filter modifications: filter design changes and coefficient calculation are done automatically using MATLAB27, which then automatically writes the C-code containing the filter coefficients. The automation of this process is significant in preventing bugs possible whenever the real-time code is modified. Figure 6, using SPHERES data taken during flight tests aboard the NASA 0-g KC-135A in Nov. 2003, shows an example of the ringing induced whenever a thruster is opened or closed. In this case, the end of an 800-ms firing period occurs at 63.0 seconds. Prior to this, the signal is fairly clean, with a negative slope due to the applied torque. A latency of a few milliseconds follows 63.0 seconds, at which point the thrusters close for a 200 ms coasting period. This 338 Hz ringing is close to the 500 Hz Nyquist frequency (a single-pole 300 Hz analog pre-filter is used, which does not do much for this ringing), with the near-aliasing resulting in the pattern shown. The ringing is handled very effectively, as seen by the relatively consistent acceleration estimates in the previous plot. The segments defined by the on-board-estimated rates and accelerations are overlaid on the raw gyro data to demonstrate the estimator’s ability to filter out the gyro ringing while providing accurate and high bandwidth estimation. 2. Estimating translational acceleration using accelerometers Translational acceleration estimation is simpler, since the sensors measure acceleration directly (vs. requiring differentiation), but complicated by the fact that correction for angular motions is required. The first step performs a vector-multiply averaging operation (re-using the code from the angular motion estimation, with different filter coefficients), returning the translational acceleration at the accelerometers. Since the accelerometers can not be located exactly at the point at which acceleration measurement is desired (e.g., the center of mass or the geometric center), centripetal and angular accelerations will cause the accelerometers to return measurements that are a superposition of three effects: 1. Translational acceleration of the reference point. 2. Centripetal acceleration proportional to the angular rate and the distance of each accelerometer’s effective center of mass for omega, rω , from the reference point. 3.
Tangential acceleration proportional to the angular acceleration and the distance of each accelerometer’s effective center of mass for alpha, rα , from the reference point.
If the accelerometer proof mass were a point mass, and the suspension (typically a pendulum) were mass-less, then rω and rα would be equal to the proof mass location. Equation 1 shows the correction of the acceleration measured at the accelerometer, aˆa , to acceleration at point c , aˆc , based on angular acceleration, rate,
ω0 , and the segment duration, τ
. The final term is an exact correction for the fact that
the segment, resulting in a known distortion in
ω
α , mean angular
varies linearly over
ω0 × (ω0 × rω ) ‡‡. Equation 1 must be calculated for each of the 3
accelerometers since they are at different locations.
aˆc = aˆa − α × rα − ω0 × (ω0 × rω ) −
τ2 12
α × (α × rω )
(29)
3. Alternative approach to acceleration estimation In general, for control policies where thrusting is relatively frequent, an approach of estimating acceleration like that taken above will be required. However, in cases where these acceleration estimates are too noisy there is an alternative for vehicles that use relatively infrequent firing (such as for the Space Shuttle Orbiter), with periods of no firing before and after infrequent firing periods. In these cases, it may be more accurate to measure velocities before and after firings, averaging over as much time as needed. Then ∆ω or ∆v can be calculated with good accuracy. The equations used in the algorithms developed here can be re-written using
‡‡
This term becomes important for longer sample periods, but for the SPHERES, it is negligible and not calculated.
15
ω =
∆ω ∆v , x= ∆t ∆t
(30)
where ∆t is the total firing time. If all thrusters that are fired during ∆t fire for the full duration, this substitution is trivial. In the more general case, where some thrusters fire for some fraction of the full duration, the re-writing is more complex, and can be tailored to the control policy. C. Parameter estimation of vehicle thruster and mass properties The thruster magnitudes and vehicle mass properties are identified using least squares (LS) methods in which the sensor data is fit to the underlying (nominal) equations of motion such that the identified parameter values minimize the squared error (where the error is, for example, the sensor data minus the ideal sensor data that would be generated with zero noise and using the identified parameter values). 1. Least squares regression background The standard form for a linear least squares problem is given in (31) or (32)
Ax = b + ε
(31)
Ax ≅ b
(32)
where b is a vector of (perfect) measurements, ε is a vector of measurement noise, x contains the parameters to be identified, and matrix A contains known variables system parameter values (i.e., A is noise-free). The ≅ in the Ax ≅ b representation indicates that the left and right sides of the equation would be equal if noise were not present5. The LS ID solution, xˆ , minimizes the sum of the squares of the elements of the error, Axˆ − b . If the problem at hand can be put into the form of (31), with noise appearing only in the ε term, xˆ can be solved directly (i.e., this is a closed-form solution, rather than an iterative optimization as might be required if the equations can not be put into this standard form) using one of the following approaches5,6,11,28.
(
Unweighted, batch algorithm: xˆ = A A
(
T
Weighted, batch algorithm: xˆ = A WA T
)
)
−1
−1
AT b .
(33)
AT Wb ,
(34)
where W is a diagonal weighting matrix. Either of these algorithms can be made recursive, and the weighting matrix, W, can be chosen to weight the data according to an exponentially decaying function—as is commonly done when implemented recursively. The recursive and batch solutions are identical since they minimize the same cost function. In practice, many times the governing equations do not immediately fit exactly the form Ax = b + ε , with, for example, noise being present in the A matrix and the x not being immediately and linearly separated from A and b as required. So the basic approach to LS ID is to find some governing equations (the equations of motion, for example) that contain the parameter values to be identified and measurement data. Then these equations are manipulated to conform to the Ax ≅ b formulation, possibly requiring approximations along the way (dropping higher order terms, for example). Application considerations: • Depending on the degree of manipulations required, noisy measurements may show up in the A matrix, which make the closed form solutions in (33) and (34) sub-optimal. But in practice, they may be sufficiently accurate, and that is the case in the LS IDs presented here. • x can be a matrix rather than a vector. For the recursive solution, matrix x is effectively solved one column at a time. A should be of full rank to accurately identify all elements of x , implying sufficient excitation. • • Manipulating the original equations into the form Ax ≅ b so that the standard LS solution can be solved is often a major challenge, requiring careful decisions regarding approximations.
16
2. Identification of mass properties – general approach
ω = I −1 (( L × D) Sk ( Fnom + Fbias + Frandom ,k )Tk + τ disturb − ω × ( Iω ))
(26)
The rotational equations of motion given in (26), repeated here, contain all of the parameters we would like to identify, including CM location (contained in L ), inertia (and its inverse), and Fbias . Unfortunately, the parameters multiply one another, and cannot be manipulated into the desired linear form, Ax ≅ b . One approach would be to develop a nonlinear, gradient-based optimization of these parameters using the full equations of motion. While possible, that approach would be significantly more complex and may not produce better results than the approach taken here, which is to segment the identification problem into multiple sub-problems which each allow closed form solution of the least squares problem. If translational acceleration information is also available, the ID algorithms may be augmented to include the translational equations of motion. The thruster bias, CM location, and inverse inertia (inertia can also be ID’ed directly) will be identified individually by concurrently running RLS IDs. The IDs are initialized with the best a priori parameter estimates (e.g., the nominal values). The respective estimate error covariance matrices (i.e., the P matrix from Ref. 28) are set according to the confidence in the initial nominal values. Then the RLS updates include weighting according to the sensor error covariance matrices. At each RLS update, a given ID will use the most recent estimates for other parameters being ID’ed (for example, CM ID would use the most recent estimates for inertia and thruster bias). This approach is referred to as Multiple Concurrent Recursive Least Squares (MCRLS). The overall approach may be extended to other parameters in the governing equations (for example, the thruster directions) if they have sufficient variability and impact as to justify ID. MCRLS relies on the coupling between different parameter variations to be small, so if thruster bias and inertia ID are tightly coupled, and they both have high variances (e.g., parameter values can be +/- 50%), this approach may not work well. For the broad range of application examples addressed here (X-38, Mini AERCam, SPHERES) this works very well in extensive simulation testing. The ID accuracy of each subset of parameters is not significantly affected by variations in the other parameters. So for example, the accuracy of the CM ID is approximately the same whether all remaining parameters are at their true (used by the simulation) values or as ID’ed. This occurs for the applications described, partly because the other variabilities that distort the ID, such as pulse-to-pulse variability and other un-modeled effects are more significant than the small error introduced by using the approximation inherent in MCRLS. Before going into the equations, it is useful to consider the basic physics behind the identification approaches: • With no external forces or torques applied, the vehicle will rotate about the CM. Accelerometer signals can be used along with the gyros to ID the CM location. • When thrusters are fired, the angular acceleration is governed by the basic rotational EOM, which contains inertia, CM, and thruster bias parameters. By rearranging this EOM, inertia, CM, and thruster bias can each be identified individually. The inertia tensor governs how much acceleration will result from an applied net torque, allowing LS ID. • When a net force–as opposed to a pure torque–is applied, the resulting angular acceleration will also depend on the distance (vector) between the applied force vector and the center of mass, allowing the CM to be identified. For example, if axial thrusters are fired on the X-38 or a pair of thrusters is fired on the Mini AERCam to produce a pure translational acceleration, and the net force vector does not pass through the true CM, a net torque will result; causing an angular acceleration that can be measured and related to the CM location. 3. Integration of ID with known mass changes There is a component of the vehicle mass properties that can be calculated fairly well: the change in mass as fuel is depleted. The nominal effect of this on the change in mass properties can be calculated directly using knowledge of the tank locations and the mass of expended fuel, and is referred to as burn-time-integration (BTI). The truly optimal method for integrating BTI information into the mass-property ID is not clear, and finding it was not pursued carefully. One extreme case would be to ignore the BTI result altogether, assuming that the mass-property ID will react to these changes. This may work well for vehicles where the change in fuel mass is relatively insignificant.
17
In a second approach, the BTI is assumed to give perfect estimates of the fuel mass properties. In this case, the mass ID would be designed to estimate the mass properties of the dry vehicle only (in the derivation, the effects of the fuel would be explicitly calculated and subtracted out). In a third approach (the method implemented here, which may be equivalent to the second approach), BTI information after each thruster firing is used to update the nominal mass properties. The mass ID is designed to ID the difference between true and nominal mass properties. The thought is that if the BTI is not perfectly accurate the mass ID will partially account for that. Other specific issues regarding mass-property ID: • •
−1
−1
Either the inertia tensor, Iˆ , or its inverse, Iˆ , can be identified. Both derivations are presented. Iˆ is the one needed to improve the thruster FDI accuracy. Perfect knowledge of thruster faults is assumed. When implemented together with an FDI system, some effort will need to be made to account for the slight lag in fault isolation. For example, the mass-property ID could use only data at least 10 seconds old (or some other duration), which would be fast enough to track slow changes in mass properties, but not be affected by an unidentified thruster fault. −1
•
The inertia tensor and Iˆ are symmetric, so instead of 9 free parameters, there are only 6. The identification is designed to directly identify these 6 parameters.
•
For X-38, 2 of the 6 terms in Iˆ are very small. When tested in simulation it was found that they would often converge on values beyond the specified nominal range, and would bias the estimate of the remaining 4 terms. So for the X-38, only 4 of the 6 terms are identified, and the 2 smallest terms are assumed to have the nominal values. Variability in thruster pulses, sensor noise, and other effects contribute to the inaccuracy of the ID results. There will generally be an accuracy specification for the mass properties based on ground measurements and the vehicle design analysis. Depending on the relative accuracy of these terms, it may turn out that the ID is never as accurate as the ground-based estimate.
•
−1
Selective RLS updating may improve ID accuracy: •
When a pure torque is applied (i.e., the net force is zero), the resulting angular motion is independent of CM location, so the accuracy of inertia ID updates is not affected by inaccuracy in the estimated CM location. If the ID error introduced by this un-modeled coupling is a concern, inertia ID updates may be made only during times when a pure torque is applied (following the philosophy that fewer clean data points may be better than more noisy ones–and the fact that the CM-estimate error would bias the estimate). Pure torques are very common on the Mini AERCam and SPHERES, but only occur in roll for the X-38 when axial thrusters are not firing. Because of this, when implemented for the Mini AERCam,
Iˆ −1 updates are made only when a pure roll is present. For the X-38, Iˆ −1 is updated whenever a thruster is •
fired. The CM is only observable when net translational thrust is applied (this is a corollary to the previous statement), so the CM ID is updated only at these times.
4. Simple MCRLS example, general formulation In some problems, such as the spacecraft example, it is not possible to drop the nonlinear terms, since they are significant. A simple example that highlights this situation is presented by the following governing equation: c1 x1 + c2 x2 + c12 x1 x2 ≅ b (35) Where b is the measurement, c1 , c2 , and c12 are known values, that vary from measurement to measurement, and x1 and x2 are the unknown parameters to be identified. This problem cannot be put into the form of Equation (32), where the
A matrix does not contain x . One approach that is feasible for a problem of this simplicity is to let A = [c1 c2 c12 ]; x = [ x1 x2 x1 x2 ]T (36)
18
With the equation now in regression form, xˆ could be solved readily. However, depending on the noise present, the third element is unlikely to equal the first times the second. One approach would be to ignore the third ID element, but this is throwing away information. MCRLS would solve this problem by accepting the fact that it cannot fit directly into regression form, and breaking it into two parts that can directly fit. xˆ1 is to be ID’ed assuming that x2 is perfectly known, and vice versa. So the equations are re-written as:
(c1 + c12 xˆ2 ) x1 = b − c2 xˆ2 (c2 + c12 xˆ1 ) x2 = b − c1 xˆ1
(37)
or, in matrix form,
⎡ c1 + c12 xˆ2 ⎢ 0 ⎣
0 ⎤ ⎡ x1 ⎤ ⎡b − c2 xˆ2 ⎤ = c2 + c12 xˆ1 ⎦⎥ ⎢⎣ x2 ⎥⎦ ⎢⎣ b − c1 xˆ1 ⎥⎦
(38)
The first equation is set up to ID x1 , and treats x2 as if it were a known quantity, substituting in the best estimate of x2 , xˆ2 . xˆ1 can now be solved directly. The second equation does the converse. If xˆ1 and xˆ2 are estimated recursively, with updated estimates shared with the other ID, and if the initial estimates are sufficiently accurate, the individual IDs converge correctly. It would be possible to implement this using a single Recursive least squares (RLS) ID using Equation (38), or two RLS IDs using Equation (37) (allowing more flexibility). One test for the error introduced by this approximation is to run a simulation where in one case the secondary parameters (e.g., xˆ2 in the top equation) are set to their true values, and in a second case they are set by the other ID process, and to compare the accuracies of the ID results. In many real applications, including the spacecraft example, this approximation error is insignificant as compared to system disturbances and other unknown parameters in the system. In any real problem, there are always some additional unmodeled effects, and as long as the approximation error is significantly smaller than the error introduced by ignoring these effects, the approximation should be considered. This approach can be extended to cases where the vector of unknown parameters, x , is divided into an arbitrarily large number of groups, each containing an arbitrarily large number of parameters. The preferred embodiment is to use as few groups as possible to preserve the individual exact linear solutions to the extent possible. Another extension is that the ID algorithms used by each group could be something other than RLS, and could still fit directly into the structure presented. Equations describing an arbitrary number of arbitrarily sized groups are as follows, where the subscripts indicate the number for the group of parameters, and the groups can be arbitrarily sized:
A1 ( xˆ2 ," , xˆn ,") x1 = b1 ( xˆ2 ," , xˆn ,") A2 ( xˆ1 , xˆ3 ," , xˆn ,") x2 = b2 ( xˆ1 , xˆ3 ," , xˆn ,")
# An ( xˆ1 ," , xˆn ,") xn = bn ( xˆ1 ," , xˆn ,")
(39)
The first line in this equation is used as the regression equation in a RLS ID solution of the vector of unknown parameters, xˆ1 . And so on for each group up to n . When performing RLS ID, as covered in the Introduction, the accuracy of the ID depends on the selection of good values for the initial parameter estimates and the estimated covariance for the error in those estimates. It is also important to weight each subsequent measurement appropriately, first according to the estimated covariance of the measurement error, and second to exponentially weight the data so that newer measurements are considered more important than older ones (this is not strictly required, but is commonly done to allow the ID to track true changes in system parameters, and is a trivial adjustment to the RLS ID algorithm to implement). When using the present invention, careful selection of these parameters is even more important, since the IDs are dependent on each other. As a practical consideration, it is common for the unknown parameters in a system to have widely varying degrees of uncertainty. For example, in the spacecraft example, due to the accuracy of ground-test equipment, center
19
of mass is known with better relative accurately than the moments of inertia, which are known better than the products of inertia. Thruster locations are known very well, thruster directions are less certain, and for some systems, the thruster magnitude is even less certain. The capability of the present invention to accommodate these problem characteristics is an important one. An additional benefit of the present invention is that some measurements are more directly related to some parameters than others, and this can be accommodated. For example, in the spacecraft example, when thrusters are fired to produce a pure torque, the resulting rotational motion as measured by the gyros is independent of the center of mass. Any update to the center of mass ID using this data is based on noise rather than physics and should be avoided. With the ID already segmented, this and other similar steps are easily implemented. If the uncertainties in the initial estimates are set too high, and the measurements are noisy, there is a chance that one of the IDs will diverge initially. The dependence of the other IDs on this makes it especially important. So it may be helpful to perform an outlier check on the measurements and prevent this from happening. If the estimate error covariances are set properly and the measurements are free of outliers, this is not a concern. Note that even with careful P matrix initialization and measurement weighting, MCRLS ID can only approach the mathematical optimality of a Kalman Filter or the results of a nonlinear optimization. However, for many applications, this sub-optimality is insignificant in the presence of the numerous other approximations and dropped terms. Another benefit that is especially valuable for systems requiring on-line implementation on embedded processors where code size may be limited is that the code is very small. The RLS implementation consists of a small number of lines of code, due to the simplicity of the RLS algorithm (from prior art), and it can be shared by the individual IDs, leading to a significant savings in code size, and the time and cost for development, testing, and sustaining engineering. 5. Mass properties regression equation derivation The center of mass, C , determines the origin of the body frame, and thereby determines the value of L , which contains the locations of each thruster in the body frame. Similarly, ∆ C , the difference between actual and nominal
L . ∆ C is the value that will be identified here. Figure 7 shows the relationship of several variables used in the identification of the mass center. Of these variables, J is assumed to be known perfectly; Cnom is assumed to be known perfectly, including continual updates based on burn-time integration; Lnom can then be calculated directly using these; C , and therefore L and ∆ C also, is the true quantity which cannot be known ˆ is the identified quantity, which then leads directly to Cˆ and Lˆ . This is done similarly for inertia perfectly; ∆ values of C determines
C
and inverse inertia.
L
C
∆C,tilde ∆ ∆C C,hat
thruster
Lhat
J
Lnom
(assumed to be) perfectly known quantities
Chat
true, unknown quantities
Cnom
identified quantities difference between true and identified quantities
structural frame
Figure 7. Variables related to identification of mass center
∆ C C − Cnom
20
(40)
∆ I I − I nom
(41)
−1 ∆ I −1 I −1 − I nom
(42)
∆ m m − mnom
(43)
L = Lnom − ∆ C [1 1 ... 1]
(44)
Recalling the rotational equations of motion,
ω = I −1 (( L × D) S k ( Fnom + Fbias + Frandom ,k )Tk + τ disturb − ω × ( Iω ))
(26)
Substituting (44) and rearranging some terms,
ω = I −1 ((( Lnom − ∆ C [1 1 ... 1]) × D) S k ( Fnom + Fbias + Frandom,k )Tk +τ disturb − ω × ( Iω ))
L into nominal and unknown parts, ω = I (( Lnom × D) Sk ( Fnom + Fbias + Frandom,k )Tk + τ disturb − ω × ( Iω )
(45)
Continuing the separation of −1
−(∆ C [1 1 ... 1] × D) Sk ( Fnom + Fbias + Frandom,k )Tk )
[
(46)
]
Since the columns of 1 1 ... 1 are all the same, the second term on the right can be regrouped. Note as a counter-example that the first term on the right cannot be similarly regrouped because the columns of Lnom are not all the same,
ω = I −1 (( Lnom × D) Sk ( Fnom + Fbias + Frandom,k )Tk + τ disturb − ω × ( Iω ) −∆ C × ( DSk ( Fnom + Fbias + Frandom ,k )Tk )) By the anti-commutative property of the cross product (that
(47)
a × b = −(b × a) ),
ω = I (( Lnom × D) Sk ( Fnom + Fbias + Frandom,k )Tk + τ disturb − ω × ( Iω ) −1
+( DSk ( Fnom + Fbias + Frandom,k )Tk ) × ∆ C )
(48)
This is the full rotational EOM. In the derivations that follow, certain values will be treated as unknown (to be identified) or known perfectly (for example, thruster directions), or identified/nominal. In all following cases, it is assumed that Frandom ,k is unknown with zero mean, so it is set to zero. Also, τˆdisturb is substituted for τ disturb at this time. The measured variables, ω and ω , are indicated as estimated values, ωˆ and ωˆ . The mass-property ID algorithms will use the estimated value for Fbias if it is available, so that is substituted.
ωˆ = I −1 (( Lnom × D) S k ( Fnom + Fˆbias )Tk + τˆdisturb − ωˆ × ( I ωˆ ) + ( DS k ( Fnom + Fbias )Tk ) × ∆ C ) The translational EOM is repeated here:
(
body xbody = m −1 DSk ( Fnom + Fbias + Frandom ,k ) Tk + f disturb
)
(49)
(28)
body body body With similar assumptions for Frandom ,k , f disturb , and x , where xˆ is the estimated acceleration of the
true center of mass, this becomes:
(
body xˆ body = m −1 DS k ( Fnom + Fbias ) Tk + fˆdisturb
21
)
(50)
Recalling the equation for accelerometer rotational correction, then making appropriate substitutions, first for correction to the geometric center, then to the true center of mass,
aˆc = aˆa − α × rα − ω0 × (ω0 × rω ) −
τ2 12
(α × (α × rω ) )
(29)
xˆ0body = xˆabody − ωˆ × rα − ωˆ × (ωˆ × rω )
(51)
xˆCbody = xˆabody − ωˆ × (rα − C ) − ωˆ × (ωˆ × (rω − C ))
(52)
Substituting into the translational EOM, Equation (50),
(
body xˆabody − ωˆ × (rα − C ) − ωˆ × (ωˆ × (rω − C )) = m −1 DS k ( Fnom + Fbias ) Tk + fˆdisturb
)
(53)
xˆabody − ωˆ × (rα − Cnom − ∆ C ) − ωˆ × (ωˆ × (rω − Cnom − ∆ C )) =
(
body m −1 DSk ( Fnom + Fbias ) Tk + fˆdisturb
)
(54)
body Where xˆa is the acceleration estimate at the accelerometer location, for example, calculated as an average of
raw values during the segment of interest. If single-axis accelerometers are used, there will be different rα and rω vectors for each one. Depending on whether inertia, mass center, or thruster bias are to be ID’ed, the appropriate estimated values for ∆ C and Fbias will be used. 6. Summary of EOM for ID derivations The rotational and translational EOM can be re-written after defining four 3-by-1 vectors to be used later, ak ,
ck , d k , and ek , where: ak can be thought of as the nominal torque about the nominal CM; ck is the nominal force on the vehicle due to thrusters; d k is the torque resulting from the CM being off-nominal; and ek is the accelerometer rotational correction term, correcting to the nominal CM.
ak ( Lnom × D) S k ( Fnom + Fˆbias )Tk + τˆdisturb
(55)
ck DS k ( Fnom + Fˆbias )Tk
(56)
d k ak + ck × ∆ˆ C − ωˆ × ( Iˆωˆ )
(57)
ek ωˆ × (rα − Cnom ) − ωˆ × (ωˆ × (rω − Cnom ))
(58)
I ωˆ + ωˆ × ( I ωˆ ) = ak + ck × ∆ C
(59)
(
body xˆabody − ek + ωˆ × ∆ C + ωˆ × (ωˆ × ∆ C ) = m −1 DSk ( Fnom + Fbias ) Tk + fˆdisturb
)
(60)
So the manipulations in this subsection have taken the rotational and translational EOM and manipulated them into a form that will facilitate further manipulations to perform the required IDs. Rather than having each ID derivation start with the original EOM, they will start with the form presented in the preceding equations, simplifying and unifying the derivation and subsequent implementation (e.g., the various IDs can share calculations of ak and ck at each ID update step). Also including noise terms, derived in later sections,
I (ω + ε ω ) + (ω + ε ω ) × ( I (ω + ε ω )) = I ωˆ + ωˆ × ( I ωˆ ) = ak + ck × ∆ C + ν ,
22
(61)
where ωˆ and ωˆ are measurement (estimated) vectors. ak , ck , and d k are calculable functions of (known or
estimated) vehicle properties, thruster commands, and vehicle states. ε is uncorrelated Gaussian noise modeling the estimation error. ν is uncorrelated Gaussian noise representing the un-modelable portion of the uncertain and small terms (from Fbias , Frandom ,k ,
τ disturb , and ω × ( Iω ) ).
Unfortunately, the quantities to be identified, ∆ C , I , and I
−1
, cannot be made to appear linearly
simultaneously in this equation, as they must if the standard LS or RLS solution is to be used. One option at this point is to ID ∆ C and I
−1
simultaneously using a Gaussian second-order filter11, as done by Bergmann8. The
Gaussian second-order filter is significantly more complex than the extended Kalman filter, which is significantly more complex than least-squares ID. Considering the other imperfections in the governing equation (e.g., the relative magnitudes of Frandom ,k ,
τ disturb , Fbias , modeling errors in Sk
and D ) and their impact on identifying ∆ C and I
−1
, the approach taken
here avoided adding the extreme level of complexity of the Gaussian second-order filter. As mentioned earlier, this approach breaks the problem into smaller sub-problems, each of which is solved independently, but using the results of the other ID’s. In the ideal limit, where both mass-ID algorithms converge to the true values, the error resulting from this un-modeled coupling is zero. Implementing the algorithms recursively, with exponential forgetting, will reduce the bias due to unmodeled coupling created by errors in the initial estimates. 7. Using accelerometers and gyros, with single-thruster firings In the special circumstance when accelerometers are available, and some firing patterns include only one thruster on at a time, the EOM can be modified to greatly reduce the reliance on an accurate thruster model. The idea is that if the acceleration measurement is more accurate than the thruster model, and a single thruster is fired, then the measured acceleration can be substituted in for the thruster force, removing reliance on the accuracy of some aspects of the thruster model. This situation might arise in a well-instrumented spacecraft with poorly characterized thrusters that has just undergone significant mass property changes, or is about to begin a critical mission phase, where running a sequence of single-thruster test firings is feasible. The translational equation is used to get a measurement (vs. model) of DS k FTk and this is substituted into the rotational equation. This provides the greatest simplification when single thrusters are fired. In that case, if i indicates the thruster fired, the only cross product in the rotational equation is for that thruster. The rotational and translational EOM are repeated here, and then updated for the single-thruster case:
ω = I −1 ((( Lnom − ∆ C [1 1 ... 1]) × D) Sk ( Fnom + Fbias + Frandom,k )Tk
(45)
+τ disturb − ω × ( Iω ))
(
body xˆabody − ek + ωˆ × ∆ C + ωˆ × (ωˆ × ∆ C ) = m −1 DSk ( Fnom + Fbias ) Tk + fˆdisturb
)
(60)
ω = I −1 ((( Lnom ,i − ∆ C ) × Di ) Sk ( Fnom ,i + Fbias ,i + Frandom ,k ,i )Tk ,i + τ disturb − ω × ( I ω ))
(
body xabody − ek + ω × ∆ C + ω × (ω × ∆ C ) = m −1 Di Sk ( Fnom ,i + Fbias ,i + Frandom ,k ,i ) Tk ,i + f disturb body Di S k ( Fnom,i + Fbias ,i + Frandom ,k ,i ) Tk ,i = m( xabody − ek + ω × ∆ C + ω × (ω × ∆ C )) − f disturb
(62)
)
(63) (64)
Since a single thruster is fired, S k ( Fnom ,i + Fbias ,i + Frandom ,k ,i )Tk ,i is a scalar and can be brought inside the cross-product bracket, before substituting in the result from Equation (64) and rearranging some terms.
ω = I −1 ((( Lnom,i − ∆ C ) × Di Sk ( Fnom ,i + Fbias ,i + Frandom,k ,i )Tk ,i ) + τ disturb − ω × ( I ω ))
(65)
body I ω + ω × ( I ω ) = ( Lnom ,i − ∆ C ) × (m( xabody − ek + ω × ∆ C + ω × (ω × ∆ C )) − f disturb ) + τ disturb (66)
23
Note that the only aspect of the thruster model remaining here is the location of the thruster commanded to fire. This will be especially important for spacecraft with poorly modeled or calibrated thruster directions, blowdown scale factor, thruster magnitude bias, pulse-to-pulse variability, and failed-off thrusters. Any ID derived from this result will be completely unaffected by those issues. However, it requires that exactly one thruster is fired at a time. Also, it could be that the thruster model is more accurate than the translational acceleration estimate, in which case, the standard method is preferred. 8. LS identification of the mass center Using gyros only To ID the mass center using gyros only, Equations (55) to (59) are used, substituting estimated or nominal values where the true values are not available. The goal is to manipulate these equations into the form Ax ≅ b with ∆ C as x .
ak ( Lnom × D) S k ( Fnom + Fˆbias )Tk + τˆdisturb
(55)
ck DS k ( Fnom + Fˆbias )Tk
(56)
I ωˆ + ωˆ × ( I ωˆ ) = ak + ck × ∆ C
(59)
Iˆωˆ + ωˆ × ( Iˆωˆ ) = ak + ck × ∆ C
(67)
Iˆ −1 (ck × ∆ C ) = ωˆ − Iˆ −1 (ak − ωˆ × ( Iˆωˆ ))
(68)
Using the matrix-multiply implementation of the cross product,
Iˆ −1ck ∆ C = ωˆ − Iˆ −1 (ak − ωˆ × ( Iˆωˆ ))
⎡ 0 ⎢ Iˆ ⎢ ck ,3 ⎢ −ck ,2 ⎣ −1
−ck ,3 0 ck ,1
ck ,2 ⎤ ⎡ ∆ C ,1 ⎤ ⎥⎢ ⎥ −ck ,1 ⎥ ⎢ ∆ C ,2 ⎥ = ωˆ − Iˆ −1 (ak − ωˆ × ( Iˆωˆ )) 0 ⎥⎦ ⎢⎣ ∆ C ,3 ⎥⎦
(69)
(70)
So at each update, ck is calculated using Equation (56) and plugged in to the above re-formulation of the equation of motion, which conforms to Ax ≅ b , where
⎡ 0 ⎢ Ak = Iˆ ⎢ ck ,3 ⎢ −ck ,2 ⎣ −1
−ck ,3 0 ck ,1
⎡ ∆ C ,1 ⎤ ck ,2 ⎤ ⎥ ⎢ ⎥ −ck ,1 ⎥ , x = ⎢ ∆ C ,2 ⎥ , bk = ωˆ − Iˆ −1 (ak − ωˆ × ( Iˆωˆ )) ⎢ ∆ C ,3 ⎥ 0 ⎥⎦ ⎣ ⎦
(71)
ˆ , can then be used along with Equation (40) to calculate the estimated mass The resulting estimate of ∆ C , ∆ C center, Cˆ . Note that Cnom is initialized with the a priori center of mass estimate (based on ground tests, analysis of CAD data, etc.) and then is continually updated with the results of the burn-time integration analysis.
Cˆ = Cnom + ∆ˆ C
(72)
Using accelerometers and gyros When accelerometers are used, one simple approach is to use those measurements, corrected for rotations to the estimated mass center, to calculate ck rather than the potentially noisy (and subject to thruster faults)
DS k ( Fnom + Fˆbias )T . Another approach is to augment the set of equations with those including ck and the translational acceleration, but accounting for the accelerometer rotational correction. In this latter approach, for
24
example, it is possible to identify CM location during free spin. Recalling the translational EOM from Equation (60) then substituting Fˆbias (and thereby ck ):
( ) − xˆ
)
(73)
+ ek
(74)
body xˆabody − ek + ωˆ × ∆ C + ωˆ × (ωˆ × ∆ C ) = m −1 ck + fˆdistur b
(
body ωˆ × ∆ C + ωˆ × (ωˆ × ∆ C ) = m −1 ck + fˆdisturb
body a
Putting the left side into a matrix-vector multiply, using the approach taken elsewhere,
ω × ∆ C + ω × (ω × ∆ C ) −ω 3 0 ω1
⎡ 0 = ⎢⎢ ω 3 ⎢⎣ −ω 2
ω 2 ⎤ ⎡ ∆ C ,1 ⎤ ⎡ 0 −ω3 ω2 ⎤ ⎡ 0 −ω3 ω2 ⎤ ⎡ ∆ C ,1 ⎤ ⎢ ⎥ ⎢ ⎥ 0 −ω1 ⎥⎥ ⎢⎢ ω3 0 −ω1 ⎥⎥ ⎢ ∆ C ,2 ⎥ −ω1 ⎥⎥ ⎢ ∆ C ,2 ⎥ + ⎢⎢ ω3 0 ⎥⎦ ⎢⎣ ∆ C ,3 ⎥⎦ ⎢⎣ −ω2 ω1 0 ⎥⎦ ⎢⎣ −ω2 ω1 0 ⎥⎦ ⎢⎣ ∆ C ,3 ⎥⎦
⎛⎡ 0 ω1ω2 ω1ω3 ⎤ ⎞ ⎡ ∆ C ,1 ⎤ −ω 3 ω 2 ⎤ ⎡ −ω22 − ω32 ⎜⎢ ⎢ ⎥⎟⎢ ⎥ ⎥ 2 2 0 −ω1 ⎥ + ⎢ ω1ω2 ω2ω3 ⎥ ⎟ ⎢ ∆ C ,2 ⎥ −ω1 − ω3 = ⎜ ⎢ ω 3 ⎜ ⎢ −ω 0 ⎥⎦ ⎢⎣ ω1ω3 ω2ω3 −ω12 − ω22 ⎥⎦ ⎟⎠ ⎢⎣ ∆ C ,3 ⎥⎦ ⎝ ⎣ 2 ω1 ⎡ −ω22 − ω32 −ω 3 + ω1ω2 ω 2 + ω1ω3 ⎤ ⎡ ∆ C ,1 ⎤ ⎢ ⎥⎢ ⎥ = ⎢ ω 3 + ω1ω2 −ω12 − ω32 −ω1 + ω2ω3 ⎥ ⎢ ∆ C ,2 ⎥ ⎢ −ω 2 + ω1ω3 ω1 + ω2ω3 −ω12 − ω22 ⎥⎦ ⎢⎣ ∆ C ,3 ⎥⎦ ⎣
(75)
So the additional regression equation, which may be used in place of the gyro-based one in Equation (71), or in addition to it, with appropriate relative weighting based on the relative accuracy of the acceleration estimates, is
⎡ −ωˆ 22 − ωˆ 32 ⎢ Ak = ⎢ ωˆ 3 + ωˆ1ωˆ 2 ⎢ ˆ ⎢⎣ −ω 2 + ωˆ1ωˆ 3 b = m −1 c + fˆ body k
(
k
disturb
−ωˆ 3 + ωˆ1ωˆ 2 −ωˆ − ωˆ ωˆ1 + ωˆ 2ωˆ 3 2 1
) − xˆ
2 3
body a
ωˆ 2 + ωˆ1ωˆ 3 ⎤
⎡ ∆ C ,1 ⎤ ⎥ ⎢ ⎥ −ωˆ1 + ωˆ 2ωˆ 3 ⎥ , x = ⎢ ∆ C ,2 ⎥ , ⎥ ⎢ ∆ C ,3 ⎥ −ωˆ12 − ωˆ 22 ⎥⎦ ⎣ ⎦
.
(76)
+ ek
One approach would be to use Equation (71) during updates that include translational thrusting and Equation (76) during updates that include significant angular rates and accelerations. The actual decision is highly dependent on the variability of terms in the regression equations. For example, if the thruster model is not accurate, the CM estimates from the rotational EOM will not be very accurate, as compared to the estimates possible from the translational EOM if some relatively high-angular-rate coasting maneuvers are performed. Fundamentally, this additional level of decision making as to when to update which IDs arises from the fact that there are uncertain terms in the Ak matrix. If the exact regression form were achieved, there would be no issue beyond weighting each equation appropriately depending on the noise in each element of the bk vector. Instead of we have
Ax = b + ε ,
(31)
( A + ε A )x = b + εb .
(77)
9. LS identification of the inverse inertia tensor
ˆ , Fˆ ) or To ID the inverse inertia tensor, Equations (55) to (59) are used, substituting estimated (e.g., ∆ C bias nominal values where the true values are not available. The first two of these equations are the same as for mass-
25
center ID. The goal is to manipulate these equations into the form Ax ≅ b with ∆ I −1 as x . The gyroscopic term is treated as a disturbance here.
ak ( Lnom × D) S k ( Fnom + Fˆbias )Tk + τˆdisturb
(55)
ck DS k ( Fnom + Fˆbias )Tk
(56)
d k ak + ck × ∆ˆ C − ωˆ × ( Iˆωˆ )
(57)
I ωˆ + ωˆ × ( I ωˆ ) = ak + ck × ∆ C
(59)
I −1 (ak + ck × ∆ˆ C − ωˆ × ( Iˆωˆ )) = ωˆ
(78)
−1 ( I nom + ∆ I −1 )(ak + ck × ∆ˆ C − ωˆ × ( Iˆωˆ )) = ωˆ
(79)
Rearranging the six independent elements of the inertia tensor so that the independent elements of ∆ I −1 appear as a pre-multiplied vector rather than a post-multiplied matrix,
⎡ ∆ −1 ⎢ I ,11 ∆ I −1 d k = ⎢ ∆ I −1 ,12 ⎢ ⎢⎣ ∆ I −1 ,13
⎡ d k ,1 ⎢ =⎢ ⎢ ⎣
−1 ( I nom + ∆ I −1 )d k = ωˆ
(80)
∆ I −1 d k = ωˆ − I no−1m d k
(81)
∆ I −1 ,13 ⎤ ⎡ d ⎤ ⎡ d k ,1∆ I −1 ,11 + d k ,2 ∆ I −1 ,12 + d k ,3∆ I −1 ,13 ⎤ ⎥ ⎢ k ,1 ⎥ ⎢ ⎥ ∆ I −1 ,23 ⎥ ⎢ d k ,2 ⎥ = ⎢ d k ,1∆ I −1 ,12 + d k ,2 ∆ I −1 ,22 + d k ,3∆ I −1 ,23 ⎥ ⎢ ⎥ ⎥ ∆ I −1 ,33 ⎥⎦ ⎢⎣ d k ,3 ⎥⎦ ⎢⎣ d k ,1∆ I −1 ,13 + d k ,2 ∆ I −1 ,23 + d k ,3 ∆ I −1 ,33 ⎥⎦
∆ I −1 ,12 ∆ I −1 ,22 ∆ I −1 ,23
d k ,2 d k ,1
d k ,2 d k ,3
d k ,3 d k ,1
⎡ ∆ I −1 ,11 ⎤ ⎢ ⎥ ⎢ ∆ I −1 ,22 ⎥ ⎥ ⎤⎢ ⎥ ⎢ ∆ I −1 ,33 ⎥ d k ,3 ⎥ ⎢ ∆ I −1 ,12 ⎥ ⎢ ⎥ ⎥ d k ,2 ⎦ ⎢ ∆ −1 ⎥ ⎢ I ,13 ⎥ ⎢ ∆ I −1 ,23 ⎥ ⎣ ⎦
(82)
So now the equation can be written in the standard form, Ax ≅ b , where
⎡ d k ,1 ⎢ Ak = ⎢ ⎢ ⎣
d k ,2 d k ,2
d k ,3
d k ,1 d k ,3
d k ,1
⎡ ∆ I −1 ,11 ⎤ ⎢ ⎥ ⎢ ∆ I −1 ,22 ⎥ ⎢ ⎥ ⎤ ⎢ ∆ I −1 ,33 ⎥ ⎥ 1 d k ,3 ⎥ , x = ⎢ dk , bk = ωˆ k − I n−om ⎥ ∆ I −1 ,12 ⎢ ⎥ d k ,2 ⎥⎦ ⎢ ∆ −1 ⎥ ⎢ I ,13 ⎥ ⎢ ∆ I −1 ,23 ⎥ ⎣ ⎦
Once ∆ I −1 is identified,
26
(83)
−1 Iˆ −1 = I nom + ∆ˆ I −1
Note that this ID approach, while identifying I
−1
, assumes I is known for calculation of the
(84)
ω × ( Iω )
term in
d k . This approach may not work well if the gyroscopic term is significant. In that case, the inertia tensor ID derived in Section 11 should be used. Depending on the thruster geometry chosen, it may be common to have thruster commands resulting in a pure torque (and no net force) on the spacecraft. For example, such commands are common for the Mini AERCam and SPHERES, but not for the X-38 (pure roll only) or the Space Shuttle Orbiter. When a pure torque is commanded (note this is independent of mass properties), DFnom = 0 (85) In this case, ck simplifies to
ck DS k FˆbiasTk
(86)
Further simplification is possible if the following, fairly common, set of conditions is true: • A pure torque is commanded§§ •
Fˆbias is not identified (average thruster force can be considered known perfectly so this term is zero)
• •
Disturbance torques are ignored The gyroscopic term is ignored
d k = ( Lnom × D) S k FnomTk
(87)
A major benefit derived from this situation is that the inverse-inertia ID is independent of mass center, so errors
ˆ will not bias ∆ˆ −1 . in ∆ C I 10. LS identification of the inertia tensor, treating the gyroscopic term as a disturbance
ˆ , Fˆ ) or nominal To ID the inertia tensor, Equations (55) to (59) are used, substituting estimated (e.g., ∆ C bias values where the true values are not available. The first two of these equations are the same as for mass-center ID and inverse inertia tensor ID. The goal is to manipulate these equations into the form Ax ≅ b with ∆ I as x . d k from the previous section is used here.
§§
ak ( Lnom × D) S k ( Fnom + Fˆbias )Tk + τˆdisturb
(55)
ck DS k ( Fnom + Fˆbias )Tk
(56)
d k ak + ck × ∆ˆ C − ωˆ × ( Iˆωˆ )
(57)
I ωˆ + ωˆ × ( I ωˆ ) = ak + ck × ∆ C
(59)
I ωˆ = d k
(88)
∆ I I − I nom
(41)
( I nom + ∆ I )ωˆ = d k
(89)
∆ I ωˆ = d k − I nomωˆ
(90)
It may be decided to update the inertia identification only when a pure torque is commanded, since this
ˆ. minimizes the impact of errors in ∆
27
Rearranging so that the independent elements of ∆ I appear as a pre-multiplied vector rather than a postmultiplied matrix,
⎡ ∆ I ,11 ⎢ ∆ I ωˆ k = ⎢ ∆ I ,12 ⎢ ⎣ ∆ I ,13
∆ I ,12 ∆ I ,22 ∆ I ,23
∆ I ,13 ⎤ ⎡ωˆ k ,1 ⎤ ⎡ ωˆ k ,1∆ I ,11 + ωˆ k ,2 ∆ I ,12 + ωˆ k ,3 ∆ I ,13 ⎤ ⎥ ⎥ ⎢ ⎥⎢ ∆ I ,23 ⎥ ⎢ωˆ k ,2 ⎥ = ⎢ωˆ k ,1∆ I ,12 + ωˆ k ,2 ∆ I ,22 + ωˆ k ,3∆ I ,23 ⎥ ∆ I ,33 ⎦⎥ ⎢ωˆ k ,3 ⎥ ⎢ωˆ k ,1∆ I ,13 + ωˆ k ,2 ∆ I ,23 + ωˆ k ,3∆ I ,33 ⎥ ⎥⎦ ⎣⎢ ⎦⎥ ⎣⎢
⎡ωˆ k ,1 ωˆ k ,2 ωˆ k ,3 ⎢ =⎢ ωˆ k ,2 ωˆ k ,1 ⎢ ωˆ k ,3 ωˆ k ,1 ⎣⎢
⎡ ∆ I ,11 ⎤ ⎢ ⎥ ⎤ ⎢ ∆ I ,22 ⎥ ⎥ ⎢ ∆ I ,33 ⎥ ωˆ k ,3 ⎥ ⎢ ⎥ ∆ I ,12 ⎥ ⎥ ⎢ ωˆ k ,2 ⎦⎥ ⎢ ∆ ⎥ I ,13 ⎢ ⎥ ⎣⎢ ∆ I ,23 ⎦⎥
(91)
So now the equation can be written in the standard form, Ax ≅ b , where
⎡ωˆ k ,1 ωˆ k ,2 ωˆ k ,3 ⎢ Ak = ⎢ ωˆ k ,2 ωˆ k ,1 ⎢ ωˆ k ,3 ωˆ k ,1 ⎣⎢
⎡ ∆ I ,11 ⎤ ⎢∆ ⎥ ⎤ ⎢ I ,22 ⎥ ⎥ ⎢ ∆ I ,33 ⎥ ωˆ k ,3 ⎥ , x = ⎢ ⎥ , bk = d k − I nomωˆ k ∆ I ,12 ⎥ ⎢ ⎥ ωˆ k ,2 ⎦⎥ ⎢ ∆ I ,13 ⎥ ⎢ ⎥ ⎢⎣ ∆ I ,23 ⎥⎦
(92)
Once ∆ I is identified,
Iˆ = I nom + ∆ˆ I
(93)
The same simplifications in computation of d k presented in the previous section apply here equally well. 11. LS identification of the inertia tensor, treating the gyroscopic term as significant This differs from the previous subsection in that the gyroscopic term, ω × ( I ω ) , is treated as being significant. This term is generally significant for faster-rotating spacecraft, which generally means smaller ones such as the Mini AERCam or SPHERES. It is dependent on a-symmetry in the inertia properties: non-zero products of inertia, and moments of inertia that are different for different axes. Even for relatively symmetric spacecraft like SPHERES, this term can be significant for multi-axis rotations. In the previous section, it was treated as a disturbance that could be calculated using the so-far-identified inertia,
Iˆ , and subtracted off without complicating the regression equation. Treating it directly in the regression equation derivation provides the added benefit of being able to update inertia estimates during periods of free motion. Using gyros only
ˆ , Fˆ ) or nominal To ID the inertia tensor, Equations (55) to (59) are used, substituting estimated (e.g., ∆ C bias values where the true values are not available. The goal is to manipulate these equations into the form Ax ≅ b with ∆ I as x .
ak ( Lnom × D) S k ( Fnom + Fˆbias )Tk + τˆdisturb
28
(55)
ck DS k ( Fnom + Fˆbias )Tk
(56)
I ωˆ + ωˆ × ( I ωˆ ) = ak + ck × ∆ C
(59)
I ωˆ + ωˆ × ( I ωˆ ) = ak + ck × ∆ˆ C
(94)
( I nom + ∆ I )ωˆ + ωˆ × (( I nom + ∆ I )ωˆ ) = ak + ck × ∆ˆ C
(95)
∆ I ωˆ + ωˆ × (∆ I ωˆ ) = ak + ck × ∆ˆ C − I nomωˆ − ωˆ × ( I nomωˆ )
(96)
Substituting I = I nom + ∆ I ,
I ωˆ and ωˆ × ( I ωˆ ) can be represented in a form that left-multiplies the unknown inertia parameters arranged as a vector as:
⎡( I 33 − I 22 )ωˆ 2ωˆ 3 − I12ωˆ1ωˆ 3 + I13ωˆ1ωˆ 2 + I 23 (ωˆ 22 − ωˆ 32 ) ⎤ ⎢ ⎥ ωˆ × ( I ωˆ ) = ⎢ ( I11 − I 33 )ωˆ1ωˆ 3 + I12ωˆ 2ωˆ 3 + I13 (ωˆ 32 − ωˆ12 ) − I 23ωˆ1ωˆ 2 ⎥ ⎢ ( I 22 − I11 )ωˆ1ωˆ 2 + I12 (ωˆ12 − ωˆ 22 ) − I13ωˆ 2ωˆ 3 + I 23ωˆ1ωˆ 3 ⎥ ⎣ ⎦ −ωˆ 2ωˆ 3 0 ωˆ1ωˆ 2
⎡ 0 ⎢ = ⎢ ωˆ1ωˆ 3 ⎢ −ωˆ1ωˆ 2 ⎣
⎡ I11 ˆ I ω = ⎢⎢ I12 ⎢⎣ I13
⎡ ωˆ1 ⎢ I ωˆ + ωˆ × ( I ωˆ ) = ⎢ ωˆ1ωˆ 3 ⎢ ⎢⎣ −ωˆ1ωˆ 2
I12 I 22 I 23
ωˆ 2ωˆ 3 −ωˆ1ωˆ 3
ωˆ1ωˆ 2 −ωˆ1ωˆ 3 ωˆ 2ωˆ 3 ωˆ 32 − ωˆ12 ωˆ12 − ωˆ 22 −ωˆ 2ωˆ 3
0
ˆ ˆ ˆ ˆ I13 ⎤ ⎡ ω1 ⎤ ⎡ω1 0 0 ω 2 ω 3 ⎢ ⎥ ⎢ I 23 ⎥⎥ ⎢ωˆ 2 ⎥ = ⎢ 0 ωˆ 2 0 ωˆ1 0 I 33 ⎥⎦ ⎢⎢ωˆ 3 ⎥⎥ ⎢⎢ 0 0 ωˆ 3 0 ωˆ1 ⎣ ⎦ ⎣
−ωˆ 2ωˆ 3 ωˆ 2
ωˆ1ωˆ 2
ωˆ 2ωˆ 3
ωˆ 2 − ωˆ1ωˆ 3 ωˆ 3 + ωˆ1ωˆ 2
−ωˆ1ωˆ 3 ωˆ1 + ωˆ 2ωˆ 3 ωˆ 32 − ωˆ12 ωˆ 3 ωˆ12 − ωˆ 22 ωˆ1 − ωˆ 2ωˆ 3
⎡ I11 ⎤ ⎢I ⎥ 2 2 ⎢ 22 ⎥ ωˆ 2 − ωˆ 3 ⎤ ⎥ ⎢I ⎥ −ωˆ1ωˆ 2 ⎥ ⎢ 33 ⎥ I ωˆ1ωˆ 3 ⎥⎦ ⎢ 12 ⎥ ⎢ I13 ⎥ ⎢ ⎥ ⎣⎢ I 23 ⎦⎥ ⎡ I11 ⎤ ⎢I ⎥ 0 ⎤ ⎢ 22 ⎥ ⎥ ⎢I ⎥ ωˆ 3 ⎥ ⎢ 33 ⎥ ⎥ ⎢ I12 ⎥ ωˆ 2 ⎥⎦ ⎢ ⎥ I13 ⎢ ⎥ ⎣⎢ I 23 ⎦⎥ ⎡ I11 ⎤ ⎢I ⎥ ωˆ 22 − ωˆ 32 ⎤ ⎢ 22 ⎥ ⎥ ⎢I ⎥ ωˆ 3 − ωˆ1ωˆ 2 ⎥ ⎢ 33 ⎥ , ⎥ ⎢ I12 ⎥ ωˆ 2 + ωˆ1ωˆ 3 ⎥⎦ ⎢ ⎥ I13 ⎢ ⎥ ⎢⎣ I 23 ⎦⎥
(97)
(98)
(99)
where the carets on the ωˆ and ωˆ variables indicate that these are measured or estimated values as opposed to exactly known variables. Combining the above, and using ∆ I ,
29
⎡ ωˆ1 ⎢ ⎢ ωˆ1ωˆ 3 ⎢ ⎢⎣ −ωˆ1ωˆ 2
−ωˆ 2ωˆ 3 ωˆ 2
ωˆ1ωˆ 2
ωˆ 2ωˆ 3
ωˆ 2 − ωˆ1ωˆ 3 ωˆ 3 + ωˆ1ωˆ 2
−ωˆ1ωˆ 3 ωˆ1 + ωˆ 2ωˆ 3 ωˆ 32 − ωˆ12 ωˆ 3 ωˆ12 − ωˆ 22 ωˆ1 − ωˆ 2ωˆ 3
⎡ ∆ I ,11 ⎤ ⎢∆ ⎥ ωˆ 22 − ωˆ 32 ⎤ ⎢ I ,22 ⎥ ⎥ ⎢ ∆ I ,33 ⎥ ωˆ 3 − ωˆ1ωˆ 2 ⎥ ⎢ ⎥= ∆ I ,12 ⎥ ⎥ ⎢ ωˆ 2 + ωˆ1ωˆ 3 ⎥⎦ ⎢ ∆ ⎥ I ,13 ⎥ ⎢ ∆ ⎢⎣ I ,23 ⎥⎦
(100)
ak + ck × ∆ˆ C − I nomωˆ − ωˆ × ( I nomωˆ ) So now the equation is in the regression form, Ax ≅ b , where
⎡ ωˆ1 −ωˆ 2ωˆ 3 ωˆ 2ωˆ 3 ωˆ 2 − ωˆ1ωˆ 3 ωˆ 3 + ωˆ1ωˆ 2 ωˆ 22 − ωˆ 32 ⎤ ⎢ ⎥ −ωˆ1ωˆ 3 ωˆ1 + ωˆ 2ωˆ 3 ωˆ 32 − ωˆ12 ωˆ 3 − ωˆ1ωˆ 2 ⎥ , ωˆ 2 Ak = ⎢ ωˆ1ωˆ 3 ⎢ ⎥ ωˆ 3 ωˆ12 − ωˆ 22 ωˆ1 − ωˆ 2ωˆ 3 ωˆ 2 + ωˆ1ωˆ 3 ⎥⎦ ⎢⎣ −ωˆ1ωˆ 2 ωˆ1ωˆ 2 k ⎡ ∆ I ,11 ⎤ ⎢∆ ⎥ ⎢ I ,22 ⎥ ⎢ ∆ I ,33 ⎥ x=⎢ ⎥ , bk = ak + ck × ∆ˆ C − I nomωˆ − ωˆ × ( I nomωˆ ) ∆ ⎢ I ,12 ⎥ ⎢ ∆ I ,13 ⎥ ⎢ ⎥ ⎢⎣ ∆ I ,23 ⎥⎦
(101)
For implementation, since Ak must be formed, it may also be advantageous to use it in the calculation of
− I nomωˆ − ωˆ × ( I nomωˆ ) in bk : ⎡ I nom ,11 ⎤ ⎢I ⎥ ⎢ nom ,22 ⎥ ⎢ I nom ,33 ⎥ bk = ak + ck × ∆ˆ C − Ak ⎢ ⎥ ⎢ I nom,12 ⎥ ⎢ I nom,13 ⎥ ⎢ ⎥ ⎢⎣ I nom,23 ⎥⎦
(102)
Although this ID can benefit from periods of coasting (no thruster firing), there is a problem if not enough firing data is used. During periods of coasting, the ak and ck terms are zero, so the EOM from which the regression equation is derived is:
I ωˆ + ωˆ × ( I ωˆ ) = 0
(103)
The true I matrix will fit this equation well, but a matrix of zeros will do so even better, especially in the presence of noise. In the extreme case of running the ID using coasting data only, the ID would converge to I = 0 , or ∆ I = − I nom , which is clearly not the desired behavior. This behavior is due to the EOM, and any alternative to this identification approach would face the same issue. This is fundamentally because I = 0 will solve Equation (103) perfectly, no matter how it may be manipulated.
30
Further study is needed to determine how much non-coasting data is required to prevent this phenomenon from significantly biasing the ID. Note that this problem can not be monitored through observation of the estimate error covariance matrix, since that is a function of the A matrix (the rates and angular accelerations, here, which will appear sufficiently exciting for multi-axis rotations), and not the b vector (zero in this case). An approach to address this issue does so by changing the identification goal. The ID can be modified so that one degree of freedom in the ID is held constant, for example, the norm or trace of the inertia tensor, or the value of the largest or best known (lowest covariance) inertia parameter. Note that this issue may be general to many system ID applications, but that it occurs partially because the problem is not properly set up in regression form. Recall that if it were in fully correct regression form, there would be no uncertainty in the A matrix, and that any measurement noise would appear additively in the b vector. In the present formulation, measurements appear in the A matrix, and the b vector is composed of exactly known elements (that go to exactly zero during coasting). Using accelerometers and gyros, with single-thruster firings Following similar steps to the above procedure, but starting with the special case EOM for single thrusters, repeated here: body I ω + ω × ( I ω ) = ( Lnom ,i − ∆ C ) × (m( xabody − ek + ω × ∆ C + ω × (ω × ∆ C )) − f disturb ) + τ disturb (66)
∆ I ωˆ + ωˆ × (∆ I ωˆ ) = body xˆabody − ek + ωˆ × ∆ˆ C + ωˆ × (ωˆ × ∆ˆ C )) − fˆdisturb ( Lnom ,i − ∆ˆ C ) × (mˆ ( ) + τˆdisturb
(104)
− I nomωˆ − ωˆ × ( I nomωˆ )
⎡ ∆ I ,11 ⎤ ⎢∆ ⎥ ⎡ ωˆ1 −ωˆ 2ωˆ 3 ωˆ 2ωˆ 3 ωˆ 2 − ωˆ1ωˆ 3 ωˆ 3 + ωˆ1ωˆ 2 ωˆ 22 − ωˆ 32 ⎤ ⎢ I ,22 ⎥ ⎢ ⎥ ⎢ ∆ I ,33 ⎥ ωˆ 2 −ωˆ1ωˆ 3 ωˆ1 + ωˆ 2ωˆ 3 ωˆ 32 − ωˆ12 ωˆ 3 − ωˆ1ωˆ 2 ⎥ ⎢ ⎢ ωˆ1ωˆ 3 ⎥= ∆ I ,12 ⎥ ⎢ ⎥ ⎢ 2 2 ωˆ 3 ωˆ1 − ωˆ 2 ωˆ1 − ωˆ 2ωˆ 3 ωˆ 2 + ωˆ1ωˆ 3 ⎥⎦ ⎢ ∆ ⎥ ⎢⎣ −ωˆ1ωˆ 2 ωˆ1ωˆ 2 I ,13 ⎥ ⎢ ⎢⎣ ∆ I ,23 ⎥⎦ body xˆabody − ek + ωˆ × ∆ˆ C + ωˆ × (ωˆ × ∆ˆ C )) − fˆdisturb ( Lnom ,i − ∆ˆ C ) × (mˆ ( ) + τˆdisturb
(105)
− I nomωˆ − ωˆ × ( I nomωˆ ) ⎡ ∆ I ,11 ⎤ ⎢∆ ⎥ ⎡ ωˆ1 ⎢ I ,22 ⎥ −ωˆ 2ωˆ 3 ωˆ 2ωˆ 3 ωˆ 2 − ωˆ1ωˆ 3 ωˆ 3 + ωˆ1ωˆ 2 ωˆ 22 − ωˆ 32 ⎤ ⎢ ⎥ ⎢ ∆ I ,33 ⎥ ωˆ 2 Ak = ⎢ ωˆ1ωˆ 3 −ωˆ1ωˆ 3 ωˆ1 + ωˆ 2ωˆ 3 ωˆ 32 − ωˆ12 ωˆ 3 − ωˆ1ωˆ 2 ⎥ , x = ⎢ ⎥, ∆ I ,12 ⎥ (106) ⎢ ⎥ ⎢ 2 2 ωˆ 3 ωˆ1 − ωˆ 2 ωˆ1 − ωˆ 2ωˆ 3 ωˆ 2 + ωˆ1ωˆ 3 ⎥⎦ ⎢⎣ −ωˆ1ωˆ 2 ωˆ1ωˆ 2 ⎢ ∆ I ,13 ⎥ k ⎢ ⎥ ⎣⎢ ∆ I ,23 ⎥⎦ body bk = ( Lnom ,i − ∆ˆ C ) × (mˆ ( xˆabody − ek + ωˆ × ∆ˆ C + ωˆ × (ωˆ × ∆ˆ C )) − fˆdisturb ) + τˆdisturb − Ak I nom 12. LS identification of the thruster force magnitudes The goal of the identification is to find the value of Fbias that provides the best fit (in the least-squares sense) of the equations of motion to the measured angular rates (and translational accelerations if available). The rotational and translational equations of motion are repeated here.
31
ω = I −1 (( L × D) Sk ( Fnom + Fbias + Frandom ,k )Tk + τ disturb − ω × ( Iω ))
(
body xbody = m −1 DSk ( Fnom + Fbias + Frandom ,k ) Tk + f disturb
)
(26) (28)
Eventually, all system parameters other than Fbias will be assumed to have their nominal or identified conditions. Terms that will eventually be discarded are carried through until the end so their contributions to the final result can be studied. The goal is to put these EOM in the standard LS form Ax ≅ b , where x is Fbias . Starting with (26) and rearranging some terms,
( L × D) S k ( Fnom + Fbias + Frandom ,k )Tk = Iω + ω × ( Iω ) − τ disturb .
(107)
Tk is an N -by-1 column vector, while Fnom , Fbias , Frandom,k are diagonal matrices. Tk can be moved to the left of the force terms by converting it to an N -by- N diagonal matrix and converting the diagonal force matrices to column vectors, so the following equation is mathematically identical to the preceding one. The diag() operator here is modeled after the MATLAB command of that name, and converts a vector to a diagonal matrix, and vice versa. (108) ( L × D) S k diag(Tk ) diag( Fnom + Fbias + Frandom ,k ) = I ω + ω × ( I ω ) − τ disturb If accelerometers are available as well, after similar operations on (28), body DS k diag(Tk ) diag( Fnom + Fbias + Frandom ,k ) = mxbody − f disturb ,
(109)
body where x is the estimated acceleration at the center of mass, corrected for rotations as derived earlier:
xˆCbody = xˆabody − ωˆ × (rα − C ) − ωˆ × (ωˆ × (rω − C )) .
(52)
Equations (108) and (109) are now roughly in the form Ax ≅ b . diag( Fbias ) is identified using these equations, and substituting in the best available knowledge about each term. For example, if the random thrust component and disturbing torque and force are not known, they are set to zero. The nominal or identified values are used for the remaining vehicle properties, and accelerations are estimated as accurately as possible. Doing these things, the equations reduce to:
⎡ Iˆωˆ + ωˆ × ( Iˆωˆ ) ⎤ ⎡ ( Lˆ × D) S k diag(Tk ) ⎤ ⎥ ⎢ ⎥ diag( Fnom + Fbias ) = ⎢ ˆ ˆCbody ⎣ DSk diag(Tk ) ⎦ ⎣⎢ mx ⎦⎥ ⎡ Iˆω + ω × ( Iˆω ) ⎤ ⎡( Lˆ × D) S k diag(Tk ) ⎤ Ak = ⎢ ⎥ − Ak diag( Fnom ) ⎥ , x = diag( Fbias ), bk = ⎢ ˆ ˆCbody mx ⎢⎣ ⎣ DSk diag(Tk ) ⎦ ⎦⎥
(110)
(111)
Lˆ = J − (Cnom + ∆ˆ C ) [1 1 " 1] xˆCbody
. Iˆ = I nom + ∆ˆ I = xˆabody − ωˆ × (rα − Cnom − ∆ˆ C ) − ωˆ × (ωˆ × (rω − Cnom − ∆ˆ C ))
(112)
Sk , I , L , D , and m are known vehicle parameters (nominal or estimated values are used). Tk is a vector indicating which thrusters are fired at time step k . Tk may be different from Tcommand ,k , but if the FDI system has correctly identified thruster faults, Tk should be known accurately.
ω
is measured directly from the gyros, and ω
is estimated from the gyro signals, for example as presented in Section 1. If both gyros and accelerometers are available and used for ID, they should be weighted accordingly (e.g., based on the relative accuracy in translational vs. rotational accelerations).
32
xˆ can be solved using the methods given in Section C, resulting in an estimate of diag( Fbias ) , so Fˆ = diag( xˆ ) bias
(113)
13. LS identification of the total mass This ID does not attempt to use the rotational EOM to identify total system mass, although it is not theoretically impossible to ID mass using gyros only. If a known mass moves a known distance on the spacecraft, and the change in inertia is identified using the gyros, it would be theoretically possible to back out the total system mass. In the same way that the deviation from nominal is ID’ed for other mass properties, allowing simple integration of the result from BTI, the identified property is ∆ m−1 . The translational EOM is repeated here
(
body xˆabody − ek + ωˆ × ∆ C + ωˆ × (ωˆ × ∆ C ) = m −1 DSk ( Fnom + Fbias ) Tk + fˆdisturb
)
−1 ∆ m−1 m −1 − mnom
(60) (114)
With only a scalar parameter to ID, putting this into regression form is trivial, but it is done this way to keep the acceleration measurements (probably the largest noise source) in the bk vector.
( DS ( F k
nom
)
)
body + Fˆbias Tk + fˆdisturb ∆ m −1 =
( (
)
)
body −1 xˆabody − ek + ωˆ × ∆ˆ C + ωˆ × (ωˆ × ∆ˆ C ) − DS k Fnom + Fˆbias Tk + fˆdisturb mnom
This results in the ID of ∆ m−1 .
(
)
body Ak = DSk Fnom + Fˆbias Tk + fˆdisturb , x = ∆ m−1 , −1 bk = xˆabody − ek + ωˆ × ∆ˆ C + ωˆ × (ωˆ × ∆ˆ C ) − Ak mnom
(115)
(116)
ˆ can be calculated, most simply as From which m −1 mˆ = (mˆ −1 ) −1 = (mnom + ∆ˆ m−1 ) −1
ˆ But also noting that a more accurate mapping from m
−1
(117)
ˆ is possible, and may be warranted based on the to m
−1
ˆ . uncertainty in m 14. ID equations summary This section summarizes the equations derived for least-squares mass- and thruster-property identification. Common variables used:
ak ( Lnom × D) S k ( Fnom + Fˆbias )Tk + τˆdisturb
(55)
ck DS k ( Fnom + Fˆbias )Tk
(56)
d k ak + ck × ∆ˆ C − ωˆ × ( Iˆωˆ )
(57)
ek ωˆ × (rα − Cnom ) − ωˆ × (ωˆ × (rω − Cnom ))
(58)
33
Center of mass ID using gyros only
⎡ 0 −1 ⎢ ˆ Ak = I ⎢ ck ,3 ⎢ −ck ,2 ⎣
⎡ ∆ C ,1 ⎤ ck ,2 ⎤ ⎥ ⎢ ⎥ −ck ,1 ⎥ , x = ⎢ ∆ C ,2 ⎥ , bk = ωˆ − Iˆ −1 (ak − ωˆ × ( Iˆωˆ )) ⎢ ∆ C ,3 ⎥ 0 ⎥⎦ ⎣ ⎦
−ck ,3 0 ck ,1
Cˆ = Cnom + ∆ˆ C
(71)
(72)
Center of mass ID using accelerometers and gyros The following equations are available in addition to those for gyros only. Both sets of equations may be used, but the decision should be made carefully – it may be better to use only the second set.
⎡ −ωˆ 22 − ωˆ 32 ⎢ Ak = ⎢ ωˆ 3 + ωˆ1ωˆ 2 ⎢ ˆ ⎢⎣ −ω 2 + ωˆ1ωˆ 3 b = m −1 c + fˆ body
(
k
k
disturb
ωˆ 2 + ωˆ1ωˆ 3 ⎤
−ωˆ 3 + ωˆ1ωˆ 2
⎡ ∆ C ,1 ⎤ ⎥ ⎢ ⎥ −ωˆ1 + ωˆ 2ωˆ 3 ⎥ , x = ⎢ ∆ C ,2 ⎥ , ⎥ ⎢ ∆ C ,3 ⎥ −ωˆ12 − ωˆ 22 ⎥⎦ ⎣ ⎦
−ωˆ − ωˆ ωˆ1 + ωˆ 2ωˆ 3 2 1
2 3
) − xˆ
body a
(76)
+ ek
Inverse-inertia-tensor ID using gyros only
⎡ d k ,1 ⎢ Ak = ⎢ ⎢ ⎣
d k ,2 d k ,2
d k ,3
d k ,1 d k ,3
d k ,1
⎡ ∆ I −1 ,11 ⎤ ⎢ ⎥ ⎢ ∆ I −1 ,22 ⎥ ⎢ ⎥ ⎤ ⎢ ∆ I −1 ,33 ⎥ ⎥ 1 d k ,3 ⎥ , x = ⎢ dk , bk = ωˆ k − I n−om ∆ I −1 ,12 ⎥ ⎢ ⎥ d k ,2 ⎥⎦ ⎢ ∆ −1 ⎥ ⎢ I ,13 ⎥ ⎢ ∆ I −1 ,23 ⎥ ⎣ ⎦
−1 Iˆ −1 = I nom + ∆ˆ I −1
(83)
(84)
If a pure torque is commanded, Fˆbias is not identified, and disturbance torques and the gyroscopic term are ignored, d k can be simplified to:
d k = ( Lnom × D) S k FnomTk
(87)
Inertia-tensor ID using gyros only, gyroscopic term as a disturbance
⎡ωˆ k ,1 ωˆ k ,2 ωˆ k ,3 ⎢ Ak = ⎢ ωˆ k ,2 ωˆ k ,1 ⎢ ωˆ k ,3 ωˆ k ,1 ⎢⎣
⎡ ∆ I ,11 ⎤ ⎢∆ ⎥ ⎤ ⎢ I ,22 ⎥ ⎥ ⎢ ∆ I ,33 ⎥ ωˆ k ,3 ⎥ , x = ⎢ ⎥ , bk = d k − I nomωˆ k ∆ I ,12 ⎥ ⎢ ⎥ ωˆ k ,2 ⎥⎦ ⎢ ∆ I ,13 ⎥ ⎢ ⎥ ⎢⎣ ∆ I ,23 ⎥⎦
Iˆ = I nom + ∆ˆ I
34
(92)
(93)
Inertia-tensor ID using gyros only, gyroscopic term as significant
⎡ ωˆ1 −ωˆ 2ωˆ 3 ωˆ 2ωˆ 3 ωˆ 2 − ωˆ1ωˆ 3 ωˆ 3 + ωˆ1ωˆ 2 ωˆ 22 − ωˆ 32 ⎤ ⎢ ⎥ −ωˆ1ωˆ 3 ωˆ1 + ωˆ 2ωˆ 3 ωˆ 32 − ωˆ12 ωˆ 3 − ωˆ1ωˆ 2 ⎥ , Ak = ⎢ ωˆ1ωˆ 3 ωˆ 2 ⎢ ⎥ ωˆ 3 ωˆ12 − ωˆ 22 ωˆ1 − ωˆ 2ωˆ 3 ωˆ 2 + ωˆ1ωˆ 3 ⎥⎦ ⎢⎣ −ωˆ1ωˆ 2 ωˆ1ωˆ 2 k ⎡ I nom,11 ⎤ ⎡ ∆ I ,11 ⎤ ⎢I ⎥ ⎢∆ ⎥ ⎢ nom,22 ⎥ ⎢ I ,22 ⎥ ⎢ I nom ,33 ⎥ ⎢ ∆ I ,33 ⎥ x=⎢ ⎥ , bk = ak + ck × ∆ˆ C − I nomωˆ − ωˆ × ( I nomωˆ ) = ak + ck × ∆ˆ C − Ak ⎢ ⎥ ⎢ I nom ,12 ⎥ ⎢ ∆ I ,12 ⎥ ⎢ ∆ I ,13 ⎥ ⎢ I nom ,13 ⎥ ⎢ ⎥ ⎢ ⎥ ⎢⎣ I nom ,23 ⎥⎦ ⎣⎢ ∆ I ,23 ⎥⎦
(101)
ˆ should be normalized so that Iˆ does not change. Following updates during coasting periods, ∆ I Inertia-tensor ID using accels and gyros, single-thruster firings, gyroscopic term significant
⎡ ωˆ1 ⎢ Ak = ⎢ ωˆ1ωˆ 3 ⎢ ⎢⎣ −ωˆ1ωˆ 2
−ωˆ 2ωˆ 3 ωˆ 2
ωˆ1ωˆ 2
ωˆ 2ωˆ 3
ωˆ 2 − ωˆ1ωˆ 3 ωˆ 3 + ωˆ1ωˆ 2
−ωˆ1ωˆ 3 ωˆ1 + ωˆ 2ωˆ 3 ωˆ 32 − ωˆ12 ωˆ 3 ωˆ12 − ωˆ 22 ωˆ1 − ωˆ 2ωˆ 3
⎡ ∆ I ,11 ⎤ ⎢∆ ⎥ ⎢ I ,22 ⎥ ωˆ 22 − ωˆ 32 ⎤ ⎥ ⎢ ∆ I ,33 ⎥ ωˆ 3 − ωˆ1ωˆ 2 ⎥ , x = ⎢ ⎥, ∆ I ,12 ⎥ (106) ⎥ ⎢ ωˆ 2 + ωˆ1ωˆ 3 ⎥⎦ ⎢ ∆ I ,13 ⎥ k ⎢ ⎥ ⎢⎣ ∆ I ,23 ⎥⎦
body bk = ( Lnom ,i − ∆ˆ C ) × (mˆ ( xˆabody − ek + ωˆ × ∆ˆ C + ωˆ × (ωˆ × ∆ˆ C )) − fˆdisturb ) + τˆdisturb − Ak I nom
Thruster magnitude ID
⎡ Iˆω + ω × ( Iˆω ) ⎤ ⎡( Lˆ × D) S k diag(Tk ) ⎤ Ak = ⎢ x F b , diag( ), = = ⎢ ⎥ − Ak diag( Fnom ) ⎥ bias k body ˆ DS T diag( ) ˆ mx ⎢ ⎥⎦ k k ⎣ ⎦ C ⎣
(111)
Lˆ = J − (Cnom + ∆ˆ C ) [1 1 " 1] xˆCbody
Iˆ = I nom + ∆ˆ I = xˆabody − ωˆ × (rα − Cnom − ∆ˆ C ) − ωˆ × (ωˆ × (rω − Cnom − ∆ˆ C ))
(112)
If both gyros and accelerometers are available and used for ID, they should be weighted accordingly (e.g., based on the relative accuracy in translational vs. rotational accelerations). Total mass ID using accelerometers and gyros
(
)
body Ak = DSk Fnom + Fˆbias Tk + fˆdisturb , x = ∆ m−1 , −1 bk = xˆabody − ek + ωˆ × ∆ˆ C + ωˆ × (ωˆ × ∆ˆ C ) − Ak mnom −1 mˆ = (mˆ −1 ) −1 = (mnom + ∆ˆ m−1 ) −1
35
(116)
(117)
Implementation The equations derived represent the relationship between variables at each sample update. So at each k update for which the ID will be updated (e.g., at least one thruster must have been fired during that period), the Ak matrix and bk vector are created. As more measurements are taken, A and b are appended to create large matrices and vectors for batch solution.
⎡ A1 ⎤ ⎡ b1 ⎤ ⎢A ⎥ ⎢b ⎥ A = ⎢ 2⎥, b = ⎢ 2⎥ ⎢# ⎥ ⎢#⎥ ⎢ ⎥ ⎢ ⎥ ⎣⎢ Ak ⎦⎥ ⎣⎢bk ⎦⎥
(118)
Alternatively, a recursive LS solution will be implemented at each k update. The latter method is preferred as it allows each identification to benefit from updates of other parameters. Sometimes in the early updates, estimates can exceed reasonable bounds (e.g., 3 or 4 standard deviations away from nominal). One approach to address this is to
ˆ is more than 3 detect these conditions and correct the ID values that are used by the other IDs. For example, if ∆ C ˆ = 0 for the inverse expected standard deviations beyond zero (the nominal value) it may be decided to use ∆ C inertia and thruster magnitude IDs while this condition exists. The identification error covariance matrix (P from Ref. 28) should be properly initialized for each ID. When running individual IDs, it generally works fairly well to initialize P high (implying low confidence in the initial estimate), and weighting of the measurements (other than the exponential decay weighting) is then needed only if different measurements have different accuracies, as with the combined gyro and accelerometer measurements in the thruster magnitude ID. However, when multiple RLS IDs are run concurrently, with each one using the estimates of the others as known parameters, it is important to both initialize P correctly, and to properly weight each update based upon the measurement error covariance. If these steps are done correctly, the previously mentioned check for unreasonable estimates may no longer be needed. Note that even with careful P matrix initialization and measurement weighting, this approach does not yield the mathematical optimality of a Kalman Filter. It is hoped that this sub-optimality is insignificant in the presence of the numerous other approximations and dropped terms. 15. Deviations from standard LS ID form −1
The batch or recursive LS solution, xˆ = ( A A) A b , will truly minimize the quadratic error if the T
T
manipulated equations comply with the standard form, Ax = b + ε . Deviations from this form in the preceding manipulations are that: 1. Measurements (containing noise) appear in the ω × ( Iω ) term in the A matrix. However, for the relatively slow rotational speeds in many spacecraft applications, this term is negligible. 2. The other terms in the A matrix are not known perfectly, even if the ω × ( I ω ) term can be ignored.
L, D, S k , Fbias , etc. are all estimated values. 3. Random variables Frandom ,k and τ disturb that were set to zero do not appear directly in the ε term as they should. −1
CM ID uses nominal or estimated values for I and I . Inertia ID uses nominal or estimated values for L (CM). Due to the form of the underlying EOM, it is not possible to exactly comply with the standard form. The preceding manipulations and approximations to the EOM were chosen for this class of applications, attempting to minimize the expected effects of the inevitable resulting deviations. With different values of ω , disturbances, sensor accuracy, actuator variability, control policy, etc., different formulations may be better. 4.
36
III. SPHERES Implementation The TMS320C6701 floating point digital signal processor (DSP) on the SPHERES experimental spacecraft has high throughput (up to 1 Gflops), but little ROM is available on the Sundance SMT375 board, limiting the memory size for the software. So only a subset of these algorithms have been implemented for on-line space-flight testing: inverse-inertia-tensor ID using gyros only, and CM ID using gyros only. This subset was chosen as the most relevant, since they use gyros only, and these properties are the most likely to be used by an FDI, estimation, or control system. Thruster commands, on-board-filtered rate, angular acceleration, and translational acceleration, and raw gyro and accelerometer signals (as permitted by limited communications bandwidth) will be telemetered from all experiments to permit off-line testing of the remaining algorithms. The Mass ID algorithms have been implemented in Embedded C++. The performance of the real-time code has been verified to match results of the original MATLAB code within precision expected with floating point processing. The SPHERES will be launched with a supply of consumables: CO2 tanks and battery packs. The experiments have been designed to optimize experimental value constrained by limited gas, power-on time (limited by battery life), and total experiment time (limited by astronaut time). SPHERES will use an array of 5 ultrasonic beacons and an on-board Kalman filter for global position estimation. Although this has been tested successfully during ground-based air-table tests, the first experiment session does not use this global position feedback, and fires thrusters in open-loop sequences. The SPHERES program is designed to run over a sequence of 10 or more 2-hour experiment sessions, space two or more weeks apart. Each 2-hour session will typically contain experiments from multiple guest scientist teams (mass ID, formation flying, docking, etc.). The results from one session will be analyzed on the ground, and possibly refined and extended in subsequent sessions. So the list of experiments presented here represents the initial test session; subsequent sessions will have further experiments. The experimental sequence consists of 11 tests with thrusters firing a pre-determined open-loop sequence, followed by a 12th test which allows the astronaut to command translational thrust and attitude setpoints using the keyboard. The open loop tests last from about 20 to 70 seconds each, consuming a total of 24 grams of the liquid CO2 propellant and about 15 minutes of power-on time. The keyboard-controlled test will be run for as long as possible, to use remaining gas in the tank, while collecting data on closed loop attitude control and mass-property identification. The ordering of the tests has been chosen to maximize experimental return in case the full sequence cannot be run. The 11 open loop tests are summarized here: Test 1 - ID validation – single-axis firings on all 6 axes (3 rotational, 3 translational), maintaining near-zero rates after each subset, should contain enough data for full ID, but with limited accuracy. Extra data downloaded following test. Test 2 - Single-thruster firings – thrusters fired one at a time to test algorithm from Section II.C.7. Test 3 - Fuel slosh – a brief sequence of pulses that attempts to excite and then measure the liquid CO2 sloshing along the length of the tank. Test 4 - Roll-then-Pitch-axis spin – spin-up to near gyro saturation in roll, then along pitch as well, to estimate moments of inertia along those axes, and then while coasting to estimate the products of inertia. Test 5 - Pitch-then-Yaw-axis spin – similar to Test 4. Test 6 - Yaw-then-Roll-axis spin – similar to Test 4. Test 7 - Manual calibrations – the SPHERES is manually rotated and held to enable gyro calibration. Test 8 - Roll-axis spin – spin-up to near gyro saturation in roll, then allowed to coast. To estimate roll-axis moment of inertia, test spin stability/instability depending on relative size of principal axis moments of inertia. Test 9 - Pitch-axis spin – similar to Test 8. Test 10 - Yaw-axis spin – similar to Test 8. Test 11 - ID for accuracy – similar to Test 1, except that the thruster firings are longer – consuming more fuel and time, but providing better data for ID. Experimental sequence documentation has been developed for the astronaut conducting the experiments. An example figure from this documentation, this one describing Test 11, is shown in Figure 8.
37
Figure 8. Brief description of Test 11 - nominal motions and thruster firings A key aspect of the second set of ID experiments is the use of a known proof mass to change the mass properties in a well-known way. Following a set of baseline experiments, a used battery pack will be attached to one of the SPHERES faces using Velcro, imparting a well-calibrated change in mass properties. The ensuing ID experiments will find the new mass properties, and the difference observed will be compared with the expected theoretical change in mass properties. Once a second SPHERES is on-orbit, its mass properties can be ID’ed, following docking with the first SPHERES. SPHERES #1 will fire thrusters and run the ID, while SPHERES #2 is passive. Analyzing the difference between the identified properties of #1 vs. the docked pair will enable ID of the SPHERES #2 mass properties. This would be analogous to a servicing vehicle docking to a spacecraft and performing a series of thruster burns to determine the mass properties of the target spacecraft. An early iteration of the mass ID algorithms was tested in a series of NASA KC-135A (“Vomit Comet”) flights from November 5-8, 2003, providing zero-g testing4 to complement the extensive 1-g air-bearing table testing performed at MIT and NASA Ames.
IV. Conclusion Algorithms have been derived that identify, on-line, center of mass, inverse-inertia, inertia, thruster force, and total mass for thruster-controlled spacecraft. They have been used with a new algorithm, multiple concurrent recursive least squares (MCRLS ID) that enables linear RLS ID even though the unknown parameters may appear nonlinearly in the system governing equations. ID algorithms have been developed and applied in simulation to the X-38, Mini AERCam, and MIT SPHERES thruster-controlled vehicles. Using gyro signals only, or with the additional capability provided with accelerometers, and based on recursive least squares, the algorithms reliably and accurately ID mass properties for these vehicles in the presence of several significant noise sources. The algorithms are computationally efficient and can be run either on-line for adaptive control (RLS) or off-line for post-flight analysis (batch LS). MCRLS provides an identification architecture that is relatively simple, reconfigurable, and easily implemented and maintained. The slight loss in ID accuracy introduced by this approximation often falls well within the errors due to unmodeled effects such as thruster misalignment and thrust variability.
38
Efficient algorithms for estimating the vehicle angular and translational accelerations from inertial sensors are presented and tested using 0-g test data. Accurate acceleration estimation is important, since the ID accuracy is limited by the accuracy of these inputs to the identification algorithms. A subset of the algorithms has been implemented on the MIT SPHERES experimental spacecraft. Zero-g flight testing aboard the NASA zero-g KC-135A aircraft has demonstrated their viability for on-board implementation. An experimental plan for upcoming tests aboard the ISS has been presented.
Appendix A. Abbreviations CM: CO2: DOF: EOM: FDI: FDIR: ID: ISS: LS: MCRLS: Mini AERCam: NASA: RF: RLS: ROM: SPHERES: US:
Center of mass Carbon dioxide Degree(s) of freedom Equation(s) of motion Fault detection and isolation Fault detection isolation and reconfiguration (or recovery) Identification (system identification) International Space Station Least squares Multiple concurrent recursive least squares Miniature autonomous extravehicular robotic camera National Aeronautics and Space Administration Radio frequency Recursive least squares Read only memory Synchronized position hold, engage, reorient, experimental satellites Ultrasound
Acknowledgments Research funded by NASA Headquarters, HQ AA, PWC 349-00, the NASA Intelligent Systems Program 30210-10 (part of the CICT Program), and a NASA STTR award to Payload Systems, Inc. Contract #NNA05AC52C. Thanks to Dustin Berkovitz, Dr. Edmund Kong, Prof. David Miller, Simon Nolet, Steve Sell, and the rest of the MIT / Payload Systems, Inc. SPHERES team for assistance with the SPHERES integration. Thanks to Rodolfo Gonzalez and Dr. Steven Fredrickson of NASA Johnson Space Center for assistance in the problem formulations for the X-38 and Mini AERCam applications, as well as for highlighting on-line spacecraft ID as an important issue for advanced spacecraft control and fault tolerance.
References 1
Wilson, E., Sutter, D.W., and Mah, R.W., “Multiple Concurrent Recursive Least Squares Identification,” IASTED International Conference on Intelligent Systems and Control, Honolulu, HI, Aug. 2004. 2 Wilson, E., Sutter, D.W., and Mah, R.W., “MCRLS for On-line Spacecraft Mass- and Thruster-Property Identification,” IASTED International Conference on Intelligent Systems and Control, Honolulu, HI, Aug. 2004. 3 Wilson, E., Lages, C.R., and Mah, R.W., “On-line, Gyro-Based, Mass-Property Identification for Thruster-Controlled Spacecraft,” 2002 IEEE International Midwest Symposium on Circuits and Systems, Tulsa, OK, Aug. 2002. 4 Wilson, E., Sutter, D.W., et al., “Motion-Based System Identification and Fault Detection and Isolation Technologies for Thruster Controlled Spacecraft,” JANNAF 3rd Modeling and Simulation Joint Subcommittee Meeting, Colorado Springs, CO, Dec. 2003. 5 Lawson, C. and Hanson, R., Solving Least Squares Problems, Series in Automatic Computation, Prentice Hall, Englewood Cliffs, NJ, 1974. 6 Ljung, L., System Identification, Theory for the User, Information and System Sciences Series, Prentice Hall, Upper Saddle River, NJ, 1999. 7 Tanygin, S. and Williams, T., “Mass Property Estimation Using Coasting Maneuvers,” Journal of Guidance, Control, and Dynamics, Vol. 20, Jul.-Aug. 1997, pp. 625-632. 8 Bergmann, E.V., Walker, B.K., and Levy, D.R., “Mass Property Estimation for Control of Asymmetrical Satellites,” Journal of Guidance, Control, and Dynamics, Vol. 10, Sep.-Oct. 1987, pp. 483-491.
39
9 Bergmann, E.V. and Dzielski, J., “Spacecraft Mass Property Identification with Torque-Generating Control,” Journal of Guidance, Control, and Dynamics, Vol. 13, Jan.-Feb. 1990, pp. 99-103. 10 Richfield, R.F., Walker, B.K., and Bergmann, E.V., “Input Selection for a Second-Order Mass Property Estimator,” Journal of Guidance, Control, and Dynamics, Vol. 11, May-June 1988, pp. 207-212. 11 Gelb, A, et al., Applied Optimal Estimation, MIT Press, Cambridge, MA, 1974. 12 Peck, M.A., “Mass-Properties Estimation for Spacecraft with Powerful Damping,” AAS/AIAA Astrodynamics Specialist Conference, Girdwood, AK, Aug. 1999. 13 Peck, M.A., “Estimation of Inertia Parameters for Gyrostats Subject to Gravity-Gradient Torques,” AAS/AIAA Astrodynamics Specialist Conference, Quebec City, Canada, Aug. 2001. 14 Lee, A.Y. and Wertz, J.A. “In-Flight Estimation of the Cassini Spacecraft’s Inertia Tensor,” Journal of Spacecraft and Rockets, 2002, Vol. 39, No. 1, pp.153-155. 15 Wilson, E. and Rock, S.M., “Reconfigurable Control of a Free-Flying Space Robot Using Neural Networks,” 1995 American Control Conference, Seattle, WA, Jun. 1995. 16 Wilson, E., Experiments in Neural Network Control of a Free-Flying Space Robot, Ph.D. Dissertation, Mechanical Engineering Dept., Stanford University, Stanford, CA 94305, SUDAAR 666, Mar. 1995. 17 Wilson, E., Lages, C., and Mah, R.W., “Gyro-Based Maximum-Likelihood Thruster Fault Detection and Identification,” 2002 American Control Conference, Anchorage, AK, May 2002. 18 Wilson, E., Sutter, D.W., and Mah, R.W., “Motion-Based Thruster Fault Detection and Isolation,” AIAA Infotech@Aerospace Conference, Arlington, VA, Sep. 2005. 19 Wagenknecht, J. D., and González, R. A., “Guidance, Navigation, and Control (GN&C) for the Autonomous Extravehicular Robotic Camera (AERCam) Free-Flyer Vehicles,” AIAA ISS Service Vehicles Conference, Apr. 1999. 20 Wagenknecht, J.D., Fredrickson, S., Manning, T., and Jones, B., “Design, Development and Testing of the Miniature Autonomous Extravehicular Robotic Camera (Mini AERCam) Guidance, Navigation, and Control System,” 26th Annual American Astronautical Society Guidance and Control Conference, Feb. 2003. 21 Nolet, S., Kong, E., and Miller, D.W., “Autonomous Docking Algorithm Development and Experimentation Using the SPHERES Testbed,” SPIE Defense and Security Symposium, Orlando, FL, Apr. 2004. 22 Saenz-Otero, A., Miller, D.W., “The SPHERES ISS Laboratory for Rendezvous and Formation Flight”, ESA Guidance, Navigation, and Controls Conference, #29, 2002. 23 Berkovitz, D., Kong, E., and Miller, D.W., “System Identification of the SPHERES Autonomous Rendezvous and Docking Testbed,” AIAA Space 2003, Long Beach, CA, 23-25 Sep., 2003. 24 Chobotov, Spacecraft Attitude Dynamics and Control, 1991. 25 Chen, A, Propulsion System Characterization for the SPHERES Formation Flight and Docking Testbed. S.M. Thesis, M.I.T., Cambridge, MA, May, 2002. 26 Othon, W. and Strack, D. X-38 Flight Dynamics Team Note of Interest: Reaction Control System and Blowdown Tank Design Document, Note #245, Mar., 1999. 27 MATLAB is a registered trademark of The MathWorks, Inc., 24 Prime Park Way, Natick, MA 01760, 508-647-7000. 28 Franklin, G.F., Powell, J.D., and Workman, M.L., Digital Control of Dynamic Systems, Second Ed., Addison Wesley Publishing, Menlo Park, CA, 1990.
40