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.2 2002/11/08 17:03:50 curt
43 Latest revisions of the UIUC code.
45 Revision 1.1.1.1 2002/09/10 01:14:02 curt
46 Initial revision of FlightGear-0.9.0
48 Revision 1.5 2002/04/01 19:37:34 curt
49 I have attached revisions to the UIUC code. The revisions include the
50 ability to run a nonlinear model with flaps. The files ls_model.c and
51 uiuc_aero.c were changed since we had some functions with the same
52 name. The name changes doesn't affect the code, it just makes it a
53 little easier to read. There are changes in LaRCsim.cxx so UIUC
54 models have engine sound. Could you send me an email when you receive
55 this and/or when the changes make it to the CVS? Thanks.
57 Also I noticed you have some outdated files that are no longer used in
58 the UIUCModel directory. They are uiuc_initializemaps1.cpp,
59 uiuc_initializemaps2.cpp, uiuc_initializemaps3.cpp, and
60 uiuc_initializemaps4.cpp
64 Revision 1.4 2001/09/14 18:47:27 curt
65 More changes in support of UIUCModel.
67 Revision 1.3 2000/10/28 14:30:33 curt
68 Updates by Tony working on the FDM interface bus.
70 Revision 1.2 2000/04/10 18:09:41 curt
71 David Megginson made a few (mostly minor) mods to the LaRCsim files, and
72 it's now possible to choose the LaRCsim model at runtime, as in
78 fgfs --aircraft=uiuc --aircraft-dir=Aircraft-uiuc/Boeing747
80 I did this so that I could play with the UIUC stuff without losing
81 Tony's C172 with its flaps, etc. I did my best to respect the design
82 of the LaRCsim code by staying in C, making only minimal changes, and
83 not introducing any dependencies on the rest of FlightGear. The
84 modified files are attached.
86 Revision 1.1.1.1 1999/06/17 18:07:33 curt
89 Revision 1.1.1.1 1999/04/05 21:32:45 curt
90 Start of 0.6.x branch.
92 Revision 1.3 1998/08/06 12:46:39 curt
95 Revision 1.2 1998/01/19 18:40:27 curt
96 Tons of little changes to clean up the code and to remove fatal errors
97 when building with the c++ compiler.
99 Revision 1.1 1997/05/29 00:09:58 curt
100 Initial Flight Gear revision.
102 * Revision 1.3 1995/03/06 18:49:46 bjax
103 * Added dt and initialize flag parameters to subroutine calls. This will
104 * support trim routine (to allow single throttle setting to drive
105 * all four throttle positions, for example, if initialize is TRUE).
107 * Revision 1.2 1993/03/10 06:38:09 bjax
108 * Added additional calls: inertias() and subsystems()... EBJ
110 * Revision 1.1 92/12/30 13:19:08 bjax
114 ----------------------------------------------------------------------------
118 ----------------------------------------------------------------------------
120 CALLED BY: ls_step (in initialization), ls_loop (planned)
122 ----------------------------------------------------------------------------
124 CALLS TO: aero(), engine(), gear()
126 ----------------------------------------------------------------------------
130 ----------------------------------------------------------------------------
134 --------------------------------------------------------------------------*/
135 #include "ls_types.h"
136 #include "ls_model.h"
137 #include "default_model_routines.h"
142 void ls_model( SCALAR dt, int Initialize ) {
143 switch (current_model) {
145 inertias( dt, Initialize );
146 subsystems( dt, Initialize );
147 navion_aero( dt, Initialize );
148 navion_engine( dt, Initialize );
149 navion_gear( dt, Initialize );
152 if(Initialize < 0) c172_init();
153 inertias( dt, Initialize );
154 subsystems( dt, Initialize );
155 c172_aero( dt, Initialize );
156 c172_engine( dt, Initialize );
157 c172_gear( dt, Initialize );
160 inertias( dt, Initialize );
161 subsystems( dt, Initialize );
162 cherokee_aero( dt, Initialize );
163 cherokee_engine( dt, Initialize );
164 cherokee_gear( dt, Initialize );
167 inertias( dt, Initialize );
168 subsystems( dt, Initialize );
169 uiuc_engine_2_wrapper( dt, Initialize );
170 uiuc_aero_2_wrapper( dt, Initialize );
171 uiuc_gear_2_wrapper( dt, Initialize );
172 //uiuc_network_2_wrapper();
173 uiuc_record_2_wrapper(dt);