Table of Contents

Class ReactionWheel

Namespace
NominalSystems.Classes
Assembly
NominalSystems.Classes.dll

[Nominal] This component models a singular reaction wheel. These reaction wheels can be added as children of Reaction Wheel Arrays.

public class ReactionWheel : PhysicalComponent
Inheritance
ReactionWheel
Inherited Members

Constructors

ReactionWheel()

Default reaction wheel constructor.

public ReactionWheel()

Fields

RWArrayIndex

[-] The index of this Reaction Wheel within the Reaction Wheel Array.

[EditableVariable("-", true, "", "")]
public int RWArrayIndex

Field Value

int

Properties

AOmega

[-] Parameter used in coupled jitter back substitution

[EditableVariable("-", true, "", "")]
public Vector3 AOmega { get; set; }

Property Value

Vector3

BOmega

[-] Parameter used in coupled jitter back substitution

[EditableVariable("-", true, "", "")]
public Vector3 BOmega { get; set; }

Property Value

Vector3

BetaStatic

[-] Stribeck friction coefficient. For stribeck friction to be activated, user must change this variable to a positive non-zero number.

[EditableVariable("-", false, "", "")]
public double BetaStatic { get; set; }

Property Value

double

COmega

[-] Parameter used in coupled jitter back substitution

[EditableVariable("-", true, "", "")]
public double COmega { get; set; }

Property Value

double

CurrentTorque

[N-m] Current motor torque

[EditableVariable("Nm", true, "", "")]
public double CurrentTorque { get; set; }

Property Value

double

D

[m] Wheel center of mass offset from wheel frame origin

[EditableVariable("m", true, "", "")]
public double D { get; set; }

Property Value

double

DynamicImbalance

[kg-m^2] Dynamic imbalance

[EditableVariable("kg-m^2", false, "", "")]
public double DynamicImbalance { get; set; }

Property Value

double

FrictionCoulomb

[N-m] Coulomb friction torque magnitude

[EditableVariable("Nm", false, "", "")]
public double FrictionCoulomb { get; set; }

Property Value

double

FrictionStatic

[N-m] Static friction torque magnitude

[EditableVariable("Nm", false, "", "")]
public double FrictionStatic { get; set; }

Property Value

double

FrictionStribeck

Boolean to determine if stribeck friction model is used or not, 0 is non-stribeck, 1 is stribeck/ Parameter is set internally.

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

Property Value

bool

FrictionTorque

[N-m] Friction torque, this is a computed value, don't set it directly

[EditableVariable("Nm", true, "", "")]
public double FrictionTorque { get; set; }

Property Value

double

FrictionViscous

[N-m-s/rad] Viscous friction coefficient

[EditableVariable("N-m-s-/rad", false, "", "")]
public double FrictionViscous { get; set; }

Property Value

double

IPrimeRWPntWc_B

[-] RW inertia B-frame derivative

[EditableVariable("kg-m^2/s", true, "", "")]
public Matrix3 IPrimeRWPntWc_B { get; set; }

Property Value

Matrix3

IRWPntWc_B

[kg-m^2] RW inertia about point Wc in B frame components

[EditableVariable("kg-m^2", true, "", "")]
public Matrix3 IRWPntWc_B { get; set; }

Property Value

Matrix3

J13

[kg-m^2] X-Z inertia of wheel about wheel center in wheel frame (imbalance)

[EditableVariable("kg-m^2", true, "", "")]
public double J13 { get; set; }

Property Value

double

Jg

[kg-m^2] GgHat axis rotor moment of inertia

[EditableVariable("kg-m^2", true, "", "")]
public double Jg { get; set; }

Property Value

double

Js

[kg-m^2] Spin axis gsHat rotor moment of inertia

[EditableVariable("kg-m^2", true, "", "")]
public double Js { get; set; }

Property Value

double

Jt

[kg-m^2] GtHat axis rotor moment of inertia

[EditableVariable("kg-m^2", true, "", "")]
public double Jt { get; set; }

Property Value

double

Mass

[kg] The component mass defined in the object. This is independent of any parent or children objects and exists in isolation.

public override double Mass { get; set; }

Property Value

double

MaxMomentum

[Nms] Maximum RW wheel momentum in Nms

[EditableVariable("Nms", false, "", "")]
public double MaxMomentum { get; set; }

Property Value

double

MaxTorque

[N-m] Max torque, negative value turns off saturating the wheel

[EditableVariable("Nm", false, "", "")]
public double MaxTorque { get; set; }

Property Value

double

MinTorque

[N-m] Min torque

[EditableVariable("Nm", false, "", "")]
public double MinTorque { get; set; }

Property Value

double

NetTorque_B

[Nm] torque command for individual RW

[EditableVariable("Nm", true, "", "")]
public double NetTorque_B { get; set; }

Property Value

double

Omega

[rad/s] Wheel speed

[EditableVariable("rad/s", false, "", "")]
public double Omega { get; set; }

Property Value

double

OmegaBefore

[rad/s] Wheel speed one time step before

[EditableVariable("rad/s", true, "", "")]
public double OmegaBefore { get; set; }

Property Value

double

OmegaLimitCycle

[rad/s] Wheel speed that avoids limit cycle with friction

[EditableVariable("rad/s", false, "", "")]
public double OmegaLimitCycle { get; set; }

Property Value

double

OmegaMax

[rad/s] Max wheel speed, negative values turn off wheel saturation

[EditableVariable("rad/s", false, "", "")]
public double OmegaMax { get; set; }

Property Value

double

Out_RWMsg

[-] The output message that defines this Reaction Wheel's configuration data.

public ReactionWheelMessage Out_RWMsg { get; }

Property Value

ReactionWheelMessage

Out_RWTorqueMsg

[-] The output message representing motor torque commands.

public ReactionWheelTorqueMessage Out_RWTorqueMsg { get; }

Property Value

ReactionWheelTorqueMessage

RPrimeWcB_B

[m/s] B-frame derivative of r_WcB_B

[EditableVariable("m/s", true, "", "")]
public Vector3 RPrimeWcB_B { get; set; }

Property Value

Vector3

RTildeWcB_B

[-] Tilde matrix of r_WcB_B

[EditableVariable("m", true, "", "")]
public Matrix3 RTildeWcB_B { get; set; }

Property Value

Matrix3

RWB_B

[m] Position vector of the RW relative to the spacecraft body frame

[EditableVariable("m", false, "", "")]
public Vector3 RWB_B { get; set; }

Property Value

Vector3

RWStatus

[-] Type of operating model

[EditableVariable("-", false, "", "")]
public ReactionWheelOperatingStatus RWStatus { get; set; }

Property Value

ReactionWheelOperatingStatus

RWcB_B

[m] Position of the reaction wheel center of mass Wc relative to B in B-frame components

[EditableVariable("m", true, "", "")]
public Vector3 RWcB_B { get; set; }

Property Value

Vector3

StaticImbalance

[kg-m] Static imbalance

[EditableVariable("kg-m", false, "", "")]
public double StaticImbalance { get; set; }

Property Value

double

Theta

[rad] Wheel angle

[EditableVariable("rad", false, "", "")]
public double Theta { get; set; }

Property Value

double

W2Hat0_B

[-] Initial torque axis unit vector in body frame

[EditableVariable("-", true, "", "")]
public Vector3 W2Hat0_B { get; set; }

Property Value

Vector3

W2Hat_B

[-] Current torque axis unit vector in body frame

[EditableVariable("-", true, "", "")]
public Vector3 W2Hat_B { get; set; }

Property Value

Vector3

W3Hat0_B

[-] Initial gimbal axis unit vector in body frame

[EditableVariable("-", true, "", "")]
public Vector3 W3Hat0_B { get; set; }

Property Value

Vector3

W3Hat_B

[-] Current gimbal axis unit vector in body frame

[EditableVariable("-", true, "", "")]
public Vector3 W3Hat_B { get; set; }

Property Value

Vector3

WheelModelType

[-] Type of imbalance model to use

[EditableVariable("-", false, "", "")]
public ReactionWheelType WheelModelType { get; set; }

Property Value

ReactionWheelType

WheelSpinAxis_B

[-] Spin axis unit vector gsHat in B-frame components

[EditableVariable("-", false, "", "")]
public Vector3 WheelSpinAxis_B { 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)

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

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)