低通滤波器 在信号处理专栏有后向欧拉法的详细介绍和源代码,请查看相应的文章,链接如下:
         
          
           
            PLC信号处理系列之一阶低通(RC)滤波器算法_RXXW_Dor的博客-CSDN博客_rc滤波电路的优缺点
           
           
            1、先看看RC滤波的优缺点 优点:采用数字滤波算法来实现动态的RC滤波,则能很好的克服模拟滤波器的缺点; 1、在模拟常数要求较大的场合这种算法显得更为实用; 2、对于周期干扰有良好的抑制作用, 3、比较节省RAM空间 缺点:不足之处是带来了相位滞后,导致灵敏度低;同时它不能滤除频率高于采样频率的二分之一(称为奈奎斯特频率)的干扰(例如采样频率为100Hz,则它不能滤除50Hz以上的干扰信号)对于高于奈奎斯特频率的干扰信号,应该采
           
           
            
            https://blog.csdn.net/m0_46143730/article/details/123755877
           
          
         
         关于后向
         
          欧拉法
         
         ,这里不再赘述,不清楚的可以自行搜索。这里我们主要讲下双线性变换法的离散化公式和PLC实现代码。
        
1、双线性变换法
         
        
2、后向欧拉法
         
        
后向欧拉法的PLC实现代码,专栏有很多系列文章分享,这里不再赘述。
3、卷绕库低通滤波器算法
         
        
按照公式编程时,需要注意运算优先级,括号不要丢(这点可能很多人会犯错)。
4、FX3U
         
        
5、完整FB代码
- (*双线性变换法一阶低通数字滤波器*)
 - yk:=(E2.0*Smoothing-tCycle)/(E2.0*Smoothing+tCycle)*yk1+tCycle*(xk+xk1)/(E2.0*Smoothing+tCycle);
 - xk1:=xk;
 - yk1:=yk;
 
        6、FB接口定义
- VAR_INPUT	xk	        FLOAT (Single Precision)
 - VAR_INPUT	Smoothing	FLOAT (Single Precision)
 - VAR_INPUT	tCycle	    FLOAT (Single Precision)
 - VAR_OUTPUT	yk	        FLOAT (Single Precision)
 - VAR	xk1	                FLOAT (Single Precision)
 - VAR	yk1	                FLOAT (Single Precision)
 
        7、 信号与系统
         
        
PT1指令在PID仿真上的应用,可以参看下面的文章链接:
8、SMART PLC低通滤波器指令PT1
         
        
9、PT1接口定义
         
        
10、PT1 STL代码
- SUBROUTINE_BLOCK PT1:SBR14
 - TITLE=PT1功能块--双线性变换低通滤波器
 - VAR_INPUT
 - xk:REAL;	// 输入信号 signal;
 - tCycle:REAL;	// 采样时间/中断程序执行时间 interruption time; ms
 - smoothingTime:REAL;	// 平滑时间 ms
 - END_VAR
 - VAR_IN_OUT
 - xk1:REAL;	// 上一采样时刻输入信号
 - yk1:REAL;	// 上一采样时刻输出信号
 - END_VAR
 - VAR_OUTPUT
 - yk:REAL;	// 滤波输出值
 - END_VAR
 - VAR
 - Temp:REAL;	// 2*smoothTime
 - Temp1:REAL;
 - END_VAR
 - BEGIN
 - Network 1 
 - // yk=((2*smoothTime-tCycle)*yk1 + tCycle*(xk+xk1))/(2*smoothTime+tCycle)
 - LD     SM0.0
 - MOVR   2.0, LD24
 - *R     LD8, LD24
 - MOVR   LD24, AC0
 - -R     LD4, AC0
 - *R     LD16, AC0
 - Network 2 
 - //  tCycle*(xk+xk1)= AC2
 - LD     SM0.0
 - MOVR   LD0, AC1
 - +R     LD12, AC1
 - MOVR   LD4, AC2
 - *R     AC1, AC2
 - Network 3 
 - // 2*smoothTime + tCycle =Temp1
 - LD     SM0.0
 - MOVR   AC0, AC3
 - +R     AC2, AC3
 - MOVR   LD24, LD28
 - +R     LD4, LD28
 - MOVR   AC3, LD20
 - /R     LD28, LD20
 - Network 4 
 - // 更新各时刻离散采样值
 - // yk1=yk;
 - // xk1=xk;
 - LD     SM0.0
 - MOVR   LD0, LD12
 - MOVR   LD20, LD16
 - END_SUBROUTINE_BLOCK
 
        
         
          
           
            
            
            
            
          
            
          
        本文介绍了PLC中数字低通滤波器的实现,重点讨论了双线性变换法,并提及了后向欧拉法。内容涵盖了滤波器算法的原理、PLC代码实现、FX3U PLC的应用,以及SMART PLC的PT1指令详细。还提到了PT1指令在PID仿真中的应用。