From eaa35208c1b9b500c41231ae840c8532b2cfb2bf Mon Sep 17 00:00:00 2001
From: Emilio Corigliano <emilio.corigliano@skywarder.eu>
Date: Mon, 2 Sep 2024 10:51:03 +0200
Subject: [PATCH] [MEA] Added correction factor for cd estimation
---
src/shared/algorithms/MEA/MEA.cpp | 9 +++++----
src/shared/algorithms/MEA/MEA.h | 5 +++++
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/shared/algorithms/MEA/MEA.cpp b/src/shared/algorithms/MEA/MEA.cpp
index 0408f3d51..494bcaab6 100644
--- a/src/shared/algorithms/MEA/MEA.cpp
+++ b/src/shared/algorithms/MEA/MEA.cpp
@@ -63,9 +63,10 @@ MEA::MEA(const Config &config)
baroR{config.baroR}, P{config.P}, x{0, 0, config.initialMass},
mass{config.initialMass}, accelThresh{config.accelThresh},
speedThresh{config.speedThresh}, Kt{config.Kt}, alpha{config.alpha},
- c{config.c}, coeffs{config.coeffs}, crossSection{config.crossSection},
- ae{config.ae}, p0{config.p0}, minMass{config.minMass}, maxMass{
- config.maxMass}
+ c{config.c}, coeffs{config.coeffs},
+ crossSection{config.crossSection}, ae{config.ae}, p0{config.p0},
+ minMass{config.minMass}, maxMass{config.maxMass},
+ cdCorrectionFactor(config.cdCorrectionFactor)
{
updateState();
}
@@ -113,7 +114,7 @@ void MEA::computeForce(const Step &step)
mach = Aeroutils::computeMach(-step.mslAltitude, step.verticalSpeed,
Constants::MSL_TEMPERATURE);
- cd = Aeroutils::computeCd(coeffs, mach);
+ cd = cdCorrectionFactor * Aeroutils::computeCd(coeffs, mach);
rho = Aeroutils::computeRho(-step.mslAltitude, Constants::MSL_TEMPERATURE);
// Dynamic pressure
diff --git a/src/shared/algorithms/MEA/MEA.h b/src/shared/algorithms/MEA/MEA.h
index 795761e43..fbe18c7e6 100644
--- a/src/shared/algorithms/MEA/MEA.h
+++ b/src/shared/algorithms/MEA/MEA.h
@@ -64,6 +64,9 @@ public:
float minMass; //< Minimum mass used for predicted apogee
float maxMass; //< Maximum mass used for predicted apogee
+
+ float cdCorrectionFactor; // Factor to account for extra drag generated
+ // by the plume
};
struct Step
@@ -147,6 +150,8 @@ private:
float minMass;
float maxMass;
+ float cdCorrectionFactor;
+
MEAState state;
};
--
GitLab