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.