1#ifndef CycloidalPropeller_h_
2#define CycloidalPropeller_h_
27#include <sfh/constants.h>
30#include <CEnvironment.h>
35 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
37 void Compute(
const double T,
const double *
const X);
38 void OdeFcn(
const double T,
const double *
const X,
double *
const XDot,
const bool IsMajorTimeStep);
40 const double * ForceNED(
const double T,
const double *
const X);
41 const double * TorqueNED(
const double T,
const double *
const X);
43 const double * ForceBody(
const double T,
const double *
const X);
44 const double * TorqueBody(
const double T,
const double *
const X);
46 const double* ShaftTorqueCorrectedBody(
const double T,
const double*
const X);
47 const double* ShaftTorqueBody(
const double T,
const double*
const X);
49 const double* ShaftPowerCorrected(
const double T,
const double*
const X);
50 const double* ShaftPower(
const double T,
const double*
const X);
52 void GetCurrent(
const double T,
const double*
const X,
const double position[3],
double* currentVelocity);
54 void FinalSetup(
const double T,
const double *
const X, ISimObjectCreator*
const creator);
55 #ifdef FH_VISUALIZATION
56 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
57 void RenderUpdate(
const double T,
const double*
const X);
61 double Ct (
double intensity )
const{
62 return std::pow(std::sin( intensity*sfh::pi/2 ),2.0);
65 #ifdef FH_VISUALIZATION
67 bool m_reverseRotationDirection;
69 Ogre::SceneNode *m_RenderNode;
70 Ogre::SceneNode *m_RenderNodeFoil;
88 Eigen::Vector3d m_force;
89 Eigen::Vector3d m_torque;
91 Eigen::Vector3d m_forceBody;
92 Eigen::Vector3d m_torqueBody;
94 ICommonComputation * m_compute;
96 ISignalPort * m_inRPM;
97 ISignalPort * m_inThrustIntensity;
98 ISignalPort * m_inThrustVectorBody;
100 ISignalPort * m_inPositionNED;
101 ISignalPort * m_inVelocityNED;
102 ISignalPort * m_inOrientationNED;
Definition: CEnvironment.h:10
Definition: ICurrentField.h:4
Definition: CycloidalPropeller.h:33
Simple waypoint object.
Definition: CableAttach.h:16