trick/trick_models/cannon/aero/include/cannon_aero.h
Alex Lin 14a75508a3 Cleaning up once include variables and copyright cleanup.
Changed all header file once include variables to follow the same naming
convention and not start with any underscores.  Also deleted old
incorrect copyright notices.  Also removed $Id: tags from all files.

Fixes #14.  Fixes #22.
2015-03-23 16:03:14 -05:00

76 lines
3.5 KiB
C

/*********************************** TRICK HEADER **************************
PURPOSE: (Test Baseball)
***************************************************************************/
#ifndef CANNON_AERO_H
#define CANNON_AERO_H
#include "sim_services/Integrator/include/regula_falsi.h"
#include "sim_services/include/Flag.h"
typedef enum {
Hard_Coded_Coefficient_Lift, /* You come up with Cl */
Smits_Smith, /* Cl ~= 0.54*S^0.4 (S = rw/V) */
Adair_Giordano, /* Lift_Force = mass*0.00041*w_cross_V */
Tombras /* Cl = 1/(2.022 + 0.981v/w) */
} Lift_Estimation_Method ;
typedef struct {
double pos[3] ; /* M position */
double vel[3] ; /* M/s velocity */
double acc[3] ; /* M/s2 acceleration */
double omega[3] ; /* r/s Angular velocity of cannonball */
double theta ; /* r Angle from x-axis to axis rotation */
double phi ; /* r Angle from z-axis to axis rotation */
double omega0 ; /* r/s Magnitude of angular velocity about
axis of rotation */
/* Impact */
REGULA_FALSI rf ; /* -- Dynamic event params for impact */
int impact ; /* -- Has impact occured */
double impact_pos ; /* M How far ball lands in field */
/* Forces */
double force_gravity[3] ; /* N Gravitational force */
double force_drag[3] ; /* N Drag force opposite dir of velocity */
double force_magnus[3] ; /* N Force due to spin, dir grav cross drag */
double force_cross[3] ; /* N Side directional force */
double force_total[3] ; /* N Sum of all forces */
/* Force magnitudes */
double mag_force_drag ; /* N Magnitude of drag force */
double mag_force_magnus ; /* N Magnitude of magnus force */
double mag_force_cross ; /* N Magnitude of cross force */
double mag_omega ; /* r/s Magnitude of angular velocity */
void ** force_collect ; /* ** For collect statement */
/* Environment and Properties */
double mass ; /* kg Mass of cannonball */
double air_density ; /* kg/M3 Air density at 20C */
double ball_radius ; /* M Radius of cannonball */
double ball_area ; /* M2 Cross sectional area of ball */
double spin_parameter ; /* -- S=r*omega/speed */
double g ; /* M/s2 Gravitational acceleration */
/* Coefficients drag, lift and cross */
Lift_Estimation_Method lift_method ; /* -- How to find lift force */
double coefficient_drag ; /* -- Drag coefficient */
double coefficient_lift ; /* -- Lift coefficient */
double coefficient_cross ; /* -- Cross-Force coefficient */
/* Jet */
int jet_on ; /* -- 0|1 */
int jet_count ; /* -- How many jet firings? */
double force_jet[3] ; /* N Jet force per firing */
double force_jet_Z_plus ; /* N Configurable force of jet in Z+ direction */
/* Firing the Jet for Monte Carlo Runs */
double time_to_fire_jet_1 ; /* s First jet firing time */
double time_to_fire_jet_2 ; /* s Second jet firing time */
double time_to_fire_jet_3 ; /* s Third jet firing time */
double time_to_fire_jet_4 ; /* s Fourth jet firing time */
} CANNON_AERO ;
#endif