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)