1 /***************************************************************************
5 ----------------------------------------------------------------------------
7 FUNCTION: Model loop executive
9 ----------------------------------------------------------------------------
11 MODULE STATUS: developmental
13 ----------------------------------------------------------------------------
15 GENEALOGY: Created 15 October 1992 as part of LaRCSIM project
18 ----------------------------------------------------------------------------
20 DESIGNED BY: Bruce Jackson
22 CODED BY: Bruce Jackson
24 MAINTAINED BY: maintainer
26 ----------------------------------------------------------------------------
32 950306 Added parameters to call: dt, which is the step size
33 to be taken this loop (caution: may vary from call to call)
34 and Initialize, which if non-zero, implies an initialization
37 CURRENT RCS HEADER INFO:
40 Revision 1.5 2002/04/01 19:37:34 curt
41 I have attached revisions to the UIUC code. The revisions include the
42 ability to run a nonlinear model with flaps. The files ls_model.c and
43 uiuc_aero.c were changed since we had some functions with the same
44 name. The name changes doesn't affect the code, it just makes it a
45 little easier to read. There are changes in LaRCsim.cxx so UIUC
46 models have engine sound. Could you send me an email when you receive
47 this and/or when the changes make it to the CVS? Thanks.
49 Also I noticed you have some outdated files that are no longer used in
50 the UIUCModel directory. They are uiuc_initializemaps1.cpp,
51 uiuc_initializemaps2.cpp, uiuc_initializemaps3.cpp, and
52 uiuc_initializemaps4.cpp
56 Revision 1.4 2001/09/14 18:47:27 curt
57 More changes in support of UIUCModel.
59 Revision 1.3 2000/10/28 14:30:33 curt
60 Updates by Tony working on the FDM interface bus.
62 Revision 1.2 2000/04/10 18:09:41 curt
63 David Megginson made a few (mostly minor) mods to the LaRCsim files, and
64 it's now possible to choose the LaRCsim model at runtime, as in
70 fgfs --aircraft=uiuc --aircraft-dir=Aircraft-uiuc/Boeing747
72 I did this so that I could play with the UIUC stuff without losing
73 Tony's C172 with its flaps, etc. I did my best to respect the design
74 of the LaRCsim code by staying in C, making only minimal changes, and
75 not introducing any dependencies on the rest of FlightGear. The
76 modified files are attached.
78 Revision 1.1.1.1 1999/06/17 18:07:33 curt
81 Revision 1.1.1.1 1999/04/05 21:32:45 curt
82 Start of 0.6.x branch.
84 Revision 1.3 1998/08/06 12:46:39 curt
87 Revision 1.2 1998/01/19 18:40:27 curt
88 Tons of little changes to clean up the code and to remove fatal errors
89 when building with the c++ compiler.
91 Revision 1.1 1997/05/29 00:09:58 curt
92 Initial Flight Gear revision.
94 * Revision 1.3 1995/03/06 18:49:46 bjax
95 * Added dt and initialize flag parameters to subroutine calls. This will
96 * support trim routine (to allow single throttle setting to drive
97 * all four throttle positions, for example, if initialize is TRUE).
99 * Revision 1.2 1993/03/10 06:38:09 bjax
100 * Added additional calls: inertias() and subsystems()... EBJ
102 * Revision 1.1 92/12/30 13:19:08 bjax
106 ----------------------------------------------------------------------------
110 ----------------------------------------------------------------------------
112 CALLED BY: ls_step (in initialization), ls_loop (planned)
114 ----------------------------------------------------------------------------
116 CALLS TO: aero(), engine(), gear()
118 ----------------------------------------------------------------------------
122 ----------------------------------------------------------------------------
126 --------------------------------------------------------------------------*/
127 #include "ls_types.h"
128 #include "ls_model.h"
129 #include "default_model_routines.h"
134 void ls_model( SCALAR dt, int Initialize ) {
135 switch (current_model) {
137 inertias( dt, Initialize );
138 subsystems( dt, Initialize );
139 navion_aero( dt, Initialize );
140 navion_engine( dt, Initialize );
141 navion_gear( dt, Initialize );
144 if(Initialize < 0) c172_init();
145 inertias( dt, Initialize );
146 subsystems( dt, Initialize );
147 c172_aero( dt, Initialize );
148 c172_engine( dt, Initialize );
149 c172_gear( dt, Initialize );
152 inertias( dt, Initialize );
153 subsystems( dt, Initialize );
154 cherokee_aero( dt, Initialize );
155 cherokee_engine( dt, Initialize );
156 cherokee_gear( dt, Initialize );
159 inertias( dt, Initialize );
160 subsystems( dt, Initialize );
161 uiuc_aero_2_wrapper( dt, Initialize );
162 uiuc_engine_2_wrapper( dt, Initialize );
163 uiuc_gear_2_wrapper( dt, Initialize );
164 //uiuc_network_2_wrapper();
165 uiuc_record_2_wrapper(dt);