ImpulsiveBurn

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:

NOTES

 

Explore

 

 

 

 

 

 

Known bugs/issues committed in JIRA against this feature:

 

JIRA ID

Summary

Comment

GMT-2674

Report Command Does Not Get New Name for Renamed Impulsive burn Objects.

Closed 7/2/12 by anonymous. 

GMT-2615

User allowed to delete Impulsive Burn being used by Report command

Closed 7/19/12. 

GMT-399

Review To/FromMJ2000Eq uses

Still open as of 11/27/12, assigned to SPH. 

 

 

 

 

Note that GMT-2589 is the ImpulsiveBurn QA task (not a bug).  

 

Failing Tests

All the ImpulsiveBurn test names begin with either IBurn or ImpulsiveBurn. 

 

Run Identification:  [Gmat-buildtest] Test results: 2012-06-18 (Win7-64/GMAT-32/M2010a/VS)

 

These tests run to completion but fail:

 

                          ImpulsiveBurn_Validation_Isp_7 (script) [no error or exception]

Comments/Actions Taken: 

      ImpulsiveBurn_Validation_Isp_7.script:

%--- Initialize objects and user-defined quantities

Create ImpulsiveBurn ImpulsiveBurn1

Create Variable var

Create String str

Create Array arr[3,3]

var = 5

str = 'myStr'

arr(2,1) = 3

ImpulsiveBurn1.Isp = 0;

BeginMissionSequence

     ISP is allowed to be zero according to GUI error message.  Change ISP value to -1 in the GMAT script.  Test now passes.  (i.e., error message received).   

 

                          ImpulsiveBurn_Validation_GravitationalAccel_7 (script) [no error or exception]

Comments/Actions Taken: 

      ImpulsiveBurn_Validation_GravitationalAccel_7.script:

              %--- Initialize objects and user-defined quantities

Create ImpulsiveBurn ImpulsiveBurn1

Create Variable var

Create String str

Create Array arr[3,3]

var = 5

str = 'myStr'

arr(2,1) = 3

ImpulsiveBurn1.GravitationalAccel = 0;

BeginMissionSequence

      GravitationalAccel is not allowed to be 0 or negative.  In GUI, this restriction is implemented but not in the script.  Submitted bug,  GMT-2865 which was closed 11/27/12. 

 

 

Other Findings

 

Submitted bug, GMT-2860 , LVLH Definition.  Resolution:  Closed 8/16/12. 

 

Submitted bug,  GMT-2865 , Validation fails for ImpulsiveBurn GravitationalAccel field.  Resolution:  Closed 11/27/12.

 

Submitted bug, GMT-2908 , Issue with Decrement Mass for Impulsive Maneuver .  Resolution:  Closed 8/16/12.

 

Recommendations/Questions

1         In the GUI display, should ThrustDirection1,2,3 be replaced by Element1,2,3?  If so, change ToolTips accordingly as well.  (Replace thrust by DeltaV). 

a         Update 11/27/12.  ThrustDirection has been replaced by Element.  Should “Thrust Vector” be replaced by “Delta-V Vector?”   If so, change tool tips as well.  Submitted bug, GMT-3409, Suggested changes to Impulsive Burn GUI panel

2         See two questions on FRR-11.4.1 in the Requirements section.  

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-11.1.0

The impulsive burn model shall allow the user to define the maneuver vector in the following coordinate systems:

FRR-11.1.1

1)                 Any coordinate system defined in FRR-35

FRR-11.1.2.0

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

FRR-11.1.2.1

                      1)                 Local VNB

FRR-11.1.2.2

                      2)               LVLH,                  

FRR-11.1.2.3

                      3)               MJ 2000Eq

FRR-11.1.2.4

           4)                 Spacecraft body coordinate system

FRR-11.2.0

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

FRR-11.2.1

1)                 Cartesian

FRR-11.3

The impulsive burn model shall allow the user to either decrement mass during a maneuver or leave mass unchanged.

FRR-11.4.0

The impulsive burn model shall allow the user to specify the following parameters for use in calculating mass depletion due to an impulsive burn:

FRR-11.4.1

1)                 Gravitational acceleration

FRR-11.4.2

2)                 Isp

FRR-11.4.3

3)                 Tank

Interface/Functional Spec

Overview

An impulsive maneuver. 

Description

The impulsive burn object allows the spacecraft to undergo an instantaneous Delta-v (ΔV), as opposed to a finite burn which is not instantaneous, by specifying the three vector components of the delta-v.  The user can configure the burn by defining its coordinate system and vector component values.  For Local coordinate systems, the user can choose the origin and type of axes.  Depending on the mission, it may be simpler to use one coordinate system over another. 

Fields

See the User Interface Spec spreadsheet for reference information for fields.  

GUI

Introduction

 

The ImpulsiveBurn dialog box allows you to specify properties of an impulsive burn including Delta-V component values and choice of coordinate system.  If you choose to model fuel loss associated with an impulsive burn, you must specify choice of fuel tank as well as ISP value and gravitational acceleration used to calculate fuel use. The layout of the ImpulsiveBurn dialog box is shown below.

 

 

 

The “Origin” and “Axes” fields are only relevant if “Coordinate System” is set to Local.   See the Remarks for more detail on local coordinate systems. 

 

If “Decrement Mass” is checked, then you can select the desired FuelTank used as the fuel supply for mass depletion. 

Remarks

 

Local Coordinate Systems

 

Here, a Local coordinate system is defined as one that we configure "locally" using the thruster object interface as opposed to defining a coordinate system using the Coordinate Systems folder in the Resources Tree. 

 

To configure a Local coordinate system, you must specify the coordinate system of the input Delta-V vector, Element1-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 points away from the Earth as much as possible while remaining orthogonal to the other two axes, completing the right-handed set. 

 

Similarly, Local Vertical Local Horizontal or LVLH is a non-inertial coordinate system based upon the motion of the spacecraft with respect to the body specified in the Origin sub-field.  If you choose Earth as the origin, then the X-axis of this coordinate system points from the center of the Earth to the spacecraft, the Z-axis is along the instantaneous orbit normal (with respect to the Earth) of the spacecraft, and the Y-axis completes the right-handed set.  For typical bound orbits, the Y-axis is approximately aligned with the velocity vector.  In the event of a perfectly circular orbit, the Y axis is exactly along the velocity vector. 

 

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 coordinate system used by 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.

 

 

Interactions

                     

Spacecraft resource

Must be created in order to apply any burn.

FuelTank resource

If you want to model mass depletion for an impulsive maneuver, attach a FuelTank to the maneuvered spacecraft as a source of fuel mass.

Maneuver command 

Must use the Maneuver command to apply an impulsive burn to a spacecraft. 

Vary command  

If user wants to allow the impulsive burn components to vary in order to achieve some goal, then the Vary command, as part of a Target or Optimize command sequence, must be used. 

 

Examples

 

Create a default FuelTank and an ImpulsiveBurn that allows for fuel depletion, assign the ImpulsiveBurn the default FuelTank, attach the FuelTank to a Spacecraft, and apply the ImpulsiveBurn to the 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 ImpulsiveBurn DefaultIB;

GMAT DefaultIB.CoordinateSystem = Local;

GMAT DefaultIB.Origin = Earth;

GMAT DefaultIB.Axes = VNB;

GMAT DefaultIB.Element1 = 0.001;

GMAT DefaultIB.Element2 = 0;

GMAT DefaultIB.Element3 = 0;

GMAT DefaultIB.DecrementMass = true;

GMAT DefaultIB.Tank = {FuelTank1};

GMAT DefaultIB.Isp = 300;

GMAT DefaultIB.GravitationalAccel = 9.810000000000001;

 

%  Add the the FuelTank to a Spacecraft

GMAT Create Spacecraft DefaultSC;

GMAT DefaultSC.Tanks = {FuelTank1};

 

 

BeginMissionSequence

Maneuver DefaultIB(DefaultSC);

 

Test Procedures

Assumptions

None.

Existing Tests

There are 785 files of the form *.tc. 

 

Test Name

Description

IBurn*_Sc*_IB*_CS*_Tank*.tc

 

 

The file name specifies the central body used for integration, the spacecraft, impulsive burn configuration, coordinate system, and Tank configuration according to the forum entry by JTichy .  There are 728 *.tc files of this type.  Eight of the 728 file names of this type have the form, IBurn*_Sc*_IB*_CS*_Tank*cmd*.tc  which means that they test commands in the mission sequence. 

*validation*.tc

Validation type tests.  There are 57 tests of this type. 

 

 

According to the table above, there are

728 + 57 = 785

files accounted for which agrees with the known number of test cases. 

Recommended Additional Tests

1         Added tests of local (LVLH and VNB, both default and user defined) coordinate systems.  Quantities varied are (a)  Origin used to input initial state and (b)  Body used to define LVLH and VNB.

      IBurn_Impulsive_Burn_Permutations_LVLH

      IBurn_Impulsive_Burn_Permutations_VNB

             

 

Unique Validation

Test Name

Summary

ImpulsiveBurn_Validation_Tank_Attachment

Test ImpulsiveBurn DecrementMass = true when no tank is added to the s/c. Clear error message should be thrown. Will verify bug, GMT-2908 , Issue with Decrement Mass for Impulsive Maneuver , is fixed. 

ImpulsiveBurn_Validation_Tank_Attachment_1

Test ImpulsiveBurn DecrementMass = true when no tank is added to ImpulsiveBurn. Clear error message should be thrown.  (tank is attached to s/c).  Test currently passes. 

ImpulsiveBurn_Validation_Tank_Attachment_2

Test ImpulsiveBurn DecrementMass = true when no tank is added to ImpulsiveBurn. Clear error message should be thrown.  (tank is not attached to s/c).  Test currently passes. 

 

 

 

 

Unique Mode Tests

Test Name

Summary

IBurn_Mars_ScA_IBF_CS4_TankA_cmd

Impulsive Burn and associated sub-objects, all with non-default values, are created in command mode. 

 

Test currently fails.  ( Sc.TankA.PressureModel = PressureRegulated ; command is the issue)

 

 

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:

 

 

Pressure in Pascals (Pa), Thrust in Newtons, ISP in seconds, and temperature in Kelvin.  

 

 

 

NOTES

1         Error below only gets caught at run time:  

                     Report rf  SC.garbage.X