plc中值滤波算法编程案例
PLC如何模拟输入滤波十种方法详细资料介绍

PLC 如何模拟输入滤波十种方法详细资料介绍
1、限幅滤波法(又称程序判断滤波法)A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差《=A,则本次值有效如果本次值与上次值之差》A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因偶然因素引起的脉冲干扰C、缺点无法抑制那种周期性的干扰平滑度差
2、中位值滤波法A、方法:连续采样N 次(N 取奇数)把N 次采样值按大小排列取中间值为本次有效值B、优点:能有效克服因偶然因素引起的波动干扰对温度、液位的变化缓慢的被测参数有良好的滤波效果C、缺点:对流量、速度等快速变化的参数不宜
3、算术平均滤波法A、方法:连续取N 个采样值进行算术平均运算N 值较大时:信号平滑度较高,但灵敏度较低N 值较小时:信号平滑度较低,但灵敏度较高N 值的选取:一般流量,N=12;压力:N=4B、优点:适用于对一般具有随机干扰的信号进行滤波这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动C、缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用比较浪费RAM
4、递推平均滤波法(又称滑动平均滤波法)A、方法:把连续取N。
各种滤波算法及实例

1、限幅滤波法(又称程序判断滤波法)A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因偶然因素引起的脉冲干扰C、缺点无法抑制那种周期性的干扰平滑度差2、中位值滤波法A、方法:连续采样N次(N取奇数)把N次采样值按大小排列取中间值为本次有效值B、优点:能有效克服因偶然因素引起的波动干扰对温度、液位的变化缓慢的被测参数有良好的滤波效果C、缺点:对流量、速度等快速变化的参数不宜3、算术平均滤波法A、方法:连续取N个采样值进行算术平均运算N值较大时:信号平滑度较高,但灵敏度较低N值较小时:信号平滑度较低,但灵敏度较高N值的选取:一般流量,N=12;压力:N=4B、优点:适用于对一般具有随机干扰的信号进行滤波这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动C、缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用比较浪费RAM4、递推平均滤波法(又称滑动平均滤波法)A、方法:把连续取N个采样值看成一个队列队列的长度固定为N每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则) 把队列中的N个数据进行算术平均运算,就可获得新的滤波结果N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4B、优点:对周期性干扰有良好的抑制作用,平滑度高适用于高频振荡的系统C、缺点:灵敏度低对偶然出现的脉冲性干扰的抑制作用较差不易消除由于脉冲干扰所引起的采样值偏差不适用于脉冲干扰比较严重的场合比较浪费RAM5、中位值平均滤波法(又称防脉冲干扰平均滤波法)A、方法:相当于“中位值滤波法”+“算术平均滤波法”连续采样N个数据,去掉一个最大值和一个最小值然后计算N-2个数据的算术平均值N值的选取:3~14B、优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点:测量速度较慢,和算术平均滤波法一样比较浪费RAM6、限幅平均滤波法A、方法:相当于“限幅滤波法”+“递推平均滤波法”每次采样到的新数据先进行限幅处理,再送入队列进行递推平均滤波处理B、优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点:比较浪费RAM7、一阶滞后滤波法A、方法:取a=0~1本次滤波结果=(1-a)*本次采样值+a*上次滤波结果B、优点:对周期性干扰具有良好的抑制作用适用于波动频率较高的场合C、缺点:相位滞后,灵敏度低滞后程度取决于a值大小不能消除滤波频率高于采样频率的1/2的干扰信号8、加权递推平均滤波法A、方法:是对递推平均滤波法的改进,即不同时刻的数据加以不同的权通常是,越接近现时刻的数据,权取得越大。
遥感中均值平滑和中值滤波的计算方法

遥感中均值平滑和中值滤波的计算方法遥感中的均值平滑和中值滤波是常用于图像处理的两种滤波技术,它们可用于消除图像中的噪声和提高图像质量。
在以下内容中,我将详细介绍这两种滤波方法的计算步骤和原理。
1.均值平滑:均值平滑是通过计算像素点周围邻域像素的平均灰度值来平滑图像。
以下是均值平滑的计算步骤:步骤1:选择滑动窗口的大小(一般为奇数),例如3x3、5x5等。
步骤2:将滑动窗口置于图像的每个像素点处。
步骤3:计算滑动窗口内所有像素的平均灰度值。
步骤4:将计算得到的平均灰度值赋给窗口中心的像素。
步骤5:重复步骤2到步骤4,直到窗口遍历完整张图像。
均值平滑的计算方法相对简单,但输出图像在平滑程度上会丧失较多的细节。
2.中值滤波:中值滤波是通过计算像素点周围邻域像素的中值来平滑图像。
以下是中值滤波的计算步骤:步骤1:选择滑动窗口的大小(一般为奇数),例如3x3、5x5等。
步骤2:将滑动窗口置于图像的每个像素点处。
步骤3:将窗口内所有像素的灰度值提取出来,进行排序。
步骤4:将排序后得到的中值赋给窗口中心的像素。
步骤5:重复步骤2到步骤4,直到窗口遍历完整张图像。
中值滤波的计算方法相对复杂一些,但输出图像在平滑程度上保留了较多的细节,且能够更好地去除椒盐噪声等孤立点噪声。
这两种滤波方法均可通过编程语言实现,以下是Python示例代码:1. 均值平滑的Python代码示例:```pythonimport cv2import numpy as npdef mean_filter(image, kernel_size):padded_image = cv2.copyMakeBorder(image, kernel_size//2, kernel_size//2, kernel_size//2, kernel_size//2,cv2.BORDER_CONSTANT)filtered_image = np.zeros_like(image)for i in range(image.shape[0]):for j in range(image.shape[1]):filtered_image[i, j] = np.mean(padded_image[i:i+kernel_size, j:j+kernel_size])return filtered_imageimage = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)filtered = mean_filter(image, 3)cv2.imshow('Mean Filtered Image', filtered)cv2.waitKey(0)```2. 中值滤波的Python代码示例:```pythonimport cv2import numpy as npdef median_filter(image, kernel_size):padded_image = cv2.copyMakeBorder(image, kernel_size//2, kernel_size//2, kernel_size//2, kernel_size//2,cv2.BORDER_CONSTANT)filtered_image = np.zeros_like(image)for i in range(image.shape[0]):for j in range(image.shape[1]):filtered_image[i, j] =np.median(padded_image[i:i+kernel_size, j:j+kernel_size]) return filtered_imageimage = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)filtered = median_filter(image, 3)cv2.imshow('Median Filtered Image', filtered)cv2.waitKey(0)```在实际应用中,可以根据具体情况选择合适的滤波方法。
(完整版)经典滤波算法及C语言程序

经典的滤波算法(转)1、限幅滤波法(又称程序判断滤波法)A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因偶然因素引起的脉冲干扰C、缺点无法抑制那种周期性的干扰平滑度差2、中位值滤波法A、方法:连续采样N次(N取奇数)把N次采样值按大小排列取中间值为本次有效值B、优点:能有效克服因偶然因素引起的波动干扰对温度、液位的变化缓慢的被测参数有良好的滤波效果C、缺点:对流量、速度等快速变化的参数不宜3、算术平均滤波法A、方法:连续取N个采样值进行算术平均运算N值较大时:信号平滑度较高,但灵敏度较低N值较小时:信号平滑度较低,但灵敏度较高N值的选取:一般流量,N=12;压力:N=4B、优点:适用于对一般具有随机干扰的信号进行滤波这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动C、缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用比较浪费RAM递推平均滤波法对偶然出现的脉冲性干扰的抑制作用较差4、递推平均滤波法(又称滑动平均滤波法)A、方法:把连续取N个采样值看成一个队列队列的长度固定为N每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)把队列中的N个数据进行算术平均运算,就可获得新的滤波结果N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4B、优点:对周期性干扰有良好的抑制作用,平滑度高适用于高频振荡的系统C、缺点:灵敏度低对偶然出现的脉冲性干扰的抑制作用较差不易消除由于脉冲干扰所引起的采样值偏差不适用于脉冲干扰比较严重的场合比较浪费RAM5、中位值平均滤波法(又称防脉冲干扰平均滤波法)A、方法:相当于“中位值滤波法”+“算术平均滤波法”连续采样N个数据,去掉一个最大值和一个最小值然后计算N-2个数据的算术平均值N值的选取:3~14B、优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点:测量速度较慢,和算术平均滤波法一样比较浪费RAM6、限幅平均滤波法A、方法:相当于“限幅滤波法”+“递推平均滤波法”每次采样到的新数据先进行限幅处理,再送入队列进行递推平均滤波处理B、优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点:比较浪费RAM7、一阶滞后滤波法A、方法:取a=0~1本次滤波结果=(1-a)*本次采样值+a*上次滤波结果B、优点:对周期性干扰具有良好的抑制作用适用于波动频率较高的场合C、缺点:相位滞后,灵敏度低滞后程度取决于a值大小不能消除滤波频率高于采样频率的1/2的干扰信号8、加权递推平均滤波法A、方法:是对递推平均滤波法的改进,即不同时刻的数据加以不同的权通常是,越接近现时刻的数据,权取得越大。
滤波算法程序(详述十种滤波方法,附源代码)

1、限幅滤波法/****************************************************函数名称:AmplitudeLimiterFilter()-限幅滤波法*优点:能有效克服因偶然因素引起的脉冲干扰*缺点:无法抑制那种周期性的干扰,且平滑度差*说明:1、调用函数GetAD(),该函数用来取得当前值2、变量说明Value:最近一次有效采样的值,该变量为全局变量NewValue:当前采样的值ReturnValue:返回值3、常量说明A:两次采样的最大误差值,该值需要使用者根据实际情况设置*入口:Value,上一次有效的采样值,在主程序里赋值*出口:ReturnValue,返回值,本次滤波结果****************************************************/#define A 10unsigned char Valueunsigned char AmplitudeLimiterFilter(){unsigned char NewValue;unsigned char ReturnValue;NewValue=GatAD();if(((NewValue-Value)>A))||((Value-NewValue)>A)))ReturnValue=Value;else ReturnValue=NewValue;return(ReturnValue);}2、中位值滤波法/*****************************************************函数名称:MiddlevalueFilter()-中位值滤波法*优点:能有效克服因偶然因素引起的波动干扰;对温度、液位等变化缓慢的被测参数有良好的滤波效果*缺点:对流量,速度等快速变化的参数不宜*说明:1、调用函数GetAD(),该函数用来取得当前值Delay(),基本延时函数2、变量说明ArrDataBuffer[N]:用来存放一次性采集的N组数据Temp:完成冒泡法试用的临时寄存器i,j,k:循环试用的参数值3、常量说明N:数组长度*入口:*出口:value_buf[(N-1)/2],返回值,本次滤波结果*****************************************************/#define N 11unsigned char MiddlevalueFilter(){unsigned char value_buf[N];unsigned char i,j,k,temp;for(i=0;i<N;i++){value_buf[i] = get_ad();delay();}for (j=0;j<N-1;j++){for (k=0;k<N-j;k++){if(value_buf[k]>value_buf[k+1]){temp = value_buf[k];value_buf[k] = value_buf[k+1];value_buf[k+1] = temp;}}}return value_buf[(N-1)/2];}3、算术平均滤波法/*********************************************************说明:连续取N个采样值进行算术平均运算优点:试用于对一般具有随机干扰的信号进行滤波。
西门子PLC的滤波方法理解_deadband

•
•
延长程序的执行周期是观察问题的关键
结论:采样是每个周期进行一次 死区:当大于死区值的变化量发 生的时候取消原有的平滑滤波 (取平均数)
变化160数的时 候非常快速得到 更新
变化16数的时候更新很慢
死区很小的时候 即使很小的变化 也很快速
采样数很小的时 候即使很小的变 化也很• 关于模拟量的滤波,其中有“采样数”和“死区”,一直以来由于无法测试,没有 彻 底了解其具体含义,这几天一直在编制模拟量滤波的程序,结果测试了这 两个参数。 本来有两个疑问,关于采样数的时基问题,是固定的时间内的采样数,还是 每个执行周期一个采样,弄清楚这个很关键;还有就是死区的问题,是大于 死区的值的时候取消平均还是小于这个数的时候取消平均? 下面是一个测试的结果
中值和均值滤波算法

中值和均值滤波算法中值滤波和均值滤波是两种常用的图像滤波算法,它们可以有效地去除图像中的噪声。
本文将分别介绍中值滤波和均值滤波的原理、算法以及它们的应用。
中值滤波是一种非线性滤波算法,其核心思想是将每个像素点的灰度值替换为其周围像素点灰度值的中值。
这样做的好处是可以有效地去除椒盐噪声等孤立的噪声点,而不会使图像变模糊。
中值滤波的算法如下:1.选择一个适当的窗口大小,窗口的大小通常为奇数,以确保有一个中心像素。
2.将窗口中的像素按照灰度值大小进行排序,找到中间位置的像素值。
3.将该中间像素值替换为原始像素值。
中值滤波算法的优点是简单高效,在去除椒盐噪声等孤立噪声点的同时,能够保持图像的边缘和细节。
均值滤波是一种线性滤波算法,其核心思想是用周围像素点的平均值替代当前像素点的值。
均值滤波的算法如下:1.选择一个适当的窗口大小。
2.将窗口中的像素值求平均,得到一个新的像素值。
3.将该新像素值替换为原始像素值。
均值滤波算法的优点是简单易实现,计算速度快。
它可以有效地去除高斯噪声等随机噪声,但在去除椒盐噪声等孤立噪声点的效果稍差。
中值滤波和均值滤波广泛应用于图像降噪、图像增强等领域。
它们各自有适用的场景。
中值滤波适用于去除孤立噪声点较多的图像,而均值滤波适用于去除随机噪声较多的图像。
此外,中值滤波适用于去除椒盐噪声等孤立噪声点,而均值滤波可能会模糊图像细节。
在实际应用中,根据图像的特点和滤波效果要求,可以结合使用中值滤波和均值滤波,以达到更好的降噪效果。
首先使用中值滤波去除孤立噪声点,然后再使用均值滤波去除随机噪声,这样可以在保留图像细节的同时降低噪声干扰。
综上所述,中值滤波和均值滤波是两种常用的图像滤波算法,它们有各自的原理和优点。
根据实际需求,选择适当的滤波算法可以有效地去除图像中的噪声,提高图像质量。
十种数据采集滤波的方法和编程实例.doc

十种数据采集滤波的方法和编程实例..理论上讲单片机从A/D芯片上采集的信号就是需要的量化信号,但是由于存在电路的相互干扰、电源噪声干扰和电磁干扰,在A/D芯片的模拟输入信号上会叠加周期或者非周期的干扰信号,并会被附加到量化值中,给信号带来一定的恶化。
考虑到数据采集的实时性和安全性,有时需要对采集的数据进行软处理,一尽量减小干扰信号的影响,这一过程称为数据采集滤波。
以下介绍十种数据采集滤波的方法和编程实例。
这10种方法针对不同的噪声和采样信号具有不同的性能,为不同场合的应用提供了较广的选择空间。
选择这些方法时,必须了解电路种存在的主要噪声类型,主要包括一下方面:* 噪声是突发随机噪声还是周期性噪声* 噪声频率的高低* 采样信号的类型是块变信号还是慢变信号* 另外还要考虑系统可供使用的资源等通过对噪声和采样性能分析,选用最合适的方法以及确定合理的参数,才能达到良好的效果。
目前用于数据采集滤波的主要方法有以下10种,这10种方法都是在时域上进行处理的,相对于从频域角度设计的IIR或者FIR滤波器,其实现简单,运算量小,而性能可以满足绝大部分的场合的应用要求1、限幅滤波法(又称程序判断滤波法)A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因偶然因素引起的脉冲干扰C、缺点无法抑制那种周期性的干扰平滑度差1、限副滤波/* A值可根据实际情况调整value为有效值,new_value为当前采样值滤波程序返回有效的实际值*/#define A 10char value;char filter(){ char new_value; new_value = get_ad(); if ( ( new_value -考虑到数据采集的实时性和安全性,有时需要对采集的数据进行软处理,一尽量减小干扰信号的影响,这一过程称为数据采集滤波。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
plc中值滤波算法编程案例
PLC(可编程逻辑控制器)是一种常用于工业自动化控制系统中的计算机控制设备。
在PLC中,值滤波算法是一种常见的数据处理方法,用于平滑输入信号或去除噪声。
本文将列举十个以PLC中值滤波算法编程为题的案例,详细介绍每个案例的实现过程和效果。
1. 温度传感器滤波
在工业自动化系统中,温度传感器的信号常常受到环境噪声的影响,导致读数波动较大。
使用PLC中的值滤波算法可以平滑温度信号,使其更稳定。
具体实现方法是将连续多次的温度读数取平均值作为滤波后的结果。
2. 压力传感器滤波
压力传感器的输出信号也容易受到噪声的干扰,导致波动较大。
采用PLC中的值滤波算法可以减小波动,提高测量的准确性。
实现方法与温度传感器滤波类似,将连续多次的压力读数取平均值作为滤波结果。
3. 光电传感器滤波
光电传感器常用于检测物体的存在与否,但信号可能受到环境光的干扰。
使用PLC中的值滤波算法可以去除环境光的影响,提高检测的可靠性。
实现方法是设置一个阈值,只有当连续多次的传感器信号都超过阈值时,才认为物体存在。
4. 模拟输入信号滤波
在工业控制系统中,常常需要对模拟输入信号进行滤波处理,以减小噪声干扰。
PLC中的值滤波算法可以用于滤波各种类型的模拟输入信号,如电压、电流等。
实现方法是将连续多次的模拟输入信号取平均值,作为滤波后的结果。
5. 数字输入信号滤波
数字输入信号常常受到干扰信号的干扰,导致读数不稳定。
使用PLC中的值滤波算法可以去除干扰信号,提高信号的可靠性。
具体实现方法是设置一个阈值,只有当连续多次的输入信号都超过阈值时,才认为输入信号有效。
6. 流量计滤波
流量计的输出信号常常受到流体波动和噪声的影响,导致读数不准确。
采用PLC中的值滤波算法可以平滑流量信号,提高测量的精度。
实现方法与温度传感器滤波类似,将连续多次的流量读数取平均值作为滤波结果。
7. 位置传感器滤波
位置传感器常用于测量物体的位置或运动状态,但受到振动和噪声的干扰,导致读数不稳定。
使用PLC中的值滤波算法可以减小振动和噪声的影响,提高位置测量的准确性。
实现方法是将连续多次的位置读数取平均值作为滤波结果。
8. 液位传感器滤波
液位传感器用于测量容器中液体的高度或体积,但常受到液体波动和噪声的干扰。
采用PLC中的值滤波算法可以平滑液位信号,提高测量的稳定性。
实现方法与温度传感器滤波类似,将连续多次的液位读数取平均值作为滤波结果。
9. 震动传感器滤波
震动传感器用于检测机械设备的振动情况,但常受到机械振动和噪声的干扰。
使用PLC中的值滤波算法可以减小振动和噪声的影响,提高振动检测的准确性。
实现方法是将连续多次的震动读数取平均值作为滤波结果。
10. 加速度传感器滤波
加速度传感器常用于测量物体的加速度,但常受到振动和噪声的影响。
采用PLC中的值滤波算法可以平滑加速度信号,提高测量的精度。
实现方法与温度传感器滤波类似,将连续多次的加速度读数取平均值作为滤波结果。
这些案例展示了在工业自动化控制系统中,使用PLC中的值滤波算法可以有效处理各种类型的传感器信号,提高测量的准确性和可靠性。
通过合理选择滤波算法和参数,可以根据实际需求对信号进行平滑处理,使系统运行更加稳定。