X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FYASim%2FModel.cpp;h=8cc50c9d03aaff659d98847940bd68b2d7764694;hb=c3cefaf883ddadb467c0e5da7f966558cbc2355b;hp=44ff1bdfc7076c372fc550c3f3ad2cedda2fd38a;hpb=56473dc28d960524ccdf83b33f477adcade1fcd4;p=flightgear.git diff --git a/src/FDM/YASim/Model.cpp b/src/FDM/YASim/Model.cpp index 44ff1bdfc..8cc50c9d0 100644 --- a/src/FDM/YASim/Model.cpp +++ b/src/FDM/YASim/Model.cpp @@ -84,7 +84,7 @@ void Model::initIteration() localWind(pos, _s, v); t->setWind(v); - t->setAir(_pressure, _temp); + t->setAir(_pressure, _temp, _rho); t->integrate(_integrator.getInterval()); t->getTorque(v); @@ -191,11 +191,11 @@ void Model::setGroundPlane(double* planeNormal, double fromOrigin) _ground[3] = fromOrigin; } -void Model::setAir(float pressure, float temp) +void Model::setAir(float pressure, float temp, float density) { _pressure = pressure; _temp = temp; - _rho = Atmosphere::calcDensity(pressure, temp); + _rho = density; } void Model::setWind(float* wind) @@ -260,8 +260,9 @@ void Model::calcForces(State* s) float dist = ground[3] - Math::dot3(ground, _wingCenter); if(dist > 0 && dist < _groundEffectSpan) { float fz = Math::dot3(faero, ground); - Math::mul3(fz * _groundEffect * dist/_groundEffectSpan, - ground, faero); + fz *= (_groundEffectSpan - dist) / _groundEffectSpan; + fz *= _groundEffect; + Math::mul3(fz, ground, faero); _body.addForce(faero); }