127#include <Eigen/Eigen>
129#include <fhsim/simobject/SimObject.h>
131using namespace Eigen;
136 TrawlBeam(
const std::string& simObjectName, ISimObjectCreator*
const creator);
137 void InitialConditionSetup(
const double T,
const double*
const currentIC,
double*
const updatedIC, ISimObjectCreator*
const creator);
138 void FinalSetup(
const double T,
const double*
const X, ISimObjectCreator*
const creator);
139 virtual void OdeFcn(
const double T,
const double*
const X,
double*
const XDot)
const;
140 virtual void PreOdeFcn(
const double T,
const double*
const X);
142 bool HasJacobians()
const override;
143 void OdeJacobian(
double T,
const double* X,
double* J,
int nStates)
override;
144 int GetJacobianSparsity(
int nStates,
int* rowPtr,
int* colIdx)
override;
146 const double* ShipForce(
const double T,
const double*
const X);
147 const double* Error(
const double T,
const double*
const X);
148 const double* ErrorI(
const double T,
const double*
const X);
149 const double* ErrorD(
const double T,
const double*
const X);
150 const double* StateDist(
const double T,
const double*
const X);
151 const double* StateVel(
const double T,
const double*
const X);
152 const double* PositionNED(
const double T,
const double*
const X,
int index);
153 const double* VelocityNED(
const double T,
const double*
const X,
int index);
156 ISignalPort *m_inForceStbd, *m_inForcePort;
158 void compute(
const double T,
const double*
const X)
const;
159 ICommonComputation* m_compute;
164 mutable double m_position[6];
165 mutable double m_velocity[6];
174 double m_forceSaturation;
176 double m_kp, m_kd, m_ki;
179 mutable double m_outError;
180 mutable double m_outForce;
182 double m_speedTravel;
Definition TrawlBeam.h:134
bool IsForceSaturated(double shipForce) const
True when SaturationForce is set and the ship force has reached it.
void InitialConditionSetup(const double T, const double *const currentIC, double *const updatedIC, ISimObjectCreator *const creator)
reads parameters, registers states, input/output ports and shared resources
virtual void PreOdeFcn(const double T, const double *const X)
returns object derivatives as a function of time, states and input ports