FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
PIDController.h
1#ifndef __PIDController_H
2#define __PIDController_H
3
44#include <fhsim/simobject/SimObject.h>
45#include <string>
46#include <Eigen/Eigen>
47using namespace Eigen;
48
49
50namespace Ship{
51 class PIDController: public SimObject
52 {
53 public:
54 PIDController(const std::string& simObjectName, ISimObjectCreator* const creator);
55 virtual void OdeFcn(const double T, const double* const X, double* const XDot) const;
56 void AcceptedStep(double T, const double* X) override;
57
58 #ifdef FH_VISUALIZATION
60 virtual void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator){}
61
63 virtual void RenderUpdate(const double T, const double* const X){}
64 #endif
65
66 protected:
67 const double* Out(const double T, const double *const X);
68
69 double Kp,Kd,Ki;
70 double m_ControlValue;
71 ISignalPort* m_InCurrent;
72 ISignalPort* m_InCurrentRate;
73 ISignalPort* m_InDesired;
74 ISignalPort* m_InDesiredRate;
76
78 double m_LastValue;
79 double m_LastTime;
80 };
81}
82#endif
Definition PIDController.h:52
ISignalPort * m_InCurrentRate
Current position.
Definition PIDController.h:72
int m_IErrorIntegral
Desired position.
Definition PIDController.h:75
double m_LastTime
used in numerical differentiation
Definition PIDController.h:79
void AcceptedStep(double T, const double *X) override
returns object derivatives as a function of time, states and input ports
double m_CurrentNumericalDerivative
The relative index of the StatePositionErrorSum state in the state array.
Definition PIDController.h:77
const double * Out(const double T, const double *const X)
updates the numerical derivative of Current, with Differentiation="Numerical"
virtual void OdeFcn(const double T, const double *const X, double *const XDot) const
reads parameters, registers states, input/output ports and shared resources
ISignalPort * m_InDesired
Current position.
Definition PIDController.h:73
ISignalPort * m_InDesiredRate
Desired position.
Definition PIDController.h:74
Simple waypoint object.
Definition CableAttach.h:58