Requirements

advertisement
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 Issue traced to errors
may be due to script differences
(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_EarthP
rop_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_EarthP
rop_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 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 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, Inconsistency 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 FRR35.
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:
tables.
This text should be placed prior to C1 in the user’s guide
The constants Ci below are used in the following equation to calculate thrust (in Newtons), FT, 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, FT, 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-NormalBinormal 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
FuelTank
FiniteBurn
Spacecraft
These commands use the FuelTank and the Thruster to
start a FiniteBurn (i.e., when the delta V is not
instantaneous.)
This object contains the fuel used to power the Thruster and
implement the FiniteBurn.
This takes the parameters of the FuelTank and the Thruster
and creates an associated finite burn.
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
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
GMAT
Thruster1.Origin = Earth;
Thruster1.Axes = VNB;
Thruster1.ThrustDirection1 = 1;
Thruster1.ThrustDirection2 = 0;
Thruster1.ThrustDirection3 = 0;
Thruster1.DutyCycle = 1;
Thruster1.ThrustScaleFactor = 1;
Thruster1.DecrementMass = true;
Thruster1.Tank = {FuelTank1};
Thruster1.GravitationalAccel = 9.810000000000001;
Thruster1.C1 = 10;
Thruster1.C2 = 0;
Thruster1.C3 = 0;
Thruster1.C4 = 0;
Thruster1.C5 = 0;
Thruster1.C6 = 0;
Thruster1.C7 = 0;
Thruster1.C8 = 0;
Thruster1.C9 = 0;
Thruster1.C10 = 0;
Thruster1.C11 = 0;
Thruster1.C12 = 0;
Thruster1.C13 = 0;
Thruster1.C14 = 0;
Thruster1.C15 = 0;
Thruster1.C16 = 0;
Thruster1.K1 = 300;
Thruster1.K2 = 0;
Thruster1.K3 = 0;
Thruster1.K4 = 0;
Thruster1.K5 = 0;
Thruster1.K6 = 0;
Thruster1.K7 = 0;
Thruster1.K8 = 0;
Thruster1.K9 = 0;
Thruster1.K10 = 0;
Thruster1.K11 = 0;
Thruster1.K12 = 0;
Thruster1.K13 = 0;
Thruster1.K14 = 0;
Thruster1.K15 = 0;
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_Earth
Prop_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_EarthThru
ster*.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_EarthThrust
er*.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, 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_Earth Test setting a thruster with user defined Local coordinate
Prop_EarthThruster_UserLVLH_C system with all fields non-default and set in command mode
md3
(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_Use
rLVLH_Cmd.script and
Thruster_FullPoly_EarthSat_EarthProp_EarthThruster_Use
rLVLH_Cmd2.script test setting of thruster parameters after
the BeginFiniteBurn command.)
Thruster_FullPoly_EarthSat_Earth A Finite Burn and all of its sub-objects, to the extent GMAT
Prop_EarthThruster_UserLVLH_C allows, are created (via assignment) in command mode.
md4
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
3.217159684548602
1575.000000000000
-7181.607058167458
-38.29684526726827
0.0000000000000000
0.0000000000000000
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
36.52060620486736
0.0006680568559449540
-85510.48253726959
3.174112590219806
1575.000000000000
-6995.283471107483
-38.28085250355709
SubCase: GMAT Thrust Coeffs. C3 = 10. All else zero. T=20 C, Tref=20 C
21545.08333333335
-85510.48253726959
3.174112590219806
1575.000000000000
-6995.283471107483
-38.28085250355709
36.52060620486736
-0.0006680568559449540
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
3.174112590219806
1575.000000000000
-6995.283471107483
-38.28085250355709
36.52060620486736
-0.0006680568559449540
-
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
2
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.
The Math specs incorrectly list the pressure units for the Thrust/ISP polynomials as Pascal.
The units are in kPa.
3
4
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.
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)
Download