Download 1 - Purdue College of Engineering

Document related concepts

Satellite temperature measurements wikipedia , lookup

Mohammed bin Rashid Space Centre wikipedia , lookup

Transcript
AAE 450 (Div.2) Senior Design Report
Spring 2007
Project PurdueSat
Faculty Advisor: Prof. David L. Filmer
Team members:
Kautilya Vemulapalli
Mark James
Paul Moonjelly
Pinak Trivedi
Table of Contents
1. Introduction………………………………………………………. 2
2. Attitude Determination System………………………………….. 6
3. Attitude Control System………………………………………….. 16
4. Power System……………………………………………………... 47
5. Flight Computing System………………………………………… 50
6. Structures & Circuit Board Design……………………………… 62
7. Conclusion…………………………………………………………. 72
1
1. Introduction
Author: Paul Moonjelly, Project Engineer
1.1 Project Description
Project PurdueSat is an interdisciplinary project to design, build, and
launch Purdue University’s first satellite. The PurdueSat is classified as a nano-satellite
and is a double cube of approximately 10 cm x 10 cm x 20 cm sides with a 2 kg gross
mass. The satellite will conform to the CubeSat standard defined by California
Polytechnic State University and Stanford University (The CubeSat Standard was
designed to provide developers with necessary guidelines like outer dimensions,
recommended materials, restrictions etc. to interface with the P-POD – a standard
deployer which was developed to standardize the interface and bring down launch costs
to a minimum) . The satellite is primarily regarded as a platform for nano-satellite
technology development. The satellite will demonstrate a prototype attitude
determination and control scheme. Upon completion (projected for mid 2008), the
spacecraft will be launched aboard a Russian Dnepr or similar launch vehicle, in
conjunction with the Cal Poly/Stanford CubeSat program.
The senior design project intends to build on the design framework that has
evolved as a result of the interdisciplinary team effort that has been underway for 3 years.
The project should revamp the design and accelerate the PurdueSat development several
fold. The goal was to finish the design and development of the following subsystems –
the Attitude Determination System, the Attitude Control System, the Flight Computing
System, the Power System, and the Structural Design – by the end of the semester.
1.2 PurdueSat Mission
The primary emphasis of the PurdueSat Mission is to develop engineering
technology which can be useful for Purdue’s future CubeSat missions and the nanosatellite community in general (The emphasis was shifted from the science mission to its
2
engineering mission early in the semester). The engineering mission can be formally
stated as follows:
1. To perform “Attitude Determination” with 1 degree accuracy
2. To perform “Autonomous Attitude Control” with 5 degree accuracy
Thus the engineering objectives include testing a novel attitude determination system
suitable for nano-satellites and implementing an autonomous electromagnetic attitude
control system. Additionally, the Purdue CubeSat will test the suitability of a DSP
processor to nano-satellite applications.
The scientific mission of PurdueSat is to measure the radiation environment on
the satellite’s nearly polar, circular orbit. Radiation data will be collected, stored, and
transmitted to the ground station at Purdue.
The PurdueSat Senior Design Project also has an educational mission in that it
gives Purdue students a unique opportunity to gain hands-on experience with spaceflight
hardware. While the senior aircraft design course builds and tests a remotely-piloted
airplane, the senior spacecraft design course is a conceptual design – completed on paper
alone. PurdueSat Project enables Purdue’s aspiring astronautics students to obtain
valuable multi-disciplinary, hands-on experience. Also, the use of a DSP processor
compatible with MATLAB and LabVIEW will demonstrate the technology that can be
used by astronautics students to implement their MATLAB/LabVIEW models directly on
embedded platforms which saves a lot of development time.
1.3 Overview of the Satellite System
The PurdueSat system will be composed of the following subsystems: Attitude
Determination System, Attitude Control System, Science Payload, Communication
System, Power Subsystem, and Flight Computing System.
Attitude Determination System: This subsystem is responsible for the determination of
the orientation of the satellite in three dimensional space. It uses a magnetometer and a
sun sensor for obtaining the information about the satellite orientation, which are then
processed through computationally intensive estimation algorithms to extract meaningful
attitude data.
3
Attitude Control System: This subsystem deals with the autonomous control of the
orientation of the satellite in order achieve a nominal orientation which is nadir pointing antennas facing the earth so that the communication link with the ground stations is not
disrupted. The electromagnetic torque rods along the 3 axes of the satellite fire in a
periodic manner depending on the outputs of the control law algorithm in order to
achieve this.
Science Payload: This subsystem is mainly comprised of a radiation detector which
samples the radiation levels in the low earth orbit of the satellite and stores the data
whenever any activity is detected.
Communications System: This system is concerned with the transmission of data and
commands to and from the ground station. It also interfaces with all the other subsystems
and informs them to take appropriate action depending on the commands received.
Power System: This subsystem provides regulated power to all the subsystems onboard
and thus is the source of energy for the entire satellite. The solar power is harnessed using
solar cells and stored by charging the batteries onboard. It regulates the power and shuts
down less critical systems under low power conditions (For example, when in eclipse
where solar power is unavailable).
Flight Computing System: This is the brain of the entire satellite and is composed of 2
different computers. A Blackfin 16-bit Digital Signal Processor running at 650 Mhz
handles all the mathematically intensive algorithms and a 32-bit ARM7 microprocessor
running at 60 Mhz acts as the satellite host computer performing all the house keeping
operations. These computers communicate with each other using a high speed serial
connection.
The Satellite Structure which holds everything in place is regarded as a separate
entity which forms the skeleton of the satellite.
4
1.4 Areas of Focus
The key areas of focus for the Senior Design Project were the following:
1. Attitude Determination System
2. Attitude Control System
3. Power System
4. Flight Computing System
5. Satellite Structure
The work done in each of these areas and the current status are documented in the
following chapters.
5
2. Attitude Determination System
2.1 Attitude Determination
Author: Paul Moonjelly
2.1.1 Purpose
The Attitude Determination System is responsible for providing the 3-axis attitude
knowledge to the Attitude Control System which needs to know the current orientation in
order to perform any control operations. The Attitude Determination System handles the
sensory inputs from different sensors and performs computations on them in order to
estimate the current attitude – the orientation of satellite in three dimensional space.
2.1.2 Design Methodology
2.1.2.1 Attitude Determination
Attitude determination typically utilizes a combination of sensors and
mathematical models to arrive at a good attitude estimate. At least two vectors are
required to determine the attitude. It takes three independent parameters to determine the
attitude, and a unit vector is only two independent parameters because of the magnitude
constraint. Hence three scalars are required to determine the attitude. Thus more than one
but less than two vector measurements are needed. The attitude determination problem is
thus either underdetermined or overdetermined and all algorithms really only estimate the
attitude.
Two non collinear vectors are needed to determine the 3-axis attitude. These
vectors have to be known both in the inertial frame and the satellite body frame. These
vector components are used in one of the attitude estimation algorithms to determine the
attitude in the form of a quaternion or Euler angles or a rotation matrix. The vectors in the
body frame are obtained by using sensor measurements onboard the satellite. The same
vectors in the inertial frames are calculated using mathematical models.
6
2.1.2.2 Choice of Sensors & Algorithm
The PurdueSat Attitude Determination System uses a sun vector and a magnetic
field vector as the two vectors of choice. A sun sensor measures the components of the
sun vector in the body frame and a mathematical model of Sun’s apparent motion relative
to the satellite would be used to determine the components of the same vector in the
inertial frame. A 3-axis magnetometer measures the components of the magnetic field
vector in the body frame and a mathematical model of the Earth’s magnetic field relative
to the satellite is used to determine the components in the inertial frame. An attitude
determination algorithm is then used to compute the rotation matrix or the quaternion
between the inertial and the body frames.
The Triad algorithm is the simplest deterministic attitude determination algorithm.
This algorithm is based on discarding one extra piece of information in the
overdetermined problem as explained earlier. The algorithm does not just throw away
one of the components of the measured vector. It is based on constructing two triads of
orthonormal unit vectors using the vector information available. Let the vector
measurements in the satellite body frame be b1 and b2, and let the inertial vectors be r1
and r2. It is assumed that the first vector measurement b1 is more accurate. Two triads are
constructed as in the following equations:
t1b = b1
t1r = r1
t2b = (b1 x b2) / |b1 x b2|
t2r = (r1 x r2) / |r1 x r2|
t3b = (t1b x t2b)
t3r = (t1r x t2r)
Rotation Matrix, Rbr = [t1b t2b t3b][ t1r t2r t3r]T
The Triad algorithm was chosen for implementation during this semester because of two
reasons. The first one is that the Triad algorithm is the most straight forward one and it is
not demanding in terms of the computational load. The second reason is that there is an
order of magnitude difference in the expected accuracies of the sun sensor (<0.5 deg
accuracy) and magnetometer (5 deg accuracy) attitude measurements according to
literature. Hence the use of mathematically intensive statistical attitude estimation (which
7
weigh both sensor measurements optimally) algorithms will not result in significant
accuracy improvements. However, this choice will have to be reviewed later once both
sun sensor and magnetometer have been fully developed and tested for their accuracies.
2.1.3 Current Status
It was decided to develop the sun sensor in-house and a considerable amount of
design and development effort has been done. The details of the sun sensor development
are explained in the next section. Several attitude determination algorithms were
surveyed and the Triad algorithm was chosen for implementation. Triad algorithm has
been implemented in MATLAB and the results have been verified. The choice of sensor
combination has been finalized as a sun sensor and a magnetometer. The Triad algorithm
has verified that this combination can determine the attitude rotation matrix whenever the
satellite is not in eclipse or magnetic field vector and sun vector are non collinear.
2.1.4 Future Work
It was found in literature that the QUEST algorithm gives accurate attitude
estimations if the two sensor accuracies become comparable. It was also not extremely
demanding in terms of computing power even though it was much more than the Triad
algorithm. So this needs to be looked into once the sensors have been tested for their
accuracies.
An extended Kalman filter will also be a good idea for future implementation to
get better attitude estimates and it can provide attitude information even with out both
sensors being completely functional. A Kalman filter will be able to give reasonable
estimates of attitude even when the satellite is in eclipse and the sun sensor is useless.
Another possibility is making use of the information from the rate gyros which are used
for providing rate feed back to the Attitude Control System. Even though the gyro error
grows with time they can provide short term attitude information by integration of the
attitude rates coupled with information from other sensors available.
The Printed Circuit Boards (PCB s) for the magnetometer and the sun sensor have
to be fabricated.
8
2.1.5 References
[1] http://www.aoe.vt.edu/~cdhall/courses/aoe4140/attde.pdf
[2] http://www.cubesat.aau.dk/dokumenter/ADC-report.pdf
[3] http://www.cubesat.aau.dk/dokumenter/acs_report.pdf
9
2.2 Sun Sensor
Author: Mark James
Purpose
The sun sensor system as a whole is of vital importance to the attitude determination and
controls system. This sensor is 1 of 3 sensory inputs onboard the satellite and is
responsible for generation of the sun vector, the vector pointing from the satellite to the
center of the sun. When combined with a second vector from the magnetometer, this
gives information about the satellite’s orientation in the orbit frame. This is necessary for
ensuring a stable spacecraft orientation which is a main goal of the Purdue cubesat
mission. This is of importance to the mission because of the communications
requirement. The satellite must have a stable nadir orientation with its dipole antenna
pointing toward the Earth at all times when outside of solar eclipse.
Specifically, the sun sensor box is an important component of the sensor system. The sun
sensor system design uses a position sensitive detector (PSD) that requires a single light
beam to illuminate the detector surface in order to create the desired vector. This means
that all other light must be blocked from the detector surface. The box is also needed for
mounting purposes and structural integrity of the sun sensor system.
Design Methodology
2.2.1.1 Enclosure
The sun sensor box is made from a dark opaque plastic in order to provide strength,
create a non-conducting surface to eliminate shorts, block external light, and minimize
reflections inside of the box. The box has a pin hole on the top with a ledge for the PSD
to rest on. This creates a height, z, between the PSD surface and the pinhole. Figure 2.21 displays a crude image of the box with labeled dimensions.
10
Figure 2.2-1: Sun Sensor Box with PSD in place
The height, z, has a critical value in order to achieve a maximum desired angle θ while
maintaining a high angle resolution. The height, z, was determined to be 2.5 mm using
Equation 2.2-1 for a desired angle θ.
tan  
L2
z
Equation 2.2-1
L is the fixed PSD surface width of 9 mm and  is chosen to be at least 60 degrees. The
angle resolution is next checked. The computing system responsible for sensor devices is
a 10-bit system. This means there are 1024 data points available after analog-to-digital
conversion across the PSD surface in each direction (x and y). Using Equation 2.2-2 to
determine the smallest change in x position across the detector surface and Equation 2.23 to calculate the smallest change in angle, δθ is determined to be 0.2 degrees. This is a
very high resolution for  detection. Noise considerations are neglected at this point,
but are examined in the sun sensor electrical board section.
x 
L
 0.00879mm
1024
tan  
x
z
 0.2
Equation 2.2-2
Equation 2.2-3
Figure 2.2-2 displays the fabricated enclosure including the back plug.
11
Figure 2.2-2: Sun Sensor Box and back plug
The box is designed with two side mounting flanges. The top part of the box will slide
into a fitted hole which is cut into the satellite side walls. The box will hold itself in place
with the side flanges and fit flush with the outer satellite panel. The plug, shown on the
left side of Figure 0-2, is designed to hold the PSD in place while the small slot allows an
exit for any connecting wires. Together, the box and plug complete the sun sensor
enclosure.
2.2.1.2 Pinhole
The enclosure works as a pinhole camera when a small hole is introduced to the top of
the box. Since the sun is effectively an infinite distance away from the pinhole with
respect to the distance between the PSD surface and the hole, the light beam hitting the
PSD will be in focus regardless of what height z is chosen. The pinhole size is therefore
carefully chosen to produce enough light on the PSD surface while maintaining accurate
distinction between small δθ values. It is noted that the width of the light beam projected
onto the PSD surface is decreased with increasing angle of incident light. This minimum
width is determined to be no less than half the pinhole diameter for a maximum angle of
60 degrees. Using Equation 2.2-4, the pinhole is chosen to be 0.2 mm in diameter so that
the decreased width is no less than 0.1 mm. However, this value may be too small in
order to produce a strong PSD output current signal since it has not yet been tested in
direct sunlight. Figure 2.2-3 illustrates the pinhole dimensions and decreased width with
increased angle with respect to the sun.
12
Figure 2.2-3: Sun Sensor Box showing reduced visible width
w  D sin 90   
Equation 2.2-4
Finally, the top surface of the box in beveled out around the pinhole to create a 130
degree cone. This allows light to pass into the hole at an angle up to 65 degrees in any
direction. Since the box is designed to handle a maximum angle of about 60 degrees in
any direction (120 degree cone), the 130 degree beveled cone provides a large enough
margin.
2.2.1.3 Sun Vector
The vector pointing to the sun is determined from the x and y coordinates of the light
beam position on the PSD. This is made possible by the Hamamatsu detector shown in
Figure 2.2-4. The detector is a photodiode with uniform resistance in two directions.
When a beam of light reflects onto the surface, the x and y resistances are decoupled and
altered based upon which quadrant the light beam passes onto. Unique currents relating to
these x and y positions now pass through the detector outputs and into an analog
computer. One function of this analog computer, referred to as the sun sensor circuit
board, computes the necessary calculations defined by the PSD manufacturer to get the
exact x and y position of the light beam on the detector surface. This relation is shown in
Equation 2.2-5.
13
Figure 2.2-4: Hamamatsu Position Sensitive Detector
2 x I 2  I 3   I 1  I 4 

L
I1  I 2  I 3  I 4
2 y I 2  I 4   I 1  I 3 

L
I1  I 2  I 3  I 4
Equation 2.2-5
In this equation, x and y relate to the coordinates and L is defined as 10 for this specific
position sensitive detector. The currents I1 through I 4 relate to the four different currents
output by the detector.
Next, the sun vector is easily determined from the x and y coordinates along with the
known height, z, from the PSD surface to the pinhole. The sun vector is defined below in
Equation 2.2-6. The ŝi unit vector system is fixed in the sun sensor frame with origin
fixed at the center of the pinhole. The sun vector points toward the center of the sun and z
is defined as 2.5 mm. This S frame is defined in Figure 2.2-5.

VS   xsˆ1  ysˆ2  zsˆ3
Equation 2.2-6
14
Figure 2.2-5:
ŝi unit vector system definition
Current Status
The sun sensor box is designed and fabricated, ready for use.
Future Work
The box must be tested in direct sunlight to determine whether the pinhole size is large
enough. From laboratory tests with the current sensor circuit board, the pinhole appears
to be too small for a wide angle to be achieved. Also, with the current design placement
on the cubesat of the second sun sensor, the mounting flanges need to be mounted on the
perpendicular axis to their current placement. This will allow the sensor box to fit in the
small gap where the antennas rest un-deployed. These are minor changes and should be
an easy fix in future semesters.
Resources
Hamamatsu data sheet:
http://sales.hamamatsu.com/assets/pdf/parts_S/S5990-01_S5991-01.pdf
15
3. Attitude Control System
3.1 Attitude Dynamics & Control Law
Author: Pinak Trivedi
3.1.1 Purpose
Introduction
The design requirement for the spacecraft dictates it will rotate around the earth from 600
to 800 km near circular orbit with a nadir pointing orientation spinning about the spin
axis. The spacecraft will travel in a polar orbit with a period time of about 90-100
minutes [1]. The spacecraft is assumed to be a rigid body with a circular orbit.
Coordinate System
The reference will be the orbital coordinates. The x axis is pointing towards the earth.
The y axis will be tangent to the orbit and the z axis will be orthogonal to the two. The
inertial coordinates refer to system with center of Earth as the origin. The x axis is
perpendicular to tangent of the equator, y axis is tangent to the equator, z axis completes
the right hand rule. This frame is denoted by i. The orbital coordinates will be fixed to
the spacecraft. See figure 1 for the free body diagram of the system. This frame is
denoted by b. The body will be same as the orbital frame for our purposes after controls
is applied. This frame is denoted by a.
16
Figure 1: FBD of Body Coordinates
3.1.2 Design Methodology
To determine the dynamics model we will need to determine what type of orbit the
spacecraft will have, what disturbances it will encounter, whether they are feasible to
model or not.
3.1.2.1 Orbit
The spacecraft will have a near circular orbit. This is further assumed to be circular since
the eccentricity is estimated to be zero. This combined with the short life cycle of the
satellite will make for a fair assumption.
3.1.2.2 Disturbances
As the spacecraft orbit the earth it will undergo many disturbance forces that may detract
it from its course or bring about instability in it. Therefore it is important to model the
disturbance torques that are typically encountered by a spacecraft at a low earth orbit.
Gravity Gradient Torque
17
The gravity gradient torque is the result Earth’s varying gravity field, which varies as the
inverse square of the distance from earth. The moments of inertia influence the behavior
of this torque, which makes it crucial to have favorable inertias, and the altitude of the
spacecraft. The gravity gradient refers to the fact that there exists a greater force on the
spacecraft closer to the Earth. This will be modeled in the equations of motion.
Solar Radiation
This disturbance is the hardest to model, caused by the solar pressure from the radiation
of the sun and its reflections off of Earth and Moon. This will be ignored in the modeling
process for such reason and also the fact that the disturbance caused is negligible.
Aerodynamic Drag
This results from the spacecraft interaction with the atmosphere. This torque can be
neglected due to the altitude of this mission which is between 600 km to 800km.
Earth’s magnetic field
This torque is created by interaction of the spacecraft’s magnetic field with that of the
Earth. This torque acts cyclically on the spacecraft and also depends on the altitude.
This torque is also absent because the magnetic torque created by the control system
should overwhelm this disturbance. [2], [3], [4]
3.1.2.3 Equations of Motion
Assumptions
The spacecraft is assumed as an un-symmetric rigid body.
The gravity gradient
disturbance is modeled while ignoring the aerodynamic, solar, and magnetic field
disturbances.
The equations of motion can be derived using Newtonian method to derive Kinematic
and Dynamic equations of motion of the spacecraft. The kinematic equations give the
orientation while the dynamic equations give the torques of the spacecraft.
18
Variables and Constants
dH/dt is momentum rate
H is angular momentum
ω is angular velocity
ώ angular velocity rate
Ω is orbital velocity
Ω = √μ / Rcom3
q is quaternions
q’ is quaternion rate
E is quaternion transformation matrix
Tgg is gravity gradient torque
C is controls equations
B is magnetic field
3.1.2.4 Kinematics Equations
The kinematic equation is shown in Equation 0-1 for this system and will be used to
simulate the position of the satellite for the system.
q’ = ½ [ω1x3 0]*ET
Equation 0-1
For the Derivation See Appendix A
3.1.2.5 Dynamic Equations
Equation 0-2 is the dynamic representation of the system, one can see it has gravity
gradient term which is shown in Equation 0-3 and the controls terms in Equation 0-4.
dH/dt = Ibi* ώ bi + ωbi X (I X ωbi) – Tgg + C Equation 0-2
Tgg = 3* Ω2*(a1 ∙ I ∙ a1)
Equation 0-3
19
C=mXBXB
Equation 0-4
For the Derivation See Appendix A
Table 1 Preliminary Parameters
Ix
0.0038 Nm2
Iy
0.0084 Nm2
Iz
0.0089 Nm2
Altittude
700 km
e
~0 [3]
3.1.2.6 Control
Attitude control is necessary to keep the satellite in its orbit to resist disturbances and
basically do what it is designed to do. There are two general types of control systems,
active and passive.
3.1.2.7 Passive Controls
These control schemes are useful if one does not have any rigid mission requirements and
a cheap method of controlling satellite trajectory. These generally require no moving
parts and are lighter.
Gravity Gradient
In this case the satellite can be oriented in a manner where the gravity torque can stabilize
the satellite. To utilize this effectively the satellite must have the inertial properties
where the smallest moment of inertia must be nadir pointing.
20
Passive Magnets
This utilizes permanent magnets in a satellite to align it along the Earth’s magnetic field.
This presents an effective and cheap method as a control mechanism. This can only work
for near Earth orbits.
Spin
Spin due to solar radiation may provide adequate momentum to stabilize the spacecraft.
3.1.2.8 Active controls
This type of control scheme allows total control of the satellite movement. Magnetic
coils, spinning rotor, momentum wheels, and chemical thrusters are some methods of
controlling satellite movement.
Magnetic Coils
This uses Earths own magnetic field to convert the magnetic interaction between the field
of the coil and the Earth into magnetic moment which can stabilize the spacecraft. This
has the advantage of requiring no fuel and moving parts, therefore being lighter.
Spinning rotor
This requires a rotor about the axis which needs stabilization. It can stabilize the spin
axis or all three axes depending on the mission requirement.
Momentum wheel
There are many types; however they require momentum dumping which may need
chemical thrusters or magnetorquers. This ends up adding additional weight and a
complexity of moving parts.
Chemical Thrusters
These, as well as electric thrusters, require fuel and add additional complexity and weight
for the satellite of this weight class, which it can do without. [2], [3], [4]
21
3.1.2.9 Controllability
The first issue that arises when picking a control scheme is whether it will make the
system controllable in the manner desired. To do this first one must linearize the nonlinear system about the desired Lyapunov Stability. Then derive the controls law and do
a preliminary test for controllability. To check for controllability one must satisfy the
following condition:
For a matrix size Anxn, rank of [B, A* B, … An-1*B]. The rank of this matrix must equal
to the rank of matrix A.
The rank of the current system is fully controllable in time invariant domain. Due to the
magnetic field interaction, however, the time varying system will not always be
controllable when the magnetic fields are parallel to each other at the poles and the
equator.
3.1.2.10 Control Scheme
Linear Quadratic Regulator control scheme was utilized to control the satellite. Time
invariant system was derived about the equilibrium points shown below. The controller
is derived from a discretized linear model at sample time of 1000 per second with upper
limit of 1,000,000 data point per second as the upper limit.
3.1.2.11 Linearizing
The non-linear equations must be stabilized about equilibrium points that the controller
can drive the system to. To do this, the non-linear system must be linearized about
required equilibrium points.
To find these points one must solve the following
conditions:
F1 (x1e, x2e , xne) = 0
…
22
Fn (x1e, x2e , xne) = 0
They can also be found using the “trim” command from matlab. To use this command
one must have estimated location of equilibrium points.
The linearization points for the system:
For Dynamics equations
[ω1 ω2 ω3] = [δ ω 1
δ ω2
Ω+ δ ω 3]
For Kinematics equations
[e1 e2 e3 e4]= [δe1 δe2 δe3 1]
Once the process is completed one can have a state-space representation of the system
For Continuous time:
x’(t) = Ax(t) +Bu(t)
y(t) = Cx(t) + Du(t)
For Discrete time:
x (n+1) = Ax(n) + Bu(n)
y(n) = Cx(n) +Du(n)
And now the state space controller can be designed.
3.1.2.12 Linearized Matrix
The linearized matrix is currently time invariant. It is presented below for nadir pointing
satellite.
23
A=[0
wo*(Iy-Iz)/Ix 0
0
0
0;
wo*(Iz-Ix)/Iy
0
0
0
6*wo2*(Iz-Ix)/Iy
0;
0
0
0
0
0
0.5
0
0
0
wo
0
0.5
0
-wo 0
0
0
0.5 0
I = [Ix
0
0;
0
Iy
0;
0
0
Iz]
B= [inv(I)*[-((b32)+(b22))
[b2*b1
[b3*b1
0;
0]
b1*b3]
-((b32) + (b12))
03x3
0;
0
b1*b2
b3*b2
6*wo2*(Ix-Iy)/Iz;
b2*b3]
-((b22)+(b12))]
] [2], [3], [4]
3.1.2.13 Simulink Model
Below one can see the simulink model used to run the non-linear model with the
controller applied. The results that will be presented are from the model below and other
accompanying matlab files that will accompany this report will show the work and the
necessary details. In the following figure, the block named unsymmetric is the non-linear
system and controller, the gain block applies the gains calculated from another matlab
code and the extra clock output is to make all calculation have the same array length.
24
Figure 2: Simulink Model
3.1.3 Results
Several types of disturbances were simulated and the results are presented below. There
seem to be some wrinkles that will need to be ironed out but on the whole this provides a
proof of concept of controllable system.
The first set of plots will show typical disturbance forces encountered as predicted by
Aalborg University [2] and University of Urbana Champaign [3]. The second will show
detumbling simulation, and the third one will show a grossly incorrect orientation of the
spacecraft [4]; the latter two which may be encountered right after the launch from the PPOD.
Initial conditions for figure 3 and 4:
w1,2,3 = 0.001; e1 = 0.001; e2 = 0.001; e3= 0.001; e4 = 1;
25
Quarternions in relation to time e1=blue e2=red e3=cyan e4=green
1
0.8
0.6
quaternions
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
1000
2000
3000
4000
time in seconds
5000
6000
7000
Figure 3: Quaternions for Normal Disturbances
Angular Velocity in relation to time w1=blue w2=red w3=cyan
0.1
0.08
0.06
angular rates
0.04
0.02
0
-0.02
-0.04
-0.06
-0.08
-0.1
0
1000
2000
3000
4000
time in seconds
5000
6000
7000
Figure 4: Angular Rates for Normal Disturbances
26
Initial conditions for figure 5 and 6:
w1,2,3 = 0.01; e1 = 0.01; e2 = 0.01; e3= 0.01; e4 = 0.999;
Quarternions in relation to time e1=blue e2=red e3=cyan e4=green
1
0.8
0.6
quaternions
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
1000
2000
3000
4000
time in seconds
5000
6000
7000
Figure 5: Quaternions for Detumbling
Angular Velocity in relation to time w1=blue w2=red w3=cyan
0.1
0.08
0.06
angular rates
0.04
0.02
0
-0.02
-0.04
-0.06
-0.08
-0.1
0
1000
2000
3000
4000
time in seconds
5000
6000
7000
Figure 6 Angular Rates for Detumbling
27
Initial conditions for figure 7 and 8:
w1,2,3 = 0.01; e1 = 0.998; e2 = 0.01; e3= 0.01; e4 = 0.099;
Quarternions in relation to time e1=blue e2=red e3=cyan e4=green
1
0.8
0.6
quaternions
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
1000
2000
4000
3000
time in seconds
5000
6000
7000
Figure 7: Quaternions for Incorrect Orientation
Angular Velocity in relation to time w1=blue w2=red w3=cyan
0.1
0.08
0.06
angular rates
0.04
0.02
0
-0.02
-0.04
-0.06
-0.08
-0.1
0
1000
2000
3000
4000
time in seconds
5000
6000
7000
Figure 8: Angular Rates for Incorrect Orientation
28
3.1.4 Current Status
Currently we have a proof of concept of a working controller for the satellite.
3.1.5 Future Work
The requirements of the current project required a spinning satellite about its nadir axis.
This was difficult to achieve due to lack of literature on the subject. However, this paper
show the basic proof of concept achieved in controlling the satellite, and more schemes
such as Linear Matrix Inequality can be tried to achieve better results.
Appendix A
ω1x3 = [ω1 ω2 ω3]
E = [e4 -e3 e2
e3 e4 -e1
-e2 e1 e4
-e1 -e2 -e3
e1
e2
e3
e4]
Kinematic Equations
ed1 = 0.5*[W1*e4 - W2*e3 + e2*(W3 + wo)];
ed2 = 0.5*[W1*e3 + W2*e4 - e1*(W3 + wo)];
ed3 = 0.5*[-W1*e2 + W2*e1 + e4*(W3 - wo)];
ed4 = 0.5*[-W1*e1 - W2*e2 - e3*(W3 - wo)];
Dyanmic Equations
wd1 = K1*[ W2*W3 - 12*wo^2*(e1*e2 - e3*e4)*(e3*e1 + e2*e4)];
wd2 = K2*[ W1*W3 - 6*wo^2*(1 - 2*e2^2 - 2*e3^2)*(e3*e1 + e2*e4)];
wd3 = K3*[ W1*W2 - 6*wo^2*(1 - 2*e2^2 - 2*e3^2)*(e1*e2 - e3*e4)];
29
Appendix B
Codes
% Purdue model, Discrete works here
clear all
clc
global A B C D Ai Bi Ci
u1=398600.4418E8; %from wikipedia searching: Gravitational constant
a=700000; % semimajor axis, assuming 700 km orbit
c=sqrt(u1/a^3);
wo= c;
Iz = 0.0089;
% Inertial along body z-axis [kg-m^2]
Iy = 0.0083;
% Inertial along body y-axis [kg-m^2]
Ix = 0.0038; % nadir pointing
I=[Ix 0 0; 0 Iy 0;0 0 Iz];
% A is the linearized matrix see additional notes to see
% about which the nonlinear model was linearized
A=[ 0
wo*(Iy-Iz)/Ix 0
0
0
wo*(Iz-Ix)/Iy 0
0
0
6*wo^2*(Iz-Ix)/Iy
0
0
0
0
0
Iy)/Iz;
0.5
0
0
0
wo
0
0.5
0
-wo 0
0
0
0.5 0
0
% A=[A zeros(6,1);1 zeros(1 6)] % intergral
% B is the where the controls law goes see notes
the points
0;
0;
6*wo^2*(Ix0;
0;
0 ];%[dw dq ]'
b1=6E-5;
b2=b1/10;b3=b1/10; % Define the B field of earth. This is the lowest
recorded B field recorded as presented in UIUC paper on ION cubesat
I2=[-((b3^2)+(b2^2)) b1*b2 b1*b3;b2*b1 -((b3^2) + (b1^2)) b2*b3;b3*b1
b3*b2 -((b2^2)+(b1^2))]; %the derived control law, see Wertz book
%or any paper on cubesats using magnetic coils
B = [inv(I)*I2;zeros(3,3)];% inv(I) is at the corresponding w terms
% B=[inv(I);zeros(3,3)]/1E4;
% B=[B;zeros(1,3)]% when you add an integrator
%C is this becuase we are currently assuming full observability and D
is
%zero because we are assuming no sensor noise
C = [eye(3) eye(3)] ;
% C=[C zeros(3,1)] ; %when you add an integrator
D=[zeros(3,3)];
%% check controllablity
%using PBH test to determine controllablity by checking rank
%the rank of [e*I-A|B] = n for every eigenvalue to be fully
%controllable
%
%
%
%
%
%
%
clc
cntrlblty_6=rank(ctrb(A,B));
e=eig(A)
for i=1:length(e)
r=e(i)*eye(6)-A;
r=[r B];
30
%
rank_eig(i)=rank(r);
% end
%
% disp('rank_eig')
% disp(rank_eig)
%% Integral controller
close all
Ai = [A zeros(6,1);1 zeros(1,6)];
Bi = [inv(I)*I2;zeros(4,3)];
Ci = [eye(3) eye(3,4)];
sys=ss(Ai,Bi,Ci,D);
% The sampling time used is 1000 per second 1E6 is the upper limit for
our
% current hardware
sys=c2d(sys,.001)
N=[1*eye(3); zeros(4,3)];%part of the discrete time equation = See Help
dlqr
[K,S,E] =dlqr(sys.a,sys.b,diag([1E-4 1E-4 1E-4 5E1 5E1 5E1 1E2])*1E3,eye(3),N); %discrete a & b are substituted
% [K,S,E] =lqr(A,B,diag([1E1 1E1 1E1 2E4 2E4 2E4])*1E0,eye(3));
%continuous
[num den]=ss2tf(A,B,C,D,1)
time1=7000;
sim('unsym',[1 time1])
figure(1)
plot(t,e1(:,2),'b')
hold on
plot(t,e2(:,2),'r')
plot(t,e3(:,2),'c')
plot(t,e4(:,2),'g')
plot(t(:,1),e1(:,2).^2+e2(:,2).^2+e3(:,2).^2+e4(:,2).^2,'k')
title('Quarternions in relation to time e1=blue e2=red e3=cyan
e4=green')
xlabel('time in seconds')
ylabel('quaternions')
% legend('e1','e2','e3','e4','deviation from constraint')
axis([0 time1 -1.1 1.1 ])
figure(2)
plot(t,w1(:,2),'b')
hold on
plot(t,w2(:,2),'r')
plot(t,w3(:,2),'c')
title('Angular Velocity in relation to time w1=blue w2=red w3=cyan')
xlabel('time in seconds')
ylabel('angular rates')
axis([0 time1 -.1 .1 ])
% legend('W1','W2','W3')
E
K
%% Make controller using LQR. Continous time
% clc
31
%
%
%
%
%
%
%
close all
sys=ss(A,B,C,D);
[K,S,E] =lqr(sys,1E0*diag([1E-4 1E-4 1E-4 1E0 1E0 1E0]),eye(3));
% using pole placement
% wn=5;z=0.7;
% K=place(A,B,[roots([1 2*z*wn wn^2])' -3 -3.4 -3.9 -3.8])
[num den]=ss2tf(A,B,C,D,1)
% S-function to describe the dynamics of the circular orbit
% Input is a angles and quaternions
%*****************************************************
%This s-fxn block is similar to those from the examples you will find
on
%the AAE 421 website. The only things changed here are the inputs to 3
%because this is a multi-input multi-output system and we have three
inputs
%and the rest was changed acccording to the guidlines provided by the
%example
function [xp,x0,str,ts] = unsymmetric(t,x,u,flag)
%***************************
%
%
%
%
%
t is time
x is state
u is inout
flag is a calling argument used by Simulink.
The value of flag determines what Simulink wants to be executed.
switch flag
case 0
% Initialization
[xp,x0,str,ts]=mdlInitializeSizes;
case 1
% Compute xdot
xp=mdlDerivatives(t,x,u);
case 2
% Not needed for continuous-time systems
32
case 3
% Compute output
xp = mdlOutputs(t,x,u);
case 4
% Not needed for continuous-time systems
case 9
% Not needed here
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% mdlInitializeSizes
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
function [xp,x0,str,ts]=mdlInitializeSizes
global A B C D Ai Bi Ci % these need to be global mostly because you
need B as seen at the end function xp = mdlDerivatives(t,x,u) for
feedback
% make sure the feedback gain is -K as the model is
% simulink is created right now.
% Create the sizes structure
sizes=simsizes;
sizes.NumContStates = 7;
%Set number of continuous-time
state variables
sizes.NumDiscStates = 0;
sizes.NumOutputs = 7;
%Set number of outputs
sizes.NumInputs = 3;
%Set number of intputs
sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 1;
%Need at least one sample time
xp = simsizes(sizes);
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
global A B C D Ai Bi Ci
W10 = 1*.01; %w/omega
W20 = 1*.01; %w/omega
W30 = 1*.01;
e10 = 1*.01;
e20 = 1*.01;
e30 = 1*.01;
e40 = .999;
u=398600.4418E8; %from wikipedia searching: Gravitational constant
a=700000; % semimajor axis, assuming 700 km orbit
c=sqrt(u/a^3);%orbital
wo= c;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
x0=[W10;W20;W30;e10;e20;e30;e40];
% Set initial state [w10,w20,w30,e10,e20,e30,e40]
str=[];
% str is always
an empty matrix
ts=[0 0];
% ts must be a matrix of at
least one row and two columns
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
33
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% mdlDerivatives
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function xp = mdlDerivatives(t,x,u)
%parameters
global A B C D Ai Bi Ci
I2=0.0083;
I3=0.0089;
I1=0.0038;
K1 = (I2 - I3)/I1;
K2 = (I3 - I1)/I2;
K3 = (I1 - I2)/I3;
u1=398600.4418E8; %from wikipedia searching: Gravitational constant
a=700000; % semimajor axis, assuming 700 km orbit
c=sqrt(u1/a^3);
wo= c;
W1 = x(1);
W2 = x(2);
W3 = x(3);
e1 = x(4);
e2 = x(5);
e3 = x(6);
e4 = x(7);
wd1 = K1*[ W2*W3 - 12*wo^2*(e1*e2 - e3*e4)*(e3*e1 + e2*e4)]; %2*pi*J/I1*s*W2;
wd2 = K2*[ W1*W3 - 6*wo^2*(1 - 2*e2^2 - 2*e3^2)*(e3*e1 + e2*e4)];% +
2*pi*J/I2*s*W1;
wd3 = K3*[ W1*W2 - 6*wo^2*(1 - 2*e2^2 - 2*e3^2)*(e1*e2 - e3*e4)];
ed1 = 0.5*[W1*e4 - W2*e3 + e2*(W3 + wo)];
ed2 = 0.5*[W1*e3 + W2*e4 - e1*(W3 + wo)];
ed3 = 0.5*[-W1*e2 + W2*e1 + e4*(W3 - wo)];
ed4 = 0.5*[-W1*e1 - W2*e2 - e3*(W3 - wo)];
% u = is the output of the gain block feedback ie when you open the
model you
% see that the gain block reads K*u, when you double click on the gain
% block you see y=K*u or u.*K etc. The product y is actually outputted
as
% u which goes back into the states
u
xp= [wd1, wd2, wd3, ed1, ed2, ed3, ed4]'+ Bi*u; %you need this here or
you controller won't be doing anything
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% mdlOutput
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
function xp = mdlOutputs(t,x,u)
global A B C D
% Compute xdot based on (t,x,u) and set it equal to sys
xp=[x(1) x(2) x(3) x(4) x(5) x(6) x(7)];
34
References
[1] Purdue Cubesat Report, Fall 2006.
[2] Graversen, Torben, Michael K. Frederiksen, and Soren V. Vedstesen. Attitude
Control System for AAU Cubesat. Diss. Aalborg Univ., 2002.
[3] Gregory, Brian S. Attitude Control System Design for ION, the Illinois Observing
Nanosatellite. Diss. Univ. of Illinois At Urbana-Champaign, 2001.
[4] Makovec, Kristin L. A Non-Linear Magnetic Controller for Three-Axis Stability of
Nanosatellites. Diss. Virginia Polytechnic Institute and State Univ., 2001.
35
3.2 Actuator - Magnetic Torque Coil
Author: Mark James
Purpose
The magnetic torque coil board provides the propulsive capability of the spacecraft. The
board is responsible for the physical act of attitude control, determined from the control
law. Secondly, the board is responsible for all power generation onboard the satellite. It is
designed to fit four solar cells at the center, where sunlight is converted into battery
power.
Design Methodology
3.2.1.1
Square Loop Current
The coil is designed to be a square current-carrying loop. This design is optimal for the
purpose of the board in a way that maximizes torque produced and power generated from
solar cells. The loop runs along the outside of the rectangular board which leaves room
for the four solar cells mounted in the middle. The board is to serve as the outer panels of
the satellite so that no space inside is compromised. This is also a necessity for maximum
incident sunlight onto the solar cells. Looking at Equation 3.2-1 for the magnetic
moment produced from a current carrying loop, it can be seen that maximum area inside
the loop is an optimal choice.

M  INAAvg nˆ
Equation 3.2-1
In this equation, M is the magnetic moment, I is the current through the loops, N is the
number of turns, AAvg is the average area of the loops, and  is the permeability of the
core material. The moment is produced in the n̂ direction which is found by using the
right-hand-rule with respect to the direction of current flow. The torque produced by the
board can be next calculated using Equation 3.2-2

 
T  M B
Equation 3.2-1

where B is the local magnetic field.
36
3.2.1.2
Printed Circuit Board Dimension Analysis
The board is a printed circuit board (PCB) with the square loop winding toward the
center. This is unlike a solenoid, which makes things a bit more difficult to analyze. Since
Equation 3.2-1 refers to the average enclosed area, an iteration must be done for the
decreasing square loop average area. The equation for average area takes the form of
Equation 3.2-3
ab 

AAvg    AAvg  i i 
N 
i 1 
N
Equation 3.2-3
where N is the total number of turns, ai is the length of each loop, and bi is the width of
each loop. A series for was derived in the form of Equation 3.2-4 to determine the length
and width of each loop.
N
 a
i 1
i
N
 b
i 1
i
 a max  2d  N i  1
 bmax  2d  N i  1
Equation 3.2-4
In this equation, amax is the first (maximum) outer loop length, d is the distance between
each loop measured from the center of each wire, and N is the total number of turns.
It is known that the maximum amount of turns is favorable to produce a high magnetic
moment, but there is a limitation in order to fit the solar cells on the same board.
However, the trade off is acceptable with about a 45% loss in magnetic moment with the
decreased number of turns. This loss is made up for by printing the square loop on both
sides of each board, and using two boards per moment direction. The result is a total
magnetic moment of 0.1 A-m2 per direction with each board producing 0.05 A-m2.
Although only 32% of the total board surface is used by the square loop, the loss is
minimized since the loops are around the outer portion of the board where maximum
magnetic moment is produced.
37
3.2.1.3
Power Usage
In satellite applications, there is a heavy limitation on power provided to each subsystem.
At this point, it is determined that each moment direction should not deplete more than
0.3 watts. The coils will not use more than a total of 0.3 watts to create the desired
magnetic moment vector determined by the control law. Although each moment direction
can use a maximum of 0.3 watts, a pulsed width modulation (PWM) system will be used
to create the desired vector. This means that all the coils relating to each moment
direction are pulsed at full power at a specified frequency and pulse width. Two coil
moment directions will not be on at the same time, only allowing 0.3 watts to be used.
The coils will be coordinated with respect to time through PWM to produce an effective
single vector.
In order to determine the current through the coil as well as the power used, the length of
the wire is needed. The wire length was derived in the form of Equation 3.2-5.
l  2b  a 
2 N 1
 (a  id )  (b  id )  b  d (2 N  1)
Equation 3.2-5
i 1
In this equation, a and b are the outer loop length and width dimensions, d is the
distance between the loops from center to center, and N is the total number of turns.
Once this length is known, the resistance in the wire is calculated using Equation 3.2-6
Rw 
l
s
Equation 3.2-6
where  is the conductivity of the wire material and s is the cross sectional area. The
method for determining wire current is done by fixing two parameters. Power usage is
fixed to a desired value of 0.3 Watts and voltage is fixed to the supply limitation of 5
Volts. Next, the required total resistance is calculated by combining Joule’s and Ohm’s
law, taking the form of Equation 3.2-7.
RT 
V2
P
Equation 3.2-7
Once this total resistance is known, coil is run in parallel including the two coils on each
board along with the two boards used to produce an amplified magnetic moment. Since
the wire resistance does not match the total resistance, the H-bridge resistance is added to
38
meet this requirement in order to produce the desired power output from the limited
voltage. Equation 3.2-8 shows the relation for H-bridge resistance.
RHB  4 RT  Rw
Equation 3.2-8
Finally, the current is calculated using Equation 3.2-9.
I
3.2.1.4
P
RT
Equation 3.2-9
Results
When fixing the power generated by the coil and the supply voltage, current and total
resistance also become fixed. It is known that by decreasing the supply voltage, a lower
total resistance is achieved to produce the same power generation. This required total
resistance can be matched by decreasing the H-bridge resistance as well as the coil
resistance. To decrease the coil resistance, the wire cross sectional area can be increased
as well as the total length decreased. The following plots are shown as a function of trace
width of the wire. By increasing this width, the number of turns and total length decrease.
When the supply voltage is too low, an impossible negative H-bridge resistance is
sometimes required to create the required total resistance. This is accounted for by
increasing trace width of the wire to decrease wire resistance and increase H-bridge
resistance while minimizing the loss of turns. The result is an increased magnetic
moment, as shown in Figure 3.2Error! Reference source not found.-1. It is noted that
these plots have steps or jagged trends due to a limitation on number of turns. The
number of turns is limited to integers, and is rounded down so that half turns are not
implemented.
39
Figure 3.2-1: Magnetic Moment and H-bridge Resistance vs. Trace Width
This figure is plotted for a supply voltage of 0.5 Volts and a power output of 0.3 Watts.
As shown, the H-bridge resistance becomes a feasible positive value at a trace width of
0.73 mm. This corresponds to a maximum magnetic moment of a large 0.36 A-m2.
Figure 3.2-2 shows the number of turns and coil current for this optimal supply voltage.
40
Figure 3.2-2: Number of Turns and Coil Current vs. Trace Width
The number of maximum turns has decreased to 12 at the optimum trace width of 0.73
mm while maintaining a current of 0.6 A. According to the ExpressPCB software guide,
a maximum of about 0.7 A is allowed at this trace width. The coil current for this design
is below 0.7 A, and therefore is allowable and optimized for maximum magnetic
moment. However, the supply voltage is limited to 5 Volts at this point due to the supply
choice. To create and maintain the low voltage of 0.5 Volts from the 5 Volt supply
system, a large amount of power will have to be dissipated through a resistor which
cannot be afforded. Therefore, the system is limited to the 5 Volt supply design. Figures
3.2-3 and 3.2-4 show the specifications for this design. As shown, a maximum magnetic
moment of 0.096 A-m2 is achieved with an H-bridge resistance of 299 Ohms. The
number of turns used is 32 with a trace width of 0.18 mm and a low current of 0.06 A.
41
Figure 3.2-3: Moment and H-bridge Resistance vs. Trace Width
Figure 3.2-4: Number of Turns and Coil Current vs. Trace Width
42
Finally, the relationship between total resistance, wire resistance, and H-bridge resistance
is shown in Figure 3.2-5.
Figure 3.2Error! Reference source not found.-5: Resistance vs. Trace Width
Current Status
The magnetic torque coil board design is completed and finished in ExpressPCB
software. The PCB is ready for fabrication at this point.
Future Work
The magnetic moment produced by these coils may be a little too low for quick
stabilization. However, the moment produced is in the expected range and can be
increased by using more power or adding additional boards inside the satellite. A
different supply voltage that can create lower voltages should be considered for the
design. As shown in this report, a low voltage can easily produce over two times the
amount of magnetic moment by using the same amount of power. If this path is chosen,
43
the torque coil board and H-bridge resistance will need to be redesigned as specified in
this report.
References
[1] Makovec, Kristin L. “Spacecraft Magnetic Field Interactions.”A Nonlinear Magnetic Controller
for Three-Axis Stability of Nanosatellites. Blacksburg, Virginia, 2001. 62-67.
MATLAB Code
%Mark James
%AAE 450 - Purdue Cubesat
%Modified 5/4/07
%This code calculates magnetic moment and other coil properties
%for the large board. The coil is printed on a PCB and the wire has a
%rectangular cross sectional area.
clc
clear all
close all
%Constants
t=linspace(0.007,0.15,2^12)*2.54/100;
%m
Wire Trace Width
h=0.0017*2.54/100; %m
Wire height
mu=1; %N/A^2
B_1=4;
%Number of layers
sigma=59.6e6;
%S/m copper conductivity
V=5;
%Supply Voltage (V)
%-----------------------b1 direction--------------------------%calculating power usage
%using the bisection method of iteration
R1hb1=0.2;
R1hb2=0;
n=1;
for j=1:length(t)
d(j)=0.007*2.54/100+t(j); %m
distance center to center
b=.185-t(j);
a=.083-t(j);
bi_min=0.162+t(j);
ai_min=0.06+t(j);
N1max(j)=floor((b-bi_min)/(2*d(j))+1);
N1=N1max(j);
aimin=a-2*(N1max(j)-1)*d(j);
bimin=b-2*(N1max(j)-1)*d(j);
s=t(j)*h;
%wire cross sectional area
Ao_1=a*b;
%calculating lsum used in total wire length calculations
lsum(j)=0;
44
for i=1:2*N1-1
lsum(j)=lsum(j)+(a-i*d(j))+(b-i*d(j));
end
Aavg_1(j)=0;
i=0;
N11=1:1:N1;
ai=0;
bi=0;
%Calculating Average Loop Area
for i=1:length(N11)
ai(i)=a-2*(N11(i)-1)*d(j);
bi(i)=b-2*(N11(i)-1)*d(j);
Aavg_1(j)=Aavg_1(j)+(ai(i)*bi(i))/N11(length(N11)); %A-m^2
end
%Running everything in Parallel
L12(j)=(2*b+a-(b-(2*N1-1)*d(j)) + lsum(j)); %total wire length
P12(j)=.3; %power
Rw12(j)=L12(j)./(sigma*s); %wire resistance, Ohms
R12(j)=V^2/P12(j); %total resistance, Ohms
R1hb2(j)=4*R12(j)-Rw12(j); %H-bridge resistance, Ohms
I12(j)=sqrt(P12(j)/R12(j)); %current
M12(j)=I12(j)*N1*B_1*Aavg_1(j)*mu; %Magnetic Moment, A-m^2
%I1(j)=V./R(j);
%P1(j)=I1(j).^2*R(j);
%Ensuring the H-bridge resistance is above 0.2 Ohms
if R1hb1-R1hb2(j) <= 0
R1hb(n)=R1hb2(j);
L1(n)=L12(j);
P1(n)=P12(j);
Rw1(n)=Rw12(j); %Ohms
R1(n)=R12(j); %Ohms
I1(n)=I12(j);
M1(n)=I1(n)*N1*B_1*Aavg_1(j)*mu; %A-m^2
t1(n)=t(j)*1000;
N1max1(n)=N1max(j);
n=n+1;
end
end
%Plotting
figure
subplot(2,1,1)
plot(t*1000,N1max);grid on;
title('Number of Turns vs Trace Width - 5 Volts, 0.3 Watts, Large
Panel')
xlabel('Trace Width (mm)');
ylabel('Number of Turns');
subplot(2,1,2)
plot(t*1000,I12);grid on;
title('Current vs Trace Width - 5 Volts, 0.3 Watts, Large Panel')
xlabel('Trace Width (mm)');
ylabel('Current (A)');
45
figure
subplot(2,1,1)
plot(t*1000,M12);grid on;
title('Magnetic Moment vs Trace Width - 5 Volts, 0.3 Watts, Large
Panel')
xlabel('Trace Width (mm)');
ylabel('Magnetic Moment (A-m^2)');
subplot(2,1,2)
plot(t*1000,R1hb2);grid on;
title('H-bridge Resistance vs Trace Width - 5 Volts, 0.3 Watts, Large
Panel')
xlabel('Trace Width (mm)');
ylabel('Rhb (\Omega)');
%hold on
figure
%subplot(3,1,1)
plot(t*1000,R12,'k');grid on;
title('Resistance vs Trace Width - 5 Volts, 0.3 Watts, Large Panel')
xlabel('Trace Width (mm)');
ylabel('R (\Omega)');
hold on;
plot(t*1000,Rw12,'b--');
plot(t*1000,R1hb2,'m--');
legend('Total Resistance','Wire Resistance','H-Bridge Resistance')
46
4. Power System
Author: Paul Moonjelly
4.1 Purpose
This subsystem provides regulated power to all the subsystems onboard and thus
is the source of energy for the entire satellite. The solar power is harnessed using solar
cells and stored by charging the batteries onboard. It regulates the power and shuts down
less critical systems under low power conditions (For example, when in eclipse where
solar power is unavailable).
4.2 Design Methodology
The lack of enough Electrical Engineering manpower on the team ruled out the
option of carrying out a board design from scratch. Hence Commercial-Off-The-Shelf
power boards available in the satellite market were surveyed. It was found that the
ClydeSpace EPS board manufactured by Clyde Space, Scotland would meet the power
and size requirements of the PurdueSat. It was also found that the board was
economically feasible since it would fit well into the PurdueSat budget. They also had
some space heritage and hence reliability is not of much concern.
Fig 4.1: Power System Block Diagram
47
The block diagram of this Power System is shown in figure 4.1. This system has 6
Battery Charge Regulators (BCR) on board each of which can be connected to an array of
solar cells.
Fig 4.2: Solar Cells from Spectrolabs Inc.
4.3 Current Status
The Power System board manufacturer was contacted and an order has been
placed. The board is under development and will be shipped within one month. The solar
cell manufacturer was also contacted for more information on solar cell wiring and
configuration. But the ITAR regulations caused a problem in revealing technical details
to the Project Engineer who is an international student. This issue is being worked on.
4.4 Future Work
The configuration of solar cells needs to be finalized after resolving the ITAR
regulation conflicts with the solar cell manufacturer. The compatibility of the
recommended configuration with the Power board has to be verified as well. The Power
board manufacturer recently announced a higher capacity Power System which might be
feasible for the PurdueSat and has enquired if Purdue wanted to use the higher capacity
version of their board. This question also needs to be addressed.
48
4.5 References
[1] http://www.clyde-space.com/Power_Systems.html
[2] http://www.spectrolab.com/DataSheets/TNJCell/tnj.pdf
49
5. Flight Computing System
Author: Paul Moonjelly
5.1 Purpose
The Flight Computing System (FCS) functions as the brain of the entire satellite.
All the other subsystems are connected physically to the Flight Computing System and
each one of those has a software component that lives inside the FCS. It is this software
component that enables the timely and proper functioning of each subsystem. Thus Flight
Computing System is responsible for performing all of the operations of the satellite
including control of onboard hardware devices, scheduling of operations, performing
mathematically intensive computations for generating control outputs, maintenance of
data, and communications with a ground station on Earth.
5.2 Design Methodology
5.2.1 Design Drivers
The primary mission of the PurdueSat is accurate attitude determination and
autonomous control which required handling of highly complex numeric processing tasks
by the Flight Computing System. This was because the algorithms for attitude
determination and control involved several matrix multiplications and inversions which
were to be carried out on 4x4 matrices containing floating point data. Hence the
computational demands imposed by the Attitude Determination System and the Attitude
Control System were a primary design driver in the choice of a computing system.
The second major driver was the need for a platform familiar to Aerospace
Engineering students which would reduce the learning curve and facilitate rapid design
and development. Using assembly level programming or even low level embedded C
programming for development was not a feasible option because of the lack of Electrical
Engineering manpower. The maintenance of the software after development would also
50
pose serious challenges to new incoming Aerospace students. Hence a user friendly but
extremely powerful embedded computing platform was necessary.
The other constraints that drove the design were the allowable power
consumption figures and the size limitations imposed by the CubeSat platform. The
Commercial-Off-The-Shelf (COTS) availability of the hardware platform with the above
mentioned characteristics was also a concern.
5.2.2 Primary Computing Platform
Embedded LabVIEW from National Instruments was chosen as the software
platform. The Blackfin Digital Signal Processor from Analog Devices was chosen as the
hardware platform. The LabVIEW Embedded Module for Blackfin Processors is a
comprehensive graphical development environment for embedded design which was
jointly developed by Analog Devices and National Instruments. This provides seamless
integration of the LabVIEW development environment and Blackfin embedded
processors. This approach can reduce development time significantly and simultaneously
provide a high-performance embedded processing solution.
The Blackfin Processor incorporates Digital Signal Processing capabilities and
microcontroller like features in an extremely power-efficient architecture. It provides a
low-power, unified processor architecture that can run operating systems while
simultaneously handling complex numeric processing tasks which makes it ideal for the
requirements of the Attitude Determination and Control systems.
Fig 5.1: ‘Embedded LabVIEW on Blackfin’ platform
51
The ‘Embedded LabVIEW on Blackfin’ platform provides several advantages.
The LabVIEW is a graphical programming language based on a block diagram approach.
This is very much similar to the MATLAB/Simulink platform that Aerospace students
are already familiar with. LabVIEW abstracts away the low level complexities of the
embedded system. The Virtual Instrument (VI) - analogue of a subroutine or an object in
some other programming languages - approach in LabVIEW provides an intuitive view
of the entire system, making programming and debugging several times faster. A lot of
the VI s for generic digital signal processing and microcontroller type functions are
generally provided by hardware manufactures as ready made black boxes that take in
certain inputs and provide the specified outputs.
Fig 5.2: LabVIEW Ready Made Virtual Instruments (VI s)
The Zmobile mixed signal board from Schmid Engineering AG, Switzerland was
chosen as the motherboard for the PurdueSat. Zmobile is an ultra low power mixed signal
mainboard powered by the Blackfin Processor (Zbrain BF533 core module) that would fit
into the CubeSat form factor. This board was a readily available Commercial Off The
Shelf (COTS) product with an affordable price tag that would fit into the CubeSat budget.
The company - Schmid Engineering AG - heavily supports Embedded LabVIEW
software development and they have agreed to provide software consultation for
PurdueSat. The Zmobile also provided a space saving Plug-In-Stack concept using a
52
proprietary Zbus connector which eliminated the need for wires when interfacing
additional boards.
Fig 5.3: The Zmobile Motherboard from Schmid Engineering AG
Fig 5.4: The Zmobile and Zbus Plug-In-Stack Concept
53
5.2.3 Architecture & Hardware Specification
Dual processor architecture was chosen for the Flight Computing System. This
would enable the high power Digital Signal Processor to be duty cycled only when the
complex numeric processing tasks are to be performed. A low power Host Computer
would keep running all the time and send wake up signals to the Digital Signal Processor
whenever its service is required. Inter-processor communication is established through a
UART link between the two computers. All house keeping functions will be handled by
the host computer and complex numeric processing tasks like those required by Attitude
Determination and Attitude Control Systems will be performed by the Digital Signal
processor. This approach would keep power consumption of the Flight Computing
System at a minimum.
A 32-bit ARM7 CPU running at 60 MHz - ‘Coridium ARMmite’ from Coridium
Corp., CA - was chosen to be the Host Computer. It has 8 10-bit Analog to Digital
converters (ADC s) onboard running at a 100 KHz sample rate and has an extremely
small form factor. The power consumption figure (250 mW) is low too. The Digital
Signal Processor on the Zmobile mentioned previously was a 16-bit computer running at
an aggressive 650 MHz. It had 4 14-bit ADC s running at 140 KHz sample rate.
Fig 5.5: The ARM Host Computer running at 60 MHz
54
Fig 5.6: The Blackfin DSP core module (onboard the Zmobile) running at 650 MHz
The architecture of the entire satellite system was designed as shown in figure 5.5.
The Flight Computing System forms the center of the architecture with each subsystem
having an appropriate type of link to it. The red wires represent an analog link interfacing
to the Analog to Digital converters (ADC s) onboard the Flight Computing System. The
wires with an arrow on both ends indicate a serial communication link (digital IO) of
some sort. The remaining wires represent general purpose digital input output lines. The
Communication System, the Power System and the Temperature sensors are connected to
the Flight Computing System through an I2C link. The 3-axis gyro unit is interfaced
through an SPI link. Two sun sensor units and the magnetometer board are connected to
the Flight Computing System through 3 analog channels each. The magnetometer has
higher resolution than the sun sensors and hence is connected to the 14-bit ADC s on the
Zmobile unit. The Zmobile has provision for onboard flash memory and that will serve as
the data storage unit for the satellite (like a Hard Disk Drive).
55
Fig 5.7: Architecture of the Entire Satellite System
56
5.2.4 Software System Design
The following were the software design requirements: A set of input actions were
to be performed, a set of output actions were to be performed, and Communications with
ground station was to be performed. All these had to be performed autonomously and
also in a periodic fashion. Input actions involved the reading of several different samples
like radiation samples, power samples, temperature samples etc. Output actions included
sending of torque coil control outputs, power control outputs etc. Communications
actions involved sending data and results to the ground station and receiving commands
from the ground station. The PurdueSat operations are illustrated in figure 5.8.
Fig. 5.8: Operational Requirements for the PurdueSat
57
The software architecture was designed with four main components - Device
Drivers, Applications, System Software, and Supporting Software. Device Drivers
are a set of software components that represent a mechanism to handle the low level
details of operating every hardware device onboard the satellite. Each device driver
directly interacts with a single hardware device completely abstracting away the details of
device operation. All device drivers provide a standard interface to the applications so
that the development of applications and device drivers can be independent of each other.
Applications are a group of software components that contain a mechanism to use the
hardware devices onboard at appropriate times. Operation of each hardware device would
be accomplished by the interaction of an application with one or more device drivers. A
particular application and the associated device drivers completely contain the software
segment of a particular satellite subsystem.
System Software is a mechanism for providing processing time to applications
based on the commanded status for each application. System software also provides an
inter-application communications mechanism enabling applications to affect the
operations of the other applications. System software should bring the software system
up to a preset configuration upon power-up and should launch and kill applications as
necessary. Supporting Software provides all the miscellaneous functionalities like event
logging, data storage in a custom file system, standard library functions etc. The entire
satellite software system can be represented as a hierarchical circle shown in figure 5.9.
The device drivers form the outermost ring which corresponds to the lowest level in the
hierarchy. The applications form the next level in the hierarchy. The functionalities get
abstracted away in moving closer to the center of the ring as can be seen from the figure
5.9.
58
Zbrain DSP
Driver
Zmobile ADC
Driver
ARM Processor
Driver
Zmobile SPI
Driver
Sun Sensor
Driver
Onboard ADC
Driver
Power
Driver
Gyro
Driver
Sun Sensor
Application
UART
Driver
Power Application
Gyro Application
Temperature
Driver
Magnetometer
Driver
Real Time
Clock
Driver
Magnetometer
Application
Temperature
Application
Startup Sequence
Application Manager
Housekeeping
Application
Torque Coil
Application
Torque Coil
Driver
Reset Module
Watchdog
Timer
Driver
Communication
Application
TNC
Driver
Att. Determination
Application
System Software
Payload
Application
Inter-processor
Comm. Driver
Att. Control
Application
Applications
Payload
Driver
Flash Memory
Driver
Device Drivers
OS Services
Libraries
Supporting
Software
Fig 5.9: PurdueSat Software System
59
5.3 Current Status
The Flight Computing System hardware design has been completed. The Digital
Signal Processor motherboard (Zmobile) has been procured from the sponsor. The ARM
host computer board has also been shipped. The primary computing platform –
‘Embedded LabVIEW on Blackfin’ has been tested by implementing a quaternion
multiplication algorithm and results have been verified. However, a bug was found in the
operation of Embedded LabVIEW which prevents the LabVIEW front panel window
from updating the current variable values in the debug configuration. This stalled further
implementations and performance analysis. National Instruments has been contacted in
order to find a solution.
A preliminary design of the software system for the dual processor architecture
has been completed as explained in the previous section. This design has been
implemented on a Windows platform to verify the feasibility of the design, by using
delay loops inside applications in place of computational algorithms. It has been verified
that the current software architecture can satisfy all the operational requirements of the
satellite.
5.4 Future Work
The problem with the debug mode in LabVIEW Embedded has to be addressed
before further progress in algorithm implementation can be made. Upgrading to the latest
version of LabVIEW might be a possible solution according to the consultant company Schmid Engineering AG.
Once the algorithms from the other subsystems are ready, they have to be
implemented in Embedded LabVIEW and tested on the Zmobile platform. The software
for the house keeping operations has to be implemented on the ARM Host Computer as
well.
60
5.5 References
[1] http://www.coridiumcorp.com/ARMmite.php
[2] http://www.cubesat.auc.dk/dokumenter/ADC-report.pdf
[3] http://cubesat.ece.uiuc.edu/Files/ACS_Bryan_Gregory_Thesis.pdf
[4] http://cubesat.ece.uiuc.edu/Files/thesis_dabrowski_050405.pdf
[5] http://www.zbrain.ch/en/default.php
61
6. Structure and Circuit Board Design
Author: Kautilya Vemulapalli
6.1 Software Used
To build the components of this satellite, two programs were used along with
Mathlab. CATIA was used to virtually build the parts and merge them to build the
satellite. ExpressPCB was the other program used. This software was used to design the
circuit board for the sun sensor board and the torque coil board.
6.2 Sun Sensor
6.2.1 Sun Sensor Box
The primary purpose of the sun sensor box is to keep the sun sensor safe and also
to avoid unwanted stray light from changing the readings. For this purpose, the box was
made with a certain minimum thickness so as to keep it structurally strong. A support was
also made so that the box could be securely fixed to the side of the satellite. A cap was
also added to close the box and hold the sensor inside. A conical hole was made on the
front side of the box such that the sun sensor could have 140 degree field of view. A
ledge was also made inside the box so as to keep a gap of 1.6mm between the sensor and
the box. Both the box and cap were made out of black plastic to minimize reflections.
The box was made with a thickness of 3mm and with the support having a thickness of
2mm. The cap was made 1mm thick and a hole was made in the cap for the wires from
the sun sensor to be brought out.
Figure 6.1: Sun Sensor Box and Cap
The box was tested with the sensor to check whether the dimensions used were sufficient.
The tests conducted were successful.
62
6.2.2 Sun Sensor Circuit Board
A circuit board was designed to analyze the data from the sun sensor. The board
design was changed multiple times until the required parameters were obtained and the
noise was removed. The schematic for the sun sensor board designed is shown in figure
6.2.
Figure 6.2: Sun Sensor Circuit Board
The board was designed using software called ExpressPCB based on the
schematic. Since space and weight are limited in the satellite, the board was designed
such that it can be made as small as possible. After multiple designs, 2 sun sensor circuits
were put on the same board to reduce the volume and mass taken up by the boards. The
board was designed such that the dimension would be same as those of the DSP board to
make stacking easier inside the satellite. The board was designed with certain circuit
board design requirements to reduce noise and errors. Figure 6.3 and figure 6.4 show the
board with the wiring and only with the component positions respectively.
63
Figure 6.3: Sun Sensor Circuit Board
Figure 6.4: Sun Sensor Circuit Board Component Positions
64
The power supply design was also setup on the sun sensor board but each sun sensor
circuit had its own power supply.
6.3 Torque Coils.
A prototype torque coil board was designed for the satellite. The board also acts
as the outer panel of the satellite. It holds the solar cells on the sides of the satellite. A
maximum of 31 coils could be set on each side of the board while leaving space for the
solar cells as shown in figure 6.5. The solar cells are to be place in a two by two
arrangement on the board on the inside of the coils allowing for a total of 16 solar cells.
The screw holes were setup such that they do not affect the coils or the solar panels. The
coils will be covered with an insulator to prevent short circuits when the board is fixed to
the crossbars.
Figure 6.5: Torque Coil Circuit Board
6.4 Satellite Structure
Computer models of the satellite were made to simplify the design stage and also
the construction of the satellite. The models help simulate the satellite long before any
physical model is built. Some of the satellite structures are based on the previous project
report and models. During this semester, the satellite was changed from a single cubesat
to a double cubesat. The maximum allowed dimension of a double cubesat according to
the CubeSat Design Specification are 227mm by 100mm by 100mm with a minimum of
75% rail and a maximum weight of 2kgs. The center of mass should also be located
65
within 2cm of the geometric center. The total length of the cubesat was made 224mm
from 100mm while the widths were kept at 100mm. The torque coil circuit boards are
used as the sides, top and bottom of the cubesat with the solar panels attached to it.
Initially, a gravity gradient boom was also designed to passively stabilize the
satellite while in orbit. The boom would be extended for stability once the satellite was
launched. After further analysis and controller analysis, the boom design was cancelled to
save mass, volume and also design the controller to be able to control the satellite without
it.
The previous design of the antenna deployment mechanism was used as the base
for designing the new one. Only one set of dipole antenna was installed for
communications. One sun sensor and the radiation detector were set up on opposite sides
of the antenna deployment system. The thickness of the deployment system was also
increased from 30mm to 32mm to be able to fit the sun sensor. This still satisfies the 75%
rail length criteria.
Figure 6.5: Torque Coil Circuit Board
The rails lengths were increase to 192mm and designed according to the design
specifications with a 7mm extension at the top and bottom. Holes on the rails were put in
depending on the locations of the four cross bars for each side of the cubesat. Even
though the rails are the primary structural support, the cross bars keep the structure intact
and from twisting. The holes that are drilled into the cross bars are used to support the
66
internal components. Thus the cross bars have been made with a minimum thickness of
1mm.
Figure 6.6: Cross Bar and Rail
The components and the circuit boards were modeled as accurately as possible
and with data presently known. Figure 6.7 shows the model of the Zmobile (DSP) board
made for estimating inertia.
Figure 6.7: Zmobile Board
The mass of the total satellite was presently estimated at 0.471kg and the inertia were
estimated to be
I1 = 2.661 gm/m2,
I2 = 2.163 gm/m2,
I3 = 1.524 gm/m2.
These values are not accurate but come close to the values from the mathlab analysis
done for the given mass. Knowing the exact weights and materials the components are
made of will help in obtaining the inertia and mass estimates more accurately. Also some
67
of the boards have to be better modeled due lack of information on them at present.
Figure 6.8 and figure 6.9 show the satellite with the components in it.
Figure 6.8: CubeSat
Figure 6.9: CubeSat Internal Components
The components inside the satellite were arranged such that center of mass is within
20mm of the geometric center. The model was found to have the center of mass at 2.8mm
along x-axis, 2.1mm along y-axis and 8.3mm along the z-axis from the geometric center.
The z axis is along the satellite axis, y-axis is along the antennas and x-axis completes the
coordinate system.
6.5 Future Work
The satellite model can be further improved and the inertia calculated more accurately
when the specifications of the new components are found. The center of mass can also be
moved closer to the geometric center by moving the components around.
68
6.6 References
[1] www.expresspcb.com
[2] http://www.smps.us/pcb-design.html
[3] Catia books from CGT 163 and CGT 226
[4] Toorian, Armen, “CubeSat Design Specification (CDS) Revision 9”, 2005
[5] ExpressPCB drawings
[6] Catia models created
6.7 Appendix
Inertia and center of gravity estimation code:
clear;clc
%EARTH
G = 6.67*10^-11;
R = (6378.1 + 700)*10^3;
me = 5.9742*10^24;
%TOTAL MASS
mt = 0.471;
%ANTENA1
l1 = 0.4064;
ms1 = 7860*(l1)*1/100*0.15/1000; %mass = density*length*width*thickness
%ANTENA2
l2 = 0; %0.4064;
ms2 = 7860*(l2)*1/100*0.15/1000; %mass = density*length*width*thickness
%GRAVITY GRADIENT BOOM WT
%mw = [0.05:0.01:0.2];
69
mw = 0; %[0:0.025:1];
%mw = sym('mw', 'real');
lw = 0; %[0:0.25:5];
%lw = sym('lw', 'real');
%GRAVITY GRADIENT BOOM
lggb = lw;
mb = 7860*(lggb)*0.15/1000*1/100;
%SATELLITE
a = 224/1000;
b = 100/1000;
ml = mt - 2.*ms1 - 2.*ms2 - mw - mb;
%TRANSFORMATION MATRIX
%alpha = 45 %deg
alpha = sym('alpha','real'); %deg
tm = [cosd(alpha) -sind(alpha) 0; sind(alpha) cosd(alpha) 0; 0 0 1];
%INERTIA MATRIX
ib11 = ml./6.*(b.^2) + 2.* ms1.*(1./12.*l1.^2 + 1./4.*(l1).^2) + 2.* ms2.*(1./12.*l2.^2 +
1./4.*(l2).^2);
ib22 = ml./12.*(a.^2 + b.^2) + 2.*ms2.*(1./12.*l2.^2 + 1./4*((l2).^2 + a.^2)) + mw.*(lw
+ a./2).^2 + mb.*(1./12.*lggb.^2 + 1./4.*((lggb).^2 + a.^2));
ib33 = ml./12.*(a.^2 + b.^2) + 2.*ms1.*(1./12.*l1.^2 + 1./4*((l1).^2 + a.^2)) + mw.*(lw
+ a./2).^2 + mb.*(1./12.*lggb.^2 + 1./4.*((lggb).^2 + a.^2));
ib = [ib11 0 0; 0 ib22 0; 0 0 ib33]
%ia = tm'*ib*tm;
%i11 = ia(1,1); i12 = ia(1,2); i13 = ia(1,3)
70
%i22 = ia(2,2); i21 = ia(2,1); i23 = ia(2,3)
%i33 = ia(3,3); i32 = ia(3,2); i31 = ia(3,1)
format long
%f2 = 1/(mt*R^2)*(3/2*(i22 + i33 + i11 - 5))
%f2 = 1./(mt.*R.^2).*(3./2.*(ib(2,2) + ib(3,3) - 2.*ib(1,1)))
f2 = 1./(mt.*R.^2).*(3./2.*(ib22 + ib33 - 2.*ib11))
F = -G.*me.*mt./R.^2.*(1 + f2)
Rcg = (R.^2./(1 + f2)).^0.5
x = R - Rcg
format short
71
7. Conclusion
Author: Paul Moonjelly
The objectives for the semester were achieved as listed below:
Dynamics and Control:
Attitude Estimation algorithms were surveyed a suitable one was implemented.
The choice of sensor combination finalized and the Attitude Determination System
preliminary design has been completed. The in-house design and development of sun
sensor has been completed. A control algorithm for non spinning case was developed and
implemented. A 3-axis gyro (ADIS16350) for rate feed back to the controller was chosen
(and the manufacturer was contacted) as the need was recognized during the course of the
development of the control algorithm.
Propulsion:
The feasibility of in-house developed Electric Propulsion to PurdueSat was
studied and was decided to be infeasible at this point since the in-house technology was
not ready to be flown. Hence magnetic torque coils were chosen as the actuator and its
design has been completed.
Structures:
The entire satellite (including the Printed Circuit Boards for each subsystem) was
modeled in CATIA and the inertia parameters and the location of center of mass has been
calculated. The satellite structure was fabricated in the machine shop as well. The Printed
Circuit Board designs for the sun sensor and magnetic torque coils (forming the satellite
outer wall) were also completed.
Computer & Electronics:
The Flight Computing System hardware design has been completed and the
hardware was procured from the sponsor. The primary computing platform – ‘Embedded
LabVIEW on Blackfin’ has been tested. A preliminary design of the software system for
the dual processor architecture was completed and has been implemented on a Windows
platform to verify the design feasibility. The Battery & Power Conditioning Board was
chosen and has been ordered.
72
Thus the PurdueSat Senior Design was successful in revamping the design of the
PurdueSat and accelerating the development of PurdueSat several folds over the course of
one semester (The future work corresponding to each subsystem has been addressed in
the last section of each chapter).
73