14#include <marenv/marenv.h>
205 double pos[3] = {-0.85, 0.0, 0.0};
239 double axialDragCoeff,
double wrench_d[6]);
323 double rho,
double crossFlowDragCoeff,
int sectionCount,
const double* sectionX,
324 const double* sectionDiameter,
const double* sectionLength,
double wrench_d[6]);
356 double crossFlowDragCoeff,
int sectionCount,
const double* sectionX,
357 const double* sectionDiameter,
const double* sectionLength,
double dWrench_dVelocity[6][6]);
390 int sectionCount,
const double* sectionX,
const double* sectionDiameter,
391 const double* sectionLength,
double wrench_d[6],
double (*dWrench_dVelocity)[6] =
nullptr);
441 double deflection,
const Rudder& rudder,
double wrench_d[6]);
473 const double omega_d[3],
double deflection,
const Rudder& rudder,
474 double dWrench_dVelocity[6][6],
double dWrench_dDeflection[6]);
496 const Coefficients& c,
const double relVel_d[3],
const double omega_d[3],
497 double rudderDive,
double rudderYaw,
double dWrench_dVelocity[6][6]);
526 const double relVel_d[3],
const double omega_d[3],
double rudderDive,
double rudderYaw,
549 const Coefficients& c,
double cogZ,
double cruiseThrust,
double diveAngle);
void AddCrossFlowStripDerivative(const double relVel_d[3], const double omega_d[3], double rho, double crossFlowDragCoeff, int sectionCount, const double *sectionX, const double *sectionDiameter, const double *sectionLength, double dWrench_dVelocity[6][6])
void AxialDragWrench(const double relVel_d[3], double rho, double frontalArea, double axialDragCoeff, double wrench_d[6])
constexpr int kSectionCount
The number of hull sections the cross-flow strip theory divides the hull into.
Definition AuvHullLaw.h:255
double RollDampingMoment(double rollRate, double linear, double quadratic)
void CrossFlowStripWrench(const double relVel_d[3], const double omega_d[3], double rho, double crossFlowDragCoeff, int sectionCount, const double *sectionX, const double *sectionDiameter, const double *sectionLength, double wrench_d[6])
void HullLoadDerivative(const Hull &hull, const Sections §ions, const Rudder &rudder, const Coefficients &c, const double relVel_d[3], const double omega_d[3], double rudderDive, double rudderYaw, double dWrench_dVelocity[6][6])
void RudderWrench(RudderPlane plane, const double relVel_d[3], const double omega_d[3], double deflection, const Rudder &rudder, double wrench_d[6])
Hull HullPropertiesOf(double length, double diameter, double averageDensity)
constexpr double kCrossFlowSpeedEpsilon
Definition AuvHullLaw.h:274
void SlenderBodyLiftWrench(const double relVel_d[3], const double omega_d[3], double rho, int sectionCount, const double *sectionX, const double *sectionDiameter, const double *sectionLength, double wrench_d[6], double(*dWrench_dVelocity)[6]=nullptr)
double RollDampingDerivative(double rollRate, double linear, double quadratic)
constexpr double kInflowSpeedEpsilon
Definition AuvHullLaw.h:421
RudderPlane
Definition AuvHullLaw.h:194
@ Dive
The stern planes, working in the body x-z plane and commanded by RudderDive.
@ Yaw
The turning fins, working in the body x-y plane and commanded by RudderYaw.
std::string FinAuthorityWarning(const std::string &simObjectName, const Hull &hull, const Rudder &rudder, const Coefficients &c, double cogZ, double cruiseThrust, double diveAngle)
void AddHullLoad(const Hull &hull, const Sections §ions, const Rudder &rudder, const Coefficients &c, const double relVel_d[3], const double omega_d[3], double rudderDive, double rudderYaw, double wrench[6])
void RudderWrenchJacobian(RudderPlane plane, const double relVel_d[3], const double omega_d[3], double deflection, const Rudder &rudder, double dWrench_dVelocity[6][6], double dWrench_dDeflection[6])
double AxialDragDerivative(double surge, double rho, double frontalArea, double axialDragCoeff)
double DefaultCrossFlowDragCoeff()
constexpr double seawaterDensity
Ocean water density [kg/m^3].
Definition marenv.h:20
The coefficients of the hull laws. rho is a copy of the water density of the host (as Rudder::rho is)...
Definition AuvHullLaw.h:286
double rho
The density of the sea water, kg/m³.
Definition AuvHullLaw.h:287
double rollDampingQuadratic
The quadratic roll damping, N·m·s².
Definition AuvHullLaw.h:291
double crossFlowDrag
The two-dimensional cross-flow drag coefficient of a section.
Definition AuvHullLaw.h:289
double rollDampingLinear
The linear roll damping, N·m·s.
Definition AuvHullLaw.h:290
double axialDrag
The drag coefficient on the frontal area.
Definition AuvHullLaw.h:288
Definition AuvHullLaw.h:178
double mass
Vehicle mass, kg.
Definition AuvHullLaw.h:182
double izz
Yaw inertia about the body z axis, kg·m².
Definition AuvHullLaw.h:185
double frontalArea
Frontal area of the cylinder, pi r², m².
Definition AuvHullLaw.h:181
double ixx
Roll inertia about the body x axis, kg·m².
Definition AuvHullLaw.h:183
double radius
Hull radius, m.
Definition AuvHullLaw.h:179
double volume
Displaced volume, m³.
Definition AuvHullLaw.h:180
double iyy
Pitch inertia about the body y axis, kg·m².
Definition AuvHullLaw.h:184
Everything one fin plane needs beyond its inflow and its commanded deflection.
Definition AuvHullLaw.h:201
AuvFoilProperties foil
The lift and drag coefficient parameters.
Definition AuvHullLaw.h:202
double pos[3]
Where the fin wrench acts, body frame, m.
Definition AuvHullLaw.h:205
double rho
The density of the sea water, kg/m³.
Definition AuvHullLaw.h:203
double maxDeflection
The mechanical stop on the command, rad.
Definition AuvHullLaw.h:206
double area
The planform area of the fin plane, m².
Definition AuvHullLaw.h:204
The strip-theory sections of the hull, kSectionCount of each array.
Definition AuvHullLaw.h:278
double diameter[kSectionCount]
The cross-flow diameter of each section, m.
Definition AuvHullLaw.h:280
double x[kSectionCount]
The body-frame x of each section centroid, m.
Definition AuvHullLaw.h:279
double length[kSectionCount]
The length of each section, m.
Definition AuvHullLaw.h:281