1.运行效果:利用动态时间规整(DTW)技术实现对机械寿命预测(基于NASA C-MAPSS数据的剩余使用寿命RUL预测,Python代码,DTW不属于深度学习,但预测效果更_哔哩哔哩_bilibili
库配置
2。DTW内容
动态时间规整(DTW)是机器学习和时间序列分析的一部分。DTW是一种用于测量两个时间序列之间相似度的技术。它可以用于时间序列分类、聚类、匹配等机器学习任务中。
DTW的主要思想是考虑时间序列之间在不同时间步长下的相似性,而不仅仅是简单地比较它们的点对点距离。这使得DTW在处理时间序列数据时非常有用,因为它可以应对时间序列之间长度不同、速度不同等问题。
DTW在很多领域都有应用,包括语音识别、手写体识别、生物信息学、金融分析等。在机器学习中,DTW可以用于构建时间序列模型、异常检测、时间序列预测等任务。
3.数据来源(NASA数据集) https://www.nasa.gov/intelligent-systems-division
数据文件夹
数据介绍:
当前基于机器学习的剩余寿命预测方法的研究异常火爆,其中C-MAPSS数据集在该领域的使用非常广泛,为了方便各位同仁的学习和理解,借此文章向大家简单介绍一下。
1)首先说明,C-MAPSS数据集为模拟数据。这是由于航空发动机的构造复杂,其气路变化复杂多变;并且航空发动机的运行数据通常作为各个航空公司的保密数据,一般不易获取。因此由NASA使用Commercial Modular Aero-Propulsion System Simulation软件生成了该套数据集,其目的是结合发动机的运行特点,来测试不同的模型性能。
2)NASA提出的涡扇引擎退化监测数据集(C-MPASS)的结构简图如下所示。主要构件包含风扇、低压压气机(LPC)、高压压气机(HPC)、燃烧室、高压涡轮(HPT)、低压涡轮(LPT)及其喷管。
其子数据集共四个,每个子类都有不同数量的工况条件和故障状态。C-MAPSS数据如下图所示
当前的论文研究中,主要以单工况、单故障状态的FD001数据集为主(笔者认为该数据集相对简单,相比于多工况数据,不需要额外的数据处理)。以FD001为例,其进一步分为训练和测试子集,其包含1种故障状态和1种工况。训练集Train_FD001.txt收录了100台保持全寿命循环状态的发动机参数信息;测试集Test_FD001.txt收录了100台非全寿命循环状态的发动机参数信息,即仅包含发动机故障前某个时间终止的多个传感器数据,根据给定的运行参数对每台发动机的RUL进行实时的预测;RUL_FD001.txt中收录了测试集中100台发动机的RUL真实值。每台发动机的参数信息包含3种工作状况监测参数(飞行高度,马赫数,油门杆角度)和21个性能监测参数,其24个传感器监测参数如下图所示。
3.整体代码的流程
导入所需的Python库。
读取训练集(
train_df1)、测试集(test_df1)和真实寿命数据(truth_df1)对训练集进行标签贴附,计算剩余使用寿命(RUL)
对训练数据和测试数据进行归一化处理,使用
MinMaxScaler去除部分无意义列
选择特定的监控数据列
使用PCA对监控数据进行降维,保留主成分
使用支持向量回归(SVR)对训练数据和测试数据进行平滑处理
使用动态时间规整(DTW)距离计算训练数据和测试数据之间的相似性
进行异常值去除,排除可能的异常数据点
实现寿命预测模型,计算预测的RUL
计算模型的性能指标,包括均方根误差(RMSE)、平均绝对误差(MAE)、均方根百分比误差(MAPE)等
绘制预测结果图表,包括预测曲线和误差直方图
输出预测结果到CSV文件中
4.效果
整体文件夹
CMaps是数据集文件夹
RUL_pred表格存的是DTW.py运行完测试集的预测值
RUL_true表格存的是DTW.py运行完测试集的真实值
效果图
# 去除标记列,仅留下有用的监控数据
测试集的预测效果
测试集的误差直方图