(*^
::[ Information =
"This is a Mathematica Notebook file. It contains ASCII text, and can be
transferred by email, ftp, or other text-file transfer utility. It should
be read or edited using a copy of Mathematica or MathReader. If you
received this as email, use your mail application or copy/paste to save
everything from the line containing (*^ down to the line containing ^*)
into a plain text file. On some systems you may have to give the file a
name ending with ".ma" to allow Mathematica to recognize it as a Notebook.
The line below identifies what version of Mathematica created this file,
but it can be opened using any other version as well.";
FrontEndVersion = "Macintosh Mathematica Notebook Front End Version 2.2";
MacintoshStandardFontEncoding;
fontset = title, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, L3, e8, 24, "Times";
fontset = subtitle, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, L2, e6, 18, "Times";
fontset = subsubtitle, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, L2, e6, 14, "Times";
fontset = section, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, grayBox, M22, bold, L2, a20, 14, "Times";
fontset = subsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, blackBox, M19, bold, L2, a15, 12, "Times";
fontset = subsubsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, whiteBox, M18, bold, L2, a12, 10, "Times";
fontset = text, inactive, noKeepOnOnePage, preserveAspect, M7, L2, 12, "Times";
fontset = smalltext, inactive, noKeepOnOnePage, preserveAspect, M7, L2, 10, "Times";
fontset = input, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeInput, M42, N23, bold, L2, 12, "Times";
fontset = output, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L2, 12, "Courier";
fontset = message, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, R65535, L2, 12, "Times";
fontset = print, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L2, 12, "Times";
fontset = info, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L2, 12, "Times";
fontset = postscript, PostScript, formatAsPostScript, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeGraphics, M7, l34, w282, h287, L2, 12, "Courier";
fontset = name, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, italic, B65535, L2, 10, "Geneva";
fontset = header, inactive, noKeepOnOnePage, preserveAspect, M7, L2, 10, "New York";
fontset = leftheader, inactive, L2, 10, "New York";
fontset = footer, inactive, noKeepOnOnePage, preserveAspect, center, M7, L2, 12, "New York";
fontset = leftfooter, inactive, center, L2, 12, "New York";
fontset = help, inactive, noKeepOnOnePage, preserveAspect, M7, L2, 10, "Geneva";
fontset = clipboard, inactive, noKeepOnOnePage, preserveAspect, M7, L2, 12, "New York";
fontset = completions, inactive, noKeepOnOnePage, preserveAspect, M7, L2, 12, "New York";
fontset = special1, inactive, noKeepOnOnePage, preserveAspect, M7, L2, 12, "New York";
fontset = special2, inactive, noKeepOnOnePage, preserveAspect, center, M7, L2, 12, "New York";
fontset = special3, inactive, noKeepOnOnePage, preserveAspect, right, M7, L2, 12, "New York";
fontset = special4, inactive, noKeepOnOnePage, preserveAspect, M7, L2, 12, "New York";
fontset = special5, inactive, noKeepOnOnePage, preserveAspect, M7, L2, 12, "New York";
paletteColors = 128; currentKernel;
]
:[font = title; inactive; preserveAspect; startGroup]
Freshman Seminar FRS 148
From the Earth to the Moon
Part 8. Spacecraft Orientation and Attitude Dynamics
°°°°°°°°°°
Robert Stengel
Princeton University
April 10, 1997
Copyright 1996-1997 by Robert Stengel. All rights reserved.
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
;[s]
11:0,1;24,0;52,4;104,1;115,0;116,2;152,4;166,2;167,3;227,2;228,1;261,-1;
5:2,27,18,Times,1,24,0,0,0;3,21,14,Times,1,18,0,0,0;3,23,15,Times,1,20,0,0,0;1,14,9,Times,3,10,0,0,0;2,18,12,Times,1,14,0,0,0;
:[font = input; noPageBreakBelow; preserveAspect]
<>"]
;[o]
-Graphics3D-
:[font = subsection; inactive; preserveAspect]
Rotational Kinetic Energy
:[font = text; inactive; noPageBreakBelow; keepOnOnePage; preserveAspect]
Paralleling the development of translational kinetic energy, the scalar rotational kinetic energy can be expressed as
;[s]
3:0,0;72,1;97,0;118,-1;
2:2,14,9,Times,0,12,0,0,0;1,14,9,Times,2,12,0,0,0;
:[font = input; noPageBreakBelow; preserveAspect; startGroup]
KineticEnergy = 0.5 BodyAngularRate . AngularMomentum
:[font = output; output; inactive; noPageBreakBelow; preserveAspect; endGroup]
0.5*(Ixx*p^2 + Iyy*q^2 + Izz*r^2)
;[o]
2 2 2
0.5 (Ixx p + Iyy q + Izz r )
:[font = text; inactive; noPageBreakBelow; keepOnOnePage; preserveAspect]
A contour of constant kinetic energy is an ellipsoid (also called the Poinsot ellipsoid) that intercepts the principal axes at points proportional to the inverses of the square roots of Ixx, Iyy, and Izz. We will not pursue the matter here, but the angular momentum and Poinsot ellipsoids play major roles in understanding the motions of freely spinning bodies.
;[s]
9:0,0;70,2;87,0;187,1;189,0;192,1;194,0;201,1;203,0;363,-1;
3:5,14,9,Times,0,12,0,0,0;3,22,13,Times,64,12,0,0,0;1,14,9,Times,2,12,0,0,0;
:[font = subsection; inactive; preserveAspect]
Moment Equations
:[font = text; inactive; noPageBreakBelow; preserveAspect]
Following Newton's First and Second Laws, the angular momentum of a body, expressed in an inertial frame, is unchanging unless the body is acted upon by a moment. The rate of change of inertial-frame-referenced angular momentum, hI, equals the applied moment, MI:
d(hI)/dt = MI
Written using body-axis angular momentum and moment vectors, this is
d(H123hB)/dt = H123MB
When taking the derivative of a vector that is referenced to a rotating frame (like the body-axis frame), we must consider not only the vector's change with respect to the coordinate system but the change in the coordinate system as well. Both H123 and hB change with time, so the chain rule must be applied to the derivative:
d(H123hB)/dt = d(H123)/dt hB + H123 d(hB)/dt = H123MB
Because H123 is an orthonormal transformation (preserving angular relationships and magnitudes), it can rotate as a "solid body," but it cannot stretch or shrink. Therefore, its time derivative involves the cross product of the angular rate vector and the transformation matrix itself. With further manipulation, the moment equation can be expressed in body axes as,
d(hB)/dt = MB - wB x hB
where wB is the body-axis angular rate vector. Remembering that angular momentum is the product of the inertia matrix and the angular rate vector, and assuming that the body-fixed inertia matrix is constant, the moment equation leads to a differential equation for the angular rate. Assuming that the body axes are principal axes:
;[s]
69:0,0;230,2;231,1;232,0;261,2;262,1;263,0;268,2;269,1;270,0;277,2;278,1;279,0;353,2;354,1;357,2;358,1;359,0;366,2;367,1;370,2;371,1;372,0;619,2;620,1;623,0;628,2;629,1;630,0;705,2;706,1;709,2;710,1;711,0;720,2;721,1;724,0;729,2;730,1;731,0;734,2;735,1;738,0;741,2;742,1;743,0;750,2;751,1;754,2;755,1;756,0;766,2;767,1;770,0;1130,2;1131,1;1132,0;1139,2;1140,1;1141,0;1144,3;1145,1;1146,0;1149,2;1150,1;1151,0;1159,3;1160,1;1161,0;1486,-1;
4:21,14,9,Times,0,12,0,0,0;24,22,13,Times,64,12,0,0,0;22,14,9,Times,1,12,0,0,0;2,19,13,Symbol,1,12,0,0,0;
:[font = input; noPageBreakBelow; preserveAspect; startGroup]
Moment = {Mx, My, Mz};
:[font = input; noPageBreakBelow; preserveAspect]
{p', q', r'} =
Inverse[InertiaMatrix] . (Moment -
Collect[CrossProduct[BodyAngularRate, (InertiaMatrix . BodyAngularRate)],{p,q,r}]);
ColumnForm[%]
:[font = output; output; inactive; noPageBreakBelow; preserveAspect; endGroup]
(Mx - (-Iyy + Izz)*q*r)/Ixx
(My - (Ixx - Izz)*p*r)/Iyy
(Mz - (-Ixx + Iyy)*p*q)/Izz
;[o]
Mx - (-Iyy + Izz) q r
---------------------
Ixx
My - (Ixx - Izz) p r
--------------------
Iyy
Mz - (-Ixx + Iyy) p q
---------------------
Izz
:[font = text; inactive; noPageBreakBelow; keepOnOnePage; preserveAspect]
[Mathematica's Collect[¥] object is inserted in the formula to group the cross-product terms in the output.] Products of angular rates (e.g., qr) produce coupling into acceleration along perpendicular axes (e.g., p'), and this coupling depends on the difference between moments of inertia (e.g., Iyy and Izz). If the moments of inertia are the same, the coupling is zero. If external moments are zero, this "gyroscopic" coupling still occurs and is the basis for the "spin stability" of unmanned satellites, sounding rockets, and cannon rounds. External moments can result from control effects, but they also can arise from disturbances, as described briefly below.
;[s]
7:0,0;1,2;12,0;298,1;300,0;306,1;308,0;672,-1;
3:4,14,9,Times,0,12,0,0,0;2,22,13,Times,64,12,0,0,0;1,14,9,Times,2,12,0,0,0;
:[font = subsection; inactive; preserveAspect; endGroup]
Effects of Control and Disturbance Torques
:[font = text; inactive; noPageBreak; noPageBreakBelow; preserveAspect]
Here are some sources of control torques and equivalent disturbance torques:
Control Disturbance Comment
Thruster Venting Mass Expulsion
Meteor Impact Vectored or Discrete
Control Moment Gyro Rotating Machinery Large Dynamic Range
Momentum Wheel Periodic Dumping
Gravity Gradient Gravity Gradient Attitude-dependent
Magnetic Torquer Attitude-dependent
Solar Pressure Solar Pressure Attitude-dependent
Yo-Yo Despin Structural Loss Discrete Action
Aerodynamic Control Aerodynamic Disturbance
The rotational rates required for spin stability are quite high, and as a matter of practice, the angular rates employed for manned spacecraft are quite low. Together with the fact that moments of inertia may be quite similar to each other, the gyroscopic coupling effects may be negligible. However, due to positioning of control actuators, varying mass distributions, and other sources of asymmetry, the products of inertia may not be negligible. With these assumptions (and using the Mathematica object Simplify[¥]), the dynamic equations are
;[s]
5:0,0;78,1;157,0;1420,2;1431,0;1479,-1;
3:3,14,9,Times,0,12,0,0,0;1,14,9,Times,4,12,0,0,0;1,14,9,Times,2,12,0,0,0;
:[font = input; preserveAspect; startGroup]
InertiaMatrix = {{Ixx, -Ixy, -Ixz}, {-Ixy, Iyy, -Iyz}, {-Ixz, -Iyz, Izz}};
:[font = input; preserveAspect]
{p', q', r'} =
Simplify[Inverse[InertiaMatrix] . Moment];
ColumnForm[%]
:[font = output; output; inactive; preserveAspect; endGroup]
(-(Iyz^2*Mx) + Iyy*Izz*Mx + Ixz*Iyz*My + Ixy*Izz*My + Ixz*Iyy*Mz +
Ixy*Iyz*Mz)/
(-(Ixz^2*Iyy) - 2*Ixy*Ixz*Iyz - Ixx*Iyz^2 - Ixy^2*Izz +
Ixx*Iyy*Izz)
(Ixz*Iyz*Mx + Ixy*Izz*Mx - Ixz^2*My + Ixx*Izz*My + Ixy*Ixz*Mz +
Ixx*Iyz*Mz)/
(-(Ixz^2*Iyy) - 2*Ixy*Ixz*Iyz - Ixx*Iyz^2 - Ixy^2*Izz +
Ixx*Iyy*Izz)
(Ixz*Iyy*Mx + Ixy*Iyz*Mx + Ixy*Ixz*My + Ixx*Iyz*My - Ixy^2*Mz +
Ixx*Iyy*Mz)/
(-(Ixz^2*Iyy) - 2*Ixy*Ixz*Iyz - Ixx*Iyz^2 - Ixy^2*Izz +
Ixx*Iyy*Izz)
;[o]
2
(-(Iyz Mx) + Iyy Izz Mx + Ixz Iyz My + Ixy Izz My + Ixz Iyy Mz +
Ixy Iyz Mz) /
2 2 2
(-(Ixz Iyy) - 2 Ixy Ixz Iyz - Ixx Iyz - Ixy Izz + Ixx Iyy Izz)
2
(Ixz Iyz Mx + Ixy Izz Mx - Ixz My + Ixx Izz My + Ixy Ixz Mz +
Ixx Iyz Mz) /
2 2 2
(-(Ixz Iyy) - 2 Ixy Ixz Iyz - Ixx Iyz - Ixy Izz + Ixx Iyy Izz)
2
(Ixz Iyy Mx + Ixy Iyz Mx + Ixy Ixz My + Ixx Iyz My - Ixy Mz +
Ixx Iyy Mz) /
2 2 2
(-(Ixz Iyy) - 2 Ixy Ixz Iyz - Ixx Iyz - Ixy Izz + Ixx Iyy Izz)
:[font = text; inactive; preserveAspect]
For a spacecraft with mirror symmetry about its vertical plane, Ixy = Iyz = 0, but Ixz 0, corresponding to a nose up/down orientation with respect to the x body axis (e.g., the flight condition of the Space Shuttle at landing, with the x axis aligned to the nominal velocity direction). In this case, the dynamic equations simplify to
;[s]
7:0,0;65,1;67,0;71,1;73,0;84,1;86,0;338,-1;
2:4,14,9,Times,0,12,0,0,0;3,22,13,Times,64,12,0,0,0;
:[font = input; preserveAspect; startGroup]
InertiaMatrix = {{Ixx, 0, -Ixz}, {0, Iyy, 0}, {-Ixz, 0, Izz}};
:[font = input; preserveAspect]
{p', q', r'} =
Simplify[Inverse[InertiaMatrix] . Moment]
:[font = output; output; inactive; preserveAspect; endGroup]
{(Izz*Mx + Ixz*Mz)/(-Ixz^2 + Ixx*Izz), My/Iyy,
(Ixz*Mx + Ixx*Mz)/(-Ixz^2 + Ixx*Izz)}
;[o]
Izz Mx + Ixz Mz My Ixz Mx + Ixx Mz
{---------------, ---, ---------------}
2 Iyy 2
-Ixz + Ixx Izz -Ixz + Ixx Izz
:[font = text; inactive; preserveAspect]
In summary, the kinematic and dynamic equations that govern angular orientation and motion are coupled. A full solution requires the integration of six nonlinear, ordinary differential equations, although special problems often can be solved with a reduced set of equations and simplifying assumptions.
^*)