Analysis of the Feasibility of Demonstrating Pulsed Plasma Thrusters on FalconSAT-3 C1C Andrea M. Johnson United States Air Force Academy Abstract FalconSAT-3 is a small satellite being assembled, integrated, and tested by cadets at the United States Air Force Academy. Among the payloads on FalconSAT-3 are pulsed plasma thrusters (PPT’s). When it became clear that the actual thrust produced by the PPT’s was lower than initially estimated, concern arose regarding the ability of ground control or the on-board computer to detect changes in attitude that could be attributed to PPT firing. With the suggestion that the PPT’s could not be used for attitude control, it became necessary to find alternative means of demonstrating that the PPT’s were firing. A Kalman filter and Batch filter were tested with simulated attitude data generated with Simulink. Even with extremely pessimistic thrust data, noisy attitude data, and pessimistic disturbance torques values, the Batch filter was able to accurately estimate the torque produced by the PPT’s. The Kalman filter, although providing a solution faster than the batch filter, was significantly less accurate. Nomenclature List a1i , a2i , a3i , a4i a â A Ai Bi C Ci D sun Di Nutation coefficients Vector a, average a value, predicted measurement of a Unit vector a, measurement of a Satellite drag area and angle for calculating polar motion component Nutation coefficient Nutation coefficient Angle for calculating polar motion component Nutation coefficient Mean elongation from the sun Nutation coefficient Ê EQequinox Unit vector from the satellite center of mass to the earth Equation of equinoxes M moon M sun Mean anomaly of the moon Mean anomaly of the sun N̂ Ŝ Tbylo Unit vector normal to surface Unit vector from the spacecraft center of mass to the sun Transformation matrix from local orbital to body Tloecf TAI TDB TDT u moon xp yp z AST moon Transformation matrix from earth-centered, fixed to local orbital coordinate frame International atomic time Terrestrial barycentric time Terrestrial dynamical time Mean argument of latitude of the moon Polar motion component, measured positive from the North pole along 0o longitude Polar motion component, measured positive from the North pole along 90o west longitude Final precession angle to align J2000 and earth-centered, inertial coordinate frames Orbital energy and obliquity of the ecliptic Mean obliquity of the ecliptic Pitch angle, coelevation, and angle between mean equator at epoch and mean equator of date Apparent sidereal time Longitude of the ascending node of the mean lunar orbit Introduction FalconSAT-3 is a small satellite being assembled, integrated, and tested by cadets at the United States Air Force Academy. It is scheduled for launch in 2006 aboard a Lockheed-Martin AtlasV rocket, a medium-class evolved expendable launch vehicle (EELV), owned by the United States Air Force. It will “piggyback” along with five other small satellites on an EELV secondary payload adapter (ESPA) ring. The following are the specifications for FalconSAT-3: Total Mass: Inertia Tensor (Deployed Boom): Coefficient of Drag (Cd): Spacecraft Dipole: Orbit: 46.1 kg 0 0 67.40 0 67.45 0 kg-m2 0 0 1.31 2.6 0.05 A-m2 Altitude = 560 km Semimajor axis = 6938.137 km Inclination = 35o Eccentricity = 0 Right Ascension = 0o Table 1: FalconSAT-3 Specifications Figure 1: FalconSAT-3 Dimensions Experimental Methods In order to follow the calculations made, various coordinate frames must first be defined. Coordinate Frames Body frame: Same as local orbital when pitch, roll, and yaw = 0 Local orbital frame: Origin: Satellite center of mass Fundamental plane: Satellite’s orbital plane x in the direction of satellite velocity, y in the direction of orbit normal, z completes right-handed system Earth-Centered, Fixed: Origin: Center of the earth Fundamental plane: Earth’s true of date equator x points toward the prime meridian z points along the earth’s true of date rotational axis, positive north y completes right-handed coordinate system Earth-Centered, Inertial (J2000): Origin: Center of the earth Fundamental plane: Mean of earth’s equator of epoch I in the direction of the mean vernal equinox of epoch, K points toward the mean rotational axis of epoch, positive north J completes right-handed coordinate system Perifocal Coordinate System (quasi-inertial, PQW): Origin: Center of the earth Fundamental Plane: Satellite’s orbital plane P in the direction of the first point of Aries, Q 90 degrees away from P in the direction of satellite orbit, W axis completes right-handed system Spiral Orbit Transfer In determining whether or not a change in semimajor axis is feasible, the total change in velocity provided by a single PPT, assuming 24 hours of firing, perfect alignment of the thrust in the direction of the velocity vector, instantaneous firing, and no thruster decay is made. In this analysis, third-body effects are neglected, the mass of the satellite is assumed to be negligible compared to the mass of the earth, and the only perturbing force taken into consideration is the PPT thrust. To determine the total change in velocity, the peak thrust is multiplied by the time of firing for the entire 24 hours and divided by the mass of the satellite: 160e 6 N * 15e 6 sec* 2 Hz * 24hrs * 60 min* 60 sec V 8.9960954446855e 6 m / s 46.1kg The initial velocity of the spacecraft, assuming the orbital elements above are accurate is calculated: Vcircle 7.5796208888927km / sec R In which V is velocity in km/sec, μ is the gravitational parameter of the earth, and R is the magnitude of the position vector. The final velocity is used to determine the energy of the new orbit at that position: (7.5796208978888km / sec) 2 28.725326341481 2 R The energy is used to determine the semimajor axis of this new orbit: a 6938.1370164696 a 1.64696cm 2a The force of drag causes deceleration according to the following equation: 1 C A a drag d V 2 2 m In which a is acceleration, is the air density, C d is the coefficient of drag on the satellite, A is the area of the satellite susceptible to drag, m is the mass of the satellite and V is the velocity of the satellite. Assuming the minimum amount of drag on the satellite and only one panel is susceptible to drag, the acceleration is given to be: 3 2 1 4 2.6 * (0.46e ) 7.5796 2 4.9611e 11km / sec 2 adrag *1.488e 2 47.4 From these calculations, the change in velocity possible from air drag over the same 24 hour period of time that the PPT’s are firing is around -4.2864e-3 m/s. The force of drag on the satellite even in the best-case scenario is three orders of magnitude greater than the force of thrust from the PPT’s. Lacking an accurate model for air density and a GPS receiver, even estimation theory cannot be used to provide an accurate answer. Even if a GPS receiver could be mounted on FalconSAT-3, it would not provide the accuracy necessary to measure such a small change in semimajor axis. Attitude Control Equations of Motion: To determine whether or not changes in attitude due to PPT firing could be detected, Simulink was used to model the behavior of the satellite with and without disturbance torques using Euler’s moment equations. Assuming no products of inertia, the equations of motion are: I11 ( I 3 I 2 ) 23 T1 I 2 2 ( I 1 I 3 )13 T2 I 3 3 ( I 2 I1 )12 T3 Solving for : ( I I ) T 1 2 3 2 3 1 I1 ( I I ) T 2 3 1 1 3 2 I2 ( I I ) T 3 1 2 1 2 3 I3 Simulink then integrates the above equations using initial conditions specified by the user. Taking the results, the transformation matrix from the body frame to the local orbital is calculated. Initially user-defined initial roll, pitch, and yaw angles are used. Subsequently, the calculated angles are used. To perform a 2-1-3 rotation: cos cos sin sin sin sin cos cos sin sin sin cos Tbylo sin cos cos sin sin cos cos sin sin cos sin cos cos sin sin cos cos The rates in the roll, pitch, and yaw directions are then calculated: lo by Tbylo o for which o 0 o 0 and o T a3 So Tlobylo to put the rates with respect to the local orbital frame. Disturbance Torques: The first disturbance torque taken into account is the gravity-gradient torque. The equations describing the torque in each axis assume no products of inertia: 2 N xGG 3 o ( I z I y )Tbylo 23Tbylo 33 N yGG 3 o ( I x I z )Tbylo 33Tbylo13 2 N zGG 3 o ( I y I x )Tbylo13Tbylo 23 2 The second disturbance torque taken into account is atmospheric drag. If roll, pitch, and yaw are not zero (or a limited number of specific angles), there will be a torque caused by drag. The drag torque is calculated as follows: 1 C d Ac p V 2 For which Cd is the coefficient of drag for the satellite, ρ is the density of air at the altitude of the satellite’s orbit, A is the area of the satellite normal to the velocity vector, c p is the vector from N drag the center of mass to the center of pressure, and V is the unit velocity vector of the satellite. To calculate the torque correctly, the velocity magnitude should be in the body frame and units must agree (if area is in meters, the velocity must be in meters per second). For this analysis, the international standard atmosphere model developed in 1976 is used. As more complex models generate minimal to no improvement over this model, the sacrifice of computation time is not justifiable. To obtain a more precise estimate of what the drag torque is, the simplified model of FalconSAT-3 is used and the drag force on six planes and two cylinders is calculated: 1 Fdrag, plane C d V 2 A Nˆ Vˆ Vˆ 2 2 1 Fdrag,cylinder C d V 2 DL 1 Zˆ Vˆ Vˆ 2 n N drag ci p Fi drag i 1 For this simulation, since the center of pressure for each element of the satellite and the overall center of pressure are not known, the center of pressure for the satellite main body is assumed to be off by 1 cm from the geometric center of the element. The centers of pressure for the boom and the tip mass are assumed to correspond with the geometric centers of those elements. The third disturbance torque taken into account is solar pressure. The equation for the solar pressure disturbance torque is very similar to that of drag: d N solar o Ac p V c For which d o is the average solar radiation constant and c is the speed of light. Once again, to obtain a more accurate estimate of the solar pressure torque, the following equations are used: 1 Fsolar, plane Psun A cos sun 1 C s Sˆ 2 C s cos sun C d Nˆ 3 Fsolar,cylinder 1 Pearth A cos earth 1 C s Eˆ 2 C s cos earth C d Nˆ 3 1 4 Psun sin sun 1 C s Cd ASˆ C s sin sun C d cos sun A1 Zˆ 6 3 6 3 1 4 Pearth sin earth 1 C s C d AEˆ C s sin earth C d cos earth A1 Zˆ 6 3 6 3 For which Psun Fsun c and Fsun 1358 W 2 1.0004 0.0334 cos D m While Pearth Pearth,reflect Pearth,rad For which Pearth,reflect 600W and Pearth,rad 150 W 2 m2 m Finding the total torque is then exactly the same as finding the drag torque: n N solar ci p Fi solar i 1 The fourth disturbance torque taken into account is magnetic moment caused by the interaction of the spacecraft dipole with the earth’s magnetic field. The equation for this torque follows: N magnetic M B For which M is the magnetic dipole of the satellite and B is the magnetic field of the earth at the satellite’s position. For this analysis, the International Geomagnetic Reference Field (IGRF) 10th generation model is used. The Gaussian coefficients used for this analysis include terms up to the 13th degree and 13th order and secular terms up to the 8th degree and 8th order. The earth’s magnetic field can be represented fairly well as the gradient of a scalar potential function: B V The equations for B in terms of the distance of the satellite from the center of the earth, coelevation, and azimuth (spherical coordinate frame) are: Br k V a r n 1 r n2 n 1 g n,m cos m h n,m sin m P n,m n m 0 k 1 V a B r n 1 r n2 n g n ,m cos m h n ,m m 0 n2 P n ,m sin m n 1 V 1 k a B m g n,m sin m h n,m cos m P n,m r sin sin n 1 r m 0 For which a is the equatorial radius of the earth defined as 6371.2 km for the IGRF, r is the distance from the center of the earth, θ is the coelevation (angle from the spin axis of the earth to the position vector), and is azimuth, measured east from Greenwich. K is the maximum order of the Gaussian coefficients used, gn,m and hn,m are the Schmidt normalized Gaussian coefficients, n and m are the degree and order (respectively) of the Gaussian coefficients, and P n ,m n,m and are the associated Legendre functions and partial derivatives thereof, P respectively. A recursive algorithm can be used to find the respective Schmidt coefficients: S 0,0 1 2n 1 S n , 0 S n 1, 0 n S n ,m S n ,m 1 n m 1 m1 1 nm The Schmidt normalized coefficients are defined as g n,m S n,m g nm h n,m S n,m hnm For which g n ,m and h n ,m are the Schmidt normalized coefficients, g nm and hnm are Gaussian coefficients and S n ,m is the respective Schmidt function. A similar algorithm can be used to find the Legendre functions and their derivatives: P n ,m P 0, 0 1 P n ,n sin P n 1,n 1 cos P n 1,m K n ,m P n 2,m For which K n,m K 1,m 0 2 n 1 m 2 2n 12n 3 And P 0,0 0 P n,n P n 1,n 1 sin cos P n 1,n 1 n,m n 1, m n 2,m P P n 1, m n , m P cos sin P K To make the magnetic field values useful, they must be in body coordinates. Converting from the spherical earth-fixed coordinate frame to the Cartesian earth-fixed coordinate frame is the first step. Figure 2: Spherical Coordinate to Cartesian Coordinate Transformation Using simple geometry, the magnetic field equations become: B x Br sin cos B cos cos B sin Br sin B cos cos B sin B y Br sin sin B cos sin B cos Br sin B cos sin B cos Bz Br cos B sin A conversion from the earth-centered fixed coordinate frame to the earth-centered inertial coordinate system is then necessary. Although a simpler conversion algorithm would have sufficed for this simulation, the following was developed so that the program could be used again for calculations requiring more precise solutions. Given the year, month, day, hour, minute, and second at which the calculations are to be made, Julian date can be found using the following formula: month 9 7 year floor 12 275 * month JD 367 * year floor floor 4 9 sec min 60 hour 60 day 1721013.5 24 Precession: Three rotations are necessary to account for the change in coordinate frame from that of epoch to that of the true of date because of precession. rwprecession Rot 3( z ) Rot 2( ) Rot 3( )rJ 2000 For which 0.011180860TTDB 1.464e 6TTDB 2 8.7e 8TTDB 3 z 0.011180860TTDB 5.308e 6TTDB 8.9e 8TTDB 2 3 0.009717173TTDB 2.068e 6TTDB 2 2.02e 7TTDB 3 TTDB represents the number of centuries in TDB that have passed since epoch. The method for determining this value is outlined later. Nutation: Again, three rotations are necessary: rwnutation Rot1( ) Rot 3() Rot1( )r wprecession The angles through which the vectors are rotated can be found as follows: 0.40909280 0.000226966TTDB 2.86e 9TTDB 2 8.80e 9TTDB 3 M moon r 2 2 3 2.355548394 (1325r 3.470890872)TTDB 0.000151795TTDB 3.103e 7TTDB M sun 6.2400359 (99r 6.2666106)TTDB 0.0000027974TTDB 5.81e 8TTDB 2 3 umoon 1.627901934 (1342r 1.431476084)TTDB 0.000064272TTDB 5.34e 8TTDB 2 Dsun 5.198469514 (1236r 5.36010650)TTDB 0.0000334086TTDB 9.22e 8TTDB 2 moon 2.182438624 (5r 2.341119397)TTDB 0.000036142TTDB 3.87e 8TTDB 2 106 ( Ai Bi TTDB ) sin a1i M moon a 2i M sun a ei u moon a 4i Dsun a5i moon i 1 106 (Ci Di TTDB ) cosa1i M moon a 2i M sun a ei u moon a 4i Dsun a5i moon i 1 3 3 3 Sidereal Time: Only one rotation is necessary to account for sidereal time: EQequinox cos AST GST EQequinox rwopolar Rot 3( AST )rwprecession Polar Motion: Two rotations are necessary to account for polar motion: x p 0.0373 0.0206 cos A 0.0794 sin A 0.1075 cos C 0.0803 sin C y p 0.3454 0.0678 cos A 0.0209 sin A 0.0803 cos C 0.1075 sin C A 2 MJD 53173 / 365.25 C 2 ( MJD 53173) / 435 recf Rot 2( x p ) Rot1( y p )rwopolar To transform the vector into the local orbital: U x Tloecf V x W x For which Uz Vz W z Uy Vy Wy V U V W U x T V R V R V W R Rx R x Uy Uz V y Vz Ry Rz For which R is the satellite’s position vector in earth-centered inertial coordinates and V is the satellite’s velocity vector in earth-centered inertial coordinates. Time Conversion All inputs into the simulation are assumed to be in coordinated universal time (UTC), but in order to generate accurate data, some time conversions must be made. To convert from universal time corrected for longitudinal variations (UT1) to UTC: UTC UT1 UT1 Values for UT1 are published and updated by the Naval Observatory on a regular basis. Since the simulation is run for a date in 2006, a date for which this value is not yet provided, an estimate is used: UT1 0.5 sec 0.03sec To calculate terrestrial barycentric time (TDB), the international atomic time (TAI) and terrestrial dynamical time (TDT) must be calculated. TAI UTC AT Values for AT are also provided by the Naval Observatory. At this time, AT 32 sec . TDT TAI 32.184 sec TDB TDT 0.002 sec The short duration of calculations does not warrant the computational expense of finding TDB more accurately. For many of the above calculations, Julian centuries are used. To determine this value for any time frame, the following equation can be used: JDa 2,451,545.0 Ta 36,525 For which Ta is the number of Julian centuries from epoch in the given time frame and JDa is the Julian date in the given time frame. Estimation Theory Since the PPT thrust is very small, determining whether or not the PPT’s are firing is difficult to do. A simple linearized Kalman filter is used to estimate the value of N PPT about the yaw axis. The dipole of the satellite is also uncertain and because of the strength of the effect of the magnetic interaction, m1 and m2 are also considered unknowns. The algorithm then follows the following format. For this algorithm, drag and solar pressure are assumed to be known from the equations above. Any variations from these values to the actual disturbance torques are assumed to be noise. Equation of motion for yaw axis: 2 I z z 3o I y I x Tbylo Tbylo M x B y M y Bx I y I x x y N zdrag N zsolar N oPPT gk 13 23 z I z z I y I x 3o Tbylo13Tbylo23 x y M x B y M y Bx N N N gk For which N zPPT N oPPT gk z For which g is the decay rate of the average PPT thrust. Although not explicitly known, it is too small to estimate, so a rough number from measured data is used to account for measurable decay over long simulation times. The state for this Kalman filter is then N oPPT z X Mx My and the measured and predicted values are calculated by 2 zˆ I z z I y I x 3o Tbylo13Tbylo23 x y 2 drag z z M x B y M y Bx N zdrag N zsolar N oPPT gk z z Since the H matrix is defined as X z z z H N M x M y H 1 By Bx solar z PPT oz Assuming that X is constant, the state transition matrix is 1 0 0 0 1 0 0 0 1 Propagating the covariance matrix: Pk Pˆk 1 Q Since X 0 propagating the state is simply: X k Xˆ k 1 Calculating the measured and predicted values: 2 zˆ I z ,k z ,k I y I x 3o Tbylo,k13Tbylo,k23 x,k y ,k solar z M x B y ,k M y Bx,k N zdrag N oPPT gk ,k N z ,k z This program is meant to read in data containing z , Tbylo1 3 , Tbylo2 3 , x , y , B x , and B y for each time step. The H matrix is constant and the Kalman gain is calculated by: K k Pk H kT H k Pk H kT R To update the state: 1 Xˆ k X k K k zˆ k z k To update the covariance: Pˆk I K k H k Pk This process is repeated for as many data points as the user desires. When noise is added, the Kalman filter will produce values that oscillate about a bias (for this case in which the state is constant). To determine the bias, a simple smoothing function is implemented which truncates the data and takes the mean of the remaining data. Assuming the noise is white Gaussian, the filter will provide a decent amount of accuracy. Since it can be assumed that X is constant, another viable option for estimation is using a batch ˆ z and H remain the same as those for the Kalman filter. filter. For this filter, z, HTH H T WH k k R k T H zˆ z k H T W O C k k R k After the preceding has been performed for all of the data points: X H T WH H T W O C If X (user defined), then exit the loop. If not: 1 X X X Results and Discussion To demonstrate the accuracy of the numerical integrator, a 24-hour simulation is run without any disturbance torques. Energy and angular momentum should remain constant. Plotting the following will demonstrate the integrator accuracy. Attitude: h I 1 2 T I Orbit: Normalized error: V2 2 R o t o h R V and ho ht ho If plots of the above remain less than the smallest disturbance torque plotted, the integrator is sufficiently accurate for the simulation being performed. The maximum error is on the order of 10e-14, sufficiently small to model the PPT thrust on the order of 10e-9 N. To validate that the simulation and gravity gradient disturbance torque is correct, a simulation including only the gravity gradient disturbance torque is performed and compared to a known Cprogram developed by Surrey Satellite Technology Limited. The results are slightly different because of slightly different initial conditions and because of slightly different coordinate frames, but graphs of the results from both models clearly show that the simulation is correct. The magnetic field disturbance torque program is compared numerically to the output produced by the SSTL gravity gradient disturbance torque program. Differences in orbit propagation prevented graphical comparison. The drag and solar pressure disturbance torque programs are verified using hand calculations as SSTL does not have programs to which the output could be compared. Several 24-hour simulations were run with various noise values, generating the following results: No Noise Actual PPT torque 0.0000 Dipole (x) 0.0000 Dipole (y) 0.0500 Table 2: Simulation Values without Noise Percent Error Kalman w/o Smoothing Percent Error Kalman w/ Smoothing Percent Error Batch N/A N/A N/A N/A N/A N/A 3.4001E-10 8.6001E-10 0.0000E+00 Table 3: Simulation Results with No Noise 0.3E-6 on B field Actual PPT torque 0.0000 Dipole (x) 0.0000 Dipole (y) 0.0500 Table 4: Simulation Values with B Field Noise Percent Error Kalman w/o Percent Error Kalman w/ Smoothing Smoothing Percent Error Batch N/A N/A N/A N/A N/A N/A 2.0709 2.2331 0.0318 Table 5: Simulation Results with B Field Noise No PPT's With PPT's Noise Percent error Noise Percent error 0.3E-3 on w 0.379488 0.3E-3 on w 10.07 1.33E-6 on wdot 0.379488 1.33E-6 on wdot 10.07 Table 6: Batch Filter Simulation Results with Various Noise Conclusion The integration error for the simulation is small enough that even the thrusters on the order of 10e-9 N will be accurately modeled. Comparisons of gravity gradient and magnetic field disturbance torques as well as earthcentered, inertial to earth-centered, fixed conversions to programs developed in C by other programmers show that they are accurate and data generated by this simulation may be considered truth. A batch filter provided more accurate results than the Kalman filter and the Kalman filter with smoothing. Using a batch filter to process noisy attitude data, it can be verified that the PPT’s are firing as long as the data noise stays within appropriate limits. Recommendations For 24 hours, the PPT’s should be fired with no other active attitude control. The satellite should be operating on minimal systems. Magnetometer readings and attitude data from a six or seven state Kalman filter are necessary. Data from the 24 hour period must then be saved and sent to the ground station or streamed down during periods of contact and saved during blackout periods. A file containing all 24 hours worth of data is necessary for the batch filter to function properly. The program itself can be altered as necessary for the file format. To increase the accuracy of this model for longer simulations or for even more precise numbers, orbital perturbations should be included. For use with NORAD two line elements, the NORAD SGP4 orbit model should be used. If the model will only be used for simulations and/or will not be processing NORAD data (if the satellite will instead be using GPS data), numerically integrating the perturbing forces may be a better choice. Acknowledgements Cappellari, J.O., et. all. Mathematical Theory of the Goddard Trajectory Determination System. Goddard Space Flight Center: Greenbelt, MD, 1976. Hashida, Yoshi. ADCS for Future UoSAT Standard Platform. Surrey Satellite Technology, Ltd.: University of Surrey, England, 1997. IERS Bulletin-A. 29 June, 2004. ftp://maia.usno.navy.mil/ser7/ser7.dat. LeapSecond.com 29 June, 2004. http://www.leapsecond.com/java/gpsclock.htm Oersted Field Model. 29 June, 2004. http://www.dsri.dk/Oersted/Field_models/IGRF2000/igrf2000.cof Steyn, W.H. A Multi-Mode Attitude Determination and Control System for Small Satellites. University of Stellenbosch, December 1995. Vallado, David A. Fundamentals of Astrodynamics and Applications. McGraw-Hill Companies, Inc.: New York, 1997. Wertz, James R. Spacecraft Attitude Determination and Control. Kluwer Academic Publishers: London, 2002.