Spacecraft Hardware

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

NOTES

 

Explore

 

This feature spec discusses two spacecraft hardware items, the fuel tank and the thruster.  These two items are discussed in detail in the feature specs dedicated to each individual hardware item, FRR-8 Spacecraft FuelTank Model , and FRR-9 Thruster.  

 

 

 

The bugs associated with the fuel tank and thruster are detailed in the feature specs mentioned above.  Note that GMT-2635 is the Spacecraft Hardware QA task (not a bug).  

 

Failing Tests

There are no tests for the fuel tank and thruster for this feature group.  The fuel tank and thruster specific tests are described in the the feature specs for each element,  FRR-8 Spacecraft FuelTank Model , and FRR-9 Thruster.  

 

Other Findings

 

Requirements

 

ID

Requirements

FRC- X .1

The user shall have the ability to add a pre-configured FuelTank to a spacecraft. 

FRC-X.2

The user shall have the ability to add a pre-configured Thruster to a spacecraft. 

 

 

 

Interface/Functional Spec

Overview

Add hardware to a spacecraft. 

Description

 

The hardware fields allow you to attach pre-configured hardware models to a spacecraft.  Current models include tank and thruster.  Before you attach a hardware model to a spacecraft, you must first create the model. 

 

See Also:  FuelTank and Thruster

Fields

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

GUI

 

There are two spacecraft hardware items, the fuel tank and the thruster that can be attached to a spacecraft.  Here, we describe the method used to create and then attach these items to a spacecraft.  For details on how to configure the fuel tank and thrusters, see the help for the individual hardware item. 

 

As shown below, to add a FuelTank to your script, highlight the Hardware resource and then right click to add a Fuel Tank.

 

 

To add a Thruster to your script, highlight the Hardware resource and then right click to add a Thruster.

 

 

Thus far, we have created both a Fuel Tank and a Thruster.  Next, we  attach both the Fuel Tank and the Thruster to a particular spacecraft. To do this, double click on the desired spacecraft under the Spacecraft resource to bring up the associated GUI panel. Then click on the Tanks tab to bring up the following GUI display.

 

Next, select the desired Fuel Tank and use the right arrow button to attach the Fuel Tank to the spacecraft as shown below. Then click the Apply button.

 

Similarly, to attach a Thruster to a spacecraft, double click on the desired spacecraft under the Spacecraft resource and then select the Actuators tab. Then select the desired thruster and use the right arrow to attach the thruster to the spacecraft as shown below. Finally, click the Apply button.

 

Remarks

To actually use the thruster to apply a finite burn to a spacecraft, additional steps are required.  For example, when you create the thruster object, you have to associate a fuel tank with the thruster.  For details on this and related matters, see the help for the FuelTank, Thruster, and FiniteBurn resources. 

Examples

 

Create a default Spacecraft.  Create FuelTank and Thruster objects and attach them to the spacecraft.

% Create default Spacecraft FuelTank, and Thruster Objects

Create Spacecraft DefaultSC;

Create FuelTank FuelTank1;

Create Thruster Thruster1;

 

%  Attach FuelTank and Thruster to the spacecraft

GMAT DefaultSC.Thrusters = {Thruster1};

GMAT DefaultSC.Tanks = {FuelTank1};

 

BeginMissionSequence

 

Test Procedures

Assumptions

None.

Existing Tests

There are no existing tests associated with this feature specification document. 

Recommended Additional Tests

Note that Steve Hughes requested verification that no anomalous behaviour occurs if a fuel tank or thruster of the same name was created or attached twice.  We note the following.

1         A warning message is received if one creates a fuel tank or thruster after the BeginMissionSequence command.    

1: *** WARNING *** Interpreter Exception: GMAT currently requires that all object are created before the mission sequence begins in line:

" 23: Create FuelTank FuelTank1;"

2: *** WARNING *** Interpreter Exception: GMAT currently requires that all object are created before the mission sequence begins in line:

" 24: Create Thruster Thruster1;"

2         Question:  If GMAT requires objects be created before the BeginMissionSequence command, should GMAT make this an error as opposed to a warning?  It appears that the create commands do not “take” after the BeginMissionSequence command.  So, why give the user the impression that maybe they do?   For example, the script segment below generates an error.

Create Spacecraft DefaultSC;

BeginMissionSequence

Create FuelTank FuelTank1;

Create Thruster Thruster1;

GMAT DefaultSC.Tanks = {FuelTank1};

 

Running mission...

GmatBase Exception Thrown: ElementWrapper::SetValue() Cannot set "DefaultSC.Tanks" to "{FuelTank1}" in

"DefaultSC.Tanks = {FuelTank1};"

 

Update:  Steve H. confirmed that there is already a bug in the system for this issue.

 

3         Prior to the BeginMissionSequence command, one receives a warning message if one creates the same fueltank or thruster object twice.  (If one creates the same object twice after the BeginMissionSequence command, one gets the warning described in Item 1 above, but one does not get an additional warning/error that the object already exists)

1: *** WARNING *** Interpreter Exception: FuelTank object named "FuelTank1" already exists in line:

" 6: Create FuelTank FuelTank1;"

2: *** WARNING *** Interpreter Exception: Thruster object named "Thruster1" already exists in line:

" 7: Create Thruster Thruster1;"

4         One obtains neither a warning nor an error if you attach the same fuel tank or thruster twice.  (either before or after the BeginMissionSequence command).  Thus, at first glance, the following “attach” commands appear to be idempotent.   See the tests added below to verify this. 

GMAT DefaultSC.Tanks = {FuelTank1};

GMAT DefaultSC.Thrusters = {Thruster1};

 

 

Unique Validation

Test Description

Summary

Thruster_FBurn_Mercury_ScA_ThrusterF_CS2_TankA_2

Prior to BeginMissionSequence command, same fuel tank and thruster are created twice. 
-Thruster F has non-default thrust coefficients.

-TankA has non-default values for some parameters

-The Create commands came before the object data parameters. 

Test passed. 

Thruster_FBurn_Mercury_ScA_ThrusterF_CS2_TankA_3

Same as previous test except that the second Create command came after the data parameters.  (Relevant commands still before BeginMissionSequence command) Test passed. 

Thruster_FBurn_Mercury_ScA_ThrusterF_CS2_TankA_4

Same as previous test (Thruster_FBurn_Mercury_ScA_ThrusterF_CS2_TankA_3) except now the same fuel tank and thruster are attached twice.  (Relevant commands still before BeginMissionSequence command).  Test passed.  

Thruster_FBurn_Mercury_ScA_ThrusterF_CS2_TankA_5

 

Same as test, Thruster_FBurn_Mercury_ScA_ThrusterF_CS2_TankA_2, except the same fuel tank and thruster are attached a second time with the second occurrence coming after the BeginMissionSequence command. 

 

Test failed.  If you attach a thruster to a s/c a second time (after the BeginMissionSequence command), GMAT seems to forget that the thruster previously had a fuel tank associated with it.

 

Hardware Exception Thrown: Thruster "ThrusterF" does not have a fuel tank

 

Submitted bug, GMT-2992,

Unexpected Behaviour when attaching thruster to spacecraft a second time.

 

 

 

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.  

 

NOTES

 

1         xx