APP下载

改进的电压检测极值中值滤波算法设计

2023-03-21李志鹏王青燕

计算机时代 2023年3期
关键词:中值极值滤波

李志鹏,王青燕

(1.江西财经大学,江西 南昌 330013;2.江西经济管理干部学院)

0 引言

电压数据的检测及过滤目前有多种方法,主要有离散傅氏变换算法[1],快速离散傅氏变换算法[2],一点采样算法、两点采样算法,积分交流采样算法等。电压检测会有误差,设计算法的目的是尽可能地减少检测上的误差[3]。每种算法有各自的优缺点,如快速离散傅氏变换算法可获得比较全面的测量数据,但此算法计算结果较多,对一个周期中相同间隔采样点数有很大的要求,内存占用大[4],中间变量比较容易溢出,采用固定点运算实现困难;有学者针对数据过滤的问题,提出用中值滤波的方式,也有学者对中值滤波算法进行了改进函数过滤[5-7],目的是减小数据的方差[8],降低污染数据的比例[9],提高数据的可靠性。

极值中值滤波的规则:某点的电压值与附近点的电压值相差很大,这一点可归属为极值点,如果相差不大,则表现为正常电压值,若极值点表示为min{}或者max{},正常点数表示为sta{},则检测到的数据点an可以表示为:

此算法的好处在于可将变化速度快的数据分离出来,将正常数值的数据存放到设置好的预留区。但此算法存在不足之处,若外界的非线性设备使用的频率高,对电路产生的冲击电压可能波及较大区域。采集器收集数据时,一个周期内可测量多个数值点,数据是否有效无法判断。基于上述问题,对算法进行了改进。通过数据显示,改进的极值中值滤波算法,删除更多波动性大的数据,保留的数据方差波动性更小。

1 中值滤波算法的原理

滤波就是过滤不合理的波值,在电压应用中,非线性用电设备的瞬间上电、断电,对电压的冲击,都会造成电压谐波瞬间变化幅度大,若此刻电表正好采集到,电压采集的数据将造成巨大的误差,因此,滤波算法是很有必要的。在滤波算法中,现在已经有很多成熟的算法。按照数学原理,标准电压的函数是正弦或者正弦平移变换的曲线,但在实际中,电压波形曲线并不会严格符合标准。对数据的采样造成较大误差。

基于采样值的不稳定性,有人提出了中值滤波算法,中值滤波算法实际上应用数学原理,采样的点数据存放到系统中预留的存储区,以备调用,采集模块负责采集数据,但无法辨别数据的有效性,中值滤波的原理是对这些采集的数据进行分组,再对每个组内的数据进行由小到大或由大到小的排列,排列好之后取中间的部分。

已{X1,X2,X3,X4,X5,…,Xn}这组数据为例,它的中值M公式为:

其中,{a1,a2,a3,a4,a5,…,an}数列为{X1,X2,X3,X4,X5,…,Xn}数列由小到大排列的顺序列。采集器采集数据,加载到数列{X1,X2,X3,X4,X5,…,Xn}中,如采集到的电压值为{501,203,305,210,232},则对它们由小到大的排列顺序为{203,210,232,305,501},中值M=232,这一组数据的中值可作为这组数据的标准值,转存到中值数据区。

2 改进的算法设计

⑴改进的算法的分析

对于极值中值滤波算法,其不足之处在于不能更好地辨别一段区域内的误差数值,基于上述问题进行了改进。一般电网都是遵循六个基本标准值(KV),公用电网的电压标准值如表1所示。

表1 公用电网谐波电压表

公共网络的电压值都在上述图中,在预先设计好的数组中保存这些电压值:

{0.38,6,10,35,66,110}

通过A/D采样模块,将采集的数据,与之对应。这种算法的设计首先设置好UN(电压标准值),设置参数自动检测电网电压中符合对应的电压值,再由内部函数自动设置好相应的参数。可用线性规划法设置对应的电压值,以{0.38,6,10,35,66,110}为例,相邻两个电压值组成坐标,由最后一个和第一个电压值组成坐标,则对应坐标为:(0.38,6),(6,10),(10,35),(35,66),(66,110),(110,0.38),形成坐标后,连接相邻两点,形成线性规划范围圈,再取两次电压测定的数值,形成一个坐标,若坐标落在范围圈内,则保留数据。再重新取采样的两个电压值组成坐标,以此类推下去,直到采样到落在范围圈里的电压值,两次采取的电压值通过采用均方差方法,积分得到电压值,以便减少数据误差。采用的公式为:

其中,N的数值为采样次数,ui为每次测得具体数值。

本算法的关键是如何设置范围圈,应用的理论是线性规划法,两点之间可以确定一条直线,例如A点坐标为A(x0,y0),B点坐标为B(x1,y1),则确定的直线方程公式如下:

⑵改进的算法的设计

第一步:确定六条直线,分别为A{(0.38,6),(6,10)},B{(6,10),(10,35)},C{(10,35),(35,66)},D{(35,66),(66,110)},E{(66,110),(110,0.38)},F{(110,0.38),(0.38,6)}

化简后,再用线性规划的理论,列公式如下:

其中,x表示自变量,y表示因变量。

如此,围成一个范围圈,即便非线性用电器的长期使用,致使电压出现的采取数据不准也会排除在外,这些直线组成区域图形如图1所示。

图1 线性规划范围圈

采取的电压值可以用此办法将数据确定在范围内,如果是在范围外,可以再取两次数据,循环操作,直到取到的数据在范围圈内为止。

第二步:数据确定在范围圈内,另一个问题是数据具体是在六个电压值中的哪一个,检测到的数据值,可能在它们之间,而且任何检测都不可能完全匹配,数据存在误差范围,误差范围是电压值的百分之五左右,本算法,限定的百分比是百分之十,之所以限定在百分之十,是因为检测的数据可能比标准的数值差一部分。公式为:

其中,UF为设置的最大范围。若有个别数据不在范围圈内,回到第一步,重新计算。

第三步:在计算好标准的数据后,先将相应的公共电压值设置好,根据设置好的电压计算电压偏差,电压偏差计算公式为:

其中,UC为检测到具体数值,UN为公用电压谐波电压数值表中的电压值其中之一。

第四步:电压检测时,可能有非线性用电设备在长时间工作,使得无法测得内部数据,于是在第一步的基础上,电压偏差还需再扩大百分之五,计算公式为:

其中,ΔU1表示多值波动范围。

第五步:计算出电压范围差值之后,再计算相应的上限电压和下限电压,上限电压为:

其中,U上表示最大上限范围。

下限电压为:

其中,U下表示最小下限范围。

第六步:计算出上、下限最大范围,超出这个范围就为无用电压数据,在这个范围内才可以成为有用数据,如果有一段数据都超出这个范围,对此只能强制的变换成为标准数据,预留存储区存放的数据具体公式为:

第七步:设置好电压后,按照改进极值中值滤波算法的原理再次过滤数据,这样,最后保留下来的数据基本都是在标准范围之间的数据。这样不论数据在一段范围内是否受到污染,都可以用改进的算法存储数据。

3 数据结果对比

下面简述传统的算法与新式算法的数据对比,以标准电压是6KV 为例,采集到了100 数据点,传统的中值过滤算法删除的数据如表2所示。

表2 极值中值滤波电压数值表

删除不合格的灰色数据后,形成的新的数据并经分组后的到的新数据如表3所示。

表3 极值中值滤波电压数值排序表

表3中间加粗部分是极值中值算法得出的中值数据,灰色部分的三个数据是波动较大的数据。如果应用改进的极值中值滤波算法,这三个波动性较大的数据会被有效删除,首先就是组成坐标为:(6.02,6.13),(5.39,5.60),(6.32,5.41),(6.23,6.01),(6.00,5.41),…,但是像采集数据的最后一组数据(5.79,10.98),会被此算法排除。其他的这些坐标全部在范围圈内,可以确定此电压的标准值为6KV,接下来是对数据分析。

从表3、表4 可以看出,表4 多删除了三个波动性更大的数据,形成的新的数据并经分组后的到的数据如表5所示。

表4 改进的极值中值滤波电压数值表

表5 改进的极值中值滤波电压数值排序表

可以看到,改进的极值中值滤波算法比极值中值滤波算法过滤的更好一些,极值中值与改进的算法的数据对比如图2 所示。极值中值滤波算法方差波动大,改进的算法相对波动的就小。

图2 极值中值与改进的算法的数据对比

4 结论

利用中值原理,对当前的极值中路滤波算法进行改进,对收集好的数据进行滤波,将波动性大的数据删除,保留下波动性相对较小、满足算法理论条件的数据,提高了电压检测数据值的准确率和稳定性。

猜你喜欢

中值极值滤波
极值点带你去“漂移”
极值点偏移拦路,三法可取
一类“极值点偏移”问题的解法与反思
Lagrange中值定理的巧妙应用
微分中值定理教法研讨
后中值波电流脉冲MIG焊工艺
借助微分探求连续函数的极值点
RTS平滑滤波在事后姿态确定中的应用
基于线性正则变换的 LMS 自适应滤波
基于随机加权估计的Sage自适应滤波及其在导航中的应用