1
0
Fork 0
flightgear/src/FDM/LaRCsim/ls_model.c

222 lines
6.6 KiB
C
Raw Normal View History

1997-05-29 00:09:51 +00:00
/***************************************************************************
TITLE: ls_model()
----------------------------------------------------------------------------
FUNCTION: Model loop executive
----------------------------------------------------------------------------
MODULE STATUS: developmental
----------------------------------------------------------------------------
GENEALOGY: Created 15 October 1992 as part of LaRCSIM project
by Bruce Jackson.
----------------------------------------------------------------------------
DESIGNED BY: Bruce Jackson
CODED BY: Bruce Jackson
MAINTAINED BY: maintainer
----------------------------------------------------------------------------
MODIFICATION HISTORY:
DATE PURPOSE BY
950306 Added parameters to call: dt, which is the step size
to be taken this loop (caution: may vary from call to call)
and Initialize, which if non-zero, implies an initialization
is requested. EBJ
CURRENT RCS HEADER INFO:
$Header$
$Log$
Revision 1.5 2005/12/19 12:53:21 ehofman
Vassilii Khachaturov:
clean up some build warnings caught with gcc-4.0.
Revision 1.4 2003/07/25 17:53:41 mselig
UIUC code initilization mods to tidy things up a bit.
Revision 1.3 2003/05/13 18:45:06 curt
Robert Deters:
I have attached some revisions for the UIUCModel and some LaRCsim.
The only thing you should need to check is LaRCsim.cxx. The file
I attached is a revised version of 1.5 and the latest is 1.7. Also,
uiuc_getwind.c and uiuc_getwind.h are no longer in the LaRCsim
directory. They have been moved over to UIUCModel.
Revision 1.2 2003/03/31 03:05:41 m-selig
uiuc wind changes, MSS
Revision 1.1.1.1 2003/02/28 01:33:39 rob
uiuc version of FlightGear v0.9.0
Revision 1.3 2002/12/12 00:01:04 rob
*** empty log message ***
Revision 1.2 2002/10/22 21:06:49 rob
*** empty log message ***
Revision 1.2 2002/08/29 18:56:37 rob
*** empty log message ***
Revision 1.1.1.1 2002/04/24 17:08:23 rob
UIUC version of FlightGear-0.7.pre11
2002-09-10 01:13:59 +00:00
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
2001-09-14 20:47:27 +00:00
Revision 1.4 2001/09/14 18:47:27 curt
More changes in support of UIUCModel.
Revision 1.3 2000/10/28 14:30:33 curt
Updates by Tony working on the FDM interface bus.
Revision 1.2 2000/04/10 18:09:41 curt
David Megginson made a few (mostly minor) mods to the LaRCsim files, and
it's now possible to choose the LaRCsim model at runtime, as in
fgfs --aircraft=c172
or
fgfs --aircraft=uiuc --aircraft-dir=Aircraft-uiuc/Boeing747
I did this so that I could play with the UIUC stuff without losing
Tony's C172 with its flaps, etc. I did my best to respect the design
of the LaRCsim code by staying in C, making only minimal changes, and
not introducing any dependencies on the rest of FlightGear. The
modified files are attached.
Revision 1.1.1.1 1999/06/17 18:07:33 curt
Start of 0.7.x branch
1999-04-05 21:32:32 +00:00
1999-06-17 20:07:19 +00:00
Revision 1.1.1.1 1999/04/05 21:32:45 curt
Start of 0.6.x branch.
1998-08-06 12:46:37 +00:00
Revision 1.3 1998/08/06 12:46:39 curt
Header change.
Revision 1.2 1998/01/19 18:40:27 curt
Tons of little changes to clean up the code and to remove fatal errors
when building with the c++ compiler.
1997-05-29 00:09:51 +00:00
Revision 1.1 1997/05/29 00:09:58 curt
Initial Flight Gear revision.
* Revision 1.3 1995/03/06 18:49:46 bjax
* Added dt and initialize flag parameters to subroutine calls. This will
* support trim routine (to allow single throttle setting to drive
* all four throttle positions, for example, if initialize is TRUE).
*
* Revision 1.2 1993/03/10 06:38:09 bjax
* Added additional calls: inertias() and subsystems()... EBJ
*
* Revision 1.1 92/12/30 13:19:08 bjax
* Initial revision
*
----------------------------------------------------------------------------
REFERENCES:
----------------------------------------------------------------------------
CALLED BY: ls_step (in initialization), ls_loop (planned)
----------------------------------------------------------------------------
CALLS TO: aero(), engine(), gear()
----------------------------------------------------------------------------
INPUTS:
----------------------------------------------------------------------------
OUTPUTS:
--------------------------------------------------------------------------*/
#include <stdio.h>
1997-05-29 00:09:51 +00:00
#include "ls_types.h"
#include "ls_model.h"
#include "default_model_routines.h"
1997-05-29 00:09:51 +00:00
Model current_model;
1997-05-29 00:09:51 +00:00
void ls_model( SCALAR dt, int Initialize ) {
switch (current_model) {
case NAVION:
inertias( dt, Initialize );
subsystems( dt, Initialize );
navion_aero( dt, Initialize );
navion_engine( dt, Initialize );
navion_gear( dt, Initialize );
break;
case C172:
printf("here we are in C172 \n");
if(Initialize < 0) c172_init();
inertias( dt, Initialize );
subsystems( dt, Initialize );
c172_aero( dt, Initialize );
c172_engine( dt, Initialize );
c172_gear( dt, Initialize );
break;
case CHEROKEE:
inertias( dt, Initialize );
subsystems( dt, Initialize );
cherokee_aero( dt, Initialize );
cherokee_engine( dt, Initialize );
cherokee_gear( dt, Initialize );
break;
case BASIC:
// printf("here we are in BASIC \n");
if(Initialize < 0) basic_init();
printf("Initialize %d \n", Initialize);
inertias( dt, Initialize );
subsystems( dt, Initialize );
basic_aero( dt, Initialize );
basic_engine( dt, Initialize );
basic_gear( dt, Initialize );
break;
case UIUC:
inertias( dt, Initialize );
subsystems( dt, Initialize );
// During initialization period, re-initialize velocities
// and euler angles
if (Initialize !=0) uiuc_init_2_wrapper();
uiuc_network_recv_2_wrapper();
uiuc_engine_2_wrapper( dt, Initialize );
uiuc_wind_2_wrapper( dt, Initialize );
uiuc_aero_2_wrapper( dt, Initialize );
uiuc_gear_2_wrapper( dt, Initialize );
uiuc_network_send_2_wrapper();
uiuc_record_2_wrapper(dt);
break;
}
1997-05-29 00:09:51 +00:00
}