Table of Contents

Class ThermalModel

Namespace
NominalSystems.Universe
Assembly
NominalSystems.Universe.dll

[Nominal] A thermal model can be added to any universe object which is able to manage the thermal data of a particular object. This will enable thermal CSV lookups or standard Thermal models.


public class ThermalModel : UniverseModel<UniverseObject>
Inheritance
ThermalModel
Extension Methods

Constructors

ThermalModel()

Default constructor

protected ThermalModel()

Fields

Conductivity

Conductivity of the Component

[Unit(UnitType.WATT_PER_METRE_KELVIN)]
[Metadata(IsAdvanced = true)]
public double Conductivity

Field Value

double

Density

Density of the component.

[Unit(UnitType.KILOGRAM_PER_CUBIC_METRE)]
[Metadata(IsAdvanced = true)]
public double Density

Field Value

double

FilePath

Filename for the lookup table

[ReadOnly]
[Metadata(IsAdvanced = true)]
public string FilePath

Field Value

string

GeneratedHeat

Heat Generated due to self functionality

[Unit(UnitType.JOULE)]
public double GeneratedHeat

Field Value

double

IsOperational

A flag whether the current model is operational

[ReadOnly]
public bool IsOperational

Field Value

bool

LookupTemperature

The temperature obtained from the lookup table.

[Unit(UnitType.KELVIN)]
[ReadOnly]
public double LookupTemperature

Field Value

double

MaxTemperature

Maximum Operational Temperature

[Unit(UnitType.KELVIN)]
public double MaxTemperature

Field Value

double

MinTemperature

Minimum Operational Temperature

[Unit(UnitType.KELVIN)]
public double MinTemperature

Field Value

double

Out_ThermalNodeMsg

A output message for the thermal information on this object. This will store the temperature and the heat generated.

public ThermalNodeMessage? Out_ThermalNodeMsg

Field Value

ThermalNodeMessage

SpecificHeat

Specific Heat of the Component

[Unit(UnitType.JOULE_PER_KILOGRAM_KELVIN)]
[Metadata(IsAdvanced = true)]
public double SpecificHeat

Field Value

double

ThermalAnalysis

Controls the thermal analysis type.

public ThermalAnalysisType ThermalAnalysis

Field Value

ThermalAnalysisType

ThermalNodeColumn

The reference column index for the thermal database

[Unit(UnitType.NONE)]
public int ThermalNodeColumn

Field Value

int

Properties

Temperature

Current Temperature of the component

[Unit(UnitType.KELVIN)]
public double Temperature { get; set; }

Property Value

double

Methods

Initialise(string, int)

Loads the thermal model from a CSV file and stores the data in the model. This will be able to use a lookup based on some parameter that is configured.

public bool Initialise(string filePath, int thermalNodeColumn = 1)

Parameters

filePath string

The full file path to the particular lookup table

thermalNodeColumn int

The column index of the thermal node reference

Returns

bool

A successful load flag

Lookup(int, double)

Looks up some independent variable in the lookup table based on the thermal node reference column. This will also perform a LERP on the value based on the closest two values.

public double Lookup(int column, double value)

Parameters

column int

[-] The column index to lookup the value from

value double

[-] The value in which to compare to

Returns

double

[-] The value that is found with the lookup

OnCreate()

Called when the object is created from the controller and has been attached to the parent object. By this point, it has been registered to the simulation and will run after the constructor.

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