掌桥专利:专业的专利平台
掌桥专利
首页

一种基于XGBoost算法的设备故障预警方法及系统

文献发布时间:2024-04-29 00:47:01


一种基于XGBoost算法的设备故障预警方法及系统

技术领域

本发明涉及设备预警监测技术领域,特别涉及一种基于XGBoost算法的设备故障预警方法及系统。

背景技术

随着各行业的发展,工业旋转机械设备种类繁多,用途结构也愈加复杂,而其一旦发生故障,停机停产将可能给企业带来巨大的经济损失,甚至是安全事故。当前最常用的故障预警方式,是在设备上安装状态监测系统,通过评估设备运行的特征指标趋势的变化,来判断设备的健康状态。

当前最常用的设备故障预警方式,仍是在设备上安装状态监测系统,如振动监测系统,设置一个固定的报警阈值来判断设备的健康状态。该门限值可以是相关标准中给出的值或企业内长期运维得出的经验值,具有一定的合理性,但其仍存在以下弊端:

第一,忽略了工况波动引起的振动值的波动,容易造成误报和漏报;

第二,忽略了同类设备的差异性,即有些设备特征值可能处于较高水平,但其仍处于平稳运行状态;

第三,忽略了偶发性的异常冲击引起的误报警;

第四,报警阈值恒定,整个报警流程未形成一个合理的闭环。

发明内容

本申请提供一种基于XGBoost算法的设备故障预警方法及系统,以解决设备经常出现误报、漏报等问题。

第一方面,本申请提供一种基于XGBoost算法的设备故障预警方法,所述预警方法包括:

获取目标检测设备的历史运行数据,所述历史运行数据包括所述目标检测设备的所有运行工况;

根据所述历史运行数据进行基于XGBoost算法的报警模型训练,得到对应所述目标检测设备的报警模型和对应所述目标检测设备的健康指标;

利用指数加权移动平均对所述健康指标进行自适应平滑计算,得到所述目标检测设备的报警阈值;

当所述目标检测设备的运行数据超过所述报警阈值时,对所述目标检测设备进行预报警,并计算预报警的次数,当所述预报警的次数大于预设次数时,对所述目标检测设备进行正式报警;

对已经正式报警的所述目标检测设备进行现场检测,得到检查结果,所述检查结果用于报警标记或二次报警模型训练。

优选的,所述获取目标检测设备的历史运行数据的步骤包括:

获取目标检测设备的所有运行数据,所述运行数据中的各项数据按照时序排列,所述运行数据包括设备运行状态数据和设备运行工况数据;

在所述运行状态数据中选取一段历史运行数据,所述历史运行数据的数据种类包括设备运行状态数据和设备运行工况数据,且所述历史运行数据包括所述目标检测设备的所有运行工况。

优选的,所述根据所述历史运行数据进行基于XGBoost算法的报警模型训练的步骤包括:

利用所述XGBoost算法对所述历史运行数据进行重要性指标筛选,选取出用作所述报警模型输入的特征指标和用作所述报警模型输出的特征指标;

构建XGBoost模型,并利用所述历史运行数据训练所述XGBoost模型,得到对应所述目标检测设备的所述报警模型;

根据所述报警模型的输出结果和输入数据的均方根值进行残差计算,并将得到的残差的绝对值作为对应所述目标检测设备的健康指标。

优选的,所述构建XGBoost模型,并利用所述历史运行数据训练所述XGBoost模型的步骤包括:

将所述历史运行数据随机划分为训练集和测试集;

构建XGBoost模型,在所述XGBoost模型中采用网格搜索法选取最优参数,所述XGBoost模型的学习任务为回归任务,所述XGBoost模型的损失函数为均方差函数;

利用所述训练集和所述测试集对所述XGBoost模型进行训练,得到对应所述目标检测设备的所述报警模型。

优选的,所述根据所述报警模型的输出结果和输入数据的均方根值进行残差计算的步骤包括:

将所述目标检测设备的真实数据输入所述报警模型,得到所述输出结果;

根据所述输入数据的均方根值和对应所述真实数据的所述输出结果进行残差计算,所述输入数据对应所述报警模型输出的特征指标,所述输出结果对应所述警模型输入的特征指标。

优选的,所述利用指数加权移动平均对所述健康指标进行自适应平滑计算的步骤包括:

利用所述指数加权移动平均对所述健康指标进行自适应平滑计算,得到时序下的故障异常分数;

根据所述故障异常分数进行计算,得到故障异常分数均值和故障异常分数方差;

根据所述故障异常分数均值、所述故障异常分数方差和所述输出结果和所述输入数据的残差计算得到所述目标检测设备的报警阈值。

优选的,所述当所述目标检测设备的运行数据超过所述报警阈值时,对所述目标检测设备进行预报警的步骤包括:

当所述残差未超过限制时,判断所述目标检测设备的运行数据是否大于所述报警阈值;

若是,则对所述目标检测设备进行预报警,记录所述预报警的次数,并判断所述预报警的次数是否大于预设次数;

若是,则对所述目标检测设备进行正式报警。

优选的,所述对已经正式报警的所述目标检测设备进行现场检测,得到检查结果,所述检查结果用于报警标记或二次报警模型训练的步骤包括:

获取所述检查结果,并判断所述检查结果是否为有效报警;

若是,则向报警数据标注报警标签;

若否,则将报警数据中已经标记报警标签的数据修正为正常数据,并将报警数据加入所述历史运行数据,根据新的历史运行数据进行二次报警模型训练。

第二方面,本申请还提供一种基于XGBoost算法的设备故障预警系统,所述预警系统包括:

数据采集模块,所述数据采集模块被配置为获取目标检测设备的历史运行数据,所述历史运行数据包括所述目标检测设备的所有运行工况;

模型训练模块,所述模型训练模块与所述数据采集模块连接;所述模型训练模块被配置为根据所述历史运行数据进行基于XGBoost算法的报警模型训练,得到对应所述目标检测设备的报警模型和对应所述目标检测设备的健康指标,利用指数加权移动平均对所述健康指标进行自适应平滑计算,得到所述目标检测设备的报警阈值;

减少误报警模块,所述减少误报警模块与所述模型训练模块连接;所述减少误报警模块被配置为当所述目标检测设备的运行数据超过所述报警阈值时,对所述目标检测设备进行预报警,并计算预报警的次数,当所述预报警的次数大于预设次数时,对所述目标检测设备进行正式报警;

检修反馈数据重训练模块,所述检修反馈数据重训练模块分别与所述模型训练模块和所述减少误报警模块连接;所述检修反馈数据重训练模块被配置为对已经正式报警的所述目标检测设备进行现场检测,得到检查结果,所述检查结果用于报警标记或二次报警模型训练。

优选的,所述检修反馈数据重训练模块还被配置为:

获取所述检查结果;

判断所述检查结果是否为有效报警;当所述检查结果是有效报警时,向报警数据标注报警标签;当所述检查结果不是有效报警时,将报警数据中已经标记报警标签的数据修正为正常数据,并将报警数据加入所述历史运行数据,根据新的历史运行数据进行二次报警模型训练。

本申请提供一种基于XGBoost算法的设备故障预警方法及系统,所述预警方法包括获取目标检测设备的历史运行数据,所述历史运行数据包括所述目标检测设备的所有运行工况;根据所述历史运行数据进行基于XGBoost算法的报警模型训练,得到对应所述目标检测设备的报警模型和对应所述目标检测设备的健康指标;利用指数加权移动平均对所述健康指标进行自适应平滑计算,得到所述目标检测设备的报警阈值;当所述目标检测设备的运行数据超过所述报警阈值时,对所述目标检测设备进行预报警,并计算预报警的次数,当所述预报警的次数大于预设次数时,对所述目标检测设备进行正式报警;对已经正式报警的所述目标检测设备进行现场检测,得到检查结果,所述检查结果用于报警标记或二次报警模型训练。本申请通过上述方案解决因对设备的运行状态进行检测时,工况变化引起的误报警、漏报警,以及异常冲击引起的误报警,并根据反馈结果更新优化模型,实现整个报警流程闭环。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请一种基于XGBoost算法的设备故障预警方法的流程图;

图2为本申请一种基于XGBoost算法的设备故障预警方法中获取历史运行数据的流程图;

图3为本申请一种基于XGBoost算法的设备故障预警方法中获取报警模型和健康指标的流程图;

图4为本申请一种基于XGBoost算法的设备故障预警方法中获取报警模型具体方式的流程图;

图5为本申请一种基于XGBoost算法的设备故障预警方法中进行残差计算的流程图;

图6为本申请一种基于XGBoost算法的设备故障预警方法中获取报警阈值的流程图;

图7为本申请一种基于XGBoost算法的设备故障预警方法中判断是否正式报警的流程图;

图8为本申请一种基于XGBoost算法的设备故障预警方法中判断是否进行二次报警模型训练的流程图;

图9为本申请一种基于XGBoost算法的设备故障预警系统的示意图;

图10为本申请一种基于XGBoost算法的设备故障预警方法中重要性指标的排名示意图;

图11为本申请一种基于XGBoost算法的设备故障预警方法中模型训练过程中预测情况和实际情况的示意图;

图12为本申请一种基于XGBoost算法的设备故障预警方法中模型训练完成后的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本申请一种基于XGBoost算法的设备故障预警方法的流程图;

图11为本申请一种基于XGBoost算法的设备故障预警方法中模型训练过程中预测情况和实际情况的示意图;

图12为本申请一种基于XGBoost算法的设备故障预警方法中模型训练完成后的示意图。

参见图1、图11和图12可知,本实施例提供一种基于XGBoost算法的设备故障预警方法,所述预警方法包括:

S100,获取目标检测设备的历史运行数据,所述历史运行数据包括所述目标检测设备的所有运行工况,具体的,在本实施例中,所述历史运行数据包括所述目标检测设备的所有运行工况,以此来满足对所有工况情况的鉴别及后续的预警。

图2为本申请一种基于XGBoost算法的设备故障预警方法中获取历史运行数据的流程图。

其中,获取历史运行数据的具体步骤参见图2,具体获取历史运行数据的步骤如下:

S110,获取目标检测设备的所有运行数据,所述运行数据中的各项数据按照时序排列,所述运行数据包括设备运行状态数据和设备运行工况数据;

S120,在所述运行状态数据中选取一段历史运行数据,所述历史运行数据的数据种类包括设备运行状态数据和设备运行工况数据,且所述历史运行数据包括所述目标检测设备的所有运行工况,具体的,在本实施例中,设备运行状态数据可采集如设备的振动、温度等,设备运行工况数据可采集如电流、电压、流量、压力等有效表征设备负载、所处工况的数据。其目的在于,如采用振动信号表征设备的运行状态,当该设备工况频繁波动时,振动幅度也随工况波动,甚至在某种工况下出现大幅值冲击现象,很容易造成误报警与漏报警,可以理解的是识别当前设备工况,在该工况下振动值高于该工况下应有的振动水平,则有可能表示设备出现异常。本实施实例设备运行状态数据采用振动信号,设备运行工况数据采用电机电流、转速与水泵流量信号。

需要说明的是,本实施例以某水泵为例,但不不是仅针对水泵。

所述预警方法还包括:

S200,根据所述历史运行数据进行基于XGBoost算法的报警模型训练,得到对应所述目标检测设备的报警模型和对应所述目标检测设备的健康指标,具体的,在本实施例中,根据所述历史运行数据并利用所述XGBoost算法进行模型训练,以此得到适应所述目标检测设备的报警模型,其中,在本实施例中,所述目标检测设备为水泵。

图3为本申请一种基于XGBoost算法的设备故障预警方法中获取报警模型和健康指标的流程图。

其中,获取报警模型和健康指标的具体步骤参见图3,具体获取报警模型和健康指标的步骤如下:

S210,利用所述XGBoost算法对所述历史运行数据进行重要性指标筛选,选取出用作所述报警模型输入的特征指标和用作所述报警模型输出的特征指标,具体的,在本实施例中,所述重要性指标筛选可以看作为为报警模型筛选具有权重的特征,以此来优化报警模型的准确性。选取该设备一段时间的正常运行监测数据,该历史数据应能尽可能的包含该设备的所有运行工况,本实施实例采用3个月的历史数据。计算该历史振动数据的时域指标峰值、峰峰值、均值、绝对均值、方根幅值、方差、标准差、偏度、峭度、偏度系数、峭度系数、波形系数、峰值系数、形态系数、脉冲系数、裕度系数做为模型的备选输入,采用XGBoost中的特征重要性指标筛选特征,计算方法采用权重形式,如图10所示为重要性排名,选取重要性排名靠前的6个特征指标,绝对均值、方差、峰值、峰峰值、峭度、偏度,对比发现峰值与峰峰值趋势接近,存在特征冗余,最终选择绝对均值、方差、峰峰值、峭度、偏度5个特征指标与水泵电机电流、水泵电机转速、水泵流量组成1×8的特征值序列做为模型的输入,振动振动数据的时域指标均方根值做为模型的输出。

S220,构建XGBoost模型,并利用所述历史运行数据训练所述XGBoost模型,得到对应所述目标检测设备的所述报警模型,具体的,在本实施例中,获取所述报警模型还有进一步的实施方式,具体的参见图4,包括:

S221,将所述历史运行数据随机划分为训练集和测试集;

S222,构建XGBoost模型,在所述XGBoost模型中采用网格搜索法选取最优参数,所述XGBoost模型的学习任务为回归任务,所述XGBoost模型的损失函数为均方差函数;

S223,利用所述训练集和所述测试集对所述XGBoost模型进行训练,得到对应所述目标检测设备的所述报警模型,具体的,在本实施例中,将历史数据按照0.75:0.25随机划分为训练集、测试集。构建XGBoost模型,采用网格搜索的方式选择模型的最优参数,学习率搜索范围为[0.01, 0.015, 0.025, 0.05, 0.1],叶节点进行分支所需的损失减少的最小值gamma搜索范围为[0, 0.05,0.1, 0.3, 0.5, 0.7, 0.9, 1],L1正则化权重项alpha搜索范围为[0, 0.01,0.1,0.3, 0.5, 0.7, 0.9, 1],L2正则化权重项lambda搜索范围为[0,0.1, 0.5, 1],树的最大深度max_depth搜索范围为[3, 5, 6, 7, 9, 12],学习任务为回归任务,损失函数为均方差函数,使用训练集、测试集训练XGBoost模型,选取最优参数做为模型的参数。

S230,根据所述报警模型的输出结果和输入数据的均方根值进行残差计算,并将得到的残差的绝对值作为对应所述目标检测设备的健康指标,具体的,在本实施例中,通过所述报警模型的输出结果和输入数据的均方根值进行残差计算,以此获取到所述健康指标,具体的步骤参见图5,包括:

S231,将所述目标检测设备的真实数据输入所述报警模型,得到所述输出结果;

S232,根据所述输入数据的均方根值和对应所述真实数据的所述输出结果进行残差计算,所述输入数据对应所述报警模型输出的特征指标,所述输出结果对应所述警模型输入的特征指标,具体的,在本实施例中,参见图11和图12,模型的输出结果

其中,健康指标为:

所述预警方法还包括:

S300,利用指数加权移动平均对所述健康指标进行自适应平滑计算,得到所述目标检测设备的报警阈值,具体的,在本实施例中,利用指数加权移动平均平滑残差序列,并计算自适应的报警阈值,其中,获取报警阈值的具体步骤参见图6,具体包括:

S310,利用所述指数加权移动平均对所述健康指标进行自适应平滑计算,得到时序下的故障异常分数;

S320,根据所述故障异常分数进行计算,得到故障异常分数均值和故障异常分数方差;

S330,根据所述故障异常分数均值、所述故障异常分数方差和所述输出结果和所述输入数据的残差计算得到所述目标检测设备的报警阈值,具体的,在本实施例中,该水泵工况存在一定波动,虽然工况数据参与了训练,但采用残差的绝对值作为异常状态的测度仍有一定随机性。使用指数加权移动平均对该残差序列进行平滑,可得

上式中:

异常分数

上式中:

残差的报警上限

上式中:

所述预警方法还包括:

S400,当所述目标检测设备的运行数据超过所述报警阈值时,对所述目标检测设备进行预报警,并计算预报警的次数,当所述预报警的次数大于预设次数时,对所述目标检测设备进行正式报警,具体的,在本实施例中,通过设定预报警和报警次数的限制,当符合所有条件时进行正式报警,以此避免出现漏报、误报等问题。

其中,进行正式报警的具体步骤参见图7,进行正式报警具体的步骤包括:

S410,当所述残差未超过限制时,判断所述目标检测设备的运行数据是否大于所述报警阈值;

S420,若是,则对所述目标检测设备进行预报警,记录所述预报警的次数,并判断所述预报警的次数是否大于预设次数;

S430,若是,则对所述目标检测设备进行正式报警,具体的,在本实施例中,残差超限产生报警后,仍有可能产生误报警,设置一个较高水平阈值防止突发性故障产生的漏报警,设置延迟报警,报警数量连续超过n条推送报警,否则不推送,防止偶然冲击等造成的误报警。

在步骤S300中,模型输出与真实数据的残差超过设定的上下限阈值应触发报警,但有可能是某个工况下的趋势波动出现误报,因此设置一个较高水平的阈值

如图12中的正常工况2中的某个偶发异常突变点,残差绝对值超过报警阈值线

其中较高水平的阈值

所述预警方法还包括:

S500,对已经正式报警的所述目标检测设备进行现场检测,得到检查结果,所述检查结果用于报警标记或二次报警模型训练,具体的,在本实施例中,推送正式报警之后,经由现场检维修人员检查与振动分析专家审核,将检查结果反馈,根据检查结果重新训练模型,实现整个流程的闭环。

图8为本申请一种基于XGBoost算法的设备故障预警方法中判断是否进行二次报警模型训练的流程图。

其中,是否进行二次报警模型训练的具体步骤参见图8,是否进行二次报警模型训练的具体步骤如下:

S510,获取所述检查结果,并判断所述检查结果是否为有效报警;

S520,若是,则向报警数据标注报警标签;

S530,若否,则将报警数据中已经标记报警标签的数据修正为正常数据,并将报警数据加入所述历史运行数据,根据新的历史运行数据进行二次报警模型训练,具体的,在本实施例中,当流程全部完成推送报警,现场检维修人员检查,并由振动分析相关专家审核后,提交检查结果。

若检查结果为有效报警,则向报警数据标注报警标签,流程结束。

若检查结果为无效报警,则将S300步骤中的临时报警标签全更新为正常数据,并将报警数据加入历史数据池重复步骤S200进行重训练。

如图12所示,检修完成后的振动值回归正常水平,但是未进行检修反馈模块的处理,残差报警阈值

图9为本申请一种基于XGBoost算法的设备故障预警系统的示意图。

参见图9可知,本实施例还提供一种基于XGBoost算法的设备故障预警系统,通过此预警系统来执行上述实施例中的逻辑方法,所述预警系统包括:

数据采集模块1,所述数据采集模块1被配置为获取目标检测设备的历史运行数据,所述历史运行数据包括所述目标检测设备的所有运行工况,具体的,在本实施例中,通过所述数据采集模块1来获取所述目标检测设备的所述历史运行数据。

模型训练模块2,所述模型训练模块2与所述数据采集模块1连接;所述模型训练模块2被配置为根据所述历史运行数据进行基于XGBoost算法的报警模型训练,得到对应所述目标检测设备的报警模型和对应所述目标检测设备的健康指标,利用指数加权移动平均对所述健康指标进行自适应平滑计算,得到所述目标检测设备的报警阈值,具体的,在本实施例中,通过所述模型训练模块2训练出用于调控报警的报警模型,其中,所述预警模型根据不同的设备自适应改变。

减少误报警模块3,所述减少误报警模块3与所述模型训练模块2连接;所述减少误报警模块3被配置为当所述目标检测设备的运行数据超过所述报警阈值时,对所述目标检测设备进行预报警,并计算预报警的次数,当所述预报警的次数大于预设次数时,对所述目标检测设备进行正式报警,具体的,在本实施例中,利用所述减少误报警模块3进一步优化报警的阈值,并通过设置报警次数,以报警次数来触发正式报警的方式,减少误报警、漏报警等问题。

检修反馈数据重训练模块4,所述检修反馈数据重训练模块4分别与所述模型训练模块2和所述减少误报警模块3连接;所述检修反馈数据重训练模块4被配置为对已经正式报警的所述目标检测设备进行现场检测,得到检查结果,所述检查结果用于报警标记或二次报警模型训练,具体的,在本实施例中,考虑到单一的利用模型进行报警的调控,在整体的报警体系中仍不能实现调控的闭环,因此通过所述检修反馈数据重训练模块4并根据检查结果进行报警标记或二次报警模型训练,以此实现报警的闭环,也在一定程度上优化了报警的准确性。

进一步的,在一些实施例中,所述检修反馈数据重训练模块4还被配置为获取所述检查结果;判断所述检查结果是否为有效报警;当所述检查结果是有效报警时,向报警数据标注报警标签;当所述检查结果不是有效报警时,将报警数据中已经标记报警标签的数据修正为正常数据,并将报警数据加入所述历史运行数据,根据新的历史运行数据进行二次报警模型训练,具体的,本实施例为所述检修反馈数据重训练模块4作业的基本逻辑,即检测结果无误时仅对报警数据进行标记,当检查结果有误时,进行二次报警模型训练。

本实施例具有如下优点:

解决因对设备的运行状态进行检测时,工况变化引起的误报警、漏报警,以及异常冲击引起的误报警,并根据反馈结果更新优化模型,实现整个报警流程闭环。

相关技术
  • 一种基于损耗的保电设备故障预警方法和系统
  • 一种基于贝叶斯优化XGBoost算法预警风电机组轴承故障的方法
  • 基于边缘算法的旋转设备故障监控和预警系统及方法
技术分类

06120116592139