JSBSim Flight Dynamics Model  1.0 (02 March 2017)
An Open Source Flight Dynamics and Control Software Library in C++
FGGroundReactions.h
1 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2 
3  Header: FGGroundReactions.h
4  Author: Jon S. Berndt
5  Date started: 09/13/00
6 
7  ------------- Copyright (C) 1999 Jon S. Berndt (jon@jsbsim.org) -------------
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 09/13/00 JSB Created
29 
30 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
31 SENTRY
32 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
33 
34 #ifndef FGGROUNDREACTIONS_H
35 #define FGGROUNDREACTIONS_H
36 
37 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
38 INCLUDES
39 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
40 
41 #include <vector>
42 
43 #include "FGSurface.h"
44 #include "FGModel.h"
45 #include "FGLGear.h"
46 #include "math/FGColumnVector3.h"
47 
48 #define ID_GROUNDREACTIONS "$Id: FGGroundReactions.h,v 1.30 2016/05/16 18:19:57 bcoconni Exp $"
49 
50 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
51 FORWARD DECLARATIONS
52 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
53 
54 namespace JSBSim {
55 
56 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
57 CLASS DOCUMENTATION
58 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
59 
77 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
78 CLASS DECLARATION
79 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
80 
81 class FGGroundReactions : public FGModel, public FGSurface
82 {
83 public:
85  ~FGGroundReactions(void);
86 
87  bool InitModel(void);
95  bool Run(bool Holding);
96  bool Load(Element* el);
97  const FGColumnVector3& GetForces(void) const {return vForces;}
98  double GetForces(int idx) const {return vForces(idx);}
99  const FGColumnVector3& GetMoments(void) const {return vMoments;}
100  double GetMoments(int idx) const {return vMoments(idx);}
101  std::string GetGroundReactionStrings(std::string delimeter) const;
102  std::string GetGroundReactionValues(std::string delimeter) const;
103  bool GetWOW(void) const;
104 
105  int GetNumGearUnits(void) const { return (int)lGear.size(); }
106 
110  FGLGear* GetGearUnit(int gear) const { return lGear[gear]; }
111 
114  double GetDsCmd(void) const { return DsCmd; }
115 
118  void SetDsCmd(double cmd);
119 
120  void RegisterLagrangeMultiplier(LagrangeMultiplier* lmult) { multipliers.push_back(lmult); }
121  std::vector <LagrangeMultiplier*>* GetMultipliersList(void) { return &multipliers; }
122 
123  FGLGear::Inputs in;
124 
125 private:
126  std::vector <FGLGear*> lGear;
127  FGColumnVector3 vForces;
128  FGColumnVector3 vMoments;
129  std::vector <LagrangeMultiplier*> multipliers;
130  double DsCmd;
131 
132  void bind(void);
133  void Debug(int from);
134 };
135 }
136 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
137 #endif
138 
void SetDsCmd(double cmd)
Sets the steering command.
bool Load(Element *el)
Loads this model.
Base class for all scheduled JSBSim models.
Definition: FGModel.h:74
bool Run(bool Holding)
Runs the Ground Reactions model; called by the Executive Can pass in a value indicating if the execut...
This class implements a 3 element column vector.
Manages ground reactions modeling.
FGLGear * GetGearUnit(int gear) const
Gets a gear instance.
Base class for all surface properties.
Definition: FGSurface.h:67
Encapsulates the JSBSim simulation executive.
Definition: FGFDMExec.h:189
double GetDsCmd(void) const
Gets the steering command.
Landing gear model.
Definition: FGLGear.h:194