]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/LaRCsim/ls_aux.c
I forgot a linker dependency. It really si time to figure out why these are all needed.
[flightgear.git] / src / FDM / LaRCsim / ls_aux.c
index 252de03ad7bac67c5cb99826d94092d2ada0596e..a2a59f508f5b86ee51298297321ed40dc8eeef0a 100644 (file)
 
 $Header$
 $Log$
-Revision 1.1  1999/04/05 21:32:45  curt
-Initial revision
+Revision 1.4  2003/05/25 12:14:46  ehofman
+Rename some defines to prevent a namespace clash
+
+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:39  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.2  2002/10/22 21:06:49  rob
+*** empty log message ***
+
+Revision 1.1.1.1  2002/04/24 17:08:23  rob
+UIUC version of FlightGear-0.7.pre11
+
+Revision 1.3  2001/03/24 05:03:12  curt
+SG-ified logstream.
+
+Revision 1.2  2000/10/23 22:34:54  curt
+I tested:
+LaRCsim c172 on-ground and in-air starts, reset: all work
+UIUC Cessna172 on-ground and in-air starts work as expected, reset
+results in an aircraft that is upside down but does not crash FG.   I
+don't know what it was like before, so it may well be no change.
+JSBSim c172 and X15 in-air starts work fine, resets now work (and are
+trimmed), on-ground starts do not -- the c172 ends up on its back.  I
+suspect this is no worse than before.
+
+I did not test:
+Balloon (the weather code returns nan's for the atmosphere data --this
+is in the weather module and apparently is a linux only bug)
+ADA (don't know how)
+MagicCarpet  (needs work yet)
+External (don't know how)
+
+known to be broken:
+LaRCsim c172 on-ground starts with a negative terrain altitude (this
+happens at KPAO when the scenery is not present).   The FDM inits to
+about 50 feet AGL and the model falls to the ground.  It does stay
+upright, however, and seems to be fine once it settles out, FWIW.
+
+To do:
+--implement set_Model on the bus
+--bring Christian's weather data into JSBSim
+-- add default method to bus for updating things like the sin and cos of
+latitude (for Balloon, MagicCarpet)
+-- lots of cleanup
+
+The files:
+src/FDM/flight.cxx
+src/FDM/flight.hxx
+-- all data members now declared protected instead of private.
+-- eliminated all but a small set of 'setters', no change to getters.
+-- that small set is declared virtual, the default implementation
+provided preserves the old behavior
+-- all of the vector data members are now initialized.
+-- added busdump() method -- SG_LOG's  all the bus data when called,
+useful for diagnostics.
+
+src/FDM/ADA.cxx
+-- bus data members now directly assigned to
+
+src/FDM/Balloon.cxx
+-- bus data members now directly assigned to
+-- changed V_equiv_kts to V_calibrated_kts
+
+src/FDM/JSBSim.cxx
+src/FDM/JSBSim.hxx
+-- bus data members now directly assigned to
+-- implemented the FGInterface virtual setters with JSBSim specific
+logic
+-- changed the static FDMExec to a dynamic fdmex (needed so that the
+JSBSim object can be deleted when a model change is called for)
+-- implemented constructor and destructor, moved some of the logic
+formerly in init() to constructor
+-- added logic to bring up FGEngInterface objects and set the RPM and
+throttle values.
+
+src/FDM/LaRCsim.cxx
+src/FDM/LaRCsim.hxx
+-- bus data members now directly assigned to
+-- implemented the FGInterface virtual setters with LaRCsim specific
+logic, uses LaRCsimIC
+-- implemented constructor and destructor, moved some of the logic
+formerly in init() to constructor
+-- moved default inertias to here from fg_init.cxx
+-- eliminated the climb rate calculation.  The equivalent, climb_rate =
+-1*vdown, is now in copy_from_LaRCsim().
+
+src/FDM/LaRCsimIC.cxx
+src/FDM/LaRCsimIC.hxx
+-- similar to FGInitialCondition, this class has all the logic needed to
+turn data like Vc and Mach into the more fundamental quantities LaRCsim
+needs to initialize.
+-- put it in src/FDM since it is a class
+
+src/FDM/MagicCarpet.cxx
+ -- bus data members now directly assigned to
+
+src/FDM/Makefile.am
+-- adds LaRCsimIC.hxx and cxx
+
+src/FDM/JSBSim/FGAtmosphere.h
+src/FDM/JSBSim/FGDefs.h
+src/FDM/JSBSim/FGInitialCondition.cpp
+src/FDM/JSBSim/FGInitialCondition.h
+src/FDM/JSBSim/JSBSim.cpp
+-- changes to accomodate the new bus
+
+src/FDM/LaRCsim/atmos_62.h
+src/FDM/LaRCsim/ls_geodesy.h
+-- surrounded prototypes with #ifdef __cplusplus ... #endif , functions
+here are needed in LaRCsimIC
+
+src/FDM/LaRCsim/c172_main.c
+src/FDM/LaRCsim/cherokee_aero.c
+src/FDM/LaRCsim/ls_aux.c
+src/FDM/LaRCsim/ls_constants.h
+src/FDM/LaRCsim/ls_geodesy.c
+src/FDM/LaRCsim/ls_geodesy.h
+src/FDM/LaRCsim/ls_step.c
+src/FDM/UIUCModel/uiuc_betaprobe.cpp
+-- changed PI to LS_PI, eliminates preprocessor naming conflict with
+weather module
+
+src/FDM/LaRCsim/ls_interface.c
+src/FDM/LaRCsim/ls_interface.h
+-- added function ls_set_model_dt()
+
+src/Main/bfi.cxx
+-- eliminated calls that set the NED speeds to body components.  They
+are no longer needed and confuse the new bus.
+
+src/Main/fg_init.cxx
+-- eliminated calls that just brought the bus data up-to-date (e.g.
+set_sin_cos_latitude). or set default values.   The bus now handles the
+defaults and updates itself when the setters are called (for LaRCsim and
+JSBSim).  A default method for doing this needs to be added to the bus.
+-- added fgVelocityInit() to set the speed the user asked for.  Both
+JSBSim and LaRCsim can now be initialized using any of:
+vc,mach, NED components, UVW components.
+
+src/Main/main.cxx
+--eliminated call to fgFDMSetGroundElevation, this data is now 'pulled'
+onto the bus every update()
+
+src/Main/options.cxx
+src/Main/options.hxx
+-- added enum to keep track of the speed requested by the user
+-- eliminated calls to set NED velocity properties to body speeds, they
+are no longer needed.
+-- added options for the NED components.
+
+src/Network/garmin.cxx
+src/Network/nmea.cxx
+--eliminated calls that just brought the bus data up-to-date (e.g.
+set_sin_cos_latitude).  The bus now updates itself when the setters are
+called (for LaRCsim and JSBSim).  A default method for doing this needs
+to be added to the bus.
+-- changed set_V_equiv_kts to set_V_calibrated_kts.  set_V_equiv_kts no
+longer exists ( get_V_equiv_kts still does, though)
+
+src/WeatherCM/FGLocalWeatherDatabase.cpp
+-- commented out the code to put the weather data on the bus, a
+different scheme for this is needed.
+
+Revision 1.1.1.1  1999/06/17 18:07:33  curt
+Start of 0.7.x branch
+
+Revision 1.1.1.1  1999/04/05 21:32:45  curt
+Start of 0.6.x branch.
 
 Revision 1.4  1998/08/24 20:09:26  curt
 Code optimization tweaks from Norman Vine.
@@ -137,7 +315,6 @@ Initial Flight Gear revision.
 
 #include <math.h>
 
-
 void ls_aux( void ) {
 
        SCALAR  dx_pilot_from_cg, dy_pilot_from_cg, dz_pilot_from_cg;
@@ -162,7 +339,7 @@ void ls_aux( void ) {
        V_east_rel_ground  = V_east 
          - OMEGA_EARTH*Sea_level_radius*cos( Lat_geocentric );
        V_down_rel_ground  = V_down;
-       
+
        V_north_rel_airmass = V_north_rel_ground - V_north_airmass;
        V_east_rel_airmass  = V_east_rel_ground  - V_east_airmass;
        V_down_rel_airmass  = V_down_rel_ground  - V_down_airmass;
@@ -191,14 +368,14 @@ void ls_aux( void ) {
                
        if( (v_XZ_plane_2 == 0) || (V_rel_wind == 0) )
        {
-               Alpha_dot = 0;
-               Beta_dot = 0;
+               Std_Alpha_dot = 0;
+               Std_Beta_dot = 0;
        }
        else
        {
-               Alpha_dot = (U_body*W_dot_body - W_body*U_dot_body)/
+               Std_Alpha_dot = (U_body*W_dot_body - W_body*U_dot_body)/
                  v_XZ_plane_2;
-               Beta_dot = (signU*v_XZ_plane_2*V_dot_body 
+               Std_Beta_dot = (signU*v_XZ_plane_2*V_dot_body 
                  - V_body*(U_body*U_dot_body + W_body*W_dot_body))
                    /(V_rel_wind*V_rel_wind*sqrt(v_XZ_plane_2));
        }
@@ -206,20 +383,20 @@ void ls_aux( void ) {
     /* Calculate flight path and other flight condition values */
 
        if (U_body == 0) 
-               Alpha = 0;
+               Std_Alpha = 0;
        else
-               Alpha = atan2( W_body, U_body );
+               Std_Alpha = atan2( W_body, U_body );
                
-       Cos_alpha = cos(Alpha);
-       Sin_alpha = sin(Alpha);
+       Cos_alpha = cos(Std_Alpha);
+       Sin_alpha = sin(Std_Alpha);
        
        if (V_rel_wind == 0)
-               Beta = 0;
+               Std_Beta = 0;
        else
-               Beta = asin( V_body/ V_rel_wind );
+               Std_Beta = asin( V_body/ V_rel_wind );
                
-       Cos_beta = cos(Beta);
-       Sin_beta = sin(Beta);
+       Cos_beta = cos(Std_Beta);
+       Sin_beta = sin(Std_Beta);
        
        V_true_kts = V_rel_wind * V_TO_KNOTS;
        
@@ -244,7 +421,7 @@ void ls_aux( void ) {
          Gamma_horiz_rad = atan2( V_east_rel_ground, V_north_rel_ground );
        
        if (Gamma_horiz_rad < 0) 
-         Gamma_horiz_rad = Gamma_horiz_rad + 2*PI;
+         Gamma_horiz_rad = Gamma_horiz_rad + 2*LS_PI;
        
     /* Calculate local gravity */