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
100protected:
102 double SpeedAt(const double T, const double* const X) const;
103
104 ISignalPort* m_InSpeedRef;
105 ISignalPort* m_InForce;
106 int m_IStateLength;
107 int m_IStateEnergy;
108
109 double m_minForce;
110 double m_maxForce;
111 double m_minSpeed;
112 double m_maxSpeed;
113 double m_minLength;
114 double m_maxLength;
115
116 mutable double m_power;
117};
Definition Actuator.h:79
double SpeedAt(const double T, const double *const X) const
The speed the actuator moves at, at (T, X): the commanded speed bounded by the force,...