Test Procedures

advertisement
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
2)
Local systems based on a user-
FRR-35
FRR-11.1.2.0
provided central body
FRR-11.1.2.1
1)
Local VNB
FRR-11.1.2.2
2)
LVLH,
FRR-11.1.2.3
3)
MJ2000Eq
4)
Spacecraft body coordinate
FRR-11.1.2.4
system
FRR-11.2.0
FRR-11.2.1
The impulsive burn model shall allow the user to specify the
thrust vector using the following vector formats:
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 DeltaV 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 DeltaV 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 VelocityNormal-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 Zaxis 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_Attach Test ImpulsiveBurn DecrementMass = true when no
ment
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_Attach Test ImpulsiveBurn DecrementMass = true when no
ment_1
tank is added to ImpulsiveBurn. Clear error message
should be thrown. (tank is attached to s/c). Test
currently passes.
ImpulsiveBurn_Validation_Tank_Attach Test ImpulsiveBurn DecrementMass = true when no
ment_2
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
Download