FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
Ship::PropulsorActuator Class Reference
+ Inheritance diagram for Ship::PropulsorActuator:
+ Collaboration diagram for Ship::PropulsorActuator:

Public Types

enum  FailureModes {
  failureModeRPMError = 0 , failureModeRPMLock , failureModePitchLock , failureModePitchMalfunction ,
  failureModeAzimuthLock , failureModeAzimuthMalfunction , failureModeFeedbackPitchFreeze , failureModeFeedbackRPMFreeze ,
  failureModeFeedbackAzimuthFreeze , failureModeFeedbackThrustFreeze , failureModes
}
 

Public Member Functions

 PropulsorActuator (const std::string &simObjectName, ISimObjectCreator *const creator)
 
virtual void OdeFcn (const double T, const double *const X, double *const XDot) const
 
void AcceptedStep (double T, const double *X) override
 Reads the failure modes and holds the values of the feedbacks that freeze (MAR-0038)
 
void InitialConditionSetup (const double T, const double *const currentIC, double *const updatedIC, ISimObjectCreator *const creator)
 
const double * RPM (const double T, const double *const X)
 
const double * RPMMotor (const double T, const double *const X)
 
const double * Pitch (const double T, const double *const X)
 
const double * PD (const double T, const double *const X)
 
const double * ConsumedPower (const double T, const double *const X)
 
const double * RPM_FB (const double T, const double *const X)
 
const double * Thrust_FB (const double T, const double *const X)
 
const double * Pitch_FB (const double T, const double *const X)
 
const double * ForceBody2 (const double T, const double *const X)
 
const double * TorqueBody2 (const double T, const double *const X)
 
virtual const double * Angle_FB (const double T, const double *const X)
 
virtual const double * Angle (const double T, const double *const X)
 
- Public Member Functions inherited from Ship::LocalConnection
 LocalConnection (const std::string simObjectName, ISimObjectCreator *const creator)
 
const double * OffsetBody (const double T, const double *const X)
 
const double * RotationBody (const double T, const double *const X)
 
const double * PositionNED (const double T, const double *const X)
 
const double * VelocityNED (const double T, const double *const X)
 
const double * VelocityBody (const double T, const double *const X)
 
const double * OmegaNED (const double T, const double *const X)
 
const double * QuaternionNED (const double T, const double *const X)
 
const double * Axis1NED (const double T, const double *const X)
 
const double * Axis2NED (const double T, const double *const X)
 
const double * Axis3NED (const double T, const double *const X)
 
const double * ForceNED (const double T, const double *const X)
 
const double * TorqueNED (const double T, const double *const X)
 
const double * ForceBody (const double T, const double *const X)
 
const double * TorqueBody (const double T, const double *const X)
 
const double * ParentQuaterion (const double T, const double *const X)
 

Protected Member Functions

virtual double AngleFeedbackValue (const double *X) const
 The angle that Angle_FB reports (the azimuth state; the cycloidal actuator has its own)
 
- Protected Member Functions inherited from Ship::LocalConnection
const double * Force (const double T, const double *const X)
 
const double * Torque (const double T, const double *const X)
 
double AzimuthLossFactor (const double angle) const
 The factor on the force at the yaw angle angle of the connection: 1 with AzimuthLoss off, else l0 cos^2 + l1 sin^2.
 
void ComputePostition (const double T, const double *const X) const
 
Eigen::Vector3d AngularMotorRate (const Eigen::Vector3d &target, const Eigen::Vector3d &state) const
 The rate of the angular motor state: the angle error wrapped to [-pi,pi], divided by the motor constants and clamped to the rate limits (MAR-0084). Used by OdeFcn and ComputePostition.
 
void ComputeForce (const double T, const double *const X) const
 

Protected Attributes

double m_torqueLimit
 
bool m_oscMode
 
ISignalPort * m_inRPMLimits
 
ISignalPort * m_inPitchLimits
 
ISignalPort * m_inAngleLimits
 
ISignalPort * m_inShaftTorque
 
ISignalPort * m_inAvailablePower
 
double m_pitchMaxChangeRate
 
double m_RPMMaxChangeRate
 
double m_aziMaxChangeRate
 
int m_indexMotorPitch
 
int m_indexPropulsorRPM
 
ISignalPort * m_inFailureMode
 
ISignalPort * m_inCommendedRPM
 
ISignalPort * m_inCommandedPitch
 
bool m_isAzimuth
 
double m_azimuthLoss [2]
 
bool m_failureModeRPMError = false
 
bool m_failureModeRPMLock = false
 
bool m_failureModePitchLock = false
 
bool m_failureModePitchMalfunction = false
 
bool m_failureModeAzimuthLock = false
 
bool m_failureModeAzimuthMalfunction = false
 
bool m_failureModeFeedbackPitchFreeze = false
 
bool m_failureModeFeedbackRPMFreeze = false
 
bool m_failureModeFeedbackAzimuthFreeze = false
 
bool m_failureModeFeedbackThrustFreeze = false
 
double m_maxAngle
 
double m_minAngle
 
double m_maxRPM
 
double m_minRPM
 
double m_maxPitch
 
double m_minPitch
 
double m_gearRatio
 
double m_angularMotorMalfunctionRate
 
double m_actualRPM
 
double m_actualMotorRPM
 
double m_actualPitch
 
double m_actualPD
 
double m_actualAngle
 
double m_consumedPower
 
double m_timeConstantPitch
 
double m_timeConstantRPM
 
double m_actualRPMFeedback
 
double m_actualThrustFeedback
 
double m_actualPitchFeedback
 
double m_actualAngleFeedback
 
double m_heldRPMFeedback = 0
 The feedback values held while a feedback freezes (set by AcceptedStep)
 
double m_heldPitchFeedback = 0
 
double m_heldAngleFeedback = 0
 
double m_heldThrustFeedback = 0
 
double m_forceParentBody [3]
 
double m_torqueParentBody [3]
 
- Protected Attributes inherited from Ship::LocalConnection
double m_positionNED [3]
 
double m_omegaNED [3]
 
double m_velocityNED [3]
 
double m_omegaBody [3]
 
double m_velocityBody [3]
 
double m_quaternionNED [4]
 
double m_axis1NED [3]
 
double m_axis2NED [3]
 
double m_axis3NED [3]
 
double m_ForceNED [3]
 
double m_TorqueNED [3]
 
double m_ForceBody [3]
 
double m_TorqueBody [3]
 
bool m_isAzimuth
 
double m_azimuthLoss [2]
 
ISignalPort * m_InParentPositionNED
 
ISignalPort * m_InParentQuaternionNED
 
ISignalPort * m_InParentVelocityNED
 
ISignalPort * m_InParentOmegaNED
 
ISignalPort * m_InForce
 
ISignalPort * m_InMotorAngularTarget [3]
 
ISignalPort * m_InMotorLinearTarget [3]
 
double m_Offset [3]
 
bool m_ForceCalculator
 
bool m_ForceInBodyFrame
 
ISignalPort * m_InOffset
 
ISignalPort * m_InPositionCGNED
 
bool m_isLinearMotor
 
bool m_isAngularMotor
 
int m_stateLinearMotor [3]
 
int m_stateAngularMotor [3]
 
double m_linearMotorMaxChangerate [3]
 
double m_angularMotorMaxChangerate [3]
 
double m_linearMotorConstants [3]
 
double m_angularMotorConstants [3]
 
double m_linearStaticOffset [3]
 
double m_angularStaticOffset [3]
 
double m_linearForceAttackOffset [3]
 
ICommonComputation * m_computePosition
 
ICommonComputation * m_computeForce
 

Member Function Documentation

◆ AngleFeedbackValue()

virtual double Ship::PropulsorActuator::AngleFeedbackValue ( const double *  X) const
protectedvirtual

Reimplemented in Ship::CycloidalActuator.

◆ InitialConditionSetup()

void Ship::PropulsorActuator::InitialConditionSetup ( const double  T,
const double *const  currentIC,
double *const  updatedIC,
ISimObjectCreator *const  creator 
)
virtual

Reimplemented from Ship::LocalConnection.

◆ OdeFcn()

virtual void Ship::PropulsorActuator::OdeFcn ( const double  T,
const double *const  X,
double *const  XDot 
) const
virtual

Reimplemented from Ship::LocalConnection.


The documentation for this class was generated from the following file: