JSBSim Flight Dynamics Model  1.0 (02 March 2017)
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 Software
11  Foundation; either version 2 of the License, or (at your option) any later
12  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 with
20  this program; if not, write to the Free Software Foundation, Inc., 59 Temple
21  Place - Suite 330, Boston, MA 02111-1307, USA.
22 
23  Further information about the GNU Lesser General Public License can also be found on
24  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
34 a kinematically consistent set of body axis velocity components, euler
35 angles, and altitude. This class does not attempt to trim the model i.e.
36 the sim will most likely start in a very dynamic state (unless, of course,
37 you have chosen your 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 DEFINITIONS
56 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
57 
58 #define ID_INITIALCONDITION "$Id: FGInitialCondition.h,v 1.48 2017/02/25 14:23:18 bcoconni Exp $"
59 
60 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
61 FORWARD DECLARATIONS
62 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
63 
64 namespace JSBSim {
65 
66 class FGFDMExec;
67 class FGMatrix33;
68 class FGColumnVector3;
69 class FGAtmosphere;
70 class FGAircraft;
71 class FGPropertyManager;
72 class Element;
73 
74 typedef enum { setvt, setvc, setve, setmach, setuvw, setned, setvg } speedset;
75 typedef enum { setasl, setagl } altitudeset;
76 typedef enum { setgeoc, setgeod } latitudeset;
77 
78 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
79 CLASS DOCUMENTATION
80 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
81 
227 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
228 CLASS DECLARATION
229 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
230 
232 {
233 public:
238 
241  void SetVcalibratedKtsIC(double vc);
242 
245  void SetVequivalentKtsIC(double ve);
246 
249  void SetVtrueKtsIC(double vtrue) { SetVtrueFpsIC(vtrue*ktstofps); }
250 
253  void SetVgroundKtsIC(double vg) { SetVgroundFpsIC(vg*ktstofps); }
254 
257  void SetMachIC(double mach);
258 
261  void SetAlphaDegIC(double a) { SetAlphaRadIC(a*degtorad); }
262 
265  void SetBetaDegIC(double b) { SetBetaRadIC(b*degtorad);}
266 
269  void SetThetaDegIC(double theta) { SetThetaRadIC(theta*degtorad); }
270 
273  void ResetIC(double u0, double v0, double w0, double p0, double q0, double r0,
274  double alpha0, double beta0, double phi0, double theta0, double psi0,
275  double latitudeRad0, double longitudeRad0, double altitudeAGL0,
276  double gamma0);
277 
280  void SetPhiDegIC(double phi) { SetPhiRadIC(phi*degtorad);}
281 
284  void SetPsiDegIC(double psi){ SetPsiRadIC(psi*degtorad); }
285 
288  void SetClimbRateFpmIC(double roc) { SetClimbRateFpsIC(roc/60.0); }
289 
292  void SetFlightPathAngleDegIC(double gamma)
293  { SetClimbRateFpsIC(vt*sin(gamma*degtorad)); }
294 
297  void SetAltitudeASLFtIC(double altitudeASL);
298 
301  void SetAltitudeAGLFtIC(double agl);
302 
305  void SetSeaLevelRadiusFtIC(double slr);
306 
309  void SetTerrainElevationFtIC(double elev);
310 
313  void SetLatitudeDegIC(double lat) { SetLatitudeRadIC(lat*degtorad); }
314 
319  void SetGeodLatitudeDegIC(double glat)
320  { SetGeodLatitudeRadIC(glat*degtorad); }
321 
324  void SetLongitudeDegIC(double lon) { SetLongitudeRadIC(lon*degtorad); }
325 
328  double GetVcalibratedKtsIC(void) const;
329 
332  double GetVequivalentKtsIC(void) const;
333 
336  double GetVgroundKtsIC(void) const { return GetVgroundFpsIC() * fpstokts; }
337 
340  double GetVtrueKtsIC(void) const { return vt*fpstokts; }
341 
344  double GetMachIC(void) const;
345 
348  double GetClimbRateFpmIC(void) const
349  { return GetClimbRateFpsIC()*60; }
350 
353  double GetFlightPathAngleDegIC(void) const
354  { return GetFlightPathAngleRadIC()*radtodeg; }
355 
358  double GetAlphaDegIC(void) const { return alpha*radtodeg; }
359 
362  double GetBetaDegIC(void) const { return beta*radtodeg; }
363 
366  double GetThetaDegIC(void) const { return orientation.GetEulerDeg(eTht); }
367 
370  double GetPhiDegIC(void) const { return orientation.GetEulerDeg(ePhi); }
371 
374  double GetPsiDegIC(void) const { return orientation.GetEulerDeg(ePsi); }
375 
378  double GetLatitudeDegIC(void) const { return position.GetLatitudeDeg(); }
379 
382  double GetGeodLatitudeDegIC(void) const
383  { return position.GetGeodLatitudeDeg(); }
384 
387  double GetLongitudeDegIC(void) const { return position.GetLongitudeDeg(); }
388 
391  double GetAltitudeASLFtIC(void) const { return position.GetAltitudeASL(); }
392 
395  double GetAltitudeAGLFtIC(void) const;
396 
399  double GetTerrainElevationFtIC(void) const;
400 
403  void SetVgroundFpsIC(double vg);
404 
407  void SetVtrueFpsIC(double vt);
408 
411  void SetUBodyFpsIC(double ubody) { SetBodyVelFpsIC(eU, ubody); }
412 
415  void SetVBodyFpsIC(double vbody) { SetBodyVelFpsIC(eV, vbody); }
416 
419  void SetWBodyFpsIC(double wbody) { SetBodyVelFpsIC(eW, wbody); }
420 
423  void SetVNorthFpsIC(double vn) { SetNEDVelFpsIC(eU, vn); }
424 
427  void SetVEastFpsIC(double ve) { SetNEDVelFpsIC(eV, ve); }
428 
431  void SetVDownFpsIC(double vd) { SetNEDVelFpsIC(eW, vd); }
432 
435  void SetPRadpsIC(double P) { vPQR_body(eP) = P; }
436 
439  void SetQRadpsIC(double Q) { vPQR_body(eQ) = Q; }
440 
443  void SetRRadpsIC(double R) { vPQR_body(eR) = R; }
444 
449  void SetWindNEDFpsIC(double wN, double wE, double wD);
450 
453  void SetWindMagKtsIC(double mag);
454 
457  void SetWindDirDegIC(double dir);
458 
461  void SetHeadWindKtsIC(double head);
462 
465  void SetCrossWindKtsIC(double cross);
466 
469  void SetWindDownKtsIC(double wD);
470 
473  void SetClimbRateFpsIC(double roc);
474 
477  double GetVgroundFpsIC(void) const { return vUVW_NED.Magnitude(eU, eV); }
478 
481  double GetVtrueFpsIC(void) const { return vt; }
482 
485  double GetWindUFpsIC(void) const { return GetBodyWindFpsIC(eU); }
486 
489  double GetWindVFpsIC(void) const { return GetBodyWindFpsIC(eV); }
490 
493  double GetWindWFpsIC(void) const { return GetBodyWindFpsIC(eW); }
494 
497  const FGColumnVector3 GetWindNEDFpsIC(void) const {
498  const FGMatrix33& Tb2l = orientation.GetTInv();
499  FGColumnVector3 _vt_NED = Tb2l * Tw2b * FGColumnVector3(vt, 0., 0.);
500  return _vt_NED - vUVW_NED;
501  }
502 
505  double GetWindNFpsIC(void) const { return GetNEDWindFpsIC(eX); }
506 
509  double GetWindEFpsIC(void) const { return GetNEDWindFpsIC(eY); }
510 
513  double GetWindDFpsIC(void) const { return GetNEDWindFpsIC(eZ); }
514 
517  double GetWindFpsIC(void) const;
518 
521  double GetWindDirDegIC(void) const;
522 
525  double GetClimbRateFpsIC(void) const
526  {
527  const FGMatrix33& Tb2l = orientation.GetTInv();
528  FGColumnVector3 _vt_NED = Tb2l * Tw2b * FGColumnVector3(vt, 0., 0.);
529  return _vt_NED(eW);
530  }
531 
534  const FGColumnVector3 GetUVWFpsIC(void) const {
535  const FGMatrix33& Tl2b = orientation.GetT();
536  return Tl2b * vUVW_NED;
537  }
538 
541  double GetUBodyFpsIC(void) const { return GetBodyVelFpsIC(eU); }
542 
545  double GetVBodyFpsIC(void) const { return GetBodyVelFpsIC(eV); }
546 
549  double GetWBodyFpsIC(void) const { return GetBodyVelFpsIC(eW); }
550 
553  double GetVNorthFpsIC(void) const { return vUVW_NED(eU); }
554 
557  double GetVEastFpsIC(void) const { return vUVW_NED(eV); }
558 
561  double GetVDownFpsIC(void) const { return vUVW_NED(eW); }
562 
565  const FGColumnVector3 GetPQRRadpsIC(void) const { return vPQR_body; }
566 
569  double GetPRadpsIC() const { return vPQR_body(eP); }
570 
573  double GetQRadpsIC() const { return vPQR_body(eQ); }
574 
577  double GetRRadpsIC() const { return vPQR_body(eR); }
578 
581  void SetFlightPathAngleRadIC(double gamma)
582  { SetClimbRateFpsIC(vt*sin(gamma)); }
583 
586  void SetAlphaRadIC(double alpha);
587 
590  void SetBetaRadIC(double beta);
591 
594  void SetPhiRadIC(double phi) { SetEulerAngleRadIC(ePhi, phi); }
595 
598  void SetThetaRadIC(double theta) { SetEulerAngleRadIC(eTht, theta); }
599 
602  void SetPsiRadIC(double psi) { SetEulerAngleRadIC(ePsi, psi); }
603 
606  void SetLatitudeRadIC(double lat);
607 
612  void SetGeodLatitudeRadIC(double glat);
613 
616  void SetLongitudeRadIC(double lon);
617 
620  void SetTargetNlfIC(double nlf) { targetNlfIC=nlf; }
621 
625  double GetFlightPathAngleRadIC(void) const
626  { return (vt == 0.0)?0.0:asin(GetClimbRateFpsIC() / vt); }
627 
630  double GetAlphaRadIC(void) const { return alpha; }
631 
634  double GetBetaRadIC(void) const { return beta; }
635 
638  const FGLocation& GetPosition(void) const { return position; }
639 
642  double GetLatitudeRadIC(void) const { return position.GetLatitude(); }
643 
646  double GetGeodLatitudeRadIC(void) const
647  { return position.GetGeodLatitudeRad(); }
648 
651  double GetLongitudeRadIC(void) const { return position.GetLongitude(); }
652 
655  const FGQuaternion& GetOrientation(void) const { return orientation; }
656 
659  double GetPhiRadIC(void) const { return orientation.GetEuler(ePhi); }
660 
663  double GetThetaRadIC(void) const { return orientation.GetEuler(eTht); }
664 
667  double GetPsiRadIC(void) const { return orientation.GetEuler(ePsi); }
668 
671  speedset GetSpeedSet(void) const { return lastSpeedSet; }
672 
675  double GetTargetNlfIC(void) const { return targetNlfIC; }
676 
681  bool Load(const SGPath& rstname, bool useStoredPath = true );
682 
686  bool IsEngineRunning(unsigned int n) const { return (enginesRunning & (1 << n)) != 0; }
687 
690  bool NeedTrim(void) const { return needTrim == 0 ? false : true; }
691 
692  void bind(FGPropertyManager* pm);
693 
694 private:
695  FGColumnVector3 vUVW_NED;
696  FGColumnVector3 vPQR_body;
697  FGLocation position;
698  FGQuaternion orientation;
699  double vt;
700 
701  double targetNlfIC;
702 
703  FGMatrix33 Tw2b, Tb2w;
704  double alpha, beta;
705  double a, e2;
706 
707  speedset lastSpeedSet;
708  altitudeset lastAltitudeSet;
709  latitudeset lastLatitudeSet;
710  unsigned int enginesRunning;
711  int needTrim;
712 
713  FGFDMExec *fdmex;
714  FGAtmosphere* Atmosphere;
715  FGAircraft* Aircraft;
716 
717  bool Load_v1(Element* document);
718  bool Load_v2(Element* document);
719 
720  void InitializeIC(void);
721  void SetEulerAngleRadIC(int idx, double angle);
722  void SetBodyVelFpsIC(int idx, double vel);
723  void SetNEDVelFpsIC(int idx, double vel);
724  double GetBodyWindFpsIC(int idx) const;
725  double GetNEDWindFpsIC(int idx) const;
726  double GetBodyVelFpsIC(int idx) const;
727  void calcAeroAngles(const FGColumnVector3& _vt_BODY);
728  void calcThetaBeta(double alfa, const FGColumnVector3& _vt_NED);
729  double ComputeGeodAltitude(double geodLatitude);
730  bool LoadLatitude(Element* position_el);
731  void Debug(int from);
732 };
733 }
734 #endif
Encapsulates an Aircraft and its systems.
Definition: FGAircraft.h:110
double GetAlphaDegIC(void) const
Gets the initial angle of attack.
double GetLatitudeRadIC(void) const
Gets the initial latitude.
void SetThetaDegIC(double theta)
Sets pitch angle initial condition in degrees.
void SetThetaRadIC(double theta)
Sets the initial pitch angle.
void SetVEastFpsIC(double ve)
Sets the initial local axis east velocity.
double GetThetaDegIC(void) const
Gets the initial pitch angle.
Models the Quaternion representation of rotations.
Definition: FGQuaternion.h:92
double GetGeodLatitudeRadIC(void) const
Gets the initial geodetic latitude.
double GetVgroundFpsIC(void) const
Gets the initial ground velocity.
double GetBetaRadIC(void) const
Gets the initial angle of sideslip.
double GetVtrueFpsIC(void) const
Gets the initial true velocity.
double GetFlightPathAngleRadIC(void) const
Gets the initial flight path angle.
FGInitialCondition(FGFDMExec *fdmex)
Constructor.
double GetVDownFpsIC(void) const
Gets the initial local frame Z (Down) velocity.
void SetVtrueFpsIC(double vt)
Sets the initial true airspeed.
const FGMatrix33 & GetT(void) const
Transformation matrix.
Definition: FGQuaternion.h:194
void SetLatitudeRadIC(double lat)
Sets the initial latitude.
double GetLongitudeDegIC(void) const
Gets the initial longitude.
double GetVtrueKtsIC(void) const
Gets the initial true velocity.
void SetVNorthFpsIC(double vn)
Sets the initial local axis north velocity.
double GetBetaDegIC(void) const
Gets the initial sideslip angle.
double GetEulerDeg(int i) const
Retrieves the Euler angles.
Definition: FGQuaternion.h:226
double GetRRadpsIC() const
Gets the initial body axis yaw rate.
void SetSeaLevelRadiusFtIC(double slr)
Sets the initial sea level radius from planet center.
double GetAltitudeASL(void) const
Get the altitude above sea level.
Definition: FGLocation.h:359
double GetTerrainElevationFtIC(void) const
Gets the initial terrain elevation.
const FGColumnVector3 GetPQRRadpsIC(void) const
Gets the initial body rotation rate.
double GetVequivalentKtsIC(void) const
Gets the initial equivalent airspeed.
double GetAltitudeAGLFtIC(void) const
Gets the initial altitude above ground level.
void SetPhiRadIC(double phi)
Sets the initial roll angle.
void SetBetaDegIC(double b)
Sets angle of sideslip initial condition in degrees.
double GetGeodLatitudeDeg(void) const
Get the geodetic latitude in degrees.
Definition: FGLocation.h:290
double GetPhiRadIC(void) const
Gets the initial roll angle.
double GetUBodyFpsIC(void) const
Gets the initial body axis X velocity.
double GetVgroundKtsIC(void) const
Gets the initial ground speed.
double GetLatitude() const
Get the latitude.
Definition: FGLocation.h:272
void SetClimbRateFpsIC(double roc)
Sets the initial climb rate.
const FGMatrix33 & GetTInv(void) const
Backward transformation matrix.
Definition: FGQuaternion.h:199
FGLocation holds an arbitrary location in the Earth centered Earth fixed reference frame (ECEF)...
Definition: FGLocation.h:160
void SetClimbRateFpmIC(double roc)
Sets the climb rate initial condition in feet/minute.
void SetWindDownKtsIC(double wD)
Sets the initial wind downward speed.
double GetQRadpsIC() const
Gets the initial body axis pitch rate.
double GetVBodyFpsIC(void) const
Gets the initial body axis Y velocity.
void SetQRadpsIC(double Q)
Sets the initial body axis pitch rate.
void SetFlightPathAngleDegIC(double gamma)
Sets the flight path angle initial condition in degrees.
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.
void SetUBodyFpsIC(double ubody)
Sets the initial body axis X velocity.
void SetWindDirDegIC(double dir)
Sets the initial wind direction.
void SetVequivalentKtsIC(double ve)
Set equivalent airspeed initial condition in knots.
void SetGeodLatitudeRadIC(double glat)
Sets the initial geodetic latitude.
void SetWindNEDFpsIC(double wN, double wE, double wD)
Sets the initial wind velocity.
double GetLongitudeRadIC(void) const
Gets the initial longitude.
void SetTerrainElevationFtIC(double elev)
Sets the initial terrain elevation.
const FGColumnVector3 GetUVWFpsIC(void) const
Gets the initial body velocity.
void SetFlightPathAngleRadIC(double gamma)
Sets the initial flight path angle.
void SetGeodLatitudeDegIC(double glat)
Sets the initial geodetic latitude.
double GetWindNFpsIC(void) const
Gets the initial wind velocity in local frame.
double GetPRadpsIC() const
Gets the initial body axis roll rate.
void SetWindMagKtsIC(double mag)
Sets the initial total wind speed.
double GetVcalibratedKtsIC(void) const
Gets the initial calibrated airspeed.
void SetHeadWindKtsIC(double head)
Sets the initial headwind velocity.
double GetLongitude() const
Get the longitude.
Definition: FGLocation.h:254
speedset GetSpeedSet(void) const
Gets the initial speedset.
void SetRRadpsIC(double R)
Sets the initial body axis yaw rate.
double GetWindDirDegIC(void) const
Gets the initial wind direction.
void SetVgroundFpsIC(double vg)
Sets the initial ground speed.
bool NeedTrim(void) const
Does initialization file call for trim ?
double GetTargetNlfIC(void) const
Gets the target normal load factor set from IC.
void SetLatitudeDegIC(double lat)
Sets the initial latitude.
double GetFlightPathAngleDegIC(void) const
Gets the initial flight path angle.
double GetGeodLatitudeDegIC(void) const
Gets the initial geodetic latitude.
void SetVBodyFpsIC(double vbody)
Sets the initial body axis Y velocity.
double GetPsiDegIC(void) const
Gets the initial heading angle.
JSBSim Base class.
Definition: FGJSBBase.h:80
void SetVgroundKtsIC(double vg)
Set ground speed initial condition in knots.
void SetTargetNlfIC(double nlf)
Sets the target normal load factor.
double GetWindEFpsIC(void) const
Gets the initial wind velocity in local frame.
double GetPsiRadIC(void) const
Gets the initial heading angle.
void SetVcalibratedKtsIC(double vc)
Set calibrated airspeed initial condition in knots.
void SetVtrueKtsIC(double vtrue)
Set true airspeed initial condition in knots.
double GetVEastFpsIC(void) const
Gets the initial local frame Y (East) velocity.
double GetWindUFpsIC(void) const
Gets the initial body axis X wind velocity.
void SetLongitudeDegIC(double lon)
Sets the initial longitude.
bool Load(const SGPath &rstname, bool useStoredPath=true)
Loads the initial conditions.
double GetPhiDegIC(void) const
Gets the initial roll angle.
const FGQuaternion & GetOrientation(void) const
Gets the initial orientation.
void SetAltitudeAGLFtIC(double agl)
Sets the initial Altitude above ground level.
void SetPhiDegIC(double phi)
Sets the roll angle initial condition in degrees.
Models an empty, abstract base atmosphere class.
Definition: FGAtmosphere.h:84
This class implements a 3 element column vector.
void SetAlphaDegIC(double a)
Sets angle of attack initial condition in degrees.
void SetVDownFpsIC(double vd)
Sets the initial local axis down velocity.
void SetCrossWindKtsIC(double cross)
Sets the initial crosswind speed.
Initializes the simulation run.
double GetGeodLatitudeRad(void) const
Get the geodetic latitude.
Definition: FGLocation.h:278
double GetLongitudeDeg() const
Get the longitude.
Definition: FGLocation.h:260
double GetWindDFpsIC(void) const
Gets the initial wind velocity in local frame.
void SetAlphaRadIC(double alpha)
Sets the initial angle of attack.
const FGColumnVector3 GetWindNEDFpsIC(void) const
Gets the initial wind velocity in the NED local frame.
void SetPsiDegIC(double psi)
Sets the heading angle initial condition in degrees.
double GetVNorthFpsIC(void) const
Gets the initial local frame X (North) velocity.
double GetAlphaRadIC(void) const
Gets the initial angle of attack.
double GetLatitudeDegIC(void) const
Gets the initial latitude.
Handles matrix math operations.
Definition: FGMatrix33.h:92
double GetWindVFpsIC(void) const
Gets the initial body axis Y wind velocity.
bool IsEngineRunning(unsigned int n) const
Is an engine running ?
double Magnitude(void) const
Length of the vector.
double GetLatitudeDeg() const
Get the latitude.
Definition: FGLocation.h:284
const FGColumnVector3 & GetEuler(void) const
Retrieves the Euler angles.
Definition: FGQuaternion.h:205
double GetWindWFpsIC(void) const
Gets the initial body axis Z wind velocity.
double GetMachIC(void) const
Gets the initial mach.
void SetPRadpsIC(double P)
Sets the initial body axis roll rate.
void SetWBodyFpsIC(double wbody)
Sets the initial body axis Z velocity.
void SetLongitudeRadIC(double lon)
Sets the initial longitude.
double GetClimbRateFpmIC(void) const
Gets the initial climb rate.
double GetThetaRadIC(void) const
Gets the initial pitch angle.
double GetWBodyFpsIC(void) const
Gets the initial body axis Z velocity.
Encapsulates the JSBSim simulation executive.
Definition: FGFDMExec.h:189
void SetBetaRadIC(double beta)
Sets the initial sideslip angle.
double GetWindFpsIC(void) const
Gets the initial total wind velocity in feet/sec.
void SetMachIC(double mach)
Set mach initial condition.
void SetAltitudeASLFtIC(double altitudeASL)
Sets the altitude above sea level initial condition in feet.
void SetPsiRadIC(double psi)
Sets the initial heading angle.
double GetAltitudeASLFtIC(void) const
Gets the initial altitude above sea level.
double GetClimbRateFpsIC(void) const
Gets the initial climb rate.
const FGLocation & GetPosition(void) const
Gets the initial position.