79 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
81 void Compute(
const double T,
const double *
const X)
const;
82 void OdeFcn(
const double T,
const double *
const X,
double *
const XDot)
const;
83 void PreOdeFcn(
const double T,
const double *
const X);
87 const double * ForceNED(
const double T,
const double *
const X);
88 const double * TorqueNED(
const double T,
const double *
const X);
90 const double * ForceBody(
const double T,
const double *
const X);
91 const double * TorqueBody(
const double T,
const double *
const X);
93 const double* ShaftTorqueCorrectedBody(
const double T,
const double*
const X);
94 const double* ShaftTorqueBody(
const double T,
const double*
const X);
96 const double* ShaftPowerCorrected(
const double T,
const double*
const X);
97 const double* ShaftPower(
const double T,
const double*
const X);
99 void FinalSetup(
const double T,
const double *
const X, ISimObjectCreator*
const creator);
100 #ifdef FH_VISUALIZATION
101 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
102 void RenderUpdate(
const double T,
const double*
const X);
106 double Ct (
double intensity )
const{
107 return std::pow(std::sin( intensity*sfh::pi/2 ),2.0);
110 #ifdef FH_VISUALIZATION
112 bool m_reverseRotationDirection;
114 Ogre::SceneNode *m_RenderNode;
115 Ogre::SceneNode *m_RenderNodeFoil;
120 mutable double m_ct_angle;
122 mutable double m_cq_angle;
126 mutable double m_shaftTorque;
127 mutable double m_shaftPower;
130 double m_torqueScale;
131 double m_thrustScale;
133 mutable Eigen::Vector3d m_force;
134 mutable Eigen::Vector3d m_torque;
136 mutable Eigen::Vector3d m_forceBody;
137 mutable Eigen::Vector3d m_torqueBody;
139 ICommonComputation * m_compute;
141 ISignalPort * m_inRPM;
142 ISignalPort * m_inThrustIntensity;
143 ISignalPort * m_inThrustVectorBody;
145 ISignalPort * m_inPositionNED;
146 ISignalPort * m_inVelocityNED;
147 ISignalPort * m_inOrientationNED;
149 environment::EnvironmentProvider *m_environment =
nullptr;
150 std::shared_ptr<CycloidalPropellerCurrentField> m_currentField;