X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FJSBSim%2FFGTrim.h;h=6d8069813705b390642b406414e2d1ab678930a3;hb=fbee3d10f0aafd4178fc1313edb8593c156b2874;hp=105da8affa981001263d59642eb248132b3a3715;hpb=5fcabc9982fabfe80060b7ccf52fb0d8ad9e3310;p=flightgear.git diff --git a/src/FDM/JSBSim/FGTrim.h b/src/FDM/JSBSim/FGTrim.h index 105da8aff..6d8069813 100644 --- a/src/FDM/JSBSim/FGTrim.h +++ b/src/FDM/JSBSim/FGTrim.h @@ -52,16 +52,6 @@ INCLUDES #include "FGFDMExec.h" #include "FGJSBBase.h" -#include "FGRotation.h" -#include "FGAtmosphere.h" -#include "FGState.h" -#include "FGFCS.h" -#include "FGAircraft.h" -#include "FGTranslation.h" -#include "FGPosition.h" -#include "FGAuxiliary.h" -#include "FGOutput.h" -#include "FGTrim.h" #include "FGTrimAxis.h" #include @@ -72,21 +62,19 @@ DEFINITIONS #define ID_TRIM "$Id$" -typedef enum { tLongitudinal, tFull, tGround, tPullup, - tCustom, tNone, tTurn - } TrimMode; - -#ifdef _WIN32 -#define snprintf _snprintf +#if defined(_WIN32) && !defined(__CYGWIN__) + #define snprintf _snprintf #endif /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FORWARD DECLARATIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -COMMENTS, REFERENCES, and NOTES [use "class documentation" below for API docs] -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ +namespace JSBSim { + +typedef enum { tLongitudinal, tFull, tGround, tPullup, + tCustom, tNone, tTurn + } TrimMode; /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CLASS DOCUMENTATION @@ -105,30 +93,25 @@ CLASS DOCUMENTATION last three are used for on-ground trimming. The state-control pairs used in a given trim are completely user configurable and several pre-defined modes are provided as well. They are: - - + Note that trims can (and do) fail for reasons that are completely outside the control of the trimming routine itself. The most common problem is the initial conditions: is the model capable of steady state flight at those conditions? Check the speed, altitude, configuration (flaps, gear, etc.), weight, cg, and anything else that may be relevant. - Example usage: + Example usage:
     FGFDMExec* FDMExec = new FGFDMExec();
-    .
-    .
-    .
+
     FGInitialCondition* fgic = new FGInitialCondition(FDMExec);
     FGTrim *fgt(FDMExec,fgic,tFull);
     fgic->SetVcaibratedKtsIC(100);
@@ -137,13 +120,9 @@ CLASS DOCUMENTATION
     if( !fgt->DoTrim() ) {
       cout << "Trim Failed" << endl;
     }
-    fgt->ReportState();  
+    fgt->ReportState(); 
@author Tony Peden - @version $Id$ - @see - Header File - @see - Source File + @version "$Id$" */ /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -205,13 +184,11 @@ private: public: /** Initializes the trimming class @param FDMExec pointer to a JSBSim executive object. - @param FGIC pointer to a FGInitialCondition object - @param TrimMode the set of axes to trim. Can be: - tLongitudinal, tFull, tGround, tCustom, or tNone + @param tm trim mode */ - FGTrim(FGFDMExec *FDMExec, FGInitialCondition *FGIC, TrimMode tt); + FGTrim(FGFDMExec *FDMExec, TrimMode tm=tGround ); - ~FGTrim(void); + ~FGTrim(void); /** Execute the trim */ @@ -227,6 +204,12 @@ public: /** Iteration statistics */ void TrimStats(); + + /** Clear all state-control pairs and set a predefined trim mode + @param tm the set of axes to trim. Can be: + tLongitudinal, tFull, tGround, tCustom, or tNone + */ + void SetMode(TrimMode tm); /** Clear all state-control pairs from the current configuration. The trimming routine must have at least one state-control pair @@ -251,16 +234,16 @@ public: /** Change the control used to zero a state previously configured @param state the accel or other condition to zero - @param control the control used to zero the state + @param new_control the control used to zero the state */ bool EditState( State state, Control new_control ); /** automatically switch to trimming longitudinal acceleration with flight path angle (gamma) once it becomes apparent that there is not enough/too much thrust. - @param gamma_fallback true to enable fallback + @param bb true to enable fallback */ - inline void SetGammaFallback(bool bb) { gamma_fallback=true; } + inline void SetGammaFallback(bool bb) { gamma_fallback=bb; } /** query the fallback state @return true if fallback is enabled. @@ -308,15 +291,6 @@ public: inline double GetTargetNlf(void) { return targetNlf; } }; - +} #endif - - - - - - - - -