1 /**********************************************************************
3 FILENAME: uiuc_aircraft.h
5 ----------------------------------------------------------------------
7 DESCRIPTION: creates maps for all keywords and variables expected in
8 aircraft input file, includes all parameters that
9 define the aircraft for use in the uiuc aircraft models.
11 ----------------------------------------------------------------------
15 ----------------------------------------------------------------------
19 ----------------------------------------------------------------------
21 HISTORY: 01/26/2000 initial release
22 02/10/2000 (JS) changed aeroData to aeroParts (etc.)
23 added Twin Otter 2.5 equation variables
24 added Dx_cg (etc.) to init & record maps
25 added controlsMixer to top level map
26 02/18/2000 (JS) added variables needed for 1D file
27 reading of CL and CD as functions of alpha
28 02/29/2000 (JS) added variables needed for 2D file
29 reading of CL, CD, and Cm as functions of
30 alpha and delta_e; of CY and Cn as function
31 of alpha and delta_r; and of Cl and Cn as
32 functions of alpha and delta_a
33 03/02/2000 (JS) added record features for 1D and 2D
35 03/29/2000 (JS) added Cmfa interpolation functions
36 and Weight; added misc map
37 04/01/2000 (JS) added throttle, longitudinal, lateral,
38 and rudder inputs to record map
39 03/09/2001 (DPM) added support for gear
40 06/18/2001 (RD) added variables needed for aileron,
41 rudder, and throttle_pct input files.
42 Added Alpha, Beta, U_body, V_body, and
43 W_body to init map. Added variables
44 needed to ignore elevator, aileron, and
45 rudder pilot inputs. Added CZ as a function
46 of alpha, CZfa. Added twinotter to engine
48 07/05/2001 (RD) added pilot_elev_no_check, pilot_ail_no
49 _check, and pilot_rud_no_check variables.
50 This allows pilot to fly aircraft after the
51 input files have been used.
52 08/27/2001 (RD) Added xxx_init_true and xxx_init for
53 P_body, Q_body, R_body, Phi, Theta, Psi,
54 U_body, V_body, and W_body to help in
55 starting the A/C at an initial condition.
56 ----------------------------------------------------------------------
58 AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
59 Jeff Scott <jscott@mail.com>
60 Robert Deters <rdeters@uiuc.edu>
61 David Megginson <david@megginson.com>
63 ----------------------------------------------------------------------
67 ----------------------------------------------------------------------
71 ----------------------------------------------------------------------
75 ----------------------------------------------------------------------
77 CALLED BY: uiuc_1DdataFileReader.cpp
78 uiuc_2DdataFileReader.cpp
79 uiuc_aerodeflections.cpp
82 uiuc_initializemaps.cpp
86 ----------------------------------------------------------------------
90 ----------------------------------------------------------------------
92 COPYRIGHT: (C) 2000 by Michael Selig
94 This program is free software; you can redistribute it and/or
95 modify it under the terms of the GNU General Public License
96 as published by the Free Software Foundation.
98 This program is distributed in the hope that it will be useful,
99 but WITHOUT ANY WARRANTY; without even the implied warranty of
100 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
101 GNU General Public License for more details.
103 You should have received a copy of the GNU General Public License
104 along with this program; if not, write to the Free Software
105 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
106 USA or view http://www.gnu.org/copyleft/gpl.html.
108 **********************************************************************/
114 #include <simgear/compiler.h>
116 #include <FDM/LaRCsim/ls_types.h>
119 #include STL_IOSTREAM
122 #include "uiuc_parsefile.h"
125 #if !defined (SG_HAVE_NATIVE_SGI_COMPILERS)
126 SG_USING_STD(iostream);
128 #if defined ( macintosh ) || defined ( _MSC_VER )
129 SG_USING_STD(ofstream);
133 typedef stack :: iterator LIST;
135 /* Add more keywords here if required*/
136 enum {init_flag = 1000, geometry_flag, controlSurface_flag, controlsMixer_flag,
137 mass_flag, engine_flag, CD_flag, CL_flag, Cm_flag, CY_flag, Cl_flag,
138 Cn_flag, gear_flag, ice_flag, record_flag, misc_flag, fog_flag};
140 // init ======= Initial values for equation of motion
141 enum {Dx_pilot_flag = 2000, Dy_pilot_flag, Dz_pilot_flag,
142 Dx_cg_flag, Dy_cg_flag, Dz_cg_flag, Altitude_flag,
143 V_north_flag, V_east_flag, V_down_flag,
144 P_body_flag, Q_body_flag, R_body_flag,
145 Phi_flag, Theta_flag, Psi_flag,
146 Long_trim_flag, recordRate_flag, recordStartTime_flag,
147 nondim_rate_V_rel_wind_flag, dyn_on_speed_flag, Alpha_flag,
148 Beta_flag, U_body_flag, V_body_flag, W_body_flag};
150 // geometry === Aircraft-specific geometric quantities
151 enum {bw_flag = 3000, cbar_flag, Sw_flag, ih_flag, bh_flag, ch_flag, Sh_flag};
153 // controlSurface = Control surface deflections and properties
154 enum {de_flag = 4000, da_flag, dr_flag,
155 set_Long_trim_flag, set_Long_trim_deg_flag, zero_Long_trim_flag,
156 elevator_step_flag, elevator_singlet_flag, elevator_doublet_flag, elevator_input_flag, aileron_input_flag, rudder_input_flag, pilot_elev_no_flag, pilot_ail_no_flag, pilot_rud_no_flag};
158 // controlsMixer == Controls mixer
159 enum {nomix_flag = 5000};
161 //mass ======== Aircraft-specific mass properties
162 enum {Weight_flag = 6000, Mass_flag, I_xx_flag, I_yy_flag, I_zz_flag, I_xz_flag};
164 // engine ===== Propulsion data
165 enum {simpleSingle_flag = 7000, c172_flag, cherokee_flag, Throttle_pct_input_flag};
167 // CD ========= Aerodynamic x-force quantities (longitudinal)
168 enum {CDo_flag = 8000, CDK_flag, CD_a_flag, CD_adot_flag, CD_q_flag, CD_ih_flag, CD_de_flag,
169 CDfa_flag, CDfCL_flag, CDfade_flag, CDfdf_flag, CDfadf_flag,
170 CXo_flag, CXK_flag, CX_a_flag, CX_a2_flag, CX_a3_flag, CX_adot_flag,
171 CX_q_flag, CX_de_flag, CX_dr_flag, CX_df_flag, CX_adf_flag};
173 // CL ========= Aerodynamic z-force quantities (longitudinal)
174 enum {CLo_flag = 9000, CL_a_flag, CL_adot_flag, CL_q_flag, CL_ih_flag, CL_de_flag,
175 CLfa_flag, CLfade_flag, CLfdf_flag, CLfadf_flag,
176 CZo_flag, CZ_a_flag, CZ_a2_flag, CZ_a3_flag, CZ_adot_flag,
177 CZ_q_flag, CZ_de_flag, CZ_deb2_flag, CZ_df_flag, CZ_adf_flag, CZfa_flag};
179 // Cm ========= Aerodynamic m-moment quantities (longitudinal)
180 enum {Cmo_flag = 10000, Cm_a_flag, Cm_a2_flag, Cm_adot_flag, Cm_q_flag,
181 Cm_ih_flag, Cm_de_flag, Cm_b2_flag, Cm_r_flag, Cm_df_flag,
182 Cmfa_flag, Cmfade_flag, Cmfdf_flag, Cmfadf_flag};
184 // CY ========= Aerodynamic y-force quantities (lateral)
185 enum {CYo_flag = 11000, CY_beta_flag, CY_p_flag, CY_r_flag, CY_da_flag,
186 CY_dr_flag, CY_dra_flag, CY_bdot_flag, CYfada_flag, CYfbetadr_flag};
188 // Cl ========= Aerodynamic l-moment quantities (lateral)
189 enum {Clo_flag = 12000, Cl_beta_flag, Cl_p_flag, Cl_r_flag, Cl_da_flag,
190 Cl_dr_flag, Cl_daa_flag, Clfada_flag, Clfbetadr_flag};
192 // Cn ========= Aerodynamic n-moment quantities (lateral)
193 enum {Cno_flag = 13000, Cn_beta_flag, Cn_p_flag, Cn_r_flag, Cn_da_flag,
194 Cn_dr_flag, Cn_q_flag, Cn_b3_flag, Cnfada_flag, Cnfbetadr_flag};
196 // gear ======= Landing gear model quantities
197 enum {Dx_gear_flag = 14000, Dy_gear_flag, Dz_gear_flag, cgear_flag,
198 kgear_flag, muGear_flag, strutLength_flag};
200 // ice ======== Ice model quantities
201 enum {iceTime_flag = 15000, transientTime_flag, eta_ice_final_flag,
202 beta_probe_wing_flag, beta_probe_tail_flag,
203 kCDo_flag, kCDK_flag, kCD_a_flag, kCD_adot_flag, kCD_q_flag, kCD_de_flag,
204 kCXo_flag, kCXK_flag, kCX_a_flag, kCX_a2_flag, kCX_a3_flag, kCX_adot_flag,
205 kCX_q_flag, kCX_de_flag, kCX_dr_flag, kCX_df_flag, kCX_adf_flag,
206 kCLo_flag, kCL_a_flag, kCL_adot_flag, kCL_q_flag, kCL_de_flag,
207 kCZo_flag, kCZ_a_flag, kCZ_a2_flag, kCZ_a3_flag, kCZ_adot_flag,
208 kCZ_q_flag, kCZ_de_flag, kCZ_deb2_flag, kCZ_df_flag, kCZ_adf_flag,
209 kCmo_flag, kCm_a_flag, kCm_a2_flag, kCm_adot_flag, kCm_q_flag,
210 kCm_de_flag, kCm_b2_flag, kCm_r_flag, kCm_df_flag,
211 kCYo_flag, kCY_beta_flag, kCY_p_flag, kCY_r_flag, kCY_da_flag,
212 kCY_dr_flag, kCY_dra_flag, kCY_bdot_flag,
213 kClo_flag, kCl_beta_flag, kCl_p_flag, kCl_r_flag, kCl_da_flag,
214 kCl_dr_flag, kCl_daa_flag,
215 kCno_flag, kCn_beta_flag, kCn_p_flag, kCn_r_flag, kCn_da_flag,
216 kCn_dr_flag, kCn_q_flag, kCn_b3_flag};
218 // record ===== Record desired quantites to file
219 enum {Simtime_record = 16000, dt_record,
221 Weight_record, Mass_record, I_xx_record, I_yy_record, I_zz_record, I_xz_record,
223 Dx_pilot_record, Dy_pilot_record, Dz_pilot_record,
224 Dx_cg_record, Dy_cg_record, Dz_cg_record,
225 Lat_geocentric_record, Lon_geocentric_record, Radius_to_vehicle_record,
226 Latitude_record, Longitude_record, Altitude_record,
227 Phi_record, Theta_record, Psi_record,
229 V_dot_north_record, V_dot_east_record, V_dot_down_record,
230 U_dot_body_record, V_dot_body_record, W_dot_body_record,
231 A_X_pilot_record, A_Y_pilot_record, A_Z_pilot_record,
232 A_X_cg_record, A_Y_cg_record, A_Z_cg_record,
233 N_X_pilot_record, N_Y_pilot_record, N_Z_pilot_record,
234 N_X_cg_record, N_Y_cg_record, N_Z_cg_record,
235 P_dot_body_record, Q_dot_body_record, R_dot_body_record,
237 V_north_record, V_east_record, V_down_record,
238 V_north_rel_ground_record, V_east_rel_ground_record, V_down_rel_ground_record,
239 V_north_airmass_record, V_east_airmass_record, V_down_airmass_record,
240 V_north_rel_airmass_record, V_east_rel_airmass_record, V_down_rel_airmass_record,
241 U_gust_record, V_gust_record, W_gust_record,
242 U_body_record, V_body_record, W_body_record,
243 V_rel_wind_record, V_true_kts_record, V_rel_ground_record,
244 V_inertial_record, V_ground_speed_record, V_equiv_record,
245 V_equiv_kts_record, V_calibrated_record, V_calibrated_kts_record,
246 P_local_record, Q_local_record, R_local_record,
247 P_body_record, Q_body_record, R_body_record,
248 P_total_record, Q_total_record, R_total_record,
249 Phi_dot_record, Theta_dot_record, Psi_dot_record,
250 Latitude_dot_record, Longitude_dot_record, Radius_dot_record,
252 Alpha_record, Alpha_deg_record, Alpha_dot_record, Alpha_dot_deg_record,
253 Beta_record, Beta_deg_record, Beta_dot_record, Beta_dot_deg_record,
254 Gamma_vert_record, Gamma_vert_deg_record, Gamma_horiz_record, Gamma_horiz_deg_record,
256 Density_record, V_sound_record, Mach_number_record,
257 Static_pressure_record, Total_pressure_record, Impact_pressure_record,
258 Dynamic_pressure_record,
259 Static_temperature_record, Total_temperature_record,
261 Gravity_record, Sea_level_radius_record, Earth_position_angle_record,
262 Runway_altitude_record, Runway_latitude_record, Runway_longitude_record,
263 Runway_heading_record, Radius_to_rwy_record,
264 D_pilot_north_of_rwy_record, D_pilot_east_of_rwy_record, D_pilot_above_rwy_record,
265 X_pilot_rwy_record, Y_pilot_rwy_record, H_pilot_rwy_record,
266 D_cg_north_of_rwy_record, D_cg_east_of_rwy_record, D_cg_above_rwy_record,
267 X_cg_rwy_record, Y_cg_rwy_record, H_cg_rwy_record,
269 Throttle_3_record, Throttle_pct_record,
271 Long_control_record, Long_trim_record, Long_trim_deg_record,
272 elevator_record, elevator_deg_record,
273 Lat_control_record, aileron_record, aileron_deg_record,
274 Rudder_pedal_record, rudder_record, rudder_deg_record,
275 Flap_handle_record, flap_record, flap_deg_record,
277 CD_record, CDfaI_record, CDfCLI_record, CDfadeI_record, CDfdfI_record, CDfadfI_record, CX_record,
278 CL_record, CLfaI_record, CLfadeI_record, CLfdfI_record, CLfadfI_record, CZ_record,
279 Cm_record, CmfaI_record, CmfadeI_record, CmfdfI_record, CmfadfI_record,
280 CY_record, CYfadaI_record, CYfbetadrI_record,
281 Cl_record, ClfadaI_record, ClfbetadrI_record,
282 Cn_record, CnfadaI_record, CnfbetadrI_record,
284 F_X_wind_record, F_Y_wind_record, F_Z_wind_record,
285 F_X_aero_record, F_Y_aero_record, F_Z_aero_record,
286 F_X_engine_record, F_Y_engine_record, F_Z_engine_record,
287 F_X_gear_record, F_Y_gear_record, F_Z_gear_record,
288 F_X_record, F_Y_record, F_Z_record,
289 F_north_record, F_east_record, F_down_record,
291 M_l_aero_record, M_m_aero_record, M_n_aero_record,
292 M_l_engine_record, M_m_engine_record, M_n_engine_record,
293 M_l_gear_record, M_m_gear_record, M_n_gear_record,
294 M_l_rp_record, M_m_rp_record, M_n_rp_record,
296 CLclean_wing_record, CLiced_wing_record,
297 CLclean_tail_record, CLiced_tail_record,
298 Lift_clean_wing_record, Lift_iced_wing_record,
299 Lift_clean_tail_record, Lift_iced_tail_record,
300 Gamma_clean_wing_record, Gamma_iced_wing_record,
301 Gamma_clean_tail_record, Gamma_iced_tail_record,
302 w_clean_wing_record, w_iced_wing_record,
303 w_clean_tail_record, w_iced_tail_record,
304 V_total_clean_wing_record, V_total_iced_wing_record,
305 V_total_clean_tail_record, V_total_iced_tail_record,
306 beta_flow_clean_wing_record, beta_flow_clean_wing_deg_record,
307 beta_flow_iced_wing_record, beta_flow_iced_wing_deg_record,
308 beta_flow_clean_tail_record, beta_flow_clean_tail_deg_record,
309 beta_flow_iced_tail_record, beta_flow_iced_tail_deg_record,
310 Dbeta_flow_wing_record, Dbeta_flow_wing_deg_record,
311 Dbeta_flow_tail_record, Dbeta_flow_tail_deg_record,
312 pct_beta_flow_wing_record, pct_beta_flow_tail_record};
314 // misc ======= Miscellaneous inputs
315 enum {simpleHingeMomentCoef_flag = 17000, dfTimefdf_flag};
318 // fog ======== Fog field quantities
319 enum {fog_segments_flag = 18000, fog_point_flag};
324 // ParseFile stuff [] Bipin to add more comments
326 #define airplane aircraft_->airplane
327 ParseFile *initParts;
328 #define initParts aircraft_->initParts
329 ParseFile *geometryParts;
330 #define geometryParts aircraft_->geometryParts
331 ParseFile *massParts;
332 #define massParts aircraft_->massParts
333 ParseFile *aeroDragParts;
334 #define aeroDragParts aircraft_->aeroDragParts
335 ParseFile *aeroLiftParts;
336 #define aeroLiftParts aircraft_->aeroLiftParts
337 ParseFile *aeroPitchParts;
338 #define aeroPitchParts aircraft_->aeroPitchParts
339 ParseFile *aeroSideforceParts;
340 #define aeroSideforceParts aircraft_->aeroSideforceParts
341 ParseFile *aeroRollParts;
342 #define aeroRollParts aircraft_->aeroRollParts
343 ParseFile *aeroYawParts;
344 #define aeroYawParts aircraft_->aeroYawParts
345 ParseFile *engineParts;
346 #define engineParts aircraft_->engineParts
347 ParseFile *gearParts;
348 #define gearParts aircraft_->gearParts
349 ParseFile *recordParts;
350 #define recordParts aircraft_->recordParts
352 /*= Keywords (token1) ===========================================*/
353 map <string,int> Keyword_map;
354 #define Keyword_map aircraft_->Keyword_map
356 double CD, CX, CL, CZ, Cm, CY, Cl, Cn;
357 #define CD aircraft_->CD
358 #define CX aircraft_->CX
359 #define CL aircraft_->CL
360 #define CZ aircraft_->CZ
361 #define Cm aircraft_->Cm
362 #define CY aircraft_->CY
363 #define Cl aircraft_->Cl
364 #define Cn aircraft_->Cn
365 double CXclean_wing, CXclean_tail, CXiced_wing, CXiced_tail;
366 double CLclean_wing, CLclean_tail, CLiced_wing, CLiced_tail;
367 double CZclean_wing, CZclean_tail, CZiced_wing, CZiced_tail;
368 #define CXclean_wing aircraft_->CXclean_wing
369 #define CXclean_tail aircraft_->CXclean_tail
370 #define CXiced_wing aircraft_->CXiced_wing
371 #define CXiced_tail aircraft_->CXiced_tail
372 #define CLclean_wing aircraft_->CLclean_wing
373 #define CLclean_tail aircraft_->CLclean_tail
374 #define CLiced_wing aircraft_->CLiced_wing
375 #define CLiced_tail aircraft_->CLiced_tail
376 #define CZclean_wing aircraft_->CZclean_wing
377 #define CZclean_tail aircraft_->CZclean_tail
378 #define CZiced_wing aircraft_->CZiced_wing
379 #define CZiced_tail aircraft_->CZiced_tail
381 /*========================================*/
382 /* Variables (token2) - 17 groups (000329)*/
383 /*========================================*/
385 /* Variables (token2) ===========================================*/
386 /* init ========== Initial values for equations of motion =======*/
388 map <string,int> init_map;
389 #define init_map aircraft_->init_map
392 #define recordRate aircraft_->recordRate
393 double recordStartTime;
394 #define recordStartTime aircraft_->recordStartTime
395 bool nondim_rate_V_rel_wind;
396 #define nondim_rate_V_rel_wind aircraft_->nondim_rate_V_rel_wind
398 #define dyn_on_speed aircraft_->dyn_on_speed
399 bool P_body_init_true;
401 #define P_body_init_true aircraft_->P_body_init_true
402 #define P_body_init aircraft_->P_body_init
403 bool Q_body_init_true;
405 #define Q_body_init_true aircraft_->Q_body_init_true
406 #define Q_body_init aircraft_->Q_body_init
407 bool R_body_init_true;
409 #define R_body_init_true aircraft_->R_body_init_true
410 #define R_body_init aircraft_->R_body_init
413 #define Phi_init_true aircraft_->Phi_init_true
414 #define Phi_init aircraft_->Phi_init
415 bool Theta_init_true;
417 #define Theta_init_true aircraft_->Theta_init_true
418 #define Theta_init aircraft_->Theta_init
421 #define Psi_init_true aircraft_->Psi_init_true
422 #define Psi_init aircraft_->Psi_init
423 bool Alpha_init_true;
425 #define Alpha_init_true aircraft_->Alpha_init_true
426 #define Alpha_init aircraft_->Alpha_init
429 #define Beta_init_true aircraft_->Beta_init_true
430 #define Beta_init aircraft_->Beta_init
431 bool U_body_init_true;
433 #define U_body_init_true aircraft_->U_body_init_true
434 #define U_body_init aircraft_->U_body_init
435 bool V_body_init_true;
437 #define V_body_init_true aircraft_->V_body_init_true
438 #define V_body_init aircraft_->V_body_init
439 bool W_body_init_true;
441 #define W_body_init_true aircraft_->W_body_init_true
442 #define W_body_init aircraft_->W_body_init
445 /* Variables (token2) ===========================================*/
446 /* geometry ====== Aircraft-specific geometric quantities =======*/
448 map <string,int> geometry_map;
449 #define geometry_map aircraft_->geometry_map
451 double bw, cbar, Sw, ih, bh, ch, Sh;
452 #define bw aircraft_->bw
453 #define cbar aircraft_->cbar
454 #define Sw aircraft_->Sw
455 #define ih aircraft_->ih
456 #define bh aircraft_->bh
457 #define ch aircraft_->ch
458 #define Sh aircraft_->Sh
461 /* Variables (token2) ===========================================*/
462 /* controlSurface Control surface deflections and properties ===*/
464 map <string,int> controlSurface_map;
465 #define controlSurface_map aircraft_->controlSurface_map
470 #define demax aircraft_->demax
471 #define demin aircraft_->demin
472 #define damax aircraft_->damax
473 #define damin aircraft_->damin
474 #define drmax aircraft_->drmax
475 #define drmin aircraft_->drmin
477 double aileron, elevator, rudder;
478 #define aileron aircraft_->aileron
479 #define elevator aircraft_->elevator
480 #define rudder aircraft_->rudder
482 #define flap aircraft_->flap
484 bool set_Long_trim, zero_Long_trim;
485 double Long_trim_constant;
486 #define set_Long_trim aircraft_->set_Long_trim
487 #define Long_trim_constant aircraft_->Long_trim_constant
488 #define zero_Long_trim aircraft_->zero_Long_trim
491 double elevator_step_angle, elevator_step_startTime;
492 #define elevator_step aircraft_->elevator_step
493 #define elevator_step_angle aircraft_->elevator_step_angle
494 #define elevator_step_startTime aircraft_->elevator_step_startTime
496 bool elevator_singlet;
497 double elevator_singlet_angle, elevator_singlet_startTime;
498 double elevator_singlet_duration;
499 #define elevator_singlet aircraft_->elevator_singlet
500 #define elevator_singlet_angle aircraft_->elevator_singlet_angle
501 #define elevator_singlet_startTime aircraft_->elevator_singlet_startTime
502 #define elevator_singlet_duration aircraft_->elevator_singlet_duration
504 bool elevator_doublet;
505 double elevator_doublet_angle, elevator_doublet_startTime;
506 double elevator_doublet_duration;
507 #define elevator_doublet aircraft_->elevator_doublet
508 #define elevator_doublet_angle aircraft_->elevator_doublet_angle
509 #define elevator_doublet_startTime aircraft_->elevator_doublet_startTime
510 #define elevator_doublet_duration aircraft_->elevator_doublet_duration
513 string elevator_input_file;
514 double elevator_input_timeArray[1000];
515 double elevator_input_deArray[1000];
516 int elevator_input_ntime;
517 double elevator_input_startTime;
518 #define elevator_input aircraft_->elevator_input
519 #define elevator_input_file aircraft_->elevator_input_file
520 #define elevator_input_timeArray aircraft_->elevator_input_timeArray
521 #define elevator_input_deArray aircraft_->elevator_input_deArray
522 #define elevator_input_ntime aircraft_->elevator_input_ntime
523 #define elevator_input_startTime aircraft_->elevator_input_startTime
526 string aileron_input_file;
527 double aileron_input_timeArray[1000];
528 double aileron_input_daArray[1000];
529 int aileron_input_ntime;
530 double aileron_input_startTime;
531 #define aileron_input aircraft_->aileron_input
532 #define aileron_input_file aircraft_->aileron_input_file
533 #define aileron_input_timeArray aircraft_->aileron_input_timeArray
534 #define aileron_input_daArray aircraft_->aileron_input_daArray
535 #define aileron_input_ntime aircraft_->aileron_input_ntime
536 #define aileron_input_startTime aircraft_->aileron_input_startTime
539 string rudder_input_file;
540 double rudder_input_timeArray[1000];
541 double rudder_input_drArray[1000];
542 int rudder_input_ntime;
543 double rudder_input_startTime;
544 #define rudder_input aircraft_->rudder_input
545 #define rudder_input_file aircraft_->rudder_input_file
546 #define rudder_input_timeArray aircraft_->rudder_input_timeArray
547 #define rudder_input_drArray aircraft_->rudder_input_drArray
548 #define rudder_input_ntime aircraft_->rudder_input_ntime
549 #define rudder_input_startTime aircraft_->rudder_input_startTime
552 #define pilot_elev_no aircraft_->pilot_elev_no
553 bool pilot_elev_no_check;
554 #define pilot_elev_no_check aircraft_->pilot_elev_no_check
557 #define pilot_ail_no aircraft_->pilot_ail_no
558 bool pilot_ail_no_check;
559 #define pilot_ail_no_check aircraft_->pilot_ail_no_check
562 #define pilot_rud_no aircraft_->pilot_rud_no
563 bool pilot_rud_no_check;
564 #define pilot_rud_no_check aircraft_->pilot_rud_no_check
567 /* Variables (token2) ===========================================*/
568 /* controlsMixer = Control mixer ================================*/
570 map <string,int> controlsMixer_map;
571 #define controlsMixer_map aircraft_->controlsMixer_map
574 #define nomix aircraft_->nomix
577 /* Variables (token2) ===========================================*/
578 /* mass =========== Aircraft-specific mass properties ===========*/
580 map <string,int> mass_map;
581 #define mass_map aircraft_->mass_map
584 #define Weight aircraft_->Weight
587 /* Variables (token2) ===========================================*/
588 /* engine ======== Propulsion data ==============================*/
590 map <string,int> engine_map;
591 #define engine_map aircraft_->engine_map
593 double simpleSingleMaxThrust;
594 #define simpleSingleMaxThrust aircraft_->simpleSingleMaxThrust
596 bool Throttle_pct_input;
597 string Throttle_pct_input_file;
598 double Throttle_pct_input_timeArray[1000];
599 double Throttle_pct_input_dTArray[1000];
600 int Throttle_pct_input_ntime;
601 double Throttle_pct_input_startTime;
602 #define Throttle_pct_input aircraft_->Throttle_pct_input
603 #define Throttle_pct_input_file aircraft_->Throttle_pct_input_file
604 #define Throttle_pct_input_timeArray aircraft_->Throttle_pct_input_timeArray
605 #define Throttle_pct_input_dTArray aircraft_->Throttle_pct_input_dTArray
606 #define Throttle_pct_input_ntime aircraft_->Throttle_pct_input_ntime
607 #define Throttle_pct_input_startTime aircraft_->Throttle_pct_input_startTime
610 /* Variables (token2) ===========================================*/
611 /* CD ============ Aerodynamic x-force quantities (longitudinal) */
613 map <string,int> CD_map;
614 #define CD_map aircraft_->CD_map
616 double CDo, CDK, CD_a, CD_adot, CD_q, CD_ih, CD_de;
617 #define CDo aircraft_->CDo
618 #define CDK aircraft_->CDK
619 #define CD_a aircraft_->CD_a
620 #define CD_adot aircraft_->CD_adot
621 #define CD_q aircraft_->CD_q
622 #define CD_ih aircraft_->CD_ih
623 #define CD_de aircraft_->CD_de
625 double CDfa_aArray[100];
626 double CDfa_CDArray[100];
629 #define CDfa aircraft_->CDfa
630 #define CDfa_aArray aircraft_->CDfa_aArray
631 #define CDfa_CDArray aircraft_->CDfa_CDArray
632 #define CDfa_nAlpha aircraft_->CDfa_nAlpha
633 #define CDfaI aircraft_->CDfaI
635 double CDfCL_CLArray[100];
636 double CDfCL_CDArray[100];
639 #define CDfCL aircraft_->CDfCL
640 #define CDfCL_CLArray aircraft_->CDfCL_CLArray
641 #define CDfCL_CDArray aircraft_->CDfCL_CDArray
642 #define CDfCL_nCL aircraft_->CDfCL_nCL
643 #define CDfCLI aircraft_->CDfCLI
645 double CDfade_aArray[100][100];
646 double CDfade_deArray[100];
647 double CDfade_CDArray[100][100];
648 int CDfade_nAlphaArray[100];
651 #define CDfade aircraft_->CDfade
652 #define CDfade_aArray aircraft_->CDfade_aArray
653 #define CDfade_deArray aircraft_->CDfade_deArray
654 #define CDfade_CDArray aircraft_->CDfade_CDArray
655 #define CDfade_nAlphaArray aircraft_->CDfade_nAlphaArray
656 #define CDfade_nde aircraft_->CDfade_nde
657 #define CDfadeI aircraft_->CDfadeI
659 double CDfdf_dfArray[100];
660 double CDfdf_CDArray[100];
663 #define CDfdf aircraft_->CDfdf
664 #define CDfdf_dfArray aircraft_->CDfdf_dfArray
665 #define CDfdf_CDArray aircraft_->CDfdf_CDArray
666 #define CDfdf_ndf aircraft_->CDfdf_ndf
667 #define CDfdfI aircraft_->CDfdfI
669 double CDfadf_aArray[100][100];
670 double CDfadf_dfArray[100];
671 double CDfadf_CDArray[100][100];
672 int CDfadf_nAlphaArray[100];
675 #define CDfadf aircraft_->CDfadf
676 #define CDfadf_aArray aircraft_->CDfadf_aArray
677 #define CDfadf_dfArray aircraft_->CDfadf_dfArray
678 #define CDfadf_CDArray aircraft_->CDfadf_CDArray
679 #define CDfadf_nAlphaArray aircraft_->CDfadf_nAlphaArray
680 #define CDfadf_ndf aircraft_->CDfadf_ndf
681 #define CDfadfI aircraft_->CDfadfI
682 double CXo, CXK, CX_a, CX_a2, CX_a3, CX_adot;
683 double CX_q, CX_de, CX_dr, CX_df, CX_adf;
684 #define CXo aircraft_->CXo
685 #define CXK aircraft_->CXK
686 #define CX_a aircraft_->CX_a
687 #define CX_a2 aircraft_->CX_a2
688 #define CX_a3 aircraft_->CX_a3
689 #define CX_adot aircraft_->CX_adot
690 #define CX_q aircraft_->CX_q
691 #define CX_de aircraft_->CX_de
692 #define CX_dr aircraft_->CX_dr
693 #define CX_df aircraft_->CX_df
694 #define CX_adf aircraft_->CX_adf
697 /* Variables (token2) ===========================================*/
698 /* CL ============ Aerodynamic z-force quantities (longitudinal) */
700 map <string,int> CL_map;
701 #define CL_map aircraft_->CL_map
703 double CLo, CL_a, CL_adot, CL_q, CL_ih, CL_de;
704 #define CLo aircraft_->CLo
705 #define CL_a aircraft_->CL_a
706 #define CL_adot aircraft_->CL_adot
707 #define CL_q aircraft_->CL_q
708 #define CL_ih aircraft_->CL_ih
709 #define CL_de aircraft_->CL_de
711 double CLfa_aArray[100];
712 double CLfa_CLArray[100];
715 #define CLfa aircraft_->CLfa
716 #define CLfa_aArray aircraft_->CLfa_aArray
717 #define CLfa_CLArray aircraft_->CLfa_CLArray
718 #define CLfa_nAlpha aircraft_->CLfa_nAlpha
719 #define CLfaI aircraft_->CLfaI
721 double CLfade_aArray[100][100];
722 double CLfade_deArray[100];
723 double CLfade_CLArray[100][100];
724 int CLfade_nAlphaArray[100];
727 #define CLfade aircraft_->CLfade
728 #define CLfade_aArray aircraft_->CLfade_aArray
729 #define CLfade_deArray aircraft_->CLfade_deArray
730 #define CLfade_CLArray aircraft_->CLfade_CLArray
731 #define CLfade_nAlphaArray aircraft_->CLfade_nAlphaArray
732 #define CLfade_nde aircraft_->CLfade_nde
733 #define CLfadeI aircraft_->CLfadeI
735 double CLfdf_dfArray[100];
736 double CLfdf_CLArray[100];
739 #define CLfdf aircraft_->CLfdf
740 #define CLfdf_dfArray aircraft_->CLfdf_dfArray
741 #define CLfdf_CLArray aircraft_->CLfdf_CLArray
742 #define CLfdf_ndf aircraft_->CLfdf_ndf
743 #define CLfdfI aircraft_->CLfdfI
745 double CLfadf_aArray[100][100];
746 double CLfadf_dfArray[100];
747 double CLfadf_CLArray[100][100];
748 int CLfadf_nAlphaArray[100];
751 #define CLfadf aircraft_->CLfadf
752 #define CLfadf_aArray aircraft_->CLfadf_aArray
753 #define CLfadf_dfArray aircraft_->CLfadf_dfArray
754 #define CLfadf_CLArray aircraft_->CLfadf_CLArray
755 #define CLfadf_nAlphaArray aircraft_->CLfadf_nAlphaArray
756 #define CLfadf_ndf aircraft_->CLfadf_ndf
757 #define CLfadfI aircraft_->CLfadfI
758 double CZo, CZ_a, CZ_a2, CZ_a3, CZ_adot;
759 double CZ_q, CZ_de, CZ_deb2, CZ_df, CZ_adf;
760 #define CZo aircraft_->CZo
761 #define CZ_a aircraft_->CZ_a
762 #define CZ_a2 aircraft_->CZ_a2
763 #define CZ_a3 aircraft_->CZ_a3
764 #define CZ_adot aircraft_->CZ_adot
765 #define CZ_q aircraft_->CZ_q
766 #define CZ_de aircraft_->CZ_de
767 #define CZ_deb2 aircraft_->CZ_deb2
768 #define CZ_df aircraft_->CZ_df
769 #define CZ_adf aircraft_->CZ_adf
771 double CZfa_aArray[100];
772 double CZfa_CZArray[100];
775 #define CZfa aircraft_->CZfa
776 #define CZfa_aArray aircraft_->CZfa_aArray
777 #define CZfa_CZArray aircraft_->CZfa_CZArray
778 #define CZfa_nAlpha aircraft_->CZfa_nAlpha
779 #define CZfaI aircraft_->CZfaI
782 /* Variables (token2) ===========================================*/
783 /* Cm ============ Aerodynamic m-moment quantities (longitudinal) */
785 map <string,int> Cm_map;
786 #define Cm_map aircraft_->Cm_map
788 double Cmo, Cm_a, Cm_a2, Cm_adot, Cm_q;
789 double Cm_ih, Cm_de, Cm_b2, Cm_r, Cm_df;
790 #define Cmo aircraft_->Cmo
791 #define Cm_a aircraft_->Cm_a
792 #define Cm_a2 aircraft_->Cm_a2
793 #define Cm_adot aircraft_->Cm_adot
794 #define Cm_q aircraft_->Cm_q
795 #define Cm_ih aircraft_->Cm_ih
796 #define Cm_de aircraft_->Cm_de
797 #define Cm_b2 aircraft_->Cm_b2
798 #define Cm_r aircraft_->Cm_r
799 #define Cm_df aircraft_->Cm_df
801 double Cmfa_aArray[100];
802 double Cmfa_CmArray[100];
805 #define Cmfa aircraft_->Cmfa
806 #define Cmfa_aArray aircraft_->Cmfa_aArray
807 #define Cmfa_CmArray aircraft_->Cmfa_CmArray
808 #define Cmfa_nAlpha aircraft_->Cmfa_nAlpha
809 #define CmfaI aircraft_->CmfaI
811 double Cmfade_aArray[100][100];
812 double Cmfade_deArray[100];
813 double Cmfade_CmArray[100][100];
814 int Cmfade_nAlphaArray[100];
817 #define Cmfade aircraft_->Cmfade
818 #define Cmfade_aArray aircraft_->Cmfade_aArray
819 #define Cmfade_deArray aircraft_->Cmfade_deArray
820 #define Cmfade_CmArray aircraft_->Cmfade_CmArray
821 #define Cmfade_nAlphaArray aircraft_->Cmfade_nAlphaArray
822 #define Cmfade_nde aircraft_->Cmfade_nde
823 #define CmfadeI aircraft_->CmfadeI
825 double Cmfdf_dfArray[100];
826 double Cmfdf_CmArray[100];
829 #define Cmfdf aircraft_->Cmfdf
830 #define Cmfdf_dfArray aircraft_->Cmfdf_dfArray
831 #define Cmfdf_CmArray aircraft_->Cmfdf_CmArray
832 #define Cmfdf_ndf aircraft_->Cmfdf_ndf
833 #define CmfdfI aircraft_->CmfdfI
835 double Cmfadf_aArray[100][100];
836 double Cmfadf_dfArray[100];
837 double Cmfadf_CmArray[100][100];
838 int Cmfadf_nAlphaArray[100];
841 #define Cmfadf aircraft_->Cmfadf
842 #define Cmfadf_aArray aircraft_->Cmfadf_aArray
843 #define Cmfadf_dfArray aircraft_->Cmfadf_dfArray
844 #define Cmfadf_CmArray aircraft_->Cmfadf_CmArray
845 #define Cmfadf_nAlphaArray aircraft_->Cmfadf_nAlphaArray
846 #define Cmfadf_ndf aircraft_->Cmfadf_ndf
847 #define CmfadfI aircraft_->CmfadfI
850 /* Variables (token2) ===========================================*/
851 /* CY ============ Aerodynamic y-force quantities (lateral) =====*/
853 map <string,int> CY_map;
854 #define CY_map aircraft_->CY_map
856 double CYo, CY_beta, CY_p, CY_r, CY_da, CY_dr, CY_dra, CY_bdot;
857 #define CYo aircraft_->CYo
858 #define CY_beta aircraft_->CY_beta
859 #define CY_p aircraft_->CY_p
860 #define CY_r aircraft_->CY_r
861 #define CY_da aircraft_->CY_da
862 #define CY_dr aircraft_->CY_dr
863 #define CY_dra aircraft_->CY_dra
864 #define CY_bdot aircraft_->CY_bdot
866 double CYfada_aArray[100][100];
867 double CYfada_daArray[100];
868 double CYfada_CYArray[100][100];
869 int CYfada_nAlphaArray[100];
872 #define CYfada aircraft_->CYfada
873 #define CYfada_aArray aircraft_->CYfada_aArray
874 #define CYfada_daArray aircraft_->CYfada_daArray
875 #define CYfada_CYArray aircraft_->CYfada_CYArray
876 #define CYfada_nAlphaArray aircraft_->CYfada_nAlphaArray
877 #define CYfada_nda aircraft_->CYfada_nda
878 #define CYfadaI aircraft_->CYfadaI
880 double CYfbetadr_betaArray[100][100];
881 double CYfbetadr_drArray[100];
882 double CYfbetadr_CYArray[100][100];
883 int CYfbetadr_nBetaArray[100];
886 #define CYfbetadr aircraft_->CYfbetadr
887 #define CYfbetadr_betaArray aircraft_->CYfbetadr_betaArray
888 #define CYfbetadr_drArray aircraft_->CYfbetadr_drArray
889 #define CYfbetadr_CYArray aircraft_->CYfbetadr_CYArray
890 #define CYfbetadr_nBetaArray aircraft_->CYfbetadr_nBetaArray
891 #define CYfbetadr_ndr aircraft_->CYfbetadr_ndr
892 #define CYfbetadrI aircraft_->CYfbetadrI
895 /* Variables (token2) ===========================================*/
896 /* Cl ============ Aerodynamic l-moment quantities (lateral) ====*/
898 map <string,int> Cl_map;
899 #define Cl_map aircraft_->Cl_map
901 double Clo, Cl_beta, Cl_p, Cl_r, Cl_da, Cl_dr, Cl_daa;
902 #define Clo aircraft_->Clo
903 #define Cl_beta aircraft_->Cl_beta
904 #define Cl_p aircraft_->Cl_p
905 #define Cl_r aircraft_->Cl_r
906 #define Cl_da aircraft_->Cl_da
907 #define Cl_dr aircraft_->Cl_dr
908 #define Cl_daa aircraft_->Cl_daa
910 double Clfada_aArray[100][100];
911 double Clfada_daArray[100];
912 double Clfada_ClArray[100][100];
913 int Clfada_nAlphaArray[100];
916 #define Clfada aircraft_->Clfada
917 #define Clfada_aArray aircraft_->Clfada_aArray
918 #define Clfada_daArray aircraft_->Clfada_daArray
919 #define Clfada_ClArray aircraft_->Clfada_ClArray
920 #define Clfada_nAlphaArray aircraft_->Clfada_nAlphaArray
921 #define Clfada_nda aircraft_->Clfada_nda
922 #define ClfadaI aircraft_->ClfadaI
924 double Clfbetadr_betaArray[100][100];
925 double Clfbetadr_drArray[100];
926 double Clfbetadr_ClArray[100][100];
927 int Clfbetadr_nBetaArray[100];
930 #define Clfbetadr aircraft_->Clfbetadr
931 #define Clfbetadr_betaArray aircraft_->Clfbetadr_betaArray
932 #define Clfbetadr_drArray aircraft_->Clfbetadr_drArray
933 #define Clfbetadr_ClArray aircraft_->Clfbetadr_ClArray
934 #define Clfbetadr_nBetaArray aircraft_->Clfbetadr_nBetaArray
935 #define Clfbetadr_ndr aircraft_->Clfbetadr_ndr
936 #define ClfbetadrI aircraft_->ClfbetadrI
939 /* Variables (token2) ===========================================*/
940 /* Cn ============ Aerodynamic n-moment quantities (lateral) ====*/
942 map <string,int> Cn_map;
943 #define Cn_map aircraft_->Cn_map
945 double Cno, Cn_beta, Cn_p, Cn_r, Cn_da, Cn_dr, Cn_q, Cn_b3;
946 #define Cno aircraft_->Cno
947 #define Cn_beta aircraft_->Cn_beta
948 #define Cn_p aircraft_->Cn_p
949 #define Cn_r aircraft_->Cn_r
950 #define Cn_da aircraft_->Cn_da
951 #define Cn_dr aircraft_->Cn_dr
952 #define Cn_q aircraft_->Cn_q
953 #define Cn_b3 aircraft_->Cn_b3
955 double Cnfada_aArray[100][100];
956 double Cnfada_daArray[100];
957 double Cnfada_CnArray[100][100];
958 int Cnfada_nAlphaArray[100];
961 #define Cnfada aircraft_->Cnfada
962 #define Cnfada_aArray aircraft_->Cnfada_aArray
963 #define Cnfada_daArray aircraft_->Cnfada_daArray
964 #define Cnfada_CnArray aircraft_->Cnfada_CnArray
965 #define Cnfada_nAlphaArray aircraft_->Cnfada_nAlphaArray
966 #define Cnfada_nda aircraft_->Cnfada_nda
967 #define CnfadaI aircraft_->CnfadaI
969 double Cnfbetadr_betaArray[100][100];
970 double Cnfbetadr_drArray[100];
971 double Cnfbetadr_CnArray[100][100];
972 int Cnfbetadr_nBetaArray[100];
975 #define Cnfbetadr aircraft_->Cnfbetadr
976 #define Cnfbetadr_betaArray aircraft_->Cnfbetadr_betaArray
977 #define Cnfbetadr_drArray aircraft_->Cnfbetadr_drArray
978 #define Cnfbetadr_CnArray aircraft_->Cnfbetadr_CnArray
979 #define Cnfbetadr_nBetaArray aircraft_->Cnfbetadr_nBetaArray
980 #define Cnfbetadr_ndr aircraft_->Cnfbetadr_ndr
981 #define CnfbetadrI aircraft_->CnfbetadrI
984 /* Variables (token2) ===========================================*/
985 /* gear ========== Landing gear model quantities ================*/
987 map <string,int> gear_map;
989 #define gear_map aircraft_->gear_map
991 bool gear_model[MAX_GEAR];
992 SCALAR D_gear_v[MAX_GEAR][3];
993 SCALAR cgear[MAX_GEAR];
994 SCALAR kgear[MAX_GEAR];
995 SCALAR muGear[MAX_GEAR];
996 SCALAR strutLength[MAX_GEAR];
997 #define D_gear_v aircraft_->D_gear_v
998 #define gear_model aircraft_->gear_model
999 #define cgear aircraft_->cgear
1000 #define kgear aircraft_->kgear
1001 #define muGear aircraft_->muGear
1002 #define strutLength aircraft_->strutLength
1005 /* Variables (token2) ===========================================*/
1006 /* ice =========== Ice model quantities ======================== */
1008 map <string,int> ice_map;
1009 #define ice_map aircraft_->ice_map
1011 bool ice_model, ice_on, beta_model;
1013 double transientTime;
1014 double eta_ice_final;
1016 double x_probe_wing;
1017 double x_probe_tail;
1018 #define ice_model aircraft_->ice_model
1019 #define ice_on aircraft_->ice_on
1020 #define beta_model aircraft_->beta_model
1021 #define iceTime aircraft_->iceTime
1022 #define transientTime aircraft_->transientTime
1023 #define eta_ice_final aircraft_->eta_ice_final
1024 #define eta_ice aircraft_->eta_ice
1025 #define x_probe_wing aircraft_->x_probe_wing
1026 #define x_probe_tail aircraft_->x_probe_tail
1027 double kCDo, kCDK, kCD_a, kCD_adot, kCD_q, kCD_de;
1028 double CDo_clean, CDK_clean, CD_a_clean, CD_adot_clean, CD_q_clean, CD_de_clean;
1029 #define kCDo aircraft_->kCDo
1030 #define kCDK aircraft_->kCDK
1031 #define kCD_a aircraft_->kCD_a
1032 #define kCD_adot aircraft_->kCD_adot
1033 #define kCD_q aircraft_->kCD_q
1034 #define kCD_de aircraft_->kCD_de
1035 #define CDo_clean aircraft_->CDo_clean
1036 #define CDK_clean aircraft_->CDK_clean
1037 #define CD_a_clean aircraft_->CD_a_clean
1038 #define CD_adot_clean aircraft_->CD_adot_clean
1039 #define CD_q_clean aircraft_->CD_q_clean
1040 #define CD_de_clean aircraft_->CD_de_clean
1041 double kCXo, kCXK, kCX_a, kCX_a2, kCX_a3, kCX_adot;
1042 double kCX_q, kCX_de, kCX_dr, kCX_df, kCX_adf;
1043 double CXo_clean, CXK_clean, CX_a_clean, CX_a2_clean, CX_a3_clean, CX_adot_clean;
1044 double CX_q_clean, CX_de_clean, CX_dr_clean, CX_df_clean, CX_adf_clean;
1045 #define kCXo aircraft_->kCXo
1046 #define kCXK aircraft_->kCXK
1047 #define kCX_a aircraft_->kCX_a
1048 #define kCX_a2 aircraft_->kCX_a2
1049 #define kCX_a3 aircraft_->kCX_a3
1050 #define kCX_adot aircraft_->kCX_adot
1051 #define kCX_q aircraft_->kCX_q
1052 #define kCX_de aircraft_->kCX_de
1053 #define kCX_dr aircraft_->kCX_dr
1054 #define kCX_df aircraft_->kCX_df
1055 #define kCX_adf aircraft_->kCX_adf
1056 #define CXo_clean aircraft_->CXo_clean
1057 #define CXK_clean aircraft_->CXK_clean
1058 #define CX_a_clean aircraft_->CX_a_clean
1059 #define CX_a2_clean aircraft_->CX_a2_clean
1060 #define CX_a3_clean aircraft_->CX_a3_clean
1061 #define CX_adot_clean aircraft_->CX_adot_clean
1062 #define CX_q_clean aircraft_->CX_q_clean
1063 #define CX_de_clean aircraft_->CX_de_clean
1064 #define CX_dr_clean aircraft_->CX_dr_clean
1065 #define CX_df_clean aircraft_->CX_df_clean
1066 #define CX_adf_clean aircraft_->CX_adf_clean
1067 double kCLo, kCL_a, kCL_adot, kCL_q, kCL_de;
1068 double CLo_clean, CL_a_clean, CL_adot_clean, CL_q_clean, CL_de_clean;
1069 #define kCLo aircraft_->kCLo
1070 #define kCL_a aircraft_->kCL_a
1071 #define kCL_adot aircraft_->kCL_adot
1072 #define kCL_q aircraft_->kCL_q
1073 #define kCL_de aircraft_->kCL_de
1074 #define CLo_clean aircraft_->CLo_clean
1075 #define CL_a_clean aircraft_->CL_a_clean
1076 #define CL_adot_clean aircraft_->CL_adot_clean
1077 #define CL_q_clean aircraft_->CL_q_clean
1078 #define CL_de_clean aircraft_->CL_de_clean
1079 double kCZo, kCZ_a, kCZ_a2, kCZ_a3, kCZ_adot, kCZ_q, kCZ_de, kCZ_deb2, kCZ_df, kCZ_adf;
1080 double CZo_clean, CZ_a_clean, CZ_a2_clean, CZ_a3_clean, CZ_adot_clean;
1081 double CZ_q_clean, CZ_de_clean, CZ_deb2_clean, CZ_df_clean, CZ_adf_clean;
1082 #define kCZo aircraft_->kCZo
1083 #define kCZ_a aircraft_->kCZ_a
1084 #define kCZ_a2 aircraft_->kCZ_a2
1085 #define kCZ_a3 aircraft_->kCZ_a3
1086 #define kCZ_adot aircraft_->kCZ_adot
1087 #define kCZ_q aircraft_->kCZ_q
1088 #define kCZ_de aircraft_->kCZ_de
1089 #define kCZ_deb2 aircraft_->kCZ_deb2
1090 #define kCZ_df aircraft_->kCZ_df
1091 #define kCZ_adf aircraft_->kCZ_adf
1092 #define CZo_clean aircraft_->CZo_clean
1093 #define CZ_a_clean aircraft_->CZ_a_clean
1094 #define CZ_a2_clean aircraft_->CZ_a2_clean
1095 #define CZ_a3_clean aircraft_->CZ_a3_clean
1096 #define CZ_adot_clean aircraft_->CZ_adot_clean
1097 #define CZ_q_clean aircraft_->CZ_q_clean
1098 #define CZ_de_clean aircraft_->CZ_de_clean
1099 #define CZ_deb2_clean aircraft_->CZ_deb2_clean
1100 #define CZ_df_clean aircraft_->CZ_df_clean
1101 #define CZ_adf_clean aircraft_->CZ_adf_clean
1102 double kCmo, kCm_a, kCm_a2, kCm_adot, kCm_q, kCm_de, kCm_b2, kCm_r, kCm_df;
1103 double Cmo_clean, Cm_a_clean, Cm_a2_clean, Cm_adot_clean, Cm_q_clean;
1104 double Cm_de_clean, Cm_b2_clean, Cm_r_clean, Cm_df_clean;
1105 #define kCmo aircraft_->kCmo
1106 #define kCm_a aircraft_->kCm_a
1107 #define kCm_a2 aircraft_->kCm_a2
1108 #define kCm_adot aircraft_->kCm_adot
1109 #define kCm_q aircraft_->kCm_q
1110 #define kCm_de aircraft_->kCm_de
1111 #define kCm_b2 aircraft_->kCm_b2
1112 #define kCm_r aircraft_->kCm_r
1113 #define kCm_df aircraft_->kCm_df
1114 #define Cmo_clean aircraft_->Cmo_clean
1115 #define Cm_a_clean aircraft_->Cm_a_clean
1116 #define Cm_a2_clean aircraft_->Cm_a2_clean
1117 #define Cm_adot_clean aircraft_->Cm_adot_clean
1118 #define Cm_q_clean aircraft_->Cm_q_clean
1119 #define Cm_de_clean aircraft_->Cm_de_clean
1120 #define Cm_b2_clean aircraft_->Cm_b2_clean
1121 #define Cm_r_clean aircraft_->Cm_r_clean
1122 #define Cm_df_clean aircraft_->Cm_df_clean
1123 double kCYo, kCY_beta, kCY_p, kCY_r, kCY_da, kCY_dr, kCY_dra, kCY_bdot;
1124 double CYo_clean, CY_beta_clean, CY_p_clean, CY_r_clean, CY_da_clean;
1125 double CY_dr_clean, CY_dra_clean, CY_bdot_clean;
1126 #define kCYo aircraft_->kCYo
1127 #define kCY_beta aircraft_->kCY_beta
1128 #define kCY_p aircraft_->kCY_p
1129 #define kCY_r aircraft_->kCY_r
1130 #define kCY_da aircraft_->kCY_da
1131 #define kCY_dr aircraft_->kCY_dr
1132 #define kCY_dra aircraft_->kCY_dra
1133 #define kCY_bdot aircraft_->kCY_bdot
1134 #define CYo_clean aircraft_->CYo_clean
1135 #define CY_beta_clean aircraft_->CY_beta_clean
1136 #define CY_p_clean aircraft_->CY_p_clean
1137 #define CY_r_clean aircraft_->CY_r_clean
1138 #define CY_da_clean aircraft_->CY_da_clean
1139 #define CY_dr_clean aircraft_->CY_dr_clean
1140 #define CY_dra_clean aircraft_->CY_dra_clean
1141 #define CY_bdot_clean aircraft_->CY_bdot_clean
1142 double kClo, kCl_beta, kCl_p, kCl_r, kCl_da, kCl_dr, kCl_daa;
1143 double Clo_clean, Cl_beta_clean, Cl_p_clean, Cl_r_clean, Cl_da_clean;
1144 double Cl_dr_clean, Cl_daa_clean;
1145 #define kClo aircraft_->kClo
1146 #define kCl_beta aircraft_->kCl_beta
1147 #define kCl_p aircraft_->kCl_p
1148 #define kCl_r aircraft_->kCl_r
1149 #define kCl_da aircraft_->kCl_da
1150 #define kCl_dr aircraft_->kCl_dr
1151 #define kCl_daa aircraft_->kCl_daa
1152 #define Clo_clean aircraft_->Clo_clean
1153 #define Cl_beta_clean aircraft_->Cl_beta_clean
1154 #define Cl_p_clean aircraft_->Cl_p_clean
1155 #define Cl_r_clean aircraft_->Cl_r_clean
1156 #define Cl_da_clean aircraft_->Cl_da_clean
1157 #define Cl_dr_clean aircraft_->Cl_dr_clean
1158 #define Cl_daa_clean aircraft_->Cl_daa_clean
1159 double kCno, kCn_beta, kCn_p, kCn_r, kCn_da, kCn_dr, kCn_q, kCn_b3;
1160 double Cno_clean, Cn_beta_clean, Cn_p_clean, Cn_r_clean, Cn_da_clean;
1161 double Cn_dr_clean, Cn_q_clean, Cn_b3_clean;
1162 #define kCno aircraft_->kCno
1163 #define kCn_beta aircraft_->kCn_beta
1164 #define kCn_p aircraft_->kCn_p
1165 #define kCn_r aircraft_->kCn_r
1166 #define kCn_da aircraft_->kCn_da
1167 #define kCn_dr aircraft_->kCn_dr
1168 #define kCn_q aircraft_->kCn_q
1169 #define kCn_b3 aircraft_->kCn_b3
1170 #define Cno_clean aircraft_->Cno_clean
1171 #define Cn_beta_clean aircraft_->Cn_beta_clean
1172 #define Cn_p_clean aircraft_->Cn_p_clean
1173 #define Cn_r_clean aircraft_->Cn_r_clean
1174 #define Cn_da_clean aircraft_->Cn_da_clean
1175 #define Cn_dr_clean aircraft_->Cn_dr_clean
1176 #define Cn_q_clean aircraft_->Cn_q_clean
1177 #define Cn_b3_clean aircraft_->Cn_b3_clean
1181 /* Variables (token2) ===========================================*/
1182 /* fog =========== Fog field quantities ======================== */
1184 map <string,int> fog_map;
1185 #define fog_map aircraft_->fog_map
1189 int fog_point_index;
1192 double fog_next_time;
1193 int fog_current_segment;
1201 fog_point_index = -1;
1204 fog_next_time = 0.0;
1205 fog_current_segment = 0;
1209 #define fog_field aircraft_->fog_field
1210 #define fog_segments aircraft_->fog_segments
1211 #define fog_point_index aircraft_->fog_point_index
1212 #define fog_time aircraft_->fog_time
1213 #define fog_value aircraft_->fog_value
1214 #define fog_next_time aircraft_->fog_next_time
1215 #define fog_current_segment aircraft_->fog_current_segment
1217 #define Fog aircraft_->Fog
1221 /* Variables (token2) ===========================================*/
1222 /* record ======== Record desired quantites to file =============*/
1224 map <string,int> record_map;
1225 #define record_map aircraft_->record_map
1227 /***** Angles ******/
1228 double Alpha_deg, Alpha_dot_deg, Beta_deg, Beta_dot_deg;
1229 #define Alpha_deg aircraft_->Alpha_deg
1230 #define Alpha_dot_deg aircraft_->Alpha_dot_deg
1231 #define Beta_deg aircraft_->Beta_deg
1232 #define Beta_dot_deg aircraft_->Beta_dot_deg
1233 double Gamma_vert_deg, Gamma_horiz_deg;
1234 #define Gamma_vert_deg aircraft_->Gamma_vert_deg
1235 #define Gamma_horiz_deg aircraft_->Gamma_horiz_deg
1237 /** Control Inputs **/
1238 double Long_trim_deg, elevator_tab, elevator_deg, aileron_deg, rudder_deg;
1239 #define Long_trim_deg aircraft_->Long_trim_deg
1240 #define elevator_tab aircraft_->elevator_tab
1241 #define elevator_deg aircraft_->elevator_deg
1242 #define aileron_deg aircraft_->aileron_deg
1243 #define rudder_deg aircraft_->rudder_deg
1245 #define flap_deg aircraft_->flap_deg
1247 /***** Forces ******/
1248 double F_X_wind, F_Y_wind, F_Z_wind;
1249 #define F_X_wind aircraft_->F_X_wind
1250 #define F_Y_wind aircraft_->F_Y_wind
1251 #define F_Z_wind aircraft_->F_Z_wind
1252 double Lift_clean_wing, Lift_iced_wing;
1253 double Lift_clean_tail, Lift_iced_tail;
1254 #define Lift_clean_wing aircraft_->Lift_clean_wing
1255 #define Lift_iced_wing aircraft_->Lift_iced_wing
1256 #define Lift_clean_tail aircraft_->Lift_clean_tail
1257 #define Lift_iced_tail aircraft_->Lift_iced_tail
1258 double Gamma_clean_wing, Gamma_iced_wing;
1259 double Gamma_clean_tail, Gamma_iced_tail;
1260 #define Gamma_clean_wing aircraft_->Gamma_clean_wing
1261 #define Gamma_iced_wing aircraft_->Gamma_iced_wing
1262 #define Gamma_clean_tail aircraft_->Gamma_clean_tail
1263 #define Gamma_iced_tail aircraft_->Gamma_iced_tail
1264 double w_clean_wing, w_iced_wing;
1265 double w_clean_tail, w_iced_tail;
1266 #define w_clean_wing aircraft_->w_clean_wing
1267 #define w_iced_wing aircraft_->w_iced_wing
1268 #define w_clean_tail aircraft_->w_clean_tail
1269 #define w_iced_tail aircraft_->w_iced_tail
1270 double V_total_clean_wing, V_total_iced_wing;
1271 double V_total_clean_tail, V_total_iced_tail;
1272 #define V_total_clean_wing aircraft_->V_total_clean_wing
1273 #define V_total_iced_wing aircraft_->V_total_iced_wing
1274 #define V_total_clean_tail aircraft_->V_total_clean_tail
1275 #define V_total_iced_tail aircraft_->V_total_iced_tail
1276 double beta_flow_clean_wing, beta_flow_clean_wing_deg;
1277 double beta_flow_iced_wing, beta_flow_iced_wing_deg;
1278 double beta_flow_clean_tail, beta_flow_clean_tail_deg;
1279 double beta_flow_iced_tail, beta_flow_iced_tail_deg;
1280 #define beta_flow_clean_wing aircraft_->beta_flow_clean_wing
1281 #define beta_flow_clean_wing_deg aircraft_->beta_flow_clean_wing_deg
1282 #define beta_flow_iced_wing aircraft_->beta_flow_iced_wing
1283 #define beta_flow_iced_wing_deg aircraft_->beta_flow_iced_wing_deg
1284 #define beta_flow_clean_tail aircraft_->beta_flow_clean_tail
1285 #define beta_flow_clean_tail_deg aircraft_->beta_flow_clean_tail_deg
1286 #define beta_flow_iced_tail aircraft_->beta_flow_iced_tail
1287 #define beta_flow_iced_tail_deg aircraft_->beta_flow_iced_tail_deg
1288 double Dbeta_flow_wing, Dbeta_flow_wing_deg;
1289 double Dbeta_flow_tail, Dbeta_flow_tail_deg;
1290 #define Dbeta_flow_wing aircraft_->Dbeta_flow_wing
1291 #define Dbeta_flow_wing_deg aircraft_->Dbeta_flow_wing_deg
1292 #define Dbeta_flow_tail aircraft_->Dbeta_flow_tail
1293 #define Dbeta_flow_tail_deg aircraft_->Dbeta_flow_tail_deg
1294 double pct_beta_flow_wing, pct_beta_flow_tail;
1295 #define pct_beta_flow_wing aircraft_->pct_beta_flow_wing
1296 #define pct_beta_flow_tail aircraft_->pct_beta_flow_tail
1299 /* Variables (token2) ===========================================*/
1300 /* misc ========== Miscellaneous input commands =================*/
1302 map <string,int> misc_map;
1303 #define misc_map aircraft_->misc_map
1305 double simpleHingeMomentCoef;
1306 #define simpleHingeMomentCoef aircraft_->simpleHingeMomentCoef
1308 double dfTimefdf_dfArray[100];
1309 double dfTimefdf_TimeArray[100];
1311 #define dfTimefdf aircraft_->dfTimefdf
1312 #define dfTimefdf_dfArray aircraft_->dfTimefdf_dfArray
1313 #define dfTimefdf_TimeArray aircraft_->dfTimefdf_TimeArray
1314 #define dfTimefdf_ndf aircraft_->dfTimefdf_ndf
1317 /* Other variables (not tokens) =================================*/
1319 double convert_x, convert_y, convert_z;
1320 #define convert_x aircraft_->convert_x
1321 #define convert_y aircraft_->convert_y
1322 #define convert_z aircraft_->convert_z
1324 double cbar_2U, b_2U, ch_2U;
1325 #define cbar_2U aircraft_->cbar_2U
1326 #define b_2U aircraft_->b_2U
1327 #define ch_2U aircraft_->ch_2U
1330 double dfArray[100];
1331 double TimeArray[100];
1332 #define ndf aircraft_->ndf
1333 #define dfArray aircraft_->dfArray
1334 #define TimeArray aircraft_->TimeArray
1339 #define fout aircraft_->fout
1344 extern AIRCRAFT *aircraft_; // usually defined in the first program that includes uiuc_aircraft.h
1346 #endif // endif _AIRCRAFT_H