From 5b987bfd5b0829a9b0abc72b7deedbe0d49e10ad89cbdd827624c9f23d9b697b Mon Sep 17 00:00:00 2001 From: localhorst Date: Fri, 24 Oct 2025 11:14:10 +0200 Subject: [PATCH] improve damping --- main/inputs.c | 7 ++++--- main/inputs.h | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/main/inputs.c b/main/inputs.c index 0f27cc6..a9ef723 100644 --- a/main/inputs.c +++ b/main/inputs.c @@ -155,11 +155,12 @@ void updateAverage(sMeasurement *pMeasurement) { if (pMeasurement->fCurrentValue > pMeasurement->fDampedValue) { - pMeasurement->fDampedValue = pMeasurement->fDampedValue + (DAMPING_FACTOR * (pMeasurement->fCurrentValue - pMeasurement->fDampedValue)); + pMeasurement->fDampedValue = pMeasurement->fDampedValue + (DAMPING_FACTOR_WARMER * (pMeasurement->fCurrentValue - pMeasurement->fDampedValue)); } - else + + if (pMeasurement->fCurrentValue < pMeasurement->fDampedValue) { - pMeasurement->fDampedValue = pMeasurement->fDampedValue - (DAMPING_FACTOR * (pMeasurement->fDampedValue - pMeasurement->fCurrentValue)); + pMeasurement->fDampedValue = pMeasurement->fDampedValue - (DAMPING_FACTOR_COLDER * (pMeasurement->fDampedValue - pMeasurement->fCurrentValue)); } } } diff --git a/main/inputs.h b/main/inputs.h index eed75b7..a005e3c 100644 --- a/main/inputs.h +++ b/main/inputs.h @@ -6,7 +6,8 @@ #define AVG60S_SAMPLE_SIZE 60U #define AVG24H_SAMPLE_SIZE 24U #define PRED60S_SAMPLE_SIZE 60U -#define DAMPING_FACTOR 0.01f +#define DAMPING_FACTOR_WARMER 0.001f +#define DAMPING_FACTOR_COLDER 0.005f typedef enum _BurnerErrorState {