FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
Actuator.h
1#pragma once
2
75#include <fhsim/simobject/SimObject.h>
76#include <string>
77
78class Actuator : public SimObject
79{
80public:
81 Actuator(std::string simObjectName, ISimObjectCreator* creator);
82
83 ~Actuator();
84 void OdeFcn(const double dT, const double* const adX, double* const adXDot) const;
85
91 bool HasJacobians() const override;
92 void OdeJacobian(double T, const double* X, double* J, int nStates) override;
93 int GetJacobianSparsity(int nStates, int* rowPtr, int* colIdx) override;
95
96 const double* OutLength(const double T, const double* const X);
97 const double* OutPower(const double T, const double* const X);
98 const double* OutEnergy(const double T, const double* const X);
99
100
101#ifdef FH_VISUALIZATION
103 virtual void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator) { }
104
106 virtual void RenderUpdate(const double T, const double* const X) { }
107#endif
108
109protected:
110 ISignalPort* m_InSpeedRef;
111 ISignalPort* m_InForce;
112 int m_IStateLength;
113 int m_IStateEnergy;
114
115 double m_minForce;
116 double m_maxForce;
117 double m_minSpeed;
118 double m_maxSpeed;
119 double m_minLength;
120 double m_maxLength;
121
122 mutable double m_power;
123};
Definition Actuator.h:79