From 4ecd1462581fea597c45b9a445f828a51e196adc Mon Sep 17 00:00:00 2001 From: david <david> Date: Wed, 12 Feb 2003 00:30:24 +0000 Subject: [PATCH] Connect the FlightGear /environment/turbulence-norm property to the turbulence gain in JSBSim's FGAtmosphere class. Latest FGAtmosphere from JSBSim with working turbulence support. --- src/FDM/JSBSim/FGAtmosphere.cpp | 11 ++++++----- src/FDM/JSBSim/JSBSim.cxx | 3 +++ src/FDM/JSBSim/JSBSim.hxx | 1 + 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/FDM/JSBSim/FGAtmosphere.cpp b/src/FDM/JSBSim/FGAtmosphere.cpp index e6f58d8f2..979c1f498 100644 --- a/src/FDM/JSBSim/FGAtmosphere.cpp +++ b/src/FDM/JSBSim/FGAtmosphere.cpp @@ -88,9 +88,9 @@ FGAtmosphere::FGAtmosphere(FGFDMExec* fdmex) : FGModel(fdmex) htab[7]=259186.352; //ft. MagnitudedAccelDt = MagnitudeAccel = Magnitude = 0.0; - turbType = ttNone; -// turbType = ttBerndt; // temporarily disable turbulence until fully tested - TurbGain = 100.0; +// turbType = ttNone; + turbType = ttBerndt; + TurbGain = 0.0; bind(); Debug(0); @@ -266,10 +266,11 @@ void FGAtmosphere::Turbulence(void) vDirectiondAccelDt(eY) = 1 - 2.0*(((double)(rand()))/RAND_MAX); vDirectiondAccelDt(eZ) = 1 - 2.0*(((double)(rand()))/RAND_MAX); - MagnitudedAccelDt = 1 - 2.0*(((double)(rand()))/RAND_MAX); + + MagnitudedAccelDt = 1 - 2.0*(((double)(rand()))/RAND_MAX) - Magnitude; MagnitudeAccel += MagnitudedAccelDt*rate*State->Getdt(); Magnitude += MagnitudeAccel*rate*State->Getdt(); - + vDirectiondAccelDt.Normalize(); vDirectionAccel += vDirectiondAccelDt*rate*State->Getdt(); vDirectionAccel.Normalize(); diff --git a/src/FDM/JSBSim/JSBSim.cxx b/src/FDM/JSBSim/JSBSim.cxx index a114dcc13..2633332df 100644 --- a/src/FDM/JSBSim/JSBSim.cxx +++ b/src/FDM/JSBSim/JSBSim.cxx @@ -178,6 +178,7 @@ FGJSBsim::FGJSBsim( double dt ) temperature = fgGetNode("/environment/temperature-degc",true); pressure = fgGetNode("/environment/pressure-inhg",true); density = fgGetNode("/environment/density-slugft3",true); + turbulence = fgGetNode("environment/turbulence-norm",true); wind_from_north= fgGetNode("/environment/wind-from-north-fps",true); wind_from_east = fgGetNode("/environment/wind-from-east-fps" ,true); @@ -211,6 +212,7 @@ void FGJSBsim::init() { 9.0/5.0*(temperature->getDoubleValue()+273.15) ); Atmosphere->SetExPressure(pressure->getDoubleValue()*70.726566); Atmosphere->SetExDensity(density->getDoubleValue()); + Atmosphere->SetTurbGain(turbulence->getDoubleValue()*100.0); } else { Atmosphere->UseInternal(); } @@ -398,6 +400,7 @@ bool FGJSBsim::copy_to_JSBsim() { 9.0/5.0*(temperature->getDoubleValue()+273.15) ); Atmosphere->SetExPressure(pressure->getDoubleValue()*70.726566); Atmosphere->SetExDensity(density->getDoubleValue()); + Atmosphere->SetTurbGain(turbulence->getDoubleValue()*100.0); Atmosphere->SetWindNED( wind_from_north->getDoubleValue(), wind_from_east->getDoubleValue(), diff --git a/src/FDM/JSBSim/JSBSim.hxx b/src/FDM/JSBSim/JSBSim.hxx index cdbc3c768..dff07bc06 100644 --- a/src/FDM/JSBSim/JSBSim.hxx +++ b/src/FDM/JSBSim/JSBSim.hxx @@ -263,6 +263,7 @@ private: SGPropertyNode *temperature; SGPropertyNode *pressure; SGPropertyNode *density; + SGPropertyNode *turbulence; SGPropertyNode *wind_from_north; SGPropertyNode *wind_from_east;