From 7b7de3d3e0065b449820a516b51e5203d8a5a509 Mon Sep 17 00:00:00 2001 From: andy Date: Tue, 5 Nov 2002 21:36:47 +0000 Subject: [PATCH] Blindingly stupid ground effect bug. It interpolated in the wrong direction (zero at ground, maximum at 1-span!) --- src/FDM/YASim/Airplane.cpp | 2 +- src/FDM/YASim/Model.cpp | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) 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); } -- 2.39.5