// printf("Altitude = %.2f\n", Altitude * 0.3048);
// printf("Radius to Vehicle = %.2f\n", Radius_to_vehicle * 0.3048);
+ // for engine functions (sounds and instruments)
+ // drive the rpm gauge
+ fgSetDouble("/engines/engine/rpm", (globals->get_controls()->get_throttle( 0 ) * 100.0 * 25 ));
+ // manifold air pressure, which drives the sound (see *sound.xml file)
+ fgSetDouble("/engines/engine/mp-osi", (globals->get_controls()->get_throttle( 0 ) * 100.0 ));
+ // make the engine cranking and running sounds when fgfs starts up
+ fgSetDouble("/engines/engine/cranking", 1);
+ fgSetDouble("/engines/engine/running", 1);
+
ls_update(multiloop);
// printf("%d FG_Altitude = %.2f\n", i, FG_Altitude * 0.3048);
CURRENT RCS HEADER INFO:
$Header$
$Log$
+Revision 1.5 2002/04/01 19:37:34 curt
+I have attached revisions to the UIUC code. The revisions include the
+ability to run a nonlinear model with flaps. The files ls_model.c and
+uiuc_aero.c were changed since we had some functions with the same
+name. The name changes doesn't affect the code, it just makes it a
+little easier to read. There are changes in LaRCsim.cxx so UIUC
+models have engine sound. Could you send me an email when you receive
+this and/or when the changes make it to the CVS? Thanks.
+
+Also I noticed you have some outdated files that are no longer used in
+the UIUCModel directory. They are uiuc_initializemaps1.cpp,
+uiuc_initializemaps2.cpp, uiuc_initializemaps3.cpp, and
+uiuc_initializemaps4.cpp
+
+Rob
+
Revision 1.4 2001/09/14 18:47:27 curt
More changes in support of UIUCModel.
case UIUC:
inertias( dt, Initialize );
subsystems( dt, Initialize );
- uiuc_aero( dt, Initialize );
- uiuc_engine( dt, Initialize );
- uiuc_gear( dt, Initialize );
- uiuc_record(dt);
+ uiuc_aero_2_wrapper( dt, Initialize );
+ uiuc_engine_2_wrapper( dt, Initialize );
+ uiuc_gear_2_wrapper( dt, Initialize );
+ //uiuc_network_2_wrapper();
+ uiuc_record_2_wrapper(dt);
break;
}
}
CODED BY: Bipin Sehgal
- MAINTAINED BY: Bipin Sehgal
+ MAINTAINED BY: Rob Deters and Glen Dimock
----------------------------------------------------------------------------
3/17/00 Initial test release
3/09/01 Added callout to UIUC gear function. (DPM)
6/18/01 Added call out to UIUC record routine (RD)
+ 11/12/01 Changed from uiuc_init_aeromodel() to uiuc_initial_init(). (RD)
+ 2/24/02 Added uiuc_network_routine() (GD)
----------------------------------------------------------------------------
#include <FDM/UIUCModel/uiuc_wrapper.h>
-void uiuc_aero( SCALAR dt, int Initialize )
+void uiuc_aero_2_wrapper( SCALAR dt, int Initialize )
{
static int init = 0;
if (init==0)
{
init = -1;
- uiuc_init_aeromodel();
+ uiuc_initial_init();
+ // uiuc_init_aeromodel();
}
uiuc_force_moment(dt);
}
-void uiuc_engine( SCALAR dt, int Initialize )
+void uiuc_engine_2_wrapper( SCALAR dt, int Initialize )
{
uiuc_engine_routine();
}
-void uiuc_gear ()
+void uiuc_gear_2_wrapper ()
{
uiuc_gear_routine();
}
-void uiuc_record(SCALAR dt)
+void uiuc_record_2_wrapper(SCALAR dt)
{
uiuc_record_routine(dt);
}
+
+//void uiuc_network_2_wrapper()
+//{
+// uiuc_network_routine();
+//}
uiuc_1Dinterpolation.cpp uiuc_1Dinterpolation.h \
uiuc_2DdataFileReader.cpp uiuc_2DdataFileReader.h \
uiuc_2Dinterpolation.cpp uiuc_2Dinterpolation.h \
+ uiuc_3Dinterpolation.cpp uiuc_3Dinterpolation.h \
uiuc_aerodeflections.cpp uiuc_aerodeflections.h \
uiuc_aircraftdir.h uiuc_aircraft.h \
uiuc_betaprobe.cpp uiuc_betaprobe.h \
----------------------------------------------------------------------
HISTORY: 02/29/2000 initial release
+ 10/25/2001 (RD) Modified so that it recognizes a
+ blank line
----------------------------------------------------------------------
AUTHOR(S): Jeff Scott <jscott@mail.com>
+ Robert Deters <rdeters@uiuc.edu>
----------------------------------------------------------------------
istrstream token1(linetoken1.c_str());
istrstream token2(linetoken2.c_str());
- //reset token_value2 for first if statement
+ //reset token_value1 and token_value2 for first if statement
+ token_value1 = -999;
token_value2 = -999;
token1 >> token_value1;
token2 >> token_value2;
+ //chenk to see if it is a blank line
+ if (token_value1==-999 && token_value2==-999);
//check to see if only one value on line (token2 blank)
- if (token_value2 == -999)
+ else if (token_value2 == -999)
{
y[counter_y] = token_value1 * convert_y;
--- /dev/null
+/**********************************************************************
+
+ FILENAME: uiuc_3Dinterpolation.cpp
+
+----------------------------------------------------------------------
+
+ DESCRIPTION: A 3D interpolator. Does a linear interpolation between
+ two values that were found from using the 2D
+ interpolator (3Dinterpolation()), or uses 3Dinterp_quick()
+ to perform a 3D linear interpolation on "nice" data
+
+----------------------------------------------------------------------
+
+ STATUS: alpha version
+
+----------------------------------------------------------------------
+
+ REFERENCES:
+
+----------------------------------------------------------------------
+
+ HISTORY: 11/07/2001 initial release
+ 02/18/2002 (RD) Created uiuc_3Dinterp_quick() to take
+ advantage of the "nice" format of the
+ nonlinear Twin Otter data. Performs a
+ quicker 3D interpolation. Modified
+ uiuc_3Dinterpolation() to handle new input
+ form of the data.
+----------------------------------------------------------------------
+
+ AUTHOR(S): Robert Deters <rdeters@uiuc.edu>
+
+----------------------------------------------------------------------
+
+ VARIABLES:
+
+----------------------------------------------------------------------
+
+ INPUTS:
+
+----------------------------------------------------------------------
+
+ OUTPUTS: interpI
+
+----------------------------------------------------------------------
+
+ CALLED BY: uiuc_coef_drag
+ uiuc_coef_lift
+ uiuc_coef_pitch
+ uiuc_coef_roll
+ uiuc_coef_sideforce
+ uiuc_coef_yaw
+
+----------------------------------------------------------------------
+
+ CALLS TO: 2Dinterpolation
+
+----------------------------------------------------------------------
+
+ COPYRIGHT: (C) 2001 by Michael Selig
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA or view http://www.gnu.org/copyleft/gpl.html.
+
+**********************************************************************/
+#include <simgear/compiler.h> // MSVC: to disable C4244 d to f warning
+
+#include "uiuc_3Dinterpolation.h"
+
+void uiuc_1DtoSingle( int temp1Darray[30],
+ int filenumber,
+ int &single_value)
+{
+ single_value = temp1Darray[filenumber];
+}
+
+void uiuc_2Dto1D( double temp2Darray[30][100],
+ int filenumber,
+ double array1D[100])
+{
+ int count1;
+
+ for (count1=0; count1<=99; count1++)
+ {
+ array1D[count1] = temp2Darray[filenumber][count1];
+ }
+}
+
+void uiuc_2Dto1D_int( int temp2Darray[30][100],
+ int filenumber,
+ int array1D[100])
+{
+ int count1;
+
+ for (count1=0; count1<=99; count1++)
+ {
+ array1D[count1] = temp2Darray[filenumber][count1];
+ }
+}
+
+void uiuc_3Dto2D( double temp3Darray[30][100][100],
+ int filenumber,
+ double array2D[100][100])
+{
+ int count1, count2;
+
+ for (count1=0; count1<=99; count1++)
+ {
+ for (count2=0; count2<=99; count2++)
+ {
+ array2D[count1][count2] = temp3Darray[filenumber][count1][count2];
+ }
+ }
+}
+
+double uiuc_3Dinterpolation( double third_Array[30],
+ double full_xArray[30][100][100],
+ double full_yArray[30][100],
+ double full_zArray[30][100][100],
+ int full_nxArray[30][100],
+ int full_ny[30],
+ int third_max,
+ double third_bet,
+ double x_value,
+ double y_value)
+{
+ double reduced_xArray[100][100], reduced_yArray[100];
+ double reduced_zArray[100][100];
+ int reduced_nxArray[100], reduced_ny;
+
+ double interpmin, interpmax, third_u, third_l;
+ double interpI;
+ int third_min;
+ int k=1;
+ bool third_same=false;
+
+ if (third_bet <= third_Array[1])
+ {
+ third_min = 1;
+ third_same = true;
+ }
+ else if (third_bet >= third_Array[third_max])
+ {
+ third_min = third_max;
+ third_same = true;
+ }
+ else
+ {
+ while (third_Array[k] <= third_bet)
+ {
+ k++;
+ }
+ third_max = k;
+ third_min = k-1;
+ }
+ if (third_same)
+ {
+
+ uiuc_3Dto2D(full_xArray, third_min, reduced_xArray);
+ uiuc_2Dto1D(full_yArray, third_min, reduced_yArray);
+ uiuc_3Dto2D(full_zArray, third_min, reduced_zArray);
+ uiuc_2Dto1D_int(full_nxArray, third_min, reduced_nxArray);
+ uiuc_1DtoSingle(full_ny, third_min, reduced_ny);
+
+ interpI = uiuc_2Dinterpolation(reduced_xArray,
+ reduced_yArray,
+ reduced_zArray,
+ reduced_nxArray,
+ reduced_ny,
+ x_value,
+ y_value);
+ }
+ else
+ {
+ uiuc_3Dto2D(full_xArray, third_min, reduced_xArray);
+ uiuc_2Dto1D(full_yArray, third_min, reduced_yArray);
+ uiuc_3Dto2D(full_zArray, third_min, reduced_zArray);
+ uiuc_2Dto1D_int(full_nxArray, third_min, reduced_nxArray);
+ uiuc_1DtoSingle(full_ny, third_min, reduced_ny);
+
+ interpmin = uiuc_2Dinterpolation(reduced_xArray,
+ reduced_yArray,
+ reduced_zArray,
+ reduced_nxArray,
+ reduced_ny,
+ x_value,
+ y_value);
+
+ uiuc_3Dto2D(full_xArray, third_max, reduced_xArray);
+ uiuc_2Dto1D(full_yArray, third_max, reduced_yArray);
+ uiuc_3Dto2D(full_zArray, third_max, reduced_zArray);
+ uiuc_2Dto1D_int(full_nxArray, third_max, reduced_nxArray);
+ uiuc_1DtoSingle(full_ny, third_max, reduced_ny);
+
+ interpmax = uiuc_2Dinterpolation(reduced_xArray,
+ reduced_yArray,
+ reduced_zArray,
+ reduced_nxArray,
+ reduced_ny,
+ x_value,
+ y_value);
+
+ third_u = third_Array[third_max];
+ third_l = third_Array[third_min];
+
+ interpI=interpmax - (third_u-third_bet)*(interpmax-interpmin)/(third_u-third_l);
+ }
+
+ return interpI;
+
+}
+
+
+double uiuc_3Dinterp_quick( double z[30],
+ double x[100],
+ double y[100],
+ double fxyz[30][100][100],
+ int xmax,
+ int ymax,
+ int zmax,
+ double zp,
+ double xp,
+ double yp)
+{
+
+ int xnuml, xnumu, ynuml, ynumu, znuml, znumu;
+ double xl, xu, yl, yu, zl, zu;
+ double ptxl, ptxu, ptyl, ptyu, ptylxl, ptylxu, ptyuxl, ptyuxu;
+ double ptzl, ptzu, ptzlxl, ptzlxu, ptzuxl, ptzuxu;
+ double ptzlyl, ptzlyu, ptzuyl, ptzuyu;
+ double ptzlylxl, ptzlylxu, ptzlyuxl, ptzlyuxu;
+ double ptzuylxl, ptzuylxu, ptzuyuxl, ptzuyuxu, data_point;
+
+ int i=1;
+ int j=1;
+ int k=1;
+
+ bool xsame=false;
+ bool ysame=false;
+ bool zsame=false;
+
+
+ // Find the z's
+ if (zp <= z[1])
+ {
+ znuml=1;
+ zsame=true;
+ }
+ else if (zp >= z[zmax])
+ {
+ znuml=zmax;
+ zsame=true;
+ }
+ else
+ {
+ while (z[k] <= zp)
+ k++;
+ zu=z[k];
+ zl=z[k-1];
+ znumu=k;
+ znuml=k-1;
+ }
+
+ // Find the y's
+ if (yp <= y[1])
+ {
+ ynuml=1;
+ ysame=true;
+ }
+ else if (yp >= y[ymax])
+ {
+ ynuml=ymax;
+ ysame=true;
+ }
+ else
+ {
+ while (y[j] <= yp)
+ j++;
+ yu=y[j];
+ yl=y[j-1];
+ ynumu=j;
+ ynuml=j-1;
+ }
+
+
+ // Find the x's
+ if (xp <= x[1])
+ {
+ xnuml=1;
+ xsame=true;
+ }
+ else if (xp >= x[xmax])
+ {
+ xnuml=xmax;
+ xsame=true;
+ }
+ else
+ {
+ while (x[i] <= xp)
+ i++;
+ xu=x[i];
+ xl=x[i-1];
+ xnumu=i;
+ xnuml=i-1;
+ }
+
+ if (zsame)
+ {
+ if (ysame && xsame)
+ {
+ data_point = fxyz[znuml][ynuml][xnuml];
+ }
+ else if (ysame)
+ {
+ ptxl = fxyz[znuml][ynuml][xnuml];
+ ptxu = fxyz[znuml][ynuml][xnumu];
+ data_point = ptxu - (xu-xp)*(ptxu-ptxl)/(xu-xl);
+ }
+ else if (xsame)
+ {
+ ptyl = fxyz[znuml][ynuml][xnuml];
+ ptyu = fxyz[znuml][ynumu][xnuml];
+ data_point = ptyu - (yu-yp)*(ptyu-ptyl)/(yu-yl);
+ }
+ else
+ {
+ ptylxl = fxyz[znuml][ynuml][xnuml];
+ ptylxu = fxyz[znuml][ynuml][xnumu];
+ ptyuxl = fxyz[znuml][ynumu][xnuml];
+ ptyuxu = fxyz[znuml][ynumu][xnumu];
+ ptyl = ptylxu - (xu-xp)*(ptylxu-ptylxl)/(xu-xl);
+ ptyu = ptyuxu - (xu-xp)*(ptyuxu-ptyuxl)/(xu-xl);
+ data_point = ptyu - (yu-yp)*(ptyu-ptyl)/(yu-yl);
+ }
+ }
+ else
+ {
+ if (ysame && xsame)
+ {
+ ptzl = fxyz[znuml][ynuml][xnuml];
+ ptzu = fxyz[znumu][ynuml][xnuml];
+ data_point = ptzu - (zu-zp)*(ptzu-ptzl)/(zu-zl);
+ }
+ else if (ysame)
+ {
+ ptzlxl = fxyz[znuml][ynuml][xnuml];
+ ptzlxu = fxyz[znuml][ynuml][xnumu];
+ ptzuxl = fxyz[znumu][ynuml][xnuml];
+ ptzuxu = fxyz[znumu][ynuml][xnumu];
+ ptzl = ptzlxu - (xu-xp)*(ptzlxu-ptzlxl)/(xu-xl);
+ ptzu = ptzuxu - (xu-xp)*(ptzuxu-ptzuxl)/(xu-xl);
+ data_point = ptzu - (zu-zp)*(ptzu-ptzl)/(zu-zl);
+ }
+ else if (xsame)
+ {
+ ptzlyl = fxyz[znuml][ynuml][xnuml];
+ ptzlyu = fxyz[znuml][ynumu][xnuml];
+ ptzuyl = fxyz[znumu][ynuml][xnuml];
+ ptzuyu = fxyz[znumu][ynumu][xnuml];
+ ptzl = ptzlyu - (yu-yp)*(ptzlyu-ptzlyl)/(yu-yl);
+ ptzu = ptzuyu - (yu-yp)*(ptzuyu-ptzuyl)/(yu-yl);
+ data_point = ptzu - (zu-zp)*(ptzu-ptzl)/(zu-zl);
+ }
+ else
+ {
+ ptzlylxl = fxyz[znuml][ynuml][xnuml];
+ ptzlylxu = fxyz[znuml][ynuml][xnumu];
+ ptzlyuxl = fxyz[znuml][ynumu][xnuml];
+ ptzlyuxu = fxyz[znuml][ynumu][xnumu];
+ ptzuylxl = fxyz[znumu][ynuml][xnuml];
+ ptzuylxu = fxyz[znumu][ynuml][xnumu];
+ ptzuyuxl = fxyz[znumu][ynumu][xnuml];
+ ptzuyuxu = fxyz[znumu][ynumu][xnumu];
+ ptzlyl = ptzlylxu - (xu-xp)*(ptzlylxu-ptzlylxl)/(xu-xl);
+ ptzlyu = ptzlyuxu - (xu-xp)*(ptzlyuxu-ptzlyuxl)/(xu-xl);
+ ptzuyl = ptzuylxu - (xu-xp)*(ptzuylxu-ptzuylxl)/(xu-xl);
+ ptzuyu = ptzuyuxu - (xu-xp)*(ptzuyuxu-ptzuyuxl)/(xu-xl);
+ ptzl = ptzlyu - (yu-yp)*(ptzlyu-ptzlyl)/(yu-yl);
+ ptzu = ptzuyu - (yu-yp)*(ptzuyu-ptzuyl)/(yu-yl);
+ data_point = ptzu - (zu-zp)*(ptzu-ptzl)/(zu-zl);
+ }
+
+ }
+
+
+ return data_point;
+}
--- /dev/null
+#ifndef _COEF_FLAP_H_
+#define _COEF_FLAP_H_
+
+#include <FDM/LaRCsim/ls_generic.h>
+
+#include "uiuc_aircraft.h"
+#include "uiuc_2Dinterpolation.h"
+
+
+double uiuc_3Dinterpolation( double third_Array[30],
+ double full_xArray[30][100][100],
+ double full_yArray[30][100],
+ double full_zArray[30][100][100],
+ int full_nxArray[30][100],
+ int full_ny[30],
+ int third_max,
+ double third_bet,
+ double x_value,
+ double y_value);
+double uiuc_3Dinterp_quick( double z[30],
+ double x[100],
+ double y[100],
+ double fxyz[30][100][100],
+ int xmax,
+ int ymax,
+ int zmax,
+ double zp,
+ double xp,
+ double yp);
+
+#endif // _COEF_FLAP_H_
HISTORY: 01/30/2000 initial release
04/05/2000 (JS) added zero_Long_trim command
+ 07/05/2001 (RD) removed elevator_tab addidtion to
+ elevator calculation
+ 11/12/2001 (RD) added new flap routine. Needed for
+ Twin Otter non-linear model
----------------------------------------------------------------------
AUTHOR(S): Jeff Scott <jscott@mail.com>
+ Robert Deters <rdeters@uiuc.edu>
Michael Selig <m-selig@uiuc.edu>
----------------------------------------------------------------------
aileron = - Lat_control * damax * DEG_TO_RAD;
if ((Long_control+Long_trim) <= 0)
- elevator = (Long_control + Long_trim) * demax * DEG_TO_RAD + elevator_tab;
+ elevator = (Long_control + Long_trim) * demax * DEG_TO_RAD;
else
- elevator = (Long_control + Long_trim) * demin * DEG_TO_RAD + elevator_tab;
+ elevator = (Long_control + Long_trim) * demin * DEG_TO_RAD;
if (Rudder_pedal <= 0)
rudder = - Rudder_pedal * drmin * DEG_TO_RAD;
else
rudder = - Rudder_pedal * drmax * DEG_TO_RAD;
- // flap routine
+
+ // new flap routine
+ // designed for the twin otter non-linear model
+ flap_percent = Flap_handle / 30.0; // percent of flaps desired
+ if (flap_percent>=0.31 && flap_percent<=0.35)
+ flap_percent = 1.0 / 3.0;
+ if (flap_percent>=0.65 && flap_percent<=0.69)
+ flap_percent = 2.0 / 3.0;
+ flap_goal = flap_percent * flap_max; // angle of flaps desired
+ flap_moving_rate = flap_rate * dt; // amount flaps move per time step
+
+ // determine flap position with respect to the flap goal
+ if (flap_pos < flap_goal)
+ {
+ flap_pos += flap_moving_rate;
+ if (flap_pos > flap_goal)
+ flap_pos = flap_goal;
+ }
+ else if (flap_pos > flap_goal)
+ {
+ flap_pos -= flap_moving_rate;
+ if (flap_pos < flap_goal)
+ flap_pos = flap_goal;
+ }
+
+
+ // old flap routine
// check for lowest flap setting
if (Flap_handle < dfArray[1])
{
P_body, Q_body, R_body, Phi, Theta, Psi,
U_body, V_body, and W_body to help in
starting the A/C at an initial condition.
+ 10/25/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model at zero flaps
+ (Cxfxxf0).
+ 11/12/2001 (RD) Added variables needed for Twin Otter
+ non-linear model with flaps (Cxfxxf).
+ Zero flap variables removed.
+ 02/13/2002 (RD) Added variables so linear aero model
+ values can be recorded
+ 02/18/2002 (RD) Added variables necessary to use the
+ uiuc_3Dinterp_quick() function. Takes
+ advantage of data in a "nice" form (data
+ that are in a rectangular matrix).
+
----------------------------------------------------------------------
AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
// controlSurface = Control surface deflections and properties
enum {de_flag = 4000, da_flag, dr_flag,
set_Long_trim_flag, set_Long_trim_deg_flag, zero_Long_trim_flag,
- 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};
+ 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, flap_max_flag,
+ flap_rate_flag};
// controlsMixer == Controls mixer
enum {nomix_flag = 5000};
enum {Weight_flag = 6000, Mass_flag, I_xx_flag, I_yy_flag, I_zz_flag, I_xz_flag};
// engine ===== Propulsion data
-enum {simpleSingle_flag = 7000, c172_flag, cherokee_flag, Throttle_pct_input_flag};
+enum {simpleSingle_flag = 7000, c172_flag, cherokee_flag,
+ Throttle_pct_input_flag};
// CD ========= Aerodynamic x-force quantities (longitudinal)
enum {CDo_flag = 8000, CDK_flag, CD_a_flag, CD_adot_flag, CD_q_flag, CD_ih_flag, CD_de_flag,
CDfa_flag, CDfCL_flag, CDfade_flag, CDfdf_flag, CDfadf_flag,
CXo_flag, CXK_flag, CX_a_flag, CX_a2_flag, CX_a3_flag, CX_adot_flag,
- CX_q_flag, CX_de_flag, CX_dr_flag, CX_df_flag, CX_adf_flag};
+ CX_q_flag, CX_de_flag, CX_dr_flag, CX_df_flag, CX_adf_flag,
+ CXfabetaf_flag, CXfadef_flag, CXfaqf_flag};
// CL ========= Aerodynamic z-force quantities (longitudinal)
enum {CLo_flag = 9000, CL_a_flag, CL_adot_flag, CL_q_flag, CL_ih_flag, CL_de_flag,
CLfa_flag, CLfade_flag, CLfdf_flag, CLfadf_flag,
CZo_flag, CZ_a_flag, CZ_a2_flag, CZ_a3_flag, CZ_adot_flag,
- CZ_q_flag, CZ_de_flag, CZ_deb2_flag, CZ_df_flag, CZ_adf_flag, CZfa_flag};
+ CZ_q_flag, CZ_de_flag, CZ_deb2_flag, CZ_df_flag, CZ_adf_flag,
+ CZfa_flag, CZfabetaf_flag, CZfadef_flag, CZfaqf_flag};
// Cm ========= Aerodynamic m-moment quantities (longitudinal)
enum {Cmo_flag = 10000, Cm_a_flag, Cm_a2_flag, Cm_adot_flag, Cm_q_flag,
Cm_ih_flag, Cm_de_flag, Cm_b2_flag, Cm_r_flag, Cm_df_flag,
- Cmfa_flag, Cmfade_flag, Cmfdf_flag, Cmfadf_flag};
+ Cmfa_flag, Cmfade_flag, Cmfdf_flag, Cmfadf_flag,
+ Cmfabetaf_flag, Cmfadef_flag, Cmfaqf_flag};
// CY ========= Aerodynamic y-force quantities (lateral)
enum {CYo_flag = 11000, CY_beta_flag, CY_p_flag, CY_r_flag, CY_da_flag,
- CY_dr_flag, CY_dra_flag, CY_bdot_flag, CYfada_flag, CYfbetadr_flag};
+ CY_dr_flag, CY_dra_flag, CY_bdot_flag, CYfada_flag, CYfbetadr_flag,
+ CYfabetaf_flag, CYfadaf_flag, CYfadrf_flag, CYfapf_flag, CYfarf_flag};
// Cl ========= Aerodynamic l-moment quantities (lateral)
enum {Clo_flag = 12000, Cl_beta_flag, Cl_p_flag, Cl_r_flag, Cl_da_flag,
- Cl_dr_flag, Cl_daa_flag, Clfada_flag, Clfbetadr_flag};
+ Cl_dr_flag, Cl_daa_flag, Clfada_flag, Clfbetadr_flag, Clfabetaf_flag,
+ Clfadaf_flag, Clfadrf_flag, Clfapf_flag, Clfarf_flag};
// Cn ========= Aerodynamic n-moment quantities (lateral)
enum {Cno_flag = 13000, Cn_beta_flag, Cn_p_flag, Cn_r_flag, Cn_da_flag,
- Cn_dr_flag, Cn_q_flag, Cn_b3_flag, Cnfada_flag, Cnfbetadr_flag};
+ Cn_dr_flag, Cn_q_flag, Cn_b3_flag, Cnfada_flag, Cnfbetadr_flag,
+ Cnfabetaf_flag, Cnfadaf_flag, Cnfadrf_flag, Cnfapf_flag, Cnfarf_flag};
// gear ======= Landing gear model quantities
enum {Dx_gear_flag = 14000, Dy_gear_flag, Dz_gear_flag, cgear_flag,
elevator_record, elevator_deg_record,
Lat_control_record, aileron_record, aileron_deg_record,
Rudder_pedal_record, rudder_record, rudder_deg_record,
- Flap_handle_record, flap_record, flap_deg_record,
-
- CD_record, CDfaI_record, CDfCLI_record, CDfadeI_record, CDfdfI_record, CDfadfI_record, CX_record,
- CL_record, CLfaI_record, CLfadeI_record, CLfdfI_record, CLfadfI_record, CZ_record,
- Cm_record, CmfaI_record, CmfadeI_record, CmfdfI_record, CmfadfI_record,
- CY_record, CYfadaI_record, CYfbetadrI_record,
- Cl_record, ClfadaI_record, ClfbetadrI_record,
- Cn_record, CnfadaI_record, CnfbetadrI_record,
-
+ Flap_handle_record, flap_record, flap_deg_record, flap_goal_record,
+ flap_pos_record,
+
+ CD_record, CDfaI_record, CDfCLI_record, CDfadeI_record, CDfdfI_record,
+ CDfadfI_record, CX_record, CXfabetafI_record, CXfadefI_record,
+ CXfaqfI_record,
+ CDo_save_record, CDK_save_record, CD_a_save_record, CD_adot_save_record,
+ CD_q_save_record, CD_ih_save_record, CD_de_save_record, CXo_save_record,
+ CXK_save_record, CX_a_save_record, CX_a2_save_record, CX_a3_save_record,
+ CX_adot_save_record, CX_q_save_record, CX_de_save_record,
+ CX_dr_save_record, CX_df_save_record, CX_adf_save_record,
+ CL_record, CLfaI_record, CLfadeI_record, CLfdfI_record, CLfadfI_record,
+ CZ_record, CZfaI_record, CZfabetafI_record, CZfadefI_record,
+ CZfaqfI_record,
+ CLo_save_record, CL_a_save_record, CL_adot_save_record, CL_q_save_record,
+ CL_ih_save_record, CL_de_save_record, CZo_save_record, CZ_a_save_record,
+ CZ_a2_save_record, CZ_a3_save_record, CZ_adot_save_record,
+ CZ_q_save_record, CZ_de_save_record, CZ_deb2_save_record,
+ CZ_df_save_record, CZ_adf_save_record,
+ Cm_record, CmfaI_record, CmfadeI_record, CmfdfI_record, CmfadfI_record,
+ CmfabetafI_record, CmfadefI_record, CmfaqfI_record,
+ Cmo_save_record, Cm_a_save_record, Cm_a2_save_record,
+ Cm_adot_save_record, Cm_q_save_record, Cm_ih_save_record,
+ Cm_de_save_record, Cm_b2_save_record, Cm_r_save_record,
+ Cm_df_save_record,
+ CY_record, CYfadaI_record, CYfbetadrI_record, CYfabetafI_record,
+ CYfadafI_record, CYfadrfI_record, CYfapfI_record, CYfarfI_record,
+ CYo_save_record, CY_beta_save_record, CY_p_save_record,
+ CY_r_save_record, CY_da_save_record, CY_dr_save_record,
+ CY_dra_save_record, CY_bdot_save_record,
+ Cl_record, ClfadaI_record, ClfbetadrI_record, ClfabetafI_record,
+ ClfadafI_record, ClfadrfI_record, ClfapfI_record, ClfarfI_record,
+ Clo_save_record, Cl_beta_save_record, Cl_p_save_record, Cl_r_save_record,
+ Cl_da_save_record, Cl_dr_save_record, Cl_daa_save_record,
+ Cn_record, CnfadaI_record, CnfbetadrI_record, CnfabetafI_record,
+ CnfadafI_record, CnfadrfI_record, CnfapfI_record, CnfarfI_record,
+ Cno_save_record, Cn_beta_save_record, Cn_p_save_record, Cn_r_save_record,
+ Cn_da_save_record, Cn_dr_save_record, Cn_q_save_record,
+ Cn_b3_save_record,
+
F_X_wind_record, F_Y_wind_record, F_Z_wind_record,
F_X_aero_record, F_Y_aero_record, F_Z_aero_record,
F_X_engine_record, F_Y_engine_record, F_Z_engine_record,
bool elevator_input;
string elevator_input_file;
- double elevator_input_timeArray[1000];
- double elevator_input_deArray[1000];
+ double elevator_input_timeArray[1500];
+ double elevator_input_deArray[1500];
int elevator_input_ntime;
double elevator_input_startTime;
#define elevator_input aircraft_->elevator_input
bool aileron_input;
string aileron_input_file;
- double aileron_input_timeArray[1000];
- double aileron_input_daArray[1000];
+ double aileron_input_timeArray[1500];
+ double aileron_input_daArray[1500];
int aileron_input_ntime;
double aileron_input_startTime;
#define aileron_input aircraft_->aileron_input
bool rudder_input;
string rudder_input_file;
- double rudder_input_timeArray[1000];
- double rudder_input_drArray[1000];
+ double rudder_input_timeArray[1500];
+ double rudder_input_drArray[1500];
int rudder_input_ntime;
double rudder_input_startTime;
#define rudder_input aircraft_->rudder_input
bool pilot_rud_no_check;
#define pilot_rud_no_check aircraft_->pilot_rud_no_check
-
+ double flap_max, flap_rate;
+#define flap_max aircraft_->flap_max
+#define flap_rate aircraft_->flap_rate
+
/* Variables (token2) ===========================================*/
/* controlsMixer = Control mixer ================================*/
bool Throttle_pct_input;
string Throttle_pct_input_file;
- double Throttle_pct_input_timeArray[1000];
- double Throttle_pct_input_dTArray[1000];
+ double Throttle_pct_input_timeArray[1500];
+ double Throttle_pct_input_dTArray[1500];
int Throttle_pct_input_ntime;
double Throttle_pct_input_startTime;
#define Throttle_pct_input aircraft_->Throttle_pct_input
#define CX_dr aircraft_->CX_dr
#define CX_df aircraft_->CX_df
#define CX_adf aircraft_->CX_adf
-
+ double CXfabetaf_aArray[30][100][100];
+ double CXfabetaf_betaArray[30][100];
+ double CXfabetaf_CXArray[30][100][100];
+ int CXfabetaf_nAlphaArray[30][100];
+ int CXfabetaf_nbeta[30];
+ double CXfabetaf_fArray[30];
+ int CXfabetaf_nf;
+ double CXfabetafI;
+ int CXfabetaf_nice, CXfabetaf_na_nice, CXfabetaf_nb_nice;
+ double CXfabetaf_bArray_nice[100];
+ double CXfabetaf_aArray_nice[100];
+#define CXfabetaf_aArray aircraft_->CXfabetaf_aArray
+#define CXfabetaf_betaArray aircraft_->CXfabetaf_betaArray
+#define CXfabetaf_CXArray aircraft_->CXfabetaf_CXArray
+#define CXfabetaf_nAlphaArray aircraft_->CXfabetaf_nAlphaArray
+#define CXfabetaf_nbeta aircraft_->CXfabetaf_nbeta
+#define CXfabetaf_fArray aircraft_->CXfabetaf_fArray
+#define CXfabetaf_nf aircraft_->CXfabetaf_nf
+#define CXfabetafI aircraft_->CXfabetafI
+#define CXfabetaf_nice aircraft_->CXfabetaf_nice
+#define CXfabetaf_na_nice aircraft_->CXfabetaf_na_nice
+#define CXfabetaf_nb_nice aircraft_->CXfabetaf_nb_nice
+#define CXfabetaf_bArray_nice aircraft_->CXfabetaf_bArray_nice
+#define CXfabetaf_aArray_nice aircraft_->CXfabetaf_aArray_nice
+ double CXfadef_aArray[30][100][100];
+ double CXfadef_deArray[30][100];
+ double CXfadef_CXArray[30][100][100];
+ int CXfadef_nAlphaArray[30][100];
+ int CXfadef_nde[30];
+ double CXfadef_fArray[30];
+ int CXfadef_nf;
+ double CXfadefI;
+ int CXfadef_nice, CXfadef_na_nice, CXfadef_nde_nice;
+ double CXfadef_deArray_nice[100];
+ double CXfadef_aArray_nice[100];
+#define CXfadef_aArray aircraft_->CXfadef_aArray
+#define CXfadef_deArray aircraft_->CXfadef_deArray
+#define CXfadef_CXArray aircraft_->CXfadef_CXArray
+#define CXfadef_nAlphaArray aircraft_->CXfadef_nAlphaArray
+#define CXfadef_nde aircraft_->CXfadef_nde
+#define CXfadef_fArray aircraft_->CXfadef_fArray
+#define CXfadef_nf aircraft_->CXfadef_nf
+#define CXfadefI aircraft_->CXfadefI
+#define CXfadef_nice aircraft_->CXfadef_nice
+#define CXfadef_na_nice aircraft_->CXfadef_na_nice
+#define CXfadef_nde_nice aircraft_->CXfadef_nde_nice
+#define CXfadef_deArray_nice aircraft_->CXfadef_deArray_nice
+#define CXfadef_aArray_nice aircraft_->CXfadef_aArray_nice
+ double CXfaqf_aArray[30][100][100];
+ double CXfaqf_qArray[30][100];
+ double CXfaqf_CXArray[30][100][100];
+ int CXfaqf_nAlphaArray[30][100];
+ int CXfaqf_nq[30];
+ double CXfaqf_fArray[30];
+ int CXfaqf_nf;
+ double CXfaqfI;
+ int CXfaqf_nice, CXfaqf_na_nice, CXfaqf_nq_nice;
+ double CXfaqf_qArray_nice[100];
+ double CXfaqf_aArray_nice[100];
+#define CXfaqf_aArray aircraft_->CXfaqf_aArray
+#define CXfaqf_qArray aircraft_->CXfaqf_qArray
+#define CXfaqf_CXArray aircraft_->CXfaqf_CXArray
+#define CXfaqf_nAlphaArray aircraft_->CXfaqf_nAlphaArray
+#define CXfaqf_nq aircraft_->CXfaqf_nq
+#define CXfaqf_fArray aircraft_->CXfaqf_fArray
+#define CXfaqf_nf aircraft_->CXfaqf_nf
+#define CXfaqfI aircraft_->CXfaqfI
+#define CXfaqf_nice aircraft_->CXfaqf_nice
+#define CXfaqf_na_nice aircraft_->CXfaqf_na_nice
+#define CXfaqf_nq_nice aircraft_->CXfaqf_nq_nice
+#define CXfaqf_qArray_nice aircraft_->CXfaqf_qArray_nice
+#define CXfaqf_aArray_nice aircraft_->CXfaqf_aArray_nice
+ double CDo_save, CDK_save, CD_a_save, CD_adot_save, CD_q_save, CD_ih_save;
+ double CD_de_save, CXo_save, CXK_save, CX_a_save, CX_a2_save, CX_a3_save;
+ double CX_adot_save, CX_q_save, CX_de_save;
+ double CX_dr_save, CX_df_save, CX_adf_save;
+#define CDo_save aircraft_->CDo_save
+#define CDK_save aircraft_->CDK_save
+#define CD_a_save aircraft_->CD_a_save
+#define CD_adot_save aircraft_->CD_adot_save
+#define CD_q_save aircraft_->CD_q_save
+#define CD_ih_save aircraft_->CD_ih_save
+#define CD_de_save aircraft_->CD_de_save
+#define CXo_save aircraft_->CXo_save
+#define CXK_save aircraft_->CXK_save
+#define CX_a_save aircraft_->CX_a_save
+#define CX_a2_save aircraft_->CX_a2_save
+#define CX_a3_save aircraft_->CX_a3_save
+#define CX_adot_save aircraft_->CX_adot_save
+#define CX_q_save aircraft_->CX_q_save
+#define CX_de_save aircraft_->CX_de_save
+#define CX_dr_save aircraft_->CX_dr_save
+#define CX_df_save aircraft_->CX_df_save
+#define CX_adf_save aircraft_->CX_adf_save
+
/* Variables (token2) ===========================================*/
/* CL ============ Aerodynamic z-force quantities (longitudinal) */
#define CZfa_CZArray aircraft_->CZfa_CZArray
#define CZfa_nAlpha aircraft_->CZfa_nAlpha
#define CZfaI aircraft_->CZfaI
+ double CZfabetaf_aArray[30][100][100];
+ double CZfabetaf_betaArray[30][100];
+ double CZfabetaf_CZArray[30][100][100];
+ int CZfabetaf_nAlphaArray[30][100];
+ int CZfabetaf_nbeta[30];
+ double CZfabetaf_fArray[30];
+ int CZfabetaf_nf;
+ double CZfabetafI;
+ int CZfabetaf_nice, CZfabetaf_na_nice, CZfabetaf_nb_nice;
+ double CZfabetaf_bArray_nice[100];
+ double CZfabetaf_aArray_nice[100];
+#define CZfabetaf_aArray aircraft_->CZfabetaf_aArray
+#define CZfabetaf_betaArray aircraft_->CZfabetaf_betaArray
+#define CZfabetaf_CZArray aircraft_->CZfabetaf_CZArray
+#define CZfabetaf_nAlphaArray aircraft_->CZfabetaf_nAlphaArray
+#define CZfabetaf_nbeta aircraft_->CZfabetaf_nbeta
+#define CZfabetaf_fArray aircraft_->CZfabetaf_fArray
+#define CZfabetaf_nf aircraft_->CZfabetaf_nf
+#define CZfabetafI aircraft_->CZfabetafI
+#define CZfabetaf_nice aircraft_->CZfabetaf_nice
+#define CZfabetaf_na_nice aircraft_->CZfabetaf_na_nice
+#define CZfabetaf_nb_nice aircraft_->CZfabetaf_nb_nice
+#define CZfabetaf_bArray_nice aircraft_->CZfabetaf_bArray_nice
+#define CZfabetaf_aArray_nice aircraft_->CZfabetaf_aArray_nice
+ double CZfadef_aArray[30][100][100];
+ double CZfadef_deArray[30][100];
+ double CZfadef_CZArray[30][100][100];
+ int CZfadef_nAlphaArray[30][100];
+ int CZfadef_nde[30];
+ double CZfadef_fArray[30];
+ int CZfadef_nf;
+ double CZfadefI;
+ int CZfadef_nice, CZfadef_na_nice, CZfadef_nde_nice;
+ double CZfadef_deArray_nice[100];
+ double CZfadef_aArray_nice[100];
+#define CZfadef_aArray aircraft_->CZfadef_aArray
+#define CZfadef_deArray aircraft_->CZfadef_deArray
+#define CZfadef_CZArray aircraft_->CZfadef_CZArray
+#define CZfadef_nAlphaArray aircraft_->CZfadef_nAlphaArray
+#define CZfadef_nde aircraft_->CZfadef_nde
+#define CZfadef_fArray aircraft_->CZfadef_fArray
+#define CZfadef_nf aircraft_->CZfadef_nf
+#define CZfadefI aircraft_->CZfadefI
+#define CZfadef_nice aircraft_->CZfadef_nice
+#define CZfadef_na_nice aircraft_->CZfadef_na_nice
+#define CZfadef_nde_nice aircraft_->CZfadef_nde_nice
+#define CZfadef_deArray_nice aircraft_->CZfadef_deArray_nice
+#define CZfadef_aArray_nice aircraft_->CZfadef_aArray_nice
+ double CZfaqf_aArray[30][100][100];
+ double CZfaqf_qArray[30][100];
+ double CZfaqf_CZArray[30][100][100];
+ int CZfaqf_nAlphaArray[30][100];
+ int CZfaqf_nq[30];
+ double CZfaqf_fArray[30];
+ int CZfaqf_nf;
+ double CZfaqfI;
+ int CZfaqf_nice, CZfaqf_na_nice, CZfaqf_nq_nice;
+ double CZfaqf_qArray_nice[100];
+ double CZfaqf_aArray_nice[100];
+#define CZfaqf_aArray aircraft_->CZfaqf_aArray
+#define CZfaqf_qArray aircraft_->CZfaqf_qArray
+#define CZfaqf_CZArray aircraft_->CZfaqf_CZArray
+#define CZfaqf_nAlphaArray aircraft_->CZfaqf_nAlphaArray
+#define CZfaqf_nq aircraft_->CZfaqf_nq
+#define CZfaqf_fArray aircraft_->CZfaqf_fArray
+#define CZfaqf_nf aircraft_->CZfaqf_nf
+#define CZfaqfI aircraft_->CZfaqfI
+#define CZfaqf_nice aircraft_->CZfaqf_nice
+#define CZfaqf_na_nice aircraft_->CZfaqf_na_nice
+#define CZfaqf_nq_nice aircraft_->CZfaqf_nq_nice
+#define CZfaqf_qArray_nice aircraft_->CZfaqf_qArray_nice
+#define CZfaqf_aArray_nice aircraft_->CZfaqf_aArray_nice
+ double CLo_save, CL_a_save, CL_adot_save;
+ double CL_q_save, CL_ih_save, CL_de_save;
+ double CZo_save, CZ_a_save, CZ_a2_save;
+ double CZ_a3_save, CZ_adot_save, CZ_q_save;
+ double CZ_de_save, CZ_deb2_save, CZ_df_save;
+ double CZ_adf_save;
+#define CLo_save aircraft_->CLo_save
+#define CL_a_save aircraft_->CL_a_save
+#define CL_adot_save aircraft_->CL_adot_save
+#define CL_q_save aircraft_->CL_q_save
+#define CL_ih_save aircraft_->CL_ih_save
+#define CL_de_save aircraft_->CL_de_save
+#define CZo_save aircraft_->CZo_save
+#define CZ_a_save aircraft_->CZ_a_save
+#define CZ_a2_save aircraft_->CZ_a2_save
+#define CZ_a3_save aircraft_->CZ_a3_save
+#define CZ_adot_save aircraft_->CZ_adot_save
+#define CZ_q_save aircraft_->CZ_q_save
+#define CZ_de_save aircraft_->CZ_de_save
+#define CZ_deb2_save aircraft_->CZ_deb2_save
+#define CZ_df_save aircraft_->CZ_df_save
+#define CZ_adf_save aircraft_->CZ_adf_save
/* Variables (token2) ===========================================*/
#define Cmfadf_nAlphaArray aircraft_->Cmfadf_nAlphaArray
#define Cmfadf_ndf aircraft_->Cmfadf_ndf
#define CmfadfI aircraft_->CmfadfI
+ double Cmfabetaf_aArray[30][100][100];
+ double Cmfabetaf_betaArray[30][100];
+ double Cmfabetaf_CmArray[30][100][100];
+ int Cmfabetaf_nAlphaArray[30][100];
+ int Cmfabetaf_nbeta[30];
+ double Cmfabetaf_fArray[30];
+ int Cmfabetaf_nf;
+ double CmfabetafI;
+ int Cmfabetaf_nice, Cmfabetaf_na_nice, Cmfabetaf_nb_nice;
+ double Cmfabetaf_bArray_nice[100];
+ double Cmfabetaf_aArray_nice[100];
+#define Cmfabetaf_aArray aircraft_->Cmfabetaf_aArray
+#define Cmfabetaf_betaArray aircraft_->Cmfabetaf_betaArray
+#define Cmfabetaf_CmArray aircraft_->Cmfabetaf_CmArray
+#define Cmfabetaf_nAlphaArray aircraft_->Cmfabetaf_nAlphaArray
+#define Cmfabetaf_nbeta aircraft_->Cmfabetaf_nbeta
+#define Cmfabetaf_fArray aircraft_->Cmfabetaf_fArray
+#define Cmfabetaf_nf aircraft_->Cmfabetaf_nf
+#define CmfabetafI aircraft_->CmfabetafI
+#define Cmfabetaf_nice aircraft_->Cmfabetaf_nice
+#define Cmfabetaf_na_nice aircraft_->Cmfabetaf_na_nice
+#define Cmfabetaf_nb_nice aircraft_->Cmfabetaf_nb_nice
+#define Cmfabetaf_bArray_nice aircraft_->Cmfabetaf_bArray_nice
+#define Cmfabetaf_aArray_nice aircraft_->Cmfabetaf_aArray_nice
+ double Cmfadef_aArray[30][100][100];
+ double Cmfadef_deArray[30][100];
+ double Cmfadef_CmArray[30][100][100];
+ int Cmfadef_nAlphaArray[30][100];
+ int Cmfadef_nde[30];
+ double Cmfadef_fArray[30];
+ int Cmfadef_nf;
+ double CmfadefI;
+ int Cmfadef_nice, Cmfadef_na_nice, Cmfadef_nde_nice;
+ double Cmfadef_deArray_nice[100];
+ double Cmfadef_aArray_nice[100];
+#define Cmfadef_aArray aircraft_->Cmfadef_aArray
+#define Cmfadef_deArray aircraft_->Cmfadef_deArray
+#define Cmfadef_CmArray aircraft_->Cmfadef_CmArray
+#define Cmfadef_nAlphaArray aircraft_->Cmfadef_nAlphaArray
+#define Cmfadef_nde aircraft_->Cmfadef_nde
+#define Cmfadef_fArray aircraft_->Cmfadef_fArray
+#define Cmfadef_nf aircraft_->Cmfadef_nf
+#define CmfadefI aircraft_->CmfadefI
+#define Cmfadef_nice aircraft_->Cmfadef_nice
+#define Cmfadef_na_nice aircraft_->Cmfadef_na_nice
+#define Cmfadef_nde_nice aircraft_->Cmfadef_nde_nice
+#define Cmfadef_deArray_nice aircraft_->Cmfadef_deArray_nice
+#define Cmfadef_aArray_nice aircraft_->Cmfadef_aArray_nice
+ double Cmfaqf_aArray[30][100][100];
+ double Cmfaqf_qArray[30][100];
+ double Cmfaqf_CmArray[30][100][100];
+ int Cmfaqf_nAlphaArray[30][100];
+ int Cmfaqf_nq[30];
+ double Cmfaqf_fArray[30];
+ int Cmfaqf_nf;
+ double CmfaqfI;
+ int Cmfaqf_nice, Cmfaqf_na_nice, Cmfaqf_nq_nice;
+ double Cmfaqf_qArray_nice[100];
+ double Cmfaqf_aArray_nice[100];
+#define Cmfaqf_aArray aircraft_->Cmfaqf_aArray
+#define Cmfaqf_qArray aircraft_->Cmfaqf_qArray
+#define Cmfaqf_CmArray aircraft_->Cmfaqf_CmArray
+#define Cmfaqf_nAlphaArray aircraft_->Cmfaqf_nAlphaArray
+#define Cmfaqf_nq aircraft_->Cmfaqf_nq
+#define Cmfaqf_fArray aircraft_->Cmfaqf_fArray
+#define Cmfaqf_nf aircraft_->Cmfaqf_nf
+#define CmfaqfI aircraft_->CmfaqfI
+#define Cmfaqf_nice aircraft_->Cmfaqf_nice
+#define Cmfaqf_na_nice aircraft_->Cmfaqf_na_nice
+#define Cmfaqf_nq_nice aircraft_->Cmfaqf_nq_nice
+#define Cmfaqf_qArray_nice aircraft_->Cmfaqf_qArray_nice
+#define Cmfaqf_aArray_nice aircraft_->Cmfaqf_aArray_nice
+ double Cmo_save, Cm_a_save, Cm_a2_save, Cm_adot_save, Cm_q_save, Cm_ih_save;
+ double Cm_de_save, Cm_b2_save, Cm_r_save, Cm_df_save;
+#define Cmo_save aircraft_->Cmo_save
+#define Cm_a_save aircraft_->Cm_a_save
+#define Cm_a2_save aircraft_->Cm_a2_save
+#define Cm_adot_save aircraft_->Cm_adot_save
+#define Cm_q_save aircraft_->Cm_q_save
+#define Cm_ih_save aircraft_->Cm_ih_save
+#define Cm_de_save aircraft_->Cm_de_save
+#define Cm_b2_save aircraft_->Cm_b2_save
+#define Cm_r_save aircraft_->Cm_r_save
+#define Cm_df_save aircraft_->Cm_df_save
/* Variables (token2) ===========================================*/
#define CYfbetadr_nBetaArray aircraft_->CYfbetadr_nBetaArray
#define CYfbetadr_ndr aircraft_->CYfbetadr_ndr
#define CYfbetadrI aircraft_->CYfbetadrI
+ double CYfabetaf_aArray[30][100][100];
+ double CYfabetaf_betaArray[30][100];
+ double CYfabetaf_CYArray[30][100][100];
+ int CYfabetaf_nAlphaArray[30][100];
+ int CYfabetaf_nbeta[30];
+ double CYfabetaf_fArray[30];
+ int CYfabetaf_nf;
+ double CYfabetafI;
+ int CYfabetaf_nice, CYfabetaf_na_nice, CYfabetaf_nb_nice;
+ double CYfabetaf_bArray_nice[100];
+ double CYfabetaf_aArray_nice[100];
+#define CYfabetaf_aArray aircraft_->CYfabetaf_aArray
+#define CYfabetaf_betaArray aircraft_->CYfabetaf_betaArray
+#define CYfabetaf_CYArray aircraft_->CYfabetaf_CYArray
+#define CYfabetaf_nAlphaArray aircraft_->CYfabetaf_nAlphaArray
+#define CYfabetaf_nbeta aircraft_->CYfabetaf_nbeta
+#define CYfabetaf_fArray aircraft_->CYfabetaf_fArray
+#define CYfabetaf_nf aircraft_->CYfabetaf_nf
+#define CYfabetafI aircraft_->CYfabetafI
+#define CYfabetaf_nice aircraft_->CYfabetaf_nice
+#define CYfabetaf_na_nice aircraft_->CYfabetaf_na_nice
+#define CYfabetaf_nb_nice aircraft_->CYfabetaf_nb_nice
+#define CYfabetaf_bArray_nice aircraft_->CYfabetaf_bArray_nice
+#define CYfabetaf_aArray_nice aircraft_->CYfabetaf_aArray_nice
+ double CYfadaf_aArray[30][100][100];
+ double CYfadaf_daArray[30][100];
+ double CYfadaf_CYArray[30][100][100];
+ int CYfadaf_nAlphaArray[30][100];
+ int CYfadaf_nda[30];
+ double CYfadaf_fArray[30];
+ int CYfadaf_nf;
+ double CYfadafI;
+ int CYfadaf_nice, CYfadaf_na_nice, CYfadaf_nda_nice;
+ double CYfadaf_daArray_nice[100];
+ double CYfadaf_aArray_nice[100];
+#define CYfadaf_aArray aircraft_->CYfadaf_aArray
+#define CYfadaf_daArray aircraft_->CYfadaf_daArray
+#define CYfadaf_CYArray aircraft_->CYfadaf_CYArray
+#define CYfadaf_nAlphaArray aircraft_->CYfadaf_nAlphaArray
+#define CYfadaf_nda aircraft_->CYfadaf_nda
+#define CYfadaf_fArray aircraft_->CYfadaf_fArray
+#define CYfadaf_nf aircraft_->CYfadaf_nf
+#define CYfadafI aircraft_->CYfadafI
+#define CYfadaf_nice aircraft_->CYfadaf_nice
+#define CYfadaf_na_nice aircraft_->CYfadaf_na_nice
+#define CYfadaf_nda_nice aircraft_->CYfadaf_nda_nice
+#define CYfadaf_daArray_nice aircraft_->CYfadaf_daArray_nice
+#define CYfadaf_aArray_nice aircraft_->CYfadaf_aArray_nice
+ double CYfadrf_aArray[30][100][100];
+ double CYfadrf_drArray[30][100];
+ double CYfadrf_CYArray[30][100][100];
+ int CYfadrf_nAlphaArray[30][100];
+ int CYfadrf_ndr[30];
+ double CYfadrf_fArray[30];
+ int CYfadrf_nf;
+ double CYfadrfI;
+ int CYfadrf_nice, CYfadrf_na_nice, CYfadrf_ndr_nice;
+ double CYfadrf_drArray_nice[100];
+ double CYfadrf_aArray_nice[100];
+#define CYfadrf_aArray aircraft_->CYfadrf_aArray
+#define CYfadrf_drArray aircraft_->CYfadrf_drArray
+#define CYfadrf_CYArray aircraft_->CYfadrf_CYArray
+#define CYfadrf_nAlphaArray aircraft_->CYfadrf_nAlphaArray
+#define CYfadrf_ndr aircraft_->CYfadrf_ndr
+#define CYfadrf_fArray aircraft_->CYfadrf_fArray
+#define CYfadrf_nf aircraft_->CYfadrf_nf
+#define CYfadrfI aircraft_->CYfadrfI
+#define CYfadrf_nice aircraft_->CYfadrf_nice
+#define CYfadrf_na_nice aircraft_->CYfadrf_na_nice
+#define CYfadrf_ndr_nice aircraft_->CYfadrf_ndr_nice
+#define CYfadrf_drArray_nice aircraft_->CYfadrf_drArray_nice
+#define CYfadrf_aArray_nice aircraft_->CYfadrf_aArray_nice
+ double CYfapf_aArray[30][100][100];
+ double CYfapf_pArray[30][100];
+ double CYfapf_CYArray[30][100][100];
+ int CYfapf_nAlphaArray[30][100];
+ int CYfapf_np[30];
+ double CYfapf_fArray[30];
+ int CYfapf_nf;
+ double CYfapfI;
+ int CYfapf_nice, CYfapf_na_nice, CYfapf_np_nice;
+ double CYfapf_pArray_nice[100];
+ double CYfapf_aArray_nice[100];
+#define CYfapf_aArray aircraft_->CYfapf_aArray
+#define CYfapf_pArray aircraft_->CYfapf_pArray
+#define CYfapf_CYArray aircraft_->CYfapf_CYArray
+#define CYfapf_nAlphaArray aircraft_->CYfapf_nAlphaArray
+#define CYfapf_np aircraft_->CYfapf_np
+#define CYfapf_fArray aircraft_->CYfapf_fArray
+#define CYfapf_nf aircraft_->CYfapf_nf
+#define CYfapfI aircraft_->CYfapfI
+#define CYfapf_nice aircraft_->CYfapf_nice
+#define CYfapf_na_nice aircraft_->CYfapf_na_nice
+#define CYfapf_np_nice aircraft_->CYfapf_np_nice
+#define CYfapf_pArray_nice aircraft_->CYfapf_pArray_nice
+#define CYfapf_aArray_nice aircraft_->CYfapf_aArray_nice
+ double CYfarf_aArray[30][100][100];
+ double CYfarf_rArray[30][100];
+ double CYfarf_CYArray[30][100][100];
+ int CYfarf_nAlphaArray[30][100];
+ int CYfarf_nr[30];
+ double CYfarf_fArray[30];
+ int CYfarf_nf;
+ double CYfarfI;
+ int CYfarf_nice, CYfarf_na_nice, CYfarf_nr_nice;
+ double CYfarf_rArray_nice[100];
+ double CYfarf_aArray_nice[100];
+#define CYfarf_aArray aircraft_->CYfarf_aArray
+#define CYfarf_rArray aircraft_->CYfarf_rArray
+#define CYfarf_CYArray aircraft_->CYfarf_CYArray
+#define CYfarf_nAlphaArray aircraft_->CYfarf_nAlphaArray
+#define CYfarf_nr aircraft_->CYfarf_nr
+#define CYfarf_fArray aircraft_->CYfarf_fArray
+#define CYfarf_nf aircraft_->CYfarf_nf
+#define CYfarfI aircraft_->CYfarfI
+#define CYfarf_nice aircraft_->CYfarf_nice
+#define CYfarf_na_nice aircraft_->CYfarf_na_nice
+#define CYfarf_nr_nice aircraft_->CYfarf_nr_nice
+#define CYfarf_rArray_nice aircraft_->CYfarf_rArray_nice
+#define CYfarf_aArray_nice aircraft_->CYfarf_aArray_nice
+ double CYo_save, CY_beta_save, CY_p_save, CY_r_save, CY_da_save, CY_dr_save;
+ double CY_dra_save, CY_bdot_save;
+#define CYo_save aircraft_->CYo_save
+#define CY_beta_save aircraft_->CY_beta_save
+#define CY_p_save aircraft_->CY_p_save
+#define CY_r_save aircraft_->CY_r_save
+#define CY_da_save aircraft_->CY_da_save
+#define CY_dr_save aircraft_->CY_dr_save
+#define CY_dra_save aircraft_->CY_dra_save
+#define CY_bdot_save aircraft_->CY_bdot_save
/* Variables (token2) ===========================================*/
#define Clfbetadr_nBetaArray aircraft_->Clfbetadr_nBetaArray
#define Clfbetadr_ndr aircraft_->Clfbetadr_ndr
#define ClfbetadrI aircraft_->ClfbetadrI
-
+ double Clfabetaf_aArray[30][100][100];
+ double Clfabetaf_betaArray[30][100];
+ double Clfabetaf_ClArray[30][100][100];
+ int Clfabetaf_nAlphaArray[30][100];
+ int Clfabetaf_nbeta[30];
+ double Clfabetaf_fArray[30];
+ int Clfabetaf_nf;
+ double ClfabetafI;
+ int Clfabetaf_nice, Clfabetaf_na_nice, Clfabetaf_nb_nice;
+ double Clfabetaf_bArray_nice[100];
+ double Clfabetaf_aArray_nice[100];
+#define Clfabetaf_aArray aircraft_->Clfabetaf_aArray
+#define Clfabetaf_betaArray aircraft_->Clfabetaf_betaArray
+#define Clfabetaf_ClArray aircraft_->Clfabetaf_ClArray
+#define Clfabetaf_nAlphaArray aircraft_->Clfabetaf_nAlphaArray
+#define Clfabetaf_nbeta aircraft_->Clfabetaf_nbeta
+#define Clfabetaf_fArray aircraft_->Clfabetaf_fArray
+#define Clfabetaf_nf aircraft_->Clfabetaf_nf
+#define ClfabetafI aircraft_->ClfabetafI
+#define Clfabetaf_nice aircraft_->Clfabetaf_nice
+#define Clfabetaf_na_nice aircraft_->Clfabetaf_na_nice
+#define Clfabetaf_nb_nice aircraft_->Clfabetaf_nb_nice
+#define Clfabetaf_bArray_nice aircraft_->Clfabetaf_bArray_nice
+#define Clfabetaf_aArray_nice aircraft_->Clfabetaf_aArray_nice
+ double Clfadaf_aArray[30][100][100];
+ double Clfadaf_daArray[30][100];
+ double Clfadaf_ClArray[30][100][100];
+ int Clfadaf_nAlphaArray[30][100];
+ int Clfadaf_nda[30];
+ double Clfadaf_fArray[30];
+ int Clfadaf_nf;
+ double ClfadafI;
+ int Clfadaf_nice, Clfadaf_na_nice, Clfadaf_nda_nice;
+ double Clfadaf_daArray_nice[100];
+ double Clfadaf_aArray_nice[100];
+#define Clfadaf_aArray aircraft_->Clfadaf_aArray
+#define Clfadaf_daArray aircraft_->Clfadaf_daArray
+#define Clfadaf_ClArray aircraft_->Clfadaf_ClArray
+#define Clfadaf_nAlphaArray aircraft_->Clfadaf_nAlphaArray
+#define Clfadaf_nda aircraft_->Clfadaf_nda
+#define Clfadaf_fArray aircraft_->Clfadaf_fArray
+#define Clfadaf_nf aircraft_->Clfadaf_nf
+#define ClfadafI aircraft_->ClfadafI
+#define Clfadaf_nice aircraft_->Clfadaf_nice
+#define Clfadaf_na_nice aircraft_->Clfadaf_na_nice
+#define Clfadaf_nda_nice aircraft_->Clfadaf_nda_nice
+#define Clfadaf_daArray_nice aircraft_->Clfadaf_daArray_nice
+#define Clfadaf_aArray_nice aircraft_->Clfadaf_aArray_nice
+ double Clfadrf_aArray[30][100][100];
+ double Clfadrf_drArray[30][100];
+ double Clfadrf_ClArray[30][100][100];
+ int Clfadrf_nAlphaArray[30][100];
+ int Clfadrf_ndr[30];
+ double Clfadrf_fArray[30];
+ int Clfadrf_nf;
+ double ClfadrfI;
+ int Clfadrf_nice, Clfadrf_na_nice, Clfadrf_ndr_nice;
+ double Clfadrf_drArray_nice[100];
+ double Clfadrf_aArray_nice[100];
+#define Clfadrf_aArray aircraft_->Clfadrf_aArray
+#define Clfadrf_drArray aircraft_->Clfadrf_drArray
+#define Clfadrf_ClArray aircraft_->Clfadrf_ClArray
+#define Clfadrf_nAlphaArray aircraft_->Clfadrf_nAlphaArray
+#define Clfadrf_ndr aircraft_->Clfadrf_ndr
+#define Clfadrf_fArray aircraft_->Clfadrf_fArray
+#define Clfadrf_nf aircraft_->Clfadrf_nf
+#define ClfadrfI aircraft_->ClfadrfI
+#define Clfadrf_nice aircraft_->Clfadrf_nice
+#define Clfadrf_na_nice aircraft_->Clfadrf_na_nice
+#define Clfadrf_ndr_nice aircraft_->Clfadrf_ndr_nice
+#define Clfadrf_drArray_nice aircraft_->Clfadrf_drArray_nice
+#define Clfadrf_aArray_nice aircraft_->Clfadrf_aArray_nice
+ double Clfapf_aArray[30][100][100];
+ double Clfapf_pArray[30][100];
+ double Clfapf_ClArray[30][100][100];
+ int Clfapf_nAlphaArray[30][100];
+ int Clfapf_np[30];
+ double Clfapf_fArray[30];
+ int Clfapf_nf;
+ double ClfapfI;
+ int Clfapf_nice, Clfapf_na_nice, Clfapf_np_nice;
+ double Clfapf_pArray_nice[100];
+ double Clfapf_aArray_nice[100];
+#define Clfapf_aArray aircraft_->Clfapf_aArray
+#define Clfapf_pArray aircraft_->Clfapf_pArray
+#define Clfapf_ClArray aircraft_->Clfapf_ClArray
+#define Clfapf_nAlphaArray aircraft_->Clfapf_nAlphaArray
+#define Clfapf_np aircraft_->Clfapf_np
+#define Clfapf_fArray aircraft_->Clfapf_fArray
+#define Clfapf_nf aircraft_->Clfapf_nf
+#define ClfapfI aircraft_->ClfapfI
+#define Clfapf_nice aircraft_->Clfapf_nice
+#define Clfapf_na_nice aircraft_->Clfapf_na_nice
+#define Clfapf_np_nice aircraft_->Clfapf_np_nice
+#define Clfapf_pArray_nice aircraft_->Clfapf_pArray_nice
+#define Clfapf_aArray_nice aircraft_->Clfapf_aArray_nice
+ double Clfarf_aArray[30][100][100];
+ double Clfarf_rArray[30][100];
+ double Clfarf_ClArray[30][100][100];
+ int Clfarf_nAlphaArray[30][100];
+ int Clfarf_nr[30];
+ double Clfarf_fArray[30];
+ int Clfarf_nf;
+ double ClfarfI;
+ int Clfarf_nice, Clfarf_na_nice, Clfarf_nr_nice;
+ double Clfarf_rArray_nice[100];
+ double Clfarf_aArray_nice[100];
+#define Clfarf_aArray aircraft_->Clfarf_aArray
+#define Clfarf_rArray aircraft_->Clfarf_rArray
+#define Clfarf_ClArray aircraft_->Clfarf_ClArray
+#define Clfarf_nAlphaArray aircraft_->Clfarf_nAlphaArray
+#define Clfarf_nr aircraft_->Clfarf_nr
+#define Clfarf_fArray aircraft_->Clfarf_fArray
+#define Clfarf_nf aircraft_->Clfarf_nf
+#define ClfarfI aircraft_->ClfarfI
+#define Clfarf_nice aircraft_->Clfarf_nice
+#define Clfarf_na_nice aircraft_->Clfarf_na_nice
+#define Clfarf_nr_nice aircraft_->Clfarf_nr_nice
+#define Clfarf_rArray_nice aircraft_->Clfarf_rArray_nice
+#define Clfarf_aArray_nice aircraft_->Clfarf_aArray_nice
+ double Clo_save, Cl_beta_save, Cl_p_save, Cl_r_save, Cl_da_save;
+ double Cl_dr_save, Cl_daa_save;
+#define Clo_save aircraft_->Clo_save
+#define Cl_beta_save aircraft_->Cl_beta_save
+#define Cl_p_save aircraft_->Cl_p_save
+#define Cl_r_save aircraft_->Cl_r_save
+#define Cl_da_save aircraft_->Cl_da_save
+#define Cl_dr_save aircraft_->Cl_dr_save
+#define Cl_daa_save aircraft_->Cl_daa_save
+
/* Variables (token2) ===========================================*/
/* Cn ============ Aerodynamic n-moment quantities (lateral) ====*/
#define Cnfbetadr_nBetaArray aircraft_->Cnfbetadr_nBetaArray
#define Cnfbetadr_ndr aircraft_->Cnfbetadr_ndr
#define CnfbetadrI aircraft_->CnfbetadrI
-
+ double Cnfabetaf_aArray[30][100][100];
+ double Cnfabetaf_betaArray[30][100];
+ double Cnfabetaf_CnArray[30][100][100];
+ int Cnfabetaf_nAlphaArray[30][100];
+ int Cnfabetaf_nbeta[30];
+ double Cnfabetaf_fArray[30];
+ int Cnfabetaf_nf;
+ double CnfabetafI;
+ int Cnfabetaf_nice, Cnfabetaf_na_nice, Cnfabetaf_nb_nice;
+ double Cnfabetaf_bArray_nice[100];
+ double Cnfabetaf_aArray_nice[100];
+#define Cnfabetaf_aArray aircraft_->Cnfabetaf_aArray
+#define Cnfabetaf_betaArray aircraft_->Cnfabetaf_betaArray
+#define Cnfabetaf_CnArray aircraft_->Cnfabetaf_CnArray
+#define Cnfabetaf_nAlphaArray aircraft_->Cnfabetaf_nAlphaArray
+#define Cnfabetaf_nbeta aircraft_->Cnfabetaf_nbeta
+#define Cnfabetaf_fArray aircraft_->Cnfabetaf_fArray
+#define Cnfabetaf_nf aircraft_->Cnfabetaf_nf
+#define CnfabetafI aircraft_->CnfabetafI
+#define Cnfabetaf_nice aircraft_->Cnfabetaf_nice
+#define Cnfabetaf_na_nice aircraft_->Cnfabetaf_na_nice
+#define Cnfabetaf_nb_nice aircraft_->Cnfabetaf_nb_nice
+#define Cnfabetaf_bArray_nice aircraft_->Cnfabetaf_bArray_nice
+#define Cnfabetaf_aArray_nice aircraft_->Cnfabetaf_aArray_nice
+ double Cnfadaf_aArray[30][100][100];
+ double Cnfadaf_daArray[30][100];
+ double Cnfadaf_CnArray[30][100][100];
+ int Cnfadaf_nAlphaArray[30][100];
+ int Cnfadaf_nda[30];
+ double Cnfadaf_fArray[30];
+ int Cnfadaf_nf;
+ double CnfadafI;
+ int Cnfadaf_nice, Cnfadaf_na_nice, Cnfadaf_nda_nice;
+ double Cnfadaf_daArray_nice[100];
+ double Cnfadaf_aArray_nice[100];
+#define Cnfadaf_aArray aircraft_->Cnfadaf_aArray
+#define Cnfadaf_daArray aircraft_->Cnfadaf_daArray
+#define Cnfadaf_CnArray aircraft_->Cnfadaf_CnArray
+#define Cnfadaf_nAlphaArray aircraft_->Cnfadaf_nAlphaArray
+#define Cnfadaf_nda aircraft_->Cnfadaf_nda
+#define Cnfadaf_fArray aircraft_->Cnfadaf_fArray
+#define Cnfadaf_nf aircraft_->Cnfadaf_nf
+#define CnfadafI aircraft_->CnfadafI
+#define Cnfadaf_nice aircraft_->Cnfadaf_nice
+#define Cnfadaf_na_nice aircraft_->Cnfadaf_na_nice
+#define Cnfadaf_nda_nice aircraft_->Cnfadaf_nda_nice
+#define Cnfadaf_daArray_nice aircraft_->Cnfadaf_daArray_nice
+#define Cnfadaf_aArray_nice aircraft_->Cnfadaf_aArray_nice
+ double Cnfadrf_aArray[30][100][100];
+ double Cnfadrf_drArray[30][100];
+ double Cnfadrf_CnArray[30][100][100];
+ int Cnfadrf_nAlphaArray[30][100];
+ int Cnfadrf_ndr[30];
+ double Cnfadrf_fArray[30];
+ int Cnfadrf_nf;
+ double CnfadrfI;
+ int Cnfadrf_nice, Cnfadrf_na_nice, Cnfadrf_ndr_nice;
+ double Cnfadrf_drArray_nice[100];
+ double Cnfadrf_aArray_nice[100];
+#define Cnfadrf_aArray aircraft_->Cnfadrf_aArray
+#define Cnfadrf_drArray aircraft_->Cnfadrf_drArray
+#define Cnfadrf_CnArray aircraft_->Cnfadrf_CnArray
+#define Cnfadrf_nAlphaArray aircraft_->Cnfadrf_nAlphaArray
+#define Cnfadrf_ndr aircraft_->Cnfadrf_ndr
+#define Cnfadrf_fArray aircraft_->Cnfadrf_fArray
+#define Cnfadrf_nf aircraft_->Cnfadrf_nf
+#define CnfadrfI aircraft_->CnfadrfI
+#define Cnfadrf_nice aircraft_->Cnfadrf_nice
+#define Cnfadrf_na_nice aircraft_->Cnfadrf_na_nice
+#define Cnfadrf_ndr_nice aircraft_->Cnfadrf_ndr_nice
+#define Cnfadrf_drArray_nice aircraft_->Cnfadrf_drArray_nice
+#define Cnfadrf_aArray_nice aircraft_->Cnfadrf_aArray_nice
+ double Cnfapf_aArray[30][100][100];
+ double Cnfapf_pArray[30][100];
+ double Cnfapf_CnArray[30][100][100];
+ int Cnfapf_nAlphaArray[30][100];
+ int Cnfapf_np[30];
+ double Cnfapf_fArray[30];
+ int Cnfapf_nf;
+ double CnfapfI;
+ int Cnfapf_nice, Cnfapf_na_nice, Cnfapf_np_nice;
+ double Cnfapf_pArray_nice[100];
+ double Cnfapf_aArray_nice[100];
+#define Cnfapf_aArray aircraft_->Cnfapf_aArray
+#define Cnfapf_pArray aircraft_->Cnfapf_pArray
+#define Cnfapf_CnArray aircraft_->Cnfapf_CnArray
+#define Cnfapf_nAlphaArray aircraft_->Cnfapf_nAlphaArray
+#define Cnfapf_np aircraft_->Cnfapf_np
+#define Cnfapf_fArray aircraft_->Cnfapf_fArray
+#define Cnfapf_nf aircraft_->Cnfapf_nf
+#define CnfapfI aircraft_->CnfapfI
+#define Cnfapf_nice aircraft_->Cnfapf_nice
+#define Cnfapf_na_nice aircraft_->Cnfapf_na_nice
+#define Cnfapf_np_nice aircraft_->Cnfapf_np_nice
+#define Cnfapf_pArray_nice aircraft_->Cnfapf_pArray_nice
+#define Cnfapf_aArray_nice aircraft_->Cnfapf_aArray_nice
+ double Cnfarf_aArray[30][100][100];
+ double Cnfarf_rArray[30][100];
+ double Cnfarf_CnArray[30][100][100];
+ int Cnfarf_nAlphaArray[30][100];
+ int Cnfarf_nr[30];
+ double Cnfarf_fArray[30];
+ int Cnfarf_nf;
+ double CnfarfI;
+ int Cnfarf_nice, Cnfarf_na_nice, Cnfarf_nr_nice;
+ double Cnfarf_rArray_nice[100];
+ double Cnfarf_aArray_nice[100];
+#define Cnfarf_aArray aircraft_->Cnfarf_aArray
+#define Cnfarf_rArray aircraft_->Cnfarf_rArray
+#define Cnfarf_CnArray aircraft_->Cnfarf_CnArray
+#define Cnfarf_nAlphaArray aircraft_->Cnfarf_nAlphaArray
+#define Cnfarf_nr aircraft_->Cnfarf_nr
+#define Cnfarf_fArray aircraft_->Cnfarf_fArray
+#define Cnfarf_nf aircraft_->Cnfarf_nf
+#define CnfarfI aircraft_->CnfarfI
+#define Cnfarf_nice aircraft_->Cnfarf_nice
+#define Cnfarf_na_nice aircraft_->Cnfarf_na_nice
+#define Cnfarf_nr_nice aircraft_->Cnfarf_nr_nice
+#define Cnfarf_rArray_nice aircraft_->Cnfarf_rArray_nice
+#define Cnfarf_aArray_nice aircraft_->Cnfarf_aArray_nice
+ double Cno_save, Cn_beta_save, Cn_p_save, Cn_r_save;
+ double Cn_da_save, Cn_dr_save, Cn_q_save, Cn_b3_save;
+#define Cno_save aircraft_->Cno_save
+#define Cn_beta_save aircraft_->Cn_beta_save
+#define Cn_p_save aircraft_->Cn_p_save
+#define Cn_r_save aircraft_->Cn_r_save
+#define Cn_da_save aircraft_->Cn_da_save
+#define Cn_dr_save aircraft_->Cn_dr_save
+#define Cn_q_save aircraft_->Cn_q_save
+#define Cn_b3_save aircraft_->Cn_b3_save
+
/* Variables (token2) ===========================================*/
/* gear ========== Landing gear model quantities ================*/
#define dfArray aircraft_->dfArray
#define TimeArray aircraft_->TimeArray
+ double flap_percent, flap_goal, flap_moving_rate, flap_pos;
+#define flap_percent aircraft_->flap_percent
+#define flap_goal aircraft_->flap_goal
+#define flap_moving_rate aircraft_->flap_moving_rate
+#define flap_pos aircraft_->flap_pos
+
ofstream fout;
----------------------------------------------------------------------
HISTORY: 04/15/2000 initial release
+ 10/25/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model at zero flaps
+ (CXfxxf0)
+ 11/12/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model with flaps
+ (CXfxxf). Zero flap vairables removed.
+ 02/13/2002 (RD) Added variables so linear aero model
+ values can be recorded
+ 02/18/2002 (RD) Added uiuc_3Dinterp_quick() function
+ for a quicker 3D interpolation. Takes
+ advantage of "nice" data.
----------------------------------------------------------------------
AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
Jeff Scott <jscott@mail.com>
+ Robert Deters <rdeters@uiuc.edu>
----------------------------------------------------------------------
CALLS TO: uiuc_1Dinterpolation
uiuc_2Dinterpolation
uiuc_ice_filter
+ uiuc_3Dinterpolation
+ uiuc_3Dinterp_quick
----------------------------------------------------------------------
**********************************************************************/
#include "uiuc_coef_drag.h"
-
+#include <math.h>
void uiuc_coef_drag()
{
string linetoken1;
string linetoken2;
stack command_list;
-
+
+ double q_nondim;
+
command_list = aeroDragParts -> getCommands();
for (LIST command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
{
CDo = uiuc_ice_filter(CDo_clean,kCDo);
}
+ CDo_save = CDo;
CD += CDo;
break;
}
{
CDK = uiuc_ice_filter(CDK_clean,kCDK);
}
+ CDK_save = CDK * CL * CL;
CD += CDK * CL * CL;
break;
}
{
CD_a = uiuc_ice_filter(CD_a_clean,kCD_a);
}
+ CD_a_save = CD_a * Alpha;
CD += CD_a * Alpha;
break;
}
}
/* CD_adot must be mulitplied by cbar/2U
(see Roskam Control book, Part 1, pg. 147) */
+ CD_adot_save = CD_adot * Alpha_dot * cbar_2U;
CD += CD_adot * Alpha_dot * cbar_2U;
break;
}
(see Roskam Control book, Part 1, pg. 147) */
/* why multiply by Theta_dot instead of Q_body?
see note in coef_lift.cpp */
+ CD_q_save = CD_q * Theta_dot * cbar_2U;
CD += CD_q * Theta_dot * cbar_2U;
break;
}
case CD_ih_flag:
{
- CD += CD_ih * ih;
+ CD_ih_save = fabs(CD_ih * ih);
+ CD += fabs(CD_ih * ih);
break;
}
case CD_de_flag:
{
CD_de = uiuc_ice_filter(CD_de_clean,kCD_de);
}
- CD += CD_de * elevator;
+ CD_de_save = fabs(CD_de * elevator);
+ CD += fabs(CD_de * elevator);
break;
}
case CDfa_flag:
CXiced_tail += CXo;
}
}
+ CXo_save = CXo;
CX += CXo;
break;
}
CXiced_tail += CXK * CLiced_tail * CLiced_tail;
}
}
+ CXK_save = CXK * CZ * CZ;
CX += CXK * CZ * CZ;
break;
}
CXiced_tail += CX_a * Alpha;
}
}
+ CX_a_save = CX_a * Alpha;
CX += CX_a * Alpha;
break;
}
CXiced_tail += CX_a2 * Alpha * Alpha;
}
}
+ CX_a2_save = CX_a2 * Alpha * Alpha;
CX += CX_a2 * Alpha * Alpha;
break;
}
CXiced_tail += CX_a3 * Alpha * Alpha * Alpha;
}
}
+ CX_a3_save = CX_a3 * Alpha * Alpha * Alpha;
CX += CX_a3 * Alpha * Alpha * Alpha;
break;
}
}
/* CX_adot must be mulitplied by cbar/2U
(see Roskam Control book, Part 1, pg. 147) */
+ CX_adot_save = CX_adot * Alpha_dot * cbar_2U;
CX += CX_adot * Alpha_dot * cbar_2U;
break;
}
}
/* CX_q must be mulitplied by cbar/2U
(see Roskam Control book, Part 1, pg. 147) */
+ CX_q_save = CX_q * Q_body * cbar_2U;
CX += CX_q * Q_body * cbar_2U;
break;
}
CXiced_tail += CX_de * elevator;
}
}
+ CX_de_save = CX_de * elevator;
CX += CX_de * elevator;
break;
}
CXiced_tail += CX_dr * rudder;
}
}
+ CX_dr_save = CX_dr * rudder;
CX += CX_dr * rudder;
break;
}
CXiced_tail += CX * flap;
}
}
+ CX_df_save = CX_df * flap;
CX += CX_df * flap;
break;
}
CXiced_tail += CX_adf * Alpha * flap;
}
}
+ CX_adf_save = CX_adf * Alpha * flap;
CX += CX_adf * Alpha * flap;
break;
}
+ case CXfabetaf_flag:
+ {
+ if (CXfabetaf_nice == 1)
+ CXfabetafI = uiuc_3Dinterp_quick(CXfabetaf_fArray,
+ CXfabetaf_aArray_nice,
+ CXfabetaf_bArray_nice,
+ CXfabetaf_CXArray,
+ CXfabetaf_na_nice,
+ CXfabetaf_nb_nice,
+ CXfabetaf_nf,
+ flap_pos,
+ Alpha,
+ Beta);
+ else
+ CXfabetafI = uiuc_3Dinterpolation(CXfabetaf_fArray,
+ CXfabetaf_aArray,
+ CXfabetaf_betaArray,
+ CXfabetaf_CXArray,
+ CXfabetaf_nAlphaArray,
+ CXfabetaf_nbeta,
+ CXfabetaf_nf,
+ flap_pos,
+ Alpha,
+ Beta);
+ CX += CXfabetafI;
+ break;
+ }
+ case CXfadef_flag:
+ {
+ if (CXfadef_nice == 1)
+ CXfadefI = uiuc_3Dinterp_quick(CXfadef_fArray,
+ CXfadef_aArray_nice,
+ CXfadef_deArray_nice,
+ CXfadef_CXArray,
+ CXfadef_na_nice,
+ CXfadef_nde_nice,
+ CXfadef_nf,
+ flap_pos,
+ Alpha,
+ elevator);
+ else
+ CXfadefI = uiuc_3Dinterpolation(CXfadef_fArray,
+ CXfadef_aArray,
+ CXfadef_deArray,
+ CXfadef_CXArray,
+ CXfadef_nAlphaArray,
+ CXfadef_nde,
+ CXfadef_nf,
+ flap_pos,
+ Alpha,
+ elevator);
+ CX += CXfadefI;
+ break;
+ }
+ case CXfaqf_flag:
+ {
+ q_nondim = Q_body * cbar_2U;
+ if (CXfaqf_nice == 1)
+ CXfaqfI = uiuc_3Dinterp_quick(CXfaqf_fArray,
+ CXfaqf_aArray_nice,
+ CXfaqf_qArray_nice,
+ CXfaqf_CXArray,
+ CXfaqf_na_nice,
+ CXfaqf_nq_nice,
+ CXfaqf_nf,
+ flap_pos,
+ Alpha,
+ q_nondim);
+ else
+ CXfaqfI = uiuc_3Dinterpolation(CXfaqf_fArray,
+ CXfaqf_aArray,
+ CXfaqf_qArray,
+ CXfaqf_CXArray,
+ CXfaqf_nAlphaArray,
+ CXfaqf_nq,
+ CXfaqf_nf,
+ flap_pos,
+ Alpha,
+ q_nondim);
+ CX += CXfaqfI;
+ break;
+ }
};
} // end CD map
#include "uiuc_aircraft.h"
#include "uiuc_1Dinterpolation.h"
#include "uiuc_2Dinterpolation.h"
+#include "uiuc_3Dinterpolation.h"
#include "uiuc_ice.h"
HISTORY: 04/15/2000 initial release
06/18/2001 (RD) Added CZfa
+ 10/25/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model at zero flaps
+ (CZfxxf0)
+ 11/12/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model with flaps
+ (CZfxxf). Zero flap vairables removed.
+ 02/13/2002 (RD) Added variables so linear aero model
+ values can be recorded
+ 02/18/2002 (RD) Added uiuc_3Dinterp_quick() function
+ for a quicker 3D interpolation. Takes
+ advantage of "nice" data.
----------------------------------------------------------------------
CALLS TO: uiuc_1Dinterpolation
uiuc_2Dinterpolation
uiuc_ice_filter
+ uiuc_3Dinterpolation
+ uiuc_3Dinterp_quick
----------------------------------------------------------------------
#include "uiuc_coef_lift.h"
-
void uiuc_coef_lift()
{
string linetoken1;
string linetoken2;
stack command_list;
-
+
+ double q_nondim;
+
command_list = aeroLiftParts -> getCommands();
for (LIST command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
CLiced_tail += CLo;
}
}
+ CLo_save = CLo;
CL += CLo;
break;
}
CLiced_tail += CL_a * Alpha;
}
}
+ CL_a_save = CL_a * Alpha;
CL += CL_a * Alpha;
break;
}
}
/* CL_adot must be mulitplied by cbar/2U
(see Roskam Control book, Part 1, pg. 147) */
+ CL_adot_save = CL_adot * Alpha_dot * cbar_2U;
CL += CL_adot * Alpha_dot * cbar_2U;
break;
}
/* why multiply by Theta_dot instead of Q_body?
that is what is done in c172_aero.c; assume it
has something to do with axes systems */
+ CL_q_save = CL_q * Theta_dot * cbar_2U;
CL += CL_q * Theta_dot * cbar_2U;
break;
}
case CL_ih_flag:
{
+ CL_ih_save = CL_ih * ih;
CL += CL_ih * ih;
break;
}
CLiced_tail += CL_de * elevator;
}
}
+ CL_de_save = CL_de * elevator;
CL += CL_de * elevator;
break;
}
CZiced_tail += CZo;
}
}
+ CZo_save = CZo;
CZ += CZo;
break;
}
CZiced_tail += CZ_a * Alpha;
}
}
+ CZ_a_save = CZ_a * Alpha;
CZ += CZ_a * Alpha;
break;
}
CZiced_tail += CZ_a2 * Alpha * Alpha;
}
}
+ CZ_a2_save = CZ_a2 * Alpha * Alpha;
CZ += CZ_a2 * Alpha * Alpha;
break;
}
CZiced_tail += CZ_a3 * Alpha * Alpha * Alpha;
}
}
+ CZ_a3_save = CZ_a3 * Alpha * Alpha * Alpha;
CZ += CZ_a3 * Alpha * Alpha * Alpha;
break;
}
}
/* CZ_adot must be mulitplied by cbar/2U
(see Roskam Control book, Part 1, pg. 147) */
+ CZ_adot_save = CZ_adot * Alpha_dot * cbar_2U;
CZ += CZ_adot * Alpha_dot * cbar_2U;
break;
}
}
/* CZ_q must be mulitplied by cbar/2U
(see Roskam Control book, Part 1, pg. 147) */
+ CZ_q_save = CZ_q * Q_body * cbar_2U;
CZ += CZ_q * Q_body * cbar_2U;
break;
}
CZiced_tail += CZ_de * elevator;
}
}
+ CZ_de_save = CZ_de * elevator;
CZ += CZ_de * elevator;
break;
}
CZiced_tail += CZ_deb2 * elevator * Beta * Beta;
}
}
+ CZ_deb2_save = CZ_deb2 * elevator * Beta * Beta;
CZ += CZ_deb2 * elevator * Beta * Beta;
break;
}
CZiced_tail += CZ_df * flap;
}
}
+ CZ_df_save = CZ_df * flap;
CZ += CZ_df * flap;
break;
}
CZiced_tail += CZ_adf * Alpha * flap;
}
}
+ CZ_adf_save = CZ_adf * Alpha * flap;
CZ += CZ_adf * Alpha * flap;
break;
}
CZ += CZfaI;
break;
}
+ case CZfabetaf_flag:
+ {
+ if (CZfabetaf_nice == 1)
+ CZfabetafI = uiuc_3Dinterp_quick(CZfabetaf_fArray,
+ CZfabetaf_aArray_nice,
+ CZfabetaf_bArray_nice,
+ CZfabetaf_CZArray,
+ CZfabetaf_na_nice,
+ CZfabetaf_nb_nice,
+ CZfabetaf_nf,
+ flap_pos,
+ Alpha,
+ Beta);
+ else
+ CZfabetafI = uiuc_3Dinterpolation(CZfabetaf_fArray,
+ CZfabetaf_aArray,
+ CZfabetaf_betaArray,
+ CZfabetaf_CZArray,
+ CZfabetaf_nAlphaArray,
+ CZfabetaf_nbeta,
+ CZfabetaf_nf,
+ flap_pos,
+ Alpha,
+ Beta);
+ CZ += CZfabetafI;
+ break;
+ }
+ case CZfadef_flag:
+ {
+ if (CZfadef_nice == 1)
+ CZfadefI = uiuc_3Dinterp_quick(CZfadef_fArray,
+ CZfadef_aArray_nice,
+ CZfadef_deArray_nice,
+ CZfadef_CZArray,
+ CZfadef_na_nice,
+ CZfadef_nde_nice,
+ CZfadef_nf,
+ flap_pos,
+ Alpha,
+ elevator);
+ else
+ CZfadefI = uiuc_3Dinterpolation(CZfadef_fArray,
+ CZfadef_aArray,
+ CZfadef_deArray,
+ CZfadef_CZArray,
+ CZfadef_nAlphaArray,
+ CZfadef_nde,
+ CZfadef_nf,
+ flap_pos,
+ Alpha,
+ elevator);
+ CZ += CZfadefI;
+ break;
+ }
+ case CZfaqf_flag:
+ {
+ q_nondim = Q_body * cbar_2U;
+ if (CZfaqf_nice == 1)
+ CZfaqfI = uiuc_3Dinterp_quick(CZfaqf_fArray,
+ CZfaqf_aArray_nice,
+ CZfaqf_qArray_nice,
+ CZfaqf_CZArray,
+ CZfaqf_na_nice,
+ CZfaqf_nq_nice,
+ CZfaqf_nf,
+ flap_pos,
+ Alpha,
+ q_nondim);
+ else
+ CZfaqfI = uiuc_3Dinterpolation(CZfaqf_fArray,
+ CZfaqf_aArray,
+ CZfaqf_qArray,
+ CZfaqf_CZArray,
+ CZfaqf_nAlphaArray,
+ CZfaqf_nq,
+ CZfaqf_nf,
+ flap_pos,
+ Alpha,
+ q_nondim);
+ CZ += CZfaqfI;
+ break;
+ }
};
} // end CL map
#include "uiuc_aircraft.h"
#include "uiuc_1Dinterpolation.h"
#include "uiuc_2Dinterpolation.h"
+#include "uiuc_3Dinterpolation.h"
#include "uiuc_ice.h"
----------------------------------------------------------------------
HISTORY: 04/15/2000 initial release
+ 10/25/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model at zero flaps
+ (Cmfxxf0)
+ 11/12/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model with flaps
+ (Cmfxxf). Zero flap vairables removed.
+ 02/13/2002 (RD) Added variables so linear aero model
+ values can be recorded
+ 02/18/2002 (RD) Added uiuc_3Dinterp_quick() function
+ for a quicker 3D interpolation. Takes
+ advantage of "nice" data.
----------------------------------------------------------------------
AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
Jeff Scott <jscott@mail.com>
+ Robert Deters <rdeters@uiuc.edu>
----------------------------------------------------------------------
CALLS TO: uiuc_1Dinterpolation
uiuc_2Dinterpolation
uiuc_ice_filter
+ uiuc_3Dinterpolation
+ uiuc_3Dinterp_quick
----------------------------------------------------------------------
string linetoken1;
string linetoken2;
stack command_list;
+
+ double q_nondim;
command_list = aeroPitchParts -> getCommands();
{
Cmo = uiuc_ice_filter(Cmo_clean,kCmo);
}
+ Cmo_save = Cmo;
Cm += Cmo;
break;
}
{
Cm_a = uiuc_ice_filter(Cm_a_clean,kCm_a);
}
+ Cm_a_save = Cm_a * Alpha;
Cm += Cm_a * Alpha;
break;
}
{
Cm_a2 = uiuc_ice_filter(Cm_a2_clean,kCm_a2);
}
+ Cm_a2_save = Cm_a2 * Alpha * Alpha;
Cm += Cm_a2 * Alpha * Alpha;
break;
}
}
/* Cm_adot must be mulitplied by cbar/2U
(see Roskam Control book, Part 1, pg. 147) */
+ Cm_adot_save = Cm_adot * Alpha_dot * cbar_2U;
Cm += Cm_adot * Alpha_dot * cbar_2U;
break;
}
}
/* Cm_q must be mulitplied by cbar/2U
(see Roskam Control book, Part 1, pg. 147) */
+ Cm_q_save = Cm_q * Q_body * cbar_2U;
Cm += Cm_q * Q_body * cbar_2U;
break;
}
case Cm_ih_flag:
{
+ Cm_ih_save = Cm_ih * ih;
Cm += Cm_ih * ih;
break;
}
{
Cm_de = uiuc_ice_filter(Cm_de_clean,kCm_de);
}
+ Cm_de_save = Cm_de * elevator;
Cm += Cm_de * elevator;
break;
}
{
Cm_b2 = uiuc_ice_filter(Cm_b2_clean,kCm_b2);
}
+ Cm_b2_save = Cm_b2 * Beta * Beta;
Cm += Cm_b2 * Beta * Beta;
break;
}
{
Cm_r = uiuc_ice_filter(Cm_r_clean,kCm_r);
}
+ Cm_r_save = Cm_r * R_body * b_2U;
Cm += Cm_r * R_body * b_2U;
break;
}
{
Cm_df = uiuc_ice_filter(Cm_df_clean,kCm_df);
}
+ Cm_df_save = Cm_df * flap;
Cm += Cm_df * flap;
break;
}
Cm += CmfadfI;
break;
}
+ case Cmfabetaf_flag:
+ {
+ if (Cmfabetaf_nice == 1)
+ CmfabetafI = uiuc_3Dinterp_quick(Cmfabetaf_fArray,
+ Cmfabetaf_aArray_nice,
+ Cmfabetaf_bArray_nice,
+ Cmfabetaf_CmArray,
+ Cmfabetaf_na_nice,
+ Cmfabetaf_nb_nice,
+ Cmfabetaf_nf,
+ flap_pos,
+ Alpha,
+ Beta);
+ else
+ CmfabetafI = uiuc_3Dinterpolation(Cmfabetaf_fArray,
+ Cmfabetaf_aArray,
+ Cmfabetaf_betaArray,
+ Cmfabetaf_CmArray,
+ Cmfabetaf_nAlphaArray,
+ Cmfabetaf_nbeta,
+ Cmfabetaf_nf,
+ flap_pos,
+ Alpha,
+ Beta);
+ Cm += CmfabetafI;
+ break;
+ }
+ case Cmfadef_flag:
+ {
+ if (Cmfadef_nice == 1)
+ CmfadefI = uiuc_3Dinterp_quick(Cmfadef_fArray,
+ Cmfadef_aArray_nice,
+ Cmfadef_deArray_nice,
+ Cmfadef_CmArray,
+ Cmfadef_na_nice,
+ Cmfadef_nde_nice,
+ Cmfadef_nf,
+ flap_pos,
+ Alpha,
+ elevator);
+ else
+ CmfadefI = uiuc_3Dinterpolation(Cmfadef_fArray,
+ Cmfadef_aArray,
+ Cmfadef_deArray,
+ Cmfadef_CmArray,
+ Cmfadef_nAlphaArray,
+ Cmfadef_nde,
+ Cmfadef_nf,
+ flap_pos,
+ Alpha,
+ elevator);
+ Cm += CmfadefI;
+ break;
+ }
+ case Cmfaqf_flag:
+ {
+ q_nondim = Q_body * cbar_2U;
+ if (Cmfaqf_nice == 1)
+ CmfaqfI = uiuc_3Dinterp_quick(Cmfaqf_fArray,
+ Cmfaqf_aArray_nice,
+ Cmfaqf_qArray_nice,
+ Cmfaqf_CmArray,
+ Cmfaqf_na_nice,
+ Cmfaqf_nq_nice,
+ Cmfaqf_nf,
+ flap_pos,
+ Alpha,
+ q_nondim);
+ else
+ CmfaqfI = uiuc_3Dinterpolation(Cmfaqf_fArray,
+ Cmfaqf_aArray,
+ Cmfaqf_qArray,
+ Cmfaqf_CmArray,
+ Cmfaqf_nAlphaArray,
+ Cmfaqf_nq,
+ Cmfaqf_nf,
+ flap_pos,
+ Alpha,
+ q_nondim);
+ Cm += CmfaqfI;
+ break;
+ }
};
} // end Cm map
#include "uiuc_aircraft.h"
#include "uiuc_1Dinterpolation.h"
#include "uiuc_2Dinterpolation.h"
+#include "uiuc_3Dinterpolation.h"
#include "uiuc_ice.h"
#include <FDM/LaRCsim/ls_generic.h>
----------------------------------------------------------------------
HISTORY: 04/15/2000 initial release
+ 10/25/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model at zero flaps
+ (Clfxxf0)
+ 11/12/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model with flaps
+ (Clfxxf). Zero flap vairables removed.
+ 02/13/2002 (RD) Added variables so linear aero model
+ values can be recorded
+ 02/18/2002 (RD) Added uiuc_3Dinterp_quick() function
+ for a quicker 3D interpolation. Takes
+ advantage of "nice" data.
----------------------------------------------------------------------
AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
Jeff Scott <jscott@mail.com>
+ Robert Deters <rdeters@uiuc.edu>
----------------------------------------------------------------------
CALLS TO: uiuc_1Dinterpolation
uiuc_2Dinterpolation
uiuc_ice_filter
+ uiuc_3Dinterpolation
+ uiuc_3Dinterp_quick
----------------------------------------------------------------------
string linetoken1;
string linetoken2;
stack command_list;
-
+
+ double p_nondim;
+ double r_nondim;
+
command_list = aeroRollParts -> getCommands();
for (LIST command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
{
Clo = uiuc_ice_filter(Clo_clean,kClo);
}
+ Clo_save = Clo;
Cl += Clo;
break;
}
{
Cl_beta = uiuc_ice_filter(Cl_beta_clean,kCl_beta);
}
+ Cl_beta_save = Cl_beta * Beta;
Cl += Cl_beta * Beta;
break;
}
}
/* Cl_p must be mulitplied by b/2U
(see Roskam Control book, Part 1, pg. 147) */
+ Cl_p_save = Cl_p * P_body * b_2U;
Cl += Cl_p * P_body * b_2U;
break;
}
}
/* Cl_r must be mulitplied by b/2U
(see Roskam Control book, Part 1, pg. 147) */
+ Cl_r_save = Cl_r * R_body * b_2U;
Cl += Cl_r * R_body * b_2U;
break;
}
{
Cl_da = uiuc_ice_filter(Cl_da_clean,kCl_da);
}
+ Cl_da_save = Cl_da * aileron;
Cl += Cl_da * aileron;
break;
}
{
Cl_dr = uiuc_ice_filter(Cl_dr_clean,kCl_dr);
}
+ Cl_dr_save = Cl_dr * rudder;
Cl += Cl_dr * rudder;
break;
}
{
Cl_daa = uiuc_ice_filter(Cl_daa_clean,kCl_daa);
}
+ Cl_daa_save = Cl_daa * aileron * Alpha;
Cl += Cl_daa * aileron * Alpha;
break;
}
Cl += ClfbetadrI;
break;
}
+ case Clfabetaf_flag:
+ {
+ if (Clfabetaf_nice == 1)
+ ClfabetafI = uiuc_3Dinterp_quick(Clfabetaf_fArray,
+ Clfabetaf_aArray_nice,
+ Clfabetaf_bArray_nice,
+ Clfabetaf_ClArray,
+ Clfabetaf_na_nice,
+ Clfabetaf_nb_nice,
+ Clfabetaf_nf,
+ flap_pos,
+ Alpha,
+ Beta);
+ else
+ ClfabetafI = uiuc_3Dinterpolation(Clfabetaf_fArray,
+ Clfabetaf_aArray,
+ Clfabetaf_betaArray,
+ Clfabetaf_ClArray,
+ Clfabetaf_nAlphaArray,
+ Clfabetaf_nbeta,
+ Clfabetaf_nf,
+ flap_pos,
+ Alpha,
+ Beta);
+ Cl += ClfabetafI;
+ break;
+ }
+ case Clfadaf_flag:
+ {
+ if (Clfadaf_nice == 1)
+ ClfadafI = uiuc_3Dinterp_quick(Clfadaf_fArray,
+ Clfadaf_aArray_nice,
+ Clfadaf_daArray_nice,
+ Clfadaf_ClArray,
+ Clfadaf_na_nice,
+ Clfadaf_nda_nice,
+ Clfadaf_nf,
+ flap_pos,
+ Alpha,
+ aileron);
+ else
+ ClfadafI = uiuc_3Dinterpolation(Clfadaf_fArray,
+ Clfadaf_aArray,
+ Clfadaf_daArray,
+ Clfadaf_ClArray,
+ Clfadaf_nAlphaArray,
+ Clfadaf_nda,
+ Clfadaf_nf,
+ flap_pos,
+ Alpha,
+ aileron);
+ Cl += ClfadafI;
+ break;
+ }
+ case Clfadrf_flag:
+ {
+ if (Clfadrf_nice == 1)
+ ClfadrfI = uiuc_3Dinterp_quick(Clfadrf_fArray,
+ Clfadrf_aArray_nice,
+ Clfadrf_drArray_nice,
+ Clfadrf_ClArray,
+ Clfadrf_na_nice,
+ Clfadrf_ndr_nice,
+ Clfadrf_nf,
+ flap_pos,
+ Alpha,
+ rudder);
+ else
+ ClfadrfI = uiuc_3Dinterpolation(Clfadrf_fArray,
+ Clfadrf_aArray,
+ Clfadrf_drArray,
+ Clfadrf_ClArray,
+ Clfadrf_nAlphaArray,
+ Clfadrf_ndr,
+ Clfadrf_nf,
+ flap_pos,
+ Alpha,
+ rudder);
+ Cl += ClfadrfI;
+ break;
+ }
+ case Clfapf_flag:
+ {
+ p_nondim = P_body * b_2U;
+ if (Clfapf_nice == 1)
+ ClfapfI = uiuc_3Dinterp_quick(Clfapf_fArray,
+ Clfapf_aArray_nice,
+ Clfapf_pArray_nice,
+ Clfapf_ClArray,
+ Clfapf_na_nice,
+ Clfapf_np_nice,
+ Clfapf_nf,
+ flap_pos,
+ Alpha,
+ p_nondim);
+ else
+ ClfapfI = uiuc_3Dinterpolation(Clfapf_fArray,
+ Clfapf_aArray,
+ Clfapf_pArray,
+ Clfapf_ClArray,
+ Clfapf_nAlphaArray,
+ Clfapf_np,
+ Clfapf_nf,
+ flap_pos,
+ Alpha,
+ p_nondim);
+ Cl += ClfapfI;
+ break;
+ }
+ case Clfarf_flag:
+ {
+ r_nondim = R_body * b_2U;
+ if (Clfarf_nice == 1)
+ ClfarfI = uiuc_3Dinterp_quick(Clfarf_fArray,
+ Clfarf_aArray_nice,
+ Clfarf_rArray_nice,
+ Clfarf_ClArray,
+ Clfarf_na_nice,
+ Clfarf_nr_nice,
+ Clfarf_nf,
+ flap_pos,
+ Alpha,
+ r_nondim);
+ else
+ ClfarfI = uiuc_3Dinterpolation(Clfarf_fArray,
+ Clfarf_aArray,
+ Clfarf_rArray,
+ Clfarf_ClArray,
+ Clfarf_nAlphaArray,
+ Clfarf_nr,
+ Clfarf_nf,
+ flap_pos,
+ Alpha,
+ r_nondim);
+ Cl += ClfarfI;
+ break;
+ }
};
} // end Cl map
#include "uiuc_aircraft.h"
#include "uiuc_1Dinterpolation.h"
#include "uiuc_2Dinterpolation.h"
+#include "uiuc_3Dinterpolation.h"
#include "uiuc_ice.h"
#include <FDM/LaRCsim/ls_generic.h>
----------------------------------------------------------------------
HISTORY: 04/15/2000 initial release
+ 10/25/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model at zero flaps
+ (CYfxxf0)
+ 11/12/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model with flaps
+ (CYfxxf). Zero flap vairables removed.
+ 02/13/2002 (RD) Added variables so linear aero model
+ values can be recorded
+ 02/18/2002 (RD) Added uiuc_3Dinterp_quick() function
+ for a quicker 3D interpolation. Takes
+ advantage of "nice" data.
----------------------------------------------------------------------
AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
Jeff Scott <jscott@mail.com>
+ Robert Deters <rdeters@uiuc.edu>
----------------------------------------------------------------------
CALLS TO: uiuc_1Dinterpolation
uiuc_2Dinterpolation
uiuc_ice_filter
+ uiuc_3Dinterpolation
+ uiuc_3Dinterp_quick
----------------------------------------------------------------------
string linetoken1;
string linetoken2;
stack command_list;
-
+
+ double p_nondim;
+ double r_nondim;
+
command_list = aeroSideforceParts -> getCommands();
for (LIST command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
{
CYo = uiuc_ice_filter(CYo_clean,kCYo);
}
+ CYo_save = CYo;
CY += CYo;
break;
}
{
CY_beta = uiuc_ice_filter(CY_beta_clean,kCY_beta);
}
+ CY_beta_save = CY_beta * Beta;
CY += CY_beta * Beta;
break;
}
}
/* CY_p must be mulitplied by b/2U
(see Roskam Control book, Part 1, pg. 147) */
+ CY_p_save = CY_p * P_body * b_2U;
CY += CY_p * P_body * b_2U;
break;
}
}
/* CY_r must be mulitplied by b/2U
(see Roskam Control book, Part 1, pg. 147) */
+ CY_r_save = CY_r * R_body * b_2U;
CY += CY_r * R_body * b_2U;
break;
}
{
CY_da = uiuc_ice_filter(CY_da_clean,kCY_da);
}
+ CY_da_save = CY_da * aileron;
CY += CY_da * aileron;
break;
}
{
CY_dr = uiuc_ice_filter(CY_dr_clean,kCY_dr);
}
+ CY_dr_save = CY_dr * rudder;
CY += CY_dr * rudder;
break;
}
{
CY_dra = uiuc_ice_filter(CY_dra_clean,kCY_dra);
}
+ CY_dra_save = CY_dra * rudder * Alpha;
CY += CY_dra * rudder * Alpha;
break;
}
{
CY_bdot = uiuc_ice_filter(CY_bdot_clean,kCY_bdot);
}
+ CY_bdot_save = CY_bdot * Beta_dot * b_2U;
CY += CY_bdot * Beta_dot * b_2U;
break;
}
CY += CYfbetadrI;
break;
}
- };
+ case CYfabetaf_flag:
+ {
+ if (CYfabetaf_nice == 1)
+ CYfabetafI = uiuc_3Dinterp_quick(CYfabetaf_fArray,
+ CYfabetaf_aArray_nice,
+ CYfabetaf_bArray_nice,
+ CYfabetaf_CYArray,
+ CYfabetaf_na_nice,
+ CYfabetaf_nb_nice,
+ CYfabetaf_nf,
+ flap_pos,
+ Alpha,
+ Beta);
+ else
+ CYfabetafI = uiuc_3Dinterpolation(CYfabetaf_fArray,
+ CYfabetaf_aArray,
+ CYfabetaf_betaArray,
+ CYfabetaf_CYArray,
+ CYfabetaf_nAlphaArray,
+ CYfabetaf_nbeta,
+ CYfabetaf_nf,
+ flap_pos,
+ Alpha,
+ Beta);
+ CY += CYfabetafI;
+ break;
+ }
+ case CYfadaf_flag:
+ {
+ if (CYfadaf_nice == 1)
+ CYfadafI = uiuc_3Dinterp_quick(CYfadaf_fArray,
+ CYfadaf_aArray_nice,
+ CYfadaf_daArray_nice,
+ CYfadaf_CYArray,
+ CYfadaf_na_nice,
+ CYfadaf_nda_nice,
+ CYfadaf_nf,
+ flap_pos,
+ Alpha,
+ aileron);
+ else
+ CYfadafI = uiuc_3Dinterpolation(CYfadaf_fArray,
+ CYfadaf_aArray,
+ CYfadaf_daArray,
+ CYfadaf_CYArray,
+ CYfadaf_nAlphaArray,
+ CYfadaf_nda,
+ CYfadaf_nf,
+ flap_pos,
+ Alpha,
+ aileron);
+ CY += CYfadafI;
+ break;
+ }
+ case CYfadrf_flag:
+ {
+ if (CYfadrf_nice == 1)
+ CYfadrfI = uiuc_3Dinterp_quick(CYfadrf_fArray,
+ CYfadrf_aArray_nice,
+ CYfadrf_drArray_nice,
+ CYfadrf_CYArray,
+ CYfadrf_na_nice,
+ CYfadrf_ndr_nice,
+ CYfadrf_nf,
+ flap_pos,
+ Alpha,
+ rudder);
+ else
+ CYfadrfI = uiuc_3Dinterpolation(CYfadrf_fArray,
+ CYfadrf_aArray,
+ CYfadrf_drArray,
+ CYfadrf_CYArray,
+ CYfadrf_nAlphaArray,
+ CYfadrf_ndr,
+ CYfadrf_nf,
+ flap_pos,
+ Alpha,
+ rudder);
+ CY += CYfadrfI;
+ break;
+ }
+ case CYfapf_flag:
+ {
+ p_nondim = P_body * b_2U;
+ if (CYfapf_nice == 1)
+ CYfapfI = uiuc_3Dinterp_quick(CYfapf_fArray,
+ CYfapf_aArray_nice,
+ CYfapf_pArray_nice,
+ CYfapf_CYArray,
+ CYfapf_na_nice,
+ CYfapf_np_nice,
+ CYfapf_nf,
+ flap_pos,
+ Alpha,
+ p_nondim);
+ else
+ CYfapfI = uiuc_3Dinterpolation(CYfapf_fArray,
+ CYfapf_aArray,
+ CYfapf_pArray,
+ CYfapf_CYArray,
+ CYfapf_nAlphaArray,
+ CYfapf_np,
+ CYfapf_nf,
+ flap_pos,
+ Alpha,
+ p_nondim);
+ CY += CYfapfI;
+ break;
+ }
+ case CYfarf_flag:
+ {
+ r_nondim = R_body * b_2U;
+ if (CYfarf_nice == 1)
+ CYfarfI = uiuc_3Dinterp_quick(CYfarf_fArray,
+ CYfarf_aArray_nice,
+ CYfarf_rArray_nice,
+ CYfarf_CYArray,
+ CYfarf_na_nice,
+ CYfarf_nr_nice,
+ CYfarf_nf,
+ flap_pos,
+ Alpha,
+ r_nondim);
+ else
+ CYfarfI = uiuc_3Dinterpolation(CYfarf_fArray,
+ CYfarf_aArray,
+ CYfarf_rArray,
+ CYfarf_CYArray,
+ CYfarf_nAlphaArray,
+ CYfarf_nr,
+ CYfarf_nf,
+ flap_pos,
+ Alpha,
+ r_nondim);
+ CY += CYfarfI;
+ break;
+ }
+ };
} // end CY map
return;
#include "uiuc_aircraft.h"
#include "uiuc_1Dinterpolation.h"
#include "uiuc_2Dinterpolation.h"
+#include "uiuc_3Dinterpolation.h"
#include "uiuc_ice.h"
#include <FDM/LaRCsim/ls_generic.h>
----------------------------------------------------------------------
HISTORY: 04/15/2000 initial release
+ 10/25/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model at zero flaps
+ (Cnfxxf0)
+ 11/12/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model with flaps
+ (Cnfxxf). Zero flap vairables removed.
+ 02/13/2002 (RD) Added variables so linear aero model
+ values can be recorded
+ 02/18/2002 (RD) Added uiuc_3Dinterp_quick() function
+ for a quicker 3D interpolation. Takes
+ advantage of "nice" data.
----------------------------------------------------------------------
AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
Jeff Scott <jscott@mail.com>
+ Robert Deters <rdeters@uiuc.edu>
----------------------------------------------------------------------
CALLS TO: uiuc_1Dinterpolation
uiuc_2Dinterpolation
uiuc_ice_filter
+ uiuc_3Dinterpolation
+ uiuc_3Dinterp_quick
----------------------------------------------------------------------
string linetoken1;
string linetoken2;
stack command_list;
-
+
+ double p_nondim;
+ double r_nondim;
+
command_list = aeroYawParts -> getCommands();
for (LIST command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
{
Cno = uiuc_ice_filter(Cno_clean,kCno);
}
+ Cno_save = Cno;
Cn += Cno;
break;
}
{
Cn_beta = uiuc_ice_filter(Cn_beta_clean,kCn_beta);
}
+ Cn_beta_save = Cn_beta * Beta;
Cn += Cn_beta * Beta;
break;
}
}
/* Cn_p must be mulitplied by b/2U
(see Roskam Control book, Part 1, pg. 147) */
+ Cn_p_save = Cn_p * P_body * b_2U;
Cn += Cn_p * P_body * b_2U;
break;
}
}
/* Cn_r must be mulitplied by b/2U
(see Roskam Control book, Part 1, pg. 147) */
+ Cn_r_save = Cn_r * R_body * b_2U;
Cn += Cn_r * R_body * b_2U;
break;
}
{
Cn_da = uiuc_ice_filter(Cn_da_clean,kCn_da);
}
+ Cn_da_save = Cn_da * aileron;
Cn += Cn_da * aileron;
break;
}
{
Cn_dr = uiuc_ice_filter(Cn_dr_clean,kCn_dr);
}
+ Cn_dr_save = Cn_dr * rudder;
Cn += Cn_dr * rudder;
break;
}
{
Cn_q = uiuc_ice_filter(Cn_q_clean,kCn_q);
}
+ Cn_q_save = Cn_q * Q_body * cbar_2U;
Cn += Cn_q * Q_body * cbar_2U;
break;
}
{
Cn_b3 = uiuc_ice_filter(Cn_b3_clean,kCn_b3);
}
+ Cn_b3_save = Cn_b3 * Beta * Beta * Beta;
Cn += Cn_b3 * Beta * Beta * Beta;
break;
}
Cn += CnfbetadrI;
break;
}
+ case Cnfabetaf_flag:
+ {
+ if (Cnfabetaf_nice == 1)
+ CnfabetafI = uiuc_3Dinterp_quick(Cnfabetaf_fArray,
+ Cnfabetaf_aArray_nice,
+ Cnfabetaf_bArray_nice,
+ Cnfabetaf_CnArray,
+ Cnfabetaf_na_nice,
+ Cnfabetaf_nb_nice,
+ Cnfabetaf_nf,
+ flap_pos,
+ Alpha,
+ Beta);
+ else
+ CnfabetafI = uiuc_3Dinterpolation(Cnfabetaf_fArray,
+ Cnfabetaf_aArray,
+ Cnfabetaf_betaArray,
+ Cnfabetaf_CnArray,
+ Cnfabetaf_nAlphaArray,
+ Cnfabetaf_nbeta,
+ Cnfabetaf_nf,
+ flap_pos,
+ Alpha,
+ Beta);
+ Cn += CnfabetafI;
+ break;
+ }
+ case Cnfadaf_flag:
+ {
+ if (Cnfadaf_nice == 1)
+ CnfadafI = uiuc_3Dinterp_quick(Cnfadaf_fArray,
+ Cnfadaf_aArray_nice,
+ Cnfadaf_daArray_nice,
+ Cnfadaf_CnArray,
+ Cnfadaf_na_nice,
+ Cnfadaf_nda_nice,
+ Cnfadaf_nf,
+ flap_pos,
+ Alpha,
+ aileron);
+ else
+ CnfadafI = uiuc_3Dinterpolation(Cnfadaf_fArray,
+ Cnfadaf_aArray,
+ Cnfadaf_daArray,
+ Cnfadaf_CnArray,
+ Cnfadaf_nAlphaArray,
+ Cnfadaf_nda,
+ Cnfadaf_nf,
+ flap_pos,
+ Alpha,
+ aileron);
+ Cn += CnfadafI;
+ break;
+ }
+ case Cnfadrf_flag:
+ {
+ if (Cnfadrf_nice == 1)
+ CnfadrfI = uiuc_3Dinterp_quick(Cnfadrf_fArray,
+ Cnfadrf_aArray_nice,
+ Cnfadrf_drArray_nice,
+ Cnfadrf_CnArray,
+ Cnfadrf_na_nice,
+ Cnfadrf_ndr_nice,
+ Cnfadrf_nf,
+ flap_pos,
+ Alpha,
+ rudder);
+ else
+ CnfadrfI = uiuc_3Dinterpolation(Cnfadrf_fArray,
+ Cnfadrf_aArray,
+ Cnfadrf_drArray,
+ Cnfadrf_CnArray,
+ Cnfadrf_nAlphaArray,
+ Cnfadrf_ndr,
+ Cnfadrf_nf,
+ flap_pos,
+ Alpha,
+ rudder);
+ Cn += CnfadrfI;
+ break;
+ }
+ case Cnfapf_flag:
+ {
+ p_nondim = P_body * b_2U;
+ if (Cnfapf_nice == 1)
+ CnfapfI = uiuc_3Dinterp_quick(Cnfapf_fArray,
+ Cnfapf_aArray_nice,
+ Cnfapf_pArray_nice,
+ Cnfapf_CnArray,
+ Cnfapf_na_nice,
+ Cnfapf_np_nice,
+ Cnfapf_nf,
+ flap_pos,
+ Alpha,
+ p_nondim);
+ else
+ CnfapfI = uiuc_3Dinterpolation(Cnfapf_fArray,
+ Cnfapf_aArray,
+ Cnfapf_pArray,
+ Cnfapf_CnArray,
+ Cnfapf_nAlphaArray,
+ Cnfapf_np,
+ Cnfapf_nf,
+ flap_pos,
+ Alpha,
+ p_nondim);
+ Cn += CnfapfI;
+ break;
+ }
+ case Cnfarf_flag:
+ {
+ r_nondim = R_body * b_2U;
+ if (Cnfarf_nice == 1)
+ CnfarfI = uiuc_3Dinterp_quick(Cnfarf_fArray,
+ Cnfarf_aArray_nice,
+ Cnfarf_rArray_nice,
+ Cnfarf_CnArray,
+ Cnfarf_na_nice,
+ Cnfarf_nr_nice,
+ Cnfarf_nf,
+ flap_pos,
+ Alpha,
+ r_nondim);
+ else
+ CnfarfI = uiuc_3Dinterpolation(Cnfarf_fArray,
+ Cnfarf_aArray,
+ Cnfarf_rArray,
+ Cnfarf_CnArray,
+ Cnfarf_nAlphaArray,
+ Cnfarf_nr,
+ Cnfarf_nf,
+ flap_pos,
+ Alpha,
+ r_nondim);
+ Cn += CnfarfI;
+ break;
+ }
};
} // end Cn map
#include "uiuc_aircraft.h"
#include "uiuc_1Dinterpolation.h"
#include "uiuc_2Dinterpolation.h"
+#include "uiuc_3Dinterpolation.h"
#include "uiuc_ice.h"
#include <FDM/LaRCsim/ls_generic.h>
+++ /dev/null
-/**********************************************************************
- *
- * FILENAME: uiuc_initializemaps1.cpp
- *
- * ----------------------------------------------------------------------
- *
- * DESCRIPTION: Initializes the maps for various keywords
- *
- * ----------------------------------------------------------------------
- *
- * STATUS: alpha version
- *
- * ----------------------------------------------------------------------
- *
- * REFERENCES:
- *
- * ----------------------------------------------------------------------
- *
- * HISTORY: 01/26/2000 initial release
- *
- * ----------------------------------------------------------------------
- *
- * AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
- *
- * ----------------------------------------------------------------------
- *
- * VARIABLES:
- *
- * ----------------------------------------------------------------------
- *
- * INPUTS: *
- *
- * ----------------------------------------------------------------------
- *
- * OUTPUTS: *
- *
- * ----------------------------------------------------------------------
- *
- * CALLED BY: uiuc_wrapper.cpp
- *
- * ----------------------------------------------------------------------
- *
- * CALLS TO: *
- *
- * ----------------------------------------------------------------------
- *
- * COPYRIGHT: (C) 2000 by Michael Selig
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA or view http://www.gnu.org/copyleft/gpl.html.
- *
- ***********************************************************************/
-
-
-#include "uiuc_initializemaps.h"
-
-void uiuc_initializemaps1 ()
-{
- Keyword_map["init"] = init_flag;
- Keyword_map["geometry"] = geometry_flag;
- Keyword_map["controlSurface"] = controlSurface_flag;
- Keyword_map["mass"] = mass_flag;
- Keyword_map["engine"] = engine_flag;
- Keyword_map["CD"] = CD_flag;
- Keyword_map["CL"] = CL_flag;
- Keyword_map["Cm"] = Cm_flag;
- Keyword_map["CY"] = CY_flag;
- Keyword_map["Cl"] = Cl_flag;
- Keyword_map["Cn"] = Cn_flag;
- Keyword_map["gear"] = gear_flag;
- Keyword_map["ice"] = ice_flag;
- Keyword_map["record"] = record_flag;
-
-
-
- init_map["Dx_pilot"] = Dx_pilot_flag;
- init_map["Dy_pilot"] = Dy_pilot_flag;
- init_map["Dz_pilot"] = Dz_pilot_flag;
- init_map["V_north"] = V_north_flag;
- init_map["V_east"] = V_east_flag;
- init_map["V_down"] = V_down_flag;
- init_map["P_body"] = P_body_flag;
- init_map["Q_body"] = Q_body_flag;
- init_map["R_body"] = R_body_flag;
- init_map["Phi"] = Phi_flag;
- init_map["Theta"] = Theta_flag;
- init_map["Psi"] = Psi_flag;
-
-
- geometry_map["bw"] = bw_flag;
- geometry_map["cbar"] = cbar_flag;
- geometry_map["Sw"] = Sw_flag;
-
-
- controlSurface_map["de"] = de_flag;
- controlSurface_map["da"] = da_flag;
- controlSurface_map["dr"] = dr_flag;
-
-
- mass_map["Mass"] = Mass_flag;
- mass_map["I_xx"] = I_xx_flag;
- mass_map["I_yy"] = I_yy_flag;
- mass_map["I_zz"] = I_zz_flag;
- mass_map["I_xz"] = I_xz_flag;
-
-
- engine_map["simpleSingle"] = simpleSingle_flag;
- engine_map["c172"] = c172_flag;
-
-
- CD_map["CDo"] = CDo_flag;
- CD_map["CDK"] = CDK_flag;
- CD_map["CD_a"] = CD_a_flag;
- CD_map["CD_de"] = CD_de_flag;
- CD_map["CDfa"] = CDfa_flag;
- CD_map["CDfade"] = CDfade_flag;
-}
-
-// end uiuc_initializemaps.cpp
+++ /dev/null
-/**********************************************************************
- *
- * FILENAME: uiuc_initializemaps.cpp
- *
- * ----------------------------------------------------------------------
- *
- * DESCRIPTION: Initializes the maps for various keywords
- *
- * ----------------------------------------------------------------------
- *
- * STATUS: alpha version
- *
- * ----------------------------------------------------------------------
- *
- * REFERENCES:
- *
- * ----------------------------------------------------------------------
- *
- * HISTORY: 01/26/2000 initial release
- *
- * ----------------------------------------------------------------------
- *
- * AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
- *
- * ----------------------------------------------------------------------
- *
- * VARIABLES:
- *
- * ----------------------------------------------------------------------
- *
- * INPUTS: *
- *
- * ----------------------------------------------------------------------
- *
- * OUTPUTS: *
- *
- * ----------------------------------------------------------------------
- *
- * CALLED BY: uiuc_wrapper.cpp
- *
- * ----------------------------------------------------------------------
- *
- * CALLS TO: *
- *
- * ----------------------------------------------------------------------
- *
- * COPYRIGHT: (C) 2000 by Michael Selig
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA or view http://www.gnu.org/copyleft/gpl.html.
- *
- ***********************************************************************/
-
-
-#include "uiuc_initializemaps.h"
-
-void uiuc_initializemaps2 ()
-{
- CL_map["CLo"] = CLo_flag;
- CL_map["CL_a"] = CL_a_flag;
- CL_map["CL_adot"] = CL_adot_flag;
- CL_map["CL_q"] = CL_q_flag;
- CL_map["CL_de"] = CL_de_flag;
- CL_map["CLfa"] = CLfa_flag;
- CL_map["CLfade"] = CLfade_flag;
-
-
- Cm_map["Cmo"] = Cmo_flag;
- Cm_map["Cm_a"] = Cm_a_flag;
- Cm_map["Cm_adot"] = Cm_adot_flag;
- Cm_map["Cm_q"] = Cm_q_flag;
- Cm_map["Cm_de"] = Cm_de_flag;
- Cm_map["Cmfade"] = Cmfade_flag;
-
-
- CY_map["CYo"] = CYo_flag;
- CY_map["CY_beta"] = CY_beta_flag;
- CY_map["CY_p"] = CY_p_flag;
- CY_map["CY_r"] = CY_r_flag;
- CY_map["CY_da"] = CY_da_flag;
- CY_map["CY_dr"] = CY_dr_flag;
- CY_map["CYfada"] = CYfada_flag;
- CY_map["CYfbetadr"] = CYfbetadr_flag;
-
-
- Cl_map["Clo"] = Clo_flag;
- Cl_map["Cl_beta"] = Cl_beta_flag;
- Cl_map["Cl_p"] = Cl_p_flag;
- Cl_map["Cl_r"] = Cl_r_flag;
- Cl_map["Cl_da"] = Cl_da_flag;
- Cl_map["Cl_dr"] = Cl_dr_flag;
- Cl_map["Clfada"] = Clfada_flag;
- Cl_map["Clfbetadr"] = Clfbetadr_flag;
-
- Cn_map["Cno"] = Cno_flag;
- Cn_map["Cn_beta"] = Cn_beta_flag;
- Cn_map["Cn_p"] = Cn_p_flag;
- Cn_map["Cn_r"] = Cn_r_flag;
- Cn_map["Cn_da"] = Cn_da_flag;
- Cn_map["Cn_dr"] = Cn_dr_flag;
- Cn_map["Cnfada"] = Cnfada_flag;
- Cn_map["Cnfbetadr"] = Cnfbetadr_flag;
-}
-
-// end uiuc_initializemaps.cpp
+++ /dev/null
-/**********************************************************************
- *
- * FILENAME: uiuc_initializemaps.cpp
- *
- * ----------------------------------------------------------------------
- *
- * DESCRIPTION: Initializes the maps for various keywords
- *
- * ----------------------------------------------------------------------
- *
- * STATUS: alpha version
- *
- * ----------------------------------------------------------------------
- *
- * REFERENCES:
- *
- * ----------------------------------------------------------------------
- *
- * HISTORY: 01/26/2000 initial release
- *
- * ----------------------------------------------------------------------
- *
- * AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
- *
- * ----------------------------------------------------------------------
- *
- * VARIABLES:
- *
- * ----------------------------------------------------------------------
- *
- * INPUTS: *
- *
- * ----------------------------------------------------------------------
- *
- * OUTPUTS: *
- *
- * ----------------------------------------------------------------------
- *
- * CALLED BY: uiuc_wrapper.cpp
- *
- * ----------------------------------------------------------------------
- *
- * CALLS TO: *
- *
- * ----------------------------------------------------------------------
- *
- * COPYRIGHT: (C) 2000 by Michael Selig
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA or view http://www.gnu.org/copyleft/gpl.html.
- *
- ***********************************************************************/
-
-
-#include "uiuc_initializemaps.h"
-
-void uiuc_initializemaps3 ()
-{
- ice_map["iceTime"] = iceTime_flag;
- ice_map["transientTime"] = transientTime_flag;
- ice_map["eta_final"] = eta_final_flag;
- ice_map["kCDo"] = kCDo_flag;
- ice_map["kCDK"] = kCDK_flag;
- ice_map["kCD_a"] = kCD_a_flag;
- ice_map["kCD_de"] = kCD_de_flag;
- ice_map["kCLo"] = kCLo_flag;
- ice_map["kCL_a"] = kCL_a_flag;
- ice_map["kCL_adot"] = kCL_adot_flag;
- ice_map["kCL_q"] = kCL_q_flag;
- ice_map["kCL_de"] = kCL_de_flag;
- ice_map["kCmo"] = kCmo_flag;
- ice_map["kCm_a"] = kCm_a_flag;
- ice_map["kCm_adot"] = kCm_adot_flag;
- ice_map["kCm_q"] = kCm_q_flag;
- ice_map["kCm_de"] = kCm_de_flag;
- ice_map["kCYo"] = kCYo_flag;
- ice_map["kCY_beta"] = kCY_beta_flag;
- ice_map["kCY_p"] = kCY_p_flag;
- ice_map["kCY_r"] = kCY_r_flag;
- ice_map["kCY_da"] = kCY_da_flag;
- ice_map["kCY_dr"] = kCY_dr_flag;
- ice_map["kClo"] = kClo_flag;
- ice_map["kCl_beta"] = kCl_beta_flag;
- ice_map["kCl_p"] = kCl_p_flag;
- ice_map["kCl_r"] = kCl_r_flag;
- ice_map["kCl_da"] = kCl_da_flag;
- ice_map["kCl_dr"] = kCl_dr_flag;
- ice_map["kCno"] = kCno_flag;
- ice_map["kCn_beta"] = kCn_beta_flag;
- ice_map["kCn_p"] = kCn_p_flag;
- ice_map["kCn_r"] = kCn_r_flag;
- ice_map["kCn_da"] = kCn_da_flag;
- ice_map["kCn_dr"] = kCn_dr_flag;
-}
-
-// end uiuc_initializemaps.cpp
+++ /dev/null
-/**********************************************************************
- *
- * FILENAME: uiuc_initializemaps.cpp
- *
- * ----------------------------------------------------------------------
- *
- * DESCRIPTION: Initializes the maps for various keywords
- *
- * ----------------------------------------------------------------------
- *
- * STATUS: alpha version
- *
- * ----------------------------------------------------------------------
- *
- * REFERENCES:
- *
- * ----------------------------------------------------------------------
- *
- * HISTORY: 01/26/2000 initial release
- *
- * ----------------------------------------------------------------------
- *
- * AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
- *
- * ----------------------------------------------------------------------
- *
- * VARIABLES:
- *
- * ----------------------------------------------------------------------
- *
- * INPUTS: *
- *
- * ----------------------------------------------------------------------
- *
- * OUTPUTS: *
- *
- * ----------------------------------------------------------------------
- *
- * CALLED BY: uiuc_wrapper.cpp
- *
- * ----------------------------------------------------------------------
- *
- * CALLS TO: *
- *
- * ----------------------------------------------------------------------
- *
- * COPYRIGHT: (C) 2000 by Michael Selig
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA or view http://www.gnu.org/copyleft/gpl.html.
- *
- ***********************************************************************/
-
-
-#include "uiuc_initializemaps.h"
-
-void uiuc_initializemaps4 ()
-{
- record_map["Dx_pilot"] = Dx_pilot_record ;
- record_map["Dy_pilot"] = Dy_pilot_record ;
- record_map["Dz_pilot"] = Dz_pilot_record ;
- record_map["V_north"] = V_north_record ;
- record_map["V_east"] = V_east_record ;
- record_map["V_down"] = V_down_record ;
- record_map["V_rel_wind"] = V_rel_wind_record ;
- record_map["Dynamic_pressure"] = Dynamic_pressure_record ;
- record_map["Alpha"] = Alpha_record ;
- record_map["Alpha_dot"] = Alpha_dot_record ;
- record_map["Beta"] = Beta_record ;
- record_map["Beta_dot"] = Beta_dot_record ;
- record_map["Gamma"] = Gamma_record ;
- record_map["P_body"] = P_body_record ;
- record_map["Q_body"] = Q_body_record ;
- record_map["R_body"] = R_body_record ;
- record_map["Phi"] = Phi_record ;
- record_map["Theta"] = Theta_record ;
- record_map["Psi"] = Psi_record ;
- record_map["Theta_dot"] = Theta_dot_record ;
- record_map["density"] = density_record ;
- record_map["Mass"] = Mass_record ;
- record_map["Simtime"] = Simtime_record ;
- record_map["dt"] = dt_record ;
- record_map["elevator"] = elevator_record ;
- record_map["aileron"] = aileron_record ;
- record_map["rudder"] = rudder_record ;
- record_map["CD"] = CD_record ;
- record_map["CDfaI"] = CDfaI_record ;
- record_map["CDfadeI"] = CDfadeI_record ;
- record_map["CL"] = CL_record ;
- record_map["CLfaI"] = CLfaI_record ;
- record_map["CLfadeI"] = CLfadeI_record ;
- record_map["Cm"] = Cm_record ;
- record_map["CmfadeI"] = CmfadeI_record ;
- record_map["CY"] = CY_record ;
- record_map["CYfadaI"] = CYfadaI_record ;
- record_map["CYfbetadrI"] = CYfbetadrI_record ;
- record_map["Cl"] = Cl_record ;
- record_map["ClfadaI"] = ClfadaI_record ;
- record_map["ClfbetadrI"] = ClfbetadrI_record ;
- record_map["Cn"] = Cn_record ;
- record_map["CnfadaI"] = CnfadaI_record ;
- record_map["CnfbetadrI"] = CnfbetadrI_record ;
- record_map["F_X_wind"] = F_X_wind_record ;
- record_map["F_Y_wind"] = F_Y_wind_record ;
- record_map["F_Z_wind"] = F_Z_wind_record ;
- record_map["F_X_aero"] = F_X_aero_record ;
- record_map["F_Y_aero"] = F_Y_aero_record ;
- record_map["F_Z_aero"] = F_Z_aero_record ;
- record_map["F_X_engine"] = F_X_engine_record ;
- record_map["F_Y_engine"] = F_Y_engine_record ;
- record_map["F_Z_engine"] = F_Z_engine_record ;
- record_map["F_X_gear"] = F_X_gear_record ;
- record_map["F_Y_gear"] = F_Y_gear_record ;
- record_map["F_Z_gear"] = F_Z_gear_record ;
- record_map["F_X"] = F_X_record ;
- record_map["F_Y"] = F_Y_record ;
- record_map["F_Z"] = F_Z_record ;
- record_map["M_l_aero"] = M_l_aero_record ;
- record_map["M_m_aero"] = M_m_aero_record ;
- record_map["M_n_aero"] = M_n_aero_record ;
- record_map["M_l_engine"] = M_l_engine_record ;
- record_map["M_m_engine"] = M_m_engine_record ;
- record_map["M_n_engine"] = M_n_engine_record ;
- record_map["M_l_gear"] = M_l_gear_record ;
- record_map["M_m_gear"] = M_m_gear_record ;
- record_map["M_n_gear"] = M_n_gear_record ;
- record_map["M_l_rp"] = M_l_rp_record ;
- record_map["M_m_rp"] = M_m_rp_record ;
- record_map["M_n_rp"] = M_n_rp_record ;
-}
-
-// end uiuc_initializemaps.cpp
----------------------------------------------------------------------
HISTORY: 04/08/2000 initial release
+ 10/25/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model at zero flaps
+ (CXfxxf0)
+ 11/12/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model with flaps
+ (CXfxxf). Zero flap vairables removed.
----------------------------------------------------------------------
AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
Jeff Scott <jscott@mail.com>
-
+ Robert Deters <rdeters@uiuc.edu>
+
----------------------------------------------------------------------
VARIABLES:
CD_map["CX_dr"] = CX_dr_flag ;
CD_map["CX_df"] = CX_df_flag ;
CD_map["CX_adf"] = CX_adf_flag ;
+ CD_map["CXfabetaf"] = CXfabetaf_flag ;
+ CD_map["CXfadef"] = CXfadef_flag ;
+ CD_map["CXfaqf"] = CXfaqf_flag ;
}
// end uiuc_map_CD.cpp
HISTORY: 04/08/2000 initial release
06/18/2001 Added CZfa
+ 10/25/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model at zero flaps
+ (CZfxxf0)
+ 11/12/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model with flaps
+ (CZfxxf). Zero flap vairables removed.
----------------------------------------------------------------------
CL_map["CZ_df"] = CZ_df_flag ;
CL_map["CZ_adf"] = CZ_adf_flag ;
CL_map["CZfa"] = CZfa_flag ;
+ CL_map["CZfabetaf"] = CZfabetaf_flag ;
+ CL_map["CZfadef"] = CZfadef_flag ;
+ CL_map["CZfaqf"] = CZfaqf_flag ;
}
// end uiuc_map_CL.cpp
----------------------------------------------------------------------
HISTORY: 04/08/2000 initial release
+ 10/25/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model at zero flaps
+ (CYfxxf0)
+ 11/12/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model with flaps
+ (CYfxxf). Zero flap vairables removed.
----------------------------------------------------------------------
AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
Jeff Scott <jscott@mail.com>
+ Robert Deters <rdeters@uiuc.edu>
----------------------------------------------------------------------
CY_map["CY_bdot"] = CY_bdot_flag ;
CY_map["CYfada"] = CYfada_flag ;
CY_map["CYfbetadr"] = CYfbetadr_flag ;
+ CY_map["CYfabetaf"] = CYfabetaf_flag ;
+ CY_map["CYfadaf"] = CYfadaf_flag ;
+ CY_map["CYfadrf"] = CYfadrf_flag ;
+ CY_map["CYfapf"] = CYfapf_flag ;
+ CY_map["CYfarf"] = CYfarf_flag ;
}
// end uiuc_map_CY.cpp
----------------------------------------------------------------------
HISTORY: 04/08/2000 initial release
+ 10/25/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model at zero flaps
+ (Cmfxxf0)
+ 11/12/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model with flaps
+ (Cmfxxf). Zero flap vairables removed.
----------------------------------------------------------------------
AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
Jeff Scott <jscott@mail.com>
-
+ Robert Deters <rdeters@uiuc.edu>
+
----------------------------------------------------------------------
VARIABLES:
Cm_map["Cmfade"] = Cmfade_flag ;
Cm_map["Cmfdf"] = Cmfdf_flag ;
Cm_map["Cmfadf"] = Cmfadf_flag ;
+ Cm_map["Cmfabetaf"] = Cmfabetaf_flag ;
+ Cm_map["Cmfadef"] = Cmfadef_flag ;
+ Cm_map["Cmfaqf"] = Cmfaqf_flag ;
}
// end uiuc_map_Cm.cpp
----------------------------------------------------------------------
HISTORY: 04/08/2000 initial release
+ 10/25/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model at zero flaps
+ (Cnfxxf0)
+ 11/12/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model with flaps
+ (CXfxxf). Zero flap vairables removed.
----------------------------------------------------------------------
AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
Jeff Scott <jscott@mail.com>
-
+ Robert Deters <rdeters@uiuc.edu>
+
----------------------------------------------------------------------
VARIABLES:
Cn_map["Cn_b3"] = Cn_b3_flag ;
Cn_map["Cnfada"] = Cnfada_flag ;
Cn_map["Cnfbetadr"] = Cnfbetadr_flag ;
+ Cn_map["Cnfabetaf"] = Cnfabetaf_flag ;
+ Cn_map["Cnfadaf"] = Cnfadaf_flag ;
+ Cn_map["Cnfadrf"] = Cnfadrf_flag ;
+ Cn_map["Cnfapf"] = Cnfapf_flag ;
+ Cn_map["Cnfarf"] = Cnfarf_flag ;
}
// end uiuc_map_Cn.cpp
----------------------------------------------------------------------
HISTORY: 04/08/2000 initial release
+ 10/25/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model at zero flaps
+ (Clfxxf0)
+ 11/12/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model with flaps
+ (CXfxxf). Zero flap vairables removed.
----------------------------------------------------------------------
AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
Jeff Scott <jscott@mail.com>
-
+ Robert Deters <rdeters@uiuc.edu>
+
----------------------------------------------------------------------
VARIABLES:
Cl_map["Cl_daa"] = Cl_daa_flag ;
Cl_map["Clfada"] = Clfada_flag ;
Cl_map["Clfbetadr"] = Clfbetadr_flag ;
+ Cl_map["Clfabetaf"] = Clfabetaf_flag ;
+ Cl_map["Clfadaf"] = Clfadaf_flag ;
+ Cl_map["Clfadrf"] = Clfadrf_flag ;
+ Cl_map["Clfapf"] = Clfapf_flag ;
+ Cl_map["Clfarf"] = Clfarf_flag ;
}
// end uiuc_map_Croll.cpp
----------------------------------------------------------------------
HISTORY: 04/08/2000 initial release
- 06/18/2001 Added aileron_input, rudder_input,
+ 06/18/2001 (RD) Added aileron_input, rudder_input,
pilot_elev_no, pilot_ail_no, and
pilot_rud_no
+ 11/12/2001 (RD) Added flap_max, flap_rate, and
----------------------------------------------------------------------
controlSurface_map["pilot_elev_no"] = pilot_elev_no_flag ;
controlSurface_map["pilot_ail_no"] = pilot_ail_no_flag ;
controlSurface_map["pilot_rud_no"] = pilot_rud_no_flag ;
+ controlSurface_map["flap_max"] = flap_max_flag ;
+ controlSurface_map["flap_rate"] = flap_rate_flag ;
}
// end uiuc_map_controlSurface.cpp
----------------------------------------------------------------------
HISTORY: 06/03/2000 file creation
+ 11/12/2001 (RD) Added flap_goal and flap_pos
----------------------------------------------------------------------
AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
Jeff Scott <jscott@mail.com>
+ Robert Deters <rdeters@uiuc.edu>
----------------------------------------------------------------------
record_map["Flap_handle"] = Flap_handle_record ;
record_map["flap"] = flap_record ;
record_map["flap_deg" ] = flap_deg_record ;
+ record_map["flap_goal"] = flap_goal_record ;
+ record_map["flap_pos"] = flap_pos_record ;
}
// end uiuc_map_record3.cpp
----------------------------------------------------------------------
HISTORY: 06/03/2000 file creation
+ 10/25/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model at zero flaps
+ (Cxfxxf0I)
+ 11/12/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model with flaps
+ (CxfxxfI). Removed zero flap vairables
+ 02/13/2002 (RD) Added variables so linear aero model
+ values can be recorded
----------------------------------------------------------------------
AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
Jeff Scott <jscott@mail.com>
-
+ Robert Deters <rdeters@uiuc.edu>
+
----------------------------------------------------------------------
VARIABLES:
record_map["CDfdfI"] = CDfdfI_record ;
record_map["CDfadfI"] = CDfadfI_record ;
record_map["CX"] = CX_record ;
+ record_map["CXfabetafI"] = CXfabetafI_record ;
+ record_map["CXfadefI"] = CXfadefI_record ;
+ record_map["CXfaqfI"] = CXfaqfI_record ;
+ record_map["CDo_save"] = CDo_save_record ;
+ record_map["CDK_save"] = CDK_save_record ;
+ record_map["CD_a_save"] = CD_a_save_record ;
+ record_map["CD_adot_save"] = CD_adot_save_record ;
+ record_map["CD_q_save"] = CD_q_save_record ;
+ record_map["CD_ih_save"] = CD_ih_save_record ;
+ record_map["CD_de_save"] = CD_de_save_record ;
+ record_map["CXo_save"] = CXo_save_record ;
+ record_map["CXK_save"] = CXK_save_record ;
+ record_map["CX_a_save"] = CX_a_save_record ;
+ record_map["CX_a2_save"] = CX_a2_save_record ;
+ record_map["CX_a3_save"] = CX_a3_save_record ;
+ record_map["CX_adot_save"] = CX_adot_save_record ;
+ record_map["CX_q_save"] = CX_q_save_record ;
+ record_map["CX_de_save"] = CX_de_save_record ;
+ record_map["CX_dr_save"] = CX_dr_save_record ;
+ record_map["CX_df_save"] = CX_df_save_record ;
+ record_map["CX_adf_save"] = CX_adf_save_record ;
record_map["CL"] = CL_record ;
record_map["CLfaI"] = CLfaI_record ;
record_map["CLfadeI"] = CLfadeI_record ;
record_map["CLfdfI"] = CLfdfI_record ;
record_map["CLfadfI"] = CLfadfI_record ;
record_map["CZ"] = CZ_record ;
+ record_map["CZfaI"] = CZfaI_record ;
+ record_map["CZfabetafI"] = CZfabetafI_record ;
+ record_map["CZfadefI"] = CZfadefI_record ;
+ record_map["CZfaqfI"] = CZfaqfI_record ;
+ record_map["CLo_save"] = CLo_save_record ;
+ record_map["CL_a_save"] = CL_a_save_record ;
+ record_map["CL_adot_save"] = CL_adot_save_record ;
+ record_map["CL_q_save"] = CL_q_save_record ;
+ record_map["CL_ih_save"] = CL_ih_save_record ;
+ record_map["CL_de_save"] = CL_de_save_record ;
+ record_map["CZo_save"] = CZo_save_record ;
+ record_map["CZ_a_save"] = CZ_a_save_record ;
+ record_map["CZ_a2_save"] = CZ_a2_save_record ;
+ record_map["CZ_a3_save"] = CZ_a3_save_record ;
+ record_map["CZ_adot_save"] = CZ_adot_save_record ;
+ record_map["CZ_q_save"] = CZ_q_save_record ;
+ record_map["CZ_de_save"] = CZ_de_save_record ;
+ record_map["CZ_deb2_save"] = CZ_deb2_save_record ;
+ record_map["CZ_df_save"] = CZ_df_save_record ;
+ record_map["CZ_adf_save"] = CZ_adf_save_record ;
record_map["Cm"] = Cm_record ;
record_map["CmfaI"] = CmfaI_record ;
record_map["CmfadeI"] = CmfadeI_record ;
record_map["CmfdfI"] = CmfdfI_record ;
record_map["CmfadfI"] = CmfadfI_record ;
+ record_map["CmfabetafI"] = CmfabetafI_record ;
+ record_map["CmfadefI"] = CmfadefI_record ;
+ record_map["CmfaqfI"] = CmfaqfI_record ;
+ record_map["Cmo_save"] = Cmo_save_record ;
+ record_map["Cm_a_save"] = Cm_a_save_record ;
+ record_map["Cm_a2_save"] = Cm_a2_save_record ;
+ record_map["Cm_adot_save"] = Cm_adot_save_record ;
+ record_map["Cm_q_save"] = Cm_q_save_record ;
+ record_map["Cm_ih_save"] = Cm_ih_save_record ;
+ record_map["Cm_de_save"] = Cm_de_save_record ;
+ record_map["Cm_b2_save"] = Cm_b2_save_record ;
+ record_map["Cm_r_save"] = Cm_r_save_record ;
+ record_map["Cm_df_save"] = Cm_df_save_record ;
record_map["CY"] = CY_record ;
record_map["CYfadaI"] = CYfadaI_record ;
record_map["CYfbetadrI"] = CYfbetadrI_record ;
+ record_map["CYfabetafI"] = CYfabetafI_record ;
+ record_map["CYfadafI"] = CYfadafI_record ;
+ record_map["CYfadrfI"] = CYfadrfI_record ;
+ record_map["CYfapfI"] = CYfapfI_record ;
+ record_map["CYfarfI"] = CYfarfI_record ;
+ record_map["CYo_save"] = CYo_save_record ;
+ record_map["CY_beta_save"] = CY_beta_save_record ;
+ record_map["CY_p_save"] = CY_p_save_record ;
+ record_map["CY_r_save"] = CY_r_save_record ;
+ record_map["CY_da_save"] = CY_da_save_record ;
+ record_map["CY_dr_save"] = CY_dr_save_record ;
+ record_map["CY_dra_save"] = CY_dra_save_record ;
+ record_map["CY_bdot_save"] = CY_bdot_save_record ;
record_map["Cl"] = Cl_record ;
record_map["ClfadaI"] = ClfadaI_record ;
record_map["ClfbetadrI"] = ClfbetadrI_record ;
+ record_map["ClfabetafI"] = ClfabetafI_record ;
+ record_map["ClfadafI"] = ClfadafI_record ;
+ record_map["ClfadrfI"] = ClfadrfI_record ;
+ record_map["ClfapfI"] = ClfapfI_record ;
+ record_map["ClfarfI"] = ClfarfI_record ;
+ record_map["Clo_save"] = Clo_save_record ;
+ record_map["Cl_beta_save"] = Cl_beta_save_record ;
+ record_map["Cl_p_save"] = Cl_p_save_record ;
+ record_map["Cl_r_save"] = Cl_r_save_record ;
+ record_map["Cl_da_save"] = Cl_da_save_record ;
+ record_map["Cl_dr_save"] = Cl_dr_save_record ;
+ record_map["Cl_daa_save"] = Cl_daa_save_record ;
record_map["Cn"] = Cn_record ;
record_map["CnfadaI"] = CnfadaI_record ;
record_map["CnfbetadrI"] = CnfbetadrI_record ;
+ record_map["CnfabetafI"] = CnfabetafI_record ;
+ record_map["CnfadafI"] = CnfadafI_record ;
+ record_map["CnfadrfI"] = CnfadrfI_record ;
+ record_map["CnfapfI"] = CnfapfI_record ;
+ record_map["CnfarfI"] = CnfarfI_record ;
+ record_map["Cno_save"] = Cno_save_record ;
+ record_map["Cn_beta_save"] = Cn_beta_save_record ;
+ record_map["Cn_p_save"] = Cn_p_save_record ;
+ record_map["Cn_r_save"] = Cn_r_save_record ;
+ record_map["Cn_da_save"] = Cn_da_save_record ;
+ record_map["Cn_dr_save"] = Cn_dr_save_record ;
+ record_map["Cn_q_save"] = Cn_q_save_record ;
+ record_map["Cn_b3_save"] = Cn_b3_save_record ;
/******************** Ice Detection ********************/
P_body, Q_body, R_body, Phi, Theta, Psi,
U_body, V_body, and W_body to help in
starting the A/C at an initial condition.
+ 10/25/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model at zero flaps
+ (Cxfxxf0)
+ 11/12/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model with flaps
+ (Cxfxxf). Removed zero flap variables.
+ Added minmaxfind() which is needed for non-
+ linear variables
+ 02/13/2002 (RD) Added variables so linear aero model
+ values can be recorded
+ 02/18/2002 (RD) Added variables necessary to use the
+ uiuc_3Dinterp_quick() function. Takes
+ advantage of data in a "nice" form (data
+ that are in a rectangular matrix).
+ 03/13/2002 (RD) Added aircraft_directory so full path
+ is no longer needed in the aircraft.dat file
----------------------------------------------------------------------
return (stream >> value);
}
+void minmaxfind( bool tarray[30], int &tmin, int &tmax)
+{
+ int n=0;
+ bool first=true;
+
+ while (n<=30)
+ {
+ if (tarray[n])
+ {
+ if (first)
+ {
+ tmin=n;
+ first=false;
+ }
+ tmax=n;
+ }
+ n++;
+ }
+}
void uiuc_menu( string aircraft_name )
{
+ string aircraft_directory;
stack command_list;
double token_value;
int token_value_recordRate;
string linetoken4;
string linetoken5;
string linetoken6;
-
+ string linetoken7;
+ string linetoken8;
+ string linetoken9;
+
+ double datafile_xArray[100][100], datafile_yArray[100];
+ double datafile_zArray[100][100];
+ int datafile_nxArray[100], datafile_ny;
+
+ bool CXfabetaf_first = true;
+ bool CXfadef_first = true;
+ bool CXfaqf_first = true;
+ bool CZfabetaf_first = true;
+ bool CZfadef_first = true;
+ bool CZfaqf_first = true;
+ bool Cmfabetaf_first = true;
+ bool Cmfadef_first = true;
+ bool Cmfaqf_first = true;
+ bool CYfabetaf_first = true;
+ bool CYfadaf_first = true;
+ bool CYfadrf_first = true;
+ bool CYfapf_first = true;
+ bool CYfarf_first = true;
+ bool Clfabetaf_first = true;
+ bool Clfadaf_first = true;
+ bool Clfadrf_first = true;
+ bool Clfapf_first = true;
+ bool Clfarf_first = true;
+ bool Cnfabetaf_first = true;
+ bool Cnfadaf_first = true;
+ bool Cnfadrf_first = true;
+ bool Cnfapf_first = true;
+ bool Cnfarf_first = true;
/* the following default setting should eventually be moved to a default or uiuc_init routine */
exit(-1);
}
+ cerr << "UIUC File " << aircraft_name <<" is being used" << endl;
+ aircraft_directory = aircraft_name;
+ int index_aircraft_dat = aircraft_directory.find("aircraft.dat");
+ aircraft_directory.erase(index_aircraft_dat,12);
+
for (LIST command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
{
cout << *command_line << endl;
linetoken4 = airplane -> getToken (*command_line, 4);
linetoken5 = airplane -> getToken (*command_line, 5);
linetoken6 = airplane -> getToken (*command_line, 6);
+ linetoken7 = airplane -> getToken (*command_line, 7);
+ linetoken8 = airplane -> getToken (*command_line, 8);
+ linetoken9 = airplane -> getToken (*command_line, 9);
istrstream token3(linetoken3.c_str());
istrstream token4(linetoken4.c_str());
istrstream token5(linetoken5.c_str());
istrstream token6(linetoken6.c_str());
+ istrstream token7(linetoken7.c_str());
+ istrstream token8(linetoken8.c_str());
+ istrstream token9(linetoken9.c_str());
switch (Keyword_map[linetoken1])
{
case elevator_input_flag:
{
elevator_input = true;
- elevator_input_file = linetoken3;
+ elevator_input_file = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
convert_y = uiuc_convert(token_value_convert1);
case aileron_input_flag:
{
aileron_input = true;
- aileron_input_file = linetoken3;
+ aileron_input_file = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
convert_y = uiuc_convert(token_value_convert1);
case rudder_input_flag:
{
rudder_input = true;
- rudder_input_file = linetoken3;
+ rudder_input_file = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
convert_y = uiuc_convert(token_value_convert1);
pilot_rud_no_check = true;
break;
}
+ case flap_max_flag:
+ {
+ if (check_float(linetoken3))
+ token3 >> token_value;
+ else
+ uiuc_warnings_errors(1, *command_line);
+
+ flap_max = token_value;
+ break;
+ }
+ case flap_rate_flag:
+ {
+ if (check_float(linetoken3))
+ token3 >> token_value;
+ else
+ uiuc_warnings_errors(1, *command_line);
+
+ flap_rate = token_value;
+ break;
+ }
default:
{
uiuc_warnings_errors(2, *command_line);
case Throttle_pct_input_flag:
{
Throttle_pct_input = true;
- Throttle_pct_input_file = linetoken3;
+ Throttle_pct_input_file = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
convert_y = uiuc_convert(token_value_convert1);
}
case CDfa_flag:
{
- CDfa = linetoken3;
+ CDfa = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
convert_y = uiuc_convert(token_value_convert1);
}
case CDfCL_flag:
{
- CDfCL = linetoken3;
+ CDfCL = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
convert_y = uiuc_convert(token_value_convert1);
}
case CDfade_flag:
{
- CDfade = linetoken3;
+ CDfade = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
token6 >> token_value_convert3;
}
case CDfdf_flag:
{
- CDfdf = linetoken3;
+ CDfdf = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
convert_y = uiuc_convert(token_value_convert1);
}
case CDfadf_flag:
{
- CDfadf = linetoken3;
+ CDfadf = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
token6 >> token_value_convert3;
aeroDragParts -> storeCommands (*command_line);
break;
}
+ case CXfabetaf_flag:
+ {
+ int CXfabetaf_index, i;
+ string CXfabetaf_file;
+ double flap_value;
+ CXfabetaf_file = aircraft_directory + linetoken3;
+ token4 >> CXfabetaf_index;
+ if (CXfabetaf_index < 1 || CXfabetaf_index >= 30)
+ uiuc_warnings_errors(1, *command_line);
+ if (CXfabetaf_index > CXfabetaf_nf)
+ CXfabetaf_nf = CXfabetaf_index;
+ token5 >> flap_value;
+ CXfabetaf_fArray[CXfabetaf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> CXfabetaf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (CXfabetaf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(CXfabetaf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ CXfabetaf_aArray[CXfabetaf_index] = datafile_xArray;
+ CXfabetaf_betaArray[CXfabetaf_index] = datafile_yArray;
+ CXfabetaf_CXArray[CXfabetaf_index] = datafile_zArray;
+ CXfabetaf_nAlphaArray[CXfabetaf_index] = datafile_nxArray;
+ CXfabetaf_nbeta[CXfabetaf_index] = datafile_ny;
+ if (CXfabetaf_first==true)
+ {
+ if (CXfabetaf_nice == 1)
+ {
+ CXfabetaf_na_nice = datafile_nxArray[1];
+ CXfabetaf_nb_nice = datafile_ny;
+ CXfabetaf_bArray_nice = datafile_yArray;
+ for (i=1; i<=CXfabetaf_na_nice; i++)
+ CXfabetaf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroDragParts -> storeCommands (*command_line);
+ CXfabetaf_first=false;
+ }
+ break;
+ }
+ case CXfadef_flag:
+ {
+ int CXfadef_index, i;
+ string CXfadef_file;
+ double flap_value;
+ CXfadef_file = aircraft_directory + linetoken3;
+ token4 >> CXfadef_index;
+ if (CXfadef_index < 0 || CXfadef_index >= 30)
+ uiuc_warnings_errors(1, *command_line);
+ if (CXfadef_index > CXfadef_nf)
+ CXfadef_nf = CXfadef_index;
+ token5 >> flap_value;
+ CXfadef_fArray[CXfadef_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> CXfadef_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (CXfadef_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(CXfadef_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ CXfadef_aArray[CXfadef_index] = datafile_xArray;
+ CXfadef_deArray[CXfadef_index] = datafile_yArray;
+ CXfadef_CXArray[CXfadef_index] = datafile_zArray;
+ CXfadef_nAlphaArray[CXfadef_index] = datafile_nxArray;
+ CXfadef_nde[CXfadef_index] = datafile_ny;
+ if (CXfadef_first==true)
+ {
+ if (CXfadef_nice == 1)
+ {
+ CXfadef_na_nice = datafile_nxArray[1];
+ CXfadef_nde_nice = datafile_ny;
+ CXfadef_deArray_nice = datafile_yArray;
+ for (i=1; i<=CXfadef_na_nice; i++)
+ CXfadef_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroDragParts -> storeCommands (*command_line);
+ CXfadef_first=false;
+ }
+ break;
+ }
+ case CXfaqf_flag:
+ {
+ int CXfaqf_index, i;
+ string CXfaqf_file;
+ double flap_value;
+ CXfaqf_file = aircraft_directory + linetoken3;
+ token4 >> CXfaqf_index;
+ if (CXfaqf_index < 0 || CXfaqf_index >= 30)
+ uiuc_warnings_errors(1, *command_line);
+ if (CXfaqf_index > CXfaqf_nf)
+ CXfaqf_nf = CXfaqf_index;
+ token5 >> flap_value;
+ CXfaqf_fArray[CXfaqf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> CXfaqf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (CXfaqf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(CXfaqf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ CXfaqf_aArray[CXfaqf_index] = datafile_xArray;
+ CXfaqf_qArray[CXfaqf_index] = datafile_yArray;
+ CXfaqf_CXArray[CXfaqf_index] = datafile_zArray;
+ CXfaqf_nAlphaArray[CXfaqf_index] = datafile_nxArray;
+ CXfaqf_nq[CXfaqf_index] = datafile_ny;
+ if (CXfaqf_first==true)
+ {
+ if (CXfaqf_nice == 1)
+ {
+ CXfaqf_na_nice = datafile_nxArray[1];
+ CXfaqf_nq_nice = datafile_ny;
+ CXfaqf_qArray_nice = datafile_yArray;
+ for (i=1; i<=CXfaqf_na_nice; i++)
+ CXfaqf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroDragParts -> storeCommands (*command_line);
+ CXfaqf_first=false;
+ }
+ break;
+ }
default:
{
uiuc_warnings_errors(2, *command_line);
}
case CLfa_flag:
{
- CLfa = linetoken3;
+ CLfa = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
convert_y = uiuc_convert(token_value_convert1);
}
case CLfade_flag:
{
- CLfade = linetoken3;
+ CLfade = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
token6 >> token_value_convert3;
}
case CLfdf_flag:
{
- CLfdf = linetoken3;
+ CLfdf = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
convert_y = uiuc_convert(token_value_convert1);
}
case CLfadf_flag:
{
- CLfadf = linetoken3;
+ CLfadf = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
token6 >> token_value_convert3;
}
case CZfa_flag:
{
- CZfa = linetoken3;
+ CZfa = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
convert_y = uiuc_convert(token_value_convert1);
aeroLiftParts -> storeCommands (*command_line);
break;
}
+ case CZfabetaf_flag:
+ {
+ int CZfabetaf_index, i;
+ string CZfabetaf_file;
+ double flap_value;
+ CZfabetaf_file = aircraft_directory + linetoken3;
+ token4 >> CZfabetaf_index;
+ if (CZfabetaf_index < 0 || CZfabetaf_index >= 30)
+ uiuc_warnings_errors(1, *command_line);
+ if (CZfabetaf_index > CZfabetaf_nf)
+ CZfabetaf_nf = CZfabetaf_index;
+ token5 >> flap_value;
+ CZfabetaf_fArray[CZfabetaf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> CZfabetaf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (CZfabetaf_file) and
+ conversion factors; function returns array of
+ beta (betaArray) and corresponding
+ alpha (aArray) and CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and beta array (nbeta) */
+ uiuc_2DdataFileReader(CZfabetaf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ CZfabetaf_aArray[CZfabetaf_index] = datafile_xArray;
+ CZfabetaf_betaArray[CZfabetaf_index] = datafile_yArray;
+ CZfabetaf_CZArray[CZfabetaf_index] = datafile_zArray;
+ CZfabetaf_nAlphaArray[CZfabetaf_index] = datafile_nxArray;
+ CZfabetaf_nbeta[CZfabetaf_index] = datafile_ny;
+ if (CZfabetaf_first==true)
+ {
+ if (CZfabetaf_nice == 1)
+ {
+ CZfabetaf_na_nice = datafile_nxArray[1];
+ CZfabetaf_nb_nice = datafile_ny;
+ CZfabetaf_bArray_nice = datafile_yArray;
+ for (i=1; i<=CZfabetaf_na_nice; i++)
+ CZfabetaf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroLiftParts -> storeCommands (*command_line);
+ CZfabetaf_first=false;
+ }
+ break;
+ }
+ case CZfadef_flag:
+ {
+ int CZfadef_index, i;
+ string CZfadef_file;
+ double flap_value;
+ CZfadef_file = aircraft_directory + linetoken3;
+ token4 >> CZfadef_index;
+ if (CZfadef_index < 0 || CZfadef_index >= 30)
+ uiuc_warnings_errors(1, *command_line);
+ if (CZfadef_index > CZfadef_nf)
+ CZfadef_nf = CZfadef_index;
+ token5 >> flap_value;
+ CZfadef_fArray[CZfadef_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> CZfadef_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (CZfadef_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(CZfadef_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ CZfadef_aArray[CZfadef_index] = datafile_xArray;
+ CZfadef_deArray[CZfadef_index] = datafile_yArray;
+ CZfadef_CZArray[CZfadef_index] = datafile_zArray;
+ CZfadef_nAlphaArray[CZfadef_index] = datafile_nxArray;
+ CZfadef_nde[CZfadef_index] = datafile_ny;
+ if (CZfadef_first==true)
+ {
+ if (CZfadef_nice == 1)
+ {
+ CZfadef_na_nice = datafile_nxArray[1];
+ CZfadef_nde_nice = datafile_ny;
+ CZfadef_deArray_nice = datafile_yArray;
+ for (i=1; i<=CZfadef_na_nice; i++)
+ CZfadef_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroLiftParts -> storeCommands (*command_line);
+ CZfadef_first=false;
+ }
+ break;
+ }
+ case CZfaqf_flag:
+ {
+ int CZfaqf_index, i;
+ string CZfaqf_file;
+ double flap_value;
+ CZfaqf_file = aircraft_directory + linetoken3;
+ token4 >> CZfaqf_index;
+ if (CZfaqf_index < 0 || CZfaqf_index >= 30)
+ uiuc_warnings_errors(1, *command_line);
+ if (CZfaqf_index > CZfaqf_nf)
+ CZfaqf_nf = CZfaqf_index;
+ token5 >> flap_value;
+ CZfaqf_fArray[CZfaqf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> CZfaqf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (CZfaqf_file) and
+ conversion factors; function returns array of
+ pitch rate (qArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and pitch rate array (nq) */
+ uiuc_2DdataFileReader(CZfaqf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ CZfaqf_aArray[CZfaqf_index] = datafile_xArray;
+ CZfaqf_qArray[CZfaqf_index] = datafile_yArray;
+ CZfaqf_CZArray[CZfaqf_index] = datafile_zArray;
+ CZfaqf_nAlphaArray[CZfaqf_index] = datafile_nxArray;
+ CZfaqf_nq[CZfaqf_index] = datafile_ny;
+ if (CZfaqf_first==true)
+ {
+ if (CZfaqf_nice == 1)
+ {
+ CZfaqf_na_nice = datafile_nxArray[1];
+ CZfaqf_nq_nice = datafile_ny;
+ CZfaqf_qArray_nice = datafile_yArray;
+ for (i=1; i<=CZfaqf_na_nice; i++)
+ CZfaqf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroLiftParts -> storeCommands (*command_line);
+ CZfaqf_first=false;
+ }
+ break;
+ }
default:
{
uiuc_warnings_errors(2, *command_line);
}
case Cmfa_flag:
{
- Cmfa = linetoken3;
+ Cmfa = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
convert_y = uiuc_convert(token_value_convert1);
}
case Cmfade_flag:
{
- Cmfade = linetoken3;
+ Cmfade = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
token6 >> token_value_convert3;
}
case Cmfdf_flag:
{
- Cmfdf = linetoken3;
+ Cmfdf = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
convert_y = uiuc_convert(token_value_convert1);
}
case Cmfadf_flag:
{
- Cmfadf = linetoken3;
+ Cmfadf = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
token6 >> token_value_convert3;
aeroPitchParts -> storeCommands (*command_line);
break;
}
+ case Cmfabetaf_flag:
+ {
+ int Cmfabetaf_index, i;
+ string Cmfabetaf_file;
+ double flap_value;
+ Cmfabetaf_file = aircraft_directory + linetoken3;
+ token4 >> Cmfabetaf_index;
+ if (Cmfabetaf_index < 0 || Cmfabetaf_index >= 30)
+ uiuc_warnings_errors(1, *command_line);
+ if (Cmfabetaf_index > Cmfabetaf_nf)
+ Cmfabetaf_nf = Cmfabetaf_index;
+ token5 >> flap_value;
+ Cmfabetaf_fArray[Cmfabetaf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> Cmfabetaf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (Cmfabetaf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(Cmfabetaf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ Cmfabetaf_aArray[Cmfabetaf_index] = datafile_xArray;
+ Cmfabetaf_betaArray[Cmfabetaf_index] = datafile_yArray;
+ Cmfabetaf_CmArray[Cmfabetaf_index] = datafile_zArray;
+ Cmfabetaf_nAlphaArray[Cmfabetaf_index] = datafile_nxArray;
+ Cmfabetaf_nbeta[Cmfabetaf_index] = datafile_ny;
+ if (Cmfabetaf_first==true)
+ {
+ if (Cmfabetaf_nice == 1)
+ {
+ Cmfabetaf_na_nice = datafile_nxArray[1];
+ Cmfabetaf_nb_nice = datafile_ny;
+ Cmfabetaf_bArray_nice = datafile_yArray;
+ for (i=1; i<=Cmfabetaf_na_nice; i++)
+ Cmfabetaf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroPitchParts -> storeCommands (*command_line);
+ Cmfabetaf_first=false;
+ }
+ break;
+ }
+ case Cmfadef_flag:
+ {
+ int Cmfadef_index, i;
+ string Cmfadef_file;
+ double flap_value;
+ Cmfadef_file = aircraft_directory + linetoken3;
+ token4 >> Cmfadef_index;
+ if (Cmfadef_index < 0 || Cmfadef_index >= 30)
+ uiuc_warnings_errors(1, *command_line);
+ if (Cmfadef_index > Cmfadef_nf)
+ Cmfadef_nf = Cmfadef_index;
+ token5 >> flap_value;
+ Cmfadef_fArray[Cmfadef_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> Cmfadef_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (Cmfadef_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(Cmfadef_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ Cmfadef_aArray[Cmfadef_index] = datafile_xArray;
+ Cmfadef_deArray[Cmfadef_index] = datafile_yArray;
+ Cmfadef_CmArray[Cmfadef_index] = datafile_zArray;
+ Cmfadef_nAlphaArray[Cmfadef_index] = datafile_nxArray;
+ Cmfadef_nde[Cmfadef_index] = datafile_ny;
+ if (Cmfadef_first==true)
+ {
+ if (Cmfadef_nice == 1)
+ {
+ Cmfadef_na_nice = datafile_nxArray[1];
+ Cmfadef_nde_nice = datafile_ny;
+ Cmfadef_deArray_nice = datafile_yArray;
+ for (i=1; i<=Cmfadef_na_nice; i++)
+ Cmfadef_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroPitchParts -> storeCommands (*command_line);
+ Cmfadef_first=false;
+ }
+ break;
+ }
+ case Cmfaqf_flag:
+ {
+ int Cmfaqf_index, i;
+ string Cmfaqf_file;
+ double flap_value;
+ Cmfaqf_file = aircraft_directory + linetoken3;
+ token4 >> Cmfaqf_index;
+ if (Cmfaqf_index < 0 || Cmfaqf_index >= 30)
+ uiuc_warnings_errors(1, *command_line);
+ if (Cmfaqf_index > Cmfaqf_nf)
+ Cmfaqf_nf = Cmfaqf_index;
+ token5 >> flap_value;
+ Cmfaqf_fArray[Cmfaqf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> Cmfaqf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (Cmfaqf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(Cmfaqf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ Cmfaqf_aArray[Cmfaqf_index] = datafile_xArray;
+ Cmfaqf_qArray[Cmfaqf_index] = datafile_yArray;
+ Cmfaqf_CmArray[Cmfaqf_index] = datafile_zArray;
+ Cmfaqf_nAlphaArray[Cmfaqf_index] = datafile_nxArray;
+ Cmfaqf_nq[Cmfaqf_index] = datafile_ny;
+ if (Cmfaqf_first==true)
+ {
+ if (Cmfaqf_nice == 1)
+ {
+ Cmfaqf_na_nice = datafile_nxArray[1];
+ Cmfaqf_nq_nice = datafile_ny;
+ Cmfaqf_qArray_nice = datafile_yArray;
+ for (i=1; i<=Cmfaqf_na_nice; i++)
+ Cmfaqf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroPitchParts -> storeCommands (*command_line);
+ Cmfaqf_first=false;
+ }
+ break;
+ }
default:
{
uiuc_warnings_errors(2, *command_line);
}
case CYfada_flag:
{
- CYfada = linetoken3;
+ CYfada = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
token6 >> token_value_convert3;
}
case CYfbetadr_flag:
{
- CYfbetadr = linetoken3;
+ CYfbetadr = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
token6 >> token_value_convert3;
aeroSideforceParts -> storeCommands (*command_line);
break;
}
+ case CYfabetaf_flag:
+ {
+ int CYfabetaf_index, i;
+ string CYfabetaf_file;
+ double flap_value;
+ CYfabetaf_file = aircraft_directory + linetoken3;
+ token4 >> CYfabetaf_index;
+ if (CYfabetaf_index < 0 || CYfabetaf_index >= 30)
+ uiuc_warnings_errors(1, *command_line);
+ if (CYfabetaf_index > CYfabetaf_nf)
+ CYfabetaf_nf = CYfabetaf_index;
+ token5 >> flap_value;
+ CYfabetaf_fArray[CYfabetaf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> CYfabetaf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (CYfabetaf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(CYfabetaf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ CYfabetaf_aArray[CYfabetaf_index] = datafile_xArray;
+ CYfabetaf_betaArray[CYfabetaf_index] = datafile_yArray;
+ CYfabetaf_CYArray[CYfabetaf_index] = datafile_zArray;
+ CYfabetaf_nAlphaArray[CYfabetaf_index] = datafile_nxArray;
+ CYfabetaf_nbeta[CYfabetaf_index] = datafile_ny;
+ if (CYfabetaf_first==true)
+ {
+ if (CYfabetaf_nice == 1)
+ {
+ CYfabetaf_na_nice = datafile_nxArray[1];
+ CYfabetaf_nb_nice = datafile_ny;
+ CYfabetaf_bArray_nice = datafile_yArray;
+ for (i=1; i<=CYfabetaf_na_nice; i++)
+ CYfabetaf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroSideforceParts -> storeCommands (*command_line);
+ CYfabetaf_first=false;
+ }
+ break;
+ }
+ case CYfadaf_flag:
+ {
+ int CYfadaf_index, i;
+ string CYfadaf_file;
+ double flap_value;
+ CYfadaf_file = aircraft_directory + linetoken3;
+ token4 >> CYfadaf_index;
+ if (CYfadaf_index < 0 || CYfadaf_index >= 30)
+ uiuc_warnings_errors(1, *command_line);
+ if (CYfadaf_index > CYfadaf_nf)
+ CYfadaf_nf = CYfadaf_index;
+ token5 >> flap_value;
+ CYfadaf_fArray[CYfadaf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> CYfadaf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (CYfadaf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(CYfadaf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ CYfadaf_aArray[CYfadaf_index] = datafile_xArray;
+ CYfadaf_daArray[CYfadaf_index] = datafile_yArray;
+ CYfadaf_CYArray[CYfadaf_index] = datafile_zArray;
+ CYfadaf_nAlphaArray[CYfadaf_index] = datafile_nxArray;
+ CYfadaf_nda[CYfadaf_index] = datafile_ny;
+ if (CYfadaf_first==true)
+ {
+ if (CYfadaf_nice == 1)
+ {
+ CYfadaf_na_nice = datafile_nxArray[1];
+ CYfadaf_nda_nice = datafile_ny;
+ CYfadaf_daArray_nice = datafile_yArray;
+ for (i=1; i<=CYfadaf_na_nice; i++)
+ CYfadaf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroSideforceParts -> storeCommands (*command_line);
+ CYfadaf_first=false;
+ }
+ break;
+ }
+ case CYfadrf_flag:
+ {
+ int CYfadrf_index, i;
+ string CYfadrf_file;
+ double flap_value;
+ CYfadrf_file = aircraft_directory + linetoken3;
+ token4 >> CYfadrf_index;
+ if (CYfadrf_index < 0 || CYfadrf_index >= 30)
+ uiuc_warnings_errors(1, *command_line);
+ if (CYfadrf_index > CYfadrf_nf)
+ CYfadrf_nf = CYfadrf_index;
+ token5 >> flap_value;
+ CYfadrf_fArray[CYfadrf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> CYfadrf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (CYfadrf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(CYfadrf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ CYfadrf_aArray[CYfadrf_index] = datafile_xArray;
+ CYfadrf_drArray[CYfadrf_index] = datafile_yArray;
+ CYfadrf_CYArray[CYfadrf_index] = datafile_zArray;
+ CYfadrf_nAlphaArray[CYfadrf_index] = datafile_nxArray;
+ CYfadrf_ndr[CYfadrf_index] = datafile_ny;
+ if (CYfadrf_first==true)
+ {
+ if (CYfadrf_nice == 1)
+ {
+ CYfadrf_na_nice = datafile_nxArray[1];
+ CYfadrf_ndr_nice = datafile_ny;
+ CYfadrf_drArray_nice = datafile_yArray;
+ for (i=1; i<=CYfadrf_na_nice; i++)
+ CYfadrf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroSideforceParts -> storeCommands (*command_line);
+ CYfadrf_first=false;
+ }
+ break;
+ }
+ case CYfapf_flag:
+ {
+ int CYfapf_index, i;
+ string CYfapf_file;
+ double flap_value;
+ CYfapf_file = aircraft_directory + linetoken3;
+ token4 >> CYfapf_index;
+ if (CYfapf_index < 0 || CYfapf_index >= 30)
+ uiuc_warnings_errors(1, *command_line);
+ if (CYfapf_index > CYfapf_nf)
+ CYfapf_nf = CYfapf_index;
+ token5 >> flap_value;
+ CYfapf_fArray[CYfapf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> CYfapf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (CYfapf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(CYfapf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ CYfapf_aArray[CYfapf_index] = datafile_xArray;
+ CYfapf_pArray[CYfapf_index] = datafile_yArray;
+ CYfapf_CYArray[CYfapf_index] = datafile_zArray;
+ CYfapf_nAlphaArray[CYfapf_index] = datafile_nxArray;
+ CYfapf_np[CYfapf_index] = datafile_ny;
+ if (CYfapf_first==true)
+ {
+ if (CYfapf_nice == 1)
+ {
+ CYfapf_na_nice = datafile_nxArray[1];
+ CYfapf_np_nice = datafile_ny;
+ CYfapf_pArray_nice = datafile_yArray;
+ for (i=1; i<=CYfapf_na_nice; i++)
+ CYfapf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroSideforceParts -> storeCommands (*command_line);
+ CYfapf_first=false;
+ }
+ break;
+ }
+ case CYfarf_flag:
+ {
+ int CYfarf_index, i;
+ string CYfarf_file;
+ double flap_value;
+ CYfarf_file = aircraft_directory + linetoken3;
+ token4 >> CYfarf_index;
+ if (CYfarf_index < 0 || CYfarf_index >= 30)
+ uiuc_warnings_errors(1, *command_line);
+ if (CYfarf_index > CYfarf_nf)
+ CYfarf_nf = CYfarf_index;
+ token5 >> flap_value;
+ CYfarf_fArray[CYfarf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> CYfarf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (CYfarf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(CYfarf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ CYfarf_aArray[CYfarf_index] = datafile_xArray;
+ CYfarf_rArray[CYfarf_index] = datafile_yArray;
+ CYfarf_CYArray[CYfarf_index] = datafile_zArray;
+ CYfarf_nAlphaArray[CYfarf_index] = datafile_nxArray;
+ CYfarf_nr[CYfarf_index] = datafile_ny;
+ if (CYfarf_first==true)
+ {
+ if (CYfarf_nice == 1)
+ {
+ CYfarf_na_nice = datafile_nxArray[1];
+ CYfarf_nr_nice = datafile_ny;
+ CYfarf_rArray_nice = datafile_yArray;
+ for (i=1; i<=CYfarf_na_nice; i++)
+ CYfarf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroSideforceParts -> storeCommands (*command_line);
+ CYfarf_first=false;
+ }
+ break;
+ }
default:
{
uiuc_warnings_errors(2, *command_line);
}
case Clfada_flag:
{
- Clfada = linetoken3;
+ Clfada = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
token6 >> token_value_convert3;
}
case Clfbetadr_flag:
{
- Clfbetadr = linetoken3;
+ Clfbetadr = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
token6 >> token_value_convert3;
aeroRollParts -> storeCommands (*command_line);
break;
}
+ case Clfabetaf_flag:
+ {
+ int Clfabetaf_index, i;
+ string Clfabetaf_file;
+ double flap_value;
+ Clfabetaf_file = aircraft_directory + linetoken3;
+ token4 >> Clfabetaf_index;
+ if (Clfabetaf_index < 0 || Clfabetaf_index >= 100)
+ uiuc_warnings_errors(1, *command_line);
+ if (Clfabetaf_index > Clfabetaf_nf)
+ Clfabetaf_nf = Clfabetaf_index;
+ token5 >> flap_value;
+ Clfabetaf_fArray[Clfabetaf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> Clfabetaf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (Clfabetaf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(Clfabetaf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ Clfabetaf_aArray[Clfabetaf_index] = datafile_xArray;
+ Clfabetaf_betaArray[Clfabetaf_index] = datafile_yArray;
+ Clfabetaf_ClArray[Clfabetaf_index] = datafile_zArray;
+ Clfabetaf_nAlphaArray[Clfabetaf_index] = datafile_nxArray;
+ Clfabetaf_nbeta[Clfabetaf_index] = datafile_ny;
+ if (Clfabetaf_first==true)
+ {
+ if (Clfabetaf_nice == 1)
+ {
+ Clfabetaf_na_nice = datafile_nxArray[1];
+ Clfabetaf_nb_nice = datafile_ny;
+ Clfabetaf_bArray_nice = datafile_yArray;
+ for (i=1; i<=Clfabetaf_na_nice; i++)
+ Clfabetaf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroRollParts -> storeCommands (*command_line);
+ Clfabetaf_first=false;
+ }
+ break;
+ }
+ case Clfadaf_flag:
+ {
+ int Clfadaf_index, i;
+ string Clfadaf_file;
+ double flap_value;
+ Clfadaf_file = aircraft_directory + linetoken3;
+ token4 >> Clfadaf_index;
+ if (Clfadaf_index < 0 || Clfadaf_index >= 100)
+ uiuc_warnings_errors(1, *command_line);
+ if (Clfadaf_index > Clfadaf_nf)
+ Clfadaf_nf = Clfadaf_index;
+ token5 >> flap_value;
+ Clfadaf_fArray[Clfadaf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> Clfadaf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (Clfadaf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(Clfadaf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ Clfadaf_aArray[Clfadaf_index] = datafile_xArray;
+ Clfadaf_daArray[Clfadaf_index] = datafile_yArray;
+ Clfadaf_ClArray[Clfadaf_index] = datafile_zArray;
+ Clfadaf_nAlphaArray[Clfadaf_index] = datafile_nxArray;
+ Clfadaf_nda[Clfadaf_index] = datafile_ny;
+ if (Clfadaf_first==true)
+ {
+ if (Clfadaf_nice == 1)
+ {
+ Clfadaf_na_nice = datafile_nxArray[1];
+ Clfadaf_nda_nice = datafile_ny;
+ Clfadaf_daArray_nice = datafile_yArray;
+ for (i=1; i<=Clfadaf_na_nice; i++)
+ Clfadaf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroRollParts -> storeCommands (*command_line);
+ Clfadaf_first=false;
+ }
+ break;
+ }
+ case Clfadrf_flag:
+ {
+ int Clfadrf_index, i;
+ string Clfadrf_file;
+ double flap_value;
+ Clfadrf_file = aircraft_directory + linetoken3;
+ token4 >> Clfadrf_index;
+ if (Clfadrf_index < 0 || Clfadrf_index >= 100)
+ uiuc_warnings_errors(1, *command_line);
+ if (Clfadrf_index > Clfadrf_nf)
+ Clfadrf_nf = Clfadrf_index;
+ token5 >> flap_value;
+ Clfadrf_fArray[Clfadrf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> Clfadrf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (Clfadrf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(Clfadrf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ Clfadrf_aArray[Clfadrf_index] = datafile_xArray;
+ Clfadrf_drArray[Clfadrf_index] = datafile_yArray;
+ Clfadrf_ClArray[Clfadrf_index] = datafile_zArray;
+ Clfadrf_nAlphaArray[Clfadrf_index] = datafile_nxArray;
+ Clfadrf_ndr[Clfadrf_index] = datafile_ny;
+ if (Clfadrf_first==true)
+ {
+ if (Clfadrf_nice == 1)
+ {
+ Clfadrf_na_nice = datafile_nxArray[1];
+ Clfadrf_ndr_nice = datafile_ny;
+ Clfadrf_drArray_nice = datafile_yArray;
+ for (i=1; i<=Clfadrf_na_nice; i++)
+ Clfadrf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroRollParts -> storeCommands (*command_line);
+ Clfadrf_first=false;
+ }
+ break;
+ }
+ case Clfapf_flag:
+ {
+ int Clfapf_index, i;
+ string Clfapf_file;
+ double flap_value;
+ Clfapf_file = aircraft_directory + linetoken3;
+ token4 >> Clfapf_index;
+ if (Clfapf_index < 0 || Clfapf_index >= 100)
+ uiuc_warnings_errors(1, *command_line);
+ if (Clfapf_index > Clfapf_nf)
+ Clfapf_nf = Clfapf_index;
+ token5 >> flap_value;
+ Clfapf_fArray[Clfapf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> Clfapf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (Clfapf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(Clfapf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ Clfapf_aArray[Clfapf_index] = datafile_xArray;
+ Clfapf_pArray[Clfapf_index] = datafile_yArray;
+ Clfapf_ClArray[Clfapf_index] = datafile_zArray;
+ Clfapf_nAlphaArray[Clfapf_index] = datafile_nxArray;
+ Clfapf_np[Clfapf_index] = datafile_ny;
+ if (Clfapf_first==true)
+ {
+ if (Clfapf_nice == 1)
+ {
+ Clfapf_na_nice = datafile_nxArray[1];
+ Clfapf_np_nice = datafile_ny;
+ Clfapf_pArray_nice = datafile_yArray;
+ for (i=1; i<=Clfapf_na_nice; i++)
+ Clfapf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroRollParts -> storeCommands (*command_line);
+ Clfapf_first=false;
+ }
+ break;
+ }
+ case Clfarf_flag:
+ {
+ int Clfarf_index, i;
+ string Clfarf_file;
+ double flap_value;
+ Clfarf_file = aircraft_directory + linetoken3;
+ token4 >> Clfarf_index;
+ if (Clfarf_index < 0 || Clfarf_index >= 100)
+ uiuc_warnings_errors(1, *command_line);
+ if (Clfarf_index > Clfarf_nf)
+ Clfarf_nf = Clfarf_index;
+ token5 >> flap_value;
+ Clfarf_fArray[Clfarf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> Clfarf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (Clfarf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(Clfarf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ Clfarf_aArray[Clfarf_index] = datafile_xArray;
+ Clfarf_rArray[Clfarf_index] = datafile_yArray;
+ Clfarf_ClArray[Clfarf_index] = datafile_zArray;
+ Clfarf_nAlphaArray[Clfarf_index] = datafile_nxArray;
+ Clfarf_nr[Clfarf_index] = datafile_ny;
+ if (Clfarf_first==true)
+ {
+ if (Clfarf_nice == 1)
+ {
+ Clfarf_na_nice = datafile_nxArray[1];
+ Clfarf_nr_nice = datafile_ny;
+ Clfarf_rArray_nice = datafile_yArray;
+ for (i=1; i<=Clfarf_na_nice; i++)
+ Clfarf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroRollParts -> storeCommands (*command_line);
+ Clfarf_first=false;
+ }
+ break;
+ }
default:
{
uiuc_warnings_errors(2, *command_line);
- break;
+ break;
}
};
break;
}
case Cnfada_flag:
{
- Cnfada = linetoken3;
+ Cnfada = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
token6 >> token_value_convert3;
}
case Cnfbetadr_flag:
{
- Cnfbetadr = linetoken3;
+ Cnfbetadr = aircraft_directory + linetoken3;
token4 >> token_value_convert1;
token5 >> token_value_convert2;
token6 >> token_value_convert3;
aeroYawParts -> storeCommands (*command_line);
break;
}
+ case Cnfabetaf_flag:
+ {
+ int Cnfabetaf_index, i;
+ string Cnfabetaf_file;
+ double flap_value;
+ Cnfabetaf_file = aircraft_directory + linetoken3;
+ token4 >> Cnfabetaf_index;
+ if (Cnfabetaf_index < 0 || Cnfabetaf_index >= 100)
+ uiuc_warnings_errors(1, *command_line);
+ if (Cnfabetaf_index > Cnfabetaf_nf)
+ Cnfabetaf_nf = Cnfabetaf_index;
+ token5 >> flap_value;
+ Cnfabetaf_fArray[Cnfabetaf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> Cnfabetaf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (Cnfabetaf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(Cnfabetaf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ Cnfabetaf_aArray[Cnfabetaf_index] = datafile_xArray;
+ Cnfabetaf_betaArray[Cnfabetaf_index] = datafile_yArray;
+ Cnfabetaf_CnArray[Cnfabetaf_index] = datafile_zArray;
+ Cnfabetaf_nAlphaArray[Cnfabetaf_index] = datafile_nxArray;
+ Cnfabetaf_nbeta[Cnfabetaf_index] = datafile_ny;
+ if (Cnfabetaf_first==true)
+ {
+ if (Cnfabetaf_nice == 1)
+ {
+ Cnfabetaf_na_nice = datafile_nxArray[1];
+ Cnfabetaf_nb_nice = datafile_ny;
+ Cnfabetaf_bArray_nice = datafile_yArray;
+ for (i=1; i<=Cnfabetaf_na_nice; i++)
+ Cnfabetaf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroYawParts -> storeCommands (*command_line);
+ Cnfabetaf_first=false;
+ }
+ break;
+ }
+ case Cnfadaf_flag:
+ {
+ int Cnfadaf_index, i;
+ string Cnfadaf_file;
+ double flap_value;
+ Cnfadaf_file = aircraft_directory + linetoken3;
+ token4 >> Cnfadaf_index;
+ if (Cnfadaf_index < 0 || Cnfadaf_index >= 100)
+ uiuc_warnings_errors(1, *command_line);
+ if (Cnfadaf_index > Cnfadaf_nf)
+ Cnfadaf_nf = Cnfadaf_index;
+ token5 >> flap_value;
+ Cnfadaf_fArray[Cnfadaf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> Cnfadaf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (Cnfadaf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(Cnfadaf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ Cnfadaf_aArray[Cnfadaf_index] = datafile_xArray;
+ Cnfadaf_daArray[Cnfadaf_index] = datafile_yArray;
+ Cnfadaf_CnArray[Cnfadaf_index] = datafile_zArray;
+ Cnfadaf_nAlphaArray[Cnfadaf_index] = datafile_nxArray;
+ Cnfadaf_nda[Cnfadaf_index] = datafile_ny;
+ if (Cnfadaf_first==true)
+ {
+ if (Cnfadaf_nice == 1)
+ {
+ Cnfadaf_na_nice = datafile_nxArray[1];
+ Cnfadaf_nda_nice = datafile_ny;
+ Cnfadaf_daArray_nice = datafile_yArray;
+ for (i=1; i<=Cnfadaf_na_nice; i++)
+ Cnfadaf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroYawParts -> storeCommands (*command_line);
+ Cnfadaf_first=false;
+ }
+ break;
+ }
+ case Cnfadrf_flag:
+ {
+ int Cnfadrf_index, i;
+ string Cnfadrf_file;
+ double flap_value;
+ Cnfadrf_file = aircraft_directory + linetoken3;
+ token4 >> Cnfadrf_index;
+ if (Cnfadrf_index < 0 || Cnfadrf_index >= 100)
+ uiuc_warnings_errors(1, *command_line);
+ if (Cnfadrf_index > Cnfadrf_nf)
+ Cnfadrf_nf = Cnfadrf_index;
+ token5 >> flap_value;
+ Cnfadrf_fArray[Cnfadrf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> Cnfadrf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (Cnfadrf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(Cnfadrf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ Cnfadrf_aArray[Cnfadrf_index] = datafile_xArray;
+ Cnfadrf_drArray[Cnfadrf_index] = datafile_yArray;
+ Cnfadrf_CnArray[Cnfadrf_index] = datafile_zArray;
+ Cnfadrf_nAlphaArray[Cnfadrf_index] = datafile_nxArray;
+ Cnfadrf_ndr[Cnfadrf_index] = datafile_ny;
+ if (Cnfadrf_first==true)
+ {
+ if (Cnfadrf_nice == 1)
+ {
+ Cnfadrf_na_nice = datafile_nxArray[1];
+ Cnfadrf_ndr_nice = datafile_ny;
+ Cnfadrf_drArray_nice = datafile_yArray;
+ for (i=1; i<=Cnfadrf_na_nice; i++)
+ Cnfadrf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroYawParts -> storeCommands (*command_line);
+ Cnfadrf_first=false;
+ }
+ break;
+ }
+ case Cnfapf_flag:
+ {
+ int Cnfapf_index, i;
+ string Cnfapf_file;
+ double flap_value;
+ Cnfapf_file = aircraft_directory + linetoken3;
+ token4 >> Cnfapf_index;
+ if (Cnfapf_index < 0 || Cnfapf_index >= 100)
+ uiuc_warnings_errors(1, *command_line);
+ if (Cnfapf_index > Cnfapf_nf)
+ Cnfapf_nf = Cnfapf_index;
+ token5 >> flap_value;
+ Cnfapf_fArray[Cnfapf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> Cnfapf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (Cnfapf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(Cnfapf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ Cnfapf_aArray[Cnfapf_index] = datafile_xArray;
+ Cnfapf_pArray[Cnfapf_index] = datafile_yArray;
+ Cnfapf_CnArray[Cnfapf_index] = datafile_zArray;
+ Cnfapf_nAlphaArray[Cnfapf_index] = datafile_nxArray;
+ Cnfapf_np[Cnfapf_index] = datafile_ny;
+ if (Cnfapf_first==true)
+ {
+ if (Cnfapf_nice == 1)
+ {
+ Cnfapf_na_nice = datafile_nxArray[1];
+ Cnfapf_np_nice = datafile_ny;
+ Cnfapf_pArray_nice = datafile_yArray;
+ for (i=1; i<=Cnfapf_na_nice; i++)
+ Cnfapf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroYawParts -> storeCommands (*command_line);
+ Cnfapf_first=false;
+ }
+ break;
+ }
+ case Cnfarf_flag:
+ {
+ int Cnfarf_index, i;
+ string Cnfarf_file;
+ double flap_value;
+ Cnfarf_file = aircraft_directory + linetoken3;
+ token4 >> Cnfarf_index;
+ if (Cnfarf_index < 0 || Cnfarf_index >= 100)
+ uiuc_warnings_errors(1, *command_line);
+ if (Cnfarf_index > Cnfarf_nf)
+ Cnfarf_nf = Cnfarf_index;
+ token5 >> flap_value;
+ Cnfarf_fArray[Cnfarf_index] = flap_value;
+ token6 >> token_value_convert1;
+ token7 >> token_value_convert2;
+ token8 >> token_value_convert3;
+ token9 >> Cnfarf_nice;
+ convert_z = uiuc_convert(token_value_convert1);
+ convert_x = uiuc_convert(token_value_convert2);
+ convert_y = uiuc_convert(token_value_convert3);
+ /* call 2D File Reader with file name (Cnfarf_file) and
+ conversion factors; function returns array of
+ elevator deflections (deArray) and corresponding
+ alpha (aArray) and delta CZ (CZArray) values and
+ max number of terms in alpha arrays (nAlphaArray)
+ and delfection array (nde) */
+ uiuc_2DdataFileReader(Cnfarf_file,
+ datafile_xArray,
+ datafile_yArray,
+ datafile_zArray,
+ datafile_nxArray,
+ datafile_ny);
+ Cnfarf_aArray[Cnfarf_index] = datafile_xArray;
+ Cnfarf_rArray[Cnfarf_index] = datafile_yArray;
+ Cnfarf_CnArray[Cnfarf_index] = datafile_zArray;
+ Cnfarf_nAlphaArray[Cnfarf_index] = datafile_nxArray;
+ Cnfarf_nr[Cnfarf_index] = datafile_ny;
+ if (Cnfarf_first==true)
+ {
+ if (Cnfarf_nice == 1)
+ {
+ Cnfarf_na_nice = datafile_nxArray[1];
+ Cnfarf_nr_nice = datafile_ny;
+ Cnfarf_rArray_nice = datafile_yArray;
+ for (i=1; i<=Cnfarf_na_nice; i++)
+ Cnfarf_aArray_nice[i] = datafile_xArray[1][i];
+ }
+ aeroYawParts -> storeCommands (*command_line);
+ Cnfarf_first=false;
+ }
+ break;
+ }
default:
{
uiuc_warnings_errors(2, *command_line);
recordParts -> storeCommands (*command_line);
break;
}
+ case flap_goal_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case flap_pos_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
/****************** Aero Coefficients ******************/
case CD_record:
recordParts -> storeCommands (*command_line);
break;
}
+ case CXfabetafI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CXfadefI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CXfaqfI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CDo_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CDK_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CD_a_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CD_adot_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CD_q_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CD_ih_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CD_de_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CXo_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CXK_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CX_a_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CX_a2_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CX_a3_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CX_adot_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CX_q_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CX_de_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CX_dr_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CX_df_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CX_adf_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
case CL_record:
{
recordParts -> storeCommands (*command_line);
recordParts -> storeCommands (*command_line);
break;
}
+ case CZfaI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CZfabetafI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CZfadefI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CZfaqfI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CLo_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CL_a_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CL_adot_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CL_q_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CL_ih_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CL_de_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CZo_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CZ_a_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CZ_a2_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CZ_a3_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CZ_adot_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CZ_q_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CZ_de_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CZ_deb2_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CZ_df_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CZ_adf_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
case Cm_record:
{
recordParts -> storeCommands (*command_line);
recordParts -> storeCommands (*command_line);
break;
}
+ case CmfabetafI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CmfadefI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CmfaqfI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cmo_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cm_a_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cm_a2_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cm_adot_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cm_q_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cm_ih_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cm_de_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cm_b2_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cm_r_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cm_df_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
case CY_record:
{
recordParts -> storeCommands (*command_line);
recordParts -> storeCommands (*command_line);
break;
}
+ case CYfabetafI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CYfadafI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CYfadrfI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CYfapfI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CYfarfI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CYo_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CY_beta_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CY_p_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CY_r_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CY_da_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CY_dr_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CY_dra_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CY_bdot_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
case Cl_record:
{
recordParts -> storeCommands (*command_line);
recordParts -> storeCommands (*command_line);
break;
}
+ case ClfabetafI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case ClfadafI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case ClfadrfI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case ClfapfI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case ClfarfI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Clo_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cl_beta_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cl_p_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cl_r_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cl_da_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cl_dr_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cl_daa_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
case Cn_record:
{
recordParts -> storeCommands (*command_line);
recordParts -> storeCommands (*command_line);
break;
}
+ case CnfabetafI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CnfadafI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CnfadrfI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CnfapfI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case CnfarfI_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cno_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cn_beta_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cn_p_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cn_r_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cn_da_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cn_dr_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cn_q_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
+ case Cn_b3_save_record:
+ {
+ recordParts -> storeCommands (*command_line);
+ break;
+ }
/******************** Ice Detection ********************/
case CLclean_wing_record:
and rudder inputs to record map
04/24/2000 (JS) added rest of variables in
ls_generic.h
+ 07/06/2001 (RD) changed Flap handle output
+ 07/20/2001 (RD) fixed Lat_control and Rudder_pedal
+ 10/25/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model at zero flaps
+ (Cxfxxf0I)
+ 11/12/2001 (RD) Added new variables needed for the non-
+ linear Twin Otter model at zero flaps
+ (CxfxxfI). Removed zero flap variables.
+ Added flap_pos and flap_goal.
+ 02/13/2002 (RD) Added variables so linear aero model
+ values can be recorded
----------------------------------------------------------------------
AUTHOR(S): Jeff Scott <jscott@mail.com>
+ Robert Deters <rdeters@uiuc.edu>
----------------------------------------------------------------------
}
case Lat_control_record:
{
- fout << Long_control << " ";
+ fout << Lat_control << " ";
break;
}
case aileron_record:
}
case Rudder_pedal_record:
{
- fout << Long_control << " ";
+ fout << Rudder_pedal << " ";
break;
}
case rudder_record:
}
case Flap_handle_record:
{
- fout << flap << " ";
+ fout << Flap_handle << " ";
break;
}
case flap_record:
fout << flap * RAD_TO_DEG << " ";
break;
}
+ case flap_goal_record:
+ {
+ fout << flap_goal << " ";
+ break;
+ }
+ case flap_pos_record:
+ {
+ fout << flap_pos << " ";
+ break;
+ }
/****************** Aero Coefficients ******************/
case CD_record:
fout << CX << " ";
break;
}
+ case CXfabetafI_record:
+ {
+ fout << CXfabetafI << " ";
+ break;
+ }
+ case CXfadefI_record:
+ {
+ fout << CXfadefI << " ";
+ break;
+ }
+ case CXfaqfI_record:
+ {
+ fout << CXfaqfI << " ";
+ break;
+ }
+ case CDo_save_record:
+ {
+ fout << CDo_save << " ";
+ break;
+ }
+ case CDK_save_record:
+ {
+ fout << CDK_save << " ";
+ break;
+ }
+ case CD_a_save_record:
+ {
+ fout << CD_a_save << " ";
+ break;
+ }
+ case CD_adot_save_record:
+ {
+ fout << CD_adot_save << " ";
+ break;
+ }
+ case CD_q_save_record:
+ {
+ fout << CD_q_save << " ";
+ break;
+ }
+ case CD_ih_save_record:
+ {
+ fout << CD_ih_save << " ";
+ break;
+ }
+ case CD_de_save_record:
+ {
+ fout << CD_de_save << " ";
+ break;
+ }
+ case CXo_save_record:
+ {
+ fout << CXo_save << " ";
+ break;
+ }
+ case CXK_save_record:
+ {
+ fout << CXK_save << " ";
+ break;
+ }
+ case CX_a_save_record:
+ {
+ fout << CX_a_save << " ";
+ break;
+ }
+ case CX_a2_save_record:
+ {
+ fout << CX_a2_save << " ";
+ break;
+ }
+ case CX_a3_save_record:
+ {
+ fout << CX_a3_save << " ";
+ break;
+ }
+ case CX_adot_save_record:
+ {
+ fout << CX_adot_save << " ";
+ break;
+ }
+ case CX_q_save_record:
+ {
+ fout << CX_q_save << " ";
+ break;
+ }
+ case CX_de_save_record:
+ {
+ fout << CX_de_save << " ";
+ break;
+ }
+ case CX_dr_save_record:
+ {
+ fout << CX_dr_save << " ";
+ break;
+ }
+ case CX_df_save_record:
+ {
+ fout << CX_df_save << " ";
+ break;
+ }
+ case CX_adf_save_record:
+ {
+ fout << CX_adf_save << " ";
+ break;
+ }
case CL_record:
{
fout << CL << " ";
fout << CZ << " ";
break;
}
+ case CZfaI_record:
+ {
+ fout << CZfaI << " ";
+ break;
+ }
+ case CZfabetafI_record:
+ {
+ fout << CZfabetafI << " ";
+ break;
+ }
+ case CZfadefI_record:
+ {
+ fout << CZfadefI << " ";
+ break;
+ }
+ case CZfaqfI_record:
+ {
+ fout << CZfaqfI << " ";
+ break;
+ }
+ case CLo_save_record:
+ {
+ fout << CLo_save << " ";
+ break;
+ }
+ case CL_a_save_record:
+ {
+ fout << CL_a_save << " ";
+ break;
+ }
+ case CL_adot_save_record:
+ {
+ fout << CL_adot_save << " ";
+ break;
+ }
+ case CL_q_save_record:
+ {
+ fout << CL_q_save << " ";
+ break;
+ }
+ case CL_ih_save_record:
+ {
+ fout << CL_ih_save << " ";
+ break;
+ }
+ case CL_de_save_record:
+ {
+ fout << CL_de_save << " ";
+ break;
+ }
+ case CZo_save_record:
+ {
+ fout << CZo_save << " ";
+ break;
+ }
+ case CZ_a_save_record:
+ {
+ fout << CZ_a_save << " ";
+ break;
+ }
+ case CZ_a2_save_record:
+ {
+ fout << CZ_a2_save << " ";
+ break;
+ }
+ case CZ_a3_save_record:
+ {
+ fout << CZ_a3_save << " ";
+ break;
+ }
+ case CZ_adot_save_record:
+ {
+ fout << CZ_adot_save << " ";
+ break;
+ }
+ case CZ_q_save_record:
+ {
+ fout << CZ_q_save << " ";
+ break;
+ }
+ case CZ_de_save_record:
+ {
+ fout << CZ_de_save << " ";
+ break;
+ }
+ case CZ_deb2_save_record:
+ {
+ fout << CZ_deb2_save << " ";
+ break;
+ }
+ case CZ_df_save_record:
+ {
+ fout << CZ_df_save << " ";
+ break;
+ }
+ case CZ_adf_save_record:
+ {
+ fout << CZ_adf_save << " ";
+ break;
+ }
case Cm_record:
{
fout << Cm << " ";
fout << CmfadfI << " ";
break;
}
+ case CmfabetafI_record:
+ {
+ fout << CmfabetafI << " ";
+ break;
+ }
+ case CmfadefI_record:
+ {
+ fout << CmfadefI << " ";
+ break;
+ }
+ case CmfaqfI_record:
+ {
+ fout << CmfaqfI << " ";
+ break;
+ }
+ case Cmo_save_record:
+ {
+ fout << Cmo_save << " ";
+ break;
+ }
+ case Cm_a_save_record:
+ {
+ fout << Cm_a_save << " ";
+ break;
+ }
+ case Cm_a2_save_record:
+ {
+ fout << Cm_a2_save << " ";
+ break;
+ }
+ case Cm_adot_save_record:
+ {
+ fout << Cm_adot_save << " ";
+ break;
+ }
+ case Cm_q_save_record:
+ {
+ fout << Cm_q_save << " ";
+ break;
+ }
+ case Cm_ih_save_record:
+ {
+ fout << Cm_ih_save << " ";
+ break;
+ }
+ case Cm_de_save_record:
+ {
+ fout << Cm_de_save << " ";
+ break;
+ }
+ case Cm_b2_save_record:
+ {
+ fout << Cm_b2_save << " ";
+ break;
+ }
+ case Cm_r_save_record:
+ {
+ fout << Cm_r_save << " ";
+ break;
+ }
+ case Cm_df_save_record:
+ {
+ fout << Cm_df_save << " ";
+ break;
+ }
case CY_record:
{
fout << CY << " ";
fout << CYfbetadrI << " ";
break;
}
+ case CYfabetafI_record:
+ {
+ fout << CYfabetafI << " ";
+ break;
+ }
+ case CYfadafI_record:
+ {
+ fout << CYfadafI << " ";
+ break;
+ }
+ case CYfadrfI_record:
+ {
+ fout << CYfadrfI << " ";
+ break;
+ }
+ case CYfapfI_record:
+ {
+ fout << CYfapfI << " ";
+ break;
+ }
+ case CYfarfI_record:
+ {
+ fout << CYfarfI << " ";
+ break;
+ }
+ case CYo_save_record:
+ {
+ fout << CYo_save << " ";
+ break;
+ }
+ case CY_beta_save_record:
+ {
+ fout << CY_beta_save << " ";
+ break;
+ }
+ case CY_p_save_record:
+ {
+ fout << CY_p_save << " ";
+ break;
+ }
+ case CY_r_save_record:
+ {
+ fout << CY_r_save << " ";
+ break;
+ }
+ case CY_da_save_record:
+ {
+ fout << CY_da_save << " ";
+ break;
+ }
+ case CY_dr_save_record:
+ {
+ fout << CY_dr_save << " ";
+ break;
+ }
+ case CY_dra_save_record:
+ {
+ fout << CY_dra_save << " ";
+ break;
+ }
+ case CY_bdot_save_record:
+ {
+ fout << CY_bdot_save << " ";
+ break;
+ }
case Cl_record:
{
fout << Cl << " ";
fout << ClfbetadrI << " ";
break;
}
+ case ClfabetafI_record:
+ {
+ fout << ClfabetafI << " ";
+ break;
+ }
+ case ClfadafI_record:
+ {
+ fout << ClfadafI << " ";
+ break;
+ }
+ case ClfadrfI_record:
+ {
+ fout << ClfadrfI << " ";
+ break;
+ }
+ case ClfapfI_record:
+ {
+ fout << ClfapfI << " ";
+ break;
+ }
+ case ClfarfI_record:
+ {
+ fout << ClfarfI << " ";
+ break;
+ }
+ case Clo_save_record:
+ {
+ fout << Clo_save << " ";
+ break;
+ }
+ case Cl_beta_save_record:
+ {
+ fout << Cl_beta_save << " ";
+ break;
+ }
+ case Cl_p_save_record:
+ {
+ fout << Cl_p_save << " ";
+ break;
+ }
+ case Cl_r_save_record:
+ {
+ fout << Cl_r_save << " ";
+ break;
+ }
+ case Cl_da_save_record:
+ {
+ fout << Cl_da_save << " ";
+ break;
+ }
+ case Cl_dr_save_record:
+ {
+ fout << Cl_dr_save << " ";
+ break;
+ }
+ case Cl_daa_save_record:
+ {
+ fout << Cl_daa_save << " ";
+ break;
+ }
case Cn_record:
{
fout << Cn << " ";
fout << CnfbetadrI << " ";
break;
}
+ case CnfabetafI_record:
+ {
+ fout << CnfabetafI << " ";
+ break;
+ }
+ case CnfadafI_record:
+ {
+ fout << CnfadafI << " ";
+ break;
+ }
+ case CnfadrfI_record:
+ {
+ fout << CnfadrfI << " ";
+ break;
+ }
+ case CnfapfI_record:
+ {
+ fout << CnfapfI << " ";
+ break;
+ }
+ case CnfarfI_record:
+ {
+ fout << CnfarfI << " ";
+ break;
+ }
+ case Cno_save_record:
+ {
+ fout << Cno_save << " ";
+ break;
+ }
+ case Cn_beta_save_record:
+ {
+ fout << Cn_beta_save << " ";
+ break;
+ }
+ case Cn_p_save_record:
+ {
+ fout << Cn_p_save << " ";
+ break;
+ }
+ case Cn_r_save_record:
+ {
+ fout << Cn_r_save << " ";
+ break;
+ }
+ case Cn_da_save_record:
+ {
+ fout << Cn_da_save << " ";
+ break;
+ }
+ case Cn_dr_save_record:
+ {
+ fout << Cn_dr_save << " ";
+ break;
+ }
+ case Cn_q_save_record:
+ {
+ fout << Cn_q_save << " ";
+ break;
+ }
+ case Cn_b3_save_record:
+ {
+ fout << Cn_b3_save << " ";
+ break;
+ }
/******************** Ice Detection ********************/
case CLclean_wing_record:
the velocities.
08/27/2001 (RD) Added uiuc_initial_init() to help
in starting an A/C at an initial condition
+ 02/24/2002 (GD) Added uiuc_network_routine()
+ 03/27/2002 (RD) Changed how forces are calculated when
+ body-axis is used
----------------------------------------------------------------------
AUTHOR(S): Bipin Sehgal <bsehgal@uiuc.edu>
Robert Deters <rdeters@uiuc.edu>
+ Glen Dimock <dimock@uiuc.edu>
David Megginson <david@megginson.com>
----------------------------------------------------------------------
#include "uiuc_menu.h"
#include "uiuc_betaprobe.h"
#include <FDM/LaRCsim/ls_generic.h>
-// #include "Main/simple_udp.h"
+//#include "Main/simple_udp.h"
#include "uiuc_fog.h" //321654
+//#include "uiuc_network.h"
#if !defined (SG_HAVE_NATIVE_SGI_COMPILERS)
SG_USING_STD(cout);
extern "C" void uiuc_engine_routine();
extern "C" void uiuc_gear_routine();
extern "C" void uiuc_record_routine(double dt);
+//extern "C" void uiuc_network_routine();
extern "C" void uiuc_vel_init ();
extern "C" void uiuc_initial_init ();
uiuc_aerodeflections(dt);
uiuc_coefficients();
- /* Calculate the wind axis forces */
+ /* Calculate the forces */
if (CX && CZ)
{
- CD = -CX * cos(Alpha) - CZ * sin(Alpha);
- CL = CX * sin(Alpha) - CZ * cos(Alpha);
+ F_X_aero = CX * qS;
+ F_Y_aero = CY * qS;
+ F_Z_aero = CZ * qS;
+ }
+ else
+ {
+ F_X_wind = -CD * qS;
+ F_Y_wind = CY * qS;
+ F_Z_wind = -CL * qS;
+
+ /* wind-axis to body-axis transformation */
+ F_X_aero = F_X_wind * Cos_alpha * Cos_beta - F_Y_wind * Cos_alpha * Sin_beta - F_Z_wind * Sin_alpha;
+ F_Y_aero = F_X_wind * Sin_beta + F_Y_wind * Cos_beta;
+ F_Z_aero = F_X_wind * Sin_alpha * Cos_beta - F_Y_wind * Sin_alpha * Sin_beta + F_Z_wind * Cos_alpha;
}
- F_X_wind = -1 * CD * qS;
- F_Y_wind = CY * qS;
- F_Z_wind = -1 * CL * qS;
-
- /* wind-axis to body-axis transformation */
- F_X_aero = F_X_wind * Cos_alpha * Cos_beta - F_Y_wind * Cos_alpha * Sin_beta - F_Z_wind * Sin_alpha;
- F_Y_aero = F_X_wind * Sin_beta + F_Y_wind * Cos_beta;
- F_Z_aero = F_X_wind * Sin_alpha * Cos_beta - F_Y_wind * Sin_alpha * Sin_beta + F_Z_wind * Cos_alpha;
-
/* Moment calculations */
M_l_aero = Cl * qSb;
M_m_aero = Cm * qScbar;
if (Simtime >= recordStartTime)
uiuc_recorder(dt);
}
+
+//void uiuc_network_routine ()
+//{
+// uiuc_network();
+//}
//end uiuc_wrapper.cpp
void uiuc_engine_routine();
void uiuc_gear_routine();
void uiuc_record_routine(double dt);
+//void uiuc_network_routine();
void uiuc_vel_init ();
void uiuc_initial_init ();