mirror of
https://github.com/nasa/trick.git
synced 2025-01-15 09:20:05 +00:00
70 lines
2.1 KiB
C++
70 lines
2.1 KiB
C++
/************************************************************************
|
|
PURPOSE: (Simulate a ... .)
|
|
LIBRARY DEPENDENCIES:
|
|
((CrewModule/src/CrewModuleDynamics.o)((CrewModule/src/CrewModuleShape.o)))
|
|
**************************************************************************/
|
|
#ifndef CREW_MODULE_DYNAMICS_HH
|
|
#define CREW_MODULE_DYNAMICS_HH
|
|
|
|
#include "../include/CrewModuleShape.hh"
|
|
|
|
class CrewModuleDynamics {
|
|
public:
|
|
|
|
double R[3][3]; /* (--) Vehicle body to World rotation matrix. */
|
|
double Rdot[3][3];
|
|
double angular_velocity[3];
|
|
double I_body[3][3]; /* (kg*m2) Inertia Tensor in Body frame. */
|
|
double I_body_inverse[3][3];
|
|
|
|
double momentum[3]; /* (N*s) Linear Momentum */
|
|
double force_total[3]; /* (N) */
|
|
double force_gravity[3]; /* (N) */
|
|
double force_buoyancy[3]; /* (N) */
|
|
double force_drag[3]; /* (N) */
|
|
|
|
double position[3]; // (m) Position (world coordinates).
|
|
double velocity[3]; // (m/s) Velocity (world coordinates).
|
|
double mass_vehicle; // (kg) Vehicle mass
|
|
|
|
double angular_momentum[3]; /* (kg*m2/s) Angular Momentum */
|
|
|
|
double torque_buoyancy[3]; /* (N*m) */
|
|
double torque_drag[3]; /* (N*m) */
|
|
double torque_total[3]; /* (N*m) */
|
|
|
|
double center_of_buoyancy[3];
|
|
|
|
double volume_displaced; // (m^3)
|
|
double mass_displaced; // (kg) mass of displaced water.
|
|
|
|
CrewModuleShape crewModuleShape;
|
|
|
|
double density_of_water; // (kg/m^3) density of water.
|
|
|
|
CrewModuleDynamics();
|
|
|
|
void init_defaults();
|
|
void init_inertia_tensor(double A, double B, double C);
|
|
void calcVolumeAndCenterOfBuoyancy();
|
|
void calcVelocity();
|
|
void calcRDot();
|
|
void calcAngularVelocity();
|
|
|
|
void calcTotalTorque();
|
|
void calcBuoyancyTorque();
|
|
void calcDragTorque();
|
|
|
|
void calcMassDisplaced();
|
|
|
|
void calcTotalForce();
|
|
void calcBuoyancyForce();
|
|
void calcGravityForce();
|
|
void calcDragForce();
|
|
|
|
int calc_derivatives();
|
|
int calc_state();
|
|
|
|
};
|
|
#endif
|