让别人免费给你写程序基本上不可能,这个得花时间和精力。
plc有信号闪烁怎么做滤波?本次分享程序为采样时间可自定义的滤波程序,原理如下按自定义周期采集一个值,采集十个值后去除最大值和最小值,得到平均值并输出
以博途为例
首先,新建一个FB功能块
新建FB功能块
打开你的块后建立如下变量表
现在开始编程
第一步,初始化SUM(求和值)和SUM_f_D(去除最大最小值后的值)第二步,采集值压进堆栈,这里我用move指令模拟了一个堆栈程序
第三步,用MAX指令找出最大值
第四步,用MIN指令找出最小值
第五步,求和后减去最大和最小值
最后一步,输出滤波值
这是一个FB功能块接下来在程序里调用它
这是现场供水管温度波动大,加入滤波块后稳定运行
这里的比较值10就是说10s采集一个值,你可以根据现场实际修改它,包括1s脉冲也可以自定义
这个程序是我们公司这几年一直在用的一个功能块,分享给有需要的各位,请转发点赞支持一下,码字不易,祝各位事业有成!后面还会分享这几年一直在用得好的功能块
如果需要原程序的,可以在下方留言,如果对程序有疑问也可以留言,谢谢!
[B,A]=butter(7,0.596,'s')% 巴特沃兹低通滤波器级数7,截止频率0.596
[num,den]=impinvar(B,A,1)
% 转为数字滤波,采样频率1HZ
[h,w]=freqz(num,den,512)
% 计算频率响应,用512采样值计算
plot(w/pi,20*log10(abs(h)))grid
axis([0 1 -60 5])
xlabel('\omega/\pi')ylabel('Gain,in dB')
title('Gain response')
% 画出频率响应曲线,横轴频率,单位赫兹,纵轴幅值,单位分贝
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)