JSBSim Flight Dynamics Model  1.1.11 (13 Feb 2022)
An Open Source Flight Dynamics and Control Software Library in C++
FGInitialCondition.h
1 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2 
3  Header: FGInitialCondition.h
4  Author: Tony Peden
5  Date started: 7/1/99
6 
7  --------- Copyright (C) 1999 Anthony K. Peden (apeden@earthlink.net) ---------
8 
9  This program is free software; you can redistribute it and/or modify it under
10  the terms of the GNU Lesser General Public License as published by the Free
11  Software Foundation; either version 2 of the License, or (at your option) any
12  later version.
13 
14  This program is distributed in the hope that it will be useful, but WITHOUT
15  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16  FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
17  details.
18 
19  You should have received a copy of the GNU Lesser General Public License along
20  with this program; if not, write to the Free Software Foundation, Inc., 59
21  Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 
23  Further information about the GNU Lesser General Public License can also be
24  found on the world wide web at http://www.gnu.org.
25 
26  HISTORY
27 --------------------------------------------------------------------------------
28 7/1/99 TP Created
29 
30 FUNCTIONAL DESCRIPTION
31 --------------------------------------------------------------------------------
32 
33 The purpose of this class is to take a set of initial conditions and provide a
34 kinematically consistent set of body axis velocity components, euler angles, and
35 altitude. This class does not attempt to trim the model i.e. the sim will most
36 likely start in a very dynamic state (unless, of course, you have chosen your
37 IC's wisely) even after setting it up with this class.
38 
39 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
40 SENTRY
41 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
42 
43 #ifndef FGINITIALCONDITION_H
44 #define FGINITIALCONDITION_H
45 
46 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
47 INCLUDES
48 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
49 
50 #include "math/FGLocation.h"
51 #include "math/FGQuaternion.h"
52 #include "simgear/misc/sg_path.hxx"
53 
54 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
55 FORWARD DECLARATIONS
56 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
57 
58 namespace JSBSim {
59 
60 class FGFDMExec;
61 class FGMatrix33;
62 class FGColumnVector3;
63 class FGAtmosphere;
64 class FGAircraft;
65 class FGPropertyManager;
66 class Element;
67 
68 typedef enum { setvt, setvc, setve, setmach, setuvw, setned, setvg } speedset;
69 typedef enum { setasl, setagl } altitudeset;
70 typedef enum { setgeoc, setgeod } latitudeset;
71 
72 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
73 CLASS DOCUMENTATION
74 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
75 
220 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
221 CLASS DECLARATION
222 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
223 
225 {
226 public:
228  explicit FGInitialCondition(FGFDMExec *fdmex);
231 
234  void SetVcalibratedKtsIC(double vc);
235 
238  void SetVequivalentKtsIC(double ve);
239 
242  void SetVtrueKtsIC(double vtrue) { SetVtrueFpsIC(vtrue*ktstofps); }
243 
246  void SetVgroundKtsIC(double vg) { SetVgroundFpsIC(vg*ktstofps); }
247 
250  void SetMachIC(double mach);
251 
254  void SetAlphaDegIC(double a) { SetAlphaRadIC(a*degtorad); }
255 
258  void SetBetaDegIC(double b) { SetBetaRadIC(b*degtorad);}
259 
262  void SetThetaDegIC(double theta) { SetThetaRadIC(theta*degtorad); }
263 
266  void ResetIC(double u0, double v0, double w0, double p0, double q0, double r0,
267  double alpha0, double beta0, double phi0, double theta0, double psi0,
268  double latitudeRad0, double longitudeRad0, double altitudeAGL0,
269  double gamma0);
270 
273  void SetPhiDegIC(double phi) { SetPhiRadIC(phi*degtorad);}
274 
277  void SetPsiDegIC(double psi){ SetPsiRadIC(psi*degtorad); }
278 
281  void SetClimbRateFpmIC(double roc) { SetClimbRateFpsIC(roc/60.0); }
282 
285  void SetFlightPathAngleDegIC(double gamma)
286  { SetClimbRateFpsIC(vt*sin(gamma*degtorad)); }
287 
290  void SetAltitudeASLFtIC(double altitudeASL);
291 
294  void SetAltitudeAGLFtIC(double agl);
295 
298  void SetTerrainElevationFtIC(double elev);
299 
302  void SetLatitudeDegIC(double lat) { SetLatitudeRadIC(lat*degtorad); }
303 
308  void SetGeodLatitudeDegIC(double glat)
309  { SetGeodLatitudeRadIC(glat*degtorad); }
310 
313  void SetLongitudeDegIC(double lon) { SetLongitudeRadIC(lon*degtorad); }
314 
317  double GetVcalibratedKtsIC(void) const;
318 
321  double GetVequivalentKtsIC(void) const;
322 
325  double GetVgroundKtsIC(void) const { return GetVgroundFpsIC() * fpstokts; }
326 
329  double GetVtrueKtsIC(void) const { return vt*fpstokts; }
330 
333  double GetMachIC(void) const;
334 
337  double GetClimbRateFpmIC(void) const
338  { return GetClimbRateFpsIC()*60; }
339 
342  double GetFlightPathAngleDegIC(void) const
343  { return GetFlightPathAngleRadIC()*radtodeg; }
344 
347  double GetAlphaDegIC(void) const { return alpha*radtodeg; }
348 
351  double GetBetaDegIC(void) const { return beta*radtodeg; }
352 
355  double GetThetaDegIC(void) const { return orientation.GetEulerDeg(eTht); }
356 
359  double GetPhiDegIC(void) const { return orientation.GetEulerDeg(ePhi); }
360 
363  double GetPsiDegIC(void) const { return orientation.GetEulerDeg(ePsi); }
364 
367  double GetLatitudeDegIC(void) const { return position.GetLatitudeDeg(); }
368 
371  double GetGeodLatitudeDegIC(void) const
372  { return position.GetGeodLatitudeDeg(); }
373 
376  double GetLongitudeDegIC(void) const { return position.GetLongitudeDeg(); }
377 
380  double GetAltitudeASLFtIC(void) const;
381 
384  double GetAltitudeAGLFtIC(void) const;
385 
388  double GetTerrainElevationFtIC(void) const;
389 
392  double GetEarthPositionAngleIC(void) const { return epa; }
393 
396  void SetVgroundFpsIC(double vg);
397 
400  void SetVtrueFpsIC(double vt);
401 
404  void SetUBodyFpsIC(double ubody) { SetBodyVelFpsIC(eU, ubody); }
405 
408  void SetVBodyFpsIC(double vbody) { SetBodyVelFpsIC(eV, vbody); }
409 
412  void SetWBodyFpsIC(double wbody) { SetBodyVelFpsIC(eW, wbody); }
413 
416  void SetVNorthFpsIC(double vn) { SetNEDVelFpsIC(eU, vn); }
417 
420  void SetVEastFpsIC(double ve) { SetNEDVelFpsIC(eV, ve); }
421 
424  void SetVDownFpsIC(double vd) { SetNEDVelFpsIC(eW, vd); }
425 
428  void SetPRadpsIC(double P) { vPQR_body(eP) = P; }
429 
432  void SetQRadpsIC(double Q) { vPQR_body(eQ) = Q; }
433 
436  void SetRRadpsIC(double R) { vPQR_body(eR) = R; }
437 
442  void SetWindNEDFpsIC(double wN, double wE, double wD);
443 
446  void SetWindMagKtsIC(double mag);
447 
450  void SetWindDirDegIC(double dir);
451 
454  void SetHeadWindKtsIC(double head);
455 
458  void SetCrossWindKtsIC(double cross);
459 
462  void SetWindDownKtsIC(double wD);
463 
466  void SetClimbRateFpsIC(double roc);
467 
470  double GetVgroundFpsIC(void) const { return vUVW_NED.Magnitude(eU, eV); }
471 
474  double GetVtrueFpsIC(void) const { return vt; }
475 
478  double GetWindUFpsIC(void) const { return GetBodyWindFpsIC(eU); }
479 
482  double GetWindVFpsIC(void) const { return GetBodyWindFpsIC(eV); }
483 
486  double GetWindWFpsIC(void) const { return GetBodyWindFpsIC(eW); }
487 
490  const FGColumnVector3 GetWindNEDFpsIC(void) const {
491  const FGMatrix33& Tb2l = orientation.GetTInv();
492  FGColumnVector3 _vt_NED = Tb2l * Tw2b * FGColumnVector3(vt, 0., 0.);
493  return _vt_NED - vUVW_NED;
494  }
495 
498  double GetWindNFpsIC(void) const { return GetNEDWindFpsIC(eX); }
499 
502  double GetWindEFpsIC(void) const { return GetNEDWindFpsIC(eY); }
503 
506  double GetWindDFpsIC(void) const { return GetNEDWindFpsIC(eZ); }
507 
510  double GetWindFpsIC(void) const;
511 
514  double GetWindDirDegIC(void) const;
515 
518  double GetClimbRateFpsIC(void) const
519  {
520  const FGMatrix33& Tb2l = orientation.GetTInv();
521  FGColumnVector3 _vt_NED = Tb2l * Tw2b * FGColumnVector3(vt, 0., 0.);
522  return -_vt_NED(eW);
523  }
524 
527  const FGColumnVector3 GetUVWFpsIC(void) const {
528  const FGMatrix33& Tl2b = orientation.GetT();
529  return Tl2b * vUVW_NED;
530  }
531 
534  double GetUBodyFpsIC(void) const { return GetBodyVelFpsIC(eU); }
535 
538  double GetVBodyFpsIC(void) const { return GetBodyVelFpsIC(eV); }
539 
542  double GetWBodyFpsIC(void) const { return GetBodyVelFpsIC(eW); }
543 
546  double GetVNorthFpsIC(void) const { return vUVW_NED(eU); }
547 
550  double GetVEastFpsIC(void) const { return vUVW_NED(eV); }
551 
554  double GetVDownFpsIC(void) const { return vUVW_NED(eW); }
555 
558  const FGColumnVector3 GetPQRRadpsIC(void) const { return vPQR_body; }
559 
562  double GetPRadpsIC() const { return vPQR_body(eP); }
563 
566  double GetQRadpsIC() const { return vPQR_body(eQ); }
567 
570  double GetRRadpsIC() const { return vPQR_body(eR); }
571 
574  void SetFlightPathAngleRadIC(double gamma)
575  { SetClimbRateFpsIC(vt*sin(gamma)); }
576 
579  void SetAlphaRadIC(double alpha);
580 
583  void SetBetaRadIC(double beta);
584 
587  void SetPhiRadIC(double phi) { SetEulerAngleRadIC(ePhi, phi); }
588 
591  void SetThetaRadIC(double theta) { SetEulerAngleRadIC(eTht, theta); }
592 
595  void SetPsiRadIC(double psi) { SetEulerAngleRadIC(ePsi, psi); }
596 
599  void SetLatitudeRadIC(double lat);
600 
605  void SetGeodLatitudeRadIC(double glat);
606 
609  void SetLongitudeRadIC(double lon);
610 
613  void SetTargetNlfIC(double nlf) { targetNlfIC=nlf; }
614 
618  double GetFlightPathAngleRadIC(void) const
619  { return (vt == 0.0)?0.0:asin(GetClimbRateFpsIC() / vt); }
620 
623  double GetAlphaRadIC(void) const { return alpha; }
624 
627  double GetBetaRadIC(void) const { return beta; }
628 
631  const FGLocation& GetPosition(void) const { return position; }
632 
635  double GetLatitudeRadIC(void) const { return position.GetLatitude(); }
636 
639  double GetGeodLatitudeRadIC(void) const
640  { return position.GetGeodLatitudeRad(); }
641 
644  double GetLongitudeRadIC(void) const { return position.GetLongitude(); }
645 
648  const FGQuaternion& GetOrientation(void) const { return orientation; }
649 
652  double GetPhiRadIC(void) const { return orientation.GetEuler(ePhi); }
653 
656  double GetThetaRadIC(void) const { return orientation.GetEuler(eTht); }
657 
660  double GetPsiRadIC(void) const { return orientation.GetEuler(ePsi); }
661 
664  speedset GetSpeedSet(void) const { return lastSpeedSet; }
665 
668  double GetTargetNlfIC(void) const { return targetNlfIC; }
669 
674  bool Load(const SGPath& rstname, bool useStoredPath = true );
675 
679  bool IsEngineRunning(unsigned int n) const { return (enginesRunning & (1 << n)) != 0; }
680 
683  int TrimRequested(void) const { return trimRequested; }
684 
686  void InitializeIC(void);
687 
688  void bind(FGPropertyManager* pm);
689 
690 private:
691  FGColumnVector3 vUVW_NED;
692  FGColumnVector3 vPQR_body;
693  FGLocation position;
694  FGQuaternion orientation;
695  double vt;
696 
697  double targetNlfIC;
698 
699  FGMatrix33 Tw2b, Tb2w;
700  double alpha, beta;
701  double epa;
702 
703  speedset lastSpeedSet;
704  altitudeset lastAltitudeSet;
705  latitudeset lastLatitudeSet;
706  unsigned int enginesRunning;
707  int trimRequested;
708 
709  FGFDMExec *fdmex;
710  FGAtmosphere* Atmosphere;
711  FGAircraft* Aircraft;
712 
713  bool Load_v1(Element* document);
714  bool Load_v2(Element* document);
715 
716  void SetEulerAngleRadIC(int idx, double angle);
717  void SetBodyVelFpsIC(int idx, double vel);
718  void SetNEDVelFpsIC(int idx, double vel);
719  double GetBodyWindFpsIC(int idx) const;
720  double GetNEDWindFpsIC(int idx) const;
721  double GetBodyVelFpsIC(int idx) const;
722  void calcAeroAngles(const FGColumnVector3& _vt_BODY);
723  void calcThetaBeta(double alfa, const FGColumnVector3& _vt_NED);
724  double ComputeGeodAltitude(double geodLatitude);
725  bool LoadLatitude(Element* position_el);
726  void SetTrimRequest(std::string trim);
727  void Debug(int from);
728 };
729 }
730 #endif
JSBSim::FGFDMExec
Encapsulates the JSBSim simulation executive.
Definition: FGFDMExec.h:185
JSBSim::FGInitialCondition::GetPsiDegIC
double GetPsiDegIC(void) const
Gets the initial heading angle.
Definition: FGInitialCondition.h:363
JSBSim::FGLocation::GetLongitudeDeg
double GetLongitudeDeg() const
Get the longitude.
Definition: FGLocation.h:240
JSBSim::FGInitialCondition::GetWindEFpsIC
double GetWindEFpsIC(void) const
Gets the initial wind velocity in local frame.
Definition: FGInitialCondition.h:502
JSBSim::FGInitialCondition::GetPsiRadIC
double GetPsiRadIC(void) const
Gets the initial heading angle.
Definition: FGInitialCondition.h:660
JSBSim::FGInitialCondition::GetSpeedSet
speedset GetSpeedSet(void) const
Gets the initial speedset.
Definition: FGInitialCondition.h:664
JSBSim::FGInitialCondition::GetVEastFpsIC
double GetVEastFpsIC(void) const
Gets the initial local frame Y (East) velocity.
Definition: FGInitialCondition.h:550
JSBSim::FGInitialCondition::GetWindDirDegIC
double GetWindDirDegIC(void) const
Gets the initial wind direction.
Definition: FGInitialCondition.cpp:915
JSBSim::FGInitialCondition::SetVgroundFpsIC
void SetVgroundFpsIC(double vg)
Sets the initial ground speed.
Definition: FGInitialCondition.cpp:235
JSBSim::FGLocation::GetLatitudeDeg
double GetLatitudeDeg() const
Get the GEOCENTRIC latitude in degrees.
Definition: FGLocation.h:267
JSBSim::FGInitialCondition::GetFlightPathAngleDegIC
double GetFlightPathAngleDegIC(void) const
Gets the initial flight path angle.
Definition: FGInitialCondition.h:342
JSBSim::FGInitialCondition::SetLatitudeDegIC
void SetLatitudeDegIC(double lat)
Sets the initial latitude.
Definition: FGInitialCondition.h:302
JSBSim::FGInitialCondition::Load
bool Load(const SGPath &rstname, bool useStoredPath=true)
Loads the initial conditions.
Definition: FGInitialCondition.cpp:1002
JSBSim::FGColumnVector3
This class implements a 3 element column vector.
Definition: FGColumnVector3.h:63
JSBSim::FGLocation
FGLocation holds an arbitrary location in the Earth centered Earth fixed reference frame (ECEF).
Definition: FGLocation.h:151
JSBSim::FGInitialCondition::GetOrientation
const FGQuaternion & GetOrientation(void) const
Gets the initial orientation.
Definition: FGInitialCondition.h:648
JSBSim::FGInitialCondition::SetVBodyFpsIC
void SetVBodyFpsIC(double vbody)
Sets the initial body axis Y velocity.
Definition: FGInitialCondition.h:408
JSBSim::FGInitialCondition::SetVgroundKtsIC
void SetVgroundKtsIC(double vg)
Set ground speed initial condition in knots.
Definition: FGInitialCondition.h:246
JSBSim::FGInitialCondition::SetTargetNlfIC
void SetTargetNlfIC(double nlf)
Sets the target normal load factor.
Definition: FGInitialCondition.h:613
JSBSim::FGInitialCondition::SetPhiDegIC
void SetPhiDegIC(double phi)
Sets the roll angle initial condition in degrees.
Definition: FGInitialCondition.h:273
JSBSim::FGInitialCondition::SetAltitudeAGLFtIC
void SetAltitudeAGLFtIC(double agl)
Sets the initial Altitude above ground level.
Definition: FGInitialCondition.cpp:676
JSBSim::FGInitialCondition::SetVtrueKtsIC
void SetVtrueKtsIC(double vtrue)
Set true airspeed initial condition in knots.
Definition: FGInitialCondition.h:242
JSBSim::FGInitialCondition::SetVcalibratedKtsIC
void SetVcalibratedKtsIC(double vc)
Set calibrated airspeed initial condition in knots.
Definition: FGInitialCondition.cpp:173
JSBSim::FGInitialCondition::SetCrossWindKtsIC
void SetCrossWindKtsIC(double cross)
Sets the initial crosswind speed.
Definition: FGInitialCondition.cpp:527
JSBSim::FGInitialCondition::GetWindUFpsIC
double GetWindUFpsIC(void) const
Gets the initial body axis X wind velocity.
Definition: FGInitialCondition.h:478
JSBSim::FGInitialCondition::SetLongitudeDegIC
void SetLongitudeDegIC(double lon)
Sets the initial longitude.
Definition: FGInitialCondition.h:313
JSBSim::FGLocation::GetLongitude
double GetLongitude() const
Get the longitude.
Definition: FGLocation.h:234
JSBSim::FGInitialCondition::GetPhiDegIC
double GetPhiDegIC(void) const
Gets the initial roll angle.
Definition: FGInitialCondition.h:359
JSBSim::FGInitialCondition::SetAlphaRadIC
void SetAlphaRadIC(double alpha)
Sets the initial angle of attack.
Definition: FGInitialCondition.cpp:312
JSBSim::FGInitialCondition::GetWindNEDFpsIC
const FGColumnVector3 GetWindNEDFpsIC(void) const
Gets the initial wind velocity in the NED local frame.
Definition: FGInitialCondition.h:490
JSBSim::FGInitialCondition::SetAlphaDegIC
void SetAlphaDegIC(double a)
Sets angle of attack initial condition in degrees.
Definition: FGInitialCondition.h:254
JSBSim::FGInitialCondition::SetPsiDegIC
void SetPsiDegIC(double psi)
Sets the heading angle initial condition in degrees.
Definition: FGInitialCondition.h:277
JSBSim::FGInitialCondition::GetVNorthFpsIC
double GetVNorthFpsIC(void) const
Gets the initial local frame X (North) velocity.
Definition: FGInitialCondition.h:546
JSBSim::FGInitialCondition::GetAlphaRadIC
double GetAlphaRadIC(void) const
Gets the initial angle of attack.
Definition: FGInitialCondition.h:623
JSBSim::FGInitialCondition::InitializeIC
void InitializeIC(void)
Initialize the initial conditions to default values.
Definition: FGInitialCondition.cpp:121
JSBSim::FGInitialCondition::SetVDownFpsIC
void SetVDownFpsIC(double vd)
Sets the initial local axis down velocity.
Definition: FGInitialCondition.h:424
JSBSim::FGInitialCondition::GetWindVFpsIC
double GetWindVFpsIC(void) const
Gets the initial body axis Y wind velocity.
Definition: FGInitialCondition.h:482
JSBSim::FGLocation::GetGeodLatitudeRad
double GetGeodLatitudeRad(void) const
Get the GEODETIC latitude in radians.
Definition: FGLocation.h:258
JSBSim::FGInitialCondition::GetWindDFpsIC
double GetWindDFpsIC(void) const
Gets the initial wind velocity in local frame.
Definition: FGInitialCondition.h:506
JSBSim::FGInitialCondition::GetMachIC
double GetMachIC(void) const
Gets the initial mach.
Definition: FGInitialCondition.cpp:983
JSBSim::FGLocation::GetGeodLatitudeDeg
double GetGeodLatitudeDeg(void) const
Get the GEODETIC latitude in degrees.
Definition: FGLocation.h:273
JSBSim::FGInitialCondition::SetPRadpsIC
void SetPRadpsIC(double P)
Sets the initial body axis roll rate.
Definition: FGInitialCondition.h:428
JSBSim::FGInitialCondition::SetWBodyFpsIC
void SetWBodyFpsIC(double wbody)
Sets the initial body axis Z velocity.
Definition: FGInitialCondition.h:412
JSBSim::FGInitialCondition::SetLongitudeRadIC
void SetLongitudeRadIC(double lon)
Sets the initial longitude.
Definition: FGInitialCondition.cpp:897
JSBSim::FGInitialCondition::GetLatitudeDegIC
double GetLatitudeDegIC(void) const
Gets the initial latitude.
Definition: FGInitialCondition.h:367
JSBSim::FGInitialCondition::IsEngineRunning
bool IsEngineRunning(unsigned int n) const
Is an engine running ?
Definition: FGInitialCondition.h:679
JSBSim::FGLocation::GetLatitude
double GetLatitude() const
Get the GEOCENTRIC latitude in radians.
Definition: FGLocation.h:252
JSBSim::FGInitialCondition::SetAltitudeASLFtIC
void SetAltitudeASLFtIC(double altitudeASL)
Sets the altitude above sea level initial condition in feet.
Definition: FGInitialCondition.cpp:748
JSBSim::FGMatrix33
Handles matrix math operations.
Definition: FGMatrix33.h:69
JSBSim::FGInitialCondition::SetPsiRadIC
void SetPsiRadIC(double psi)
Sets the initial heading angle.
Definition: FGInitialCondition.h:595
JSBSim::FGInitialCondition::GetWindWFpsIC
double GetWindWFpsIC(void) const
Gets the initial body axis Z wind velocity.
Definition: FGInitialCondition.h:486
JSBSim::FGColumnVector3::Magnitude
double Magnitude(void) const
Length of the vector.
Definition: FGColumnVector3.cpp:109
JSBSim::FGInitialCondition::GetClimbRateFpmIC
double GetClimbRateFpmIC(void) const
Gets the initial climb rate.
Definition: FGInitialCondition.h:337
JSBSim::FGInitialCondition::GetWBodyFpsIC
double GetWBodyFpsIC(void) const
Gets the initial body axis Z velocity.
Definition: FGInitialCondition.h:542
JSBSim::FGInitialCondition::GetThetaRadIC
double GetThetaRadIC(void) const
Gets the initial pitch angle.
Definition: FGInitialCondition.h:656
JSBSim::FGJSBBase
JSBSim Base class.
Definition: FGJSBBase.h:78
JSBSim::FGInitialCondition::SetBetaRadIC
void SetBetaRadIC(double beta)
Sets the initial sideslip angle.
Definition: FGInitialCondition.cpp:397
JSBSim::FGInitialCondition::GetAlphaDegIC
double GetAlphaDegIC(void) const
Gets the initial angle of attack.
Definition: FGInitialCondition.h:347
JSBSim::FGInitialCondition::GetWindFpsIC
double GetWindFpsIC(void) const
Gets the initial total wind velocity in feet/sec.
Definition: FGInitialCondition.cpp:938
JSBSim::FGInitialCondition::SetMachIC
void SetMachIC(double mach)
Set mach initial condition.
Definition: FGInitialCondition.cpp:163
JSBSim::FGAtmosphere
Models an empty, abstract base atmosphere class.
Definition: FGAtmosphere.h:76
JSBSim::FGInitialCondition::SetThetaRadIC
void SetThetaRadIC(double theta)
Sets the initial pitch angle.
Definition: FGInitialCondition.h:591
JSBSim::FGQuaternion::GetEuler
const FGColumnVector3 & GetEuler(void) const
Retrieves the Euler angles.
Definition: FGQuaternion.h:199
JSBSim::FGInitialCondition::GetVgroundFpsIC
double GetVgroundFpsIC(void) const
Gets the initial ground velocity.
Definition: FGInitialCondition.h:470
JSBSim::FGInitialCondition::GetBetaRadIC
double GetBetaRadIC(void) const
Gets the initial angle of sideslip.
Definition: FGInitialCondition.h:627
JSBSim::FGInitialCondition::GetAltitudeASLFtIC
double GetAltitudeASLFtIC(void) const
Gets the initial altitude above sea level.
Definition: FGInitialCondition.cpp:649
JSBSim::FGInitialCondition::GetClimbRateFpsIC
double GetClimbRateFpsIC(void) const
Gets the initial climb rate.
Definition: FGInitialCondition.h:518
JSBSim::FGInitialCondition::TrimRequested
int TrimRequested(void) const
Does initialization file call for trim ?
Definition: FGInitialCondition.h:683
JSBSim::FGInitialCondition::GetFlightPathAngleRadIC
double GetFlightPathAngleRadIC(void) const
Gets the initial flight path angle.
Definition: FGInitialCondition.h:618
JSBSim::FGInitialCondition::FGInitialCondition
FGInitialCondition(FGFDMExec *fdmex)
Constructor.
Definition: FGInitialCondition.cpp:60
JSBSim::FGInitialCondition::GetEarthPositionAngleIC
double GetEarthPositionAngleIC(void) const
Gets the initial Earth position angle.
Definition: FGInitialCondition.h:392
JSBSim::FGInitialCondition::GetPosition
const FGLocation & GetPosition(void) const
Gets the initial position.
Definition: FGInitialCondition.h:631
JSBSim::FGQuaternion::GetT
const FGMatrix33 & GetT(void) const
Transformation matrix.
Definition: FGQuaternion.h:188
JSBSim::FGInitialCondition::SetLatitudeRadIC
void SetLatitudeRadIC(double lat)
Sets the initial latitude.
Definition: FGInitialCondition.cpp:875
JSBSim::FGInitialCondition::GetLongitudeDegIC
double GetLongitudeDegIC(void) const
Gets the initial longitude.
Definition: FGInitialCondition.h:376
JSBSim::FGInitialCondition::GetLatitudeRadIC
double GetLatitudeRadIC(void) const
Gets the initial latitude.
Definition: FGInitialCondition.h:635
JSBSim::FGInitialCondition::SetThetaDegIC
void SetThetaDegIC(double theta)
Sets pitch angle initial condition in degrees.
Definition: FGInitialCondition.h:262
JSBSim::FGInitialCondition::SetVNorthFpsIC
void SetVNorthFpsIC(double vn)
Sets the initial local axis north velocity.
Definition: FGInitialCondition.h:416
JSBSim::FGInitialCondition
Initializes the simulation run.
Definition: FGInitialCondition.h:224
JSBSim::FGQuaternion::GetEulerDeg
double GetEulerDeg(int i) const
Retrieves the Euler angles.
Definition: FGQuaternion.h:220
JSBSim::FGInitialCondition::GetBetaDegIC
double GetBetaDegIC(void) const
Gets the initial sideslip angle.
Definition: FGInitialCondition.h:351
JSBSim::FGInitialCondition::GetGeodLatitudeRadIC
double GetGeodLatitudeRadIC(void) const
Gets the initial geodetic latitude.
Definition: FGInitialCondition.h:639
JSBSim::FGInitialCondition::SetVEastFpsIC
void SetVEastFpsIC(double ve)
Sets the initial local axis east velocity.
Definition: FGInitialCondition.h:420
JSBSim::FGInitialCondition::GetThetaDegIC
double GetThetaDegIC(void) const
Gets the initial pitch angle.
Definition: FGInitialCondition.h:355
JSBSim::FGInitialCondition::GetVtrueFpsIC
double GetVtrueFpsIC(void) const
Gets the initial true velocity.
Definition: FGInitialCondition.h:474
JSBSim::FGInitialCondition::GetVequivalentKtsIC
double GetVequivalentKtsIC(void) const
Gets the initial equivalent airspeed.
Definition: FGInitialCondition.cpp:973
JSBSim::FGInitialCondition::GetVDownFpsIC
double GetVDownFpsIC(void) const
Gets the initial local frame Z (Down) velocity.
Definition: FGInitialCondition.h:554
JSBSim::FGInitialCondition::SetVtrueFpsIC
void SetVtrueFpsIC(double vt)
Sets the initial true airspeed.
Definition: FGInitialCondition.cpp:259
JSBSim::FGInitialCondition::GetAltitudeAGLFtIC
double GetAltitudeAGLFtIC(void) const
Gets the initial altitude above ground level.
Definition: FGInitialCondition.cpp:656
JSBSim::FGAircraft
Encapsulates an Aircraft and its systems.
Definition: FGAircraft.h:102
JSBSim::FGInitialCondition::GetVtrueKtsIC
double GetVtrueKtsIC(void) const
Gets the initial true velocity.
Definition: FGInitialCondition.h:329
JSBSim::FGInitialCondition::GetRRadpsIC
double GetRRadpsIC() const
Gets the initial body axis yaw rate.
Definition: FGInitialCondition.h:570
JSBSim::FGInitialCondition::SetWindDownKtsIC
void SetWindDownKtsIC(double wD)
Sets the initial wind downward speed.
Definition: FGInitialCondition.cpp:578
JSBSim::FGInitialCondition::SetClimbRateFpmIC
void SetClimbRateFpmIC(double roc)
Sets the climb rate initial condition in feet/minute.
Definition: FGInitialCondition.h:281
JSBSim::FGInitialCondition::~FGInitialCondition
~FGInitialCondition()
Destructor.
Definition: FGInitialCondition.cpp:76
JSBSim::FGInitialCondition::GetTerrainElevationFtIC
double GetTerrainElevationFtIC(void) const
Gets the initial terrain elevation.
Definition: FGInitialCondition.cpp:663
JSBSim::FGInitialCondition::GetPQRRadpsIC
const FGColumnVector3 GetPQRRadpsIC(void) const
Gets the initial body rotation rate.
Definition: FGInitialCondition.h:558
JSBSim::FGInitialCondition::GetQRadpsIC
double GetQRadpsIC() const
Gets the initial body axis pitch rate.
Definition: FGInitialCondition.h:566
JSBSim::FGInitialCondition::SetPhiRadIC
void SetPhiRadIC(double phi)
Sets the initial roll angle.
Definition: FGInitialCondition.h:587
JSBSim::FGInitialCondition::SetBetaDegIC
void SetBetaDegIC(double b)
Sets angle of sideslip initial condition in degrees.
Definition: FGInitialCondition.h:258
JSBSim::FGInitialCondition::ResetIC
void ResetIC(double u0, double v0, double w0, double p0, double q0, double r0, double alpha0, double beta0, double phi0, double theta0, double psi0, double latitudeRad0, double longitudeRad0, double altitudeAGL0, double gamma0)
Resets the IC data structure to new values.
Definition: FGInitialCondition.cpp:83
JSBSim::FGInitialCondition::GetPhiRadIC
double GetPhiRadIC(void) const
Gets the initial roll angle.
Definition: FGInitialCondition.h:652
JSBSim::FGInitialCondition::GetUBodyFpsIC
double GetUBodyFpsIC(void) const
Gets the initial body axis X velocity.
Definition: FGInitialCondition.h:534
JSBSim::FGInitialCondition::GetVgroundKtsIC
double GetVgroundKtsIC(void) const
Gets the initial ground speed.
Definition: FGInitialCondition.h:325
JSBSim::FGInitialCondition::SetClimbRateFpsIC
void SetClimbRateFpsIC(double roc)
Sets the initial climb rate.
Definition: FGInitialCondition.cpp:283
JSBSim::FGInitialCondition::SetWindNEDFpsIC
void SetWindNEDFpsIC(double wN, double wE, double wD)
Sets the initial wind velocity.
Definition: FGInitialCondition.cpp:514
JSBSim::FGInitialCondition::GetVBodyFpsIC
double GetVBodyFpsIC(void) const
Gets the initial body axis Y velocity.
Definition: FGInitialCondition.h:538
JSBSim::FGInitialCondition::SetQRadpsIC
void SetQRadpsIC(double Q)
Sets the initial body axis pitch rate.
Definition: FGInitialCondition.h:432
JSBSim::FGInitialCondition::SetFlightPathAngleDegIC
void SetFlightPathAngleDegIC(double gamma)
Sets the flight path angle initial condition in degrees.
Definition: FGInitialCondition.h:285
JSBSim::FGQuaternion
Models the Quaternion representation of rotations.
Definition: FGQuaternion.h:86
JSBSim::FGInitialCondition::SetWindDirDegIC
void SetWindDirDegIC(double dir)
Sets the initial wind direction.
Definition: FGInitialCondition.cpp:620
JSBSim::FGInitialCondition::SetUBodyFpsIC
void SetUBodyFpsIC(double ubody)
Sets the initial body axis X velocity.
Definition: FGInitialCondition.h:404
JSBSim::FGInitialCondition::SetGeodLatitudeDegIC
void SetGeodLatitudeDegIC(double glat)
Sets the initial geodetic latitude.
Definition: FGInitialCondition.h:308
JSBSim::FGInitialCondition::SetVequivalentKtsIC
void SetVequivalentKtsIC(double ve)
Set equivalent airspeed initial condition in knots.
Definition: FGInitialCondition.cpp:152
JSBSim::FGInitialCondition::SetGeodLatitudeRadIC
void SetGeodLatitudeRadIC(double glat)
Sets the initial geodetic latitude.
Definition: FGInitialCondition.cpp:849
JSBSim::FGQuaternion::GetTInv
const FGMatrix33 & GetTInv(void) const
Backward transformation matrix.
Definition: FGQuaternion.h:193
JSBSim::FGInitialCondition::GetLongitudeRadIC
double GetLongitudeRadIC(void) const
Gets the initial longitude.
Definition: FGInitialCondition.h:644
JSBSim::FGInitialCondition::GetVcalibratedKtsIC
double GetVcalibratedKtsIC(void) const
Gets the initial calibrated airspeed.
Definition: FGInitialCondition.cpp:961
JSBSim::FGInitialCondition::SetTerrainElevationFtIC
void SetTerrainElevationFtIC(double elev)
Sets the initial terrain elevation.
Definition: FGInitialCondition.cpp:638
JSBSim::FGInitialCondition::SetHeadWindKtsIC
void SetHeadWindKtsIC(double head)
Sets the initial headwind velocity.
Definition: FGInitialCondition.cpp:550
JSBSim::FGInitialCondition::GetUVWFpsIC
const FGColumnVector3 GetUVWFpsIC(void) const
Gets the initial body velocity.
Definition: FGInitialCondition.h:527
JSBSim::FGInitialCondition::SetFlightPathAngleRadIC
void SetFlightPathAngleRadIC(double gamma)
Sets the initial flight path angle.
Definition: FGInitialCondition.h:574
JSBSim::FGPropertyManager
Definition: FGPropertyManager.h:373
JSBSim::FGInitialCondition::GetWindNFpsIC
double GetWindNFpsIC(void) const
Gets the initial wind velocity in local frame.
Definition: FGInitialCondition.h:498
JSBSim::FGInitialCondition::SetRRadpsIC
void SetRRadpsIC(double R)
Sets the initial body axis yaw rate.
Definition: FGInitialCondition.h:436
JSBSim::FGInitialCondition::GetPRadpsIC
double GetPRadpsIC() const
Gets the initial body axis roll rate.
Definition: FGInitialCondition.h:562
JSBSim::Element
Definition: FGXMLElement.h:143
JSBSim::FGInitialCondition::GetTargetNlfIC
double GetTargetNlfIC(void) const
Gets the target normal load factor set from IC.
Definition: FGInitialCondition.h:668
JSBSim::FGInitialCondition::GetGeodLatitudeDegIC
double GetGeodLatitudeDegIC(void) const
Gets the initial geodetic latitude.
Definition: FGInitialCondition.h:371
JSBSim::FGInitialCondition::SetWindMagKtsIC
void SetWindMagKtsIC(double mag)
Sets the initial total wind speed.
Definition: FGInitialCondition.cpp:594