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);
127 SG_USING_STD(ofstream);
131 typedef stack :: iterator LIST;
133 /* Add more keywords here if required*/
134 enum {init_flag = 1000, geometry_flag, controlSurface_flag, controlsMixer_flag,
135 mass_flag, engine_flag, CD_flag, CL_flag, Cm_flag, CY_flag, Cl_flag,
136 Cn_flag, gear_flag, ice_flag, record_flag, misc_flag, fog_flag};
138 // init ======= Initial values for equation of motion
139 enum {Dx_pilot_flag = 2000, Dy_pilot_flag, Dz_pilot_flag,
140 Dx_cg_flag, Dy_cg_flag, Dz_cg_flag, Altitude_flag,
141 V_north_flag, V_east_flag, V_down_flag,
142 P_body_flag, Q_body_flag, R_body_flag,
143 Phi_flag, Theta_flag, Psi_flag,
144 Long_trim_flag, recordRate_flag, recordStartTime_flag,
145 nondim_rate_V_rel_wind_flag, dyn_on_speed_flag, Alpha_flag,
146 Beta_flag, U_body_flag, V_body_flag, W_body_flag};
148 // geometry === Aircraft-specific geometric quantities
149 enum {bw_flag = 3000, cbar_flag, Sw_flag, ih_flag, bh_flag, ch_flag, Sh_flag};
151 // controlSurface = Control surface deflections and properties
152 enum {de_flag = 4000, da_flag, dr_flag,
153 set_Long_trim_flag, set_Long_trim_deg_flag, zero_Long_trim_flag,
154 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};
156 // controlsMixer == Controls mixer
157 enum {nomix_flag = 5000};
159 //mass ======== Aircraft-specific mass properties
160 enum {Weight_flag = 6000, Mass_flag, I_xx_flag, I_yy_flag, I_zz_flag, I_xz_flag};
162 // engine ===== Propulsion data
163 enum {simpleSingle_flag = 7000, c172_flag, cherokee_flag, Throttle_pct_input_flag};
165 // CD ========= Aerodynamic x-force quantities (longitudinal)
166 enum {CDo_flag = 8000, CDK_flag, CD_a_flag, CD_adot_flag, CD_q_flag, CD_ih_flag, CD_de_flag,
167 CDfa_flag, CDfCL_flag, CDfade_flag, CDfdf_flag, CDfadf_flag,
168 CXo_flag, CXK_flag, CX_a_flag, CX_a2_flag, CX_a3_flag, CX_adot_flag,
169 CX_q_flag, CX_de_flag, CX_dr_flag, CX_df_flag, CX_adf_flag};
171 // CL ========= Aerodynamic z-force quantities (longitudinal)
172 enum {CLo_flag = 9000, CL_a_flag, CL_adot_flag, CL_q_flag, CL_ih_flag, CL_de_flag,
173 CLfa_flag, CLfade_flag, CLfdf_flag, CLfadf_flag,
174 CZo_flag, CZ_a_flag, CZ_a2_flag, CZ_a3_flag, CZ_adot_flag,
175 CZ_q_flag, CZ_de_flag, CZ_deb2_flag, CZ_df_flag, CZ_adf_flag, CZfa_flag};
177 // Cm ========= Aerodynamic m-moment quantities (longitudinal)
178 enum {Cmo_flag = 10000, Cm_a_flag, Cm_a2_flag, Cm_adot_flag, Cm_q_flag,
179 Cm_ih_flag, Cm_de_flag, Cm_b2_flag, Cm_r_flag, Cm_df_flag,
180 Cmfa_flag, Cmfade_flag, Cmfdf_flag, Cmfadf_flag};
182 // CY ========= Aerodynamic y-force quantities (lateral)
183 enum {CYo_flag = 11000, CY_beta_flag, CY_p_flag, CY_r_flag, CY_da_flag,
184 CY_dr_flag, CY_dra_flag, CY_bdot_flag, CYfada_flag, CYfbetadr_flag};
186 // Cl ========= Aerodynamic l-moment quantities (lateral)
187 enum {Clo_flag = 12000, Cl_beta_flag, Cl_p_flag, Cl_r_flag, Cl_da_flag,
188 Cl_dr_flag, Cl_daa_flag, Clfada_flag, Clfbetadr_flag};
190 // Cn ========= Aerodynamic n-moment quantities (lateral)
191 enum {Cno_flag = 13000, Cn_beta_flag, Cn_p_flag, Cn_r_flag, Cn_da_flag,
192 Cn_dr_flag, Cn_q_flag, Cn_b3_flag, Cnfada_flag, Cnfbetadr_flag};
194 // gear ======= Landing gear model quantities
195 enum {Dx_gear_flag = 14000, Dy_gear_flag, Dz_gear_flag, cgear_flag,
196 kgear_flag, muGear_flag, strutLength_flag};
198 // ice ======== Ice model quantities
199 enum {iceTime_flag = 15000, transientTime_flag, eta_ice_final_flag,
200 beta_probe_wing_flag, beta_probe_tail_flag,
201 kCDo_flag, kCDK_flag, kCD_a_flag, kCD_adot_flag, kCD_q_flag, kCD_de_flag,
202 kCXo_flag, kCXK_flag, kCX_a_flag, kCX_a2_flag, kCX_a3_flag, kCX_adot_flag,
203 kCX_q_flag, kCX_de_flag, kCX_dr_flag, kCX_df_flag, kCX_adf_flag,
204 kCLo_flag, kCL_a_flag, kCL_adot_flag, kCL_q_flag, kCL_de_flag,
205 kCZo_flag, kCZ_a_flag, kCZ_a2_flag, kCZ_a3_flag, kCZ_adot_flag,
206 kCZ_q_flag, kCZ_de_flag, kCZ_deb2_flag, kCZ_df_flag, kCZ_adf_flag,
207 kCmo_flag, kCm_a_flag, kCm_a2_flag, kCm_adot_flag, kCm_q_flag,
208 kCm_de_flag, kCm_b2_flag, kCm_r_flag, kCm_df_flag,
209 kCYo_flag, kCY_beta_flag, kCY_p_flag, kCY_r_flag, kCY_da_flag,
210 kCY_dr_flag, kCY_dra_flag, kCY_bdot_flag,
211 kClo_flag, kCl_beta_flag, kCl_p_flag, kCl_r_flag, kCl_da_flag,
212 kCl_dr_flag, kCl_daa_flag,
213 kCno_flag, kCn_beta_flag, kCn_p_flag, kCn_r_flag, kCn_da_flag,
214 kCn_dr_flag, kCn_q_flag, kCn_b3_flag};
216 // record ===== Record desired quantites to file
217 enum {Simtime_record = 16000, dt_record,
219 Weight_record, Mass_record, I_xx_record, I_yy_record, I_zz_record, I_xz_record,
221 Dx_pilot_record, Dy_pilot_record, Dz_pilot_record,
222 Dx_cg_record, Dy_cg_record, Dz_cg_record,
223 Lat_geocentric_record, Lon_geocentric_record, Radius_to_vehicle_record,
224 Latitude_record, Longitude_record, Altitude_record,
225 Phi_record, Theta_record, Psi_record,
227 V_dot_north_record, V_dot_east_record, V_dot_down_record,
228 U_dot_body_record, V_dot_body_record, W_dot_body_record,
229 A_X_pilot_record, A_Y_pilot_record, A_Z_pilot_record,
230 A_X_cg_record, A_Y_cg_record, A_Z_cg_record,
231 N_X_pilot_record, N_Y_pilot_record, N_Z_pilot_record,
232 N_X_cg_record, N_Y_cg_record, N_Z_cg_record,
233 P_dot_body_record, Q_dot_body_record, R_dot_body_record,
235 V_north_record, V_east_record, V_down_record,
236 V_north_rel_ground_record, V_east_rel_ground_record, V_down_rel_ground_record,
237 V_north_airmass_record, V_east_airmass_record, V_down_airmass_record,
238 V_north_rel_airmass_record, V_east_rel_airmass_record, V_down_rel_airmass_record,
239 U_gust_record, V_gust_record, W_gust_record,
240 U_body_record, V_body_record, W_body_record,
241 V_rel_wind_record, V_true_kts_record, V_rel_ground_record,
242 V_inertial_record, V_ground_speed_record, V_equiv_record,
243 V_equiv_kts_record, V_calibrated_record, V_calibrated_kts_record,
244 P_local_record, Q_local_record, R_local_record,
245 P_body_record, Q_body_record, R_body_record,
246 P_total_record, Q_total_record, R_total_record,
247 Phi_dot_record, Theta_dot_record, Psi_dot_record,
248 Latitude_dot_record, Longitude_dot_record, Radius_dot_record,
250 Alpha_record, Alpha_deg_record, Alpha_dot_record, Alpha_dot_deg_record,
251 Beta_record, Beta_deg_record, Beta_dot_record, Beta_dot_deg_record,
252 Gamma_vert_record, Gamma_vert_deg_record, Gamma_horiz_record, Gamma_horiz_deg_record,
254 Density_record, V_sound_record, Mach_number_record,
255 Static_pressure_record, Total_pressure_record, Impact_pressure_record,
256 Dynamic_pressure_record,
257 Static_temperature_record, Total_temperature_record,
259 Gravity_record, Sea_level_radius_record, Earth_position_angle_record,
260 Runway_altitude_record, Runway_latitude_record, Runway_longitude_record,
261 Runway_heading_record, Radius_to_rwy_record,
262 D_pilot_north_of_rwy_record, D_pilot_east_of_rwy_record, D_pilot_above_rwy_record,
263 X_pilot_rwy_record, Y_pilot_rwy_record, H_pilot_rwy_record,
264 D_cg_north_of_rwy_record, D_cg_east_of_rwy_record, D_cg_above_rwy_record,
265 X_cg_rwy_record, Y_cg_rwy_record, H_cg_rwy_record,
267 Throttle_3_record, Throttle_pct_record,
269 Long_control_record, Long_trim_record, Long_trim_deg_record,
270 elevator_record, elevator_deg_record,
271 Lat_control_record, aileron_record, aileron_deg_record,
272 Rudder_pedal_record, rudder_record, rudder_deg_record,
273 Flap_handle_record, flap_record, flap_deg_record,
275 CD_record, CDfaI_record, CDfCLI_record, CDfadeI_record, CDfdfI_record, CDfadfI_record, CX_record,
276 CL_record, CLfaI_record, CLfadeI_record, CLfdfI_record, CLfadfI_record, CZ_record,
277 Cm_record, CmfaI_record, CmfadeI_record, CmfdfI_record, CmfadfI_record,
278 CY_record, CYfadaI_record, CYfbetadrI_record,
279 Cl_record, ClfadaI_record, ClfbetadrI_record,
280 Cn_record, CnfadaI_record, CnfbetadrI_record,
282 F_X_wind_record, F_Y_wind_record, F_Z_wind_record,
283 F_X_aero_record, F_Y_aero_record, F_Z_aero_record,
284 F_X_engine_record, F_Y_engine_record, F_Z_engine_record,
285 F_X_gear_record, F_Y_gear_record, F_Z_gear_record,
286 F_X_record, F_Y_record, F_Z_record,
287 F_north_record, F_east_record, F_down_record,
289 M_l_aero_record, M_m_aero_record, M_n_aero_record,
290 M_l_engine_record, M_m_engine_record, M_n_engine_record,
291 M_l_gear_record, M_m_gear_record, M_n_gear_record,
292 M_l_rp_record, M_m_rp_record, M_n_rp_record,
294 CLclean_wing_record, CLiced_wing_record,
295 CLclean_tail_record, CLiced_tail_record,
296 Lift_clean_wing_record, Lift_iced_wing_record,
297 Lift_clean_tail_record, Lift_iced_tail_record,
298 Gamma_clean_wing_record, Gamma_iced_wing_record,
299 Gamma_clean_tail_record, Gamma_iced_tail_record,
300 w_clean_wing_record, w_iced_wing_record,
301 w_clean_tail_record, w_iced_tail_record,
302 V_total_clean_wing_record, V_total_iced_wing_record,
303 V_total_clean_tail_record, V_total_iced_tail_record,
304 beta_flow_clean_wing_record, beta_flow_clean_wing_deg_record,
305 beta_flow_iced_wing_record, beta_flow_iced_wing_deg_record,
306 beta_flow_clean_tail_record, beta_flow_clean_tail_deg_record,
307 beta_flow_iced_tail_record, beta_flow_iced_tail_deg_record,
308 Dbeta_flow_wing_record, Dbeta_flow_wing_deg_record,
309 Dbeta_flow_tail_record, Dbeta_flow_tail_deg_record,
310 pct_beta_flow_wing_record, pct_beta_flow_tail_record};
312 // misc ======= Miscellaneous inputs
313 enum {simpleHingeMomentCoef_flag = 17000, dfTimefdf_flag};
316 // fog ======== Fog field quantities
317 enum {fog_segments_flag = 18000, fog_point_flag};
322 // ParseFile stuff [] Bipin to add more comments
324 #define airplane aircraft_->airplane
325 ParseFile *initParts;
326 #define initParts aircraft_->initParts
327 ParseFile *geometryParts;
328 #define geometryParts aircraft_->geometryParts
329 ParseFile *massParts;
330 #define massParts aircraft_->massParts
331 ParseFile *aeroDragParts;
332 #define aeroDragParts aircraft_->aeroDragParts
333 ParseFile *aeroLiftParts;
334 #define aeroLiftParts aircraft_->aeroLiftParts
335 ParseFile *aeroPitchParts;
336 #define aeroPitchParts aircraft_->aeroPitchParts
337 ParseFile *aeroSideforceParts;
338 #define aeroSideforceParts aircraft_->aeroSideforceParts
339 ParseFile *aeroRollParts;
340 #define aeroRollParts aircraft_->aeroRollParts
341 ParseFile *aeroYawParts;
342 #define aeroYawParts aircraft_->aeroYawParts
343 ParseFile *engineParts;
344 #define engineParts aircraft_->engineParts
345 ParseFile *gearParts;
346 #define gearParts aircraft_->gearParts
347 ParseFile *recordParts;
348 #define recordParts aircraft_->recordParts
350 /*= Keywords (token1) ===========================================*/
351 map <string,int> Keyword_map;
352 #define Keyword_map aircraft_->Keyword_map
354 double CD, CX, CL, CZ, Cm, CY, Cl, Cn;
355 #define CD aircraft_->CD
356 #define CX aircraft_->CX
357 #define CL aircraft_->CL
358 #define CZ aircraft_->CZ
359 #define Cm aircraft_->Cm
360 #define CY aircraft_->CY
361 #define Cl aircraft_->Cl
362 #define Cn aircraft_->Cn
363 double CXclean_wing, CXclean_tail, CXiced_wing, CXiced_tail;
364 double CLclean_wing, CLclean_tail, CLiced_wing, CLiced_tail;
365 double CZclean_wing, CZclean_tail, CZiced_wing, CZiced_tail;
366 #define CXclean_wing aircraft_->CXclean_wing
367 #define CXclean_tail aircraft_->CXclean_tail
368 #define CXiced_wing aircraft_->CXiced_wing
369 #define CXiced_tail aircraft_->CXiced_tail
370 #define CLclean_wing aircraft_->CLclean_wing
371 #define CLclean_tail aircraft_->CLclean_tail
372 #define CLiced_wing aircraft_->CLiced_wing
373 #define CLiced_tail aircraft_->CLiced_tail
374 #define CZclean_wing aircraft_->CZclean_wing
375 #define CZclean_tail aircraft_->CZclean_tail
376 #define CZiced_wing aircraft_->CZiced_wing
377 #define CZiced_tail aircraft_->CZiced_tail
379 /*========================================*/
380 /* Variables (token2) - 17 groups (000329)*/
381 /*========================================*/
383 /* Variables (token2) ===========================================*/
384 /* init ========== Initial values for equations of motion =======*/
386 map <string,int> init_map;
387 #define init_map aircraft_->init_map
390 #define recordRate aircraft_->recordRate
391 double recordStartTime;
392 #define recordStartTime aircraft_->recordStartTime
393 bool nondim_rate_V_rel_wind;
394 #define nondim_rate_V_rel_wind aircraft_->nondim_rate_V_rel_wind
396 #define dyn_on_speed aircraft_->dyn_on_speed
397 bool P_body_init_true;
399 #define P_body_init_true aircraft_->P_body_init_true
400 #define P_body_init aircraft_->P_body_init
401 bool Q_body_init_true;
403 #define Q_body_init_true aircraft_->Q_body_init_true
404 #define Q_body_init aircraft_->Q_body_init
405 bool R_body_init_true;
407 #define R_body_init_true aircraft_->R_body_init_true
408 #define R_body_init aircraft_->R_body_init
411 #define Phi_init_true aircraft_->Phi_init_true
412 #define Phi_init aircraft_->Phi_init
413 bool Theta_init_true;
415 #define Theta_init_true aircraft_->Theta_init_true
416 #define Theta_init aircraft_->Theta_init
419 #define Psi_init_true aircraft_->Psi_init_true
420 #define Psi_init aircraft_->Psi_init
421 bool Alpha_init_true;
423 #define Alpha_init_true aircraft_->Alpha_init_true
424 #define Alpha_init aircraft_->Alpha_init
427 #define Beta_init_true aircraft_->Beta_init_true
428 #define Beta_init aircraft_->Beta_init
429 bool U_body_init_true;
431 #define U_body_init_true aircraft_->U_body_init_true
432 #define U_body_init aircraft_->U_body_init
433 bool V_body_init_true;
435 #define V_body_init_true aircraft_->V_body_init_true
436 #define V_body_init aircraft_->V_body_init
437 bool W_body_init_true;
439 #define W_body_init_true aircraft_->W_body_init_true
440 #define W_body_init aircraft_->W_body_init
443 /* Variables (token2) ===========================================*/
444 /* geometry ====== Aircraft-specific geometric quantities =======*/
446 map <string,int> geometry_map;
447 #define geometry_map aircraft_->geometry_map
449 double bw, cbar, Sw, ih, bh, ch, Sh;
450 #define bw aircraft_->bw
451 #define cbar aircraft_->cbar
452 #define Sw aircraft_->Sw
453 #define ih aircraft_->ih
454 #define bh aircraft_->bh
455 #define ch aircraft_->ch
456 #define Sh aircraft_->Sh
459 /* Variables (token2) ===========================================*/
460 /* controlSurface Control surface deflections and properties ===*/
462 map <string,int> controlSurface_map;
463 #define controlSurface_map aircraft_->controlSurface_map
468 #define demax aircraft_->demax
469 #define demin aircraft_->demin
470 #define damax aircraft_->damax
471 #define damin aircraft_->damin
472 #define drmax aircraft_->drmax
473 #define drmin aircraft_->drmin
475 double aileron, elevator, rudder;
476 #define aileron aircraft_->aileron
477 #define elevator aircraft_->elevator
478 #define rudder aircraft_->rudder
480 #define flap aircraft_->flap
482 bool set_Long_trim, zero_Long_trim;
483 double Long_trim_constant;
484 #define set_Long_trim aircraft_->set_Long_trim
485 #define Long_trim_constant aircraft_->Long_trim_constant
486 #define zero_Long_trim aircraft_->zero_Long_trim
489 double elevator_step_angle, elevator_step_startTime;
490 #define elevator_step aircraft_->elevator_step
491 #define elevator_step_angle aircraft_->elevator_step_angle
492 #define elevator_step_startTime aircraft_->elevator_step_startTime
494 bool elevator_singlet;
495 double elevator_singlet_angle, elevator_singlet_startTime;
496 double elevator_singlet_duration;
497 #define elevator_singlet aircraft_->elevator_singlet
498 #define elevator_singlet_angle aircraft_->elevator_singlet_angle
499 #define elevator_singlet_startTime aircraft_->elevator_singlet_startTime
500 #define elevator_singlet_duration aircraft_->elevator_singlet_duration
502 bool elevator_doublet;
503 double elevator_doublet_angle, elevator_doublet_startTime;
504 double elevator_doublet_duration;
505 #define elevator_doublet aircraft_->elevator_doublet
506 #define elevator_doublet_angle aircraft_->elevator_doublet_angle
507 #define elevator_doublet_startTime aircraft_->elevator_doublet_startTime
508 #define elevator_doublet_duration aircraft_->elevator_doublet_duration
511 string elevator_input_file;
512 double elevator_input_timeArray[1000];
513 double elevator_input_deArray[1000];
514 int elevator_input_ntime;
515 double elevator_input_startTime;
516 #define elevator_input aircraft_->elevator_input
517 #define elevator_input_file aircraft_->elevator_input_file
518 #define elevator_input_timeArray aircraft_->elevator_input_timeArray
519 #define elevator_input_deArray aircraft_->elevator_input_deArray
520 #define elevator_input_ntime aircraft_->elevator_input_ntime
521 #define elevator_input_startTime aircraft_->elevator_input_startTime
524 string aileron_input_file;
525 double aileron_input_timeArray[1000];
526 double aileron_input_daArray[1000];
527 int aileron_input_ntime;
528 double aileron_input_startTime;
529 #define aileron_input aircraft_->aileron_input
530 #define aileron_input_file aircraft_->aileron_input_file
531 #define aileron_input_timeArray aircraft_->aileron_input_timeArray
532 #define aileron_input_daArray aircraft_->aileron_input_daArray
533 #define aileron_input_ntime aircraft_->aileron_input_ntime
534 #define aileron_input_startTime aircraft_->aileron_input_startTime
537 string rudder_input_file;
538 double rudder_input_timeArray[1000];
539 double rudder_input_drArray[1000];
540 int rudder_input_ntime;
541 double rudder_input_startTime;
542 #define rudder_input aircraft_->rudder_input
543 #define rudder_input_file aircraft_->rudder_input_file
544 #define rudder_input_timeArray aircraft_->rudder_input_timeArray
545 #define rudder_input_drArray aircraft_->rudder_input_drArray
546 #define rudder_input_ntime aircraft_->rudder_input_ntime
547 #define rudder_input_startTime aircraft_->rudder_input_startTime
550 #define pilot_elev_no aircraft_->pilot_elev_no
551 bool pilot_elev_no_check;
552 #define pilot_elev_no_check aircraft_->pilot_elev_no_check
555 #define pilot_ail_no aircraft_->pilot_ail_no
556 bool pilot_ail_no_check;
557 #define pilot_ail_no_check aircraft_->pilot_ail_no_check
560 #define pilot_rud_no aircraft_->pilot_rud_no
561 bool pilot_rud_no_check;
562 #define pilot_rud_no_check aircraft_->pilot_rud_no_check
565 /* Variables (token2) ===========================================*/
566 /* controlsMixer = Control mixer ================================*/
568 map <string,int> controlsMixer_map;
569 #define controlsMixer_map aircraft_->controlsMixer_map
572 #define nomix aircraft_->nomix
575 /* Variables (token2) ===========================================*/
576 /* mass =========== Aircraft-specific mass properties ===========*/
578 map <string,int> mass_map;
579 #define mass_map aircraft_->mass_map
582 #define Weight aircraft_->Weight
585 /* Variables (token2) ===========================================*/
586 /* engine ======== Propulsion data ==============================*/
588 map <string,int> engine_map;
589 #define engine_map aircraft_->engine_map
591 double simpleSingleMaxThrust;
592 #define simpleSingleMaxThrust aircraft_->simpleSingleMaxThrust
594 bool Throttle_pct_input;
595 string Throttle_pct_input_file;
596 double Throttle_pct_input_timeArray[1000];
597 double Throttle_pct_input_dTArray[1000];
598 int Throttle_pct_input_ntime;
599 double Throttle_pct_input_startTime;
600 #define Throttle_pct_input aircraft_->Throttle_pct_input
601 #define Throttle_pct_input_file aircraft_->Throttle_pct_input_file
602 #define Throttle_pct_input_timeArray aircraft_->Throttle_pct_input_timeArray
603 #define Throttle_pct_input_dTArray aircraft_->Throttle_pct_input_dTArray
604 #define Throttle_pct_input_ntime aircraft_->Throttle_pct_input_ntime
605 #define Throttle_pct_input_startTime aircraft_->Throttle_pct_input_startTime
608 /* Variables (token2) ===========================================*/
609 /* CD ============ Aerodynamic x-force quantities (longitudinal) */
611 map <string,int> CD_map;
612 #define CD_map aircraft_->CD_map
614 double CDo, CDK, CD_a, CD_adot, CD_q, CD_ih, CD_de;
615 #define CDo aircraft_->CDo
616 #define CDK aircraft_->CDK
617 #define CD_a aircraft_->CD_a
618 #define CD_adot aircraft_->CD_adot
619 #define CD_q aircraft_->CD_q
620 #define CD_ih aircraft_->CD_ih
621 #define CD_de aircraft_->CD_de
623 double CDfa_aArray[100];
624 double CDfa_CDArray[100];
627 #define CDfa aircraft_->CDfa
628 #define CDfa_aArray aircraft_->CDfa_aArray
629 #define CDfa_CDArray aircraft_->CDfa_CDArray
630 #define CDfa_nAlpha aircraft_->CDfa_nAlpha
631 #define CDfaI aircraft_->CDfaI
633 double CDfCL_CLArray[100];
634 double CDfCL_CDArray[100];
637 #define CDfCL aircraft_->CDfCL
638 #define CDfCL_CLArray aircraft_->CDfCL_CLArray
639 #define CDfCL_CDArray aircraft_->CDfCL_CDArray
640 #define CDfCL_nCL aircraft_->CDfCL_nCL
641 #define CDfCLI aircraft_->CDfCLI
643 double CDfade_aArray[100][100];
644 double CDfade_deArray[100];
645 double CDfade_CDArray[100][100];
646 int CDfade_nAlphaArray[100];
649 #define CDfade aircraft_->CDfade
650 #define CDfade_aArray aircraft_->CDfade_aArray
651 #define CDfade_deArray aircraft_->CDfade_deArray
652 #define CDfade_CDArray aircraft_->CDfade_CDArray
653 #define CDfade_nAlphaArray aircraft_->CDfade_nAlphaArray
654 #define CDfade_nde aircraft_->CDfade_nde
655 #define CDfadeI aircraft_->CDfadeI
657 double CDfdf_dfArray[100];
658 double CDfdf_CDArray[100];
661 #define CDfdf aircraft_->CDfdf
662 #define CDfdf_dfArray aircraft_->CDfdf_dfArray
663 #define CDfdf_CDArray aircraft_->CDfdf_CDArray
664 #define CDfdf_ndf aircraft_->CDfdf_ndf
665 #define CDfdfI aircraft_->CDfdfI
667 double CDfadf_aArray[100][100];
668 double CDfadf_dfArray[100];
669 double CDfadf_CDArray[100][100];
670 int CDfadf_nAlphaArray[100];
673 #define CDfadf aircraft_->CDfadf
674 #define CDfadf_aArray aircraft_->CDfadf_aArray
675 #define CDfadf_dfArray aircraft_->CDfadf_dfArray
676 #define CDfadf_CDArray aircraft_->CDfadf_CDArray
677 #define CDfadf_nAlphaArray aircraft_->CDfadf_nAlphaArray
678 #define CDfadf_ndf aircraft_->CDfadf_ndf
679 #define CDfadfI aircraft_->CDfadfI
680 double CXo, CXK, CX_a, CX_a2, CX_a3, CX_adot;
681 double CX_q, CX_de, CX_dr, CX_df, CX_adf;
682 #define CXo aircraft_->CXo
683 #define CXK aircraft_->CXK
684 #define CX_a aircraft_->CX_a
685 #define CX_a2 aircraft_->CX_a2
686 #define CX_a3 aircraft_->CX_a3
687 #define CX_adot aircraft_->CX_adot
688 #define CX_q aircraft_->CX_q
689 #define CX_de aircraft_->CX_de
690 #define CX_dr aircraft_->CX_dr
691 #define CX_df aircraft_->CX_df
692 #define CX_adf aircraft_->CX_adf
695 /* Variables (token2) ===========================================*/
696 /* CL ============ Aerodynamic z-force quantities (longitudinal) */
698 map <string,int> CL_map;
699 #define CL_map aircraft_->CL_map
701 double CLo, CL_a, CL_adot, CL_q, CL_ih, CL_de;
702 #define CLo aircraft_->CLo
703 #define CL_a aircraft_->CL_a
704 #define CL_adot aircraft_->CL_adot
705 #define CL_q aircraft_->CL_q
706 #define CL_ih aircraft_->CL_ih
707 #define CL_de aircraft_->CL_de
709 double CLfa_aArray[100];
710 double CLfa_CLArray[100];
713 #define CLfa aircraft_->CLfa
714 #define CLfa_aArray aircraft_->CLfa_aArray
715 #define CLfa_CLArray aircraft_->CLfa_CLArray
716 #define CLfa_nAlpha aircraft_->CLfa_nAlpha
717 #define CLfaI aircraft_->CLfaI
719 double CLfade_aArray[100][100];
720 double CLfade_deArray[100];
721 double CLfade_CLArray[100][100];
722 int CLfade_nAlphaArray[100];
725 #define CLfade aircraft_->CLfade
726 #define CLfade_aArray aircraft_->CLfade_aArray
727 #define CLfade_deArray aircraft_->CLfade_deArray
728 #define CLfade_CLArray aircraft_->CLfade_CLArray
729 #define CLfade_nAlphaArray aircraft_->CLfade_nAlphaArray
730 #define CLfade_nde aircraft_->CLfade_nde
731 #define CLfadeI aircraft_->CLfadeI
733 double CLfdf_dfArray[100];
734 double CLfdf_CLArray[100];
737 #define CLfdf aircraft_->CLfdf
738 #define CLfdf_dfArray aircraft_->CLfdf_dfArray
739 #define CLfdf_CLArray aircraft_->CLfdf_CLArray
740 #define CLfdf_ndf aircraft_->CLfdf_ndf
741 #define CLfdfI aircraft_->CLfdfI
743 double CLfadf_aArray[100][100];
744 double CLfadf_dfArray[100];
745 double CLfadf_CLArray[100][100];
746 int CLfadf_nAlphaArray[100];
749 #define CLfadf aircraft_->CLfadf
750 #define CLfadf_aArray aircraft_->CLfadf_aArray
751 #define CLfadf_dfArray aircraft_->CLfadf_dfArray
752 #define CLfadf_CLArray aircraft_->CLfadf_CLArray
753 #define CLfadf_nAlphaArray aircraft_->CLfadf_nAlphaArray
754 #define CLfadf_ndf aircraft_->CLfadf_ndf
755 #define CLfadfI aircraft_->CLfadfI
756 double CZo, CZ_a, CZ_a2, CZ_a3, CZ_adot;
757 double CZ_q, CZ_de, CZ_deb2, CZ_df, CZ_adf;
758 #define CZo aircraft_->CZo
759 #define CZ_a aircraft_->CZ_a
760 #define CZ_a2 aircraft_->CZ_a2
761 #define CZ_a3 aircraft_->CZ_a3
762 #define CZ_adot aircraft_->CZ_adot
763 #define CZ_q aircraft_->CZ_q
764 #define CZ_de aircraft_->CZ_de
765 #define CZ_deb2 aircraft_->CZ_deb2
766 #define CZ_df aircraft_->CZ_df
767 #define CZ_adf aircraft_->CZ_adf
769 double CZfa_aArray[100];
770 double CZfa_CZArray[100];
773 #define CZfa aircraft_->CZfa
774 #define CZfa_aArray aircraft_->CZfa_aArray
775 #define CZfa_CZArray aircraft_->CZfa_CZArray
776 #define CZfa_nAlpha aircraft_->CZfa_nAlpha
777 #define CZfaI aircraft_->CZfaI
780 /* Variables (token2) ===========================================*/
781 /* Cm ============ Aerodynamic m-moment quantities (longitudinal) */
783 map <string,int> Cm_map;
784 #define Cm_map aircraft_->Cm_map
786 double Cmo, Cm_a, Cm_a2, Cm_adot, Cm_q;
787 double Cm_ih, Cm_de, Cm_b2, Cm_r, Cm_df;
788 #define Cmo aircraft_->Cmo
789 #define Cm_a aircraft_->Cm_a
790 #define Cm_a2 aircraft_->Cm_a2
791 #define Cm_adot aircraft_->Cm_adot
792 #define Cm_q aircraft_->Cm_q
793 #define Cm_ih aircraft_->Cm_ih
794 #define Cm_de aircraft_->Cm_de
795 #define Cm_b2 aircraft_->Cm_b2
796 #define Cm_r aircraft_->Cm_r
797 #define Cm_df aircraft_->Cm_df
799 double Cmfa_aArray[100];
800 double Cmfa_CmArray[100];
803 #define Cmfa aircraft_->Cmfa
804 #define Cmfa_aArray aircraft_->Cmfa_aArray
805 #define Cmfa_CmArray aircraft_->Cmfa_CmArray
806 #define Cmfa_nAlpha aircraft_->Cmfa_nAlpha
807 #define CmfaI aircraft_->CmfaI
809 double Cmfade_aArray[100][100];
810 double Cmfade_deArray[100];
811 double Cmfade_CmArray[100][100];
812 int Cmfade_nAlphaArray[100];
815 #define Cmfade aircraft_->Cmfade
816 #define Cmfade_aArray aircraft_->Cmfade_aArray
817 #define Cmfade_deArray aircraft_->Cmfade_deArray
818 #define Cmfade_CmArray aircraft_->Cmfade_CmArray
819 #define Cmfade_nAlphaArray aircraft_->Cmfade_nAlphaArray
820 #define Cmfade_nde aircraft_->Cmfade_nde
821 #define CmfadeI aircraft_->CmfadeI
823 double Cmfdf_dfArray[100];
824 double Cmfdf_CmArray[100];
827 #define Cmfdf aircraft_->Cmfdf
828 #define Cmfdf_dfArray aircraft_->Cmfdf_dfArray
829 #define Cmfdf_CmArray aircraft_->Cmfdf_CmArray
830 #define Cmfdf_ndf aircraft_->Cmfdf_ndf
831 #define CmfdfI aircraft_->CmfdfI
833 double Cmfadf_aArray[100][100];
834 double Cmfadf_dfArray[100];
835 double Cmfadf_CmArray[100][100];
836 int Cmfadf_nAlphaArray[100];
839 #define Cmfadf aircraft_->Cmfadf
840 #define Cmfadf_aArray aircraft_->Cmfadf_aArray
841 #define Cmfadf_dfArray aircraft_->Cmfadf_dfArray
842 #define Cmfadf_CmArray aircraft_->Cmfadf_CmArray
843 #define Cmfadf_nAlphaArray aircraft_->Cmfadf_nAlphaArray
844 #define Cmfadf_ndf aircraft_->Cmfadf_ndf
845 #define CmfadfI aircraft_->CmfadfI
848 /* Variables (token2) ===========================================*/
849 /* CY ============ Aerodynamic y-force quantities (lateral) =====*/
851 map <string,int> CY_map;
852 #define CY_map aircraft_->CY_map
854 double CYo, CY_beta, CY_p, CY_r, CY_da, CY_dr, CY_dra, CY_bdot;
855 #define CYo aircraft_->CYo
856 #define CY_beta aircraft_->CY_beta
857 #define CY_p aircraft_->CY_p
858 #define CY_r aircraft_->CY_r
859 #define CY_da aircraft_->CY_da
860 #define CY_dr aircraft_->CY_dr
861 #define CY_dra aircraft_->CY_dra
862 #define CY_bdot aircraft_->CY_bdot
864 double CYfada_aArray[100][100];
865 double CYfada_daArray[100];
866 double CYfada_CYArray[100][100];
867 int CYfada_nAlphaArray[100];
870 #define CYfada aircraft_->CYfada
871 #define CYfada_aArray aircraft_->CYfada_aArray
872 #define CYfada_daArray aircraft_->CYfada_daArray
873 #define CYfada_CYArray aircraft_->CYfada_CYArray
874 #define CYfada_nAlphaArray aircraft_->CYfada_nAlphaArray
875 #define CYfada_nda aircraft_->CYfada_nda
876 #define CYfadaI aircraft_->CYfadaI
878 double CYfbetadr_betaArray[100][100];
879 double CYfbetadr_drArray[100];
880 double CYfbetadr_CYArray[100][100];
881 int CYfbetadr_nBetaArray[100];
884 #define CYfbetadr aircraft_->CYfbetadr
885 #define CYfbetadr_betaArray aircraft_->CYfbetadr_betaArray
886 #define CYfbetadr_drArray aircraft_->CYfbetadr_drArray
887 #define CYfbetadr_CYArray aircraft_->CYfbetadr_CYArray
888 #define CYfbetadr_nBetaArray aircraft_->CYfbetadr_nBetaArray
889 #define CYfbetadr_ndr aircraft_->CYfbetadr_ndr
890 #define CYfbetadrI aircraft_->CYfbetadrI
893 /* Variables (token2) ===========================================*/
894 /* Cl ============ Aerodynamic l-moment quantities (lateral) ====*/
896 map <string,int> Cl_map;
897 #define Cl_map aircraft_->Cl_map
899 double Clo, Cl_beta, Cl_p, Cl_r, Cl_da, Cl_dr, Cl_daa;
900 #define Clo aircraft_->Clo
901 #define Cl_beta aircraft_->Cl_beta
902 #define Cl_p aircraft_->Cl_p
903 #define Cl_r aircraft_->Cl_r
904 #define Cl_da aircraft_->Cl_da
905 #define Cl_dr aircraft_->Cl_dr
906 #define Cl_daa aircraft_->Cl_daa
908 double Clfada_aArray[100][100];
909 double Clfada_daArray[100];
910 double Clfada_ClArray[100][100];
911 int Clfada_nAlphaArray[100];
914 #define Clfada aircraft_->Clfada
915 #define Clfada_aArray aircraft_->Clfada_aArray
916 #define Clfada_daArray aircraft_->Clfada_daArray
917 #define Clfada_ClArray aircraft_->Clfada_ClArray
918 #define Clfada_nAlphaArray aircraft_->Clfada_nAlphaArray
919 #define Clfada_nda aircraft_->Clfada_nda
920 #define ClfadaI aircraft_->ClfadaI
922 double Clfbetadr_betaArray[100][100];
923 double Clfbetadr_drArray[100];
924 double Clfbetadr_ClArray[100][100];
925 int Clfbetadr_nBetaArray[100];
928 #define Clfbetadr aircraft_->Clfbetadr
929 #define Clfbetadr_betaArray aircraft_->Clfbetadr_betaArray
930 #define Clfbetadr_drArray aircraft_->Clfbetadr_drArray
931 #define Clfbetadr_ClArray aircraft_->Clfbetadr_ClArray
932 #define Clfbetadr_nBetaArray aircraft_->Clfbetadr_nBetaArray
933 #define Clfbetadr_ndr aircraft_->Clfbetadr_ndr
934 #define ClfbetadrI aircraft_->ClfbetadrI
937 /* Variables (token2) ===========================================*/
938 /* Cn ============ Aerodynamic n-moment quantities (lateral) ====*/
940 map <string,int> Cn_map;
941 #define Cn_map aircraft_->Cn_map
943 double Cno, Cn_beta, Cn_p, Cn_r, Cn_da, Cn_dr, Cn_q, Cn_b3;
944 #define Cno aircraft_->Cno
945 #define Cn_beta aircraft_->Cn_beta
946 #define Cn_p aircraft_->Cn_p
947 #define Cn_r aircraft_->Cn_r
948 #define Cn_da aircraft_->Cn_da
949 #define Cn_dr aircraft_->Cn_dr
950 #define Cn_q aircraft_->Cn_q
951 #define Cn_b3 aircraft_->Cn_b3
953 double Cnfada_aArray[100][100];
954 double Cnfada_daArray[100];
955 double Cnfada_CnArray[100][100];
956 int Cnfada_nAlphaArray[100];
959 #define Cnfada aircraft_->Cnfada
960 #define Cnfada_aArray aircraft_->Cnfada_aArray
961 #define Cnfada_daArray aircraft_->Cnfada_daArray
962 #define Cnfada_CnArray aircraft_->Cnfada_CnArray
963 #define Cnfada_nAlphaArray aircraft_->Cnfada_nAlphaArray
964 #define Cnfada_nda aircraft_->Cnfada_nda
965 #define CnfadaI aircraft_->CnfadaI
967 double Cnfbetadr_betaArray[100][100];
968 double Cnfbetadr_drArray[100];
969 double Cnfbetadr_CnArray[100][100];
970 int Cnfbetadr_nBetaArray[100];
973 #define Cnfbetadr aircraft_->Cnfbetadr
974 #define Cnfbetadr_betaArray aircraft_->Cnfbetadr_betaArray
975 #define Cnfbetadr_drArray aircraft_->Cnfbetadr_drArray
976 #define Cnfbetadr_CnArray aircraft_->Cnfbetadr_CnArray
977 #define Cnfbetadr_nBetaArray aircraft_->Cnfbetadr_nBetaArray
978 #define Cnfbetadr_ndr aircraft_->Cnfbetadr_ndr
979 #define CnfbetadrI aircraft_->CnfbetadrI
982 /* Variables (token2) ===========================================*/
983 /* gear ========== Landing gear model quantities ================*/
985 map <string,int> gear_map;
987 #define gear_map aircraft_->gear_map
989 bool gear_model[MAX_GEAR];
990 SCALAR D_gear_v[MAX_GEAR][3];
991 SCALAR cgear[MAX_GEAR];
992 SCALAR kgear[MAX_GEAR];
993 SCALAR muGear[MAX_GEAR];
994 SCALAR strutLength[MAX_GEAR];
995 #define D_gear_v aircraft_->D_gear_v
996 #define gear_model aircraft_->gear_model
997 #define cgear aircraft_->cgear
998 #define kgear aircraft_->kgear
999 #define muGear aircraft_->muGear
1000 #define strutLength aircraft_->strutLength
1003 /* Variables (token2) ===========================================*/
1004 /* ice =========== Ice model quantities ======================== */
1006 map <string,int> ice_map;
1007 #define ice_map aircraft_->ice_map
1009 bool ice_model, ice_on, beta_model;
1011 double transientTime;
1012 double eta_ice_final;
1014 double x_probe_wing;
1015 double x_probe_tail;
1016 #define ice_model aircraft_->ice_model
1017 #define ice_on aircraft_->ice_on
1018 #define beta_model aircraft_->beta_model
1019 #define iceTime aircraft_->iceTime
1020 #define transientTime aircraft_->transientTime
1021 #define eta_ice_final aircraft_->eta_ice_final
1022 #define eta_ice aircraft_->eta_ice
1023 #define x_probe_wing aircraft_->x_probe_wing
1024 #define x_probe_tail aircraft_->x_probe_tail
1025 double kCDo, kCDK, kCD_a, kCD_adot, kCD_q, kCD_de;
1026 double CDo_clean, CDK_clean, CD_a_clean, CD_adot_clean, CD_q_clean, CD_de_clean;
1027 #define kCDo aircraft_->kCDo
1028 #define kCDK aircraft_->kCDK
1029 #define kCD_a aircraft_->kCD_a
1030 #define kCD_adot aircraft_->kCD_adot
1031 #define kCD_q aircraft_->kCD_q
1032 #define kCD_de aircraft_->kCD_de
1033 #define CDo_clean aircraft_->CDo_clean
1034 #define CDK_clean aircraft_->CDK_clean
1035 #define CD_a_clean aircraft_->CD_a_clean
1036 #define CD_adot_clean aircraft_->CD_adot_clean
1037 #define CD_q_clean aircraft_->CD_q_clean
1038 #define CD_de_clean aircraft_->CD_de_clean
1039 double kCXo, kCXK, kCX_a, kCX_a2, kCX_a3, kCX_adot;
1040 double kCX_q, kCX_de, kCX_dr, kCX_df, kCX_adf;
1041 double CXo_clean, CXK_clean, CX_a_clean, CX_a2_clean, CX_a3_clean, CX_adot_clean;
1042 double CX_q_clean, CX_de_clean, CX_dr_clean, CX_df_clean, CX_adf_clean;
1043 #define kCXo aircraft_->kCXo
1044 #define kCXK aircraft_->kCXK
1045 #define kCX_a aircraft_->kCX_a
1046 #define kCX_a2 aircraft_->kCX_a2
1047 #define kCX_a3 aircraft_->kCX_a3
1048 #define kCX_adot aircraft_->kCX_adot
1049 #define kCX_q aircraft_->kCX_q
1050 #define kCX_de aircraft_->kCX_de
1051 #define kCX_dr aircraft_->kCX_dr
1052 #define kCX_df aircraft_->kCX_df
1053 #define kCX_adf aircraft_->kCX_adf
1054 #define CXo_clean aircraft_->CXo_clean
1055 #define CXK_clean aircraft_->CXK_clean
1056 #define CX_a_clean aircraft_->CX_a_clean
1057 #define CX_a2_clean aircraft_->CX_a2_clean
1058 #define CX_a3_clean aircraft_->CX_a3_clean
1059 #define CX_adot_clean aircraft_->CX_adot_clean
1060 #define CX_q_clean aircraft_->CX_q_clean
1061 #define CX_de_clean aircraft_->CX_de_clean
1062 #define CX_dr_clean aircraft_->CX_dr_clean
1063 #define CX_df_clean aircraft_->CX_df_clean
1064 #define CX_adf_clean aircraft_->CX_adf_clean
1065 double kCLo, kCL_a, kCL_adot, kCL_q, kCL_de;
1066 double CLo_clean, CL_a_clean, CL_adot_clean, CL_q_clean, CL_de_clean;
1067 #define kCLo aircraft_->kCLo
1068 #define kCL_a aircraft_->kCL_a
1069 #define kCL_adot aircraft_->kCL_adot
1070 #define kCL_q aircraft_->kCL_q
1071 #define kCL_de aircraft_->kCL_de
1072 #define CLo_clean aircraft_->CLo_clean
1073 #define CL_a_clean aircraft_->CL_a_clean
1074 #define CL_adot_clean aircraft_->CL_adot_clean
1075 #define CL_q_clean aircraft_->CL_q_clean
1076 #define CL_de_clean aircraft_->CL_de_clean
1077 double kCZo, kCZ_a, kCZ_a2, kCZ_a3, kCZ_adot, kCZ_q, kCZ_de, kCZ_deb2, kCZ_df, kCZ_adf;
1078 double CZo_clean, CZ_a_clean, CZ_a2_clean, CZ_a3_clean, CZ_adot_clean;
1079 double CZ_q_clean, CZ_de_clean, CZ_deb2_clean, CZ_df_clean, CZ_adf_clean;
1080 #define kCZo aircraft_->kCZo
1081 #define kCZ_a aircraft_->kCZ_a
1082 #define kCZ_a2 aircraft_->kCZ_a2
1083 #define kCZ_a3 aircraft_->kCZ_a3
1084 #define kCZ_adot aircraft_->kCZ_adot
1085 #define kCZ_q aircraft_->kCZ_q
1086 #define kCZ_de aircraft_->kCZ_de
1087 #define kCZ_deb2 aircraft_->kCZ_deb2
1088 #define kCZ_df aircraft_->kCZ_df
1089 #define kCZ_adf aircraft_->kCZ_adf
1090 #define CZo_clean aircraft_->CZo_clean
1091 #define CZ_a_clean aircraft_->CZ_a_clean
1092 #define CZ_a2_clean aircraft_->CZ_a2_clean
1093 #define CZ_a3_clean aircraft_->CZ_a3_clean
1094 #define CZ_adot_clean aircraft_->CZ_adot_clean
1095 #define CZ_q_clean aircraft_->CZ_q_clean
1096 #define CZ_de_clean aircraft_->CZ_de_clean
1097 #define CZ_deb2_clean aircraft_->CZ_deb2_clean
1098 #define CZ_df_clean aircraft_->CZ_df_clean
1099 #define CZ_adf_clean aircraft_->CZ_adf_clean
1100 double kCmo, kCm_a, kCm_a2, kCm_adot, kCm_q, kCm_de, kCm_b2, kCm_r, kCm_df;
1101 double Cmo_clean, Cm_a_clean, Cm_a2_clean, Cm_adot_clean, Cm_q_clean;
1102 double Cm_de_clean, Cm_b2_clean, Cm_r_clean, Cm_df_clean;
1103 #define kCmo aircraft_->kCmo
1104 #define kCm_a aircraft_->kCm_a
1105 #define kCm_a2 aircraft_->kCm_a2
1106 #define kCm_adot aircraft_->kCm_adot
1107 #define kCm_q aircraft_->kCm_q
1108 #define kCm_de aircraft_->kCm_de
1109 #define kCm_b2 aircraft_->kCm_b2
1110 #define kCm_r aircraft_->kCm_r
1111 #define kCm_df aircraft_->kCm_df
1112 #define Cmo_clean aircraft_->Cmo_clean
1113 #define Cm_a_clean aircraft_->Cm_a_clean
1114 #define Cm_a2_clean aircraft_->Cm_a2_clean
1115 #define Cm_adot_clean aircraft_->Cm_adot_clean
1116 #define Cm_q_clean aircraft_->Cm_q_clean
1117 #define Cm_de_clean aircraft_->Cm_de_clean
1118 #define Cm_b2_clean aircraft_->Cm_b2_clean
1119 #define Cm_r_clean aircraft_->Cm_r_clean
1120 #define Cm_df_clean aircraft_->Cm_df_clean
1121 double kCYo, kCY_beta, kCY_p, kCY_r, kCY_da, kCY_dr, kCY_dra, kCY_bdot;
1122 double CYo_clean, CY_beta_clean, CY_p_clean, CY_r_clean, CY_da_clean;
1123 double CY_dr_clean, CY_dra_clean, CY_bdot_clean;
1124 #define kCYo aircraft_->kCYo
1125 #define kCY_beta aircraft_->kCY_beta
1126 #define kCY_p aircraft_->kCY_p
1127 #define kCY_r aircraft_->kCY_r
1128 #define kCY_da aircraft_->kCY_da
1129 #define kCY_dr aircraft_->kCY_dr
1130 #define kCY_dra aircraft_->kCY_dra
1131 #define kCY_bdot aircraft_->kCY_bdot
1132 #define CYo_clean aircraft_->CYo_clean
1133 #define CY_beta_clean aircraft_->CY_beta_clean
1134 #define CY_p_clean aircraft_->CY_p_clean
1135 #define CY_r_clean aircraft_->CY_r_clean
1136 #define CY_da_clean aircraft_->CY_da_clean
1137 #define CY_dr_clean aircraft_->CY_dr_clean
1138 #define CY_dra_clean aircraft_->CY_dra_clean
1139 #define CY_bdot_clean aircraft_->CY_bdot_clean
1140 double kClo, kCl_beta, kCl_p, kCl_r, kCl_da, kCl_dr, kCl_daa;
1141 double Clo_clean, Cl_beta_clean, Cl_p_clean, Cl_r_clean, Cl_da_clean;
1142 double Cl_dr_clean, Cl_daa_clean;
1143 #define kClo aircraft_->kClo
1144 #define kCl_beta aircraft_->kCl_beta
1145 #define kCl_p aircraft_->kCl_p
1146 #define kCl_r aircraft_->kCl_r
1147 #define kCl_da aircraft_->kCl_da
1148 #define kCl_dr aircraft_->kCl_dr
1149 #define kCl_daa aircraft_->kCl_daa
1150 #define Clo_clean aircraft_->Clo_clean
1151 #define Cl_beta_clean aircraft_->Cl_beta_clean
1152 #define Cl_p_clean aircraft_->Cl_p_clean
1153 #define Cl_r_clean aircraft_->Cl_r_clean
1154 #define Cl_da_clean aircraft_->Cl_da_clean
1155 #define Cl_dr_clean aircraft_->Cl_dr_clean
1156 #define Cl_daa_clean aircraft_->Cl_daa_clean
1157 double kCno, kCn_beta, kCn_p, kCn_r, kCn_da, kCn_dr, kCn_q, kCn_b3;
1158 double Cno_clean, Cn_beta_clean, Cn_p_clean, Cn_r_clean, Cn_da_clean;
1159 double Cn_dr_clean, Cn_q_clean, Cn_b3_clean;
1160 #define kCno aircraft_->kCno
1161 #define kCn_beta aircraft_->kCn_beta
1162 #define kCn_p aircraft_->kCn_p
1163 #define kCn_r aircraft_->kCn_r
1164 #define kCn_da aircraft_->kCn_da
1165 #define kCn_dr aircraft_->kCn_dr
1166 #define kCn_q aircraft_->kCn_q
1167 #define kCn_b3 aircraft_->kCn_b3
1168 #define Cno_clean aircraft_->Cno_clean
1169 #define Cn_beta_clean aircraft_->Cn_beta_clean
1170 #define Cn_p_clean aircraft_->Cn_p_clean
1171 #define Cn_r_clean aircraft_->Cn_r_clean
1172 #define Cn_da_clean aircraft_->Cn_da_clean
1173 #define Cn_dr_clean aircraft_->Cn_dr_clean
1174 #define Cn_q_clean aircraft_->Cn_q_clean
1175 #define Cn_b3_clean aircraft_->Cn_b3_clean
1179 /* Variables (token2) ===========================================*/
1180 /* fog =========== Fog field quantities ======================== */
1182 map <string,int> fog_map;
1183 #define fog_map aircraft_->fog_map
1187 int fog_point_index;
1190 double fog_next_time;
1191 int fog_current_segment;
1199 fog_point_index = -1;
1202 fog_next_time = 0.0;
1203 fog_current_segment = 0;
1207 #define fog_field aircraft_->fog_field
1208 #define fog_segments aircraft_->fog_segments
1209 #define fog_point_index aircraft_->fog_point_index
1210 #define fog_time aircraft_->fog_time
1211 #define fog_value aircraft_->fog_value
1212 #define fog_next_time aircraft_->fog_next_time
1213 #define fog_current_segment aircraft_->fog_current_segment
1215 #define Fog aircraft_->Fog
1219 /* Variables (token2) ===========================================*/
1220 /* record ======== Record desired quantites to file =============*/
1222 map <string,int> record_map;
1223 #define record_map aircraft_->record_map
1225 /***** Angles ******/
1226 double Alpha_deg, Alpha_dot_deg, Beta_deg, Beta_dot_deg;
1227 #define Alpha_deg aircraft_->Alpha_deg
1228 #define Alpha_dot_deg aircraft_->Alpha_dot_deg
1229 #define Beta_deg aircraft_->Beta_deg
1230 #define Beta_dot_deg aircraft_->Beta_dot_deg
1231 double Gamma_vert_deg, Gamma_horiz_deg;
1232 #define Gamma_vert_deg aircraft_->Gamma_vert_deg
1233 #define Gamma_horiz_deg aircraft_->Gamma_horiz_deg
1235 /** Control Inputs **/
1236 double Long_trim_deg, elevator_tab, elevator_deg, aileron_deg, rudder_deg;
1237 #define Long_trim_deg aircraft_->Long_trim_deg
1238 #define elevator_tab aircraft_->elevator_tab
1239 #define elevator_deg aircraft_->elevator_deg
1240 #define aileron_deg aircraft_->aileron_deg
1241 #define rudder_deg aircraft_->rudder_deg
1243 #define flap_deg aircraft_->flap_deg
1245 /***** Forces ******/
1246 double F_X_wind, F_Y_wind, F_Z_wind;
1247 #define F_X_wind aircraft_->F_X_wind
1248 #define F_Y_wind aircraft_->F_Y_wind
1249 #define F_Z_wind aircraft_->F_Z_wind
1250 double Lift_clean_wing, Lift_iced_wing;
1251 double Lift_clean_tail, Lift_iced_tail;
1252 #define Lift_clean_wing aircraft_->Lift_clean_wing
1253 #define Lift_iced_wing aircraft_->Lift_iced_wing
1254 #define Lift_clean_tail aircraft_->Lift_clean_tail
1255 #define Lift_iced_tail aircraft_->Lift_iced_tail
1256 double Gamma_clean_wing, Gamma_iced_wing;
1257 double Gamma_clean_tail, Gamma_iced_tail;
1258 #define Gamma_clean_wing aircraft_->Gamma_clean_wing
1259 #define Gamma_iced_wing aircraft_->Gamma_iced_wing
1260 #define Gamma_clean_tail aircraft_->Gamma_clean_tail
1261 #define Gamma_iced_tail aircraft_->Gamma_iced_tail
1262 double w_clean_wing, w_iced_wing;
1263 double w_clean_tail, w_iced_tail;
1264 #define w_clean_wing aircraft_->w_clean_wing
1265 #define w_iced_wing aircraft_->w_iced_wing
1266 #define w_clean_tail aircraft_->w_clean_tail
1267 #define w_iced_tail aircraft_->w_iced_tail
1268 double V_total_clean_wing, V_total_iced_wing;
1269 double V_total_clean_tail, V_total_iced_tail;
1270 #define V_total_clean_wing aircraft_->V_total_clean_wing
1271 #define V_total_iced_wing aircraft_->V_total_iced_wing
1272 #define V_total_clean_tail aircraft_->V_total_clean_tail
1273 #define V_total_iced_tail aircraft_->V_total_iced_tail
1274 double beta_flow_clean_wing, beta_flow_clean_wing_deg;
1275 double beta_flow_iced_wing, beta_flow_iced_wing_deg;
1276 double beta_flow_clean_tail, beta_flow_clean_tail_deg;
1277 double beta_flow_iced_tail, beta_flow_iced_tail_deg;
1278 #define beta_flow_clean_wing aircraft_->beta_flow_clean_wing
1279 #define beta_flow_clean_wing_deg aircraft_->beta_flow_clean_wing_deg
1280 #define beta_flow_iced_wing aircraft_->beta_flow_iced_wing
1281 #define beta_flow_iced_wing_deg aircraft_->beta_flow_iced_wing_deg
1282 #define beta_flow_clean_tail aircraft_->beta_flow_clean_tail
1283 #define beta_flow_clean_tail_deg aircraft_->beta_flow_clean_tail_deg
1284 #define beta_flow_iced_tail aircraft_->beta_flow_iced_tail
1285 #define beta_flow_iced_tail_deg aircraft_->beta_flow_iced_tail_deg
1286 double Dbeta_flow_wing, Dbeta_flow_wing_deg;
1287 double Dbeta_flow_tail, Dbeta_flow_tail_deg;
1288 #define Dbeta_flow_wing aircraft_->Dbeta_flow_wing
1289 #define Dbeta_flow_wing_deg aircraft_->Dbeta_flow_wing_deg
1290 #define Dbeta_flow_tail aircraft_->Dbeta_flow_tail
1291 #define Dbeta_flow_tail_deg aircraft_->Dbeta_flow_tail_deg
1292 double pct_beta_flow_wing, pct_beta_flow_tail;
1293 #define pct_beta_flow_wing aircraft_->pct_beta_flow_wing
1294 #define pct_beta_flow_tail aircraft_->pct_beta_flow_tail
1297 /* Variables (token2) ===========================================*/
1298 /* misc ========== Miscellaneous input commands =================*/
1300 map <string,int> misc_map;
1301 #define misc_map aircraft_->misc_map
1303 double simpleHingeMomentCoef;
1304 #define simpleHingeMomentCoef aircraft_->simpleHingeMomentCoef
1306 double dfTimefdf_dfArray[100];
1307 double dfTimefdf_TimeArray[100];
1309 #define dfTimefdf aircraft_->dfTimefdf
1310 #define dfTimefdf_dfArray aircraft_->dfTimefdf_dfArray
1311 #define dfTimefdf_TimeArray aircraft_->dfTimefdf_TimeArray
1312 #define dfTimefdf_ndf aircraft_->dfTimefdf_ndf
1315 /* Other variables (not tokens) =================================*/
1317 double convert_x, convert_y, convert_z;
1318 #define convert_x aircraft_->convert_x
1319 #define convert_y aircraft_->convert_y
1320 #define convert_z aircraft_->convert_z
1322 double cbar_2U, b_2U, ch_2U;
1323 #define cbar_2U aircraft_->cbar_2U
1324 #define b_2U aircraft_->b_2U
1325 #define ch_2U aircraft_->ch_2U
1328 double dfArray[100];
1329 double TimeArray[100];
1330 #define ndf aircraft_->ndf
1331 #define dfArray aircraft_->dfArray
1332 #define TimeArray aircraft_->TimeArray
1337 #define fout aircraft_->fout
1342 extern AIRCRAFT *aircraft_; // usually defined in the first program that includes uiuc_aircraft.h
1344 #endif // endif _AIRCRAFT_H