本申请涉及传感器故障检测技术领域,特别是涉及一种基于无监督学习的传感器故障检测方法和装置。
背景技术:
目前,传感器在各类工业场景中均有应用,传感器主要用于测量各类数据,以对工业场景中的数据进行监测,或者进行故障的实时预警。以温度传感器为例,在工况场景下温度传感器很容易出现故障,故障的传感器会造成温度数据失真,发生跳变等情况。故障的传感器会对额外增加监盘和运行人员的工作量和压力,对于一些存在过载保护的传感器,这种故障传感器甚至可能会引发非计划停机等严重影响生产的情况。
如何对故障传感器进行检测和预判成为了设备安全运行面临的一个重要课题。当前,为了避免传感器数值异常、突变造成的设备意外停机,会在控制系统中增加温度突变保护锁,这种保护措施一般是通过判断温度变化率实现的,如果传感器前后数据发生巨幅的变化,变化超过设定的阈值,则对传感器进行锁定。但是这种传感器锁定机制对阈值设置经验要求较高,且存在较多的误报和漏报情况。
传感器数据是一种典型的随时间变化的动态非线性数据具有海量、高维、非平稳和非线性的特点。时序数据映射着动态系统的变化规律以及潜在特性,通过对时序数据进行分析处理,可挖掘出数据中有价值的潜在信息与知识,并能够根据学习到的知识对动态系统未来的变化趋势做出科学估计。传统处理时序数据信号的方法包括傅里叶变换,小波变换等,但工业传感器的工况非常复杂,数据波动幅度较大,傅里叶变换无法兼顾时域和频率特征。在处理时序数据上,小波变换需要预先选择小波基和分解尺度,缺少自适应性。近年来在时序数据统计和挖掘方面有了较多的技术公开。一方面,传统技术中提取综合充电站和公交电站的实际到站充电车辆的时序特征,建立仿真模型,对比分析综合充电站和公交充电站的电流谐波。另一方面,也出现了以sfpsz-180000/220型变压器为研究对象,提出了基于数据挖掘算法的变压器热点温度时序预测方法,其预测结果可为变压器的动态增容决策提供有效参考。还有针对滚动轴承故障提取轴承运行的时域信号特征,提高了故障识别准确率。
然而,传统的故障检测中,对于大量的特征以及传感器进行故障检测时,准确性并不高。
技术实现要素:
基于此,有必要针对上述技术问题,提供一种能够提高故障检测准确性的基于无监督学习的传感器故障检测方法和装置。
一种基于无监督学习的传感器故障检测方法,所述方法包括:
获取设置在待检测位置的多个传感器按时序输出的时序数据;
提取所述时序数据中的时序特征,以及计算所述时序数据预设统计周期内连续发生跳变的最大次数和最大累计波动量;
将所述时序特征、连续发生跳变的最大次数以及最大累计波动量作为传感器的特征集;
将所述特征集作为输入,利用预先设置的无监督学习聚类算法对多个传感器进行聚类,得到故障传感器集合和非故障传感器集合。
在其中一个实施例中,还包括:设置跳变阈值;获取所述时序数据的一阶差分数组,将所述一阶差分数组与所述跳变阈值进行比对,得到跳变比对结果;提取所述时序数据的连续跳变布尔序列集合,根据所述跳变比对结果和所述连续跳变布尔序列集合,得到预设统计周期内连续发生跳变的最大次数。
在其中一个实施例中,还包括:获取波动量统计步长;根据所述时序数据的长度和所述波动量统计步长,统计所述时序数据相邻数据的最大累计波动量。
在其中一个实施例中,所述时序特征包括:平均值、5分位数、95分位数、最大跳变值、一阶差分绝对和、时序数据复杂度和排列熵。
在其中一个实施例中,所述无监督学习聚类算法包括:k-means、birch、dbscan或gmm模型。
一种基于无监督学习的传感器故障检测装置,所述装置包括:
时序数据获取装置,用于获取设置在待检测位置的多个传感器按时序输出的时序数据;
特征提取模块,用于提取所述时序数据中的时序特征,以及计算所述时序数据预设统计周期内连续发生跳变的最大次数和最大累计波动量;
特征集构建模块,用于将所述时序特征、连续发生跳变的最大次数以及最大累计波动量作为传感器的特征集;
故障检测模块,用于将所述特征集作为输入,利用预先设置的无监督学习聚类算法对多个传感器进行聚类,得到故障传感器集合和非故障传感器集合。
在其中一个实施例中,所述特征提取模块还用于设置跳变阈值;获取所述时序数据的一阶差分数组,将所述一阶差分数组与所述跳变阈值进行比对,得到跳变比对结果;提取所述时序数据的连续跳变布尔序列集合,根据所述跳变比对结果和所述连续跳变布尔序列集合,得到预设统计周期内连续发生跳变的最大次数。
在其中一个实施例中,所述特征提取模块还用于获取波动量统计步长;根据所述时序数据的长度和所述波动量统计步长,统计所述时序数据相邻数据的最大累计波动量。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取设置在待检测位置的多个传感器按时序输出的时序数据;
提取所述时序数据中的时序特征,以及计算所述时序数据预设统计周期内连续发生跳变的最大次数和最大累计波动量;
将所述时序特征、连续发生跳变的最大次数以及最大累计波动量作为传感器的特征集;
将所述特征集作为输入,利用预先设置的无监督学习聚类算法对多个传感器进行聚类,得到故障传感器集合和非故障传感器集合。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取设置在待检测位置的多个传感器按时序输出的时序数据;
提取所述时序数据中的时序特征,以及计算所述时序数据预设统计周期内连续发生跳变的最大次数和最大累计波动量;
将所述时序特征、连续发生跳变的最大次数以及最大累计波动量作为传感器的特征集;
将所述特征集作为输入,利用预先设置的无监督学习聚类算法对多个传感器进行聚类,得到故障传感器集合和非故障传感器集合。
上述基于无监督学习的传感器故障检测方法、装置、计算机设备和存储介质,通过构建连续发生跳变的最大次数和最大累计波动量,能够体现出传感器的数据波动特点,从而结合时序特征在进行非监督学习聚类时,能够显著的区分故障的传感器和非故障的传感器,从而提高故障检测的准确性。
附图说明
图1为一个实施例中基于无监督学习的传感器故障检测方法的流程示意图;
图2为一个实施例中基于无监督学习的传感器故障检测装置的结构框图;
图3为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种基于无监督学习的传感器故障检测方法,包括以下步骤:
步骤102,获取设置在待检测位置的多个传感器按时序输出的时序数据。
一般而言,在待检测位置会设置大量的传感器,用于监测待检测位置的温度信息,以火力发电厂锅炉为例,为了监测火力发电厂锅炉,会在火力发电厂锅炉上设置大量的温度传感器,然而火力发电厂锅炉中的燃烧工况复杂,炉管受热、腐蚀严重,温度传感器很容易出现故障,故障的传感器会造成温度数据失真,发生跳变等情况。从而有必要对待检测位置的温度传感器进行故障检测。
值得说明的是,以上火力发电厂锅炉中设置温度传感器仅为一个实施例,为了说明对该步骤进行说明,并不限制与温度传感器,例如:仓库中设置湿度传感器,高压气瓶中设置压力传感器均是本发明的使用场景。
步骤104,提取时序数据中的时序特征,以及计算时序数据预设统计周期内连续发生跳变的最大次数和最大累计波动量。
时序特征指的时序数据的特征,可以通过设置程序计算得到,也可以通过人工计算后输入,在本步骤中,可以选择时序数据中的一个或者几个的组合,在此不做具体的限定。
步骤106,将时序特征、连续发生跳变的最大次数以及最大累计波动量作为传感器的特征集。
特征集指的是用于表示传感器的特征集合。
步骤108,将特征集作为输入,利用预先设置的无监督学习聚类算法对多个传感器进行聚类,得到故障传感器集合和非故障传感器集合。
在通过聚类算法聚类后,可以将传感器分为故障和非故障两类,从而可以确定其中的故障传感器,得到故障检测结果。
上述基于无监督学习的传感器故障检测中,通过构建连续发生跳变的最大次数和最大累计波动量,能够体现出传感器的数据波动特点,从而集合时序特征在进行非监督学习聚类时,能够显著的区分故障的传感器和非故障的传感器,从而提高故障检测的准确性。
在其中一个实施例中,计算时序数据预设统计周期内连续发生跳变的最大次数,包括:设置跳变阈值;获取所述时序数据的一阶差分数组,将一阶差分数组与跳变阈值进行比对,得到跳变比对结果;提取时序数据的连续跳变布尔序列集合,根据跳变比对结果和连续跳变布尔序列集合,得到预设统计周期内连续发生跳变的最大次数。
具体的,提取连续发生跳变的最大次数的步骤如下:
1.选取时序数据跳变阈值t
2.获取时序数据一阶差分数组,c=[c1,c2,…cn-1]
3.计算跳变判断结果r=[c1>t,c2>t,……,cn-1>t]
4.提取连续跳变布尔序列集合b={b1,b2,…}
5.得到最大连续波动次数mfn=max(b,key=len),其中key=len表示取布尔序列集合b中最长的序列。
在其中一个实施例中,计算时序数据预设统计周期内的最大累计波动量,包括:获取波动量统计步长;根据时序数据的长度和波动量统计步长,统计时序数据相邻数据的最大累计波动量。
具体的,提取最大累计波动量的步骤包括:
其中,k=△,2△,3△,……,k<l-△,l是时序数据的长度,△是波动量统计步长,
上述两个特征能够体现故障传感器数据变化特征。
在其中一个实施例中,时序特征包括:平均值、5分位数、95分位数、最大跳变值、一阶差分绝对和、时序数据复杂度和排列熵。
具体的,1)平均值μ,该特征反映了传感器温度在时序上的平均水平。
2)5分位数p5,该特征反映了传感器温度5分位数的大小。
3)95分位数p95,该特征反映了传感器温度95分位数的大小。
4)最大跳变值mdf,该特征可以捕捉传感器发生异常跳变的严重程度。
其中,i=0,1,2,3……n-1
5)一阶差分绝对和ds,该特征会累积传感器在统计周期内的波动量。
其中,i=0,1,2,3……n-1
6)时序数据复杂度ce,该特征体现了统计周期内的数据波动量。
其中,i=0,1,2,3……n-1
7)排列熵pe,选定参数后该特征会对时序数据的排列的有序性进行计算。
其中,i=0,1,2,3……n-1;
d为列向量长度,d!为可控制排列模式数量;
pi为排列模式出现的频率
在其中一个实施例中,无监督学习聚类算法包括:k-means、birch、dbscan或gmm模型。
以下对两个时序特征组合采用k-means、birch、dbscan、gmm模型进行了具体测试,以此证明本发明采用特征组合的有效性,第一个特征组合是基于tsfresh工具得到的时序特征,tsfresh工具是目前对时序数据进行特征提取常用的工具,本发明实施例以tsfresh工具得到的时序特征作为对比,通过测试结果可以较好的说明本发明的有效性。基于tsfresh工具得到的时序特征数量为779个,对自动选取的50维特征进行聚类测试;第二个特征组合是本发明选择和构造的9个特征,分别为:平均值,95分位数,5分位数,最大diff值;一阶差分绝对和,时序数据复杂度,排列熵,最大连续波动次数,小时最大累计波动值。对两个特征组合进行了聚类测试对比,并将dbscan模型部署至实际作业场景上运行,模型识别效果可以满足实际生产使用要求。
基于tsfresh时序特征
tsfresh能自动地计算出大量的时间序列特征,这些特征描述了时间序列的基本特征,如峰数、平均值或最大值或更复杂的特征,如时间反转对称统计。基于tsfresh工具计算得到的779个特征,选取特征波动较大的50个特征对k-means、gaussianmixture、birch、dbscan算法进行试验,经过迭代探索,选取的模型的参数选择如表1。
表1算法参数
可以看出直接基于初步筛选的tsfresh提取的特征聚类效果都比较差,见表2。
表2模型效果
由此可以知道,直接使用现有的利用tsfresh提取的时序特征对传感器进行聚类计算资源消耗极大,且识别故障传感器的准确性较低,无法直接用于实际生产场合。
本发明对选择、构造的9个特征进行聚类测试,其中最大连续波动次数是选定时间段传感器发生异常波动的连续次数,小时最大累计波动值是一小时之内的传感器数值的波动累计值,这两个特征可以反映传感器的稳定情况。经迭代试验,k-means、gaussianmixture、birch、dbscan模型的最佳测试参数如表3所示。
表3各算法参数
4个模型的测试结果如表4所示。k-means聚类结果为898个故障传感器,1407个正常传感器,recall为0.933,precision只有0.047,显然k-means将很多正常的传感器误判为了故障传感器,误报非常多。gaussianmixture模型聚类结果为129个故障传感器,2176个正常传感器,相对k-means误报的数量有明显的降低,同时漏报的情况也有较大的改善。dbscan模型将2305个传感器聚类为44个故障传感器和2261个正常传感器,其中漏报的故障传感器数量为3个,被错误识别为故障传感器的数量为2个,recall和precision分别达到0.933和0.955,效果显著高出k-means和gmm模型。birch模型的聚类结果是37个故障传感器和2268个正常传感器,其中漏报的故障传感器数量为8个,被错误识别为故障传感器的数量为0个。
表4模型效果
对比可以发现,采用本发明选择、构造的9个特征进行聚类测试效果明显优于基于tsfresh工具得到的时序特征进行聚类测试的结果。另一方面,dbscan和birch模型的聚类效果显著优于k-means模型和gmm模型,虽然birch模型没有误报,但是recall值只有0.822,漏报的故障传感器数量有8个,在异常检测领域,这么高的漏报率是无法接受的。
综上所述,采用本发明选择、构造的9个特征进行聚类,有利于提高传感器故障检测的准确率,并且,dbscan模型对故障传感器的区分、识别效果最好。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图2所示,提供了一种基于无监督学习的传感器故障检测装置,包括:时序数据获取装置202、特征提取模块204、特征集构建模块206和故障检测模块208,其中:
时序数据获取装置202,用于获取设置在待检测位置的多个传感器按时序输出的时序数据;
特征提取模块204,用于提取所述时序数据中的时序特征,以及计算所述时序数据预设统计周期内连续发生跳变的最大次数和最大累计波动量;
特征集构建模块206,用于将所述时序特征、连续发生跳变的最大次数以及最大累计波动量作为传感器的特征集;
故障检测模块208,用于将所述特征集作为输入,利用预先设置的无监督学习聚类算法对多个传感器进行聚类,得到故障传感器集合和非故障传感器集合。
在其中一个实施例中,特征提取模块202还用于设置跳变阈值;获取所述时序数据的一阶差分数组,将所述一阶差分数组与所述跳变阈值进行比对,得到跳变比对结果;提取所述时序数据的连续跳变布尔序列集合,根据所述跳变比对结果和所述连续跳变布尔序列集合,得到预设统计周期内连续发生跳变的最大次数。
在其中一个实施例中,时序特征包括:平均值、5分位数、95分位数、最大跳变值、一阶差分绝对和、时序数据复杂度和排列熵。
在其中一个实施例中,无监督学习聚类算法包括:k-means、birch、dbscan或gmm模型。
关于基于无监督学习的传感器故障检测装置的具体限定可以参见上文中对于基于无监督学习的传感器故障检测方法的限定,在此不再赘述。上述基于无监督学习的传感器故障检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于无监督学习的传感器故障检测方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述实施例中方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。