Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
Abstract :
This documentation bases on the previous NAV-001 technical note, which provided some basic algorithm
for the LuPPT subsystem and some simple MATLAB tool to simulate the attitude performance of
BIRDY, but all kinds of methods only can be used in step by step motion. In other words, we cannot get
whole results in a period of time. Another problem met in previous document was how to cancel the
un-wanted angular velocity when the COM was not coincide with the COG. In order to solve these two
main issues, here provides a continuous nonlinear model of our CubeSat by using SIMULINK and
presented some simulation results by using two different control laws.
The first results about the simulation model give the following conclusion:
1. PD-controller is more efficient and robust way for the detumbling mode.
2. Backstepping is more efficient than PD-controller in pointing mode.
3. Detumbling mode commonly spend around 3.6 hours to make the BIRDY stable.
Author(s) :
Lin Hao-Chih (Jim), AOCS internship, DAA of NCKU, Taiwan
Applicability
STM PFM
x
FM1
X
CL 2
Date : dd-mmm-yyyy
<Version-Nb>
CL 3
Date : dd-mmm-yyyy
<Version-Nb>
CL 4
Date : dd-mmm-yyyy
<Version-Nb>
Checked By
Function
Jordan VANNISTEN
Marco AGNAN
System Engineer
System Engineer intern
Date : dd-mmm-yyyy
BIRDY
Technical solution for AOCS
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
Contents
I.
- Introduction ....................................................................................................................... 2
II.1.
II.2.
II.3.
III.
III.1.
III.2.
III.3.
III.4.
III.5.
IV.
IV.1.
IV.2.
IV.3.
V.
BIRDY
Technical solution for AOCS
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
I. - Introduction
I.1. - Context & Purpose
This document takes part of the trade study of AOCS to study the performances of different AOCS
configuration to be used in the BIRDY EME mission. There are some common assumptions in this report:
1. Ignore any environment disturbance effect in the simulation result.
2. Only the configuration of four reaction thrusters will be analyzed.
3. Neglect the time delay for different thruster triggered.
4. All of equations and results just represent the attitude of BIRDY, without the position of orbit.
" Nonlinear attitude control of a double CubeSat ", Gaute Brthen, 2011
" Satellite Attitude Control by Quaternion-Based Backstepping ", Raymond Kristiansen* and
Per J. Nicklasson**, 2005
" Satellite Dynamics and Control in a Quaternion Formulation ", Mogens Blanke, 2004
" Attitude Control of a micro satellite, Three-axis attitude control of the ESEO using reaction
thrusters", Frank Robert Blindheim, 2004
" Backstepping-Based Inverse Optimal Attitude Control of Quadrotor", An Honglei1, Li Jie1,
Wang Jian1,*, Wang Jianwen1 and Ma Hongxu1, 2013
BIRDY
Technical solution for AOCS
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
and b as below:
[
is given by
BIRDY
Ref. : NAV-007
Version : 2.0
CL=1
Where
Date: 16-January-2015
is the transformation matrix which transform a vector in the b frame to a vector in the
frame.
The main property of the rotation matrix is that it is an element in SO(3), which is defined as:
( )
Also, the R is the orthogonal matrix, so there is a special property like
(
Where
can be expressed as
(
represented in frame
, and S () is
Euler angles:
To represent the satellites attitude, the straight forward way is to use the Euler angles, which is consisted
of roll angle , pitch angle
and yaw angle . Where roll is rotation about the x- axis, pitch is
rotation about the y - axis and yaw is rotation about the z - axis.
Quaternions:
When using the Euler angle to represent the attitude of the CubeSat, one get singularities for some angles.
For this reason, in this technical note, the attitude of BIRDY is replaced with the other way called
quaternions. The quaternions is a four-parameter singularity free attitude representation, where the
quaternion q is defined as a complex number with one real part and three imaginary parts given in the
vector :
[ ]
which corresponds to a rotation
[ ]
BIRDY
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
( )]
Notations:
Here, the notations used in this report will be specified and clarified. To transform/rotate a vector in frame
b to frame a:
To represent an objects angular velocity with respect to a specific coordinate frame, the following notation
is used:
( )
which means the angular velocity of the body frame with respect to the inertial (ECI) frame, and
represented in the body frame.
( )]
( )
and the standard form of Cubesat, with satellite inertia matrix
Where
and
, angular velocity
is the total momentum of momentum wheels(MW), all seen in the body frame,
is the total
Where
(
5
BIRDY
Technical solution for AOCS
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
Input terminal:
The Control input is the combination of total actuator torque( ) and
( )
Where the
means the control torque from four reaction thruster.
Before doing the further analysis of , the configuration of four thrusters should be depicted firstly.
6
BIRDY
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
According to this previous drawings, here is the positions of thrusters (from the geometric center):
Table 3-1. The ith vector ( ) from COM to the position of the ith thruster
Positions of
thrusters (mm)
Thruster 1 (
Thruster 2 (
Thruster 3 (
Thruster 4 (
30,5
-30,5
-30,5
30,5
-41,9
-41,9
41,9
41,9
-152,75
-152,75
-152,75
-152,75
BIRDY
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
Thrusters dynamics:
The control torque from four thrusters can be expressed as
(
A variable Fi is the magnitude of thrust from the ith thruster. The actuator matrix Ba contains elements
from thrusters torques. According to the layout of thrusters, the Ba matrix can be expressed as
[
]
( )
( )
where variable ri is vector from COM to the position of the ith thruster. Ti is the unit vector, which
represent the direction of the ith thruster. Here the position of thrust axis (values provided by L-PPT
consortium which are given in meter for a unit vector of thrust):
Table 3-2. The ith vector ( ) for the direction of ith thruster
Thrust axis
Thruster 1 (
Thruster 2 (
Thruster 3 (
Thruster 4 (
-0,259
-0,259
0,259
0,259
0,966
0,966
0,966
0,966
Insert values, which were given from Table 3-1 and 3-2, into the eq(3.9), then bring the result into eq(3.8).
The Ba matrix can be counted out like
[
In order to calculate the vector of actuator torques u, the inverse of the Ba matrix is needed. However, the
matrix of Ba is rectangular(
), the invers of Ba matrix does not exist. To solve this problem, the
Least-norm solution (also called Pseudo-inverse) will be applied. Hence, the equation (3.7) can be
computed as
(
)
(
)
There is an additional advantage when using the Least-norm method, it will find out the minimum
energy solution by itself.
Limitation of Thruster
Reaction thrusters are by nature on-off devices and are normally only capable of providing fixed torque. In
this document, bang-bang control with deadzone is used to control the thrusters. It is based on a saturation
function, so that the thrusters are fired when the commanded torque exceeds a defined upper limit.
Increasing the deadzone and the corresponding upper limit will decrease the fuel consumption, but increase
the attitude error, and vice versa.
8
BIRDY
Technical solution for AOCS
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
Where the subscript-d means the component of desired vector, and the subscript-n means the component of
current state vector. The
and
basically are identity matrix. If needed, the PD tuned gain could be
no the same in
and
matrix.
SIMULINK layout of PD controller:
The figure shown as below includes PD controller block, Least-norm block, which is in charge of
calculating the force generated by thruster, and BIRDY model block, which integrate the dynamics and
kinematics model of BIRDY.
BIRDY
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
Backstepping controller:
The PD controller suits the linear system, however, our simulation model (or even the real model) is a
nonlinear system. So, in this document, based on Lyapunov stability theory, the Backstepping method was
selected to apply in BIRDY. Then, comparing performance between PD controller(linear) and
Backstepping controller(nonlinear).
An integrator backstepping control law is designed in this section for moving the states from an arbitrary
[
] .
The whole process of derivation of backstepping is too long to type in this document. Only the result of
derivation will be shown as follow. The detail process of derivation can be found easily in external
reference [2]
Final result of derivation:
The actuator torque
where
can be expresses as
( )
(
)
(
)
is zero in our simulation since the BIRDY position of orbit is not included in this report, K2 is
the feedback gain matrix for the z2-system, z2 can be acquired from the following equation
(
)
(
)
In equation (3.13),
[ ]
( )
|
]
( )
( )
]
( )
BIRDY
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
[ ()
(
)
where can be found from following z1-system
()(
Then,
() can be expressed as
()
where
( )
[
]
( )]
and
( ) [
[
( )]]
( )] ( )
Substituting equations from (3.13) to (3.23) into (3.12), the vector of actuator torque
can be calculated.
has to be passes through Least norm block, then sent to the BIRDY model.
11
BIRDY
Technical solution for AOCS
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
] (
( )
where
is the initial angular velocity vector and
is the initial Euler angles vector.
In addition, the target (desired condition) can be expressed as
[
] (
( )
)
[
] ( )
( )
PD controller:
The PD controller from equation (3.11) is implemented with initial values from (4.1) and (4.2).
The controller gains used in the detumbling mode are given as following:
See figures 4-1, 4-2 and 4-3 for the Euler angle, angular velocity and propellant consumption, respectively.
BIRDY
Technical solution for AOCS
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
Backstepping controller:
The backstepping controller from equation (3.12) is implemented with initial values from (4.1) and (4.2).
The controller gains used in the detumbling mode are given as following:
[
In fact, there is not a theoretical way to find out the proper gain matrix (K1 and K2). In practice, the same
trial and error method as PD controller used is a common way to get suitable gain matrix. However, it is
very easy to choice matrixes make the whole system unstable, especially in detumbling mode.
See figures 4-4, 4-5 and 4-6 for the Euler angle, angular velocity and power outputs, respectively.
13
BIRDY
Technical solution for AOCS
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
BIRDY
Technical solution for AOCS
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
15
BIRDY
Technical solution for AOCS
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
Backstepping controller:
The backstepping controller from equation (3.12) is implemented with initial values from (4.5) and (4.6).
The controller gains used in the pointing mode are given as following:
[
See figures 4-10, 4-11 and 4-12 for the Euler angle, angular velocity and power outputs, respectively.
16
BIRDY
Technical solution for AOCS
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
BIRDY
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
-57.3;
0]
degrees
Result:
Duration = 40,000 s ~ 11.1 hrs.
Propellant ~ 7.62 grams.
Relative figures:
18
BIRDY
Technical solution for AOCS
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
Target:
Angular velocity = [0;0;0] in rad/s
Euler angles = [0;0;0] in rad
Accuracy:
Requirement of accuracy for Angular velocity and Euler angles are 0.0001 (deg /s) and 0.01 (degrees)
respectively.
Result:
Duration = 650 sec (~ 10.8 mins).
Propellant ~ 0.05404 grams.
19
BIRDY
Technical solution for AOCS
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
-2,
0,
0,
0,
-0.052,
0,
0;
0;
-0.3]
K2 = [ 0.15,
0,
0,
0,
0.2,
0,
0;
0;
0.15];
Relative figures:
Figure 4-16, Angular velocity (in body frame, rad/s) vs. time
BIRDY
Technical solution for AOCS
Ref. : NAV-007
Version : 2.0
CL=1
Date: 16-January-2015
21