1.数学公式及效果
一阶低通滤波器基于欧拉后向差分法;
低通滤波器用来平滑输出值的突然变化,使直角变为圆角输出;
以下是实现效果及数学公式:
2.实现代码
以下是基于Codesys平台实现的代码:
注:代码已经过实验,复制粘贴即可使用
FUNCTION_BLOCK FB_RC_Fiter
VAR_INPUT
rInput:REAL;//输入原始信号
rAIpha:REAL;//滤波系数 0~1(一般为0.01)
END_VAR
VAR_OUTPUT
rFlter_OUT:REAL;//滤波输出
END_VAR
VAR
lastFlter_Out:REAL;//上次的滤波的输出值
END_VAR
//一阶滞后低通滤波器
rFlter_OUT:=rAIpha*rInput+(1.0-rAIpha)*(lastFlter_Out);
lastFlter_Out:=rFlter_OUT;
codesys中的实现效果: