From 9f5498acf4d8a050ab963d5833315227da1c6772 Mon Sep 17 00:00:00 2001 From: david Date: Wed, 12 Feb 2003 18:34:39 +0000 Subject: [PATCH] Fade out the turbulence within two wingspans of the ground. --- src/FDM/JSBSim/FGAtmosphere.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/FDM/JSBSim/FGAtmosphere.cpp b/src/FDM/JSBSim/FGAtmosphere.cpp index 979c1f498..ec9d91493 100644 --- a/src/FDM/JSBSim/FGAtmosphere.cpp +++ b/src/FDM/JSBSim/FGAtmosphere.cpp @@ -261,7 +261,7 @@ void FGAtmosphere::Calculate(double altitude) void FGAtmosphere::Turbulence(void) { switch (turbType) { - case ttBerndt: + case ttBerndt: { vDirectiondAccelDt(eX) = 1 - 2.0*(((double)(rand()))/RAND_MAX); vDirectiondAccelDt(eY) = 1 - 2.0*(((double)(rand()))/RAND_MAX); vDirectiondAccelDt(eZ) = 1 - 2.0*(((double)(rand()))/RAND_MAX); @@ -270,6 +270,16 @@ void FGAtmosphere::Turbulence(void) MagnitudedAccelDt = 1 - 2.0*(((double)(rand()))/RAND_MAX) - Magnitude; MagnitudeAccel += MagnitudedAccelDt*rate*State->Getdt(); Magnitude += MagnitudeAccel*rate*State->Getdt(); + + // Fade the magnitude within two wingspans + // of the ground (WAG) + double AdjustedMagnitude = Magnitude; + double AdjustedMagnitudeAccel = MagnitudeAccel; + double HOverBMAC = Position->GetHOverBMAC(); + if (HOverBMAC < 2.0) { + AdjustedMagnitude *= (HOverBMAC / 2.0); + AdjustedMagnitudeAccel *= (HOverBMAC / 2.0); + } vDirectiondAccelDt.Normalize(); vDirectionAccel += vDirectiondAccelDt*rate*State->Getdt(); @@ -277,8 +287,8 @@ void FGAtmosphere::Turbulence(void) vDirection += vDirectionAccel*rate*State->Getdt(); vDirection.Normalize(); - vTurbulence = TurbGain*Magnitude * vDirection; - vTurbulenceGrad = TurbGain*MagnitudeAccel * vDirection; + vTurbulence = TurbGain*AdjustedMagnitude * vDirection; + vTurbulenceGrad = TurbGain*AdjustedMagnitudeAccel * vDirection; vBodyTurbGrad = State->GetTl2b()*vTurbulenceGrad; vTurbPQR(eP) = vBodyTurbGrad(eY)/Aircraft->GetWingSpan(); @@ -293,6 +303,7 @@ void FGAtmosphere::Turbulence(void) vTurbPQR(eR) = vBodyTurbGrad(eX)/10.0; break; + } default: break; } -- 2.39.5