Proceedings of the 42nd IEEE Conference on Decision and Control Maui, Hawaii USA, December 2003
TuA12-4 State Matrix Kalman Filter
Daniel Choukroun Faculty of Aerospace Engineering Technion – Israel Institute of Technology Haifa 32000, Israel
Haim Weiss RAFAEL, Ministry of Defense P.O. Box 2250, Department 35 Haifa 31021, Israel
[email protected]
[email protected]
Itzhack Y. Bar-Itzhack Faculty of Aerospace Engineering Technion – Israel Institute of Technology Haifa 32000, Israel
Yaakov Oshman Faculty of Aerospace Engineering Technion – Israel Institute of Technology Haifa 32000, Israel
[email protected]
[email protected]
A BSTRACT
Continuous research efforts have been conducted to develop estimation and control algorithms that naturally operate on matrix plant models. Considering the Riccati differential equation of the estimation error covariance matrix in a linear filter, the Kalman-Bucy filter gain was computed as an optimal control gain for that plant [5]. Special tools in Matrix Calculus, such as the Gradient Matrix (see [6]) were developed for that purpose. Such tools were utilized to develop estimators of structural matrix parameters in a mechanical system [7]. In Statistics, the “Total LeastSquares” method handles the problem of matrix estimation (see [8, p. 595] and [9]). This is a method of data fitting, which is based on the standard linear model (see e.g. [10, p. 9]), and which is appropriate when there are errors in both the observation vector and in the measurement matrix. The issue of estimating a matrix of deterministic parameters was also addressed in [11]–[14] using, however, a probabilistic approach. A batch maximum-likelihood estimator of unknown matrices of parameters is presented in [11]. The problem of obtaining a maximum-likelihood estimate of the covariance matrix of a multivariate normal distribution was considered in [12]. A matrix version of the Best Linear Unbiased Estimator (BLUE, see [10, p. 121]) was derived in [13]. That estimator is a batch algorithm that processes a single matrix measurement, whose rows are assumed to be identically independently distributed. A special recursive least-squares algorithm, called Simplified Multivariate LeastSquares Algorithm, was derived in [15, p. 96]. For special conditions, that algorithm features an elegant extension of the classical least-squares algorithm to the matrix case. The present work is a continuation of the mentioned research efforts. Here, we consider a stochastic linear timevarying discrete-time plant with a state matrix observed by matrix measurements. The state dynamics is described by a stochastic difference equation with an additive zero-mean Gaussian white noise matrix. The measurement is modelled as a linear matrix-valued function of the state matrix with an additive zero-mean white noise matrix. All matrices are defined over the real field. In this work we propose a general state matrix Kalman filter (MKF) for this plant; that is, a
The paper presents a general discrete-time Kalman filter for state matrix estimation using matrix measurements. The new algorithm evaluates the state matrix estimate and the estimation error covariance matrix in terms of the original system matrices. The proposed algorithm naturally fits systems which are most conveniently described by matrix process and measurement equations. Its formulation uses a compact notation for aiding both intuition and mathematical manipulation. It is a straightforward extension of the classical Kalman filter, and includes as special cases other matrix filters that were developed in the past. I. I NTRODUCTION The classical Kalman filter (KF) was developed to operate on plants which are governed by vector differential/difference equations [1], [2]. In addition, the measured variable was assumed to be a vector. The description of plant dynamics and related measurement models by vector equations is a very common one; however, there are problems in which the variables are most naturally described by means of matrices, like the inertia, stiffness, and damping matrices of a given structural system. In addition, when the matrix variables are time-varying, their dynamics are governed by matrix differential/difference equations; this is the case, for instance, of the Direction Cosine Matrix (DCM) in rigid body kinematics problems [3, p. 512], and of the estimation error covariance matrix in a Kalman-Bucy filter. Consider the problem of estimating the state of a time-varying matrix plant, where the state matrix is observed through matrix measurements. In principle, the tools for tackling this estimation problem are already available. After all, one can decompose the matrix plant into a set of vector equations and proceed with the application of the conventional Kalman filter (see [4] for the estimation of the 3×3 DCM using a 9×1 KF). One drawback of that approach, however, is the loss of physical insight in the vectorized estimation algorithm. For a high-dimensional model, an excessive number of equations result and it may be almost impossible to determine any structure and properties of the solution.
0-7803-7924-1/03/$17.00 ©2003 IEEE
393
KF which provides a sequence of optimal estimates in a matrix format and performs a covariance analysis of the estimation error. The MKF has the statistical properties of the ordinary KF while retaining the advantages of a compact matrix notation by expressing the estimated matrix in terms of the original plant parameters. The structure of the paper is as follows. Section II presents the mathematical formulation of the estimation problem. Section III includes the derivation of the matrix Kalman filter, followed by a summary of the algorithm and a discussion of its structure. In Section IV, an MKF is designed in the context of spacecraft attitude determination from vector measurements. Conclusions are presented in Section V.
B. Estimation Problem
II. P ROBLEM F ORMULATION A. Matrix State-Space Model Consider a linear discrete-time stochastic dynamic system governed by the difference equation Xk+1 =
µ r=1
Θrk Xk Ψrk + Wk
(1)
where Xk ∈ Rm×n is the matrix state variable at time tk , Θrk ∈ Rm×m and Ψrk ∈ Rn×n are “transition matrices”, and Wk is an m × n noise matrix. The matrix measurement equation of the matrix plant is Yk+1 =
ν s=1
s Hk+1 Xk+1 Gsk+1 + Vk+1
The system equation of any linear matrix plant is a special case of Eq. (1). This is so because the sum operation, together with the left and right multiplication of Xk+1 in Eq. (1), enable to write each element of Xk+1 as a linear combination of all the elements of Xk+1 (plus an additive scalar noise). The proof, although straightforward, is lengthy, and is omitted here for the sake of brevity. A detailed proof is provided in [17, pp. 250-253]. In general µ might be equal to (mn)2 . However, certain plants may need fewer terms in the system equation (1). In a similar way, Eq. (2) can be shown to be a standard form for a linear matrix measurement model of the matrix plant. In the general case ν = mnpq, but certain measurement models may include fewer terms.
(2)
p×q
where Yk+1 ∈ R is the matrix measurement of Xk+1 s at time tk+1 , Hk+1 ∈ Rp×m and Gsk+1 ∈ Rn×q are the observation matrices, and Vk+1 ∈ Rp×q is a noise matrix. Let W denote any m×n random matrix with generic element wij , i = 1, . . . , m, j = 1, . . . , n, then the expectation of W is defined as the matrix of the expectations of wij ; that is E{W } = E{wij } . Let vec denote the mapping from Rm×n to Rmn which operates on a rectangular matrix by stacking its columns one underneath the other to form a single column-matrix [16, p. 244]. As an example, if W ∈ R3×3 , such that W = wc1 wc2 wc3 then wc1 vecW = wc2 ∈ R9 (3) wc3 The covariance matrix of W is defined as the covariance of its vec-transform [13]; that is cov{W } = cov{ vecW }. m×n , then cov{W } ∈ Rmn×mn . Obviously, if W ∈ R The matrix sequences Wk and Vk are assumed to be zero-mean Gaussian white noise sequences with covariance matrices Qk ∈ Rmn×mn and Rk ∈ Rpq×pq , respectively. The initial state, X0 , is assumed to be Gaussian distributed ¯ and mn × mn covariance matrix Π . Also, with mean X 0 0 Wk , Vk , and X0 are uncorrelated with one another.
The matrix Kalman filter is the unbiased minimum variance estimator of the m × n matrix state Xk at tk , given a sequence of p × q matrix observations up to tk , { Yl }, l = 1 . . . k. Let X and X denote, respectively, k/k k/k the a posteriori state estimate and the a posteriori estima . Let P = Xk − X denote tion error; that is, X k/k k/k k/k the a posteriori estimation error covariance matrix; that is ). Then, the filtering problem is equivalent Pk/k = cov( X k/k to the following minimization problem
(4) min tr Pk/k Xk
subject to Eqs. (1) and (2) and to the stochastic assumptions on the noises and the initial conditions. In the case where state and measurement are vectors, the solution of the above minimization problem leads to the standard Kalman filter. III. S TATE -M ATRIX K ALMAN F ILTER A. Solution Approach The solution approach consists of three principal steps. In the first step we apply the vec operator on the matrix plant described by Eqs. (1) and (2). Thus, the matrix equations (1) and (2) are transformed into equivalent vector equations. The result of this step is a standard state-space model, the vec-system, where the state is an mn-dimensional vector and the measurement is a pq-dimensional vector. In the second step, Kalman filter theory is applied to the vec-system. The time update and measurement update stages are developed using the classical Kalman filter algorithm. As a result we obtain two sets of equations: the first set computes the mn-dimensional state estimate of the vec-system and the second set computes the mn × mn estimation error covariance matrix. The third step aims at retrieving the matrix form of the original problem. This is done by applying the inverse of the vec-operator on the Kalman filter of the vec-system. In this way, the state estimate equations, which are mndimensional vector equations, are transformed into equivalent m × n matrix equations. Thus a matrix innovations sequence
394
is naturally defined and the time update and measurement update stages are expressed in terms of matrices. By definition, the covariance computations of the vec-system and of the matrix system are identical. Thus the covariance analysis performed in the second step is left in its current extended form. These manipulations yield a state-matrix Kalman filter in a compact notation. B. Filter Derivation It should be noted that the manipulations involved in computing the various vec-transforms and their reverse are part of the MKF derivation but not of the filter implementation. In the following we will consistently denote the vec-transform of a matrix, W , by the associated bold lower case symbol here w; that is, w = vecW . The following property of the vec-operator will be intensively used. Let A ∈ Rm×n , X ∈ Rn×p , and B ∈ Rp×q , and let ⊗ denote the Kronecker product, also called direct product, or tensor product of two matrices [16, p. 243], then [16, p. 255] (5) vec(AXB) = B T ⊗ A vecX 1) Time update: Assume that X and Pk/k have been k/k computed at time tk . Applying the vec-operator to Eq. (1), using its linear property and Eq. (5) yields µ r T r ( Ψ k ) ⊗ Θk vec Xk + vec Wk (6) vec Xk+1 =
2) Measurement update: Assume that X and Pk+1/k k+1/k have been computed, and that a new matrix measurement, Yk+1 , is performed at time tk+1 . Proceeding with similar operations to those of the previous subsection, it is straightforward to show that the three following equations are equivalent. k+1 = yk+1 − Hk+1 xk+1/k (12) y vec Yk+1 = ν T s Gsk+1 vec X vec Yk+1 − ⊗ Hk+1 (13) k+1/k s=1
Y k+1 = Yk+1 −
s=1
vec X = k+1/k = X k+1/k
µ r=1
µ
(7)
r=1
Ψrk
T
⊗ Θrk
Ψr Θrk X k/k k
(15)
Kk+1 = Pk+1/k Hk+1 Sk+1
(16)
k+1 xk+1/k+1 = xk+1/k + Kk+1 y
(17)
where Rk = cov{ Vk }. In order to recover the matrix format for the state estimate update Eq. (17), we use the following Proposition. Proposition 1: Let X ∈ Ri3 ×i4 , Z ∈ Ri1 ×i2 , and A ∈ be given matrices. Let z ∈ Ri1 i2 and x ∈ Ri3 i4 R be defined by z = vecZ and x = vecX, respectively. Let the block-matrix A be partitioned as A12 · · · A1l · · · A1i4 A11 21 22 2l 2i A A ··· A ··· A 4 .. .. . .. . . . . . . . . . . . A= j2 jl ji4 (18) Aj1 A ··· A ··· A . .. .. .. .. .. .. . . . . . i2 1 i2 2 i2 l i2 i4 A A ··· A ··· A i1 i2 ×i3 i4
vec X k/k
(9) (10)
where Eq. (10) is obtained using again the linear property of the vec-operator and Eq. (5) (but this time in the inverse direction). Notice from Eq. (10) that the a priori estimate at time tk+1 is computed using only the matrix-plant parameters, Θrk and Ψrk , [see Eq. (1)], and the a posteriori matrix estimate at time tk . Recalling that the covariance matrix of a matrix random variable is, by definition, the covariance matrix of its vec-transform, the time update stage for the estimation error covariance matrix, Pk/k ∈ Rmn×mn , is computed from [10, p. 229] Pk+1/k = Φk Pk/k ΦTk + Qk
(14)
T Sk+1 = Hk+1 Pk+1/k Hk+1 + Rk+1 −1
where the terms in Eq. (7) are obviously defined from Eq. (6). Equation (7) is the process equation of the vec-system. Applying the time update stage of the Kalman filter [10, p. 228] to the vec-system yields xk+1/k = Φk xk/k (8) Thus,
s X Hk+1 Gsk+1 k+1/k
k+1 ∈ Rpq and Y k+1 ∈ Rp×q , respectively, denote where y the innovations sequences in the vec-Kalman filter and in the matrix Kalman filter, and Hk+1 is defined from Eq. (13). The point here is that a natural expression for the matrix innovations sequence, Y k+1 , is obtained as a function of the s and Gsk+1 , [see Eq. (2)]. original plant coefficients, Hk+1 According to the Kalman filter theory, the pq ×pq covariance matrix of Y k+1 , denoted by Sk+1 , the mn × pq Kalman filter gain matrix, and the a posteriori vec-estimate, xk+1/k+1 are computed from [10, p. 246]
r=1
which is equivalent to xk+1 = Φk xk + wk
ν
where Ajl ∈ Ri1 i3 , then the vector equation z = Ax
(19)
is equivalent to the matrix equation
(11)
where Qk = cov{ Wk }.
Z=
i2 i4 j=1 l=1
395
Ajl X E lj
(20)
where E lj is a i4 × i2 matrix with 1 at position (lj) and 0 elsewhere. The proof is omitted here for the sake of brevity. It can be found in [17, pp. 254-257]. The matrix Kk+1 in Eq. (16) can be viewed as a mn × pq array of nq submatrices of dimension m × p. Let K jl denote the m×p submatrix of Kk+1 at position (jl). Then, applying Proposition 1 to the second term in the right-hand side of Eq. (17) with A = Kk+1 and x = vec Y k+1 yields = X + X k+1/k+1 k+1/k
q n j=1 l=1
jl Yk+1 E lj Kk+1
(21)
Equation (21) is the measurement update equation for the matrix state estimate at time tk+1 . As known from the classic Kalman filter [10, p. 245], the covariance matrix of the a posteriori estimation error at time tk+1 is (omitting the time subscript for clarity) T
Pk+1/k+1 = ( Imn − KH) Pk+1/k ( Imn − KH) + KRK T (22) C. Summary of the MKF = X ¯ and P = Π . Initialization: X 0 0 0/0 0/0 Time Update equations: = X k+1/k
µ r=1
Φk =
µ r=1
Ψr Θrk X k/k k
Ψrk
T
⊗ Θrk
(23)
Pk+1/k = Φk Pk/k ΦTk + Qk
(24) (25)
Measurement Update equations: Y k+1 = Yk+1 − Hk+1 =
ν s=1
ν s=1
Gsk+1
s X Hk+1 Gsk+1 k+1/k
T
s ⊗ Hk+1
T Sk+1 = Hk+1 Pk+1/k Hk+1 + Rk+1 T
−1
(26)
Kk+1 = Pk+1/k Hk+1 Sk+1 q n jl X Yk+1 E lj = X + Kk+1 k+1/k+1 k+1/k
(27) (28) (29) (30)
j=1 l=1
jl is a m × p submatrix of the mn × pq matrix where Kk+1 Kk+1 defined by 11 1l Kk+1 · · · Kk+1 · · · . .. .. .. . . . . . Kk+1 = j1 n matrices (31) jl Kk+1 · · · Kk+1 · · · .. .. .. .. . . . . q matrices
and E lj is a q × n matrix with 1 at position (lj) and 0 elsewhere. T
Pk+1/k+1 = ( Imn − KH) Pk+1/k ( Imn − KH) + KRK T (32) j] [the The variance and the covariance associated with X[i, are element (ij) in the estimation error matrix X] ! j] = P [(j − 1)m + i, (j − 1)m + i] var X[i, (33a) ! j], X[k, l] = P [(j − 1)m + i, (l − 1)m + k] cov X[i, (33b) where i, k = 1 . . . m, and j, l = 1 . . . n. Equations (33) are proved using the definitions of the vec-operator and of the covariance matrix of a random matrix. The variable X denotes either the a posteriori or the a priori estimation error as applicable, and P is the associated covariance matrix. D. Discussion The proposed filter behaves like the conventional linear Kalman filter. It is a time varying algorithm for optimal recursive estimation of a matrix state process using a sequence of matrix measurements. The MKF is a natural extension of the conventional Kalman filter. The two new dimensions are the number of columns in the state matrix, n, and the number of columns in the measurement matrix, q. Conversely, the ordinary vector Kalman filter is a special case of the matrix KF. By taking n = q = 1 the proposed algorithm yields exactly the Kalman filter. When n = 1 or q = 1 the matrix Kalman filter provides us with equations where the state matrix estimate is propagated and updated as a matrix using the coefficients of the matrix plant. Therefore, the estimation algorithm preserves the physical insight of the original plant. The matrix Kalman filter includes as special cases two other matrix estimators presented in the literature, the matrix Best Linear Unbiased (BLU) estimator [13], and the Simplified Multivariate Least-Squares (SMLS) algorithm [15, p. 96]. Consider the special case of a time-invariant system with a time-invariant state-matrix, where the measurement model is described by Y = HX + V , H is full-rank, the rows of V are identically independently distributed, and there is no a priori estimate, then developing an MKF using these assumptions leads to the matrix BLU estimator of [13]. The proof is detailed in [17, pp. 257-259]. The SMLS algorithm is also derived as a special case of the MKF algorithm. This is done by assuming that the system is time-invariant, the measurement is a row-matrix, which is T T = hTk+1 X + vk+1 , the covariance matrix expressed as yk+1 of the measurement noise, vk+1 , is the identity matrix, and the columns of the initial state matrix estimate are identically independently distributed. Then, developing an MKF based on the above assumptions yields the SMLS algorithm. A detailed proof is given in [17, pp. 260-262].
396
IV. E XAMPLE In this example we design a matrix Kalman filter for determining the attitude of a rigid spacecraft from vector measurements. Such algorithms have two stages (see e.g. [3, pp. 426–428]); in the first stage the measurement data is collected in a convenient matrix format, and in the second stage the attitude is extracted by some numerical method. We focus here on the first stage, and design a matrix Kalman filter that “pre-filters” the measurements. Consider two Cartesian coordinate frames, B and R, where B is attached to the spacecraft body, and R is a given inertial reference frame. Let the representations in B and R of any physical vector, like the Earth Magnetic Field, or the Line of Sight unit vector from the spacecraft to a celestial object, be denoted by bo and r, respectively; then, bo and r are related by bo = A r (34) where A is the attitude matrix, also called the Direction Cosine Matrix [3, p. 410]. The reference vector r is usually accurately known from tables or almanacs, while b is measured on-board the spacecraft with some error. Denoting by v the measurement error, and assuming that N simultaneous measurement are performed at time tk , yields bk,1 · · · bk,N = bok,1 · · · bok,N + vk,1 · · · vk,N , (35) which is equivalently written as Yk = Xk + Vk
(36)
The state matrix, Xk , the measurement matrix, Yk , and the measurement noise matrix, Vk , all in R3×N , are obviously defined from Eq. (35). The kinematics law of a rigid body in terms of the attitude matrix is described by the well-known difference equation [3, p. 512] Ak+1 = Θok Ak Θok = exp{− ω ok × ∆t}
(37) (38)
where ω ok is the true angular velocity vector of B with respect to R, resolved in B, ω ok × denotes the cross product matrix; that is, for u ∈ R3 , ω ok × u = ω ok × u,
and ∆t is the time increment, ∆t = tk+1 − tk . We assume here that, for each vector measurement, the rate of change of the associated reference vector, r, is negligible. This is the case when directions to stars are measured because stars are assumed fixed in an inertial reference frame. Furthermore, it is assumed that the same stars are observed at each epoch time. This happens for a spacecraft with an inertial-stabilized attitude, such that the same portion of the celestial sphere can be observed over time. The angular velocity vector is measured by a triad of body-mounted gyros. Using Eqs. (34), (37), (38), and the definition of the state matrix, Xk , yields,
after some algebraic manipulations, the following process equation Xk+1 = Θk Xk + Wk (39) where Θk is obtained by substituting the measured angular velocity, ω k , for ω ok in Eq. (38), and Wk is the process noise. The tested scenario is for a spinning spacecraft that undergoes nutation. The spin velocity is 0.464 revolution per minute, the nutation rate is 1 revolution per hour, and the nutation angle is 22.5o . As a special case, the gyro noise is assumed to be a zero-mean white sequence with covariance matrix Qk = (0.01 deg/hr)2 I3 . An analytic expression for the 6 × 6 covariance matrix of Wk , Qk , is computed as follows, T )T ⊗ I )T ⊗ I L Q LT ( X ∆t2 Qk = ( X 3 3 k/k k/k k (40) T (41) L = [ e1 ×] [ e2 ×] [ e3 ×] , where { e1 , e2 , e3 } is the standard basis in R3 , and X k/k denotes the a posteriori estimate of Xk at tk . Eqs. (40), (41) provide an initial value for Qk , which is further refined by filter tuning. The same two directions are simultaneously observed at each sampling time. The reference-components vectors of the two observed directions are chosen as [ r1 r2 ] = [ e1 e2 ]. The vector observations noises are assumed to be zero-mean, white sequences with covariance matrices Rk,1 = 4 · 10−4 I3 [ rad2 ] and Rk,2 = 4 · 10−5 I3 [ rad2 ]. They are also assumed to be uncorrelated, so that Rk , the covariance matrix of Vk , is a 6 × 6 block-diagonal matrix expressed as Rk = diag( Rk,1 , Rk,2 ). The initial value of the state, X0 , is a Gaussian matrix random variable with mean ¯ = [ e e ] and covariance matrix Π = 0.2 I , where I X 0 1 2 0 6 6 denotes the 6 × 6 identity matrix. The vector measurement noises, the gyro noise, and the initial state are assumed to be uncorrelated with one another. The MKF algorithm is = O , and P = 5 I . initialized with X 0 6 6 0/0 Figs. 1 and 2 summarize the simulation results. Fig. 1 presents a sample run of the time histories of the estimation errors. The left-hand column of plots corresponds to the first observed direction, while the plots in the right-hand column correspond to the second direction. It can be seen that the estimation errors are convergent. Because of the higher accuracy in the second vector observation, the estimator performance is better in the right-hand column, e.g., the transition phases are shorter and the steady-state values are smaller. This analysis is confirmed when looking at the 100-runs Monte-Carlo simulation results (Fig. 2). The 1σenvelopes are clearly narrower in the right-hand column than in the left-hand column. Moreover, Fig. 2 shows that there is consistency between the actual and the predicted value of the filter performances. Note that this happens in spite of the non-linearities introduced in the process equation and in the expression for Qk .
397
−3
1
−3
x 10
1
0
−0.5 −1 1
0 200 −3 x 10
400 600 [sec]
800
−1
1000
1
X22
X21
−0.5 0 200 −3 x 10
400 600 [sec]
800
1
X31
X32 0
200
400 600 [sec]
800
−1
1000
12
X 400 600 [sec]
800
0
400 600 [sec]
800
1000
200
22
5
X 400 600 [sec]
800
5
0
200
400 600 [sec]
800
1000
0 200 −4 x 10
400 600 [sec]
800
1000
0 200 −4 x 10
400 600 [sec]
800
1000
0
400 600 [sec]
800
1000
0
−5
1000
32
0 200 −4 x 10
x 10
0
−5
1000
X
11
X
21
X
31
X
5
0 200 −4 x 10
0
1000
−4
x 10
0
−5
800
Sample run - Time histories of the estimation errors
0
5
400 600 [sec]
0
−4
−5
0 200 −3 x 10
−0.5
Fig. 1.
5
1000
0.5
−0.5
−5
800
0
−1
1000
0
5
400 600 [sec]
−0.5
0.5
−1
0 200 −3 x 10
0.5
0
1
0
−0.5
0.5
−1
VI. REFERENCES
0.5 X12
X11
0.5
x 10
0
−5
200
Fig. 2. Monte-Carlo simulation results - Full thick line: MC mean, Broken thin lines: MC ±1σ, Full thin lines: Filter ±1σ
V. C ONCLUSIONS It has been shown that stochastic systems described by linear matrix difference equations and observed through linear matrix measurement equations can be estimated by a matrix version of the ordinary Kalman filter. The proposed estimation algorithm uses a compact matrix notation to produce the matrix estimate and the estimation error covariance matrix in terms of the original plant coefficients. The matrix Kalman filter is a natural and straightforward extension of the ordinary Kalman filter, and includes, as special cases, other matrix filters previously introduced. As an example, a matrix Kalman filter was designed for an attitude determination problem.
[1] Kalman, R.E., “A New Approach to Linear Filtering and Prediction Problems,” Trans. ASME, J. Basic Eng., Ser. D, Vol. 82, March 1960, pp. 35–45. [2] Kalman, R.E., and Bucy, R.S., “New Results in Linear Filtering and Prediction Theory,” Trans. ASME, J. Basic Eng., Ser. D, Vol. 83, March 1961, pp. 95–108. [3] Wertz, J.R. (ed.), Spacecraft Attitude Determination and Control, D. Reidel, Dordrecht, The Netherlands, 1984. [4] Bar-Itzhack, I.Y. and Reiner, J., “Recursive Attitude Determination from Vector Observations: DCM Identification,” Journal of Guidance, Control, and Dynamics, Vol. 7, Jan.-Feb. 1984, pp. 51–56. [5] Athans, M., and Tse, E., “A Direct Derivation of the Optimal Linear Filter Using the Maximum Principle,” IEEE Transactions on Automatic Control, Vol. AC-12, No. 6, 1967, pp. 690–698. [6] Athans, M., “The Matrix Maximum Principle,” Information and Control, Vol. 11, Nos. 5-6, 1967, pp. 592– 606. [7] Baruch M., and Bar-Itzhack, I. Y., “Optimal Weighted Orthogonalization of Measured Modes,” AIAA Journal, Vol. 16, No.4, pp. 346-351. [8] Golub, G.H., and Van Loan, C.F., “An Analysis of the Total Least-Squares Problem,” SIAM J. Numer. Anal., Vol. 17, 1980, pp. 883–893. [9] Van Huffel, S., and Vandewalle, J., The Total Least Squares Problem: Computational Aspects and Analysis, Society for Industrial and Applied Mathematics, Philadelphia, 1991. [10] Mendel, J.M., Lessons in Estimation Theory for Signal Processing, Communications, and Control, Prentice Hall PTR, Englewood Cliffs, N.J., 1995. [11] Neudecker, H., “Some Theorems on Matrix Differentiation with special References to Kronecker Products,” J. Amer. Statist. Assoc., Vol. 64, 1969, pp. 953–963. [12] Tracy, D.S., and Dwyer, P.S., “Multivariate Maxima and Minima with Matrix Derivatives,” J. Amer. Statist. Assoc., Vol. 64, 1969, pp. 1576–1594. [13] Nissen, D.H., “A note on the Variance of a Matrix,” Econometrica, Vol. 36, 1968, pp. 603–604. [14] MacRae, E.C., “Matrix Derivatives with an Application to an Adaptive Linear Decision Problem,” The Annals of Statistics, Vol. 2, No.2 1974, pp. 337–346. [15] Goodwin, G.C., and Sin, K.S., Adaptive Filtering Prediction and Control, Englewood Cliffs, N.J., Prentice Hall, 1984. [16] Horn, R.A., and Johnson, C.R., Topics in Matrix Analysis, Cambridge University press, Cambridge, 1991. [17] Choukroun, D., Novel Methods for Attitude Estimation from Vector Observations, Ph.D. Thesis, Technion, Israel Institute of Technology, 2003.
398