1 /**********************************************************************
3 * FILENAME: uiuc_wrapper.cpp
5 * ----------------------------------------------------------------------
7 * DESCRIPTION: A wrapper(interface) between the UIUC Aeromodel (C++ files)
8 * and the LaRCsim FDM (C files)
10 * ----------------------------------------------------------------------
12 * STATUS: alpha version
14 * ----------------------------------------------------------------------
18 * ----------------------------------------------------------------------
20 * HISTORY: 01/26/2000 initial release
22 * ----------------------------------------------------------------------
24 * AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
26 * ----------------------------------------------------------------------
30 * ----------------------------------------------------------------------
34 * ----------------------------------------------------------------------
38 * ----------------------------------------------------------------------
42 * ----------------------------------------------------------------------
46 * ----------------------------------------------------------------------
48 * COPYRIGHT: (C) 2000 by Michael Selig
50 * This program is free software; you can redistribute it and/or
51 * modify it under the terms of the GNU General Public License
52 * as published by the Free Software Foundation.
54 * This program is distributed in the hope that it will be useful,
55 * but WITHOUT ANY WARRANTY; without even the implied warranty of
56 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
57 * GNU General Public License for more details.
59 * You should have received a copy of the GNU General Public License
60 * along with this program; if not, write to the Free Software
61 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
62 * USA or view http://www.gnu.org/copyleft/gpl.html.
64 ***********************************************************************/
67 #include "uiuc_aircraft.h"
68 #include "uiuc_aircraftdir.h"
69 #include "uiuc_coefficients.h"
70 #include "uiuc_engine.h"
71 #include "uiuc_aerodeflections.h"
72 #include "uiuc_recorder.h"
73 #include "uiuc_menu.h"
74 #include "../LaRCsim/ls_generic.h"
77 extern "C" void uiuc_init_aeromodel ();
78 extern "C" void uiuc_force_moment(double dt);
79 extern "C" void uiuc_engine_routine();
81 AIRCRAFT *aircraft_ = new AIRCRAFT;
82 AIRCRAFTDIR *aircraftdir_ = new AIRCRAFTDIR;
84 void uiuc_init_aeromodel ()
88 if (aircraft_dir != "")
89 aircraft = aircraft_dir + "/";
91 aircraft += "aircraft.dat";
92 cout << "We are using "<< aircraft << endl;
93 uiuc_initializemaps(); // Initialize the <string,int> maps
94 uiuc_menu(aircraft); // Read the specified aircraft file
97 void uiuc_force_moment(double dt)
99 double qS = Dynamic_pressure * Sw;
100 double qScbar = qS * cbar;
101 double qSb = qS * bw;
103 uiuc_aerodeflections();
106 /* Calculate the wind axis forces */
107 F_X_wind = -1 * CD * qS;
109 F_Z_wind = -1 * CL * qS;
111 /* wind-axis to body-axis transformation */
112 F_X_aero = F_X_wind * Cos_alpha * Cos_beta - F_Y_wind * Cos_alpha * Sin_beta - F_Z_wind * Sin_alpha;
113 F_Y_aero = F_X_wind * Sin_beta + F_Y_wind * Cos_beta;
114 F_Z_aero = F_X_wind * Sin_alpha * Cos_beta - F_Y_wind * Sin_alpha * Sin_beta + F_Z_wind * Cos_alpha;
116 /* Moment calculations */
118 M_m_aero = Cm * qScbar;
124 void uiuc_engine_routine()
129 //end uiuc_wrapper.cpp