低通滤波器 在信号处理专栏有后向欧拉法的详细介绍和源代码,请查看相应的文章,链接如下:
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