1、SMART PLC Tustin变换(双线性变换)低通滤波器
https://rxxw-control.blog.csdn.net/article/details/136551330https://rxxw-control.blog.csdn.net/article/details/1365513302、博途PLC RC低通滤波器(后向差分法)
https://rxxw-control.blog.csdn.net/article/details/125361383https://rxxw-control.blog.csdn.net/article/details/1253613833、双线性变换
https://rxxw-control.blog.csdn.net/article/details/128586285https://rxxw-control.blog.csdn.net/article/details/128586285
1、低通滤波器(Tustin变换)
2、FB+SCL代码
3、SCL代码
FUNCTION_BLOCK "FB_Tustin_LPT"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
xn : Real; // 输入离散采样信号;
Alpha : Real; // 滤波系数0.0-1.0;
diCycle : DInt := 10; // 滤波器调用周期 执行周期Ts ms;
diIntTime : DInt := 10; // 定时中断时间 基础步长ms;
END_VAR
VAR_OUTPUT
yn : Real; // 滤波器输出;
END_VAR
VAR
xn_1 : Real; // 上一时刻离散输入信号;
yn_1 : Real; // 上一时刻滤波器输出结果值;
Cnt : DInt; // 定时中断计时 单位ms;
END_VAR
BEGIN
//一阶低通滤波器(双线性变换 Tustin变换)
//RXXW_Dor
//2024-03-09
//RXXW_Dor
IF #Cnt >= #diCycle THEN
#yn := #yn_1+#Alpha*(#xn + #xn_1 - 2.0*#yn_1);
#yn_1 := #yn;
#xn_1 := #xn;
#Cnt := 0;
END_IF;
#Cnt := #Cnt + #diIntTime;
END_FUNCTION_BLOCK