From 3e2325ee55c36c9c315cbfe7875a5627fd05596c Mon Sep 17 00:00:00 2001 From: Mathieu Carbou Date: Tue, 28 Jan 2025 17:07:41 +0100 Subject: [PATCH] Fix THDi percentage --- lib/MycilaRouter/MycilaRouter.cpp | 4 ++-- lib/MycilaRouter/MycilaRouterOutput.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/MycilaRouter/MycilaRouter.cpp b/lib/MycilaRouter/MycilaRouter.cpp index 2b96850..0a7f797 100644 --- a/lib/MycilaRouter/MycilaRouter.cpp +++ b/lib/MycilaRouter/MycilaRouter.cpp @@ -83,7 +83,7 @@ void Mycila::Router::getRouterMetrics(Metrics& metrics, float voltage) const { metrics.powerFactor = metrics.apparentPower == 0 ? NAN : metrics.power / metrics.apparentPower; metrics.resistance = metrics.current == 0 ? NAN : metrics.power / (metrics.current * metrics.current); - metrics.thdi = metrics.powerFactor == 0 ? NAN : std::sqrt(1.0f / (metrics.powerFactor * metrics.powerFactor) - 1.0f); + metrics.thdi = metrics.powerFactor == 0 ? NAN : 100.0f * std::sqrt(1.0f / (metrics.powerFactor * metrics.powerFactor) - 1.0f); if (_localMetrics.isPresent()) { metrics.energy = _localMetrics.get().energy; @@ -117,7 +117,7 @@ void Mycila::Router::getRouterMeasurements(Metrics& metrics) const { metrics.powerFactor = metrics.apparentPower == 0 ? NAN : metrics.power / metrics.apparentPower; metrics.resistance = metrics.current == 0 ? NAN : metrics.power / (metrics.current * metrics.current); - metrics.thdi = metrics.powerFactor == 0 ? NAN : std::sqrt(1.0f / (metrics.powerFactor * metrics.powerFactor) - 1.0f); + metrics.thdi = metrics.powerFactor == 0 ? NAN : 100.0f * std::sqrt(1.0f / (metrics.powerFactor * metrics.powerFactor) - 1.0f); } } diff --git a/lib/MycilaRouter/MycilaRouterOutput.cpp b/lib/MycilaRouter/MycilaRouterOutput.cpp index 785bb79..b35aa23 100644 --- a/lib/MycilaRouter/MycilaRouterOutput.cpp +++ b/lib/MycilaRouter/MycilaRouterOutput.cpp @@ -316,7 +316,7 @@ void Mycila::RouterOutput::getOutputMetrics(Metrics& metrics, float gridVoltage) metrics.dimmedVoltage = metrics.powerFactor * metrics.voltage; metrics.current = metrics.resistance == 0 ? 0 : metrics.dimmedVoltage / metrics.resistance; metrics.apparentPower = metrics.current * metrics.voltage; - metrics.thdi = dutyCycle == 0 ? 0 : std::sqrt(1 / dutyCycle - 1); + metrics.thdi = dutyCycle == 0 ? 0 : 100.0f * std::sqrt(1 / dutyCycle - 1); } bool Mycila::RouterOutput::getOutputMeasurements(Metrics& metrics) const {