FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
WpHeadingController.h
1#pragma once
2
55#include <string>
56
57#include <Eigen/Eigen>
58using namespace Eigen;
59
60#include "ControlAlgorithm.h"
61
62
63namespace Ship{
65 {
66 public:
67 WpHeadingController(const std::string& simObjectName, ISimObjectCreator* const creator);
68 const double* TorqueBODY(const double T, const double* const X);
69 void OdeFcn(const double T, const double* const X, double* const XDot) const;
70 void ComputeHeadingError(const double T, const double* const X) const;
71 const double* RudderAngle(const double T,const double* const X);
72 const double* HeadingError(const double T,const double* const X);
73
74
75 #ifdef FH_VISUALIZATION
77 virtual void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator){}
78
80 virtual void RenderUpdate(const double T, const double* const X){}
81 #endif
82
83 private:
84 double Kp_yaw;
85 double Ki_yaw;
86 double Kd_yaw;
87 double Kdelta;
88 double m_dM;
89 double m_dD;
90 double m_dOmega_b;
91 double zeta = 0.0;
92
93 double m_adTorqueBODY[3] = {0.0, 0.0, 0.0};
94 mutable double heading_error = 0.0;
95 double m_dRudderangle = 0.0;
96 double directionparameter;
97
98 int m_headingErrorIntegralIndex;
99
100 ISignalPort* adStateRotation;
101 ISignalPort* adStateOmega;
102 ISignalPort* crossTrackErrorPort;
103 ISignalPort* desiredHeadingPort;
104
105
106 #ifdef FH_VISUALIZATION
107 Ogre::SceneNode* m_RenderNode;
108 double m_Radius;
109 std::string m_Material;
110 double m_Color[3];
111 #endif
112
113 };
114}
Definition ControlAlgorithm.h:22
Definition WpHeadingController.h:65
WpHeadingController(const std::string &simObjectName, ISimObjectCreator *const creator)
reads parameters, registers states, input/output ports and shared resources
void OdeFcn(const double T, const double *const X, double *const XDot) const
returns object derivatives as a function of time, states and input ports
void ComputeHeadingError(const double T, const double *const X) const
sets heading_error at (T, X); OdeFcn and the output ports call it
Simple waypoint object.
Definition CableAttach.h:58