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
This commit is contained in:
parent
f14b7950c1
commit
2717dba826
38 changed files with 4637 additions and 595 deletions
|
@ -198,6 +198,15 @@ void FGLaRCsim::update( int multiloop ) {
|
|||
// 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);
|
||||
|
|
|
@ -37,6 +37,22 @@
|
|||
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.
|
||||
|
||||
|
@ -142,10 +158,11 @@ void ls_model( SCALAR dt, int Initialize ) {
|
|||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
CODED BY: Bipin Sehgal
|
||||
|
||||
MAINTAINED BY: Bipin Sehgal
|
||||
MAINTAINED BY: Rob Deters and Glen Dimock
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
|
@ -30,6 +30,8 @@
|
|||
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)
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
|
@ -58,32 +60,38 @@
|
|||
#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();
|
||||
//}
|
||||
|
|
|
@ -7,6 +7,7 @@ libUIUCModel_a_SOURCES = \
|
|||
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 \
|
||||
|
|
|
@ -18,10 +18,13 @@
|
|||
----------------------------------------------------------------------
|
||||
|
||||
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>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -101,14 +104,17 @@ void uiuc_2DdataFileReader( string file_name,
|
|||
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;
|
||||
|
||||
|
|
398
src/FDM/UIUCModel/uiuc_3Dinterpolation.cpp
Normal file
398
src/FDM/UIUCModel/uiuc_3Dinterpolation.cpp
Normal file
|
@ -0,0 +1,398 @@
|
|||
/**********************************************************************
|
||||
|
||||
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;
|
||||
}
|
31
src/FDM/UIUCModel/uiuc_3Dinterpolation.h
Normal file
31
src/FDM/UIUCModel/uiuc_3Dinterpolation.h
Normal file
|
@ -0,0 +1,31 @@
|
|||
#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_
|
|
@ -22,10 +22,15 @@
|
|||
|
||||
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>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
@ -90,16 +95,42 @@ void uiuc_aerodeflections( double dt )
|
|||
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])
|
||||
{
|
||||
|
|
|
@ -53,6 +53,19 @@
|
|||
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>
|
||||
|
@ -151,7 +164,10 @@ enum {bw_flag = 3000, cbar_flag, Sw_flag, ih_flag, bh_flag, ch_flag, Sh_flag};
|
|||
// 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};
|
||||
|
@ -160,36 +176,43 @@ 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,
|
||||
|
@ -270,14 +293,45 @@ enum {Simtime_record = 16000, dt_record,
|
|||
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,
|
||||
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,
|
||||
CL_record, CLfaI_record, CLfadeI_record, CLfdfI_record, CLfadfI_record, CZ_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,
|
||||
CY_record, CYfadaI_record, CYfbetadrI_record,
|
||||
Cl_record, ClfadaI_record, ClfbetadrI_record,
|
||||
Cn_record, CnfadaI_record, CnfbetadrI_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,
|
||||
|
@ -509,8 +563,8 @@ struct AIRCRAFT
|
|||
|
||||
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
|
||||
|
@ -522,8 +576,8 @@ struct AIRCRAFT
|
|||
|
||||
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
|
||||
|
@ -535,8 +589,8 @@ struct AIRCRAFT
|
|||
|
||||
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
|
||||
|
@ -561,6 +615,9 @@ struct AIRCRAFT
|
|||
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 ================================*/
|
||||
|
@ -593,8 +650,8 @@ struct AIRCRAFT
|
|||
|
||||
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
|
||||
|
@ -690,6 +747,100 @@ struct AIRCRAFT
|
|||
#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) ===========================================*/
|
||||
|
@ -775,6 +926,100 @@ struct AIRCRAFT
|
|||
#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) ===========================================*/
|
||||
|
@ -843,6 +1088,90 @@ struct AIRCRAFT
|
|||
#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) ===========================================*/
|
||||
|
@ -888,6 +1217,136 @@ struct AIRCRAFT
|
|||
#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) ===========================================*/
|
||||
|
@ -932,6 +1391,135 @@ struct AIRCRAFT
|
|||
#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) ===========================================*/
|
||||
|
@ -977,6 +1565,136 @@ struct AIRCRAFT
|
|||
#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) ===========================================*/
|
||||
|
@ -1331,6 +2049,12 @@ struct AIRCRAFT
|
|||
#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;
|
||||
|
||||
|
|
|
@ -19,11 +19,23 @@
|
|||
----------------------------------------------------------------------
|
||||
|
||||
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>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -49,6 +61,8 @@
|
|||
CALLS TO: uiuc_1Dinterpolation
|
||||
uiuc_2Dinterpolation
|
||||
uiuc_ice_filter
|
||||
uiuc_3Dinterpolation
|
||||
uiuc_3Dinterp_quick
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -71,7 +85,7 @@
|
|||
**********************************************************************/
|
||||
|
||||
#include "uiuc_coef_drag.h"
|
||||
|
||||
#include <math.h>
|
||||
|
||||
void uiuc_coef_drag()
|
||||
{
|
||||
|
@ -79,6 +93,8 @@ void uiuc_coef_drag()
|
|||
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)
|
||||
|
@ -94,6 +110,7 @@ void uiuc_coef_drag()
|
|||
{
|
||||
CDo = uiuc_ice_filter(CDo_clean,kCDo);
|
||||
}
|
||||
CDo_save = CDo;
|
||||
CD += CDo;
|
||||
break;
|
||||
}
|
||||
|
@ -103,6 +120,7 @@ void uiuc_coef_drag()
|
|||
{
|
||||
CDK = uiuc_ice_filter(CDK_clean,kCDK);
|
||||
}
|
||||
CDK_save = CDK * CL * CL;
|
||||
CD += CDK * CL * CL;
|
||||
break;
|
||||
}
|
||||
|
@ -112,6 +130,7 @@ void uiuc_coef_drag()
|
|||
{
|
||||
CD_a = uiuc_ice_filter(CD_a_clean,kCD_a);
|
||||
}
|
||||
CD_a_save = CD_a * Alpha;
|
||||
CD += CD_a * Alpha;
|
||||
break;
|
||||
}
|
||||
|
@ -123,6 +142,7 @@ void uiuc_coef_drag()
|
|||
}
|
||||
/* 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;
|
||||
}
|
||||
|
@ -136,12 +156,14 @@ void uiuc_coef_drag()
|
|||
(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:
|
||||
|
@ -150,7 +172,8 @@ void uiuc_coef_drag()
|
|||
{
|
||||
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:
|
||||
|
@ -217,6 +240,7 @@ void uiuc_coef_drag()
|
|||
CXiced_tail += CXo;
|
||||
}
|
||||
}
|
||||
CXo_save = CXo;
|
||||
CX += CXo;
|
||||
break;
|
||||
}
|
||||
|
@ -233,6 +257,7 @@ void uiuc_coef_drag()
|
|||
CXiced_tail += CXK * CLiced_tail * CLiced_tail;
|
||||
}
|
||||
}
|
||||
CXK_save = CXK * CZ * CZ;
|
||||
CX += CXK * CZ * CZ;
|
||||
break;
|
||||
}
|
||||
|
@ -249,6 +274,7 @@ void uiuc_coef_drag()
|
|||
CXiced_tail += CX_a * Alpha;
|
||||
}
|
||||
}
|
||||
CX_a_save = CX_a * Alpha;
|
||||
CX += CX_a * Alpha;
|
||||
break;
|
||||
}
|
||||
|
@ -265,6 +291,7 @@ void uiuc_coef_drag()
|
|||
CXiced_tail += CX_a2 * Alpha * Alpha;
|
||||
}
|
||||
}
|
||||
CX_a2_save = CX_a2 * Alpha * Alpha;
|
||||
CX += CX_a2 * Alpha * Alpha;
|
||||
break;
|
||||
}
|
||||
|
@ -281,6 +308,7 @@ void uiuc_coef_drag()
|
|||
CXiced_tail += CX_a3 * Alpha * Alpha * Alpha;
|
||||
}
|
||||
}
|
||||
CX_a3_save = CX_a3 * Alpha * Alpha * Alpha;
|
||||
CX += CX_a3 * Alpha * Alpha * Alpha;
|
||||
break;
|
||||
}
|
||||
|
@ -299,6 +327,7 @@ void uiuc_coef_drag()
|
|||
}
|
||||
/* 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;
|
||||
}
|
||||
|
@ -317,6 +346,7 @@ void uiuc_coef_drag()
|
|||
}
|
||||
/* 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;
|
||||
}
|
||||
|
@ -333,6 +363,7 @@ void uiuc_coef_drag()
|
|||
CXiced_tail += CX_de * elevator;
|
||||
}
|
||||
}
|
||||
CX_de_save = CX_de * elevator;
|
||||
CX += CX_de * elevator;
|
||||
break;
|
||||
}
|
||||
|
@ -349,6 +380,7 @@ void uiuc_coef_drag()
|
|||
CXiced_tail += CX_dr * rudder;
|
||||
}
|
||||
}
|
||||
CX_dr_save = CX_dr * rudder;
|
||||
CX += CX_dr * rudder;
|
||||
break;
|
||||
}
|
||||
|
@ -365,6 +397,7 @@ void uiuc_coef_drag()
|
|||
CXiced_tail += CX * flap;
|
||||
}
|
||||
}
|
||||
CX_df_save = CX_df * flap;
|
||||
CX += CX_df * flap;
|
||||
break;
|
||||
}
|
||||
|
@ -381,9 +414,92 @@ void uiuc_coef_drag()
|
|||
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
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "uiuc_aircraft.h"
|
||||
#include "uiuc_1Dinterpolation.h"
|
||||
#include "uiuc_2Dinterpolation.h"
|
||||
#include "uiuc_3Dinterpolation.h"
|
||||
#include "uiuc_ice.h"
|
||||
|
||||
|
||||
|
|
|
@ -20,6 +20,17 @@
|
|||
|
||||
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.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -52,6 +63,8 @@
|
|||
CALLS TO: uiuc_1Dinterpolation
|
||||
uiuc_2Dinterpolation
|
||||
uiuc_ice_filter
|
||||
uiuc_3Dinterpolation
|
||||
uiuc_3Dinterp_quick
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -75,13 +88,14 @@
|
|||
|
||||
#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)
|
||||
|
@ -104,6 +118,7 @@ void uiuc_coef_lift()
|
|||
CLiced_tail += CLo;
|
||||
}
|
||||
}
|
||||
CLo_save = CLo;
|
||||
CL += CLo;
|
||||
break;
|
||||
}
|
||||
|
@ -120,6 +135,7 @@ void uiuc_coef_lift()
|
|||
CLiced_tail += CL_a * Alpha;
|
||||
}
|
||||
}
|
||||
CL_a_save = CL_a * Alpha;
|
||||
CL += CL_a * Alpha;
|
||||
break;
|
||||
}
|
||||
|
@ -138,6 +154,7 @@ void uiuc_coef_lift()
|
|||
}
|
||||
/* 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;
|
||||
}
|
||||
|
@ -159,11 +176,13 @@ void uiuc_coef_lift()
|
|||
/* 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;
|
||||
}
|
||||
|
@ -180,6 +199,7 @@ void uiuc_coef_lift()
|
|||
CLiced_tail += CL_de * elevator;
|
||||
}
|
||||
}
|
||||
CL_de_save = CL_de * elevator;
|
||||
CL += CL_de * elevator;
|
||||
break;
|
||||
}
|
||||
|
@ -238,6 +258,7 @@ void uiuc_coef_lift()
|
|||
CZiced_tail += CZo;
|
||||
}
|
||||
}
|
||||
CZo_save = CZo;
|
||||
CZ += CZo;
|
||||
break;
|
||||
}
|
||||
|
@ -254,6 +275,7 @@ void uiuc_coef_lift()
|
|||
CZiced_tail += CZ_a * Alpha;
|
||||
}
|
||||
}
|
||||
CZ_a_save = CZ_a * Alpha;
|
||||
CZ += CZ_a * Alpha;
|
||||
break;
|
||||
}
|
||||
|
@ -270,6 +292,7 @@ void uiuc_coef_lift()
|
|||
CZiced_tail += CZ_a2 * Alpha * Alpha;
|
||||
}
|
||||
}
|
||||
CZ_a2_save = CZ_a2 * Alpha * Alpha;
|
||||
CZ += CZ_a2 * Alpha * Alpha;
|
||||
break;
|
||||
}
|
||||
|
@ -286,6 +309,7 @@ void uiuc_coef_lift()
|
|||
CZiced_tail += CZ_a3 * Alpha * Alpha * Alpha;
|
||||
}
|
||||
}
|
||||
CZ_a3_save = CZ_a3 * Alpha * Alpha * Alpha;
|
||||
CZ += CZ_a3 * Alpha * Alpha * Alpha;
|
||||
break;
|
||||
}
|
||||
|
@ -304,6 +328,7 @@ void uiuc_coef_lift()
|
|||
}
|
||||
/* 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;
|
||||
}
|
||||
|
@ -322,6 +347,7 @@ void uiuc_coef_lift()
|
|||
}
|
||||
/* 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;
|
||||
}
|
||||
|
@ -338,6 +364,7 @@ void uiuc_coef_lift()
|
|||
CZiced_tail += CZ_de * elevator;
|
||||
}
|
||||
}
|
||||
CZ_de_save = CZ_de * elevator;
|
||||
CZ += CZ_de * elevator;
|
||||
break;
|
||||
}
|
||||
|
@ -354,6 +381,7 @@ void uiuc_coef_lift()
|
|||
CZiced_tail += CZ_deb2 * elevator * Beta * Beta;
|
||||
}
|
||||
}
|
||||
CZ_deb2_save = CZ_deb2 * elevator * Beta * Beta;
|
||||
CZ += CZ_deb2 * elevator * Beta * Beta;
|
||||
break;
|
||||
}
|
||||
|
@ -370,6 +398,7 @@ void uiuc_coef_lift()
|
|||
CZiced_tail += CZ_df * flap;
|
||||
}
|
||||
}
|
||||
CZ_df_save = CZ_df * flap;
|
||||
CZ += CZ_df * flap;
|
||||
break;
|
||||
}
|
||||
|
@ -386,6 +415,7 @@ void uiuc_coef_lift()
|
|||
CZiced_tail += CZ_adf * Alpha * flap;
|
||||
}
|
||||
}
|
||||
CZ_adf_save = CZ_adf * Alpha * flap;
|
||||
CZ += CZ_adf * Alpha * flap;
|
||||
break;
|
||||
}
|
||||
|
@ -398,6 +428,88 @@ void uiuc_coef_lift()
|
|||
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
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "uiuc_aircraft.h"
|
||||
#include "uiuc_1Dinterpolation.h"
|
||||
#include "uiuc_2Dinterpolation.h"
|
||||
#include "uiuc_3Dinterpolation.h"
|
||||
#include "uiuc_ice.h"
|
||||
|
||||
|
||||
|
|
|
@ -19,11 +19,23 @@
|
|||
----------------------------------------------------------------------
|
||||
|
||||
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>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -50,6 +62,8 @@
|
|||
CALLS TO: uiuc_1Dinterpolation
|
||||
uiuc_2Dinterpolation
|
||||
uiuc_ice_filter
|
||||
uiuc_3Dinterpolation
|
||||
uiuc_3Dinterp_quick
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -80,6 +94,8 @@ void uiuc_coef_pitch()
|
|||
string linetoken2;
|
||||
stack command_list;
|
||||
|
||||
double q_nondim;
|
||||
|
||||
command_list = aeroPitchParts -> getCommands();
|
||||
|
||||
for (LIST command_line = command_list.begin(); command_line!=command_list.end(); ++command_line)
|
||||
|
@ -95,6 +111,7 @@ void uiuc_coef_pitch()
|
|||
{
|
||||
Cmo = uiuc_ice_filter(Cmo_clean,kCmo);
|
||||
}
|
||||
Cmo_save = Cmo;
|
||||
Cm += Cmo;
|
||||
break;
|
||||
}
|
||||
|
@ -104,6 +121,7 @@ void uiuc_coef_pitch()
|
|||
{
|
||||
Cm_a = uiuc_ice_filter(Cm_a_clean,kCm_a);
|
||||
}
|
||||
Cm_a_save = Cm_a * Alpha;
|
||||
Cm += Cm_a * Alpha;
|
||||
break;
|
||||
}
|
||||
|
@ -113,6 +131,7 @@ void uiuc_coef_pitch()
|
|||
{
|
||||
Cm_a2 = uiuc_ice_filter(Cm_a2_clean,kCm_a2);
|
||||
}
|
||||
Cm_a2_save = Cm_a2 * Alpha * Alpha;
|
||||
Cm += Cm_a2 * Alpha * Alpha;
|
||||
break;
|
||||
}
|
||||
|
@ -124,6 +143,7 @@ void uiuc_coef_pitch()
|
|||
}
|
||||
/* 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;
|
||||
}
|
||||
|
@ -135,11 +155,13 @@ void uiuc_coef_pitch()
|
|||
}
|
||||
/* 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;
|
||||
}
|
||||
|
@ -149,6 +171,7 @@ void uiuc_coef_pitch()
|
|||
{
|
||||
Cm_de = uiuc_ice_filter(Cm_de_clean,kCm_de);
|
||||
}
|
||||
Cm_de_save = Cm_de * elevator;
|
||||
Cm += Cm_de * elevator;
|
||||
break;
|
||||
}
|
||||
|
@ -158,6 +181,7 @@ void uiuc_coef_pitch()
|
|||
{
|
||||
Cm_b2 = uiuc_ice_filter(Cm_b2_clean,kCm_b2);
|
||||
}
|
||||
Cm_b2_save = Cm_b2 * Beta * Beta;
|
||||
Cm += Cm_b2 * Beta * Beta;
|
||||
break;
|
||||
}
|
||||
|
@ -167,6 +191,7 @@ void uiuc_coef_pitch()
|
|||
{
|
||||
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;
|
||||
}
|
||||
|
@ -176,6 +201,7 @@ void uiuc_coef_pitch()
|
|||
{
|
||||
Cm_df = uiuc_ice_filter(Cm_df_clean,kCm_df);
|
||||
}
|
||||
Cm_df_save = Cm_df * flap;
|
||||
Cm += Cm_df * flap;
|
||||
break;
|
||||
}
|
||||
|
@ -221,6 +247,88 @@ void uiuc_coef_pitch()
|
|||
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
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#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>
|
||||
|
||||
|
|
|
@ -19,11 +19,23 @@
|
|||
----------------------------------------------------------------------
|
||||
|
||||
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>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -51,6 +63,8 @@
|
|||
CALLS TO: uiuc_1Dinterpolation
|
||||
uiuc_2Dinterpolation
|
||||
uiuc_ice_filter
|
||||
uiuc_3Dinterpolation
|
||||
uiuc_3Dinterp_quick
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -81,6 +95,9 @@ void uiuc_coef_roll()
|
|||
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)
|
||||
|
@ -96,6 +113,7 @@ void uiuc_coef_roll()
|
|||
{
|
||||
Clo = uiuc_ice_filter(Clo_clean,kClo);
|
||||
}
|
||||
Clo_save = Clo;
|
||||
Cl += Clo;
|
||||
break;
|
||||
}
|
||||
|
@ -105,6 +123,7 @@ void uiuc_coef_roll()
|
|||
{
|
||||
Cl_beta = uiuc_ice_filter(Cl_beta_clean,kCl_beta);
|
||||
}
|
||||
Cl_beta_save = Cl_beta * Beta;
|
||||
Cl += Cl_beta * Beta;
|
||||
break;
|
||||
}
|
||||
|
@ -116,6 +135,7 @@ void uiuc_coef_roll()
|
|||
}
|
||||
/* 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;
|
||||
}
|
||||
|
@ -127,6 +147,7 @@ void uiuc_coef_roll()
|
|||
}
|
||||
/* 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;
|
||||
}
|
||||
|
@ -136,6 +157,7 @@ void uiuc_coef_roll()
|
|||
{
|
||||
Cl_da = uiuc_ice_filter(Cl_da_clean,kCl_da);
|
||||
}
|
||||
Cl_da_save = Cl_da * aileron;
|
||||
Cl += Cl_da * aileron;
|
||||
break;
|
||||
}
|
||||
|
@ -145,6 +167,7 @@ void uiuc_coef_roll()
|
|||
{
|
||||
Cl_dr = uiuc_ice_filter(Cl_dr_clean,kCl_dr);
|
||||
}
|
||||
Cl_dr_save = Cl_dr * rudder;
|
||||
Cl += Cl_dr * rudder;
|
||||
break;
|
||||
}
|
||||
|
@ -154,6 +177,7 @@ void uiuc_coef_roll()
|
|||
{
|
||||
Cl_daa = uiuc_ice_filter(Cl_daa_clean,kCl_daa);
|
||||
}
|
||||
Cl_daa_save = Cl_daa * aileron * Alpha;
|
||||
Cl += Cl_daa * aileron * Alpha;
|
||||
break;
|
||||
}
|
||||
|
@ -181,6 +205,143 @@ void uiuc_coef_roll()
|
|||
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
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#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>
|
||||
|
||||
|
|
|
@ -19,11 +19,23 @@
|
|||
----------------------------------------------------------------------
|
||||
|
||||
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>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -51,6 +63,8 @@
|
|||
CALLS TO: uiuc_1Dinterpolation
|
||||
uiuc_2Dinterpolation
|
||||
uiuc_ice_filter
|
||||
uiuc_3Dinterpolation
|
||||
uiuc_3Dinterp_quick
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -81,6 +95,9 @@ void uiuc_coef_sideforce()
|
|||
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)
|
||||
|
@ -96,6 +113,7 @@ void uiuc_coef_sideforce()
|
|||
{
|
||||
CYo = uiuc_ice_filter(CYo_clean,kCYo);
|
||||
}
|
||||
CYo_save = CYo;
|
||||
CY += CYo;
|
||||
break;
|
||||
}
|
||||
|
@ -105,6 +123,7 @@ void uiuc_coef_sideforce()
|
|||
{
|
||||
CY_beta = uiuc_ice_filter(CY_beta_clean,kCY_beta);
|
||||
}
|
||||
CY_beta_save = CY_beta * Beta;
|
||||
CY += CY_beta * Beta;
|
||||
break;
|
||||
}
|
||||
|
@ -116,6 +135,7 @@ void uiuc_coef_sideforce()
|
|||
}
|
||||
/* 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;
|
||||
}
|
||||
|
@ -127,6 +147,7 @@ void uiuc_coef_sideforce()
|
|||
}
|
||||
/* 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;
|
||||
}
|
||||
|
@ -136,6 +157,7 @@ void uiuc_coef_sideforce()
|
|||
{
|
||||
CY_da = uiuc_ice_filter(CY_da_clean,kCY_da);
|
||||
}
|
||||
CY_da_save = CY_da * aileron;
|
||||
CY += CY_da * aileron;
|
||||
break;
|
||||
}
|
||||
|
@ -145,6 +167,7 @@ void uiuc_coef_sideforce()
|
|||
{
|
||||
CY_dr = uiuc_ice_filter(CY_dr_clean,kCY_dr);
|
||||
}
|
||||
CY_dr_save = CY_dr * rudder;
|
||||
CY += CY_dr * rudder;
|
||||
break;
|
||||
}
|
||||
|
@ -154,6 +177,7 @@ void uiuc_coef_sideforce()
|
|||
{
|
||||
CY_dra = uiuc_ice_filter(CY_dra_clean,kCY_dra);
|
||||
}
|
||||
CY_dra_save = CY_dra * rudder * Alpha;
|
||||
CY += CY_dra * rudder * Alpha;
|
||||
break;
|
||||
}
|
||||
|
@ -163,6 +187,7 @@ void uiuc_coef_sideforce()
|
|||
{
|
||||
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;
|
||||
}
|
||||
|
@ -190,6 +215,143 @@ void uiuc_coef_sideforce()
|
|||
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
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#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>
|
||||
|
||||
|
|
|
@ -19,11 +19,23 @@
|
|||
----------------------------------------------------------------------
|
||||
|
||||
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>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -51,6 +63,8 @@
|
|||
CALLS TO: uiuc_1Dinterpolation
|
||||
uiuc_2Dinterpolation
|
||||
uiuc_ice_filter
|
||||
uiuc_3Dinterpolation
|
||||
uiuc_3Dinterp_quick
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -81,6 +95,9 @@ void uiuc_coef_yaw()
|
|||
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)
|
||||
|
@ -96,6 +113,7 @@ void uiuc_coef_yaw()
|
|||
{
|
||||
Cno = uiuc_ice_filter(Cno_clean,kCno);
|
||||
}
|
||||
Cno_save = Cno;
|
||||
Cn += Cno;
|
||||
break;
|
||||
}
|
||||
|
@ -105,6 +123,7 @@ void uiuc_coef_yaw()
|
|||
{
|
||||
Cn_beta = uiuc_ice_filter(Cn_beta_clean,kCn_beta);
|
||||
}
|
||||
Cn_beta_save = Cn_beta * Beta;
|
||||
Cn += Cn_beta * Beta;
|
||||
break;
|
||||
}
|
||||
|
@ -116,6 +135,7 @@ void uiuc_coef_yaw()
|
|||
}
|
||||
/* 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;
|
||||
}
|
||||
|
@ -127,6 +147,7 @@ void uiuc_coef_yaw()
|
|||
}
|
||||
/* 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;
|
||||
}
|
||||
|
@ -136,6 +157,7 @@ void uiuc_coef_yaw()
|
|||
{
|
||||
Cn_da = uiuc_ice_filter(Cn_da_clean,kCn_da);
|
||||
}
|
||||
Cn_da_save = Cn_da * aileron;
|
||||
Cn += Cn_da * aileron;
|
||||
break;
|
||||
}
|
||||
|
@ -145,6 +167,7 @@ void uiuc_coef_yaw()
|
|||
{
|
||||
Cn_dr = uiuc_ice_filter(Cn_dr_clean,kCn_dr);
|
||||
}
|
||||
Cn_dr_save = Cn_dr * rudder;
|
||||
Cn += Cn_dr * rudder;
|
||||
break;
|
||||
}
|
||||
|
@ -154,6 +177,7 @@ void uiuc_coef_yaw()
|
|||
{
|
||||
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;
|
||||
}
|
||||
|
@ -163,6 +187,7 @@ void uiuc_coef_yaw()
|
|||
{
|
||||
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;
|
||||
}
|
||||
|
@ -190,6 +215,143 @@ void uiuc_coef_yaw()
|
|||
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
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#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>
|
||||
|
||||
|
|
|
@ -1,130 +0,0 @@
|
|||
/**********************************************************************
|
||||
*
|
||||
* 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
|
|
@ -1,116 +0,0 @@
|
|||
/**********************************************************************
|
||||
*
|
||||
* 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
|
|
@ -1,107 +0,0 @@
|
|||
/**********************************************************************
|
||||
*
|
||||
* 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
|
|
@ -1,143 +0,0 @@
|
|||
/**********************************************************************
|
||||
*
|
||||
* 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
|
|
@ -17,11 +17,18 @@
|
|||
----------------------------------------------------------------------
|
||||
|
||||
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>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -91,6 +98,9 @@ void uiuc_map_CD()
|
|||
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
|
||||
|
|
|
@ -18,6 +18,12 @@
|
|||
|
||||
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.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -91,6 +97,9 @@ void uiuc_map_CL()
|
|||
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
|
||||
|
|
|
@ -17,11 +17,18 @@
|
|||
----------------------------------------------------------------------
|
||||
|
||||
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>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -78,6 +85,11 @@ void uiuc_map_CY()
|
|||
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
|
||||
|
|
|
@ -17,11 +17,18 @@
|
|||
----------------------------------------------------------------------
|
||||
|
||||
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>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -82,6 +89,9 @@ void uiuc_map_Cm()
|
|||
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
|
||||
|
|
|
@ -17,11 +17,18 @@
|
|||
----------------------------------------------------------------------
|
||||
|
||||
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>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -78,6 +85,11 @@ void uiuc_map_Cn()
|
|||
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
|
||||
|
|
|
@ -17,11 +17,18 @@
|
|||
----------------------------------------------------------------------
|
||||
|
||||
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>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -77,6 +84,11 @@ void uiuc_map_Croll()
|
|||
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
|
||||
|
|
|
@ -17,9 +17,10 @@
|
|||
----------------------------------------------------------------------
|
||||
|
||||
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
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -87,6 +88,8 @@ void uiuc_map_controlSurface()
|
|||
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
|
||||
|
|
|
@ -18,11 +18,13 @@
|
|||
----------------------------------------------------------------------
|
||||
|
||||
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>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -138,6 +140,8 @@ void uiuc_map_record3()
|
|||
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
|
||||
|
|
|
@ -18,11 +18,20 @@
|
|||
----------------------------------------------------------------------
|
||||
|
||||
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>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -77,26 +86,118 @@ void uiuc_map_record4()
|
|||
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 ********************/
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -25,10 +25,22 @@
|
|||
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>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
@ -795,7 +807,7 @@ void uiuc_recorder( double dt )
|
|||
}
|
||||
case Lat_control_record:
|
||||
{
|
||||
fout << Long_control << " ";
|
||||
fout << Lat_control << " ";
|
||||
break;
|
||||
}
|
||||
case aileron_record:
|
||||
|
@ -810,7 +822,7 @@ void uiuc_recorder( double dt )
|
|||
}
|
||||
case Rudder_pedal_record:
|
||||
{
|
||||
fout << Long_control << " ";
|
||||
fout << Rudder_pedal << " ";
|
||||
break;
|
||||
}
|
||||
case rudder_record:
|
||||
|
@ -825,7 +837,7 @@ void uiuc_recorder( double dt )
|
|||
}
|
||||
case Flap_handle_record:
|
||||
{
|
||||
fout << flap << " ";
|
||||
fout << Flap_handle << " ";
|
||||
break;
|
||||
}
|
||||
case flap_record:
|
||||
|
@ -838,6 +850,16 @@ void uiuc_recorder( double dt )
|
|||
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:
|
||||
|
@ -875,6 +897,111 @@ void uiuc_recorder( double dt )
|
|||
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 << " ";
|
||||
|
@ -905,6 +1032,106 @@ void uiuc_recorder( double dt )
|
|||
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 << " ";
|
||||
|
@ -930,6 +1157,71 @@ void uiuc_recorder( double dt )
|
|||
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 << " ";
|
||||
|
@ -945,6 +1237,71 @@ void uiuc_recorder( double dt )
|
|||
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 << " ";
|
||||
|
@ -960,6 +1317,66 @@ void uiuc_recorder( double dt )
|
|||
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 << " ";
|
||||
|
@ -975,6 +1392,71 @@ void uiuc_recorder( double dt )
|
|||
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:
|
||||
|
|
|
@ -24,11 +24,15 @@
|
|||
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>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
@ -88,6 +92,7 @@
|
|||
#include <FDM/LaRCsim/ls_generic.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);
|
||||
|
@ -99,6 +104,7 @@ extern "C" void uiuc_force_moment(double dt);
|
|||
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 ();
|
||||
|
||||
|
@ -184,21 +190,24 @@ void uiuc_force_moment(double dt)
|
|||
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;
|
||||
}
|
||||
F_X_wind = -1 * CD * qS;
|
||||
else
|
||||
{
|
||||
F_X_wind = -CD * qS;
|
||||
F_Y_wind = CY * qS;
|
||||
F_Z_wind = -1 * CL * 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;
|
||||
|
||||
}
|
||||
/* Moment calculations */
|
||||
M_l_aero = Cl * qSb;
|
||||
M_m_aero = Cm * qScbar;
|
||||
|
@ -263,4 +272,9 @@ void uiuc_record_routine(double dt)
|
|||
if (Simtime >= recordStartTime)
|
||||
uiuc_recorder(dt);
|
||||
}
|
||||
|
||||
//void uiuc_network_routine ()
|
||||
//{
|
||||
// uiuc_network();
|
||||
//}
|
||||
//end uiuc_wrapper.cpp
|
||||
|
|
|
@ -4,5 +4,6 @@ void uiuc_force_moment(double dt);
|
|||
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 ();
|
||||
|
|
Loading…
Reference in a new issue