FRR9ThrusterModel.docx
Thruster Model
Feature Spec and Test Procedures
Lead: Steve C
Developer: Darrel
STE/GUI Tester: Shawn
Appendix A  Miscellaneous Data
Maneuver Test Object Definitions
Re: Maneuver Test Object Definitions
Re: Maneuver Test Object Definitions
Re: Maneuver Test Object Definitions
GMAT Math Specs for Thruster/ISP Polynomials
Debug for failed Jupiter Finite Burn Test
Debug for Thruster_FBurn_Luna_ScA_ThrusterB_CS3_TankA
Screen Snap of FRR9 Requirements
Explore
See Requirement below:
FRR9.4.3 
3) Gravity coefficient to decrement mass used for an impulsive maneuver 
(GMAT ThrusterB.GravitationalAccel = 9.81; is a typical command to do this)
The Requirement above makes it sound like ThrusterB.GravitationalAccel does not affect finite burns but it does. Should requirement be reworded??
Note that one can set the gravity coefficient associated with an impulsive burn as well. e.g., GMAT DefaultIB.GravitationalAccel = 9.810000000000001;
Known bugs/issues committed in JIRA against this feature:
Note that GMT2588 is the Thruster QA task (not a bug).
Failing Tests
(Run Identification: [Gmatbuildtest] Test results: 20120514 (Win764/GMAT32/M2010a/VS))
These tests have script errors that caused a failure:
Thruster_FullPoly_EarthSat_EarthProp_EarthThruster_UserLVLH_Cmd2 (script) Output file C:\Users\Public\Documents\JAZZ\trunk\test\script\gmat\output\Thruster_FullPoly_EarthSat_EarthProp_EarthThruster_UserLVLH_Cmd2.report does not exist
Thruster_FullPoly_EarthSat_EarthProp_EarthThruster_UserLVLH_Cmd (script) Output file C:\Users\Public\Documents\JAZZ\trunk\test\script\gmat\output\Thruster_FullPoly_EarthSat_EarthProp_EarthThruster_UserLVLH_Cmd.report does not exist
Actions Taken:
● As discussed below, submitted bug GMT2803 . The two tests above will run after this bug is fixed. To temporarily get the script to run:
○ These lines (which were in command mode) commented out:
■ %DefaultSC.Thruster1.CoordinateSystem =Local;
■ %DefaultSC.Thruster1.CoordinateSystem = MyCoordSys;
○ The following lines were added prior to BeginMissionSequence:
■ Thruster1.CoordinateSystem =Local;
■ Thruster1.CoordinateSystem = MyCoordSys;
○ Note that by design, DefaultSC.Thruster1.CoordinateSystem cannot be set in the Resource portion of the script.
● The GMAT script uses a full Thrust/ISP. Because the exponent of the (T/Tref) term contains Pressure, one cannot use STK to generate the truth data. Wonder if we can create a STK user defined script to do this. Email sent to Steve/Edwin to determine if they have the truth script.
● See also submitted bug report, GMT2860 for some questions on the LVLH definition. Changed the LVLH definition in the script to match definition given in GMT2860.
● Changed script to output just two lines, initial and final state.
These tests run to completion but fail:
Thruster_FBurn_Earth_ScA_ThrusterAThrusterF_CS0_TankA (script) []
Comments/Actions Taken:
● This test failed because the numbers of lines in the ‘truth’ and ‘report’ files differ. Changed the error message to make this clear.
● GMAT Error message received: ODEModel Exception Thrown: Multiple Finite burns are not allowed in a single propagator; try breaking commands of the form "Propagate prop(sat1, sat2)" into two synchronized propagators; e.g. "Propagate Synchronized prop(sat1) prop(sat2)"
● GMAT only writes out one line of the report before failing. Joel: If GMAT generates a report at all, the system tries to compare it to truth regardless of what the log file says. It’s only listed as an error if the report (or log file) is missing entirely.
● Talked to Steve. H : Two simultaneous burns not allowed. Will change test name to include the word, “validation.”
○ Thruster_FBurn_Earth_ScA_ThrusterAThrusterF_CS0_TankA changed to Thruster_Validation_Two_finite_burns. Created associated validationtype *.tc file. Test ran successfully
○ Deleted file, Thruster_FBurn_Earth_ScA_ThrusterAThrusterF_CS0_TankA.truth.
Thruster_FBurn_Jupiter_ScA_ThrusterB_CS3_TankA (script) [pos err
8522.603141 vel err 4.498468]
Comments/Actions Taken:
● There are 28 Jupiter finite burn tests. All use “ScA” and “TankA.” Only the ThrusterB_CS3 configuration failed.
● The truth file appears to be incorrect. With new STK truth, still have errors but they are much smaller, on the order of 5 km or so.
● The rest of the GMAT vs. STK error is due to the fact that STK calculates the (T/Tref) term in the Thrust/ISP polynomial in Kelvin whereas GMAT calculates in Centrigade. (Bug GMT2837 submitted). WIth this understanding, test now passes.
Thruster_FBurn_Luna_ScA_ThrusterB_CS3_TankA (script) [pos err 3849.515704 vel err 5.130226]
Thruster_FBurn_Mars_ScA_ThrusterB_CS3_TankA (script) [pos err 5735.462891 vel err 5.904614]
Thruster_FBurn_Mercury_ScA_ThrusterB_CS3_TankA (script) [pos err
4112.302119 vel err 4.975586]
Thruster_FBurn_Neptune_ScA_ThrusterB_CS3_TankA (script) [pos err
9714.375310 vel err 5.600302]
Thruster_FBurn_Pluto_ScA_ThrusterB_CS3_TankA (script) [pos err 3979.909732 vel err 4.908047]
Actions Taken:
● Updated STK truth model.
● For some of the STK runs, the s/c impacted the planet. This would cause the propagator to reduce gravity. Changed propagator so that it did not do this. (changed 99% value to 10%)
● Tests now pass
Thruster_FBurn_Pluto_ScA_ThrusterE_CS0_TankA (script) [ vel err 0.000015]
Actions Taken: Changed Accuracy from 1e12 to 1e14. Test passed locally.
Thruster_FBurn_Saturn_ScA_ThrusterB_CS3_TankA (script) [pos err
5446.647337 vel err 2.448408]
Thruster_FBurn_Uranus_ScA_ThrusterB_CS3_TankA (script) [pos err
8587.825939 vel err 4.779854]
Thruster_FBurn_Venus_ScA_ThrusterB_CS3_TankA (script) [pos err 7177.873817 vel err 5.341257 mass err 354.986237]
Actions Taken:
● Updated STK truth model.
● For some of the STK runs, the s/c impacted the planet. This would cause the propagator to reduce gravity. Changed propagator so that it did not do this. (changed 99% value to 10%)
● For the “Venus” test, changed the Thrust/ISP coefficients in the GMAT script to be consistent with other similarly named tests.
● Tests now pass
Thruster_FiniteBurn_EarthSat_EarthProp_EarthThruster_LocalVNB (script) [pos err 0.115353, tol 0.000100]
Thruster_FiniteBurn_EarthSat_EarthProp_EarthThruster_UserVNB (script) [pos err 0.115353, tol 0.000100]
Thruster_FiniteBurn_EarthSat_EarthProp_MoonThruster_LocalVNB (script) [pos err 0.115201, tol 0.000100]
Actions Taken:
● Increasing the GMAT propagator accuracy had little/no effect.
● Changed comparator to only look at the final GMAT vs. STK state. (one line of data compared).
● Obtained STK scenario from Steven Hughes. The STK epoch for the initial state was off by one second. (Perhaps, related to a leap second?). Fixed the STK epoch. Tests now pass.
● Update 6/18/12: After making the above fixes, Thruster_FiniteBurn_EarthSat_EarthProp_MoonThruster_UserVNB now fails. This is because it uses the same truth file as Thruster_FiniteBurn_EarthSat_EarthProp_MoonThruster_LocalVNB which was changed. Among other things, fixed the newly failing GMAT script to use the same initial epoch as the Local test. Test now passes.
Thruster_OtherNumericProperties_Cmd (script) [pos err 1381.956492 vel err
1.061481 mass err 67.730840]
Actions Taken/Comments:
● Changed the truth file from Thruster_FBurn_Earth_ScA_ThrusterF_CS1_TankE.truth to Thruster_FBurn_Earth_ScA_ThrusterA_CS0_TankD.truth. Test passed locally.
Thruster_Validation_GravitationalAccel_7 (script) [no error or exception]
Thruster_Validation_Tank (script) [no error or exception]
Thruster_Validation_Tank_2 (script) [no error or exception]
Thruster_Validation_Tank_4 (script) [no error or exception]
Thruster_Validation_ThrustDirection1_3 (script) [no error or exception]
Thruster_Validation_ThrustDirection2_3 (script) [no error or exception]
Thruster_Validation_ThrustDirection3_3 (script) [no error or exception]
Actions Taken:
● No action needed. These errors are captured in existing bug, GMT2001 .
Other Findings
Submitted bug report, GMT2802 , I nconsistency in Tank Pressure Units .
Submitted bug report, GMT2803 , Error when setting thruster coordinate system in command mode.
Submitted bug report, GMT2837 , Divide by Zero  Thrust/ISP polynomials when Reference Temperature set to zero degrees Centigrade.
Submitted bug report, GMT2860 , LVLH Definition. Since the LVLH definition was changed, the following actions were taken.
● For test, Thruster_FullPoly_EarthSat_EarthProp_EarthThruster_UserLVLH.
● Changed definition of LVLH to use the STK/Astrogator standard.
● Changed number of output lines to two, initial and final state.
● Created matlab script, Thruster_FullPoly_EarthSat_EarthProp_EarthThruster_LVLH, to generate truth results.
● Updated file, Thruster_FullPoly_EarthSat_EarthProp_EarthThruster_UserLVLH.truth.
● Updated scripts Thruster_FullPoly_EarthSat_EarthProp_EarthThruster_UserLVLH_Cmd.script and Thruster_FullPoly_EarthSat_EarthProp_EarthThruster_UserLVLH_Cmd2.script to use the new LVLH definition and to output just two lines of data. Note that these scripts are pretty much the same except that the “cmd” version uses the newer syntax to set the thrust direction, e.g., DefaultSC.Thruster1.ThrustDirection1.
Submitted bug report, GMT2915 , Possible Issue with copying Objects (e.g., Thruster and Propagator)
Recommendations/Questions
1 MJ2000Eq is not really a “local” coordinate system and it is available directly to the user as its own coordinate system (EarthMJ2000Eq is available directly. Don’t think origin matters here). Should MJ2000Eq be removed from the “local” coordinate system?
Requirements
These are working requirements. They are included here for review and convenience purposes. After review, requirements are maintained in the formal SRS located at SourceForge in /trunk/doc/SystemDocs/Requirements.
ID 
Requirements 
FRR9.1.0 
The system shall allow the user to create and configure spacecraft thrusters of the following types: 
FRR9.1.1 
1) Chemical thruster 
FRR9.2.0 
The thruster model shall allow the user to define the thrust vector in the following coordinate systems: 
FRR9.2.1 
1) Any coordinate system defined in FRR35. 
FRR9.2.2.0 
2) Local systems based on a userprovided central body 
FRR9.2.2.1 
1) Local VNB 
FRR9.2.2.2 
2) Local LVLH 
FRR9.2.2.3 
3) MJ2000 
FRR9.2.3 
3) Spacecraft body coordinate system. 
FRR9.3.0 
The thruster model shall allow the user to specify the thrust vector using the following vector formats: 
FRR9.3.1 
1) Cartesian components 
FRR9.4.0 
The thruster model shall allow the user to configure the following thruster properties: 
FRR9.4.1 
1) Thrust duty cycle that scales the thrust and mass flow rate 
FRR9.4.2 
2) Thrust scale factor that scales the thrust vector 
FRR9.4.3 
3) Gravity coefficient to decrement mass used for an impulsive maneuver 
FRR9.4.4 
4) Tank that supplies fuel to the thruster 
FRR9.4.5 
5) Polynomial to define lsp dependency on tank temperature and pressure 
FRR9.4.6 
6) Polynomial to define thrust magnitude on tank temperature and pressure 
FRR9.5 
The thruster model shall allow the user to optionally decrement tank mass during a maneuver. 
FRR9.6 
For a finite maneuver, if the user has chosen to decrement tank mass (FRR9.5), the thrust and Isp polynomials shall be used to integrate the mass flow rate equation to decrement tank mass 
Interface/Functional Spec
Overview
A chemical thruster
Description
The Thruster uses the fuel tank and directs the thrust of the rocket engine while in space. It is used for finite burns.
Fields
See the User Interface Spec spreadsheet for reference information for fields. The data below should be included in the User Interface Specification. (I did not know how to include this information in the User Interface Specification spreadsheet).
For Tech Writer: This text should be placed prior to C1 in the user’s guide tables. 
The constants Ci below are used in the following equation to calculate thrust (in Newtons), F T , as a function of pressure P (kPa) and temperature T (Celsius).
For Tech Writer: This text should be placed prior to K1 in the user’s guide tables, the first ISP coefficient. 
The constants Ki below are used in the following equation to calculate ISP (in seconds), I sp , as a function of pressure P (kPa) and temperature T (Celsius).
GUI
Introduction
The Thruster dialog box allows you to specify properties of a thruster including the coordinate system of the Thrust acceleration direction vector, the thrust magnitude and Isp. The layout of the Thruster dialog box is shown below.
Figure 1 Thruster Properties
When configuring the CoordinateSystem field, you can choose between existing coordinate systems or use Local. The “Origin” and “Axes” fields are only active if “Coordinate System” is set to Local. Those fields allow you to to define the reference origin and axes type for the local system.
As shown below, if “Decrement Mass” is checked, then you can select the desired FuelTank.
Figure 2 Thruster Properties  cont'd
Selecting the “Edit Thruster Coef.” button brings up the following dialog box where you input the coefficients for the Thruster polynomial.
Figure 3 Thruster Coefficient Dialog
Similarly, clicking the “Edit Impulse Coef.” button brings up the following dialog box where you input the coefficients for the specific impulse (ISP) polynomial.
Figure 4 Impulse Coefficient Dialog
Remarks
Thrust and ISP Calculation
Unscaled thrust, F T , and Isp, as a function of Pressure, in kPa, and Temperature, in degrees Celsius, are calculated using the following polynomials.
The thrust, T, output in Newtons, is scaled by the Duty Cycle and Thrust Scale Factor. The thrust acceleration direction vector (the direction of the actual acceleration not the thruster nozzle) is given by ThrustDirection13 and is applied in the input Coordinate System. The Isp is output in seconds.
The mass flow rate and the thrust equations are shown below where F_T and I_sp are defined above, f_d is the duty cycle, f_s is the thrust scale factor, R_iT is the rotation matrix from the thrust coordinate system to the inertial system, and T_d hat is the unitized thrust direction.
Local Coordinate Systems
You must specify the coordinate system of the input thrust acceleration direction vector, ThrustDirection13. If you choose a local coordinate system, the four choices available, as given by the Axes subfield, are VNB, LVLH, MJ2000Eq, and SpacecraftBody. VNB or VelocityNormalBinormal is a noninertial coordinate system based upon the motion of the spacecraft with respect to the Origin subfield. For example, if the Origin is chosen as Earth, then the Xaxis of this coordinate system is the along the velocity of the spacecraft with respect to the Earth, the Yaxis is along the instantaneous orbit normal (with respect to the Earth) of the spacecraft, and the Zaxis completes the righthanded set.
Similarly, Local Vertical Local Horizontal or LVLH is also a noninertial coordinate system based upon the motion of the spacecraft with respect to the Origin subfield. Again, if we choose Earth as the origin, then the Xaxis of this coordinate system is the position of the spacecraft with respect to the Earth, the Zaxis is the instantaneous orbit normal (with respect to the Earth) of the spacecraft, and the Yaxis completes the righthanded set.
MJ2000Eq is the J2000based Earthcentered Earth mean equator inertial coordinate system. Note that the Origin subfield is not needed to define this coordinate system.
SpacecraftBody is the attitude system of the spacecraft. Since the thrust is applied in this system, GMAT uses the attitude of the spacecraft, a spacecraft attribute, to determine the inertial thrust direction. Note that the Origin subfield is not needed to define this coordinate system.
Caution when setting the FuelTank Temperature and Reference Temperature
Note that both the thrust and ISP polynomials have terms that involve the ratio, (Temperature / Reference Temperature). For GMAT, this temperature ratio is calculated in Celsius units, and thus, there is a discontinuity when the Reference Temperature is equal to zero. For this reason, GMAT requires that the absolute value of the input Reference Temperature is greater than 0.01.
Note also that the form of the Thrust and ISP polynomial has some behavior, when the Reference Temperature is near 0 degrees Centigrade, that you need to be aware of. Because of the previously mentioned discontinuity, the polynomials do not vary smoothly when the Reference Temperature is near zero. For example, consider the two Reference Temperatures, 0.011 and + 0.011 degrees Centigrade. These two temperatures are close to each other in value and one might expect that they have roughly similar thrust and ISP values. This may not be the case, depending upon your choice of thrust/ISP coefficients, since the temperature ratios associated with the two Reference Temperatures have the same magnitude but different signs. You may choose to set the input Reference Temperature equal to the input Temperature, thus eliminating any dependence of thrust and ISP with temperature when using the currently implemented FuelTank model based upon Boyle’s Law where the fuel Temperature does not change as fuel is depleted.
Interactions
BeginFiniteBurn/EndFiniteBurn 
These commands use the FuelTank and the Thruster to start a FiniteBurn (i.e., when the delta V is not instantaneous.) 
FuelTank 
This object contains the fuel used to power the Thruster and implement the FiniteBurn. 
FiniteBurn 
This takes the parameters of the FuelTank and the Thruster and creates an associated finite burn. 
Spacecraft 
This is the object that the FiniteBurn is applied to. 
Examples
Create a default FuelTank and a Thruster that allows for fuel depletion, assign the Thruster the default FuelTank, and attach both the Thruster and FuelTank to a Spacecraft.
% Create the FuelTank Object Create FuelTank FuelTank1; GMAT FuelTank1.AllowNegativeFuelMass = false; GMAT FuelTank1.FuelMass = 756; GMAT FuelTank1.Pressure = 1500; GMAT FuelTank1.Temperature = 20; GMAT FuelTank1.RefTemperature = 20; GMAT FuelTank1.Volume = 0.75; GMAT FuelTank1.FuelDensity = 1260; GMAT FuelTank1.PressureModel = PressureRegulated;
% Create a Thruster, that allows fuel depletion, and assign it a FuelTank Create Thruster Thruster1; GMAT Thruster1.CoordinateSystem = Local; GMAT Thruster1.Origin = Earth; GMAT Thruster1.Axes = VNB; GMAT Thruster1.ThrustDirection1 = 1; GMAT Thruster1.ThrustDirection2 = 0; GMAT Thruster1.ThrustDirection3 = 0; GMAT Thruster1.DutyCycle = 1; GMAT Thruster1.ThrustScaleFactor = 1; GMAT Thruster1.DecrementMass = true; GMAT Thruster1.Tank = {FuelTank1}; GMAT Thruster1.GravitationalAccel = 9.810000000000001; GMAT Thruster1.C1 = 10; GMAT Thruster1.C2 = 0; GMAT Thruster1.C3 = 0; GMAT Thruster1.C4 = 0; GMAT Thruster1.C5 = 0; GMAT Thruster1.C6 = 0; GMAT Thruster1.C7 = 0; GMAT Thruster1.C8 = 0; GMAT Thruster1.C9 = 0; GMAT Thruster1.C10 = 0; GMAT Thruster1.C11 = 0; GMAT Thruster1.C12 = 0; GMAT Thruster1.C13 = 0; GMAT Thruster1.C14 = 0; GMAT Thruster1.C15 = 0; GMAT Thruster1.C16 = 0; GMAT Thruster1.K1 = 300; GMAT Thruster1.K2 = 0; GMAT Thruster1.K3 = 0; GMAT Thruster1.K4 = 0; GMAT Thruster1.K5 = 0; GMAT Thruster1.K6 = 0; GMAT Thruster1.K7 = 0; GMAT Thruster1.K8 = 0; GMAT Thruster1.K9 = 0; GMAT Thruster1.K10 = 0; GMAT Thruster1.K11 = 0; GMAT Thruster1.K12 = 0; GMAT Thruster1.K13 = 0; GMAT Thruster1.K14 = 0; GMAT Thruster1.K15 = 0; GMAT Thruster1.K16 = 0;
% Add the Thruster and the FuelTank to a Spacecraft GMAT Create Spacecraft DefaultSC; GMAT DefaultSC.Tanks = {FuelTank1}; GMAT DefaultSC.Thrusters = {Thruster1};
BeginMissionSequence 
Test Procedures
Assumptions
None
Existing Tests
There are 1189 files of the form *.tc.
Test Name 
Description 
Thruster_FBurn*_Sc*_Thruster*_CS*_Tank*.tc

The file name specifies the spacecraft, Thruster, coordinate system and Tank configuration according to the forum entry by JTichy . There are 902 *.tc files of this type. Four of the 902 file names of this type have the form, *_Sc*_Thruster*_CS*_Tank*cmd*.tc which means that they test commands in the mission sequence. 
Thruster_OtherNumericProperties_Cmd.tc 
Tests setting of some of the thruster parameters within the mission sequence. 
Thruster_ThrustPolynomial_Cmd.tc 
Tests setting of some of the thruster parameters within the mission sequence. 
*validation*.tc 
Validation type tests. There are 274 tests of this type. 
Thruster_FullPoly_EarthSat_EarthProp_EarthThruster*.tc 
Tests thrust full (most coefficients have nonzero values) polynomial case using both inertial and local noninertial coordinate systems. There are 6 tests of this type. 2 of the 6 have ‘cmd’ in their file name. 4 of the 6 files have either ‘VNB’ or ‘LVLH’ in their name. 
*VNB*.tc 
Tests various implementations of the VNB coordinate system. There are 6 files of this type. None of the files have ‘cmd’ in their names. There is one file that overlaps with tests of type, Thruster_FullPoly_EarthSat_EarthProp_EarthThruster*.tc 
*LVLH*.tc 
Tests various implementations of the LVLH coordinate system. There are 3 files of this type. 2 of the 3 files have ‘cmd’ in their name. There are three files that overlaps with tests of type, Thruster_FullPoly_EarthSat_EarthProp_EarthThruster*.tc 
According to the table above, with overlap, there are
902 + 1 + 1 + 274 + 6 + 6 +3 = 1193
files accounted for. Since there are 4 files that overlap test categories, overall there are
1193  4 = 1189
files of the form *.tc which agrees with the known number of test cases.
Recommended Additional Tests
● Added ‘local’ version of LVLH test, Thruster_FullPoly_EarthSat_EarthProp_EarthThruster_LocalLVLH, to test that bug, GMT2860 , LVLH Definition, gets fixed.
● Added tests for bug, GMT2347 .
○ Thruster_Finite_Burn_Permutations_Separate_Propagators
○ Thruster_Finite_Burn_Permutations_Separate_Propagators_LVLH
○ Thruster_Finite_Burn_Permutations_Separate_Propagators_VNB
○ See FiniteBurn feature spec for additional details.
Unique Mode Tests
Test Name 
Summary 
Thruster_FullPoly_EarthSat_EarthProp_EarthThruster_UserLVLH_Cmd3 
Test setting a thruster with user defined Local coordinate system with all fields nondefault and set in command mode (before the BeginFiniteBurn command)
In resource mode, Thruster1.Tank is not set. Then, in command mode, the script sets “DefaultSC.Thruster1.Tank = {FuelTank1};”
Note that this test currently has errors in it related to bug, GMT2803 .
(Note that tests Thruster_FullPoly_EarthSat_EarthProp_EarthThruster_UserLVLH_Cmd.script and Thruster_FullPoly_EarthSat_EarthProp_EarthThruster_UserLVLH_Cmd2.script test setting of thruster parameters after the BeginFiniteBurn command.) 
Thruster_FullPoly_EarthSat_EarthProp_EarthThruster_UserLVLH_Cmd4 
A Finite Burn and all of its subobjects, to the extent GMAT allows, are created (via assignment) in command mode.
Note that this test currently has errors in it related to bugs, GMT2803 and GMT2686 . 
Appendix A  Miscellaneous Data
Note that this data is primarily for the internal use of the feature lead. It does not need to be reviewed by the SDE and STE.
Maneuver Test Object Definitions
Spacecraft Definitions
ScA is the Baseline spacecraft with the following definition
Sc.CentralBody = Planet;
'//State information';
'Sc.Epoch = 21545.000000000;'
'//Physical Information';
'Sc.VehicleDryMass = 850;'
'Sc.Cd = 2.2;'
'Sc.Cr = 1.8;'
'Sc.DragArea = 15;'
'Sc.SRPArea = 1;'
'//Attitude';
'Sc.AttitudeRefFrame = ''MJ2000Eq'';'
'Sc.Q1 = 0;'
'Sc.Q2 = 0;'
'Sc.Q3 = 0;'
'Sc.Q4 = 1;'
ScB has drymass increased to 1000kg
ScC has a lower Cd value and should not change the script in any way because drag is not modeled
ScD has a lower Cr and should also not affect the output of the scripts due to not being modeled
ScE has a higher drag area and should not affect the output due to not being modeled
ScF has Sc.Q1 as the main direction of the attitude
ScG has Sc.Q2
ScH has Sc.Q3
ScI has higher SRP area and should never affect the outcome of the results
Posts: 26
Joined: Tue May 12, 2009 5:02 pm
Re: Maneuver Test Object Definitions
by JTichy » Thu Oct 08, 2009 3:38 pm
Tank Definitions
TankA being the baseline tank with the following values
'// Tank A Baseline Tank';
'TankA.TankMass = 725;'
'TankA.TankPressure = 1200;'
'TankA.TankTemperature = 20;'
'TankA.TankRefTemperature= 12;'
'TankA.TankVolume = 0.8;'
'TankA.TankFuelDensity = 1029;'
'TankA.TankPressureControl = 1;'
TankB has the tank filled at Maximum Capacity for the given parameters where Tank Mass = 820
TankC has ultra high pressure of 2500
TankD has lower pressure of 725
TankE has extremely high temp of 200
TankF has a low temperature of 2
TankG has a high ref temp of 100
TankH has a low ref temp of 2
TankI has a large tank Volume = 80
TankJ has a low fuel density and altered tank volume to compensate
TankK has extremely high fuel density 2500
L  V are same as above except with Blowdown modeled for pressure regulation
Posts: 26
Joined: Tue May 12, 2009 5:02 pm
Re: Maneuver Test Object Definitions
by JTichy » Tue Oct 13, 2009 9:30 am
Thruster Definitions
Thruster A is the chosen baseline thruster and has the following definition
ThrusterA.CoordinateSystem = ',CoordSys,'
ThrusterA.Origin = ',Planet,'
ThrusterA.Axes = 'AxesCode'
ThrusterA.Element1 = 1
ThrusterA.Element2 = 0
ThrusterA.Element3 = 0
ThrusterA.DutyCycle = 1
ThrusterA.ThrustScaleFactor = 1
ThrusterA.DecrementMass = true
ThrusterA.Tank = {'tanksin'}
ThrusterA.GravitationalAccel = 9.81
ThrusterA.C1 = 10
ThrusterA.C2 = 0.25
ThrusterA.C3 = 0.25
ThrusterA.C4 = 0
ThrusterA.C5 = 0
ThrusterA.C6 = 0
ThrusterA.C7 = 0
ThrusterA.C8 = 0
ThrusterA.C9 = 0
ThrusterA.C10 = 0
ThrusterA.C11 = 0
ThrusterA.C12 = 0
ThrusterA.C13 = 0
ThrusterA.C14 = 0
ThrusterA.C15 = 0
ThrusterA.C16 = 0
ThrusterA.K1 = 300
ThrusterA.K2 = 0.25
ThrusterA.K3 = 0.25
ThrusterA.K4 = 0
ThrusterA.K5 = 0
ThrusterA.K6 = 0
ThrusterA.K7 = 0
ThrusterA.K8 = 0
ThrusterA.K9 = 0
ThrusterA.K10 = 0
ThrusterA.K11 = 0
ThrusterA.K12 = 0
ThrusterA.K13 = 0
ThrusterA.K14 = 0
ThrusterA.K15 = 0
ThrusterA.K16 = 0
Thruster B has its direction equally spaced in all directions of the coordinate system where X = Y = Z = 0.5774
Thruster C has a low duty cycle of 0.1
Thruster D has a low thrust scale factor of 0.1
Thruster E has an alternate g_accel of 12.14
Thruster F has a loaded thruster polynomial which evaluates to 10 Newtons when coupled with Tank A
Thruster G has a loaded Isp polynomial which evaluates to 300 seconds when coupled with Tank A
Thruster H has decrement mass turned off
Posts: 26
Joined: Tue May 12, 2009 5:02 pm
Re: Maneuver Test Object Definitions
by JTichy » Tue Oct 13, 2009 9:35 am
Coordinate Systems
CS0 is Mean of J2000 Equatorial
CS1 is VNB
CS2 is LVLH where X_GMAT = Z_FreeFlyer; Y_GMAT = Y_FreeFlyer; Z_GMAT = X_FreeFlyer
CS3 is Spacecraft Body Coordinate System
CS4 is a custom defined VNB frame and compared against FreeFlyers regular VNB for accuracy (CS1 and CS4 scripts should produce the same output)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
GMAT Math Specs for Thruster/ISP Polynomials
STK GUI Screen Snaps:
Figure 5 Spacecraft Properties
Pressure in Pascals (Pa), Thrust in Newtons, ISP in seconds, and temperature in Kelvin.
Figure 6 Thruster Set
Debug for failed Jupiter Finite Burn Test
(script) [pos err 8522.603141 vel err 4.498468]
Nominal Run
21545.08333333331
85987.44383001328 978.8880323171616 1351.944258376956 1.876453212516790 37.65341582396383 0.04798928120244650 1195.548930877457
(Centigrade based STK run)
UTC Gregorian Date: 1 Jan 2000 13:59:28.000 UTC Julian Date: 2451545.08296296
Julian Ephemeris Date: 2451545.08370583
Time past epoch: 2.36556e+008 sec (Epoch in UTC Gregorian Date: 1 Jul 2007 12:00:00.000)
State Vector in Coordinate System: Jupiter J2000
Parameter Set Type: Cartesian
X: 85987.4438245704220000 km Vx: 1.8764532616858187 km/sec
Y: 978.8881391900940800 km Vy: 37.6534158229148660 km/sec
Z: 1351.9442585261631000 km Vz: 0.0479892808382937 km/sec
Userselected results:
FuelMass = 345.5489307271257100 kg
Total Mass = 1195.5489307271257000 kg
Tank Pressure = 1200000.0000000000000000 Pa
Fuel Density = 1029.0000000000000000 kg/m^3
Tank Temperature = 20.0000000000000000 K
(Kelvin based STK run)
UTC Gregorian Date: 1 Jan 2000 13:59:28.000 UTC Julian Date: 2451545.08296296
Julian Ephemeris Date: 2451545.08370583
Time past epoch: 2.36556e+008 sec (Epoch in UTC Gregorian Date: 1 Jul 2007 12:00:00.000)
State Vector in Coordinate System: Jupiter J2000
Parameter Set Type: Cartesian
X: 85987.2454373437210000 km Vx: 1.8771577185583948 km/sec
Y: 982.2204760655230300 km Vy: 37.6538138369494820 km/sec
Z: 1351.1705734848936000 km Vz: 0.0479371003813321 km/sec
Userselected results:
FuelMass = 345.6432169125477000 kg
Total Mass = 1195.6432169125478000 kg
Tank Pressure = 1200000.0000000000000000 Pa
Fuel Density = 1029.0000000000000000 kg/m^3
Tank Temperature = 293.1499999999999800 K
About a 3.5 km discrepancy.
Straight Propagation (No Thrust):
21545.08333333330
85489.42073893547 7181.607058167458 0.0000000000000000 3.217159684548602 38.29684526726827 0.0000000000000000 1575.000000000000
UTC Gregorian Date: 1 Jan 2000 13:59:28.000 UTC Julian Date: 2451545.08296296
Julian Ephemeris Date: 2451545.08370583
Time past epoch: 2.36556e+008 sec (Epoch in UTC Gregorian Date: 1 Jul 2007 12:00:00.000)
State Vector in Coordinate System: Jupiter J2000
Parameter Set Type: Cartesian
X: 85489.4207262808490000 km Vx: 3.2171597497932742 km/sec
Y: 7181.6072038798366000 km Vy: 38.2968452619012820 km/sec
Z: 0.0000000068757399 km Vz: 0.0000000000002947 km/sec
Constant Thrust (specified in Inertial Coordinates) with No Fuel Use
GMAT Thrust Coeffs. C3 = 10. All else zero. T=20 C, Tref=12 C
21545.08333333337
85524.48178386688 6870.966706275940 60.92506556212902 3.145347044329554 38.27010352128976 0.001094555119883545 1575.000000000000
Parameter Set Type: Cartesian
X: 85524.4817921808570000 km Vx: 3.1453469992281797 km/sec
Y: 6870.9666055511270000 km Vy: 38.2701035248287840 km/sec
Z: 60.9250655009385870 km Vz: 0.0010945550880588 km/sec
UTC Gregorian Date: 1 Jan 2000 13:59:28.000 UTC Julian Date: 2451545.08296296
Julian Ephemeris Date: 2451545.08370583
Time past epoch: 2.36556e+008 sec (Epoch in UTC Gregorian Date: 1 Jul 2007 12:00:00.000)
State Vector in Coordinate System: Jupiter J2000
Parameter Set Type: Cartesian
X: 85511.0723581869100000 km Vx: 3.1729030891762013 km/sec
Y: 6990.0533682854930000 km Vy: 38.2804015630078280 km/sec
Z: 37.5466960361262570 km Vz: 0.0006863103835968 km/sec
Userselected results:
FuelMass = 725.0000000000000000 kg
Total Mass = 1575.0000000000000000 kg
Tank Pressure = 1200000.0000000000000000 Pa
Fuel Density = 1029.0000000000000000 kg/m^3
Tank Temperature = 293.1499999999999800 K
Fuel Used = 0.0000000000000000 kg
SubCase: GMAT Thrust Coeffs. C1 = 10. All else zero. T=20 C, Tref=12, No Fuel use
21545.08333333335 85510.48253726959 6995.283471107483 36.52060620486736 3.174112590219806 38.28085250355709 0.0006680568559449540 1575.000000000000
SubCase: GMAT Thrust Coeffs. C3 = 10. All else zero. T=20 C, Tref=20 C
21545.08333333335
85510.48253726959 6995.283471107483 36.52060620486736 3.174112590219806 38.28085250355709 0.0006680568559449540 1575.000000000000
UTC Gregorian Date: 1 Jan 2000 13:59:28.000 UTC Julian Date: 2451545.08296296
Julian Ephemeris Date: 2451545.08370583
Time past epoch: 2.36556e+008 sec (Epoch in UTC Gregorian Date: 1 Jul 2007 12:00:00.000)
State Vector in Coordinate System: Jupiter J2000
Parameter Set Type: Cartesian
X: 85510.4825470744840000 km Vx: 3.1741125478760748 km/sec
Y: 6995.2833774545306000 km Vy: 38.2808525064508630 km/sec
Z: 36.5206061386459240 km Vz: 0.0006680568446882 km/sec
Userselected results:
FuelMass = 725.0000000000000000 kg
Total Mass = 1575.0000000000000000 kg
Tank Pressure = 1200000.0000000000000000 Pa
Fuel Density = 1029.0000000000000000 kg/m^3
Tank Temperature = 293.1499999999999800 K
Fuel Used = 0.0000000000000000 kg
Constant Thrust (specified in Inertial Coordinates) with No Fuel Use, T=Tref
GMAT Thrust Coeffs. C1 = 10. All else zero. T=20 C, Tref=20 C
21545.08333333335
85510.48253726959 6995.283471107483 36.52060620486736 3.174112590219806 38.28085250355709 0.0006680568559449540 1575.000000000000
UTC Gregorian Date: 1 Jan 2000 13:59:28.000 UTC Julian Date: 2451545.08296296
Julian Ephemeris Date: 2451545.08370583
Time past epoch: 2.36556e+008 sec (Epoch in UTC Gregorian Date: 1 Jul 2007 12:00:00.000)
State Vector in Coordinate System: Jupiter J2000
Parameter Set Type: Cartesian
X: 85510.4825470744840000 km Vx: 3.1741125478760748 km/sec
Y: 6995.2833774545306000 km Vy: 38.2808525064508630 km/sec
Z: 36.5206061386459240 km Vz: 0.0006680568446882 km/sec
FuelMass = 725.0000000000000000 kg
Total Mass = 1575.0000000000000000 kg
Tank Pressure = 1200000.0000000000000000 Pa
Fuel Density = 1029.0000000000000000 kg/m^3
Tank Temperature = 293.1499999999999800 K
Fuel Used = 0.0000000000000000 kg
Debug for Thruster_FBurn_Luna_ScA_ThrusterB_CS3_TankA
Thruster_FBurn_Luna_ScA_ThrusterB_CS3_TankA (script) [pos err 3849.515704 vel err 5.130226]
GMAT result
21545.08333333317
1115.901943946548 152.8110271362239 1122.182537949309 1.461183600019574 1.003501560874980 0.3661582497119985 1195.548930707364
GMAT result (straight propagation)
21545.08333333317
1143.521101288206 1744.387460649945 0.0000000000000000 1.282226027989495 0.8404762255579459 0.0000000000000000 1575.000000000000
STK
UTC Gregorian Date: 1 Jan 2000 13:59:28.000 UTC Julian Date: 2451545.08296296
Julian Ephemeris Date: 2451545.08370583
Time past epoch: 2.36556e+008 sec (Epoch in UTC Gregorian Date: 1 Jul 2007 12:00:00.000)
State Vector in Coordinate System: Moon J2000
Parameter Set Type: Cartesian
X: 1115.9019444568105000 km Vx: 1.4611835994859952 km/sec
Y: 152.8110274898127400 km Vy: 1.0035015608600095 km/sec
Z: 1122.1825380858934000 km Vz: 0.3661582492862025 km/sec
STK Propagate Only
UTC Gregorian Date: 1 Jan 2000 13:59:28.000 UTC Julian Date: 2451545.08296296
Julian Ephemeris Date: 2451545.08370583
Time past epoch: 2.36556e+008 sec (Epoch in UTC Gregorian Date: 1 Jul 2007 12:00:00.000)
State Vector in Coordinate System: Moon J2000
Parameter Set Type: Cartesian
X: 1143.5211019071075000 km Vx: 1.2822260276920656 km/sec
Y: 1744.3874602421186000 km Vy: 0.8404762260138006 km/sec
Z: 0.0000000019049039 km Vz: 0.0000000000021366 km/sec
Screen Snap of FRR9 Requirements
NOTES
1 There are a number of *.tc files with names such as Thruster#Thruster# in them. I suspect that these files are not used. (They may have been used for tests of simultaneous finite burn scripts that were deleted. Steve H. says it was decided that GMAT would not allow more than one finite burn to occur at the same time). Time permitting; the unused files should be removed from the repository.
2 The Math specs incorrectly list the pressure units for the Thrust/ISP polynomials as Pascal. The units are in kPa.
3 Time permitting, change test, Thruster_Finite_Burn_Permutations_Separate_Propagators. Replace MarsSat by MoonSat, marsprop by moonprop, and mars FB by moon FB. A global replace of Mars to Moon might work. Then manually, put in the Moon initial state. Mars tests are covered elsewhere.
4 Time permitting, Test setting a thruster with builtin coordinate system (e.g., J2000 or LocalLVLH) with all fields nondefault and set in command mode. (Similar to Thruster_FullPoly_EarthSat_EarthProp_EarthThruster_UserLVLH_Cmd3)