Table of Contents

Class PhysicalComponent

Namespace
NominalSystems.Universe
Assembly
NominalSystems.Universe.dll

A physical component is a component that is able to attach to a spacecraft or ground station, and is able to provide some functionality for the object.

public class PhysicalComponent : PhysicalObject
Inheritance
PhysicalComponent
Derived
Inherited Members

Constructors

PhysicalComponent()

Base constructor for the spacecraft component

public PhysicalComponent()

Fields

Albedo

[-] The Albedo Configuration module that can be added to this instrument. This is optional and does not need to be added for each instrument.

public AlbedoInstrumentConfig Albedo

Field Value

AlbedoInstrumentConfig

EMFrequency

Frequency of the EM signature

public double EMFrequency

Field Value

double

EMLookup

The database lookup matrix, if it exists

public Matrix EMLookup

Field Value

Matrix

In_DeviceStatusMsg

[-] The Device status message for the physical component whether the device is available.

public DeviceStatusMessage In_DeviceStatusMsg

Field Value

DeviceStatusMessage

OperationalStatusTemperature

Operational Status of the Component regarding operating temperatures

public bool OperationalStatusTemperature

Field Value

bool

Out_ThermalNodeMsg

The information about the thermal properties produced by the component

public readonly ThermalNodeMessage Out_ThermalNodeMsg

Field Value

ThermalNodeMessage

ThermalProperties

Stores the thermal properties of component

public readonly ThermalProperties ThermalProperties

Field Value

ThermalProperties

Properties

IsEMActive

[-] Status of if an electromagnetic signature is enabled for this component

[EditableVariable("-", false, "", "")]
public bool IsEMActive { get; }

Property Value

bool

Out_AlbedoMsg

[-] The Alebdo message from the instrument if it has been created.

public AlbedoMessage Out_AlbedoMsg { get; }

Property Value

AlbedoMessage

Temperature

[K] The temperature of the physical component that is updated by the component and the Sunlight system.

[EditableVariable("K", 0, true, "", "")]
public double Temperature { get; set; }

Property Value

double

Methods

AddAlbedo(double)

Adds the Albedo configuration to this instrument, if it exists.

public void AddAlbedo(double fov = 1.5707963267948966)

Parameters

fov double

[rad] The field of view of the instrument

ConfigureEMLookupTable(string)

Configures a lookup table and initialises the model type depending if the lookup table is valid.

public virtual bool ConfigureEMLookupTable(string filename)

Parameters

filename string

The full path name (or local file) of the filename to use as a lookup table.

Returns

bool

A successful lookup table flag

DisableEMLookupTable()

Disables the EM Lookup Table data by changing the IsActive flag to false.

public virtual void DisableEMLookupTable()

GetEMLoss(double)

Calculates the Electro-Magnetic loss of the connection at some particular angel about the component, symmetric abou the component's up vector.

protected double GetEMLoss(double angle)

Parameters

angle double

[deg] The angle to calculate the loss at

Returns

double

[dB] The loss of the EM signature

GetGroundStation()

Gets the Ground Station that this component is attached to, if it exists.

public GroundStation GetGroundStation()

Returns

GroundStation

The ground station this is attached to if it exists; If not, a null will be returned.

GetSpacecraft()

Gets the Spacecraft that this component is attached to, if it exists.

public Spacecraft GetSpacecraft()

Returns

Spacecraft

The spacecraft this is attached to if it exists; If not, a null will be returned.

InitializeThermal(string)

Initialises the thermal look up table for the component.

public virtual void InitializeThermal(string filename)

Parameters

filename string

The full file name to look up

InterpolateEMData(List<double>, List<double>, int)

Interpolates the Electro-Magnetic lookup table data and is able to calculate the EM loss based on the angle in a symmetric shape away from the up-vector of the component.

protected virtual void InterpolateEMData(List<double> xValues, List<double> yValues, int angles)

Parameters

xValues List<double>

[deg] The list of angle values

yValues List<double>

[dB] The losses of the values at each angle

angles int

The number of angles to interpolate

OnBegin(double)

Called when the 'Component' is beginning

protected override void OnBegin(double time)

Parameters

time double

current time (seconds)

OnDecodeMetadata(JObject)

Called after the "Component" was loaded to handle additional metadata.

protected override void OnDecodeMetadata(JObject metadata)

Parameters

metadata JObject

OnEncodeMetadata(JObject)

Called while the "Component" is being saved to save additional metadata.

protected override JObject OnEncodeMetadata(JObject metadata)

Parameters

metadata JObject

Returns

JObject

OnFinish(double)

Called when the 'Component' is finishing

protected override void OnFinish(double time)

Parameters

time double

current time (seconds)

OnUpdate(double, double)

Called when the 'Component' should update

protected override void OnUpdate(double time, double step)

Parameters

time double

current time (seconds)

step double

the time step (seconds)

SetCustomThermalLookup(double)

Sets the temperature lookup with a custom thermal analysis. This will use the first column of the thermal lookup table to lookup. The meaning of this value is not required to be known through the system but must be known to the user. This will perform a linear interpolation for this lookup value and will return the value from the thermal node reference column that is associated with the row.

public void SetCustomThermalLookup(double value)

Parameters

value double

The lookup value associated with the first column of the lookup table

UpdateThermalProperties(double)

Updates the thermal properties of the current physical component at a particular time.

public virtual void UpdateThermalProperties(double time)

Parameters

time double

[s] The current time in the simulation