Aerospace Control Framework 1.0
sc_aero.h
Go to the documentation of this file.
1/*
2 * aero.h
3 *
4 * Programmers: Mike Paluszek, Eloisa de Castro
5 *
6 * Copyright (c) 2010-2011, 2021 Princeton Satellite Systems. All rights reserved.
7 *
8 * Aerodynamic functions.
9 */
10
34#ifndef __SC_AERO__
35#define __SC_AERO__
36
37#ifdef AS_OS_WINDOWS
38#include "matrixlib.h"
39#else
40#include <MatrixLib/MatrixLib.h>
41#endif
42
43#include <SCControl/sc_constants.h>
44
45extern "C++"
46{
47
49 typedef struct aero_angles_s {
50 double alpha;
51 double beta;
52 double alpha_dot;
53 double beta_dot;
54 double v_total;
55 double v_total_dot;
57
58
60 typedef struct low_speed_aero_s {
61 double length;
62 double oswaldEff;
63 double aspectRatio;
64 double thickness;
65 double s;
66 double zetaTrans;
67 double cP;
68 double alpha0;
69 ml_matrix axis;
70 ml_matrix r_surf;
71 ml_matrix q_body_to_hinge;
73
75 typedef struct suborb_aero_s {
76 double s;
77 ml_matrix axis;
78 ml_matrix r_surf;
79 ml_matrix q_body_to_hinge;
81
83 ml_matrix low_speed_lift_and_drag( double angle, low_speed_aero_t d, const ml_matrix & v, double rho, const ml_matrix & c, double speedOfSound, double kinematicViscosity );
84
86 ml_matrix suborb_lift_and_drag( double angle, suborb_aero_t d, const ml_matrix & v, double rho, const ml_matrix & c, double speedOfSound );
87
89 ml_matrix simple_lift_and_drag( double v, double k, double cD0, double cLAlpha, double s, double density, double alpha );
90
92 ml_matrix lift_and_drag( double v, double rho, double kinematicViscosity, double speedOfSound, double length, double s, double oswaldEff, double aspectRatio, double zetaTrans, double thickness );
93
95 aero_angles_t alpha_and_beta( const ml_matrix & v_body, const ml_matrix & v_body_dot );
96
98 aero_angles_t alpha_and_beta(const ml_matrix & v_body );
99
101 ml_matrix lift_vector( const ml_matrix & v_body );
102
104 ml_matrix body_to_wind( double alpha, double beta );
105
107 double local_angle_of_attack( double alpha, const ml_matrix & aB, double delta );
108
110 double rankine_hugoniot_factor( double gamma, double m, double p_inf );
111
112}
113
114#endif
ml_matrix body_to_wind(double alpha, double beta)
Body to wind axes.
Definition: sc_aero.cc:463
ml_matrix suborb_lift_and_drag(double angle, suborb_aero_t d, const ml_matrix &v, double rho, const ml_matrix &c, double speedOfSound)
suborb lift and drag torque
double local_angle_of_attack(double alpha, const ml_matrix &aB, double delta)
Body to wind axes.
Definition: sc_aero.cc:492
double rankine_hugoniot_factor(double gamma, double m, double p_inf)
Pressure modification for Newtonian.
Definition: sc_aero.cc:529
ml_matrix lift_vector(const ml_matrix &v_body)
Lift vector.
Definition: sc_aero.cc:446
struct aero_angles_s aero_angles_t
Structure for storing orbit data.
struct suborb_aero_s suborb_aero_t
Structure for storing the suborb aero data.
ml_matrix lift_and_drag(double v, double rho, double kinematicViscosity, double speedOfSound, double length, double s, double oswaldEff, double aspectRatio, double zetaTrans, double thickness)
Mach dependent lift and drag.
Definition: sc_aero.cc:262
struct low_speed_aero_s low_speed_aero_t
Structure for storing the low speed aero data.
ml_matrix low_speed_lift_and_drag(double angle, low_speed_aero_t d, const ml_matrix &v, double rho, const ml_matrix &c, double speedOfSound, double kinematicViscosity)
Low speed lift and drag torque.
Definition: sc_aero.cc:30
aero_angles_t alpha_and_beta(const ml_matrix &v_body, const ml_matrix &v_body_dot)
Compute the angle of attack and sideslip.
Definition: sc_aero.cc:318
ml_matrix simple_lift_and_drag(double v, double k, double cD0, double cLAlpha, double s, double density, double alpha)
Simple lift and drag coefficients.
Definition: sc_aero.cc:234
Structure for storing orbit data.
Definition: sc_aero.h:49
double beta_dot
Derivative of sideslip angle (rad/s).
Definition: sc_aero.h:53
double alpha
Angle of attack.
Definition: sc_aero.h:50
double v_total
Total velocity.
Definition: sc_aero.h:54
double v_total_dot
Derivative of total velocity.
Definition: sc_aero.h:55
double alpha_dot
Derivative of angle of attack (rad/s).
Definition: sc_aero.h:52
double beta
Sideslip.
Definition: sc_aero.h:51
Structure for storing the low speed aero data.
Definition: sc_aero.h:60
ml_matrix axis
Axis of rotation.
Definition: sc_aero.h:69
double cP
The parasitic drag coefficient.
Definition: sc_aero.h:67
double length
The characteristic length.
Definition: sc_aero.h:61
double thickness
The thickness ratio.
Definition: sc_aero.h:64
double s
The surface area.
Definition: sc_aero.h:65
double oswaldEff
The Oswald efficiency factor.
Definition: sc_aero.h:62
double alpha0
Zero lift angle.
Definition: sc_aero.h:68
double aspectRatio
The wing aspect ratio.
Definition: sc_aero.h:63
double zetaTrans
The transonic transition factor.
Definition: sc_aero.h:66
ml_matrix q_body_to_hinge
q body to hinge axis
Definition: sc_aero.h:71
ml_matrix r_surf
Location of hinge.
Definition: sc_aero.h:70
Structure for storing the suborb aero data.
Definition: sc_aero.h:75
double s
The surface area.
Definition: sc_aero.h:76
ml_matrix axis
Axis of rotation.
Definition: sc_aero.h:77
ml_matrix r_surf
Location of hinge.
Definition: sc_aero.h:78
ml_matrix q_body_to_hinge
q body to hinge axis
Definition: sc_aero.h:79