You are on page 1of 17

Int. J. Mechanisms and Robotic Systems, Vol. 2, No.

1, 2014 17

Mathematical model and attitude estimation using


Kalman filter technique for low earth orbit satellite

Nor Hazadura Hamzah* and Sazali Yaacob


School of Mechatronic Engineering,
Pauh Putra Campus,
Universiti Malaysia Perlis,
02600 Arau, Perlis, Malaysia
E-mail: hazadura@gmail.com
E-mail: sazali22@yahoo.com
*Corresponding author

Abstract: In space, attitude analysis of a satellite is constantly being computed


within the system of the satellite. In this paper, a rigorous derivation of
mathematical model of satellite’s attitude with gravity gradient moment, which
is inherent in low-orbit satellite is presented. Additionally, attitude estimation
using Kalman filter technique is employed to predict the actual satellite’s
attitude despite the noise presence in the system. As for demonstration purpose,
a simulation of the attitude estimation via Kalman filter is carried out using
MATLAB software. Through the simulation result, the importance of filtering
technique for attitude estimation is realised.
Keywords: mathematical model; satellite’s attitude; gravity gradient moment;
attitude estimation; Kalman filter.
Reference to this paper should be made as follows: Hamzah, N.H. and
Yaacob, S. (2014) ‘Mathematical model and attitude estimation using Kalman
filter technique for low earth orbit satellite’, Int. J. Mechanisms and Robotic
Systems, Vol. 2, No. 1, pp.17–33.
Biographical notes: Nor Hazadura Hamzah received his MSc in Mathematics
from Faculty of Sciences, University of Technology Malaysia, Malaysia in
2007. She is currently enrolled in the PhD programme in Mechatronics
Engineering at University Malaysia Perlis, Malaysia. Her research interests
include non-linear systems, observers, and spacecraft guidance, navigation and
control systems.
Sazali Yaacob received his MSc in System Engineering at University of Surrey
and PhD in Control Engineering from University of Sheffield, UK in year 1987
and 1995, respectively. He is a Professor at University Malaysia Perlis. His
research interests are in control, modelling and signal processing with
applications in the fields of satellite, bio-medical, applied mechanics and
robotics. He has published more than 70 papers in journals and 200 papers in
conference proceedings. He received his professional qualification as a
Chartered Engineer from the Engineering Council, UK in 2005 and also a
member of the Institute of Engineering and Technology, UK since 2003.
This paper is a revised and expanded version of a paper entitled ‘Mathematical
model and attitude estimation using Kalman filter technique for low earth orbit
satellite’ presented at the International Conference on Man Machine Systems
(ICoMMS 2012), Penang, Malaysia, 27–28 February 2012.

Copyright © 2014 Inderscience Enterprises Ltd.


18 N.H. Hamzah and S. Yaacob

1 Introduction

Attitude of a satellite is defined as its orientation in the space. The orientation of


spacecraft is often described using three angles called roll (x-axis), pitch (y-axis) and yaw
(z-axis). Attitude analysis of a satellite is constantly being computed within the system of
the satellite throughout in space for mission accomplishment. Examples of satellite
mission are Earth observation, communication, scientific research and many other
missions. The analysis of a satellite’s attitude is performed in attitude determination and
control subsystem (ADCS).
ADCS is one of the most critical subsystems of the satellite that may determine the
success of the satellite to carry out the mission. Among many function subsystems,
ADCS is a mission-critical real-time embedded system and as such receives considerable
care to ensure reliable operation in space (Wertz, 1978). Generally, ADCS is decomposed
into several components including the plant/spacecraft dynamics itself, the attitude
determination system (ADS) (consisting the sensors and attitude estimation algorithm)
and attitude control system (ACS) (consisting the control algorithm and actuators). The
general structure of ADCS is shown in Figure 1. Basically, the satellite’s attitude is
described by the Euler angles and angular rate. In general, the attitude is measured using
sensors. However, since most of the sensors are inherent with noises (e.g., random noise
and bias noise), hence, the estimator is required to provide the best estimate of the current
attitude in spite of the noise presence in the measurement. Subsequently, the estimated
attitude will be fed back into the controller, in which the controller send the desired
command to the actuators, as the actuators provide the required forces or torques to
control the satellite’s attitude into the desired attitude.

Figure 1 General structure of a satellite’s ADCS

Environment
Reference: Implemented by ADCS
1. Euler angles software hardware
2. Angular rates Disturbance
3. Angular
acceleration Spacecraft
Actuators
Controller dynamics
Output:
1. Euler angles
2. Angular rates

Sensors
Estimator
Feedback signal:
1. Euler angles
2. Angular rates
Mathematical model and attitude estimation using Kalman filter technique 19

Attitude estimation is one of the important processes in ADCS that ensuring the success
of a satellite mission. It is a process to estimate the attitude under the noise presence. Its
role is to provide the estimate of the current attitude to be fed back into the controller for
attitude control purpose. In early application of attitude estimation of spacecraft, Kalman
filter was developed to be applied in spacecraft navigation for the Apollo space
programme (Wertz, 1978). Since then, Kalman filter has found as most widely used
algorithm in most spacecraft since it provide the best estimate of the current attitude.
Kalman filter is an estimation technique that deals with linear model with assumption on
the noise measurements are Gaussian distribution. For non-linear dynamical system,
extended Kalman filter (EKF) is used to estimate the attitude where the non-linear model
is linearised such as worked done by Lefferts et al. (1982) and Markley (2003). Basically,
the existing attitude estimation schemes use different attitude representation either
Euler angles, Rodrigues parameter, or quarternion parameter (Bar-Itzhack and Oshman,
1985; Shuster, 1990; Psiaki, 2000) as their kinematic model. Other attitude estimation
approach that does not requires Gaussian assumption of the noise is particle filter
(Arulampalam et al., 2002; Cheng and Crassidis, 2004; Oshman Oshman, 2004).
In this paper, estimation of attitude represented by Euler angles is performed using
Kalman filter where the model in this paper is linear and the noise is assumed as
Gaussian white noise.
In order to perform the attitude estimation process, the dynamics model of satellite’s
attitude is required. Dynamics model of satellite’s attitude are well defined in literatures.
However, to the best of author knowledge, there is no reference that presented a rigorous
derivation on attitude dynamics equations for a three-axis stabilised satellite. Principally,
three axis stabilised satellite use momentum exchange devices to maintain the satellite
orientation in three-dimensional space (Sidi, 2000). Hence, in this paper, a rigorous
derivation on mathematical model of satellite’s attitude is provided.
The rest of this paper is organised as follows: derivation on the mathematical
model of satellite’s attitude is presented in Section 2; a brief description of Kalman
filter is given in Section 3; while the simulation example of attitude estimation
using Kalman filter is provided in Section 4; and lastly, the conclusion is drawn in
Section 5.

2 Mathematical model

Satellite attitude dynamics is required in order to perform attitude estimation processes


(Abdelrahman and Park, 2011). Hence, in this paper, satellite attitude dynamics is derived
in this section. Mathematical model of satellite’s attitude is described by the dynamics
equation of motion and kinematics equation of motion. Satellite attitude dynamics
consists of integrating both the dynamics equation of motion and kinematics equation of
motion (Wertz, 1978) which provides the knowledge of satellite’s attitude and its angular
velocity. Before that, it is more convenient to know the basic coordinate system which is
useful for attitude kinematics derivation.
20 N.H. Hamzah and S. Yaacob

2.1 Coordinate frame systems


Basically, there exist three coordinate frames, which are orbit reference frame, body axis
frame and inertial axis frame, as shown in Figure 2. The origin of the orbit reference
frame moves with the centre of mass of the satellite in the orbit. The ZR axis points
toward the centre of mass of the earth; the XR axis is in the plane of the orbit,
perpendicular to the ZR axis, in the direction of the velocity of the satellite; and the YR
axis is normal to the local plane of the orbit, completing a three-axis right-hand
orthogonal system (the subscript ‘R’ denotes for reference). The satellite’s body axis
frame is defined by XB, YB and ZB (the subscript ‘B’ denotes body). While inertial axis
frame defined by XI, YI and ZI (the subscript ‘I’ denotes inertial), has its origin at the
centre of mass of the earth.

Figure 2 Basic coordinate frame

Source: Captured from Sidi (2000)

2.2 Kinematics equation of motion


The changes in orientation of a satellite, due to external forces acting on the body are
known as kinematics equation of motion. The satellite’s attitude with respect to any
reference frame can be represented by either direction cosine matrix [A], or quaternion
vector q, or Euler angles (Shuster, 1993). In our treatment, Euler angles is used to
represent the satellite’s attitude as its straightforward physical interpretation for analysis
and commonly employed for three axis stabilised satellite for which small angle
approximations can be used (Wertz, 1978). Euler angles are defined as the rotational
angles about the body axis as follows: φ, rotational angle about the XB axis (roll); θ,
rotational angle about the YB axis (pitch); and φ, rotational angle about the ZB axis (yaw).
Two important factors in satellite kinematics are the angular velocity vector of the
body frame relative to the reference frame, denoted by ωBR and the angular velocity of the
reference frame relative to inertial frame denoted by ωRI. When the ωRI is expressed in
the body frame, it is denoted by ω(RI)B. Hence, the velocity vector of the body frame
relative to inertial frame is given by
Mathematical model and attitude estimation using Kalman filter technique 21

ω BI = ω BR + ω( RI ) B (1)

The angular velocity vector ωBR is of importance, because it allows to calculate Euler
angles of the moving body with respect to any defined reference frame in space. In this
paper, the Euler angle rotation for the transformation order of ϕ − θ − φ (or some
literatures use symbol 3-2-1) is treated.
Let [ Aφ ],[ Aθ ], and [ Aϕ ] denote the attitude transformation about the XB axis by an
angle φ, about the YB axis by an angle θ, and about the ZB axis by an angle φ respectively,
where

⎡ cϕ sϕ 0⎤ ⎡cθ 0 − sθ ⎤ ⎡1 0 0⎤
[ Aϕ ] = ⎢⎢ − sϕ cϕ 0 ⎥⎥ ,[ Aθ ] = ⎢⎢ 0 1 0 ⎥⎥ , and [ Aφ ] = ⎢⎢0 cφ sφ ⎥⎥ (2)
⎢⎣ 0 0 1 ⎥⎦ ⎢⎣ sθ 0 cθ ⎥⎦ ⎢⎣0 − sφ cφ ⎥⎦

Note that c and s denote cos and sin, respectively. Hence, the direction cosine matrix
expressed in the Euler angles which represent the rotation of the body axes relative to the
reference axis frame is

⎡ cθ cϕ cθ sϕ − sθ ⎤

[ Aϕθφ ] = [ Aφ ][ Aθ ][ Aϕ ] = ⎢ −cφ sϕ + sφ sθ cϕ cφ cϕ + sφ sθ sϕ sφ cθ ⎥⎥ (3)
⎢⎣ sφ sϕ + cφ sθ cϕ − sφ cϕ + cφ sθ sϕ cφ cθ ⎥⎦

Suppose that angular velocity vector of the body frame relative to reference frame, ωBR is
denoted by

⎡ p⎤
ω BR = pi + qj + rk = ⎢⎢ q ⎥⎥ (4)
⎢⎣ r ⎥⎦

The relation between ωBR and the Euler angles as well as their derivatives is obtained
through the following explanation. The first rotation, about the ZB axis (axis 3) leads to
the derivative dφ/dt about the ZB axis in which this derivatives is subject to three
successive angular transformations (φ, θ and finally φ). The second transformation about
the YB axis by an angle θ, produces the derivative dθ/dt, which is subject to two angular
successive angular transformation (θ and then φ). The last rotation about the XB axis,
produces the derivative dφ/dt and is subject to only one attitude transformation before the
final angular position of the body coordinate system relative to reference coordinate
system is reached. Hence by the explanations, these derivatives are transformed to the
body angular rates p, q, and r by the following equation
22 N.H. Hamzah and S. Yaacob

⎡ p⎤ ⎡0⎤ ⎡0⎤ ⎡φ ⎤


⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
ω BR = ⎢ q ⎥ = [ Aφ ][ Aθ ][ Aϕ ] ⎢ 0 ⎥ + [ Aφ ][ Aθ ] ⎢θ ⎥ + [ Aφ ] ⎢ 0 ⎥
⎢⎣ r ⎥⎦ ⎢⎣ϕ ⎥⎦ ⎢⎣ 0 ⎥⎦ ⎢0⎥
⎣ ⎦
⎡ cθ cϕ cθ sϕ − sθ ⎤ ⎡0⎤
= ⎢ −cφ sϕ + sφ sθ cϕ cφ cϕ + sφ sθ sϕ sφ cθ ⎥⎥ ⎢⎢ 0 ⎥⎥

⎢⎣ sφ sϕ + cφ sθ cϕ − sφ cϕ + cφ sθ sϕ cφ cθ ⎥⎦ ⎢⎣ϕ ⎥⎦
(5)
⎡ cθ 0 − sθ ⎤ ⎡ 0 ⎤ ⎡1 0 0 ⎤ ⎡φ ⎤
⎢ ⎥
+ ⎢⎢ sφ cθ cφ sφ cθ ⎥⎥ ⎢⎢θ ⎥⎥ + ⎢⎢0 cφ cφ ⎥⎥ ⎢ 0 ⎥
⎢⎣cφ sθ − sφ cφ cθ ⎥⎦ ⎢⎣ 0 ⎥⎦ ⎢⎣0 − sφ cφ ⎥⎦ ⎢⎣ 0 ⎥⎦
⎡ φ − ϕ sθ ⎤
⎢ ⎥
∴ ω BR = ⎢ θcφ + ϕ sφ cθ ⎥
⎢ −θsφ + ϕ cφ cθ ⎥
⎣ ⎦

However, angular velocity of the body relative to inertial frame ωBI is given by
ω BI = ω BR + ω ( RI ) B where angular velocity of the orbit reference frame relative to inertial
frame is given by

⎡ 0 ⎤
ω RI = ⎢⎢ −ω0 ⎥⎥ (6)
⎢⎣ 0 ⎥⎦

with ω0 is the orbital rate of the spacecraft.


Hence, the angular velocity of the orbit reference frame relative to the body frame in
body axes frame, ω(RI)B becomes

⎡ 0 ⎤ ⎡ cθcφ cθsφ − sθ ⎤ ⎡ 0 ⎤
ω( RI ) B = ⎡⎣ Aφθφ ⎤⎦ ⎢ −ω0 ⎥ = ⎢ −cφ sφ + sφ sθcφ cφ cφ + sφ sθsφ sφ cθ ⎥⎥ ⎢⎢ −ω0 ⎥⎥
⎢ ⎥ ⎢
⎢⎣ 0 ⎥⎦ ⎢⎣ sφ sφ + cφ sθcφ − sφ cφ + cφ sθsφ cφ cθ ⎥⎦ ⎢⎣ 0 ⎥⎦
(7)
⎡ −ω0 cθsφ ⎤
∴ ω( RI ) B ⎢ −ω0 (cφ cφ + sφ sθsφ) ⎥⎥

⎢⎣ −ω0 (− sφ cφ + cφ sθsφ) ⎥⎦

However, ω as defined in the following subsection of deriving dynamics equation of


motion is actually the angular velocity of body relative to inertial frame, i.e., ω = ωBI.
Hence,
Mathematical model and attitude estimation using Kalman filter technique 23

⎡ φ − φσ θ ⎤ ⎡ −ω0 cθsφ ⎤


⎢ ⎥ ⎢ ⎥

ω = ωBI = ωBR + ω( RI ) B = ⎢ θcφ + φs φ cθ ⎥ + ⎢ − ω ( cφ cφ + sφ sθsφ)
0 ⎥
⎢  ⎥ ⎢ −ω0 ( − sφ cφ + cφ sθsφ ) ⎥
⎣ − θsφ + 
φc φ cθ ⎦ ⎣ ⎦
(8)
⎡ ωx ⎤ ⎡ φ − φsθ
 − ω0 cθsφ ⎤
⎢ ⎥ ⎢ ⎥
∴ ω = ⎢ωy ⎥ = ⎢ θc φ + φs
 φ cθ − ω0 (cφ cφ + sφ sθsφ) ⎥
⎢⎣ ωz ⎥⎦ ⎢ −θs
 ⎥
⎣ φ + φc  φ cθ − ω0 (− sφ cφ + cφ sθsφ) ⎦

and

⎡ ω x ⎤
∴ ω = ⎢⎢ ω y ⎥⎥
⎢⎣ ω z ⎥⎦
⎡ φ − ( φθcθ  ) − ω0 ( −θsθsφ
  + φsθ  + φcθcφ
 ) ⎤
⎢ ⎥
⎢  φ − θφsφ + φs
⎧⎪θc  φ cθ + φφcφ cθ − φθs   φ sθ − ⎫⎪ ⎥ (9)
⎢ ⎨ ⎬ ⎥
=⎢ ⎩⎪ ⎣
ω 0 ⎡ ( −φ  sφ cφ − 
φc φ sφ ) + ( φc φ sθsφ + 
θs φ cθsφ + 
φs φ sθcφ ) ⎤
⎦ ⎭⎪ ⎥


⎢ ⎧⎪ − θs φ − θφcφ + φc φ cθ − φφsφ cθ − φθc   φ sθ − ⎫⎪⎥
⎢ ⎨ ⎬⎥⎥

⎣ ⎪⎩ ⎣ω 0 ⎡ ( − φc φ cφ + 
φs φ sφ ) + ( − φ  sφ sθsφ + 
θc φ cθsφ + 
φc φ sθcφ ) ⎤
⎦ ⎭⎪⎦

2.3 Dynamics equation of motion


The dynamics equation of motion describes the dependence between external torques
(disturbances and control torque) and the satellite’s angular velocity (Sidi, 2000).
Principally, the basic law governing the dynamics motion of rigid-body spacecraft is
similar for all spacecraft which is derived from Euler’s moment equation. Euler’s
moment equation describes the relation between the total external torque acting on a rigid
body and its angular momentum. In this section, the dynamics equation of motion for a
general satellite with momentum exchange devices (e.g., reaction wheels and momentum
wheels) will be derived since incorporating the devices for three-axis stabilisation
requires the momentum exchange devices dynamics also need to be included as an
additional term in Euler’s moment equation because the devices continuously rotating
and have their own angular momentum (Sidi, 2000; Wertz, 1978) which becomes a part
of the entire system in Euler’s moment equation. Thus, the attitude dynamics equation of
a satellite in the satellite body frame is derived from Euler’s moment equation (Sidi,
2000) as follows:

T = h + ω × h (10)
with T = Tc + Td and h = hB + hw. T which denotes the external torque, is break down into
two principal parts: Tc, control torque to be used for controlling the attitude motion of the
satellite; and Td, those torques due to different disturbing environmental phenomena
including aerodynamic drag, solar radiation pressure, gravity gradient and magnetic field
effects (Wertz, 1978). While, h is the momentum of the satellite in the body frame and h
24 N.H. Hamzah and S. Yaacob

denotes its first derivative. The momentum of the entire system is divided into the
angular momentums of the rigid body, hB = [hx hy hz ]T and the moment exchange
devices, hw = [hwx hwy hwz ]T . Finally, ω = [ω x ω y ω z ]T , is the angular velocity vector of
the body frame with respect to inertial frame. With these definitions, the general
equations of motion becomes

Tc + Td = (hB + hw ) + ω × (hB + hw ) (11)

where

⎡ hx + hwx ⎤
hB + hW = ⎢ h + h ⎥
⎢ y wy ⎥ (12)
⎢  ⎥
⎣ hz + hwz ⎦
and ω × (hB + hW) is

⎡ i j k ⎤
⎢ ωz ⎥⎥
ω × ( hB + hW ) = ⎢ ωx ωy
⎢⎣ hx + hwx hy + hwy hz + hwz ⎥⎦
(13)
⎡( ωy hz − ωz hy ) + ( ωy hwz − ωz hwy ) ⎤
⎢ ⎥
= ⎢( ωz hx − ωx hz ) + ( ωz hwx − ωx hwz ) ⎥
⎢ ⎥
⎣( ωx hy − ωy hx ) + ( ωx hwy − ωy hwx ) ⎦
Hence, by substituting (12) and (13) into (11), the Euler’s moment equation of motion
become

⎡Tcx + Tdx ⎤ ⎡ hx + hwx + ( ωy hz − ωz hy ) + (ωy hwz − ωz hwy ) ⎤


 
⎢ ⎥ ⎢ ⎥
∴ ⎢Tcy + Tdy ⎥ = ⎢ hy + hwy + ( ωz hx − ωx hz ) + (ωz hwx − ωx hwz ) ⎥ (14)
⎢⎣Tcz + Tdz ⎥⎦ ⎢ h + h + ω h − ω h + (ω h − ω h ) ⎥
⎢⎣ z wz ( x y y x ) x wy y wx ⎥⎦
or the component-wise of (14) is given by

Tcx + Tdx = hx + hwx + ( ωy hz − ωz hy ) + (ωy hwz − ωz hwy ) (14a)

Tcy + Tdy = hy + hwy + ( ωz hx − ωx hz ) + (ωz hwx − ωx hwz ) (14b)

Tcz + Tdz = hz + hwz + ( ωx hy − ωy hx ) + (ωx hwy − ωy hwx ) (14c)

However, note that the angular momentum of rigid body, hB = [hx hy hz ]T is defined as

⎡ I xx − I xy − I xz ⎤ ⎡ ωx ⎤
⎢−I ⎥
− I yz ⎥ and ω = ⎢⎢ωy ⎥⎥
hB = I B ω where I B = ⎢ yx I yy (15)
⎢⎣ − I zx − I zy I zz ⎥⎦ ⎢⎣ ωz ⎥⎦

So that the angular momentum vector of rigid body is


Mathematical model and attitude estimation using Kalman filter technique 25

⎡ hx ⎤ ⎡ I xx − I xy − I xz ⎤ ⎡ ωx ⎤ ⎡ I xx ωx − I xy ωy − I xz ωz ⎤
⎢ − I yz ⎥⎥ ⎢⎢ωy ⎥⎥ = ⎢⎢ I yy ωy − I yx ωx − I yz ωz ⎥⎥
hB = ⎢⎢ hy ⎥⎥ = ⎢ − I yx I yy (16)
⎢⎣ hz ⎥⎦ ⎢⎣ − I zx − I zy I zz ⎥⎦ ⎢⎣ ωz ⎥⎦ ⎢⎣ I zz ωz − I zx ωx − I zy ωy ⎥⎦

and its first derivatives is given by

⎡ hx ⎤ ⎡ I xx ω x − I xy ω y − I xz ω z ⎤
⎢ ⎥
hB = ⎢ hy ⎥ = ⎢⎢ I yy ω y − I yx ω x − I yz ω z ⎥⎥ (17)
⎢  ⎥ ⎢ I zz ω z − I zx ω x − I zy ω y ⎥
⎣ hz ⎦ ⎣ ⎦

Hence, by substituting the components of vectors in (16) and (17) into (14a), (14b) and
(14c), the dynamics equation of motion become
⎧⎪Tcx + Tdx = ⎣⎡ I xx ω x − I xy ω y − I xz ω z ⎦⎤ + hwx + ⎡⎣ wy ( I zz ωz − I xz ωx − I yz ωy ) ⎫⎪
⎨ ⎬ (18a)
⎩⎪−ωz ( yy y xy x
I ω − I ω − I yz ωz ) ⎤⎦ + ( ωy hwz − ωz hwy )
⎭⎪

⎧⎪Tcy + Tdy = ⎡⎣ I yy ω y − I xy ω x − I yz ω z ⎤⎦ + hwy + ⎡⎣ wz ( I xx ωx − I xy ωy − I xz ωz ) ⎫⎪


⎨ ⎬ (18b)
⎪⎩−ωx ( I zz ωz − I xz ωx − I yz ωy ) ⎤⎦ + ( ωz hwx − ωx hwz ) ⎪⎭

⎧⎪Tcz + Tdz = ⎡⎣ I zz ω z − I xz ω x − I yz ω y ⎤⎦ + hwz + ⎡⎣ wx ( I yy ωy − I xy ωx − I yz ωz ) ⎫⎪


⎨ ⎬ (18c)
⎪⎩−ωy ( I xx ωx − I xy ωy − I xz ωz ) ⎤⎦ + ( ωx hwy − ωy hwx ) ⎪⎭

2.4 Gravity gradient torque


Gravity gradient torque, Tgg is one of the environmental disturbance torques, Td and
cannot be neglected since it is inherent in low orbit satellite. It is continuously acting on
the spacecraft body and will affect satellite’s attitude motion. From Sidi (2000) and Fadly
et al. (2011), the gravity gradient torque is defined as

Tgg = 3ω 0 2 c3 × Ic3 (19)

where c3 is the third column of direction cosine matrix, [Aφθφ] provided in (3).
Revise that from (3)
⎡ cθcφ cθsφ − sθ ⎤
⎢ ⎥
⎡⎣ Aφθφ ⎤⎦ = ⎢ −cφ sφ + sφ sθcφ cφ cφ + sφ sθsφ sφ cθ ⎥
⎢⎣ sφ sφ + cφ sθcφ − sφ cφ + cφ sθsφ cφ cθ ⎥⎦

Then
⎡ I xx − I xy − I xz ⎤ ⎡ − sθ ⎤ ⎡ − I xx sθ − I xy sφ cθ − I xz cφ cθ ⎤
⎢ − I yz ⎥⎥ ⎢⎢ sφ cθ ⎥⎥ = ⎢⎢ I yx sθ + I yy sφ cθ − I yz cφ cθ ⎥⎥
Ic3 = ⎢ − I yx I yy (20)
⎢⎣ − I zx − I zy I zz ⎥⎦ ⎣⎢cφ cθ ⎦⎥ ⎢⎣ I zx sθ − I zy sφ cθ + I zz cφ cθ ⎥⎦

and
26 N.H. Hamzah and S. Yaacob

c3 × Ic3
⎡ i j k ⎤
⎢ −sθ sφ cθ cφ cθ ⎥
=⎢ ⎥
⎢⎣−I xx sθ − I xy sφ cθ − I xz cφ cθ I yx sθ + I yy sφ cθ − I yz cφ cθ I zx sθ − I zy sφ cθ + I zz cφ cθ ⎥⎦
⎡ sφ cθ ⎡⎣ I zx sθ − I zy sφ cθ + I zz cφ cθ ⎤⎦ − cφ cθ ⎡⎣ I yx sθ + I yy sφ cθ − I yz cφ cθ ⎤⎦ ⎤
⎢ ⎥
{ }
(21)
= ⎢− −sθ ⎣⎡ I zx sθ − I zy sφ cθ + I zz cφ cθ ⎦⎤ − cφ cθ ⎣⎡ I xx sθ − I xy sφ cθ − I xz cφ cθ ⎦⎤ ⎥
⎢ ⎥
⎢⎣ −sθ ⎡⎣ I yx sθ + I yy sφ cθ − I yz cφ cθ ⎤⎦ − sφ cθ ⎡⎣−I xx sθ − I xy sφ cθ − I xz cφ cθ ⎤⎦ ⎥⎦
⎡ I zz sφ cφ c2θ − I yy c2θcφ sφ + I xz cθsθsφ − I xy sθcθcφ + I yz c2φ c2θ − I yz s2φ c2θ ⎤
⎢ ⎥
= ⎢ I zz cφ cθsθ − I xx sθcθcφ − I xy sφ cφ c2θ − I yz sφ cθsθ − I xz c2φ c2θ + I xz s2θ ⎥
⎢⎣ I xx cθsθsφ − I yy sφ cθsθ + I yz cφ cθsθ + I xz cφ sφ c2θ − I xy s2θ + I xy s2φ c2θ ⎥⎦

Hence, substituting (21) into (19), gravity gradient torque, Tgg becomes
∴ Tgg =
⎡ I zz sφ cφ c 2 θ − I yy c 2 θcφ sφ + I xz cθsθsφ − I xy sθcθcφ + I yz c 2φ c 2 θ − I yz s 2φ c 2 θ ⎤
⎢ ⎥ (22)
3ω02 ⎢ I zz cφ cθsθ − I xx sθcθcφ − I xy sφ cφ c 2 θ − I yz sφ cθsθ − I xz c 2φ c 2 θ + I xz s 2 θ ⎥
⎢ I cθsθsφ − I sφ cθsθ + I cφ cθsθ + I cφ sφ c 2 θ − I s 2 θ + I s 2φ c 2 θ ⎥
⎣ xx yy yz xz xy xy ⎦

2.5 Satellite attitude dynamics


A complete formulation of the satellite attitude dynamics under influence of gravity
gradient torque is obtained by substituting the component of vectors in (8), (9), (22) into
(18a), (18b) and (18c) which leads to the highly non-linear equations.
However, in this paper, it is assumed that the angular motion is approximated by
infinitesimal angular motion (i.e., small Euler angles and its derivatives) and the design is
under principal axes (i.e., the products of inertia can be eliminated). With these
assumptions, (8), (9), (22), (18a), (18b) and (18c) becomes

⎡ω x ⎤ ⎡φ − ω 0ϕ ⎤
⎢ ⎥
∴ ω = ⎢⎢ω y ⎥⎥ = ⎢ θ − ω 0 ⎥ (23)
⎢ ⎥
⎣⎢ω z ⎦⎥ ⎣ϕ + ω 0φ ⎦

⎡ω x ⎤ ⎡φ − ω 0ϕ ⎤


⎢ ⎥
∴ ω = ⎢⎢ω y ⎥⎥ = ⎢ θ ⎥ (24)
⎢⎣ω z ⎥⎦ ⎢⎣ϕ + ω 0φ ⎥⎦

⎡ I zzφ − I yyφ ⎤ ⎡3ω02 ( I zz − I yy )φ ⎤


∴ Tgg = 3ω02 ⎢ I θ − I θ ⎥ = ⎢ 3ω2 ( I − I )θ ⎥ (25)
⎢ zz xx ⎥ ⎢ 0 zz xx ⎥
⎢⎣ 0 ⎥⎦ ⎢⎣ 0 ⎥⎦

Tcx + Tdx = I xx ω x + ωy ωz ( I zz − I yy ) + hwx + (ωy hwz − ωz hwy ) (26a)


Mathematical model and attitude estimation using Kalman filter technique 27

Tcy + Tdy = I yy ω y + ωx ωz ( I xx − I zz ) + hwy + (ωz hwx − ωx hwz ) (26b)

Tcz + Tdz = I zz ω z + ωx ωy ( I yy − I xx ) + hwz + (ωx hwy − ωy hwx ) (26c)

Substituting the components of vectors in (23), (24) and (25) into (26a), (26b) and (26c),
the linear attitude dynamics equations of motion are obtained (Sidi, 2000) as follows:

Tcx + Tdx = I xxφ + ω0 ( I yy − I zz − I xx ) φ + 4ω02 ( I yy − I zz ) φ + hwx − ω0 hwz (27a)

Tcy + Tdy − I yy θ + 3ω02 ( I xx − I zz )θ + hwy (27b)

Tcz + Tdz = I zz φ + ω0 ( − I yy + I xx + I zz ) φ + ω02 ( I yy − I xx ) φ + hwz + ω0 hwx (27c)

3 Kalman filter algorithm

In this study, Kalman filter is used to demonstrate the estimation of satellite’s attitude
despite of disturbance or noise in the satellite’s attitude system. The Kalman filter is an
on-line, recursive algorithm trying to estimate the true state of a system where only
(noisy) observations or measurements are available (Richard and Robert, 2011). The
Kalman filter not only works well in practice, but also theoretically attractive since it is
an optimal estimator in the sense that minimises the variance of the estimation error.
Kalman filter requires a linear model of the process, as well as a linear model of the
measurement for the prediction and correction procedure (Richard and Robert, 2011) in
the estimation technique.
Kalman filter algorithm is described as follows (Tewari, 2002). Given the linear
system dynamics and measurement

x = Ax + w (28)

y = Cx + v (29)

with x is the system state vector, y is the measured output vector, w is the
dynamics/process noise with zero mean and covariance Q, i.e., w~(0, Q), and v is the
measurement noise with zero mean and covariance R, i.e., v~(0, R).
The estimated state x̂ is obtained by solving estimated dynamics equation

xˆ = Axˆ + K ( y − Cxˆ ) (30)

with the Kalman gain, K is computed as

K = PC T R −1 (31)

where P is determined by the continuous-time matrix Riccati differential equation

P = − PC T R −1CP + AP + PAT + Q (32)


28 N.H. Hamzah and S. Yaacob

4 Simulation

In this section, a simulation to demonstrate the importance of the attitude estimation


under presence of the noise is carried out using MATLAB software.
The satellite considered in the simulation is a mini-satellite of Malaysia, RazakSAT.
The satellite’s characteristics of RazakSAT are given in Table 1, which was provided by
Astronautic Technology Sdn Bhd (ATSB), the Malaysian company that responsible for
RazakSAT’s mission.
Table 1 RazakSAT’s characteristics

Moment of inertia, Ixx 2.54 × 107 kg.mm2


Moment of inertia, Iyy 2.62 × 107 kg.mm2
Moment of inertia, Izz 2.10 × 107 kg.mm2
Orbital rate, ω0 0.001063 rad/s or 0.0609 deg/s

For demonstration purpose, it is assumed that the satellite is in free motion in which there
is no particular torque drives the satellite’s attitude, so that the terms Tcx, Tcy, Tcz, Tdx, Tdy,
Tdz, hwx , hwy , hwz , hwx , hwy , hwz are excluded from (27a), (27b), and (27c). Hence, the
model used in this simulation is reduced to

⎛ I yy − I zz − I xx ⎞ I − I zz ⎞
2 ⎛ yy
φ + ω0 ⎜ ⎟ φ + 4ω0 ⎜ ⎟φ = 0 (33a)
⎝ I xx ⎠ ⎝ I xx ⎠

⎛ I xx − I zz ⎞
θ + 3ω 02 ⎜ ⎟θ = 0 (33b)
⎝ I yy ⎠

⎛ − I + I xx + I zz ⎞  I − I xx ⎞
2 ⎛ yy
 + ω0 ⎜ yy
φ ⎟ φ + ω0 ⎜ ⎟φ = 0 (33c)
⎝ I zz ⎠ ⎝ I zz ⎠

In order to implement Kalman filter technique, the linear dynamics model of the
satellite’s attitude is transformed into state space model. By defining x1 = φ, x2 = φ,
x3 = θ , x4 = θ, x5 = ϕ , and x6 = ϕ , equations (33a), (33b), and (33c) are transformed
into state space model as follows:

⎡ x1 ⎤ ⎡ 0 1 0 0 0 0 ⎤ ⎡ x1 ⎤
⎢ x ⎥ ⎢ −4ω2 σ 0 0 0 0 −ω0 (σ x − 1) ⎥⎥ ⎢⎢ x2 ⎥⎥
⎢ 2⎥ ⎢ 0 x
⎢ x3 ⎥ ⎢ 0 0 0 1 0 0 ⎥ ⎢ x3 ⎥
⎢ ⎥=⎢ ⎥⎢ ⎥ (34)
⎢ x4 ⎥ ⎢ 0 0 −3ω02 σ y 0 0 0 ⎥ ⎢ x4 ⎥
⎢ x5 ⎥ ⎢ 0 0 0 0 0 1 ⎥ ⎢ x5 ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎢⎣ x6 ⎥⎦ ⎢⎣ 0 −ω02 σ z 0 0 −ω0 (1 − σ z ) 0 ⎥⎦ ⎢⎣ x6 ⎥⎦
Mathematical model and attitude estimation using Kalman filter technique 29

⎡ x1 ⎤
⎢x ⎥
⎡ y1 ⎤ ⎡1 0 0 0 0 0 ⎤ ⎢ ⎥
2

⎢ y ⎥ = ⎢ 0 0 1 0 0 0 ⎥ ⎢ x3 ⎥
⎢ 2⎥ ⎢ ⎥ ⎢x ⎥ (35)
⎢⎣ y3 ⎥⎦ ⎣⎢0 0 0 0 1 0 ⎦⎥ ⎢ 4 ⎥
⎢x ⎥
⎢ 5⎥
⎢⎣ x6 ⎥⎦

where for ease of notation, σx, σy and σz are defined as


( I yy − I zz ) (I − I ) ( I yy − I xx )
σx = , σ y = xx zz , σ z = (36)
I xx I yy I zz

As mentioned before, the objective of the simulation is to demonstrate the importance of


filtering technique to estimate the true attitude despite of noise presence. The simulation
results are shown through Figures 3 to 6. Figure 3 shows the time responses of true
satellite’s attitude with free of noise, which is simulated using equations (33a), (33b), and
(33c). From the figure, it is shown that the roll, pitch and yaw response oscillate within a
bounded amplitude of –50 to 50 for roll and pitch, while –200 to 200 for yaw response.

Figure 3 Time response of true satellite’s attitude (see online version for colours)

50
Roll angle (deg)

-50
0 500 1000 1500
Time (s)

50
Pitch angle (deg)

-50
0 500 1000 1500
Time (s)

200
Yaw angle (deg)

-200
0 500 1000 1500
Time (s)
30 N.H. Hamzah and S. Yaacob

Figure 4 Time response of satellite’s attitude under noise presence (see online version
for colours)

Roll angle (deg)


50

-50
0 500 1000 1500
Time (s)
100
Pitch angle (deg)

50

-50

-100
0 500 1000 1500
Time (s)
Yaw angle (deg)

200

-200

0 500 1000 1500


Time (s)

While, the time responses of satellite’s attitude as the noise is introduced in the satellite’s
attitude measurements are shown in Figure 4. It can be seen that the roll, pitch and yaw
measurements under noise presence are different from real attitude in Figure 3, with roll
and pitch oscillate with amplitude of more than 50 degree, while yaw amplitude
obviously oscillate more than 200 degree, which differ from the true attitude.
However, the true state of the system under the noisy measurement can be estimated
by using Kalman filter as shown in Figure 5.The differences between the true and the
estimated state are illustrated in Figure 6. It is the superposition between Figure 3 and
Figure 5. From Figure 6, it can be seen that the trendline of estimated attitude is quite
similar with the true one, where it is not easy to differentiate between the true and the
estimated state. Hence, root-mean-square error (RMSE) between the estimated and the
true state is calculated to measure the accuracy of the estimated state with


n
i =1
( X i , ESTIMATE − X i ,TRUE )2
RMSE =
n
Mathematical model and attitude estimation using Kalman filter technique 31

Figure 5 Time response of estimated satellite’s attitude (see online version for colours)

50

Roll angle (deg)


0

-50
0 500 1000 1500
Time (s)

50
Pitch angle (deg)

-50
0 500 1000 1500
Time (s)

200
Yaw angle (deg)

100

-100

-200
0 500 1000 1500
Time (s)

The RMSE is a frequently used measure of the differences between values predicted by
an estimator and the values actually observed. It is a representative of the size of an
average error. The RMSE between the estimated and the true state is given in Table 2.
Hence, from the table, the average error between the estimated and the true roll, pitch and
yaw are 1.022016 deg, 1.414442 deg and 2.157519 deg, respectively. This demonstrates
the importance of filtering technique to estimate the true state under noisy environment.

Table 2 Root-mean-square error

RMSE (roll) 1.022016 deg


RMSE (pitch) 1.414442 deg
RMSE (yaw) 2.157519 deg
32 N.H. Hamzah and S. Yaacob

Figure 6 Comparison between true and estimated satellite’s attitude (see online version
for colours)
50
True
Estimated
Roll angle (deg)

-50
0 500 1000 1500
Time (s)

50
True
Estimated
Pitch angle (deg)

-50
0 500 1000 1500
Time (s)

200
True
Estimated
Yaw angle (deg)

100

-100

-200
0 500 1000 1500
Time (s)

5 Conclusions

An overview of ADCS has been presented in this paper to give an overview of ADCS to
the readers. Then, the mathematical model of satellite attitude dynamics has been derived
rigorously for satellite’s attitude under influence of gravity gradient moment, which is
inherent in low earth orbit satellite. Afterwards, the demonstration of attitude estimation
despite of noise presence is accomplished via Kalman filter by using characteristics data
of RazakSAT, a mini satellite of Malaysia. From the simulation, the role of filtering
technique in estimating the actual satellite’s attitude under the noise presence is realised.
The accuracy of the estimated attitude is very important since it will be used for the
attitude control purpose, which determines the successful of a specific satellite mission.
Mathematical model and attitude estimation using Kalman filter technique 33

References
Abdelrahman, M. and Park, S-Y. (2011) ‘Simultaneous spacecraft attitude and orbit estimation
using magnetic field vector measurements’, Aerospace Science and Technology, Vol. 15,
pp.653–669.
Arulampalam, M.S., Maskell, S., Gordon, N. and Clapp, T. (2002) ‘A tutorial on particle filters for
online nonlinear/non-Gaussian Bayesian tracking’, IEEE Transactions on Signal Processing,
Vol. 50, No. 2, pp.174–185.
Bar-Itzhack, I.Y. and Oshman, Y. (1985) ‘Attitude determination from vector observations:
quaternion estimation’, IEEE Transactions on Aerospace and Electronic Systems, Vol. 21,
No. 1, pp.128–136.
Cheng, Y. and Crassidis, J.L. (2004) ‘Particle filtering for sequential spacecraft attitude estimation’,
AIAA Guidance, Navigation, and Control Conference, AIAA-04-5337.
Fadly, M., Othman, S., MdAzlin, M.S., Harijono, D. and Ain, A. (2011) ‘Deterministic and
recursive approach in attitude determination for InnoSAT’, TELKOMNIKA, Vol. 9, No. 3,
pp.583–594.
Lefferts, E.J., Markley, F.L. and Shuster, M.D. (1982) ‘Kalman filtering for spacecraft attitude
estimation’, Journal of Guidance, Control and Dynamics, Vol. 5, No. 5, pp.417–429.
Markley, F.L. (2003) ‘Attitude error representation for Kalman filtering’, Journal of Guidance,
Control and Dynamics, Vol. 26, No. 2, pp.311–317.
Oshman, Y. and Carmi, A. (2004) ‘Estimating attitude from vector observations using a genetic
algorithm-embedded quaternion particle filter’, AIAA Guidance, Navigation, and Control
Conference, AIAA-04-5340.
Psiaki, M.L. (2000) ‘Attitude determination filtering via extended quaternion estimation’, Journal
of Guidance, Control and Dynamics, Vol. 23, No. 2, pp.206–214.
Richard, C.D. and Robert, H.B. (2011) Modern Control System, Pearson Education Inc.,
New Jersey.
Shuster, M.D. (1990) ‘Kalman filtering of spacecraft attitude and the QUEST model’, Journal of
the Astronautical Sciences, Vol. 38, No. 3, pp.377–393.
Shuster, M.D. (1993) ‘A survey of attitude representations’, Journal of Astronautical Sciences,
Vol. 41, No. 4, pp.439–517.
Sidi, M.J. (2000) Spacecraft Dynamics and Control: A Practical Engineering Approach,
Cambridge University Press, Cambridge.
Tewari, A. (2002) Modern Control Design with MATLAB and Simulink, John Wiley and Sons Ltd.,
Kanpur.
Wertz, J.R. (1978) Spacecraft Attitude Determination and Control, Kluwer Academic Publishers,
Holland.