APP下载

电压频控中抗强干扰软件关联缺陷检测

2018-04-25

计算机测量与控制 2018年4期
关键词:数据流关联精度

, ,

(1.国网河北省电力公司,石家庄 050021; 2.南京南瑞集团公司,南京 210000)

0 引言

电压频率控制的实现常受线路阻抗的影响,难以达成有无功率的分配,且电压幅值与频率测量精度密切相关[1],因此设计大量电压频率控制软件对电压频率加以控制。随着电压频率控制软件大小呈指数增加,其关联缺陷问题逐渐引起人们的重视[2]。在软件开发中,对电压频控中抗强干扰软件的关联缺陷进行检测是一个不可忽略的环节,它关系到电压频控软件能否稳定运行[3]。当前的软件缺陷检测技术能够有效保障电压频控软件的强抗干扰性,但在检测过程中,因软件太大导致检测精度较低。因此,提出一种电压频控中抗强干扰软件关联缺陷检测技术,在保证强抗干扰性的同时,提高软件关联缺陷的监测精度。

1 软件关联缺陷检测原理

要研究一种电压频控中抗强干扰软件关联缺陷检测技术,需先对软件关联缺陷检测原理进行分析。给出电压频控中抗强干扰软件关联缺陷检测原理如图1所示。

图1 软件关联缺陷检测原理图

将电压频控中抗强干扰软件的二进制代码输入关联缺陷检测,根据电压频控中抗强干扰软件的二进制代码汇编成对应的程序[4]。在该程序的基础上分析电压频控中抗强干扰软件的控制流、数据流和函数调用关系。得到分析结果进行电压频控中抗强干扰软件关联缺陷模型的构建,产生电压频控中抗强干扰软件的缺陷结果,并得到软件的缺陷报告。

经过以上分析,利用软件关联缺陷检测原理能够完成电压频控中抗强干扰软件关联缺陷检测技术的研究,使改进的检测技术具有一定的合理性和可行性。

2 关联缺陷的分类

依据软件关联缺陷检测原理,对电压频控中抗强干扰软件关联缺陷检测技术进行设计。充分分析致使传统检测技术检测精度低的原因,得出,传统检测技术未考虑关联缺陷的类别问题,使庞大的软件无法得到准确检测,因此,改进的电压频控中抗强干扰软件关联缺陷检测技术,首先针对软件的关联缺陷进行分类,以提高检测精度。具体过程描述如下:

统计模式识别算法是用来选择电压频控中抗强干扰软件的原始数据并进行软件原始数据处理的样本集,电压频控中抗强干扰软件关联缺陷检测技术采用判别函数对待测的软件样本进行识别,根据软件关联缺陷类型的不同进行识别分类。统计模式识别方法分为训练样本和识别两个阶段[5],电压频控中抗强干扰软件关联缺陷检测技术的软件样本识别框图如图2所示。

图2 关联缺陷检测技术软件样本识别框图

电压频控中抗强干扰软件关联缺陷检测技术的训练软件样本阶段根据软件的关联缺陷特征完成关联缺陷的划分,使软件关联缺陷存在较好的区分线,并根据已知的关联缺陷类型制定判别规则,确保样本分析判别结果准确;分类阶段的主要目的是根据训练阶段的判别规则和缺陷特征进行比较,将软件关联缺陷归类模式,并进行关联缺陷的分类。

本文采用贝叶斯分类器对提取的软件关联缺陷进行分类[6],贝叶斯分类器建立在三点假设之上。

1)已知软件关联缺陷概率的分配;

2)确定软件关联缺陷的类别;

3)得到的软件关联缺陷存在特征值和特征向量。

设x代表的是软件关联缺陷特征值,w代表属于某缺陷的概率其中i=1,2,3。Lij表示误差,代表属于wi类的缺陷被分类器分类到wj。对关联缺陷特征值x进行判断时,贝叶斯分类器将x分类到三种关联缺陷中的一个,其出现误差的计算公式为:

(1)

rj(x)被称为条件平均风险,为了确定关联缺陷特征值x的种类,需要对关联缺陷特征值x分到每种关联缺陷的条件平均风险进行计算,计算公式为:

ri=min|r1(x),r2(x),r3(x)|

(2)

通过计算ri,确定软件关联缺陷的种类,提高电压频控中抗强干扰软件关联缺陷检测技术的检测精度。

根据以上步骤,能够实现电压频控中抗强干扰软件关联缺陷的准确分类,依据分类结果,将多种类别的关联缺陷分组进行检测,不仅加快了软件关联缺陷的检测速率,也是有效提高改进检测技术检测精度的关键所在。关联缺陷的分类过程为检测技术的实现奠定了良好的基础。

3 关联缺陷检测的实现

根据已经分类好的关联缺陷类型,采用反汇编的方式,对软件的数据流和各功能函数调用过程进行分析,改进软件的控制流,依据分析结果,并结合静态分析方法,建立关联缺陷检测模型,实现电压频控中抗强干扰软件关联缺陷的检测。具体实现过程描述如下:

1)反汇编:在电压频控中抗强干扰软件关联缺陷检测技术中反汇编的过程就是对汇编程序进行逆向汇编[5]。反汇编的主要功能是编辑在软件内执行的二进制代码的特征。为了标识和分解出软件数据代码和平台指令代码,需要对反汇编生成的二进制代码进行加工处理。最后将软件关联缺陷检测技术的指令代码反汇编成易于理解的文件。电压频控中抗强干扰软件关联缺陷检测技术的反汇编流程如图3所示。

图3 关联缺陷检测技术反汇编流程图

2)数据流分析:电压频控中抗强干扰软件关联缺陷检测技术中二进制代码的数据流分析方法与软件的类型无关,分析电压频控中抗强干扰软件的数据流,可以减少软件关联缺陷分析的复杂度。对软件局部进行分析,得到的结果准确性较高,将数据流划分为若干个局部数据流,根据各组件分析得到的结果及软件输出和输入的数据,得到完整的软件数据流图。进行电压频控中抗强干扰软件关联缺陷检测时,使用数据流分析法需要软件执行流信息和数据流信息。数据流分析法的原理是跟踪软件序列、返回值和参数[7],进行分析,判断软件是否存在关联缺陷。

3)函数调用:在对电压频控中抗强干扰软件关联缺陷进行检测的过程中,通过各功能函数完成检测技术的相关指令。各功能函数调用的具体过程为在关联缺陷检测过程中遇到需要跳转的地址,并进行保存。将关联缺陷检测过程的PC转入到对应的函数接口中,执行检测指令,最后跳转到保存之前的地址。在电压频控中抗强干扰软件关联缺陷检测过程中各功能函数的调用分为嵌套调用和一般调用,其中嵌套调用指的是一个功能函数中需要调用其他的功能函数。

本文采用反汇编技术进行各功能函数间调用,关联缺陷检测过程以反汇编为基础,而控制流中的跳转指令和分值指令秉持过程调用关系,从而保障电压频控软件的强抗干扰性能。

4)控制流改进:控制流改进是根据电压频控中抗强干扰软件关联缺陷检测程序的运行序列,在关联缺陷检测程序运行序列的基础上对软件的基本块进行划分,划分的内容根据过程间的控制流和过程内的控制流运行。过程间的控制流是对软件基本块之间的调用关系进行控制[8],过程内控制流是对软件基本块内指令关系进行控制。控制流改进的具体过程是将软件关联缺陷检测程序中可执行的软件文件进行反汇编得到汇编程序,程序控制流通过对软件基本块的划分得到控制流图,通过分析调用得到检测过程的调用图如图4所示。

图4 控制流控制过程调用图

5)静态分析关联缺陷检测模型:采用静态分析工具对电压频控中抗强干扰软件进行缺陷检测,检测模型如下:

(1)初始化及变量定义关联缺陷检测模型。检测电压频控中抗强干扰软件关联缺陷变量是否定义,判断该变量是否引用初始化或未定义的变量,检查是否存在未使用的赋值变量。建立软件相关变量的交叉引用实现。

(2)软件接口缺陷检测模型。检测平台程序在调用时实参和形参的数量和类别是否一致,平台输出和输入参数的定义是否匹配,软件的变量和外部变量是否相等。

(3)溢出缺陷检测模型。关联缺陷检测程序中的危险函数存在缺陷,对函数的边界进行检测。

(4)逻辑缺陷检测模型。进行关联缺陷检测程序的逻辑检查时,会出现不正确、不必要的结构代码。采用循环控制变量进行赋值,或存储软件其他模块的局部信息等。

在电压频控中抗强干扰软件关联缺陷检测技术中,静态缺陷检测可以准确地发现软件存在的关联缺陷,提高检测技术的检测精度。

综上所述,以软件关联缺陷检测原理为理论依据,采用贝叶斯分类器对软件中的关联缺陷进行分类,依据分类结果,充分分析软件的数据流及其函数调用过程,改进控制流,结合反汇编方式完善关联缺陷检测程序,从而实现电压频控中抗强干扰软件关联缺陷的检测。

4 实验结果与分析

本次实验在MATLAB环境下完成,操作平台的系统为32位的Windows7。为了验证电压频控中抗强干扰软件关联缺陷检测技术的有效性,对检测技术进行测试,图5(a)为实际的软件关联缺陷检测结果,图5(b)为基于Canny缺陷检测技术的软件关联缺陷检测结果,图5(c)为改进技术的软件关联缺陷检测结果。

图5 两种不同技术的软件关联缺陷检测对比结果

在图5中,曲线代表的是软件关联缺陷检测程序的运行踪迹,图中“禁止区域”表示的是缺陷模式所描述的安全属性,当一条检测程序的运动踪迹出现在“禁止区域”时,代表该软件存在一个关联缺陷,对比图5(a)、图5(b)与图5(c),发现基于Canny技术的关联缺陷检测技术的检测结果与实际检测结果相比出现了两处误报;改进技术的软件关联缺陷检测结果与实际结果一致,验证了改进技术对电压频控中抗强干扰软件的关联缺陷进行检测时,检测结果较为精准。

通过参数x对电压频控中抗强干扰软件关联缺陷检测技术进行有效性测试,x代表的是关联缺陷特征值,当关联缺陷特征值x越大时,关联缺陷越容易被检测出来,在相同的检测时间内,分别采用改进技术和基于层次模型的软件关联缺陷检测技术进行监测精度测试,测试结果如表1所示。

分析表1可知,改进技术的缺陷特征值x平均为55,软件关联缺陷检测的平均监测精度为92%,基于层次模型的软件关联缺陷检测技术中缺陷特征值x平均为30,软件关联缺陷检测的平均监测精度为72%。缺陷特征值x越大,缺陷越容易检测出来,检测精度越高,对比改进技术和基于层次模型的检测技术的实验结果可得,改进技术的软件关联缺陷检测精度更高,验证了改进技术的可行性。

表1 两种不同技术相同检测时间内检测精度对比结果

为了验证电压频控中抗强干扰软件关联缺陷检测技术在高精度检测的同时,能够保障其强抗干扰性,分别采用改进技术和基于机器视觉的关联缺陷检测技术进行抗干扰性能的测试,测试结果如图6所示。

图6 两种不同技术的信号强度情况对比结果

图6(a)为改进技术正常情况下的信号强度,图6(b)为加入干扰信号后改进技术的信号强度,对比图6(a)和图6(b)可知,改进技术的信号强度受到干扰信号的前后没有出现大规模的波动,信号强度保持平稳。图6(c)为基于机器视觉的关联缺陷检测技术正常情况下的信号强度,图6(d)为加入干扰信号后基于机器视觉的缺陷检测技术的信号强度,对比图6(c)和图6(d)可知,基于机器视觉的缺陷检测技术受到干扰信号前后的信号强度曲线出现了大规模的波动。对比两种技术的实验结果,可充分说明改进技术在检测过程中,依然保持其较强的抗干扰性能。

综合以上实验结果可得,改进的电压频控中抗强干扰软件关联缺陷检测技术,在保障其强抗干扰性能的前提下,具有较高的检测精度,验证了该技术的可行性和有效性。

5 结论

对电压频控中抗强干扰软件的关联缺陷进行检测,可以避免因软件关联缺陷造成的软件运行不稳定等潜在隐患,当前软件关联缺陷检测技术的检测结果存在检测精度低的问题,提出电压频控中抗强干扰软件关联缺陷检测技术。通过对关联缺陷进行准确分类,改进检测程序完成关联缺陷的精确检测。实验证明,该技术在保障强抗干扰性能的同时,具有较高的检测精度。未来将在检测速率方面进行深入研究,为软件缺陷检测领域的发展提供有效借鉴依据。

参考文献:

[1] 边伟成. 基于AOP的软件缺陷监测框架的设计与实现[J]. 电子设计工程, 2017(16):27-31.

[2] 杨庆华, 王 玲, 荀 一,等. 基于机器视觉的袋泡茶包缺陷检测方法[J]. 浙江工业大学学报, 2015, 43(2):163-167.

[3] 郭 静, 韩跃平, 李会鸽. 产品表面缺陷检测的变步长采样机制研究[J]. 科技通报, 2017, 33(2):129-132.

[4] 刘学福, 何小敏, 许 亮,等. 基于显著性模型和区域生长法的药卷缺陷检测[J]. 科学技术与工程, 2015, 15(4):125-130.

[5] 钱 海, 马小军, 包仁标,等. 基于三维激光扫描和BIM的构件缺陷检测技术[J]. 计算机测量与控制, 2016, 24(2):14-17.

[6] 何博侠, 张毅, 童楷杰,等. 航天密封圈的曲面成像理论及其缺陷检测[J]. 光学精密工程, 2015, 23(11):3051-3060.

[7] 杨祖彬, 代小红. 基于图像配准的食品包装印刷缺陷检测与实现[J]. 计算机科学, 2015, 42(8):319-322.

[8] 刘 亮, 蒋 鑫, 师普辛,等. 发电机出口电压互感器绝缘缺陷检测方法[J]. 电网技术, 2016, 40(12):3966-3972.

猜你喜欢

数据流关联精度
基于不同快速星历的GAMIT解算精度分析
热连轧机组粗轧机精度控制
不惧于新,不困于形——一道函数“关联”题的剖析与拓展
汽车维修数据流基础(上)
汽车维修数据流基础(下)
基于XML的数据流转换在民航离港系统中应用
“一带一路”递进,关联民生更紧
奇趣搭配
AADL端对端数据流一致性验证方法
智趣