X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FJSBSim%2Fmodels%2FFGLGear.h;h=f1828f8cf840b17c4c7ffebc6ea90ac5022d8fec;hb=a302cdc1cbb3c147e7c862b484cdd5d86f30a29c;hp=9b86b68794d174fb5565ca324d979b4caaf85d7a;hpb=bb419b588c3b9819081461e196b5ddbbd9f11d69;p=flightgear.git diff --git a/src/FDM/JSBSim/models/FGLGear.h b/src/FDM/JSBSim/models/FGLGear.h index 9b86b6879..f1828f8cf 100644 --- a/src/FDM/JSBSim/models/FGLGear.h +++ b/src/FDM/JSBSim/models/FGLGear.h @@ -39,6 +39,7 @@ INCLUDES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ #include "models/propulsion/FGForce.h" +#include "models/FGPropagate.h" #include "math/FGColumnVector3.h" #include @@ -46,7 +47,7 @@ INCLUDES DEFINITIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -#define ID_LGEAR "$Id$" +#define ID_LGEAR "$Id: FGLGear.h,v 1.41 2010/09/22 11:33:40 jberndt Exp $" /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FORWARD DECLARATIONS @@ -57,7 +58,6 @@ namespace JSBSim { class FGAircraft; class FGPropagate; class FGFCS; -class FGState; class FGMassBalance; class FGAuxiliary; class FGTable; @@ -84,7 +84,6 @@ CLASS DOCUMENTATION

Operational Properties

  1. Name
  2. -
  3. Steerability attribute {one of STEERABLE | FIXED | CASTERED}
  4. Brake Group Membership {one of LEFT | CENTER | RIGHT | NOSE | TAIL | NONE}
  5. Max Steer Angle, in degrees

@@ -178,19 +177,10 @@ CLASS DOCUMENTATION {0 | 1}
- - {number} - {number} - - - {number} - {number} - - {number} @endcode @author Jon S. Berndt - @version $Id$ + @version $Id: FGLGear.h,v 1.41 2010/09/22 11:33:40 jberndt Exp $ @see Richard E. McFarland, "A Standard Kinematic Model for Flight Simulation at NASA-Ames", NASA CR-2497, January 1975 @see Barnes W. McCormick, "Aerodynamics, Aeronautics, and Flight Mechanics", @@ -216,6 +206,8 @@ public: enum ReportType {erNone=0, erTakeoff, erLand}; /// Damping types enum DampType {dtLinear=0, dtSquare}; + /// Friction types + enum FrictionType {ftRoll=0, ftSide, ftDynamic}; /** Constructor @param el a pointer to the XML element that contains the CONTACT info. @param Executive a pointer to the parent executive object @@ -289,6 +281,10 @@ public: double GetWheelVel(int axis) const { return vWhlVelVec(axis);} bool IsBogey(void) const { return (eContactType == ctBOGEY);} double GetGearUnitPos(void); + double GetSteerAngleDeg(void) const { return radtodeg*SteerAngle; } + FGPropagate::LagrangeMultiplier* GetMultiplierEntry(int entry); + void SetLagrangeMultiplier(double lambda, int entry); + FGColumnVector3& UpdateForces(void); void bind(void); @@ -337,6 +333,8 @@ private: bool isRetractable; bool GearUp, GearDown; bool Servicable; + bool Castered; + bool StaticFriction; std::string name; std::string sSteerType; std::string sBrakeGroup; @@ -349,22 +347,14 @@ private: DampType eDampType; DampType eDampTypeRebound; double maxSteerAngle; - double RFRV; // Rolling force relaxation velocity - double SFRV; // Side force relaxation velocity - double LongForceLagFilterCoeff; // Longitudinal Force Lag Filter Coefficient - double LatForceLagFilterCoeff; // Lateral Force Lag Filter Coefficient - double WheelSlipLagFilterCoeff; // Wheel slip angle lag filter coefficient - - Filter LongForceFilter; - Filter LatForceFilter; - Filter WheelSlipFilter; - - FGState* State; - FGAircraft* Aircraft; - FGPropagate* Propagate; - FGAuxiliary* Auxiliary; - FGFCS* FCS; - FGMassBalance* MassBalance; + + FGPropagate::LagrangeMultiplier LMultiplier[3]; + + FGAuxiliary* Auxiliary; + FGPropagate* Propagate; + FGFCS* FCS; + FGMassBalance* MassBalance; + FGGroundReactions* GroundReactions; void ComputeRetractionState(void); void ComputeBrakeForceCoefficient(void); @@ -373,6 +363,7 @@ private: void ComputeSideForceCoefficient(void); void ComputeVerticalStrutForce(void); void ComputeGroundCoordSys(void); + void ComputeJacobian(const FGColumnVector3& vWhlContactVec); void CrashDetect(void); void InitializeReporting(void); void ResetReporting(void);