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
Properties
AOmega
[-] Parameter used in coupled jitter back substitution
[EditableVariable("-", true, "", "")]
public Vector3 AOmega { get; set; }
Property Value
BOmega
[-] Parameter used in coupled jitter back substitution
[EditableVariable("-", true, "", "")]
public Vector3 BOmega { get; set; }
Property Value
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
COmega
[-] Parameter used in coupled jitter back substitution
[EditableVariable("-", true, "", "")]
public double COmega { get; set; }
Property Value
CurrentTorque
[N-m] Current motor torque
[EditableVariable("Nm", true, "", "")]
public double CurrentTorque { get; set; }
Property Value
D
[m] Wheel center of mass offset from wheel frame origin
[EditableVariable("m", true, "", "")]
public double D { get; set; }
Property Value
DynamicImbalance
[kg-m^2] Dynamic imbalance
[EditableVariable("kg-m^2", false, "", "")]
public double DynamicImbalance { get; set; }
Property Value
FrictionCoulomb
[N-m] Coulomb friction torque magnitude
[EditableVariable("Nm", false, "", "")]
public double FrictionCoulomb { get; set; }
Property Value
FrictionStatic
[N-m] Static friction torque magnitude
[EditableVariable("Nm", false, "", "")]
public double FrictionStatic { get; set; }
Property Value
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
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
FrictionViscous
[N-m-s/rad] Viscous friction coefficient
[EditableVariable("N-m-s-/rad", false, "", "")]
public double FrictionViscous { get; set; }
Property Value
IPrimeRWPntWc_B
[-] RW inertia B-frame derivative
[EditableVariable("kg-m^2/s", true, "", "")]
public Matrix3 IPrimeRWPntWc_B { get; set; }
Property Value
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
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
Jg
[kg-m^2] GgHat axis rotor moment of inertia
[EditableVariable("kg-m^2", true, "", "")]
public double Jg { get; set; }
Property Value
Js
[kg-m^2] Spin axis gsHat rotor moment of inertia
[EditableVariable("kg-m^2", true, "", "")]
public double Js { get; set; }
Property Value
Jt
[kg-m^2] GtHat axis rotor moment of inertia
[EditableVariable("kg-m^2", true, "", "")]
public double Jt { get; set; }
Property Value
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
MaxMomentum
[Nms] Maximum RW wheel momentum in Nms
[EditableVariable("Nms", false, "", "")]
public double MaxMomentum { get; set; }
Property Value
MaxTorque
[N-m] Max torque, negative value turns off saturating the wheel
[EditableVariable("Nm", false, "", "")]
public double MaxTorque { get; set; }
Property Value
MinTorque
[N-m] Min torque
[EditableVariable("Nm", false, "", "")]
public double MinTorque { get; set; }
Property Value
NetTorque_B
[Nm] torque command for individual RW
[EditableVariable("Nm", true, "", "")]
public double NetTorque_B { get; set; }
Property Value
Omega
[rad/s] Wheel speed
[EditableVariable("rad/s", false, "", "")]
public double Omega { get; set; }
Property Value
OmegaBefore
[rad/s] Wheel speed one time step before
[EditableVariable("rad/s", true, "", "")]
public double OmegaBefore { get; set; }
Property Value
OmegaLimitCycle
[rad/s] Wheel speed that avoids limit cycle with friction
[EditableVariable("rad/s", false, "", "")]
public double OmegaLimitCycle { get; set; }
Property Value
OmegaMax
[rad/s] Max wheel speed, negative values turn off wheel saturation
[EditableVariable("rad/s", false, "", "")]
public double OmegaMax { get; set; }
Property Value
Out_RWMsg
[-] The output message that defines this Reaction Wheel's configuration data.
public ReactionWheelMessage Out_RWMsg { get; }
Property Value
Out_RWTorqueMsg
[-] The output message representing motor torque commands.
public ReactionWheelTorqueMessage Out_RWTorqueMsg { get; }
Property Value
RPrimeWcB_B
[m/s] B-frame derivative of r_WcB_B
[EditableVariable("m/s", true, "", "")]
public Vector3 RPrimeWcB_B { get; set; }
Property Value
RTildeWcB_B
[-] Tilde matrix of r_WcB_B
[EditableVariable("m", true, "", "")]
public Matrix3 RTildeWcB_B { get; set; }
Property Value
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
RWStatus
[-] Type of operating model
[EditableVariable("-", false, "", "")]
public ReactionWheelOperatingStatus RWStatus { get; set; }
Property Value
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
StaticImbalance
[kg-m] Static imbalance
[EditableVariable("kg-m", false, "", "")]
public double StaticImbalance { get; set; }
Property Value
Theta
[rad] Wheel angle
[EditableVariable("rad", false, "", "")]
public double Theta { get; set; }
Property Value
W2Hat0_B
[-] Initial torque axis unit vector in body frame
[EditableVariable("-", true, "", "")]
public Vector3 W2Hat0_B { get; set; }
Property Value
W2Hat_B
[-] Current torque axis unit vector in body frame
[EditableVariable("-", true, "", "")]
public Vector3 W2Hat_B { get; set; }
Property Value
W3Hat0_B
[-] Initial gimbal axis unit vector in body frame
[EditableVariable("-", true, "", "")]
public Vector3 W3Hat0_B { get; set; }
Property Value
W3Hat_B
[-] Current gimbal axis unit vector in body frame
[EditableVariable("-", true, "", "")]
public Vector3 W3Hat_B { get; set; }
Property Value
WheelModelType
[-] Type of imbalance model to use
[EditableVariable("-", false, "", "")]
public ReactionWheelType WheelModelType { get; set; }
Property Value
WheelSpinAxis_B
[-] Spin axis unit vector gsHat in B-frame components
[EditableVariable("-", false, "", "")]
public Vector3 WheelSpinAxis_B { get; set; }
Property Value
Methods
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
OnUpdate(double, double)
Called when the 'Component' should update
protected override void OnUpdate(double time, double step)