一种基于多维卡尔曼滤波修正的故障主动预测方法技术

技术编号:20655197 阅读:18 留言:0更新日期:2019-03-23 06:52
本发明专利技术提供一种基于多维卡尔曼滤波修正的故障主动预测方法,步骤包括:获取度量的历史版本数据;进行相关性分析,筛选出至少三个度量;建立多种模型,估计历史版本数据变量中的缺失数据;对当前版本的故障数据进行估计分别建立卡尔曼滤波状态更新方程,计算卡尔曼增益以及估计误差;估计下一版本的故障数据,进行递归重复;基于最后一次卡尔曼滤波状态更新方程,预测未知版本的故障数据。通过上述步骤,能实现未知版本的软件故障数据的预测,并且能够计算出模型的估计误差,进而自适应的调整系统模型的相关参数,实时适应故障数据预测模型的变化情况,从而实现高精度的估计。

【技术实现步骤摘要】
一种基于多维卡尔曼滤波修正的故障主动预测方法
本专利技术提供了一种基于多维卡尔曼滤波修正的故障主动预测方法,属于软件预测
技术背景随着软件技术的不断发展,软件版本在不断的更新。版本的增多导致软件测试的任务量增大,在下一版本软件发行之前,技术人员热衷于依据可能对软件缺陷造成影响的度量元对缺陷数据进行预测,通常,技术人员通过建立数学模型作为估计和预测的关键技术,也即是,当缺陷数据呈现出很强的时间性与周期规律性时,采用相关分析,提取出相关的度量数据作为建模和估计方法的输入,进行缺陷预测。但是常规的预测方法能大致描述数据的走势,但因为数据的波动较大,导致预测的结果误差较大,偏离真实值,于是本专利技术考虑到采用卡尔曼滤波的线性递推滤波方法,对所建立的多个模型进行不断的修整,基于多维卡尔曼滤波修正进行软件的故障预测,以预测-实测-修正的顺序递推,根据系统的量测值消除随机干扰,进而实现有效的预测。
技术实现思路
(一)目的为了解决常规的预测方法能大致描述数据的走势,但因为数据的波动较大,导致预测的结果误差较大,偏离真实值,本专利技术提供了一种基于多维卡尔曼滤波修正的故障主动预测方法。(二)技术方案本专利技术提供了一种基于多维卡尔曼滤波修正的故障主动预测方法,其具体实施步骤如下:步骤1:获取复数个用于软件预测的度量的历史版本数据;步骤2:将所述复数个度量的历史版本数据进行相关性分析,筛选出至少三个度量;步骤3:基于筛选出的度量建立多种模型,分别基于该多种模型估计历史版本数据变量中的缺失数据;步骤4:选取至少三个历史版本的数据对当前版本的故障数据进行估计,记为第一故障数据;步骤5:基于多种估计模型,分别建立卡尔曼滤波状态更新方程,计算卡尔曼增益以及估计误差;步骤6:估计下一版本的故障数据,记为第二故障数据;步骤7:当第二故障数据较第一故障的数据更趋近于真实故障数据时,将所述步骤5的过程进行递归重复;步骤8:基于最后一次卡尔曼滤波状态更新方程,预测未知版本的故障数据;通过上述步骤,可以实现未知版本的软件故障数据的预测,并且能够根据卡尔曼滤波所提供的状态更新方程以及卡尔曼增益,计算出模型的估计误差,进而自适应的调整系统模型的相关参数,实时适应故障数据预测模型的变化情况,从而实现高精度的估计。其中,在步骤1中所述的“获取复数个用于软件预测的度量的历史版本数据”,其具体作法如下:在故障主动预测技术中,根据给定的软件,以函数为节点,以调用关系为边,建立函数调用关系网络,基于该复杂网络,获取多个度量元,该度量元可以是静态的拓扑结构指标,如:节点数量、边、平均度、聚集系数、平均路径和社团数量,也可以是动态的拓扑结构指标,如:渗流值;所述度量元为软件的多个历史版本中获取得到。其中,在步骤2中所述的“将所述复数个度量的历史版本数据进行相关性分析,筛选出至少三个度量”,其具体作法如下:在一种实施方式中,分别计算任何度量与故障数据之间的相关系数,进而选取相关的度量元,或将所述复数个度量数据的多个历史版本数据进行归一化处理后,置于同一时序图中,选取与所述故障数据折线趋势接近的折线所对应的度量元。其中,在步骤3中所述的“基于筛选出的度量建立多种模型,分别基于该多种模型估计历史版本数据变量中的缺失数据”,其具体作法如下:将所述筛选出的度量元进行平稳性分析,分别建立与所述故障数据间的回归模型,基于该模型,估计多个度量的历史版本数据中的缺失数据,或基于所述筛选出的多个度量元建立面板数据模型,得到所述故障数据与多个度量分布之间的方程关系,进而估计缺陷数据的历史版本数据中的缺失数据,或基于差分小波神经网络的软件故障预测方法,构建差分还原模型,从而将模型中输出的预测值转换为最新故障间隔时间的预测数据。其中,在步骤4中所述的“选取至少三个历史版本的数据对当前版本的故障数据进行估计,记为第一故障数据”,其具体作法如下:选取版本数据的前k个版本的数据作为历史参考数据,同时为本预测方法的输入数据,基于多种估计方法建立所述历史参考数据与预测值之间的线性方程,其中所述估计方法包括:线性回归方程法,面板数据分析法,以及差分小波神经网络的差分还原法,分别将每个模型输出的预测值与实际值间的差值记为残差,基于各个估计方法得到的k+1版本的故障数据记为每种估计模型的第一故障数据。其中,在步骤5中所述的“基于多种估计模型,分别建立卡尔曼滤波状态更新方程,计算卡尔曼增益以及估计误差”,其具体作法如下:对于卡尔曼滤波,其状态更新方程为X-k=AX-k-1,P-k=APk-1AT,其中A为状态增益矩阵,也即是由k-1版本的状态可以递推估计第k版本的状态,其中P为协方差矩阵,也即是,通过前一时刻的协方差递推得到第k时刻的协方差估计,卡尔曼增益通过该协方差估计以及状态增益递推得到,根据实测数据以及估计数据,计算求得误差。其中,在步骤6中所述的“估计下一版本的故障数据,记为第二故障数据”,其具体作法如下:根据步骤5中所述的实测数据以及估计数据,得到状态的后验估计值以及后验协方差矩阵,计算当前版本(k+2版本)的故障数据,记为第二故障数据。其中,在步骤7中所述的“当第二故障数据较第一故障的数据更趋近于真实故障数据时,将所述步骤5的过程进行递归重复”,其具体作法如下:将第一故障数据与其对应的k+1版的真实故障数据进行比较,计算差值,记为第一差值;将第二故障数据与其对应的k+2版本的真实故障数据进行比较,计算差值,记为第二差值;比较第一差值和第二差值的大小,当第二差值小于第一差值时,认为卡尔曼滤波对于修正模型是有效的,进而重复递归操作。其中,在步骤8中所述的“基于最后一次卡尔曼滤波状态更新方程,预测未知版本的故障数据”,其具体作法如下:当所述递归重复操作进行到所述历史版本数据的最后一个版本时,记录当前卡尔曼滤波状态更新方程、卡尔曼增益以及估计误差,估计最后一版本的故障数据,基于递归重复实现修正的故障预测模型,估计未知版本的故障数据。(三)优点及功效通过上述八个步骤,可以实现未知版本的软件故障数据的预测,并且能够根据卡尔曼滤波所提供的状态更新方程以及卡尔曼增益,计算出模型的估计误差,进而自适应的调整系统模型的相关参数,实时适应故障数据预测模型的变化情况,从而实现高精度的估计。附图说明图1是本专利技术实施例提供的一种方法的流程图。图2是本专利技术实施例提供的一种方法的示意图。图3是本专利技术实施例提供的一种方法的示意图。具体实施方式本专利技术提供了一种基于多维卡尔曼滤波修正的软件故障预测方法,为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图1-3对本专利技术实施方式作详细描述。如图1所示,示出了本专利技术实施例提供的具体流程图。本专利技术一种基于多维卡尔曼滤波修正的故障主动预测方法,见图1所示,其具体实施步骤如下:101、获取复数个用于软件预测的度量的历史版本数据。其中,获取的用于软件预测的复数个度量属于软件的基本属性,可以包含软件的内在特征,也可以包含软件的外在特征,或者两者皆有包含;在本次实施方式中,根据给定的软件,以函数为节点,以调用关系为边,建立函数调用关系网络,基于该复杂网络,获取多个度量元,该度量元可以是静态的拓扑结构指标,也可以是动态指标;本实施中所采用的度量元包括:渗流均值、节点数量、边、平均度、聚本文档来自技高网...

【技术保护点】
1.一种基于多维卡尔曼滤波修正的故障主动预测方法,其特征在于:其具体实施步骤如下:步骤1:获取复数个用于软件预测的度量的历史版本数据;步骤2:将所述复数个度量的历史版本数据进行相关性分析,筛选出至少三个度量;步骤3:基于筛选出的度量建立复数种模型,分别基于该复数种模型估计历史版本数据变量中的缺失数据;步骤4:选取至少三个历史版本的数据对当前版本的故障数据进行估计,记为第一故障数据;步骤5:基于复数种估计模型,分别建立卡尔曼滤波状态更新方程,计算卡尔曼增益以及估计误差;步骤6:估计下一版本的故障数据,记为第二故障数据;步骤7:当第二故障数据比第一故障的数据更趋近于真实故障数据时,将所述步骤5的过程进行递归重复;步骤8:基于最后一次卡尔曼滤波状态更新方程,预测未知版本的故障数据;通过上述步骤,能实现未知版本的软件故障数据的预测,并且能够根据卡尔曼滤波所提供的状态更新方程以及卡尔曼增益,计算出模型的估计误差,进而自适应的调整系统模型的相关参数,实时适应故障数据预测模型的变化情况,从而实现高精度的估计。

【技术特征摘要】
1.一种基于多维卡尔曼滤波修正的故障主动预测方法,其特征在于:其具体实施步骤如下:步骤1:获取复数个用于软件预测的度量的历史版本数据;步骤2:将所述复数个度量的历史版本数据进行相关性分析,筛选出至少三个度量;步骤3:基于筛选出的度量建立复数种模型,分别基于该复数种模型估计历史版本数据变量中的缺失数据;步骤4:选取至少三个历史版本的数据对当前版本的故障数据进行估计,记为第一故障数据;步骤5:基于复数种估计模型,分别建立卡尔曼滤波状态更新方程,计算卡尔曼增益以及估计误差;步骤6:估计下一版本的故障数据,记为第二故障数据;步骤7:当第二故障数据比第一故障的数据更趋近于真实故障数据时,将所述步骤5的过程进行递归重复;步骤8:基于最后一次卡尔曼滤波状态更新方程,预测未知版本的故障数据;通过上述步骤,能实现未知版本的软件故障数据的预测,并且能够根据卡尔曼滤波所提供的状态更新方程以及卡尔曼增益,计算出模型的估计误差,进而自适应的调整系统模型的相关参数,实时适应故障数据预测模型的变化情况,从而实现高精度的估计。2.根据权利要求1所述的一种基于多维卡尔曼滤波修正的故障主动预测方法,其特征在于:在步骤1中所述的“获取复数个用于软件预测的度量的历史版本数据”,其具体作法如下:在故障主动预测技术中,根据给定的软件,以函数为节点,以调用关系为边,建立函数调用关系网络,基于该复杂网络,获取多个度量元,该度量元可以是静态的拓扑结构指标,如:节点数量、边、平均度、聚集系数、平均路径和社团数量,也可以是动态的拓扑结构指标,如:渗流值;所述度量元为软件的多个历史版本中获取得到。3.根据权利要求1所述的一种基于多维卡尔曼滤波修正的故障主动预测方法,其特征在于:在步骤2中所述的“将所述复数个度量的历史版本数据进行相关性分析,筛选出至少三个度量”,其具体作法如下:在一种实施方式中,分别计算任何度量与故障数据之间的相关系数,进而选取相关的度量元,或将所述复数个度量数据的多个历史版本数据进行归一化处理后,置于同一时序图中,选取与所述故障数据折线趋势接近的折线所对应的度量元。4.根据权利要求1所述的一种基于多维卡尔曼滤波修正的故障主动预测方法,其特征在于:在步骤3中所述的“基于筛选出的度量建立多种模型,分别基于该多种模型估计历史版本数据变量中的缺失数据”,其具体作法如下:将所述筛选出的度量元进行平稳性分析,分别建立与所述故障数据间的回归模型,基于该模型,估计多个度量的历史版本数据中的缺失数据,或基于所述筛选出的多个度量元建立面板数据模型,得到所述故障数据与多个度量分布之间的方程关系,进而估计缺陷数据的历史版本数据中的缺失数据,或基于差分小波神经网络的软件故障预测方法,构建差分还原...

【专利技术属性】
技术研发人员:杨顺昆苟晓冬李红曼黄婷婷林欧雅李大庆陶飞佘志坤
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1