Thruster Model

Feature Spec and Test Procedures

Lead:  Steve C

Developer:  Darrel

STE/GUI Tester:  Shawn

 

Explore

Failing Tests

Other Findings

Requirements

Interface/Functional Spec

Overview

Description

Fields

GUI

Remarks

Examples

Test Procedures

Assumptions

Existing Tests

Recommended Additional Tests

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

STK  GUI Screen Snaps:

Debug for failed Jupiter Finite Burn Test

Debug for Thruster_FBurn_Luna_ScA_ThrusterB_CS3_TankA

Screen Snap of FRR-9 Requirements

NOTES

 

Explore

 

-See Requirement below:

 

FRR-9.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 re-worded??

 

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:

 

JIRA ID

Summary

Comment

GMT-2238

Finite Burn/Thruster Tests Have errors > 1000 km but may be due to script differences

Issue traced to errors (now fixed) in the truth data. As a secondary note, the truth data needs to reflect fact that the thruster temperature ratio uses Centigrade temperature units.  Issue closed. 

GMT-2367

Finite Burn Command Executes Even When No Thruster Is Assigned to Finite Burn Object

Issue still open. 

GMT-2001

Thruster does not validate several fields correctly

Issue still open. 

GMT-1439

Parameter design for multiple dependency

Issue still open. 

GMT-399

Review To/FromMJ2000Eq uses

Issue still open. 

 

Note that GMT-2588 is the Thruster QA task (not a bug).  

 

Failing Tests

(Run Identification:  [Gmat-buildtest] Test results: 2012-05-14 (Win7-64/GMAT-32/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 GMT-2803 .  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, GMT-2860 for some questions on the LVLH definition. Changed the LVLH definition in the script to match definition given in GMT-2860. 

      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 validation-type *.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 GMT-2837 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 1e-12 to 1e-14.  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, GMT-2001

 

 

Other Findings

 

Submitted bug report, GMT-2802 , I nconsistency in Tank Pressure Units .   

 

Submitted bug report, GMT-2803 , Error when setting thruster coordinate system in command mode.

 

Submitted bug report, GMT-2837 , Divide by Zero - Thrust/ISP polynomials when Reference Temperature set to zero degrees Centigrade.

 

Submitted bug report, GMT-2860 , 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, GMT-2915 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

FRR-9.1.0

The system shall allow the user to create and configure spacecraft thrusters of the following types:

FRR-9.1.1

1) Chemical thruster

FRR-9.2.0

The thruster model shall allow the user to define the thrust vector in the following coordinate systems:

FRR-9.2.1

1) Any coordinate system defined in FRR-35.

FRR-9.2.2.0

2) Local systems based on a user-provided central body

FRR-9.2.2.1

1) Local VNB

FRR-9.2.2.2

2) Local LVLH

FRR-9.2.2.3

3) MJ2000

FRR-9.2.3

3) Spacecraft body coordinate system.

FRR-9.3.0

The thruster model shall allow the user to specify the thrust vector using the following vector formats:

FRR-9.3.1

1) Cartesian components

FRR-9.4.0

The thruster model shall allow the user to configure the following thruster properties:

FRR-9.4.1

1) Thrust duty cycle that scales the thrust and mass flow rate

FRR-9.4.2

2) Thrust scale factor that scales the thrust vector

FRR-9.4.3

3) Gravity coefficient to decrement mass used for an impulsive maneuver

FRR-9.4.4

4) Tank that supplies fuel to the thruster

FRR-9.4.5

5) Polynomial to define lsp dependency on tank temperature and pressure

FRR-9.4.6

6) Polynomial to define thrust magnitude on tank temperature and pressure

FRR-9.5

The thruster model shall allow the user to optionally decrement tank mass during a maneuver.

FRR-9.6

For a finite maneuver, if the user has chosen to decrement tank mass (FRR-9.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 ThrustDirection1-3 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, ThrustDirection1-3.  If you choose a local coordinate system, the four choices available, as given by the Axes sub-field, are VNB, LVLH, MJ2000Eq, and SpacecraftBody.  VNB or Velocity-Normal-Binormal is a non-inertial coordinate system based upon the motion of the spacecraft with respect to the Origin sub-field.  For example, if the Origin is chosen as Earth, then the X-axis of this coordinate system is the along the velocity of the spacecraft with respect to the Earth, the Y-axis is along the instantaneous orbit normal (with respect to the Earth) of the spacecraft, and the Z-axis completes the right-handed set. 

 

Similarly, Local Vertical Local Horizontal or LVLH is also a non-inertial coordinate system based upon the motion of the spacecraft with respect to the Origin sub-field.  Again, if we choose Earth as the origin, then the X-axis of this coordinate system is the position of the spacecraft with respect to the Earth, the Z-axis is the instantaneous orbit normal (with respect to the Earth) of the spacecraft, and the Y-axis completes the right-handed set.

 

MJ2000Eq is the J2000-based Earth-centered Earth mean equator inertial coordinate system.  Note that the Origin sub-field 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 sub-field 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 non-zero values) polynomial case using both inertial and local non-inertial 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,  GMT-2860 , LVLH Definition, gets fixed.  

      Added tests for bug, GMT-2347

      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 non-default 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, GMT-2803

 

(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 sub-objects, to the extent GMAT allows, are created (via assignment) in command mode.

 

Note that this test currently has errors in it related to bugs, GMT-2803 and GMT-2686 .  

 

 

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

JTichy

Posts: 26

Joined: Tue May 12, 2009 5:02 pm

Top

 

 

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

JTichy

Posts: 26

Joined: Tue May 12, 2009 5:02 pm

Top

 

 

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

JTichy

Posts: 26

Joined: Tue May 12, 2009 5:02 pm

Top

 

 

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

 

User-selected 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

 

User-selected 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

 

User-selected 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

 

User-selected 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 FRR-9 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 built-in coordinate system (e.g., J2000 or LocalLVLH) with all fields non-default and set in command mode.  (Similar to Thruster_FullPoly_EarthSat_EarthProp_EarthThruster_UserLVLH_Cmd3)