diff --git a/src/FDM/YASim/Airplane.cpp b/src/FDM/YASim/Airplane.cpp index 53df46542..f2be3e0dc 100644 --- a/src/FDM/YASim/Airplane.cpp +++ b/src/FDM/YASim/Airplane.cpp @@ -582,7 +582,7 @@ void Airplane::compile() // Ground effect float gepos[3]; float gespan = _wing->getGroundEffect(gepos); - _model.setGroundEffect(gepos, gespan, 0.3f); + _model.setGroundEffect(gepos, gespan, 0.15f); solveGear(); solve(); diff --git a/src/FDM/YASim/Model.cpp b/src/FDM/YASim/Model.cpp index 1a098358c..8cc50c9d0 100644 --- a/src/FDM/YASim/Model.cpp +++ b/src/FDM/YASim/Model.cpp @@ -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); }