You are on page 1of 14

AIAA SciTech Forum 10.2514/6.

2018-1391
8–12 January 2018, Kissimmee, Florida
2018 AIAA Modeling and Simulation Technologies Conference

CubeSat Attitude Control Simulator Design

Dylan Thomas∗ , Anthony Wolosik† , and Jonathan Black‡


Virginia Polytechnic Institute and State University, Blacksburg, Virginia, 24061

Among the various challenges involved in the development of CubeSats lies the attitude
determination and control of the satellite. The importance of a properly functioning attitude
determination and control system (ADCS) on any satellite is vital to the satisfaction of its mission
objectives. Due to this importance, three-axis attitude control simulators are commonly used
to test and validate spacecraft attitude control systems before flight. However, these systems
are generally too large to successfully test the attitude control systems on-board CubeSat-
Downloaded by UNIVERSITY OF ADELAIDE -INTERNET on January 16, 2018 | http://arc.aiaa.org | DOI: 10.2514/6.2018-1391

class satellites. Due to their low cost and rapid development time, CubeSats have become an
increasingly popular platform used in the study of space science and engineering research. As
an increasing number of universities and industries take part in this new approach to small-
satellite development, the demand to properly test, verify, and validate their attitude control
systems will continue to increase. An approach to CubeSat attitude determination and control
simulation is in development at the Virginia Tech Space Simulations Laboratory. This platform
will provide an inexpensive method of testing any current, and future, CubeSat ADCS prior to
flight. Using commercial off the shelf (COTS) components, the Virginia Tech CubeSat Attitude
Control Simulator (CSACS) is a low cost, lightweight air-bearing testing platform that will
provide a simulated low Earth orbit (LEO) environment to validate CubeSat ADCS.

Nomenclature
~v arbitrary vector notation
{î1, î2, î3 } the three unit base vectors of an inertial reference frame
{b̂1, b̂2, b̂3 } the three unit base vectors of a body-fixed reference frame
Fi the reference frame with base vectors {î1, î2, î3 }
Fb the reference frame with base vectors {b̂1, b̂2, b̂3 }
vi a column matrix whose 3 elements are the components of the vector ~v expressed in Fi
vb a column matrix whose 3 elements are the components of the vector ~v expressed in Fb
Rbi rotation matrix that transforms vectors from Fi to Fb
θ a column matrix those 3 elements are the Euler angles ψ, θ, φ
ω
~ an angular velocity vector
ω
~ bi angular velocity of Fb with respect to Fi
ωbbi angular velocity of Fb with respect to Fi expressed in Fb
m total mass of the CSACS system
r position vector from the CSACS center of rotation (CR) to center of mass (CM)
v velocity of CM of the CSACS
H0 the CSACS angular momentum about CR
M0 combined applied external torques on the CSACS
Mtor torque applied by momentum exchange
Mg gravitational torque
Maer o aerodynamic torque

I. Introduction
The CubeSat project started in 1999 as a collaborative effort between Professor Jordi Puig-Suari of California
Polytechnic State University (Cal Poly) and Professor Bob Twiggs of Stanford University’s Space Systems Development
∗ PhD Candidate, Kevin T. Crofton Dept of Aerospace and Ocean Engineering, Blacksburg, VA 24061, AIAA Student Member.
† MS Candidate, Kevin T. Crofton Dept of Aerospace and Ocean Engineering, Blacksburg, VA 24061, AIAA Student Member.
‡ Professor, Kevin T. Crofton Dept of Aerospace and Ocean Engineering, Blacksburg, VA 24061, AIAA Associate Fellow.

Copyright © 2018 by the American Institute of Aeronautics and Astronautics, Inc.


All rights reserved.
Lab. The purpose of the CubeSat project was to introduce an academic-friendly method of developing and launching
satellites via standardization. CubeSats are small-satellites designed to be cheaper and have more rapid development
times when compared to conventional satellites. The low cost and high risk acceptance of these systems allow
scientists and researchers to conduct breakthrough scientific experimentation. This project has become an international
collaborative effort with over 100 universities participating [1].
The CubeSat structural platform is based in (U), in which 1U corresponds to a 10x10x10 cm cube. Cal Poly
developed a launcher called the Poly-Picosat Orbital Deployer (P-POD), which is a standardized deployment system
that ensures all CubeSat developers conform to common physical requirements [1]. Due to their uniform sizes and
masses, CubeSats are inexpensively ejected from this type of system as secondary payloads on missions where the
primary payload is a satellite or space capsule. NASA’s launch services program has a set of specifications for CubeSat
launches which also constrain the external size and shape configurations for consistent launches, along with preventing
any interference with primary missions [2]. Currently, over 200 CubeSats have been launched, with projections of over
Downloaded by UNIVERSITY OF ADELAIDE -INTERNET on January 16, 2018 | http://arc.aiaa.org | DOI: 10.2514/6.2018-1391

650 more in the next 3 years [3].


Different U configurations exist, such as the 3U, which is a modular combination of 3 single units stacked together,
ultimately increasing accommodation for additional instrumentation and power. Since the most common CubeSats to
date have been 1U and 3U, the P-POD accounts for the majority of CubeSat deployments. However, recent growth in
this field of research has led to the development of 6U and 12U configurations, along with more robust deployment
systems, increasing the scientific and engineering capabilities that CubeSats can provide.
The increasing number of micro-electronic components being developed has contributed to the ability to have
more capable scientific payloads in orbit. Incorporating these components with the low cost development of CubeSats
now allows scientists and engineers to develop and fly hardware without previous flight heritage, leading to the rapid
expansion of CubeSats into a number of fields, including investigation of complex exo-atmospheric space science
phenomena, multi-satellite cooperation, and rendezvous and proximity operations [4–7].
While CubeSats provide a low cost alternative to perform in situ, or local, real-time measurements in orbit, it is
still very important to validate the system and all of its components on the ground to minimize any risk of failure in
orbit. One of the more complicated, and vital, systems to test is the attitude determination and control, which stabilizes
the vehicle and orients it in desired directions during the mission despite external disturbance torques acting on it [8].
Once the satellite is injected into its orbit, it will be in a micro-gravity environment, and without the application of
force, it will be in a free tumble. Also, being in LEO, external disturbances due to aerodynamic drag, J2 perturbations
caused by the oblateness of the Earth, solar radiation pressure, and various other forces will attribute to the satellite’s
tumble. For a satellite to accomplish its scientific mission, it must be pointed in its desired direction. Achieving the
correct pointing requirements relies on the specifications of the devices that both measure and control attitude. Attitude
is measured by using sensors that can give measurements of a known quantity in the form of a three-dimensional
vector. By combining information from at least two sensors and comparing the measured values with the expected
values at a nominally rotated position, attitude is determined. Examples of sensors used for attitude measurement or
determination in small satellites, are inertial measurement units (IMUs), magnetometers, sun sensors, Earth sensors,
and star trackers. Controlling attitude requires actuators that impart torque in precise increments about specific axes.
Traditionally, attitude control is accomplished with propulsion, control moment gyros (CMGs), and reaction wheel sets.
However, due to commercial availability and sizing constraints of CubeSats, magnetic torque rods (magnetorquers)
accompanied with reaction wheels are typically used [9]. Reaction wheels increase or decrease rotation rates by using
the conservation of angular momentum. Accompanying the reaction wheels are magnetorquers, which apply current
through a coil that induces a magnetic flux and then causes a torque in relation to the Earth’s magnetic field. Due to the
drastic differences in gravity and atmospheric content between the space and laboratory setting, careful considerations
must be taken into account to accurately test a CubeSat ADCS.
One traditional method to verify attitude control systems in a laboratory setting is through the use of an air bearing.
Air bearings provide a nearly frictionless environment by implementing a thin film of pressurized air between two
surfaces. This low friction environment is achieved by compressing air through multiple nozzles located in a cusp which
pushes against a spherical ball that rests inside the cusp. When pressurized air is sent through the cusp against the
ball, microns of compressed air separate the two surfaces, and free rotation occurs within the air bearing’s physical
constraints [10]. By mounting a platform on a hemispherical surface, it is possible to achieve an accurate simulation of
the nearly frictionless spaceflight conditions that a CubeSat will encounter in flight. Several rotational air bearings
systems that aided in the development of the CSACS are expanded upon, which allow for the simulation of three axis
satellite attitude dynamics [11–15].
Due to the relatively low mass of CubeSats compared to traditional satellites, most operational ADCS simulation

2
Fig. 1 Specialty Components SRA250-R45 / 620-39128 spherical air bearing. It is important to note that this
air bearing is not the specific system used for the CSACS; rather, this similar system serves as a visual aid to
further understand how the overall system behaves [16]. The cusp and ball components of the air bearing are
Downloaded by UNIVERSITY OF ADELAIDE -INTERNET on January 16, 2018 | http://arc.aiaa.org | DOI: 10.2514/6.2018-1391

labeled accordingly, where approximately 10 microns of pressurized air separate the two surfaces and allow for
nearly frictionless rotation when the air bearing is operational.

systems are incapable of supporting CubeSats since the total mass is either negligible or within error margins in relation
to the overall mass of the simulator. Therefore, an increased need to test the state-of-the-art CubeSat ADCS has
started to surface in the small-satellite community. As this community continues to grow, more successful missions
are being conducted which lead to investigators seeking larger payload capabilities in order to fly more advanced
instrumentation. To accommodate these increasing capabilities, new 6U CubeSats and 12U prototype designs are in
development. Simulators now must be capable of accommodating this rapidly evolving growth trend, as well as handling
the increasingly advanced ADCS of larger frames.
Platform balancing is one of the most important issues that must be considered before testing. Taking all of the prior
into effect, the overall objective of this project is to use a black-box approach to develop a modular and affordable attitude
determination and control simulation platform that is capable of testing all current and future CubeSat attitude control
systems. Specifically, through accurate balancing techniques, the platform’s CM will be relocated to the geometric
center of the spherical air-bearing, significantly reducing gravitational torques, and generating a virtually torque-free
environment. A practical balancing procedure is developed for stabilizing the platform in the local horizontal plane,
with a reduced final residual torque.

II. CSACS System Overview

A. Air Bearing
A Space Electronics, Inc. hemispherical gas air bearing, similar to Fig. 1, provides the nearly frictionless
environment for the CSACS system to operate. The flat portion of the hemisphere provides a surface for the CSACS
platform and allows for a limited three degrees of freedom (DOF) during testing. The platform top can support a 300 lb
payload, and allows for a full 360◦ rotation in yaw, with ±10◦ tilt from the horizontal in pitch and roll. From an internal
friction study by Space Electronics, Inc., there exists 0.01 mN·m of gravitational torque if the center of gravity of the
test article is aligned with the CR of the bearing within one ten millionth of an inch.

B. Platform
All CSACS hardware is mounted on a custom carbon fiber composite platform that is subsequently mounted to the
flat surface of the hemispherical component of the air bearing, as shown in Fig. 2. A 0.5 m diameter disk is used for a
6U platform.

C. Computing
A Beaglebone Black - Rev C is the command and control unit on-board the simulator. The Beaglebone features a
Texas Instruments AM3358 1 GHz ARM® Cortex-A8 Processor, 512 MB of DDR3L DRAM, 4 GB on-board flash
memory, a Linux operating system, and a USB host. The board runs on 5 VDC [17]. These specifications provide for
future capability expansion and modularity, as well as meeting future software and control requirement for years to
come.

3
Downloaded by UNIVERSITY OF ADELAIDE -INTERNET on January 16, 2018 | http://arc.aiaa.org | DOI: 10.2514/6.2018-1391

Fig. 2 The assembled Virginia Tech CubeSat Attitude Control Simulator platform. The carbon fiber platform
holds all of the CSACS control hardware, and rests on top of a similar air bearing configuration, as shown in
Fig. 1. This figure also contains a 6U CubeSat chassis, which would house all of the flight hardware of the
system. Not shown in the figure are the battery packs mounted underneath the platform, along with the power
distribution board.

4
D. Inertial Measurement Unit
The VectorNav VN-100 Rugged IMU (Fig. 2) is used to measure the angular position of the platform. Using the
latest solid-state micro-electromechanical systems (MEMS) sensor technology, the VN-100 combines a set of 3-axis
accelerometers, 3-axis gyroscopes, 3-axis magnetometers, a barometric pressure sensor, and a 32-bit processor [18].
The VN-100 is capable of providing the angular position of the CSACS in pitch, roll, and yaw to the hundred-millionth
degree, which is required knowledge to eliminate parasitic gravitational torque. Currently, an updated Python library
version is incorporated in the CSACS software for communication with the IMU and simple read/write software
capabilities.

E. Stepper Motors and Controllers


The CSACS platform contains two sets of Haydon-Kerk stepper motors and controllers (Fig. 2) which successfully
align the Space Electronics, Inc. air bearing within one ten millionth of an inch to eliminate gravitational torques. The
Downloaded by UNIVERSITY OF ADELAIDE -INTERNET on January 16, 2018 | http://arc.aiaa.org | DOI: 10.2514/6.2018-1391

Haydon-Kerk PCM-4806E micro-controller has a built-in encoder and can control the motors to 1/64 step, providing a
total resolution of 7.85×10−7 in. The Haydon-Kerk 21F4U2.5-ENG linear stepper motor has a step size of 6×10−5 in.
over a 4 in. screw. The motor assemblies have a custom designed 3D printed mount, as the screw must be fixed to allow
for precise movement of the motor. The capabilities of these motors allow for the precision center of gravity alignment
with the CR of the air bearing.

F. Electrical Power System


A power distribution board successfully handles the current loads of the platform, while taking in a significantly
higher voltage from two lithium-ion batteries and subsequently drops the voltages for each individual component in the
CSACS system. Updates to the power distribution board include four outputs and allowance for expansion of additional
components. The circuit takes in 14.8 V from two 7.4 V 4000 mA·h lithium-ion battery packs wired in series. The line
voltage goes straight to a terminal and to the first LM338T linear voltage regulator. The circuit uses this regulator and
resistor to drop the voltage to 12 V for each motor controller. The 12 V also goes to another linear voltage regulator that
uses an identical circuit to drop the voltage down to 5 V for the Beaglebone.

G. Software
The platform is controlled using a real-time script developed in the Python 3.4 programming language. The software
provides the user with the ability to visualize the movement of the platform in real time, providing dynamic feedback
between the IMU and stepper motors, and data recording for supplemental analysis. Some software modifications were
implemented from previous CSACS software versions after the addition of a new VectorNav Library and new control
computer. At its core, the program uses the matplotlib module in Python to plot the pitch, roll, and yaw values from the
VectorNav every half second. This allows the user to visually determine the time necessary for complete balance and to
monitor the platform in real time. The software displays the actual values of the VectorNav so that manual balance can
be achieved. Additionally, the software can communicate with the motor controllers through ASCII commands for
automated table balancing.

III. Mathematical Modeling

A. Euler Angles and Angular Velocity


Rotation matrices are direction cosine matrices that allow any vector to be expressed in any reference frame. To
properly transform the CSACS system dynamics between inertial and body-fixed frames, a 3-2-1 rotation sequence is
used. Consider the rotation from Fi to Fb , using three Euler angles, ψ, θ, and φ, which correspond to yaw, pitch, and
roll, respectively [19].
The first rotation is about the î3 axis, through angle ψ. The resulting frame is {î0 } or Fi0 , as shown in Fig. 3(a). The
rotation matrix from Fi to Fi0 is

 cos ψ sin ψ 0


 
i0 i
R = R3 (ψ) = − sin ψ cos ψ 0 ⇒ vi0 = R3 (ψ)vi
 (1)
 0 0 1
 

5
The second rotation is about the î20 axis, through angle θ. The resulting frame is {î00 } or Fi00 , as shown in Fig. 3(b).
The rotation matrix from Fi0 to Fi00 is

cos θ 0 − sin θ 
 
i00 i0
R = R2 (θ) =  0 1 0  ⇒ vi00 = R2 (θ)vi0 = R2 (θ)R3 (ψ)vi
 (2)
 sin θ 0 cos θ 
 

00
Here, we can see that Ri i = R2 (θ)R3 (ψ) is the rotation matrix transforming vectors from Fi to Fi00 .

The third rotation is about the î100 axis, through angle φ. The resulting frame is {b̂} or Fb , as shown in Fig. 3(c). The
rotation matrix from Fi00 to Fb is
Downloaded by UNIVERSITY OF ADELAIDE -INTERNET on January 16, 2018 | http://arc.aiaa.org | DOI: 10.2514/6.2018-1391

1 0 0 
 
bi00
R = R1 (φ) = 0 cos φ sin φ  ⇒ vb = R1 (φ)vi00 = R1 (φ)R2 (θ)R3 (ψ)vi
 (3)
0 − sin φ cos φ
 

Here, we can see that Rbi = R1 (φ)R2 (θ)R3 (ψ) is the rotation matrix transforming vectors from Fi to Fb .

We have now developed the 3-2-1 rotation from an inertial coordinate system, Fi , to a body-fixed system, Fb . The
expanded 3-2-1 rotation matrix is presented in Eq. (4)

cos θ cos ψ cos θ sin ψ − sin θ 


 

Rbi = sin φ sin θ cos ψ − cos φ sin ψ sin φ sin θ sin ψ + cos φ cos ψ sin φ cos θ 
 (4)
cos φ sin θ cos ψ + sin φ sin ψ cos φ sin θ sin ψ − sin φ cos ψ cos φ cos θ 
 

Fig. 3 3-2-1 Euler Angle Rotation. (a) First rotation of angle ψ around the î3 axis (b) Second rotation of angle
θ around the î20 axis (c) Third rotation of angle φ around the î100 axis [19].

Now, we will derive the angular velocities from the Euler angles. The Euler rate equations become part of the
equations of motion for CSACS. The rate equations represent the time rate of change of the Euler angles in terms of the

6
Euler angles and the body-fixed angular rates. The derivation for the 3-2-1 rotation is similar to the development of the
rotation matrices above. We will develop the angular velocity one frame-to-frame at a time, i.e., from Fi to Fi0 to Fi00 to
Fb [19].
Again, the first rotation is about the î3 ≡ î30 axis, through angle ψ. The resulting frame is {î0 } or Fi0 . The angular
velocity of Fi0 with respect to Fi is
0
ω
~ i i = ψ̇ î3 = ψ̇ î30 (5)
We can express Eq. (5) in any frame, but Fi and Fi0 are trivial in this case
0 f gT
ωii i = 0 0 ψ̇
0 f gT (6)
ωii0 i = 0 0 ψ̇
Downloaded by UNIVERSITY OF ADELAIDE -INTERNET on January 16, 2018 | http://arc.aiaa.org | DOI: 10.2514/6.2018-1391

0
keeping in mind the notation that ωii i is the angular velocity of Fi0 with respect to Fi expressed in Fi .

The second rotation is about the î20 ≡ î200 axis, through angle θ. The resulting frame is {î00 } or Fi00 . The angular
velocity of Fi00 with respect to Fi0 is
00 0
ω
~ i i = θ̇ î20 = θ̇ î200 (7)
We can express Eq. (7) in any frame, but Fi0 and Fi00 are trivial in this case
00 0 f gT
ωii0 i = 0 θ̇ 0
00 0 f gT (8)
ωii00 i = 0 θ̇ 0
00 0
keeping in mind the notation that ωii0 i is the angular velocity of Fi00 with respect to Fi0 expressed in Fi0 .

The third rotation is about the î100 ≡ b̂1 axis, through angle φ. The resulting frame is {b̂} or Fb . The angular velocity
of Fb with respect to Fi00 is
00
ω
~ bi = φ̇î100 = φ̇b̂1 (9)
We can express Eq. (9) in any frame, but Fi00 and Fb are trivial in this case
00 f gT
ωibi00 = φ̇ 0 0
00 f gT (10)
ωbbi = φ̇ 0 0
00
keeping in mind the notation that ωbbi is the angular velocity of Fb with respect to Fi00 expressed in Fb .

Now, we can solve for ωbbi by simply adding the angular velocities. However, because we have expressed our angular
velocities in different reference frames; to add them together, we need to express all of them in the same frame. We
accomplish this by using our previously developed rotation matrices
00 00 0 0
ωbbi = ωbbi + ωib i + ωib i
00 00 00 0 0 0
= ωbbi + Rbi ωii00 i + Rbi ωii0 i
00 00 00 0 00 00 0 0
= ωbbi + Rbi ωii00 i + Rbi Ri i ωii0 i

arriving at the angular velocity of Fb with respect to Fi expressed in Fb


00 00 0 0
ωbbi = ωbbi + R1 (φ)ωii00 i + R1 (φ)R2 (θ)ωii0 i (11)

Carrying out the multiplications and additions, Eq. (11) can be expanded to

ω x   − sin θ 0 1 ψ̇ 


     
ωy  =  cos θ sin φ cos φ 0
  θ̇  (12)
ωz  cos θ cos φ − sin φ 0  φ̇ 
     

7
Writing Eq. (12) in the form ωbbi = S(θ) θ̇, we can then form a solution for the Euler angle rates by inverting S(θ), i.e.,
θ̇ = S −1 (θ)ωbbi . In expanded form,
sin φ cos φ
ψ̇  0 ω x 
     
cos θ cos θ 
 θ̇  = 0 cos φ − sin φ  ωy  (13)
sin φ sin θ cos φ sin θ 
 φ̇  1 ωz 
    
cos θ cos θ 

For this specific Euler angle set (3-2-1), there exists a kinematic singularity when θ = 90 degrees. However, since
CSACS is mechanically constrained to ±10◦ tilt from the horizontal in pitch and roll, the kinematic singularity is not a
concern. f gT
Note that in the remaining sections of this report, we will denote ωbbi = ω x ωy ωz in shorthand notation ωb ,
in order to reduce notation clutter.
Downloaded by UNIVERSITY OF ADELAIDE -INTERNET on January 16, 2018 | http://arc.aiaa.org | DOI: 10.2514/6.2018-1391

B. Derivation of Equations of Motion

Fig. 4 CSACS system model reference frames.

The CSACS can be modeled as a rigid body with the CM placed at a distance of r from the CR, which is the ball
bearing. The model uses an intertial coordinate frame Fi that is fixed to the earth, and a body-centered coordinate frame
Fb which is fixed to CSACS. The angular momentum about the CR is

H0 = m(r × v) (14)
where m is the total system mass, r is the vector from the CR to the CM, and v is the velocity of the CM [20]. The time
rate of change of the angular momentum is equal to the applied external torques
dH0
= M0 (15)
dt
where M0 is the applied external torques. When the CM is not located at the CR, the time rate of change of angular
momentum is written
dH0
= (r × mr̈) + Ḣc + [ωb × (r × mṙ)] + (ωb × Hc ) (16)
dt
where Hc is the angular momentum about the CM, and ωb is the angular velocity about the body-fixed axis [20]. The
assumptions required to use Eq. (16) are that the translational acceleration of the CR is zero and that the CSACS is a
rigid body [20]. The right-hand side of Eq. (15) can be split into separate terms

8
M0 = Mtor + Mg + Maero (17)
where Mtor is the torque applied by momentum exchangers, Mg is the gravitational torque from the CM offset, and
Maer o is the aerodynamic torque. These terms are defined as
f gT
Mtor = Mx My Mz (18)

0 − cos φ cos θ sin φ cos θ


 
 
Mg = m · g  cos φ cos θ 0 sin θ  r (19)
 − sin φ cos θ − sin θ 0
 

Downloaded by UNIVERSITY OF ADELAIDE -INTERNET on January 16, 2018 | http://arc.aiaa.org | DOI: 10.2514/6.2018-1391

and
f gT
Maer o = − bx ω2x by ωy2 bz ωz2 (20)
where bx , by , and bz are damping coefficients. It is beneficial to combine the torques into a single term, M

 Mx   bx ω x   −mgr y cos φ cos θ + mgr z sin φ cos θ


   2   

M =  My  −  by ωy2  +  mgr x cos φ cos θ + mgr z sin θ  (21)
 Mz   bz ωz −mgr x sin φ cos θ − mgr y sin θ
   2   
  
Next, define the vector Hc used in Eq. (16) as

 Ixx ω x + Ixy ωy + Ixz ωz


 

Hc =  Iyx ω x + Iyy ωy + Iyz ωz  (22)
 Izx ω x + Izy ωy + Izz ωz
 

Substituting Eq. (17) and Eq. (16) into Eq. (15) yields

Aω̇ + B = M (23)
where A and B are defined in Eq. (24) and Eq. (25)

 mr y + mr z + Ixx −mr x r y + Ixy −mr x r z + Ixz


 2 2 

A =  −mr x r y + Ixy mr x + mr z + Iyy
2 2 −mr y r z + Iyz  (24)
 −mr x r z + Ixz −mr y r z + Iyz mr y2 + mr x2 + Izz
 

f gT
B = Bx By Bz (25)
The components of B are long, so they are explicitly defined in appendix A. Rearranging Eq. (23) to the final equations
of motion

ω̇ = A−1 (M − B) (26)
This equation can be integrated and solved simultaneously with the Euler rate equations in Eq. (12). The equations
of motion can be greatly simplified by assuming that ω, r, products of inertia, and Maero are small compared to other
terms and that Mtor is zero [20]. These assumptions give way to a simplified form of the equations of motion
mg
I x x (−r y cos φ cos θ + r z sin φ cos θ)
 
mg
 
ω̇ =  Iy y (r x cos φ cos θ + r z sin θ)  (27)
mg
Iz z (−r x sin φ cos θ − r y sin θ)
 
 

9
C. Center of Mass Location for Dynamic Balancing
A common procedure used to balance air-bearing satellite simulators is known as manual balancing. Although
this is an iterative and time-consuming process at times, it is simple in its conception and execution. An operator
simply adjusts weights in various locations on the simulator in order to properly position the CM over the CR. As an
improvement over the iterative process of manual balancing, an automatic balancing procedure is derived below. This
technique automatically calculates the CM location and adjusts it to a location close to the CR.
The first step in the automatic balancing process is locating the CM of the CSACS. The simplified equations of
motion (see Eq. (27)) are integrated individually over a short time period to produce three equations for each time step.
Assuming that θ and φ remain relatively constant over a small time step, the integration procedure simplifies. After
integration, the three equations contain only three unknowns, which are the CM offset distance vector components of r.
These equations can be written as
−mg ∆t
Downloaded by UNIVERSITY OF ADELAIDE -INTERNET on January 16, 2018 | http://arc.aiaa.org | DOI: 10.2514/6.2018-1391

ω x t2 − ω x t1 = [((cos φ cos θ)t2 + (cos φ cos θ)t1 )r y − ((sin φ cos θ)t2 + (sin φ cos θ)t1 )r z ] (28)
2Ixx
mg ∆t
ω yt2 − ω yt1 = [((cos φ cos θ)t2 + (cos φ cos θ)t1 )r x − ((sin θ)t2 + (sin θ)t1 )r z ] (29)
2Iyy
−mg ∆t
ω z t2 − ω z t1 = [((sin φ cos θ)t2 + (sin φ cos θ)t1 )r x − ((sin θ)t2 + (sin θ)t1 )r y ] (30)
2Izz
Placing these equations in matrix form gives

 ∆ω x   0 Φ12 Φ13  r x 


    
 ∆ωy  = Φ21 0 Φ23  r y  (31)
 ∆ωz  Φ31 Φ32 0  r z 
    

where the six values for Φ are assumed constant for a given time step. These values are found by manipulating the
expressions found in equations (28), (29), and (30) and are provided in appendix B.
Condensing Eq. (31) even further
∆Ω = Φr (32)
These equations can be solved for r using the method of least squares by finding an estimate for a solution using all
of the recorded data. Collecting these equations into matrix form, and expanding the matrices for many time steps gives

 ( ∆ω x )t   0 (Φ12 )t0 (Φ13 )t0 


0

 ( ∆ωy )t0   (Φ21 )t0


   
0 (Φ23 )t0 
 ( ∆ωz )t   (Φ31 )t (Φ32 )t0 0 

r x 
 
0 0

∆ω
   
 ( x ) t1 =  0 (Φ12 )t1 (Φ13 )t1  r y  (33)
 ( ∆ωy )t   (Φ21 )t 0

(Φ23 )t1 
r z 
 
1 1

∆ω
   
 ( )
z t1  (Φ
 31 t1) (Φ32 )t1 0 
 ..   .. 
 .   . 

which can again be written in condensed form as

∆Ω L = Φ L r (34)

and the least squares approximation for r is given by


f g −1
r = ΦTL Φ L ΦTL ∆Ω L (35)

IV. Results
With Eqs. (26) and (13), an algorithm was developed in Matlab to simulate the nonlinear dynamics of the CSACS.
There was limited time to develop a thorough mass model of the tabletop and individual components, so generic values

10
from a previous study [21] were used to validate results. The system mass and inertia tensor are as given

 2.273 −0.013 −0.095 


 
m = 43.51 kg I =  −0.013 2.213 −0.157  kg · m2
 −0.095 −0.157 2.898 
 

Also, the CSACS was given a nonzero initial state


f gT f gT
θ0 = ψ θ φ = 1.5000 −0.0322 −0.0956 rad
f gT f gT
ω̇0 = ω̇ x ω̇y ω̇z = 0.0662 −0.0698 −0.0013 rad/sec
Downloaded by UNIVERSITY OF ADELAIDE -INTERNET on January 16, 2018 | http://arc.aiaa.org | DOI: 10.2514/6.2018-1391

f gT
rC M = 0.0950 0.2693 −2.6712 mm
where rC M is the ‘true’, measured position of the CM relative to the CR at the beginning of the simulation.
The simulation was run for 60 seconds to produce the state time-histories in Fig. 5. The simulation produces secular
yaw about the table’s z-axis, while the roll and pitch oscillate with a period of around 9 seconds. This is a significant
amount of unwanted motion, mainly due to the offset CM. This demonstrates why it is crucial to have a robust method
for balancing the CSACS.
After the simulation finishes producing the state time-histories, it runs a linear least-squares estimator on the position
of the table’s CM with respect to its CR. The estimated position vector for this simulation is
f gT
r̂C M = 0.09460 0.2707 −2.680 mm
The estimator produced a prediction of r̂C M very close to the initial, true value of rC M used in the simulation. More
specifically, the error between the two is
f gT
δrC M = 1.0 ∗ 10−5 −0.0402 0.1387 −0.8826 mm
which is under 0.001 mm magnitude. This should allow for an accurate auto-balancing algorithm to be developed in
the future.

V. Conclusion
The CSACS system developed in the Virginia Tech Space Systems Simulation Laboratory provides an inexpensive
and easy to use CubeSat ADCS simulation environment for the intended use of students, educators, and professionals in
both academic and industry settings. The platform is designed using a black-box approach. A VectorNav VN-100 IMU
determines the roll, pitch, and yaw of the interchangeable carbon-fiber test platforms, and linear controlled actuators
balance the table within one ten-millionth of an inch of the CR of a hemispherical gas air bearing. A power regulation
board, designed for system modularity, generates power across the platform’s hardware. Embedded software controls
the capabilities that provide the user with real-time platform balancing. Continued research and development of the
CSACS system will eventually lead to a stand-alone platform that enables the rapid prototyping of attitude control
systems for public use.
Utilizing the nonlinear dynamics of the CSACS, a platform balancing procedure was developed to reduce the
gravitational torques influencing the motion of the spacecraft simulator. A simulation determines the platform CM by
analyzing the integrated equations of motion of the CSACS. The simulation uses the method of least squares to estimate
the position from the CR to the CM. The CM of the simulator is then moved near the CR by means of movable masses
that are adjusted to the correct location. It is shown that it is possible to carry out static balancing, maintaining the forces
actuating only over a plane, reaching equilibrium on the platform. This development shows that an automatic static
balancing system allows important savings in space, mass, and complexity compared with manual balancing approaches
[22].
Future work entails proper determination of the mass properties of the CSACS systems [23]. Once adequate mass
properties are acquired, these values can be fully integrated with the platform balancing procedure previously developed,
and validated through experimental testing. Incorporation of a self-balancing algorithm embedded in the control
computer will be examined given the CSACS motor actuation limits. Integration of a reaction wheel stack consisting of
four wheels will be implemented on the CSACS platform in order to provide dynamic simulation capability.

11
Downloaded by UNIVERSITY OF ADELAIDE -INTERNET on January 16, 2018 | http://arc.aiaa.org | DOI: 10.2514/6.2018-1391

(a) Yaw state time-history (b) X-angular velocity state time-history

(c) Pitch state time-history (d) Y-angular velocity state time-history

(e) Roll state time-history (f) Z-angular velocity state time-history

Fig. 5 Simulation of CSACS nonlinear dynamics for 60 second interval using the full, nonlinear equations of
motion.

12
VI. Acknowledgements
The authors would like to thank Nick Tibbetts, Jordan Schafer, Keith Tiemann, and all the other current and former
Virginia Tech students who have contributed to this project.

Appendix

A. Expanded B-Matrix Terms


Terms for the matrix B in Eq.(25)

Bx = (−2mr y r z + Izy )ωy2 + (2mr y r z − Iyz )ωz2 + (−mr x r z + Ixz )ω x ωy


Downloaded by UNIVERSITY OF ADELAIDE -INTERNET on January 16, 2018 | http://arc.aiaa.org | DOI: 10.2514/6.2018-1391

+(mr x r y − Ixy )ω x ωz + (mr y2 − mr z2 − Iyy + Izz )ωy ωz

By = (2mr x r z − Izx )ω2x + (−2mr x r z + Ixz )ωz2 + (mr y r z − Izy )ω x ωy


+(−mr x r y + Ixy )ωy ωz + (−mr x2 − mr z2 + Ixx − Izz )ω x ωz

Bz = (−2mr x r y − Ixy )ω2x + (2mr x r y − Ixy )ωy2 + (−mr y r z + Ixy )ω x ωz


+(−mr y r z + Iyz )ωy ωz + (mr x2 − mr y2 − Ixx + Iyy )ω x ωy

B. Expanded Φ-Matrix Terms


Values of Φ in Eq. (31)

−mg ∆t
Φ12 = ((cos φ cos θ)t2 + (cos φ cos θ)t1 )
2Ixx
mg ∆t
Φ13 = ((sin φ cos θ)t2 + (sin φ cos θ)t1 )
2Ixx
mg ∆t
Φ21 = ((cos φ cos θ)t2 + (cos φ cos θ)t1 )
2Iyy
mg ∆t
Φ23 = ((sin θ)t2 + (sin θ)t1 )
2Iyy
−mg ∆t
Φ31 = ((sin φ cos θ)t2 + (sin φ cos θ)t1 )
2Izz
−mg ∆t
Φ32 = ((sin θ)t2 + (sin θ)t1 )
2Izz

References
[1] Mehrparbar, A., “CubeSat Design Specification,” , February 2014.

[2] Mitskevich, A., “Launch Services Program: Program Level Dispenser and CubeSat Requirements Document,” Tech. rep., John
F. Kennedy Space Center, Florida, January 2014.

[3] Buchen, E., and DePasquale, D., “Nano/Microsatellite Market Assessment,” Tech. rep., 2014.

[4] Thomas, D., Mott, K., Tetreault, K., Nastasi, K., Elliott, I., Scheible, R., Ohriner, E., and Black, J., “Real-Time On-board
Estimation and Optimal Control of Autonomous Micro-Satellite Proximity Operations,” 55th AIAA Aerospace Sciences Meeting,
AIAA, doi:10.2514/6.2017-0398, 2017.

13
[5] Wolosik, A., and Black, J., “Development of a Low-Flying CubeSat Mission for F-Region Characterization,” 55th AIAA
Aerospace Sciences Meeting, AIAA, doi:10.2514/6.2017-0161, 2017.

[6] Angarita, J., and Black, J., “Trajectory Planning Optimization using Genetic Algorithms,” AIAA Space 2016 Forum, AIAA,
doi:10.2514/6.2016-5357, 2016.

[7] Nastasi, K., Thomas, D., Tetreault, K., Elliott, I., and Black, J., “Real-Time Optimal Control and Tracking of Autonomous
Micro-Satellite Proximity Operations,” AIAA Space 2016 Forum, AIAA, doi:10.2514/6.2016-5617, 2016.

[8] Larson, W. J., and Wertz, J. R., Space Mission Analysis and Design, 3rd ed., Microcosm, Hawthorne, CA, 1999.

[9] Farhat, A., Ivase, J., and Snapp, A., “Attitude Determination and Control System for CubeSat,” Tech. rep., 2013.

[10] Schwartz, J., Peck, M., and Hall, C., “Historical Review of Air-Bearing Spacecraft Simulators,” Vol. 26, 2003.
Downloaded by UNIVERSITY OF ADELAIDE -INTERNET on January 16, 2018 | http://arc.aiaa.org | DOI: 10.2514/6.2018-1391

[11] Kim, B., Velenis, E., Kriengsiri, P., and Tsiotras, P., “Designing a low-cost spacecraft simulator,” 2003.

[12] Fullmer, R., Peterson, G., Holmans, W., Smith, J., Nottingham, J., Anderson, S., Olsen, T., and Redd, F., “The Development of
a Small Satellite Attitude Control Simulator,” 1992.

[13] Brewer, M., “CubeSat Attitude Determination and Helmholtz Cage Design,” , March 2012.

[14] Dannemeyer, E., “Design and Analysis of an Attitude Determination and Control Subsystem (ADCS) for AFIT’s 6U Standard
Bus,” , March 2014.

[15] Tibbs, M., “Design and Test of an Attitude Determination and Control System for a 6U CubeSat Using AFIT’s CubeSat Testbed,”
, March 2015.

[16] “Spherical Air Bearings SRA250-R45 / 620-39128,” www.specialtycomponents.com/Products/sra250-r45/, ????

[17] “BeagleBone Black,” http://elinux.org/Beagleboard:BeagleBoneBlack, ????

[18] “VN-100 User Manual,” www.vectornav.com/docs/default-source/documentation/vn-100-documentation/UM001.pdf, 2014.

[19] Vallado, D., Fundamentals of Astrodynamics and Applications, 4th ed., Space Technology Library, Microcosm Press, Hawthorne,
California, 2013.

[20] Greenwood, D., Principles of Dynamics, 2nd ed., Prentice-Hall, Inc, Englewood Cliffs, NJ, 1988.

[21] Young, J., “Development of an Automatic Balancing System for a Small Satellite Attitude Control Simulator,” , 1988.

[22] Prado, J., and Bisiacchi, G., “Dynamic Balancing for a Satellite Attitude Control Simulator,” Vol. 4, 2000.

[23] Olsen, T., “Design of an adaptive balancing system for the small satellite attitude control simulator (SSACS),” , 1995.

14

You might also like