From 39765e002e71a2dd54e932469877acfc1b6fcb67 Mon Sep 17 00:00:00 2001 From: pux Date: Thu, 7 Jan 2021 19:39:17 +0100 Subject: add *.exp; (this is redundant information, just to be able to diff later on) --- exp/FB_EWMA.EXP | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 exp/FB_EWMA.EXP (limited to 'exp/FB_EWMA.EXP') diff --git a/exp/FB_EWMA.EXP b/exp/FB_EWMA.EXP new file mode 100644 index 0000000..6496df9 --- /dev/null +++ b/exp/FB_EWMA.EXP @@ -0,0 +1,35 @@ + +(* @NESTEDCOMMENTS := 'Yes' *) +(* @PATH := '' *) +(* @OBJECTFLAGS := '0, 8' *) +(* @SYMFILEFLAGS := '2048' *) +FUNCTION_BLOCK FB_EWMA +VAR_INPUT + IN_rN : REAL := 15; (* Filter constant alpha := rN/(rN+1) *) + IN_rXk : REAL; (* Input value to smooth *) +END_VAR +VAR_OUTPUT + OUT_rXk_avg : REAL; (* smoothed output *) +END_VAR +VAR + rAlpha : REAL; + rXk_avg_old : REAL; +END_VAR + +(* Exponentially Weighted Moving Average Filter +Author: mo +Date: 2019-02 + +Filter constant: alpha := n / (n+1) +EWMA Filter: Xk_avg := alpha*Xk_prev + (1-alpha)*Xk + +*) +(* @END_DECLARATION := '0' *) +rAlpha := IN_rN/(IN_rN+1); + +OUT_rXk_avg := rAlpha * rXk_avg_old + + ( (1 - rAlpha) * IN_rXk); + +rXk_avg_old := OUT_rXk_avg; + +END_FUNCTION_BLOCK -- cgit v1.2.2-1-g5e49