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.
[UniverseParent(typeof(ReactionWheelArray))]
public class ReactionWheel : PhysicalObject
- Inheritance
-
ReactionWheel
Constructors
ReactionWheel()
Default reaction wheel constructor.
protected ReactionWheel()
Fields
ArrayIndex
The index of this Reaction Wheel within the Reaction Wheel Array.
[Unit(UnitType.NONE)]
[ReadOnly]
public int ArrayIndex
Field Value
DCM_BL
DCM matrix of the wheel to body frame
[Unit(UnitType.NONE)]
[ReadOnly]
[Metadata(IsAdvanced = true)]
public Matrix3 DCM_BL
Field Value
Inertia_C
Reaction Wheel Moment of inertia in the Wheel frame
[Unit(UnitType.KILOGRAM_SQUARE_METRE)]
[ReadOnly]
[Metadata(IsAdvanced = true)]
public Matrix3 Inertia_C
Field Value
Out_RWConfigMsg
The output message that defines this Reaction Wheel's configuration data.
public RWConfigMessage? Out_RWConfigMsg
Field Value
Out_RWTorqueMsg
The output message representing motor torque commands.
public RWTorqueMessage? Out_RWTorqueMsg
Field Value
Properties
AOmega
Parameter used in coupled jitter back substitution.
[Unit(UnitType.NONE)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public Vector3 AOmega { get; set; }
Property Value
BOmega
Parameter used in coupled jitter back substitution.
[Unit(UnitType.NONE)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
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.
[Unit(UnitType.NONE)]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public double BetaStatic { get; set; }
Property Value
COmega
Parameter used in coupled jitter back substitution.
[Unit(UnitType.NONE)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public double COmega { get; set; }
Property Value
CurrentTorque
Current motor torque.
[Unit(UnitType.NEWTON_METRE)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public double CurrentTorque { get; set; }
Property Value
D
Wheel center of mass offset from wheel frame origin.
[Unit(UnitType.METRE)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public double D { get; set; }
Property Value
DynamicImbalance
Dynamic imbalance.
[Unit(UnitType.KILOGRAM_SQUARE_METRE)]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public double DynamicImbalance { get; set; }
Property Value
FrictionCoulomb
Coulomb friction torque magnitude.
[Unit(UnitType.NEWTON_METRE)]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public double FrictionCoulomb { get; set; }
Property Value
FrictionStatic
Static friction torque magnitude.
[Unit(UnitType.NEWTON_METRE)]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
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.
[Unit(UnitType.NONE)]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public bool FrictionStribeck { get; set; }
Property Value
FrictionTorque
Friction torque, this is a computed value, don't set it directly.
[Unit(UnitType.NEWTON_METRE)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public double FrictionTorque { get; set; }
Property Value
FrictionViscous
Viscous friction coefficient.
[Unit("Nms/rad")]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public double FrictionViscous { get; set; }
Property Value
InertiaPrime_B
RW inertia B-frame derivative. Also known as 'IPrimeRWPntWc_B', which is the inertia rate of change of the center of mass of the RW in the body frame.
[Unit(UnitType.KILOGRAM_SQUARE_METRE_PER_SECOND)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public Matrix3 InertiaPrime_B { get; set; }
Property Value
Inertia_B
RW inertia about point Wc in B frame components. Also known as 'IRWPntWc_B'. This is the inertia of the center of mass of the RW in the body frame.
[Unit(UnitType.KILOGRAM_SQUARE_METRE)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public Matrix3 Inertia_B { get; set; }
Property Value
J13
X-Z inertia of wheel about wheel center in wheel frame (imbalance).
[Unit(UnitType.KILOGRAM_SQUARE_METRE)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public double J13 { get; set; }
Property Value
Jg
GgHat axis rotor moment of inertia.
[Unit(UnitType.KILOGRAM_SQUARE_METRE)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public double Jg { get; set; }
Property Value
Js
Spin axis gsHat rotor moment of inertia.
[Unit(UnitType.KILOGRAM_SQUARE_METRE)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public double Js { get; set; }
Property Value
Jt
GtHat axis rotor moment of inertia.
[Unit(UnitType.KILOGRAM_SQUARE_METRE)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public double Jt { get; set; }
Property Value
Mass
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
Maximum RW wheel momentum in Nms.
[Unit(UnitType.NEWTON_METRE_SECOND)]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public double MaxMomentum { get; set; }
Property Value
MaxTorque
Max torque, negative value turns off saturating the wheel.
[Unit(UnitType.NEWTON_METRE)]
[Metadata(ContainedIn = "Out_RWConfigMsg")]
public double MaxTorque { get; set; }
Property Value
MinTorque
Min torque of the wheel.
[Unit(UnitType.NEWTON_METRE)]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public double MinTorque { get; set; }
Property Value
NetTorque_B
Torque command for individual RW in the body frame.
[Unit(UnitType.NEWTON_METRE)]
[ReadOnly]
[Metadata(ContainedIn = "Out_RWConfigMsg")]
public double NetTorque_B { get; set; }
Property Value
Omega
Wheel speed.
[Unit(UnitType.RADIAN_PER_SECOND)]
[Metadata(ContainedIn = "Out_RWConfigMsg")]
public double Omega { get; set; }
Property Value
OmegaBefore
Wheel speed one time step before.
[Unit(UnitType.RADIAN_PER_SECOND)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public double OmegaBefore { get; set; }
Property Value
OmegaLimitCycle
Wheel speed that avoids limit cycle with friction.
[Unit(UnitType.RADIAN_PER_SECOND)]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public double OmegaLimitCycle { get; set; }
Property Value
OmegaMax
Max wheel speed, negative values turn off wheel saturation.
[Unit(UnitType.RADIAN_PER_SECOND)]
[Metadata(ContainedIn = "Out_RWConfigMsg")]
public double OmegaMax { get; set; }
Property Value
PositionPrime_CB_B
B-frame derivative of r_WcB_B. Also known as 'rPrime_WcB_B'.
[Unit(UnitType.METRE_PER_SECOND)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public Vector3 PositionPrime_CB_B { get; set; }
Property Value
PositionTilde_CB_B
Tilde matrix of r_WcB_B. This is the skew symmetric matrix of the position of the reaction wheel center of mass Wc relative. This is also known as 'RTildeWcB_B'.
[Unit(UnitType.METRE)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public Matrix3 PositionTilde_CB_B { get; set; }
Property Value
Position_CB_B
Position of the reaction wheel center of mass Wc relative to B in B-frame components. Also known as 'r_WcB_B'.
[Unit(UnitType.METRE)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public Vector3 Position_CB_B { get; set; }
Property Value
RWStatus
Type of operating model.
[Unit(UnitType.NONE)]
[Metadata(ContainedIn = "Out_RWConfigMsg", DisplayName = "Status")]
public RWOperatingStatusType RWStatus { get; set; }
Property Value
SpinRateRatio
The ratio of the current reaction wheel speed to the maximum reaction wheel speed. This is a convenient way to measure the degree of saturation for the reaction wheel.
[Unit(UnitType.NONE)]
[ReadOnly]
public double SpinRateRatio { get; }
Property Value
StaticImbalance
Static imbalance.
[Unit("kg·m")]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public double StaticImbalance { get; set; }
Property Value
Theta
Wheel angle.
[Unit(UnitType.RADIAN)]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public double Theta { get; set; }
Property Value
W2Hat0_B
Initial torque axis unit vector in body frame.
[Unit(UnitType.NONE)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public Vector3 W2Hat0_B { get; set; }
Property Value
W2Hat_B
Current torque axis unit vector in body frame.
[Unit(UnitType.NONE)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public Vector3 W2Hat_B { get; set; }
Property Value
W3Hat0_B
Initial gimbal axis unit vector in body frame.
[Unit(UnitType.NONE)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public Vector3 W3Hat0_B { get; set; }
Property Value
W3Hat_B
Current gimbal axis unit vector in body frame.
[Unit(UnitType.NONE)]
[ReadOnly]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public Vector3 W3Hat_B { get; set; }
Property Value
WheelModelType
Type of imbalance model to use.
[Unit(UnitType.NONE)]
[Metadata(ContainedIn = "Out_RWConfigMsg")]
public RWModelType WheelModelType { get; set; }
Property Value
WheelPosition_B
Position vector of the RW relative to the spacecraft body frame. This is the 'RWB_B' parameter.
[Unit(UnitType.METRE)]
[Metadata(IsAdvanced = true, ContainedIn = "Out_RWConfigMsg")]
public Vector3 WheelPosition_B { get; set; }
Property Value
WheelSpinAxis_B
Spin axis unit vector gsHat in B-frame components.
[Unit(UnitType.NONE)]
[Metadata(ContainedIn = "Out_RWConfigMsg")]
public Vector3 WheelSpinAxis_B { get; set; }
Property Value
Methods
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