Table of Contents

Class CoarseSunSensor

Namespace
NominalSystems.Classes
Assembly
NominalSystems.Classes.dll

[Nominal] Defines a sensor that is able to detect the orientation of the Sun in reference to the body that implements such a sensor.


public class CoarseSunSensor : Sensor
Inheritance
CoarseSunSensor

Constructors

CoarseSunSensor()

Default constructor

protected CoarseSunSensor()

Fields

In_AlbedoMsg

A reference to the albedo message which will be connected via the albedo model.

public AlbedoMessage? In_AlbedoMsg

Field Value

AlbedoMessage

In_EclipseMsg

A reference to the eclipse message which is for the state of visibility with the sun.

public EclipseMessage? In_EclipseMsg

Field Value

EclipseMessage

In_SunPlanetStateMsg

Input message for sun data

public PlanetStateMessage? In_SunPlanetStateMsg

Field Value

PlanetStateMessage

Out_CSSConfigMsg

Output message for CSS configuration log data

public CSSConfigMessage? Out_CSSConfigMsg

Field Value

CSSConfigMessage

Out_CSSDataMsg

Output message for CSS output data

public CSSDataMessage? Out_CSSDataMsg

Field Value

CSSDataMessage

SunDirection_B

Unit vector to sun in body frame components

[Unit(UnitType.NONE)]
[ReadOnly]
[Metadata(IsAdvanced = true)]
public Vector3 SunDirection_B

Field Value

Vector3

Properties

Bias

Sensor bias value

[Unit(UnitType.NONE)]
[Range(0, 1.7976931348623157E+308)]
[Metadata(IsAdvanced = true, ContainedIn = "Out_CSSConfigMsg")]
public double Bias { get; set; }

Property Value

double

Direction_B

CSS unit direction vector in body frame components

[Unit(UnitType.NONE)]
[ReadOnly]
[Metadata(IsAdvanced = true)]
public Vector3 Direction_B { get; }

Property Value

Vector3

FOV

Field of view half angle

[Unit(UnitType.DEGREE)]
[Range(0, 360)]
[Metadata(ContainedIn = "Out_CSSConfigMsg")]
public double FOV { get; set; }

Property Value

double

KellyCurveFit

Kelly curve fit for output cosine curve

[Unit(UnitType.NONE)]
[Range(0, 1.7976931348623157E+308)]
[Metadata(IsAdvanced = true, ContainedIn = "Out_CSSConfigMsg")]
public double KellyCurveFit { get; set; }

Property Value

double

MaxSignal

Maximum output (ceiling) for saturation application

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

Property Value

double

MinSignal

Minimum output (floor) for saturation application

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

Property Value

double

NoiseStd

Sensor noise value

[Unit(UnitType.NONE)]
[Range(0, 1.7976931348623157E+308)]
[Metadata(IsAdvanced = true, ContainedIn = "Out_CSSConfigMsg")]
public double NoiseStd { get; set; }

Property Value

double

ScaleFactor

Scale factor applied to sensor (common + individual multipliers)

[Unit(UnitType.NONE)]
[Range(0, 1.7976931348623157E+308)]
[Metadata(IsAdvanced = true, ContainedIn = "Out_CSSConfigMsg")]
public double ScaleFactor { get; set; }

Property Value

double

SensedValue

Total measurement including perturbations

[Unit(UnitType.NONE)]
[ReadOnly]
[Metadata(ContainedIn = "Out_CSSDataMsg", ContainedName = "Sensed")]
public double SensedValue { get; }

Property Value

double

Methods

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