FRR-12 FiniteBurn

advertisement
FiniteBurn
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
Interactions
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-1736
Finite burns for Simultaneous Propagations
This is a P3 bug with
No Fix version. No
further action required.
GMT-2367
Finite Burn Command Executes Even When
No Thruster Is Assigned to Finite Burn Object
New test,
FiniteBurn_Validation_
FiniteBurn_With_No_
Attached_Thruster.scri
pt, added which
should pass when this
bug fixed.
Update 11/26/12:
Truth file updated with
new error message.
Test above passes.
Bug closed.
GMT-334
Eclipse Locator Fails during finite burn
Fix version is
“Someday.” No
further action required.
GMT-360
Poor Error Message for Partially configured
Finite Burn Command
Update 11/26/12:
Listed as P2 R2013a,
assigned to DJC.
GMT-2830
Incorrect exception thrown from step mode
finite burns
Issue closed 11/26/12.
GMT-169
Tutorials: Finite Maneuver
Update 11/26/12: Still
assigned to Vladimir.
This task may have
been fulfilled by the
DSC KARI finite burn
tutorial. Confer with
SPH.
GMT-2347
Finite Burn Numeric Error at Mars
(1) Added test,
FBurn_Mars_VNB.scri
pt, which should pass
once bug fixed.
(2) Added more
comprehensive
Thruster test as well,
Thruster/scripts/Thrust
er_Finite_Burn_Permu
tations_Separate_Pro
pagators.
Closed 9/13/12.
Note that GMT-2590 is the FiniteBurn QA task (not a bug).
Failing Tests
All the FiniteBurn test names begin with either FBurn or FiniteBurn_Validation.
Run Identification: [Gmat-buildtest] Test results: 2012-06-22 (Win7-64/GMAT-32/M2010a/VS)
There are no failing tests.
Other Findings
-Submitted bug, GMT-3410, Suggested changes to Thruster GUI panel, on 1/2/2013.
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-12.1
The system shall allow the user to define a finite burn by
selecting any thruster as defined in FRR-9.
Interface/Functional Spec
Overview
A finite burn.
Description
The Finite Burn object is used when continuous propulsion is desired. Impulsive burns happen
instantaneously through the use of the Maneuver command, while finite burns occur continuously
starting at the BeginFiniteBurn command and lasting until the EndFiniteBurn command is
reached in the mission sequence. In order to apply a non-zero Finite Burn, there must be a
Propagate command between the BeginFiniteBurn and EndFiniteBurn commands.
See Also: FuelTank, Thruster, and Spacecraft resource objects as well as the BeginFiniteBurn
and EndFiniteBurn commands.
Fields
See the User Interface Spec spreadsheet for reference information for fields.
GUI
The FiniteBurn dialog box allows you to specify which thruster to use for the finite burn. The
layout of the FiniteBurn dialog box is shown below.
Remarks
Configuring a FiniteBurn
To perform a finite burn, the FiniteBurn resource itself and a number of related objects must be
properly configured. You must associate a specific Thruster hardware object with a created
FiniteBurn. You must associate a specific FuelTank hardware object with the chosen thruster.
Finally, you must attach both the chosen Thruster and FuelTank to the desired spacecraft. See
the example below for additional details.
FiniteBurn using multiple Thrusters
Using the GUI, a FiniteBurn object must be associated with exactly one Thruster. Future GMAT
GUI versions will allow multiple thrusters to be attached to a single FiniteBurn object.
Using the scripting interface, one can currently assign multiple thrusters to a single FiniteBurn
object.
Interactions
Spacecraft resource
Must be created in order to apply any burn.
Thruster resource
As discussed in the Remarks, every finite burn must be
associated with at least one Thruster. Any thruster
created in the resource tree can be incorporated into a
finite burn to be used on the spacecraft.
FuelTank resource
To perform a FiniteBurn, a FuelTank must be attached to
the spacecraft. (A FuelTank is needed to provide
pressure and temperature data used when modeling the
thrust and specific impulse. A FuelTank is also needed if
you want to model mass depletion.)
BeginFiniteBurn and
EndFiniteBurn command
After a finite burn is created, to apply it in the mission
sequence, a BeginFiniteBurn and EndFiniteBurn
command must be appended to the mission tree.
Propagate command
In order to apply a non-zero Finite Burn, there must be a
Propagate command between the BeginFiniteBurn and
EndFiniteBurn commands.
Examples
Create a default Spacecraft and FuelTank Object, Create a default Thruster that allows for fuel
depletion from the default FuelTank, Attach FuelTank and Thruster to the spacecraft, Create
default ForceModel and Propagator, Create a Finite Burn that uses the default thruster and apply a
30 minute finite burn to the spacecraft.
% Create a default Spacecraft and FuelTank Object
Create Spacecraft DefaultSC;
Create FuelTank FuelTank1;
% Create a default Thruster. Allow for fuel depletion from the default FuelTank.
Create Thruster Thruster1;
GMAT Thruster1.DecrementMass = true;
GMAT Thruster1.Tank = {FuelTank1};
% Attach FuelTank and Thruster to the spacecraft
GMAT DefaultSC.Thrusters = {Thruster1};
GMAT DefaultSC.Tanks = {FuelTank1};
% Create default ForceModel and Propagator
Create ForceModel DefaultProp_ForceModel;
Create Propagator DefaultProp;
GMAT DefaultProp.FM = DefaultProp_ForceModel;
% Create a Finite Burn that uses the default thruster
Create FiniteBurn FiniteBurn1;
GMAT FiniteBurn1.Thrusters = {Thruster1};
BeginMissionSequence;
% Implement 30 minute finite burn
BeginFiniteBurn FiniteBurn1(DefaultSC);
Propagate DefaultProp(DefaultSC) {DefaultSC.ElapsedSecs = 1800};
EndFiniteBurn FiniteBurn1(DefaultSC);
Test Procedures
Assumptions
None.
Existing Tests
There are 12 files of the form *.tc.
Test Name
Description
FBurn_Earth_ScA_Thruster*_CS0_TankA.tc
The file name specifies the central body used for
integration, the spacecraft, thruster configuration,
coordinate system, and Tank configuration
according to the forum entry by JTichy. There are
7 *.tc files of this type.
*validation*.tc
Validation type tests. There are 5 tests of this
type.
According to the table above, there are
7 + 5 = 12
files accounted for which agrees with the known number of test cases.
Recommended Additional Tests
1
Added (Mars as central body) LVLH, and VNB tests. Patterned after Darrel’s script
supplied as part of GMT-2347.
a Added test of Mars VNB finite burn with two s/c, one using Mars-centered, and one
using Earth-centered, coordinates. Files added below:
i extern/Resources/FRR-12_FiniteBurn/FBurn_Mars_VNB.m
ii input/Resources/FRR-12_FiniteBurn/scripts/FBurn_Mars_VNB.script
iii input/Resources/FRR-12_FiniteBurn/scripts/FBurn_Mars_VNB.tc
iv input/Resources/FRR-12_FiniteBurn/truth/FBurn_Mars_VNB.truth
Unique Validation
Test Name
Summary
FiniteBurn_Validation_FiniteBurn
_With_No_Attached_Thruster
Verify bug, GMT-2367. Tests Thruster
DecrementMass = true when no thruster is
associated with a finite burn. Clear error message
should be thrown. Test currently wrongly passes.
(email sent to Steve H 7/16/12)
FiniteBurn_Validation_Thruster_
Test Thruster DecrementMass = true when no tank
With_No_Attached_Tank
is added to thruster. Clear error message should be
thrown. Test currently passes. (Hardware Exception
Thrown: Thruster "ThrusterH" does not have a fuel tank)
Note: Test based upon test,
FBurn_Earth_ScA_ThrusterH_CS0_TankA.
FiniteBurn_Validation_Spacecraft
_With_No_Attached_Tank
Test Thruster DecrementMass = true when thruster
has a tank but tank is not added to spacecraft. Clear
error message should be thrown. Test currently
passes. (SpaceObject Exception Thrown: Cannot find tank "TankA"
in spacecraft "Sc")
Note: Test based upon test,
FBurn_Earth_ScA_ThrusterH_CS0_TankA.
FiniteBurn_Validation_Spacecraft
_With_No_Attached_Tank_2
Test Thruster DecrementMass = false when thruster
has a tank but tank is not added to spacecraft. Clear
error message should be thrown.
Comment: Added this test 1/2/2013.
Note: See Appendix for some informal hardware
configuration tests.
FiniteBurn_Validation_Spacecraft
_With_No_Attached_Thruster
Test Thruster DecrementMass = true when thruster
has not been added to spacecraft. Clear error
message should be thrown. Test currently passes.
(Command Exception: BeginFiniteBurn: Spacecraft Sc does not have a
thruster named "ThrusterH")
Note: Test based upon test,
FBurn_Earth_ScA_ThrusterH_CS0_TankA.
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.
Hardware Configuration Tests
Thruster
attached
to s/c
FuelTank
attached
to s/c
FuelTank
attached to
Thruster
Thrustera
ttached
to Finite
Burn
Deccrem
ent
Mass
Error Message (if any)
N
N
N
Y
N
Command Exception: BeginFiniteBurn: Spacecraft DefaultSC
does not have a thruster named "Thruster1"
*** Mission run failed.
Y
N
N
Y
N
Propagator Exception: MassFlow is not a known propagation
parameter on DefaultSC
*** Mission run failed.
Comment: This message is a bit cryptic but to
receive it, you have to make two mistakes.
Y
N
Y
Y
N
Sandbox Exception: Error initializing objects in Sandbox.
SpaceObject Exception Thrown: Cannot find tank "FuelTank1" in
spacecraft "DefaultSC"
*** Mission run failed.
Y
N
N
N
N
Sandbox Exception: Error initializing objects in Sandbox.
SpaceObject Exception Thrown: Cannot find tank "FuelTank1" in
spacecraft "DefaultSC"
*** Mission run failed.
Y
Y
N
N
N
ODEModel Exception Thrown: The FiniteBurn object
"FiniteBurn1" does not identify any Thrusters, and cannot be
used for a finite burn.
*** Mission run failed.
Y
Y
Y
N
N
ODEModel Exception Thrown: The FiniteBurn object
"FiniteBurn1" does not identify any Thrusters, and cannot be
used for a finite burn.
*** Mission run failed.
Y
Y
N
Y
N
Hardware Exception Thrown: Thruster "Thruster1" does not
have a fuel tank
*** Mission run failed.
NOTES
FiniteBurn_Validation_Spacecraft
_With_No_Attached_Tank_2
Test Thruster DecrementMass = false when thruster
has a tank but tank is not added to spacecraft. Clear
error message should be thrown.
Comment: Added this test 1/2/2013. Time
permitting, may want to add additional similar tests.
Note: See Appendix for some informal hardware
configuration tests.
Download