一种基于mcu的prpd/prps图谱数据处理方法及检测装置
技术领域
本发明涉及高压电气设备绝缘检测
技术领域
,具体为一种基于MCU的PRPD/PRPS图谱数据处理方法及检测装置。背景技术
高压电气设备发生局部放电故障时会产生高频、超声、暂态地电波、特高频等多种类型的信号,通过检测这些信号可有效的判断出局部放电发生与否。常用的局部放电检测设备主要有高频局部放电检测仪、超声波局部放电检测仪、暂态地电波局部放电检测仪和特高频局部放电检测仪。这些仪器基本结构具有相同的架构,主要包括局部放电传感器传感器模块、工频信号传感器模块、信号滤波和放大调理模块、信号采集模块、信号分析模块和结果呈现模块。当前主流的局部放电分析方法为将检测的信号进行处理,绘制于工频周期相关的PRPD(相位分辩的局部放电)/PRPS(相位分辩的脉冲序列)图谱,通过图谱的特征进行局部放电诊断的依据。绘制局部放电PRPD/PRPS图谱需要以下两类关键参数,其一为局部放电脉冲信号的幅值,其二为脉冲信号发生时刻与工频信号之间的相位关系。局部放电检测仪中的信号分析模块完成的功能即从检测得到的局部放电信号和工频信号中提取这两类关键参数。因为局部放电发生频次高、信号频段宽且频率较高,导致检测得到的原始信号数据量较大,同时局部放电发生与工频周期密切相关,为获得这两类参数往往需要大量的计算,传统的检测仪器为获得更为精准的局部放电PRPD/PRPS图谱,其信号分析模块通常在计算机中完成,这导致检测仪器通常比较笨重、现场操作相对复杂。这些检测仪器在传统的停电检测中发挥较好的作用,但是当进行变电站全站设备的带电巡检时,存在诸多的携带和操作不便,主要原因为数据分析模块占用硬件资源过多。
发明内容
为了解决现有技术中的不足,本发明提供一种基于MCU的PRPD/PRPS图谱数据处理方法及检测装置,处理方法的运算仅有加减算法,运算量小且运算难度低,处理过程在一片单片机上进行,与传统的检测仪器相比,检测装置更加轻便,便于携带和操作。
为实现上述目的,本发明提供如下技术方案:一种基于MCU的PRPD/PRPS图谱数据处理方法,MCU电性连接有AD模块和上位机,MCU包括RAM,其特征在于:处理方法包括以下步骤:
S1、采集局部放电信号和工频信号;
S2、将局部放电信号、工频信号转换为数字放电信号、数字工频信号,并将数字放电信号和数字工频信号存储于RAM中;
S3、提取数字工频信号,计算其0°位置;
S4、提取数字放电信号,获取数字放电信号中的脉冲信号的位置及幅值;
S5、依据数字工频信号0°位置调整脉冲信号的位置;
S6、将脉冲信号的幅值和调整后的脉冲信号的位置上传至上位机进行图谱显示。
作为上述一种基于MCU的PRPD/PRPS图谱数据处理方法的进一步优化:S2的具体步骤为:
S201、设定AD模块的采样率为f S/s,采样位数为D bit,在RAM中设置空数组MER_A[]和空数组MER_B[];
S202、AD模块将局部放电信号和工频信号转换为数字放电信号x[n]和数字工频信号g[n];
S203、将数字放电信号x[n]和数字工频信号g[n]存储在空数组MER_A[]中,空数组MER_A[]存储满后将数字放电信号x[n]、数字工频信号g[n]存储在空数组MER_B[]中,空数组MER_A[]和空数组MER_B[]任意一个存储满后,执行S3。
作为上述一种基于MCU的PRPD/PRPS图谱数据处理方法的进一步优化:S3的具体步骤为:
S301、读取数字工频信号g[n],设置信号时间为40ms;
S302、将数字工频信号g[n]均分为信号ga[n]和信号gb[n],将信号ga[n]分为信号段ga_1[n]、信号段ga_2[n]、信号段ga_3[n]、信号段ga_4[n],每个信号段的采样点数均为
S303、计算正交分量p和q:
S304、判断信号ga[n]中0°位置loca0的象限:
p和q均为正时,0°位置的象限为1;p为正、q为负时,0°位置的象限为2;p为负、q为正时,0°位置的象限为3;p和q均为负时,0°位置的象限为4。
S305、计算0°位置loca0:
象限为1时,信号ga[n]最小值所在位置减去个采样点即为0°位置loca0;象限为2时,信号ga[n]最小值所在位置减去个采样点即为0°位置loca0;象限为3时,信号ga[n]最小值所在位置加上个采样点即为0°位置loca0;象限为4,信号ga[n]最小值所在位置加上个采样点即为0°位置loca0。
S306、计算信号gb[n]中的0°位置locb0:
作为上述一种基于MCU的PRPD/PRPS图谱数据处理方法的进一步优化:S4的具体步骤为:
S401、读取数字放电信号x[n],设置信号阈值xThr和信号时间,信号时间为40ms,在RAM内建立数组amp[]和数组loc_pha[];
S402、设定矩形数据窗的宽度为L,L为偶数,设定数字放电信号x[n]的起点为x[t],从x[t]起始连续读取L个采样点,L个采样点所在信号段记做xL[n],其中,t=0~(n-L);
S403、统计xL[n]的幅值最大值xL_max及其位置loc:
若xL_max≤xThr,则将t自加1,执行S402,t为重复执行的次数;若xL_max>xThr,且xL_max大于loc前L/2个采样点和后L/2个采样点的幅值,则xL[n]为一个脉冲信号,记录脉冲信号的幅值xL_max和位置loc;
S404、搜索数组loc_pha[],若已经存入位置loc则将S403中获得的幅值xL_max和位置loc舍弃,否则幅值xL_max存入数组amp[],位置loc存入数组loc_pha[],i表示获得的脉冲序数索引;S405、将t自加1,执行S402,直至t=n-L,数组amp[]和数组loc_pha[]中分别存储了x[n]内包含的脉冲信号的幅值及其位置,设定脉冲信号的个数为I。
作为上述一种基于MCU的PRPD/PRPS图谱数据处理方法的进一步优化:S5的具体步骤为:
S501、建立数组A_seg[]、数组B_seg[]、数组C_seg[]和数组C_seg_plus[];
S502、提取数组loc_pha[]中存储的脉冲信号的位置loc_pha[i],i=0~(I-1);
S503、将loc_pha[i]与loca0和locb0进行对比:
若loc_pha[i]小于loca0,则计算与(loca0-loc_pha[i])的差值,并将该差值赋值给loc_pha[i],将amp[i]和赋值后的loc_pha[i]顺序存入数组A_seg[];若loc_pha[i]大于loca0且小于locb0,则计算loc_pha[i]与loca0差值,将该差值赋值给loc_pha[i],将amp[i]和赋值后的loc_pha[i]顺序存入数组B_seg[];若loc_pha[i]大于locb0,则计算loc_pha[i]与locb0的差值,将该差值赋值给loc_pha[i],将amp[i]和赋值后的loc_pha[i]顺序存入数组C_seg[];
S504、将数组A_seg[]与数组C_seg_plus[]内的数值合并后存入数组A_seg[]中,同时清空数组C_seg_plus[];
S505、将数组C_seg[]存入数组C_seg_plus[]中。
作为上述一种基于MCU的PRPD/PRPS图谱数据处理方法的进一步优化:S6的具体方法为:将数组A_seg[]和B_seg[]中存储的脉冲信号的位置和幅值上传至上位机,上传完毕后清空数组A_seg[]和B_seg[],并返回S2重复执行。
一种基于MCU的PRPD/PRPS图谱数据检测装置,用于上述所述的一种基于MCU的PRPD/PRPS图谱数据处理方法,装置包括MCU,MCU包括RAM和串行口,RAM通过数据总线连接有AD模块,MCU通过串行口连接有上位机。
有益效果是:本发明提出的一种基于MCU的PRPD/PRPS图谱数据处理方法及检测装置,处理方法的运算仅有加减算法,运算量小,可以在资源有限的MCU上实现,检测装置相较于传统局部放电检测设备,更加轻便,便于携带和操作;MCU对数字工频信号和数字放电信号进行处理,并将得到的脉冲信号的幅值和相位上传给上位机,上位机无需进行大量的数据运算,因此上位机可采用运算性能较低PDA或者智能手机等终端,进一步降低检测装置的复杂程度。
附图说明
图1是本发明的数据处理方法流程图;
图2是本发明的检测装置的结构框图;
图3是采样点与幅值的坐标图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1至图3,一种基于MCU的PRPD/PRPS图谱数据处理方法,MCU电性连接有AD模块和上位机,MCU包括RAM,其特征在于:处理方法包括以下步骤:
S1、采集局部放电信号和工频信号。
S1中,采集局部放电信号和工频信号可以是局部放电设备传感器,也可以是特高频天线、超声波传感器等,对采集到的局部放电信号和工频信号进行调理,调理后的局部放电信号为包络检波降频后的信号,调理后的工频信号为经带通滤波后的工频信号,AD模块接收调理后的局部放电信号和工频信号,执行S2。
为满足处理方法的需求,AD模块采样率达到100kS/s及以上,采样位数达到12bit及以上,MCU工作频率达到80MHz及以上,且MCU应带有DMA(存储器直接访问)功能。
S2、将局部放电信号、工频信号转换为数字放电信号、数字工频信号,并将数字放电信号和数字工频信号存储于RAM(内存)中。
S2的具体步骤为:
S201、设定AD模块的采样率为f S/s,采样位数为D bit,在RAM中设置空数组MER_A[]和空数组MER_B[]。
S202、AD模块将局部放电信号和工频信号转换为数字放电信号x[n]和数字工频信号g[n]。
S203、将数字放电信号x[n]和数字工频信号g[n]存储在空数组MER_A[]中,空数组MER_A[]存储满后将数字放电信号x[n]、数字工频信号g[n]存储在空数组MER_B[]中,空数组MER_A[]和空数组MER_B[]任意一个存储满后,执行S3。
S2中,空数组MER_A[]和空数组MER_B[]的大小均为字节(为向上取整运算符号)。AD模块将局部放电信号和工频信号转换为数字放电信号x[n]和数字工频信号g[n]后,通过MCU的DMA功能依次向空数组MER_A[]和空数组MER_B[]内存储,存储方法如S203。
S3、提取数字工频信号,计算其0°位置。
S3的具体步骤为:
S301、读取数字工频信号g[n],设置信号时间为40ms。
S302、将数字工频信号g[n]均分为信号ga[n]和信号gb[n],将信号ga[n]分为信号段ga_1[n]、信号段ga_2[n]、信号段ga_3[n]、信号段ga_4[n],每个信号段的采样点数均为
S303、计算正交分量p和q:
S304、判断信号ga[n]中0°位置loca0的象限:
p和q均为正时,0°位置的象限为1;p为正、q为负时,0°位置的象限为2;p为负、q为正时,0°位置的象限为3;p和q均为负时,0°位置的象限为4。
S305、计算0°位置loca0:
象限为1时,信号ga[n]最小值所在位置减去个采样点即为0°位置loca0;象限为2时,信号ga[n]最小值所在位置减去个采样点即为0°位置loca0;象限为3时,信号ga[n]最小值所在位置加上个采样点即为0°位置loca0;象限为4,信号ga[n]最小值所在位置加上个采样点即为0°位置loca0。
S306、计算信号gb[n]中的0°位置locb0:
S3中对数字工频信号g[n]进行处理:
空数组MER_A[]和空数组MER_B[]任意一个存储满后,从存储满的空数组中读取数字工频信号g[n],信号时间设置为40ms,基于数字正交算法对数字工频信号g[n]的0°位置进行估算。将数字工频信号g[n]均分为两段,分别是信号ga[n]和信号gb[n],信号ga[n]和信号gb[n]均包含20ms的信号。数字工频信号g[n]的0°位置计算分为两部分:
对于信号ga[n]的0°位置,信号ga[n]均分为四段,将四个信号段记为信号段ga_1[n]、信号段ga_2[n]、信号段ga_3[n]、信号段ga_4[n],根据四个信号段计算信号ga[n]的正交分量p和q,如S303,计算之后对0°位置进行象限判断,判断方法如表1,根据象限判断计算0°位置,如S305。
对于信号gb[n]的0°位置,信号gb[n]不用进行处理,可直接计算得到0°位置,如S306。
表1:数字工频信号0°位置象限判断表
p
+
+
-
-
q
+
-
+
-
象限
1
4
2
3
S4、提取数字放电信号,获取数字放电信号中的脉冲信号的位置及幅值。
S4的具体步骤为:
S401、读取数字放电信号x[n],设置信号阈值xThr和信号时间,信号时间为40ms,在RAM内建立数组amp[]和数组loc_pha[]。
S402、设定矩形数据窗的宽度为L,L为偶数,设定数字放电信号x[n]的起点为x[t],从x[t]起始连续读取L个采样点,L个采样点所在信号段记做xL[n],其中,t=0~(n-L)。
S403、统计xL[n]的幅值最大值xL_max及其位置loc:
若xL_max≤xThr,则将t自加1,执行S402,t为重复执行的次数;若xL_max>xThr,且xL_max大于loc前L/2个采样点和后L/2个采样点的幅值,则xL[n]为一个脉冲信号,记录脉冲信号的幅值xL_max和位置loc。
S404、搜索数组loc_pha[],若已经存入位置loc则将S403中获得的幅值xL_max和位置loc舍弃,否则幅值xL_max存入数组amp[],位置loc存入数组loc_pha[],i表示获得的脉冲序数索引。
S405、将t自加1,执行S402,直至t=n-L,数组amp[]和数组loc_pha[]中分别存储了x[t]内包含的脉冲信号的幅值及其位置,设定脉冲信号的个数为I。
S4中对数字放电信号x[n]进行处理:
从存储满的空数组中读取数字放电信号x[n],设置信号阈值xThr和信号时间,信号时间同样为40ms,同时在RAM中建立数组amp[]和数组loc_pha[]。设定一个矩形数据窗,数据窗的宽度为L,数字放电信号x[n]中某一点记为x[t],以x[t]为起点,用数据窗对数字放电信号x[n]进行框选,框选住的信号段记为xL[n],统计xL[n]中的幅值最大值xL_max及其位置loc,若xL_max既大于信号阈值xThr,又大于loc前L/2个采样点和后L/2个采样点的幅值,则xL[n]为一个脉冲信号。搜索数组loc_pha[],若未存入位置loc,则幅值xL_max存入数组amp[],位置loc存入数组loc_pha[]。根据该处理过程,从x[t]开始,依次用数据窗对数字放电信号x[n]进行框选,每次移动一个采样点,直至t=n-L。
S5、依据数字工频信号0°位置调整脉冲信号的位置。
S5的具体步骤为:
S501、建立数组A_seg[]、数组B_seg[]、数组C_seg[]和数组C_seg_plus[];
S502、提取数组loc_pha[]中存储的脉冲信号的位置loc_pha[i],i=0~(I-1)。
S503、将loc_pha[i]与loca0和locb0进行对比:
若loc_pha[i]小于loca0,则计算与(loca0-loc_pha[i])的差值,并将该差值赋值给loc_pha[i],将amp[i]和赋值后的loc_pha[i]顺序存入数组A_seg[];若loc_pha[i]大于loca0且小于locb0,则计算loc_pha[i]与loca0差值,将该差值赋值给loc_pha[i],将amp[i]和赋值后的loc_pha[i]顺序存入数组B_seg[];若loc_pha[i]大于locb0,则计算loc_pha[i]与locb0的差值,将该差值赋值给loc_pha[i],将amp[i]和赋值后的loc_pha[i]顺序存入数组C_seg[];
S504、将数组A_seg[]与数组C_seg_plus[]内的数值合并后存入数组A_seg[]中,同时清空数组C_seg_plus[];
S504、将数组A_seg[]与数组C_seg_plus[]内的数值合并后存入数组A_seg[]中,同时清空数组C_seg_plus[];
S505、将数组C_seg[]存入数组C_seg_plus[]中。
S5中,依据S3中得到的数字工频信号g[n]的0°位置loca0和locb0对S4中得到的脉冲信号的位置loc_pha[i]进行调整:
建立四个数组,分别是数组A_seg[]、数组B_seg[]、数组C_seg[]和数组C_seg_plus[],四个数组用于对脉冲信号进行整周期分段。提取S4中得到的loc_pha[i],用loc_pha[i]与loca0和locb0进行对比:
若loc_pha[i]小于loca0,则计算与(loca0-loc_pha[i])的差值,并将该差值赋值给loc_pha[i],将amp[i]和赋值后的loc_pha[i]顺序存入数组A_seg[];若loc_pha[i]大于loca0且小于locb0,则计算loc_pha[i]与loca0差值,将该差值赋值给loc_pha[i],将amp[i]和赋值后的loc_pha[i]顺序存入数组B_seg[];若loc_pha[i]大于locb0,则计算loc_pha[i]与locb0的差值,将该差值赋值给loc_pha[i],将amp[i]和赋值后的loc_pha[i]顺序存入数组C_seg[]。
对比、赋值的步骤完成后,将C_seg_plus[]内的数值合并至A_seg[]并清空C_seg_plus[],C_seg[]内的数值存入C_seg_plus[]。
S6、将脉冲信号的幅值和调整后的脉冲信号的位置上传至上位机进行图谱显示。
S6的具体方法为:将数组A_seg[]和B_seg[]中存储的脉冲信号的位置和幅值上传至上位机,上传完毕后清空数组A_seg[]和B_seg[],并返回S2重复执行。
由于处理过程均在MCU上进行,且运算只有加减法,上位机无需进行运算,因此对上位机可采用运算性能较低PDA(掌上电脑)或者智能手机等终端,降低所需装置的复杂程度。
一种基于MCU的PRPD/PRPS图谱数据检测装置,用于上述所述一种基于MCU的PRPD/PRPS图谱数据处理方法,其特征在于:装置包括MCU,MCU包括RAM和串行口,RAM通过数据总线连接有AD模块,MCU通过串行口连接有上位机。
工作原理:AD模块采用型号为AD7606的AD模数转换器,采样率为100kS/s,MCU采用型号为STM32F407ZGT6的单片机,MCU带有DMA功能。AD模块接收调理后的局部放电信号和调理后的工频信号,并将局部放电信号和工频信号转换为数字放电信号和数字工频信号,MCU利用DAM功能读取AD模块中的数字放电信号和数字工频信号,并对数字放电信号和数字工频信号进行处理,处理后得到的脉冲信号的幅值和位置经由串行口传递给上位机,由上位机根据脉冲信号的幅值和位置显示图谱。
以下结合具体实施例对本发明进行详细说明。
为满足处理方法的需要,AD模块采用型号为AD7606的AD模数转换器,MCU采用型号为STM32F407ZGT6的单片机。
图3为某次局部放电检测的存储于数组MER_A[]中的数据,采样率为100kS/s,数组MER_A[]中共存储了4000个采样点的工频信号和4000个采样点的局部放电信号。
根据S3对数字工频信号进行处理:
将信号ga[n]分为信号段ga_1[n]、信号段ga_2[n]、信号段ga_3[n]、信号段ga_4[n],根据S303,计算得到的正交分量p为1633.15,正交分量q为-940.17,则信号ga[n]的0°位置在象限4,信号ga[n]的最小值位于第1334个采样点,信号ga[n]的0°位置loca0为:loca0=1348+500=1848,
根据S306,计算可得locb0=3848。
根据S4对数字放电信号进行处理:
设定矩形数据窗的宽度L=10,信号阈值xThr=0.015V,第一次提取x[n]的前10个采样点,其中,幅值最大值为0.009V,小于信号阈值xThr。直至第623次提取对数字放电信号进行提取,此时信号段xL[n]中的最大值xL_max第一次超过信号阈值xThr。对数字放电信号全部处理后,共得到4个脉冲信号,其幅值和位置的记录如表2所示。
表2:搜索得到的脉冲信号的幅值及位置
编号
1
2
3
4
loc_pha[]
632
2175
2942
3708
amp[]
0.407
0.425
0.819
0.587
根据S5对脉冲信号的位置进行调整:
由于loca0=1848、locb0=3848,可知第一个脉冲信号的位置和幅值应存储于数组A_seg[]中,第二个、第三个和第四个脉冲存储于数组B_seg[]中,数组C_seg[]为空数组。由于数组C_seg_plus[]中也为空。最终数组A_seg[]和B_seg[]中存储的数据如表3所示。
表3:A_seg[]和B_seg[]中存储的数据
A_seg[]
632
0.407
B_seg[]
2175
0.425
2942
0.819
3708
0.587
根据S6,MCU将数组A_seg[]和B_seg[]中存储的数据通过串行口上传至上位机,由上位机显示PRPD/PRPS图谱。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。