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
EMFrequency
Frequency of the EM signature
public double EMFrequency
Field Value
EMLookup
The database lookup matrix, if it exists
public Matrix EMLookup
Field Value
In_DeviceStatusMsg
[-] The Device status message for the physical component whether the device is available.
public DeviceStatusMessage In_DeviceStatusMsg
Field Value
OperationalStatusTemperature
Operational Status of the Component regarding operating temperatures
public bool OperationalStatusTemperature
Field Value
Out_ThermalNodeMsg
The information about the thermal properties produced by the component
public readonly ThermalNodeMessage Out_ThermalNodeMsg
Field Value
ThermalProperties
Stores the thermal properties of component
public readonly ThermalProperties ThermalProperties
Field Value
Properties
IsEMActive
[-] Status of if an electromagnetic signature is enabled for this component
[EditableVariable("-", false, "", "")]
public bool IsEMActive { get; }
Property Value
Out_AlbedoMsg
[-] The Alebdo message from the instrument if it has been created.
public AlbedoMessage Out_AlbedoMsg { get; }
Property Value
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
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
stringThe 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
stringThe 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
intThe number of angles to interpolate
OnBegin(double)
Called when the 'Component' is beginning
protected override void OnBegin(double time)
Parameters
time
doublecurrent 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
doublecurrent time (seconds)
OnUpdate(double, double)
Called when the 'Component' should update
protected override void OnUpdate(double time, double step)
Parameters
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
doubleThe 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