Table of Contents

Class SunSafePointingSoftware

Namespace
NominalSystems.Classes
Assembly
NominalSystems.Classes.dll

This module provides the attitude guidance output for a sun pointing mode. This could be used for safe mode, or a power generation mode. The input is the sun direction vector which does not have to be normalized, as well as the body rate information. The output is the standard attitude reference state message. The sun direction measurement is cross with the desired body axis that is to point at the sun to create a principle rotation vector. The dot product between these two vectors is used to extract the principal rotation angle. With these a tracking error MRP state is computer. The body rate tracking errors relative to the reference frame are set equal to the measured body rates to bring the vehicle to rest when pointing at the sun. Thus, the reference angular rate and acceleration vectors relative to the inertial frame are nominally set to zero. If the sun vector is not available, then the reference rate is set to a body-fixed value while the attitude tracking error is set to zero.

public class SunSafePointingSoftware : Software
Inheritance
SunSafePointingSoftware
Inherited Members

Constructors

SunSafePointingSoftware()

Default constructor for the software

public SunSafePointingSoftware()

Fields

In_NavAttMsg

[NavAttMsg] Input body attitude (estimation)

public NavAttMessage In_NavAttMsg

Field Value

NavAttMessage

In_SunDirectionMsg

[NavAttMsg] Input sun position (estimation)

public NavAttMessage In_SunDirectionMsg

Field Value

NavAttMessage

MinUnitMag

[-] The minimally acceptable norm of sun body vector

public double MinUnitMag

Field Value

double

Out_AttGuidMsg

[AttGuidFswMsg] for the outgoing body estimate message

public AttGuidMessage Out_AttGuidMsg

Field Value

AttGuidMessage

Out_AttRefMsg

[AttGuidFswMsg] for the outgoing body estimate message

public AttRefMessage Out_AttRefMsg

Field Value

AttRefMessage

SmallAngle

[rad] An angle value that specifies what is near 0 or 180 degrees

public double SmallAngle

Field Value

double

SunAxisSpinRate

[r/s] Desired constant spin rate about sun heading vector

public double SunAxisSpinRate

Field Value

double

Properties

Omega_RN_B

[r/s] Desired body rate vector if no sun direction is available

public Vector3 Omega_RN_B { get; set; }

Property Value

Vector3

SunBodyVector

[-] Desired body vector to point at the sun

public Vector3 SunBodyVector { get; set; }

Property Value

Vector3

Methods

OnBegin(double)

Called when the 'Component' is beginning

protected override void OnBegin(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)