Skip to content

Commit

Permalink
Add DEMA
Browse files Browse the repository at this point in the history
  • Loading branch information
FredM67 committed Mar 9, 2024
1 parent 52892c2 commit fb99ae1
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 14 deletions.
22 changes: 16 additions & 6 deletions Mk2_3phase_RFdatalog_temp/ewma_avg.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,18 +73,28 @@ class EWMA_average
public:
void addValue(int32_t input)
{
w = w - x + input;
x = w >> round_up_to_power_of_2(A);
ema_raw = ema_raw - ema + input;
ema = ema_raw >> round_up_to_power_of_2(A);

ema_ema_raw = ema_ema_raw - ema_ema + ema;
ema_ema = ema_ema_raw >> round_up_to_power_of_2(A);
}

auto getAverageS() const
{
return ema;
}

auto getAverage() const
auto getAverageD() const
{
return x;
return (ema << 1) - ema_ema;
}

private:
int32_t w{ 0 };
int32_t x{ 0 };
int32_t ema_ema_raw{ 0 };
int32_t ema_ema{ 0 };
int32_t ema_raw{ 0 };
int32_t ema{ 0 };
};

#endif
8 changes: 4 additions & 4 deletions Mk2_3phase_RFdatalog_temp/utils_relay.h
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ class RelayEngine
*/
inline static auto get_average()
{
return ewma_average.getAverage();
return ewma_average.getAverageS();
}

/**
Expand All @@ -313,13 +313,13 @@ class RelayEngine
return;
}

if (ewma_average.getAverage() > 0)
if (ewma_average.getAverageS() > 0)
{
// Currently importing, try to turn OFF some relays
uint8_t idx{ N };
do
{
if (relay[--idx].proceed_relay(ewma_average.getAverage()))
if (relay[--idx].proceed_relay(ewma_average.getAverageS()))
{
settle_change = 60;
return;
Expand All @@ -332,7 +332,7 @@ class RelayEngine
uint8_t idx{ 0 };
do
{
if (relay[idx].proceed_relay(ewma_average.getAverage()))
if (relay[idx].proceed_relay(ewma_average.getAverageS()))
{
settle_change = 60;
return;
Expand Down
7 changes: 3 additions & 4 deletions dev/MathPerfTests/MathPerfTests.ino
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,9 @@ public:

ema_ema_raw = ema_ema_raw - ema_ema + ema;
ema_ema = ema_ema_raw >> round_up_to_power_of_2(A);

}

auto getAverage() const
auto getAverageS() const
{
return ema;
}
Expand Down Expand Up @@ -159,7 +158,7 @@ void loop()
Serial.print(" | ");
Serial.print(input_data[i]);
Serial.print(" | ");
Serial.print(ewma_average.getAverage());
Serial.print(ewma_average.getAverageS());
Serial.print(" | ");
Serial.println(ewma_average.getAverageD());

Expand All @@ -174,7 +173,7 @@ void loop()

Serial.print(sliding_Average.getAverage());
Serial.print(" - ");
Serial.print(ewma_average.getAverage());
Serial.print(ewma_average.getAverageS());
Serial.print(" - ");
Serial.print(ewma_average.getAverageD());
Serial.print(" - ");
Expand Down

0 comments on commit fb99ae1

Please sign in to comment.