1、SMART PLC Tustin变换(双线性变换)低通滤波器

https://rxxw-control.blog.csdn.net/article/details/136551330博途PLC 低通滤波器(Tustin变换)-LMLPHPhttps://rxxw-control.blog.csdn.net/article/details/1365513302、博途PLC RC低通滤波器(后向差分法)

https://rxxw-control.blog.csdn.net/article/details/125361383博途PLC 低通滤波器(Tustin变换)-LMLPHPhttps://rxxw-control.blog.csdn.net/article/details/1253613833、双线性变换

https://rxxw-control.blog.csdn.net/article/details/128586285博途PLC 低通滤波器(Tustin变换)-LMLPHPhttps://rxxw-control.blog.csdn.net/article/details/128586285

1、低通滤波器(Tustin变换)

博途PLC 低通滤波器(Tustin变换)-LMLPHP

2、FB+SCL代码

博途PLC 低通滤波器(Tustin变换)-LMLPHP

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

03-10 16:32