![]() |
JSBSim Flight Dynamics Model
1.0 (02 March 2017)
An Open Source Flight Dynamics and Control Software Library in C++
|
Inheritance diagram for FGTrimAnalysis:
Collaboration diagram for FGTrimAnalysis:Public Member Functions | |
| FGTrimAnalysis (FGFDMExec *FDMExec, TrimAnalysisMode tam=taFull) | |
| Initializes the trimming class. More... | |
| ~FGTrimAnalysis (void) | |
| Destructor. | |
| bool | AddControl (TaControl control) |
| Add a control to the current configuration. More... | |
| void | CalculatePhiWFromTargetNlfTurn (double nlf) |
| Calculate the wind axis bank angle from a given Nlf (sets also the target Nlf) More... | |
| void | ClearControls (void) |
| Clear all controls from the current configuration. More... | |
| void | ClearDebug (void) |
| bool | DoTrim (void) |
| Execute the trim. | |
| bool | EditState (TaControl new_control, double new_initvalue, double new_step, double new_min, double new_max) |
| Change the control settings previously configured. More... | |
| vector< FGTrimAnalysisControl * > * | GetControls () |
| double | GetCostFunctionValue () const |
| double | GetGamma () |
| Return the current flight path angle in TrimAnalysis object. More... | |
| bool | GetGammaFallback (void) |
| query the fallback state More... | |
| double | GetGammaRad () |
| Gets flight path angle. More... | |
| TrimAnalysisMode | GetMode () const |
| double | GetPhiRad () |
| Gets Euler angle phi. More... | |
| double | GetPhiWRad () |
| Gets Euler angle phiW (wind axes) More... | |
| double | GetPsiRad () |
| Gets Euler angle psi. More... | |
| ofstream * | GetResultsFile () const |
| Get the pointer to the file where trim analysis results are written,. More... | |
| double | GetTargetNlf (void) |
| Gets target normal load factor in steady turn. More... | |
| double | GetThetaRad () |
| Gets Euler angle theta. More... | |
| double | GetTolerance (void) |
| Get the tolerance for declaring a state trimmed. More... | |
| bool | GetTrimFailed (void) |
| Gets trim result status. More... | |
| double | GetVtFps () |
| Gets true speed [fps] from IC. More... | |
| bool | Load (string fname, bool useStoredPath=true) |
| Loads the trim configuration from file. More... | |
| bool | RemoveControl (TaControl control) |
| Remove a specific control from the current configuration. More... | |
| void | Report (void) |
| Print the results of the trim. More... | |
| void | SetCostFunctionValue (double value) |
| Set the value of the cost function. More... | |
| void | SetDebug (int level) |
| Debug level 1 shows results of each top-level iteration Debug level 2 shows level 1 & results of each per-axis iteration. | |
| void | SetDottedValues (double udot, double vdot, double wdot, double pdot, double qdot, double rdot) |
| Sets Dotted values. More... | |
| void | SetEulerAngles (double phi0, double theta0, double psi0) |
| Sets Euler angles. More... | |
| void | SetGammaFallback (bool bb) |
| automatically switch to trimming longitudinal acceleration with flight path angle (gamma) once it becomes apparent that there is not enough/too much thrust. More... | |
| void | SetMaxCycles (int ii) |
| Set the iteration limit. More... | |
| void | SetMode (TrimAnalysisMode tam) |
| Clear all controls and set a predefined trim mode (Note: controls are intended here as those variables to be adjusted for attaining convergence of the trimming algorithm) More... | |
| bool | SetResultsFile (string name) |
| Set the file where trim analysis results are written, open and get ready. More... | |
| void | SetState (double u0, double v0, double w0, double p0, double q0, double r0, double alpha0, double beta0, double phi0, double theta0, double psi0, double gamma0) |
| Sets state variables. More... | |
| void | SetTargetNlf (double nlf) |
| Sets target normal load factor in steady turn. More... | |
| void | SetTolerance (double tt) |
| Set the tolerance for declaring a state trimmed. More... | |
| void | SetTrimFailed (bool tf) |
| Sets trim result status. More... | |
| void | SetTrimSuccessfull () |
| void | TrimStats () |
| Iteration statistics. | |
| FGColumnVector3 | UpdateRatesPullup (void) |
| Updates angular rates for pull-up trim. More... | |
| FGColumnVector3 | UpdateRatesTurn (double psi, double theta, double phi, double phiW) |
| Updates angular rates for turn trim according to turning trim constraints. More... | |
Public Member Functions inherited from FGJSBBase | |
| FGJSBBase () | |
| Constructor for FGJSBBase. | |
| virtual | ~FGJSBBase () |
| Destructor for FGJSBBase. | |
| void | disableHighLighting (void) |
| Disables highlighting in the console output. | |
| std::string | GetVersion (void) |
| Returns the version number of JSBSim. More... | |
| void | PutMessage (const Message &msg) |
| Places a Message structure on the Message queue. More... | |
| void | PutMessage (const std::string &text) |
| Creates a message with the given text and places it on the queue. More... | |
| void | PutMessage (const std::string &text, bool bVal) |
| Creates a message with the given text and boolean value and places it on the queue. More... | |
| void | PutMessage (const std::string &text, int iVal) |
| Creates a message with the given text and integer value and places it on the queue. More... | |
| void | PutMessage (const std::string &text, double dVal) |
| Creates a message with the given text and double value and places it on the queue. More... | |
| int | SomeMessages (void) |
| Reads the message on the queue (but does not delete it). More... | |
| void | ProcessMessage (void) |
| Reads the message on the queue and removes it from the queue. More... | |
| Message * | ProcessNextMessage (void) |
| Reads the next message on the queue and removes it from the queue. More... | |
Public Member Functions inherited from FGXMLFileRead | |
| Element * | LoadXMLDocument (const SGPath &XML_filename, bool verbose=true) |
| Element * | LoadXMLDocument (const SGPath &XML_filename, FGXMLParse &fparse, bool verbose=true) |
| void | ResetParser (void) |
Friends | |
| class | Objective |
Additional Inherited Members | |
Public Types inherited from FGJSBBase | |
| enum | { eL = 1, eM, eN } |
| Moments L, M, N. | |
| enum | { eP = 1, eQ, eR } |
| Rates P, Q, R. | |
| enum | { eU = 1, eV, eW } |
| Velocities U, V, W. | |
| enum | { eX = 1, eY, eZ } |
| Positions X, Y, Z. | |
| enum | { ePhi = 1, eTht, ePsi } |
| Euler angles Phi, Theta, Psi. | |
| enum | { eDrag = 1, eSide, eLift } |
| Stability axis forces, Drag, Side force, Lift. | |
| enum | { eRoll = 1, ePitch, eYaw } |
| Local frame orientation Roll, Pitch, Yaw. | |
| enum | { eNorth = 1, eEast, eDown } |
| Local frame position North, East, Down. | |
| enum | { eLat = 1, eLong, eRad } |
| Locations Radius, Latitude, Longitude. | |
| enum | { inNone = 0, inDegrees, inRadians, inMeters, inFeet } |
| Conversion specifiers. | |
Static Public Member Functions inherited from FGJSBBase | |
| static double | CelsiusToFahrenheit (double celsius) |
| Converts from degrees Celsius to degrees Fahrenheit. More... | |
| static double | CelsiusToKelvin (double celsius) |
| Converts from degrees Celsius to degrees Kelvin. More... | |
| static double | CelsiusToRankine (double celsius) |
| Converts from degrees Celsius to degrees Rankine. More... | |
| static double | Constrain (double min, double value, double max) |
| Constrain a value between a minimum and a maximum value. | |
| static bool | EqualToRoundoff (double a, double b) |
| Finite precision comparison. More... | |
| static bool | EqualToRoundoff (float a, float b) |
| Finite precision comparison. More... | |
| static bool | EqualToRoundoff (float a, double b) |
| Finite precision comparison. More... | |
| static bool | EqualToRoundoff (double a, float b) |
| Finite precision comparison. More... | |
| static double | FahrenheitToCelsius (double fahrenheit) |
| Converts from degrees Fahrenheit to degrees Celsius. More... | |
| static double | FeetToMeters (double measure) |
| Converts from feet to meters. More... | |
| static double | GaussianRandomNumber (void) |
| static double | KelvinToCelsius (double kelvin) |
| Converts from degrees Kelvin to degrees Celsius. More... | |
| static double | KelvinToFahrenheit (double kelvin) |
| Converts from degrees Kelvin to degrees Fahrenheit. More... | |
| static double | KelvinToRankine (double kelvin) |
| Converts from degrees Kelvin to degrees Rankine. More... | |
| static double | MachFromVcalibrated (double vcas, double p, double psl, double rhosl) |
| Calculate the Mach number from the calibrated airspeed. More... | |
| static double | PitotTotalPressure (double mach, double p) |
| Compute the total pressure in front of the Pitot tube. More... | |
| static double | RankineToCelsius (double rankine) |
| Converts from degrees Rankine to degrees Celsius. More... | |
| static double | RankineToKelvin (double rankine) |
| Converts from degrees Rankine to degrees Kelvin. More... | |
| static double | sign (double num) |
| static double | VcalibratedFromMach (double mach, double p, double psl, double rhosl) |
| Calculate the calibrated airspeed from the Mach number. More... | |
Static Public Attributes inherited from FGJSBBase | |
| static short | debug_lvl = 1 |
| static char | highint [5] = {27, '[', '1', 'm', '\0' } |
| highlights text | |
| static char | halfint [5] = {27, '[', '2', 'm', '\0' } |
| low intensity text | |
| static char | normint [6] = {27, '[', '2', '2', 'm', '\0' } |
| normal intensity text | |
| static char | reset [5] = {27, '[', '0', 'm', '\0' } |
| resets text properties | |
| static char | underon [5] = {27, '[', '4', 'm', '\0' } |
| underlines text | |
| static char | underoff [6] = {27, '[', '2', '4', 'm', '\0' } |
| underline off | |
| static char | fgblue [6] = {27, '[', '3', '4', 'm', '\0' } |
| blue text | |
| static char | fgcyan [6] = {27, '[', '3', '6', 'm', '\0' } |
| cyan text | |
| static char | fgred [6] = {27, '[', '3', '1', 'm', '\0' } |
| red text | |
| static char | fggreen [6] = {27, '[', '3', '2', 'm', '\0' } |
| green text | |
| static char | fgdef [6] = {27, '[', '3', '9', 'm', '\0' } |
| default text | |
Protected Member Functions inherited from FGJSBBase | |
| void | Debug (int) |
Static Protected Member Functions inherited from FGJSBBase | |
| static std::string | CreateIndexedPropertyName (const std::string &Property, int index) |
Static Protected Attributes inherited from FGJSBBase | |
| static const double | degtorad = 0.017453292519943295769236907684886 |
| static const double | fpstokts = 1.0/ktstofps |
| static const double | fttom = 0.3048 |
| static int | gaussian_random_number_phase = 0 |
| static const double | hptoftlbssec = 550.0 |
| static const double | in3tom3 = 1.638706E-5 |
| static const double | inchtoft = 0.08333333 |
| static const double | inhgtopa = 3386.38 |
| static const std::string | JSBSim_version = "1.0 " __DATE__ " " __TIME__ |
| static const double | kgtolb = 2.20462 |
| static const double | kgtoslug = 0.06852168 |
| static const double | ktstofps = 1.68781 |
| static const double | lbtoslug = 1.0/slugtolb |
| static Message | localMsg |
| static const double | m3toft3 = 1.0/(fttom*fttom*fttom) |
| static double | Mair = 28.9645 |
| static unsigned int | messageId = 0 |
| static std::queue< Message > | Messages |
| static const std::string | needed_cfg_version = "2.0" |
| static const double | psftoinhg = 0.014138 |
| static const double | psftopa = 47.88 |
| static const double | radtodeg = 57.295779513082320876798154814105 |
| static double | Reng = 1716.56 |
| static double | Rstar = 1545.348 |
| static const double | SHRatio = 1.40 |
| static const double | slugtolb = 32.174049 |
Definition at line 330 of file FGTrimAnalysis.h.
| FGTrimAnalysis | ( | FGFDMExec * | FDMExec, |
| TrimAnalysisMode | tam = taFull |
||
| ) |
Initializes the trimming class.
| FDMExec | pointer to a JSBSim executive object. |
| tam | trim mode |
Definition at line 320 of file FGTrimAnalysis.cpp.
Here is the call graph for this function:| bool AddControl | ( | TaControl | control | ) |
Add a control to the current configuration.
See the enums TaControl in FGTrimAnalysisControl.h for the available options. (Note: controls are intended here as those variables to be adjusted for attaining convergence of the trimming algorithm) Will fail if the given state is already configured.
| control | the control to be adjusted in the trimming algorithm |
Definition at line 673 of file FGTrimAnalysis.cpp.
Here is the call graph for this function:| void CalculatePhiWFromTargetNlfTurn | ( | double | nlf | ) |
Calculate the wind axis bank angle from a given Nlf (sets also the target Nlf)
| nlf |
Definition at line 752 of file FGTrimAnalysis.cpp.
| void ClearControls | ( | void | ) |
Clear all controls from the current configuration.
The trimming routine must have at least one control configured to be useful (Note: controls are intended here as those variables to be adjusted for attaining convergence of the trimming algorithm)
Definition at line 653 of file FGTrimAnalysis.cpp.
| bool EditState | ( | TaControl | new_control, |
| double | new_initvalue, | ||
| double | new_step, | ||
| double | new_min, | ||
| double | new_max | ||
| ) |
Change the control settings previously configured.
| new_control | the control used to zero the state |
| new_initvalue | a new initial value |
| new_step | a new adjusting step |
| new_min,new_max | a new range |
Definition at line 717 of file FGTrimAnalysis.cpp.
Here is the call graph for this function:
|
inline |
Definition at line 482 of file FGTrimAnalysis.h.
|
inline |
Return the current flight path angle in TrimAnalysis object.
Definition at line 536 of file FGTrimAnalysis.h.
Here is the caller graph for this function:
|
inline |
query the fallback state
Definition at line 548 of file FGTrimAnalysis.h.
|
inline |
Gets flight path angle.
Definition at line 623 of file FGTrimAnalysis.h.
Here is the caller graph for this function:
|
inline |
Definition at line 495 of file FGTrimAnalysis.h.
Here is the caller graph for this function:
|
inline |
Gets Euler angle phi.
Definition at line 606 of file FGTrimAnalysis.h.
Here is the caller graph for this function:
|
inline |
Gets Euler angle phiW (wind axes)
Definition at line 619 of file FGTrimAnalysis.h.
Here is the caller graph for this function:
|
inline |
|
inline |
Get the pointer to the file where trim analysis results are written,.
Definition at line 473 of file FGTrimAnalysis.h.
Here is the caller graph for this function:
|
inline |
Gets target normal load factor in steady turn.
Definition at line 663 of file FGTrimAnalysis.h.
Here is the caller graph for this function:
|
inline |
|
inline |
Get the tolerance for declaring a state trimmed.
Definition at line 569 of file FGTrimAnalysis.h.
|
inline |
Gets trim result status.
Definition at line 578 of file FGTrimAnalysis.h.
|
inline |
Gets true speed [fps] from IC.
Definition at line 627 of file FGTrimAnalysis.h.
Here is the caller graph for this function:| bool Load | ( | string | fname, |
| bool | useStoredPath = true |
||
| ) |
Loads the trim configuration from file.
| fname | The name of a trim configuration file |
| useStoredPath | true if the stored path to the trim config file should be used |
Definition at line 450 of file FGTrimAnalysis.cpp.
Here is the call graph for this function:| bool RemoveControl | ( | TaControl | control | ) |
Remove a specific control from the current configuration.
| control | the state to remove |
Definition at line 694 of file FGTrimAnalysis.cpp.
Here is the call graph for this function:| void Report | ( | void | ) |
Print the results of the trim.
For each axis trimmed, this includes the final state value, control value, and tolerance used.
Definition at line 610 of file FGTrimAnalysis.cpp.
|
inline |
Set the value of the cost function.
| value | the cost function value |
Definition at line 478 of file FGTrimAnalysis.h.
Here is the caller graph for this function:| void SetDottedValues | ( | double | udot, |
| double | vdot, | ||
| double | wdot, | ||
| double | pdot, | ||
| double | qdot, | ||
| double | rdot | ||
| ) |
Sets Dotted values.
| udot,vdot,wdot,pdot,qdot,rdot |
Definition at line 443 of file FGTrimAnalysis.cpp.
| void SetEulerAngles | ( | double | phi0, |
| double | theta0, | ||
| double | psi0 | ||
| ) |
Sets Euler angles.
| phi0,theta0,psi0 |
Definition at line 432 of file FGTrimAnalysis.cpp.
Here is the caller graph for this function:
|
inline |
automatically switch to trimming longitudinal acceleration with flight path angle (gamma) once it becomes apparent that there is not enough/too much thrust.
| bb | true to enable fallback |
Definition at line 543 of file FGTrimAnalysis.h.
|
inline |
Set the iteration limit.
DoTrim() will return false if limit iterations are reached before trim is achieved. The default is 60. This does not ordinarily need to be changed.
| ii | integer iteration limit |
Definition at line 555 of file FGTrimAnalysis.h.
| void SetMode | ( | TrimAnalysisMode | tam | ) |
Clear all controls and set a predefined trim mode (Note: controls are intended here as those variables to be adjusted for attaining convergence of the trimming algorithm)
| tam | the set of axes to trim. Can be: taLongitudinal, taFull, taGround, taCustom, or taNone |
Definition at line 995 of file FGTrimAnalysis.cpp.
| bool SetResultsFile | ( | string | name | ) |
Set the file where trim analysis results are written, open and get ready.
| name | the file name |
Definition at line 1087 of file FGTrimAnalysis.cpp.
Here is the call graph for this function:| void SetState | ( | double | u0, |
| double | v0, | ||
| double | w0, | ||
| double | p0, | ||
| double | q0, | ||
| double | r0, | ||
| double | alpha0, | ||
| double | beta0, | ||
| double | phi0, | ||
| double | theta0, | ||
| double | psi0, | ||
| double | gamma0 | ||
| ) |
Sets state variables.
| u0 | |
| v0 | |
| w0 | |
| p0 | |
| q0 | |
| r0 | |
| alpha0 | |
| beta0 | |
| phi0 | |
| psi0 | |
| theta0 | |
| gamma0 |
Definition at line 421 of file FGTrimAnalysis.cpp.
Here is the caller graph for this function:
|
inline |
Sets target normal load factor in steady turn.
| nlf | target normal load factor |
Definition at line 658 of file FGTrimAnalysis.h.
|
inline |
Set the tolerance for declaring a state trimmed.
(In the evaluation of the cost function, squares of angular accels are devided by 100) The default is 1e-8.
| tt | user defined tolerance |
Definition at line 563 of file FGTrimAnalysis.h.
|
inline |
| FGColumnVector3 UpdateRatesPullup | ( | void | ) |
Updates angular rates for pull-up trim.
Definition at line 920 of file FGTrimAnalysis.cpp.
Here is the caller graph for this function:| FGColumnVector3 UpdateRatesTurn | ( | double | psi, |
| double | theta, | ||
| double | phi, | ||
| double | phiW | ||
| ) |
Updates angular rates for turn trim according to turning trim constraints.
| psi,theta,phi |
Definition at line 914 of file FGTrimAnalysis.cpp.
Here is the caller graph for this function: