Table of Contents

Class Thruster

Namespace
NominalSystems.Classes
Assembly
NominalSystems.Classes.dll

[Nominal] The thruster class is able to provide thrust to the spacecraft which can be used for orbit maneuvers.


public class Thruster : DynamicEffector
Inheritance
Thruster

Constructors

Thruster()

Default constructor

protected Thruster()

Fields

DispersedFactor

The dispersed magnitude factor

[Unit(UnitType.NONE)]
[Range(0, 1)]
public double DispersedFactor

Field Value

double

In_ThrusterFireRequestMsg

An input 'ThrusterFireRequest' payload for a fire request

public ThrusterFireRequestMessage? In_ThrusterFireRequestMsg

Field Value

ThrusterFireRequestMessage

Out_ThrusterConfigMsg

The output message for the configuration of the thruster

public ThrusterConfigMessage? Out_ThrusterConfigMsg

Field Value

ThrusterConfigMessage

Out_ThrusterOperationMsg

An output thruster status message about the current state of the thruster

public ThrusterOperationMessage? Out_ThrusterOperationMsg

Field Value

ThrusterOperationMessage

Properties

ExitArea

Area of Exit.

[Unit(UnitType.SQUARE_METRE)]
[Range(0, 1.7976931348623157E+308)]
[Metadata(ContainedIn = "Out_ThrusterConfigMsg")]
public double ExitArea { get; set; }

Property Value

double

MaxImpulse

Steady state max impulse.

[Unit(UnitType.NEWTON_SECOND)]
[Metadata(ContainedIn = "Out_ThrusterConfigMsg")]
public double MaxImpulse { get; set; }

Property Value

double

MaxThrust

Max thrust.

[Unit(UnitType.NEWTON)]
[Metadata(ContainedIn = "Out_ThrusterConfigMsg")]
public double MaxThrust { get; set; }

Property Value

double

MinFireDuration

Minimum Burn Duration for thruster.

[Unit(UnitType.SECOND)]
[Range(0, 1.7976931348623157E+308)]
[Metadata(ContainedIn = "Out_ThrusterConfigMsg")]
public double MinFireDuration { get; set; }

Property Value

double

SpecificImpulse

Specific Impulse of the thruster.

[Unit(UnitType.SECOND)]
[Metadata(ContainedIn = "Out_ThrusterConfigMsg")]
public double SpecificImpulse { get; set; }

Property Value

double

ThrustDirection_B

Unit vector of the thrust direction.

[Unit(UnitType.NONE)]
[ReadOnly]
[Metadata(ContainedIn = "Out_ThrusterConfigMsg")]
public Vector3 ThrustDirection_B { get; }

Property Value

Vector3

TimeToMaxThrust

Time taken to achieve max thrust.

[Unit(UnitType.SECOND)]
[Range(0, 1.7976931348623157E+308)]
[Metadata(ContainedIn = "Out_ThrusterConfigMsg")]
public double TimeToMaxThrust { get; set; }

Property Value

double

Methods

CalculateBodyFrameTorque()

Calculate the current torque (in body frame). Compute the point B relative torque and aggregate into the composite body torque

protected Vector3 CalculateBodyFrameTorque()

Returns

Vector3

CalculateRequiredForceMagnitude(double, double)

Calculate the current force (in body frame)

protected double CalculateRequiredForceMagnitude(double time, double step)

Parameters

time double
step double

Returns

double

[N] The required force magnitude

ComputeDynamics(double)

Method to compute the force and torque on the body. This will be triggered by the spacecraft on an Update call.

public override void ComputeDynamics(double time)

Parameters

time double

[s] The current integration time

Connect(FuelSource)

Connects the thruster to a particular fuel source model and attaches it to the correct update call.

public void Connect(FuelSource source)

Parameters

source FuelSource

The fuel source to connect to

Disconnect()

Disconnects the thruster from any fuel source that it is currently attached to.

public void Disconnect()

OnBegin(double)

Called when the object is beginning ticking for the first time. This is when the simulation calls the very first tick and will run before the update call.

protected override void OnBegin(double time)

Parameters

time double

[s] Current time of the simulation before the tick

OnCreate()

Called when the 'Component' is created from the controller.

protected override void OnCreate()

OnLoad(double)

Called after all of the data has been loaded from a save state on this object. This enables any post-load operations to be performed and extra data to be loaded from the metadata.

protected override void OnLoad(double time)

Parameters

time double

[s] The current clock time of the simulation

OnUpdate(double, double)

Called when the object should update from the simulation tick. This will take in a time and a step, where the time is the time of the clock before updating the object.

protected override void OnUpdate(double time, double step)

Parameters

time double

[s] Current time of the simulation before the update

step double

[s] The time-step to update during this tick

UpdateMassProperties(double, double)

Updates the mass properties of the current physical object at a particular time.

public override void UpdateMassProperties(double time, double step)

Parameters

time double

[s] The current time of the simulation

step double

[s] The delta time between the updates