1 /***************************************************************************
5 ----------------------------------------------------------------------------
7 FUNCTION: LaRCSim generic parameters header file
9 ----------------------------------------------------------------------------
11 MODULE STATUS: developmental
13 ----------------------------------------------------------------------------
15 GENEALOGY: Created 15 DEC 1993 by Bruce Jackson;
16 was part of old ls_eom.h header
18 ----------------------------------------------------------------------------
20 DESIGNED BY: B. Jackson
24 MAINTAINED BY: guess who
26 ----------------------------------------------------------------------------
33 ----------------------------------------------------------------------------
37 [ 1] McFarland, Richard E.: "A Standard Kinematic Model
38 for Flight Simulation at NASA-Ames", NASA CR-2497,
41 [ 2] ANSI/AIAA R-004-1992 "Recommended Practice: Atmos-
42 pheric and Space Flight Vehicle Coordinate Systems",
45 [ 3] Beyer, William H., editor: "CRC Standard Mathematical
46 Tables, 28th edition", CRC Press, Boca Raton, FL, 1987,
49 [ 4] Dowdy, M. C.; Jackson, E. B.; and Nichols, J. H.:
50 "Controls Analysis and Simulation Test Loop Environ-
51 ment (CASTLE) Programmer's Guide, Version 1.3",
52 NATC TM 89-11, 30 March 1989.
54 [ 5] Halliday, David; and Resnick, Robert: "Fundamentals
55 of Physics, Revised Printing", Wiley and Sons, 1974.
58 [ 6] Anon: "U. S. Standard Atmosphere, 1962"
60 [ 7] Anon: "Aeronautical Vest Pocket Handbook, 17th edition",
61 Pratt & Whitney Aircraft Group, Dec. 1977
63 [ 8] Stevens, Brian L.; and Lewis, Frank L.: "Aircraft
64 Control and Simulation", Wiley and Sons, 1992.
67 --------------------------------------------------------------------------*/
84 /*================== Mass properties and geometry values ==================*/
86 DATA mass, i_xx, i_yy, i_zz, i_xz; /* Inertias */
87 #define Mass generic_.mass
88 #define I_xx generic_.i_xx
89 #define I_yy generic_.i_yy
90 #define I_zz generic_.i_zz
91 #define I_xz generic_.i_xz
93 VECTOR_3 d_pilot_rp_body_v; /* Pilot location rel to ref pt */
94 #define D_pilot_rp_body_v generic_.d_pilot_rp_body_v
95 #define Dx_pilot generic_.d_pilot_rp_body_v[0]
96 #define Dy_pilot generic_.d_pilot_rp_body_v[1]
97 #define Dz_pilot generic_.d_pilot_rp_body_v[2]
99 VECTOR_3 d_cg_rp_body_v; /* CG position w.r.t. ref. point */
100 #define D_cg_rp_body_v generic_.d_cg_rp_body_v
101 #define Dx_cg generic_.d_cg_rp_body_v[0]
102 #define Dy_cg generic_.d_cg_rp_body_v[1]
103 #define Dz_cg generic_.d_cg_rp_body_v[2]
105 /*================================ Forces =================================*/
107 VECTOR_3 f_body_total_v;
108 #define F_body_total_v generic_.f_body_total_v
109 #define F_X generic_.f_body_total_v[0]
110 #define F_Y generic_.f_body_total_v[1]
111 #define F_Z generic_.f_body_total_v[2]
113 VECTOR_3 f_local_total_v;
114 #define F_local_total_v generic_.f_local_total_v
115 #define F_north generic_.f_local_total_v[0]
116 #define F_east generic_.f_local_total_v[1]
117 #define F_down generic_.f_local_total_v[2]
120 #define F_aero_v generic_.f_aero_v
121 #define F_X_aero generic_.f_aero_v[0]
122 #define F_Y_aero generic_.f_aero_v[1]
123 #define F_Z_aero generic_.f_aero_v[2]
126 #define F_engine_v generic_.f_engine_v
127 #define F_X_engine generic_.f_engine_v[0]
128 #define F_Y_engine generic_.f_engine_v[1]
129 #define F_Z_engine generic_.f_engine_v[2]
131 int use_external_engine;
132 #define Use_External_Engine generic_.use_external_engine
135 #define F_gear_v generic_.f_gear_v
136 #define F_X_gear generic_.f_gear_v[0]
137 #define F_Y_gear generic_.f_gear_v[1]
138 #define F_Z_gear generic_.f_gear_v[2]
140 /*================================ Moments ================================*/
142 VECTOR_3 m_total_rp_v;
143 #define M_total_rp_v generic_.m_total_rp_v
144 #define M_l_rp generic_.m_total_rp_v[0]
145 #define M_m_rp generic_.m_total_rp_v[1]
146 #define M_n_rp generic_.m_total_rp_v[2]
148 VECTOR_3 m_total_cg_v;
149 #define M_total_cg_v generic_.m_total_cg_v
150 #define M_l_cg generic_.m_total_cg_v[0]
151 #define M_m_cg generic_.m_total_cg_v[1]
152 #define M_n_cg generic_.m_total_cg_v[2]
155 #define M_aero_v generic_.m_aero_v
156 #define M_l_aero generic_.m_aero_v[0]
157 #define M_m_aero generic_.m_aero_v[1]
158 #define M_n_aero generic_.m_aero_v[2]
161 #define M_engine_v generic_.m_engine_v
162 #define M_l_engine generic_.m_engine_v[0]
163 #define M_m_engine generic_.m_engine_v[1]
164 #define M_n_engine generic_.m_engine_v[2]
167 #define M_gear_v generic_.m_gear_v
168 #define M_l_gear generic_.m_gear_v[0]
169 #define M_m_gear generic_.m_gear_v[1]
170 #define M_n_gear generic_.m_gear_v[2]
172 /*============================== Accelerations ============================*/
174 VECTOR_3 v_dot_local_v;
175 #define V_dot_local_v generic_.v_dot_local_v
176 #define V_dot_north generic_.v_dot_local_v[0]
177 #define V_dot_east generic_.v_dot_local_v[1]
178 #define V_dot_down generic_.v_dot_local_v[2]
180 VECTOR_3 v_dot_body_v;
181 #define V_dot_body_v generic_.v_dot_body_v
182 #define U_dot_body generic_.v_dot_body_v[0]
183 #define V_dot_body generic_.v_dot_body_v[1]
184 #define W_dot_body generic_.v_dot_body_v[2]
186 VECTOR_3 a_cg_body_v;
187 #define A_cg_body_v generic_.a_cg_body_v
188 #define A_X_cg generic_.a_cg_body_v[0]
189 #define A_Y_cg generic_.a_cg_body_v[1]
190 #define A_Z_cg generic_.a_cg_body_v[2]
192 VECTOR_3 a_pilot_body_v;
193 #define A_pilot_body_v generic_.a_pilot_body_v
194 #define A_X_pilot generic_.a_pilot_body_v[0]
195 #define A_Y_pilot generic_.a_pilot_body_v[1]
196 #define A_Z_pilot generic_.a_pilot_body_v[2]
198 VECTOR_3 n_cg_body_v;
199 #define N_cg_body_v generic_.n_cg_body_v
200 #define N_X_cg generic_.n_cg_body_v[0]
201 #define N_Y_cg generic_.n_cg_body_v[1]
202 #define N_Z_cg generic_.n_cg_body_v[2]
204 VECTOR_3 n_pilot_body_v;
205 #define N_pilot_body_v generic_.n_pilot_body_v
206 #define N_X_pilot generic_.n_pilot_body_v[0]
207 #define N_Y_pilot generic_.n_pilot_body_v[1]
208 #define N_Z_pilot generic_.n_pilot_body_v[2]
210 VECTOR_3 omega_dot_body_v;
211 #define Omega_dot_body_v generic_.omega_dot_body_v
212 #define P_dot_body generic_.omega_dot_body_v[0]
213 #define Q_dot_body generic_.omega_dot_body_v[1]
214 #define R_dot_body generic_.omega_dot_body_v[2]
217 /*============================== Velocities ===============================*/
220 #define V_local_v generic_.v_local_v
221 #define V_north generic_.v_local_v[0]
222 #define V_east generic_.v_local_v[1]
223 #define V_down generic_.v_local_v[2]
225 VECTOR_3 v_local_rel_ground_v; /* V rel w.r.t. earth surface */
226 #define V_local_rel_ground_v generic_.v_local_rel_ground_v
227 #define V_north_rel_ground generic_.v_local_rel_ground_v[0]
228 #define V_east_rel_ground generic_.v_local_rel_ground_v[1]
229 #define V_down_rel_ground generic_.v_local_rel_ground_v[2]
231 VECTOR_3 v_local_airmass_v; /* velocity of airmass (steady winds) */
232 #define V_local_airmass_v generic_.v_local_airmass_v
233 #define V_north_airmass generic_.v_local_airmass_v[0]
234 #define V_east_airmass generic_.v_local_airmass_v[1]
235 #define V_down_airmass generic_.v_local_airmass_v[2]
237 VECTOR_3 v_local_rel_airmass_v; /* velocity of veh. relative to airmass */
238 #define V_local_rel_airmass_v generic_.v_local_rel_airmass_v
239 #define V_north_rel_airmass generic_.v_local_rel_airmass_v[0]
240 #define V_east_rel_airmass generic_.v_local_rel_airmass_v[1]
241 #define V_down_rel_airmass generic_.v_local_rel_airmass_v[2]
243 VECTOR_3 v_local_gust_v; /* linear turbulence components, L frame */
244 #define V_local_gust_v generic_.v_local_gust_v
245 #define U_gust generic_.v_local_gust_v[0]
246 #define V_gust generic_.v_local_gust_v[1]
247 #define W_gust generic_.v_local_gust_v[2]
249 VECTOR_3 v_wind_body_v; /* Wind-relative velocities in body axis */
250 #define V_wind_body_v generic_.v_wind_body_v
251 #define U_body generic_.v_wind_body_v[0]
252 #define V_body generic_.v_wind_body_v[1]
253 #define W_body generic_.v_wind_body_v[2]
255 DATA v_rel_wind, v_true_kts, v_rel_ground, v_inertial;
256 DATA v_ground_speed, v_equiv, v_equiv_kts;
257 DATA v_calibrated, v_calibrated_kts;
258 #define V_rel_wind generic_.v_rel_wind
259 #define V_true_kts generic_.v_true_kts
260 #define V_rel_ground generic_.v_rel_ground
261 #define V_inertial generic_.v_inertial
262 #define V_ground_speed generic_.v_ground_speed
263 #define V_equiv generic_.v_equiv
264 #define V_equiv_kts generic_.v_equiv_kts
265 #define V_calibrated generic_.v_calibrated
266 #define V_calibrated_kts generic_.v_calibrated_kts
268 VECTOR_3 omega_body_v; /* Angular B rates */
269 #define Omega_body_v generic_.omega_body_v
270 #define P_body generic_.omega_body_v[0]
271 #define Q_body generic_.omega_body_v[1]
272 #define R_body generic_.omega_body_v[2]
274 VECTOR_3 omega_local_v; /* Angular L rates */
275 #define Omega_local_v generic_.omega_local_v
276 #define P_local generic_.omega_local_v[0]
277 #define Q_local generic_.omega_local_v[1]
278 #define R_local generic_.omega_local_v[2]
280 VECTOR_3 omega_total_v; /* Diff btw B & L */
281 #define Omega_total_v generic_.omega_total_v
282 #define P_total generic_.omega_total_v[0]
283 #define Q_total generic_.omega_total_v[1]
284 #define R_total generic_.omega_total_v[2]
286 VECTOR_3 euler_rates_v;
287 #define Euler_rates_v generic_.euler_rates_v
288 #define Phi_dot generic_.euler_rates_v[0]
289 #define Theta_dot generic_.euler_rates_v[1]
290 #define Psi_dot generic_.euler_rates_v[2]
292 VECTOR_3 geocentric_rates_v; /* Geocentric linear velocities */
293 #define Geocentric_rates_v generic_.geocentric_rates_v
294 #define Latitude_dot generic_.geocentric_rates_v[0]
295 #define Longitude_dot generic_.geocentric_rates_v[1]
296 #define Radius_dot generic_.geocentric_rates_v[2]
298 /*=============================== Positions ===============================*/
300 VECTOR_3 geocentric_position_v;
301 #define Geocentric_position_v generic_.geocentric_position_v
302 #define Lat_geocentric generic_.geocentric_position_v[0]
303 #define Lon_geocentric generic_.geocentric_position_v[1]
304 #define Radius_to_vehicle generic_.geocentric_position_v[2]
306 VECTOR_3 geodetic_position_v;
307 #define Geodetic_position_v generic_.geodetic_position_v
308 #define Latitude generic_.geodetic_position_v[0]
309 #define Longitude generic_.geodetic_position_v[1]
310 #define Altitude generic_.geodetic_position_v[2]
312 VECTOR_3 euler_angles_v;
313 #define Euler_angles_v generic_.euler_angles_v
314 #define Phi generic_.euler_angles_v[0]
315 #define Theta generic_.euler_angles_v[1]
316 #define Psi generic_.euler_angles_v[2]
318 /*======================= Miscellaneous quantities ========================*/
320 DATA t_local_to_body_m[3][3]; /* Transformation matrix L to B */
321 #define T_local_to_body_m generic_.t_local_to_body_m
322 #define T_local_to_body_11 generic_.t_local_to_body_m[0][0]
323 #define T_local_to_body_12 generic_.t_local_to_body_m[0][1]
324 #define T_local_to_body_13 generic_.t_local_to_body_m[0][2]
325 #define T_local_to_body_21 generic_.t_local_to_body_m[1][0]
326 #define T_local_to_body_22 generic_.t_local_to_body_m[1][1]
327 #define T_local_to_body_23 generic_.t_local_to_body_m[1][2]
328 #define T_local_to_body_31 generic_.t_local_to_body_m[2][0]
329 #define T_local_to_body_32 generic_.t_local_to_body_m[2][1]
330 #define T_local_to_body_33 generic_.t_local_to_body_m[2][2]
332 DATA gravity; /* Local acceleration due to G */
333 #define Gravity generic_.gravity
335 DATA centrifugal_relief; /* load factor reduction due to speed */
336 #define Centrifugal_relief generic_.centrifugal_relief
338 DATA alpha, beta, alpha_dot, beta_dot; /* in radians */
339 #define Alpha generic_.alpha
340 #define Beta generic_.beta
341 #define Alpha_dot generic_.alpha_dot
342 #define Beta_dot generic_.beta_dot
344 DATA cos_alpha, sin_alpha, cos_beta, sin_beta;
345 #define Cos_alpha generic_.cos_alpha
346 #define Sin_alpha generic_.sin_alpha
347 #define Cos_beta generic_.cos_beta
348 #define Sin_beta generic_.sin_beta
350 DATA cos_phi, sin_phi, cos_theta, sin_theta, cos_psi, sin_psi;
351 #define Cos_phi generic_.cos_phi
352 #define Sin_phi generic_.sin_phi
353 #define Cos_theta generic_.cos_theta
354 #define Sin_theta generic_.sin_theta
355 #define Cos_psi generic_.cos_psi
356 #define Sin_psi generic_.sin_psi
358 DATA gamma_vert_rad, gamma_horiz_rad; /* Flight path angles */
359 #define Gamma_vert_rad generic_.gamma_vert_rad
360 #define Gamma_horiz_rad generic_.gamma_horiz_rad
362 DATA sigma, density, v_sound, mach_number;
363 #define Sigma generic_.sigma
364 #define Density generic_.density
365 #define V_sound generic_.v_sound
366 #define Mach_number generic_.mach_number
368 DATA static_pressure, total_pressure, impact_pressure, dynamic_pressure;
369 #define Static_pressure generic_.static_pressure
370 #define Total_pressure generic_.total_pressure
371 #define Impact_pressure generic_.impact_pressure
372 #define Dynamic_pressure generic_.dynamic_pressure
374 DATA static_temperature, total_temperature;
375 #define Static_temperature generic_.static_temperature
376 #define Total_temperature generic_.total_temperature
378 DATA sea_level_radius, earth_position_angle;
379 #define Sea_level_radius generic_.sea_level_radius
380 #define Earth_position_angle generic_.earth_position_angle
382 DATA runway_altitude, runway_latitude, runway_longitude, runway_heading;
383 #define Runway_altitude generic_.runway_altitude
384 #define Runway_latitude generic_.runway_latitude
385 #define Runway_longitude generic_.runway_longitude
386 #define Runway_heading generic_.runway_heading
389 #define Radius_to_rwy generic_.radius_to_rwy
391 VECTOR_3 d_cg_rwy_local_v; /* CG rel. to rwy in local coords */
392 #define D_cg_rwy_local_v generic_.d_cg_rwy_local_v
393 #define D_cg_north_of_rwy generic_.d_cg_rwy_local_v[0]
394 #define D_cg_east_of_rwy generic_.d_cg_rwy_local_v[1]
395 #define D_cg_above_rwy generic_.d_cg_rwy_local_v[2]
397 VECTOR_3 d_cg_rwy_rwy_v; /* CG relative to runway, in rwy coordinates */
398 #define D_cg_rwy_rwy_v generic_.d_cg_rwy_rwy_v
399 #define X_cg_rwy generic_.d_cg_rwy_rwy_v[0]
400 #define Y_cg_rwy generic_.d_cg_rwy_rwy_v[1]
401 #define H_cg_rwy generic_.d_cg_rwy_rwy_v[2]
403 VECTOR_3 d_pilot_rwy_local_v; /* pilot rel. to rwy in local coords */
404 #define D_pilot_rwy_local_v generic_.d_pilot_rwy_local_v
405 #define D_pilot_north_of_rwy generic_.d_pilot_rwy_local_v[0]
406 #define D_pilot_east_of_rwy generic_.d_pilot_rwy_local_v[1]
407 #define D_pilot_above_rwy generic_.d_pilot_rwy_local_v[2]
409 VECTOR_3 d_pilot_rwy_rwy_v; /* pilot rel. to rwy, in rwy coords. */
410 #define D_pilot_rwy_rwy_v generic_.d_pilot_rwy_rwy_v
411 #define X_pilot_rwy generic_.d_pilot_rwy_rwy_v[0]
412 #define Y_pilot_rwy generic_.d_pilot_rwy_rwy_v[1]
413 #define H_pilot_rwy generic_.d_pilot_rwy_rwy_v[2]
418 extern GENERIC generic_; /* usually defined in ls_main.c */
426 #endif /* _LS_GENERIC_H */
429 /*--------------------------- end of ls_generic.h ------------------------*/