这篇文章的主要目的是记录我的一个模型的实现,该模型可用于对商用涡扇发动机进行预测维护。这里使用的预测维护方法是一种数据驱动方法,这意味着从运行中的喷气式发动机收集的数据用于执行预测维护建模。具体来说,该项目的目标是建立一个预测模型,基于类似喷气式发动机集群从运行到故障的数据,以估计剩余使用寿命(RUL)的喷气发动机。本文所述的算法基本遵循[1]。
NASA已经创建了预测和健康管理PHM08挑战数据集,并向公众开放。该数据集用于预测喷气发动机随时间的故障。数据集由NASA艾姆斯的预测中心提供数据集包括各种压力、温度和喷气发动机旋转设备速度的时间序列测量。这些测量通常是在商用现代涡轮风扇发动机中进行的。所有的发动机都是同一类型,但每个发动机的启动初始磨损和变化程度不同。这是用户所不知道的。
Prognostics Center - Data Repositoryti.arc.nasa.gov请参阅发动机示意图以及各种传感器测量位置的图片。
各种传感器测量位置采集的数据被传感器噪声污染。随着时间的推移,每台发动机都会出现一个故障,这一点可以通过传感器读数看出来。当特定引擎发生故障时,每个引擎的数据将停止。因此,实际的RUL是根据数据的长度来确定的。数据实际上是使用C-MAPSS(商用模块化航空推进系统仿真)模拟的数据。所生成的模拟数据被用作第一届预测与健康管理(PHM)数据竞赛(PHM 08)的挑战数据。
有关数据集的更多详细信息,请参见飞机发动机从运行到故障模拟的损伤传播建模:
当前的问题是提出一个基于传感器测量的时间序列数据的机器学习模型来预测RUL,这些数据通常来自飞机燃气轮机。
由于训练数据由run-to-failure轨迹组成,而测试数据包含未定义的健康状态轨迹,然后训练过程将包括训练的模型部分发生故障前的轨迹模拟真正的使用模型的在线预测模式。
单元是根据具有最相似退化模式的训练单元的实际寿命来估计的。
RUL估计策略的概述。测试单元的剩余寿命是根据退化模式最相似的训练单元的实际寿命来估算的[1]本文分析使用的数据是仿真数据的一部分,具体文件为:train FD001.txt。这个特定的数据集包含100个从运行到故障的引擎模拟(对应100个不同的引擎):
上述传感器之间存在着完美的相关性。这意味着我可以为分析删除一些列。( 'Sn_1', 'Sn_5', 1.0)
( 'Sn_1', 'Sn_10', 1.0)
( 'Sn_1', 'Sn_16', 1.0)
( 'Sn_5', 'Sn_10', 1.0)
( 'Sn_5', ' Sn_16 ', 1.0)
(' Sn_9 ',' Sn_14 ', 0.9631566003059564)
(Sn_10' ',' Sn_16 ', 1.0)
上述传感器之间存在着完美的相关性。这意味着我可以为分析删除一些列。
现在让我们看看时间序列图和各种变量的数据列的分布
从上面的分布图中,我们可以看到一些传感器没有变化,因此可以从分析中移除它们同样重要的是
columns to be removed from analysis since they do not change with time
['op_cond_3', 'sn_1', 'sn_5', 'sn_6', 'sn_10', 'sn_16', 'sn_18', 'sn_19']high correlation columns all engines:
('sn_9', 'sn_14', 0.9631566003059564)
删除不随时间变化的列后,只有传感器9和14的相关度大于0.9
现在,让我们看一下所有发动机的运行周期的原始传感器数据,以了解传感器的时间变化,并瞥见发动机之间的差异:
从所有引擎的时间序列图中,我们可以找到以下要点
sensors remaining for analysis after considering trends in the time series plot
['sn_2' 'sn_3' 'sn_4' 'sn_7' 'sn_8' 'sn_11' 'sn_12' 'sn_13' 'sn_15'
'sn_17' 'sn_20' 'sn_21']
我现在要检查的是剩余传感器作为操作周期函数的趋势。 较高的趋势可能意味着引擎使用寿命结束时事件的可预测性更好。
只需将线性模型拟合到每个传感器即可找到趋势。 然后,我根据传感器的线性斜率绝对值对其进行排序。 当然,在进行线性回归之前,传感器值已被标准化!
the order of trend slope magnitude is
['sn_11' 'sn_4' 'sn_12' 'sn_7' 'sn_15' 'sn_21' 'sn_20' 'sn_17' 'sn_2'
'sn_3' 'sn_13' 'sn_8']
2.降维PCA:
我想进一步减少问题的范围。 因此,让我们检查一下PC的前几个Principled Components分别解释了传感器的可变性
第一PC:74%
第二PC:4.1%
第三PC:3.5%
现在使用线性趋势斜率仅包含最高6个传感器的数据子集,让我们再次进行PCA:
第一PC:81.6%
第二PC:5%
第三PC:4.4%
根据线性趋势的分析,根据传感器线性趋势的大小即线性回归斜率的大小来选择前6个传感器。 看起来,基于这6个传感器,采用3个主要原理s可以捕获大约90%的数据可变性。 因此,尺寸的进一步减小带来了信息的低损失。
3. 数据探索和降维总结:
不会随时间变化的传感器(不会随发动机工作周期变化)被丢弃,因为它们没有提供任何信息来预测使用寿命的结束 没有明显趋势的传感器(仅看起来像噪声,或者没有寿命终止趋势的传感器)也会被丢弃。 其中包含的传感器对于不同引擎的行为各不相同(因为它们会混淆学习算法,并可能导致较大的测试错误,因为它们的行为在所有引擎上都不是通用的) 基于剩余传感器数据与RUL的线性回归,就仅保留了斜率绝对值最高的6个传感器。 这些传感器在发动机寿命终止时会发生可预测的变化。 此外,通过采用数据的前3个主成分来降低维数。
数据的其余3个组成部分将融合在一起,以使每个引擎具有RUL的运行状况指数(HI)功能.
要创建融合健康指数(HI)传感器,首先,我们需要训练极端数据(发动机循环开始时和发动机循环寿命结束时的数据)。
生命开始时值为1,生命结束时值为0。
因此模型将获取传感器值并找到给出健康指示HI的融合信号。
我将具有良好运行状况的引擎称为具有(RUL_hgih = 300)个或更多周期直到故障的引擎。 零健康状况被视为每个发动机操作的最后(RUL_low = 5)个周期。
上图显示了将所有传感器融合为一个信号(健康指数(HI))的结果。 上面的结果是针对代表性引擎的。 请注意,HI可以通过各种融合技术获得,这里我仅展示了使用线性和逻辑回归模型的融合。值得一提的是,它们各自的HI都有发动机之间的差异。 当然,这是可以预料的,因为发动机的原始未融合传感器具有可变性。 见下图:
我们将在模型中使用HI的方法是为每个引擎创建一个简单的指数模型:
y = a [exp(b * t)-1] = HI,
然后使用该HI指数拟合R之间的相似性来预测RUL 为新发动机安装的HI和原始HI。 下图显示了代表性发动机的指数拟合HI曲线以及原始HI和过滤后的HI
上面的培训模型摘要:
该算法的训练模型只是从其时间序列传感器中找到给定引擎的健康指数(HI)。训练结果是一个指数模型,该模型给出了发动机的HI作为其先前工作循环(其剩余寿命RUL)的函数,其步骤可总结如下:
线性模型是通过从取一个子集获得的,该子集对应于大于 ℎ ℎ且小于 的运算周期。 周期大于 ℎ ℎ的传感器值被映射为1(因为它们具有接近完美的运行状况),而周期小于 的传感器值则被映射为0,因为它们几乎没有剩余寿命。 请注意,该子集取自所有引擎,因此此融合模型是整个引擎集的全局模型。
= ^ _ + 0,其中 是上述线性回归模型的结果。
现在,可以应用线性模型将每个发动机循环中所有发动机的传感器值融合并转换为 。
最后,对于 对于每个发动机获得的值被模制为一个指数曲线,它为健康指数 一个模型作为发动机循环的函数的所有引擎在所述数据集.
接下来是基于运行周期小于整个生命周期的传感器值来预测新发动机的RUL的算法。
我将主要使用插值方案将新引擎与从培训中获得的健康指数模型库进行比较。
输入:
新引擎RUL的预测作为输入:
1.具有观察力的融合传感器等于新发动机的当前寿命周期
2.为所有训练有素的引擎拟合HI的指数模型
然后,该模型会尝试从训练阶段开始,将新发动机的融合传感器的观测结果与模型库中的HI模型(指数拟合曲线)进行比较。
N个估计的RUL被减小为N_red RUL。 通过消除从具有高SSD(低相似性)的发动机模型预测的RUL以及通过考虑与训练集的统计相关的信息(简单的异常值消除)来实现减少
然后将N_red RUL融合为一个RUL,这是模型的最终输出。
做到这一点的方法是使用N_red RUL的加权平均值或采用RUL的中值(方法1)。 这里使用了三种不同的权重:
对于RUL估计,早期预测优于晚期预测。 因此,模型的计分在真实的故障时间周围是不对称的,因此较之早的预测,后期的预测将受到更大的惩罚。 无论哪种情况,惩罚都会随着误差的增加而呈指数增长。 非对称偏好由下面给出的评分函数中的参数a1和a2控制
必须指出的是,预测更远的未来要比寿命接近尽头的预测困难。 这意味着,在实际发动机健康状态非常高的情况下(预计在故障发展为重大故障之前,发动机需要很长时间),预计模型的准确性会更差。
从上面的数据显示点球得分(点球得分较低的值更好的准确性)和观测的总百分比数据四个不同的方法,我们可以作出以下评论最终模型性能新引擎数据:
问题:
考虑到类似喷气发动机样本上各种传感器的故障测量结果,估计在相同时间段内测量同一传感器的新喷气发动机的剩余使用寿命(RUL)。
解:
改善:
算法改进
[1] T. Wang, J. Yu, D. Siegel, J. Lee, “A similarity-based prognostics approach for remaining useful life estimation of engineered systems”, Proc. Int. Conf. Prognostics Health Manage., pp. 1–6, Oct. 2008
[2] Chao Hu, Byeng D. Youn, Pingfeng Wang, Joung Taek Yoon,
“Ensemble of data-driven prognostic algorithms for robust prediction of remaining useful life”, Reliability Engineering & System Safety, Volume 103, 2012, Pages 120–135, ISSN 0951–8320, https://doi.org/10.1016/j.ress.2012.03.008.