Python环境下基于指数退化模型和LSTM自编码器的轴承剩余寿命预测

滚动轴承是机械设备中关键的零部件之一,其可靠性直接影响了设备的性能,所以对滚动轴承的剩余使用寿命(RUL)进行预测是十分必要的。目前,如何准确地对滚动轴承剩余使用寿命进行预测,仍是一个具有挑战的课题。对滚动轴承剩余寿命评估过大或过小均存在不良后果,轴承寿命的提前截止会导致严重的事故,而提前更换轴承则会增加设备维护成本。目前建立轴承寿命预测模型需要完整寿命周期的轴承数据作为支撑,在实际运用过程中,轴承大多数安装在密封的环境中,无法对轴承的状态进行直接观察,所以拥有完整寿命周期数据的轴承是较少的,这为提高轴承寿命预测精度带来了一定困难。同时轴承实时数据采集受到传感器安装条件的限制,在某些情况下,只能等待设备运行至固定的时间点,才能采集轴承的数据,存在无法获得轴承完整寿命周期数据的问题。目前预测的主要方法是对采集的滚动轴承运行实时数据进行分析,构建机理模型、经验模型、大数据模型等做出相应判断,最后预测出轴承剩余使用寿命。

该代码为Python环境下基于指数退化模型和LSTM自编码器的滚动轴承剩余寿命预测,所用数据集为NASA FEMTO Bearing 公开数据集,试验台如下:

所用模块版本如下:

tensorflow=2.8.0
keras=2.8.0
sklearn=1.0.2

部分代码如下:

import os,time
import scipy.io
import scipy.stats
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
import tensorflow as tf
from sklearn.preprocessing import MinMaxScaler
#import sklearn.external.joblib as extjoblib
import joblib
#from sklearn.externals import joblib
import seaborn as sns
sns.set(color_codes=True)


print(tf.__version__)

#%%
#TensorFlow 设置
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2"
from numpy.random import seed
import tensorflow as tf
#tf.random.set_seed(x)
#tf.logging.set_verbosity(tf.logging.ERROR)
tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.ERROR)

from keras.layers import Input, Dropout, Dense, LSTM, TimeDistributed, RepeatVector
from keras.models import Model
from keras import regularizers


# set random seed
seed(10)
tf.random.set_seed(10) 
#set_random_seed(10)


# In[ ]:

#载入文件,并创建 RMS 数据框
PHM_path = 'PHM'
PHM_bearing_files = [os.path.join(PHM_path,file) for file in os.listdir(PHM_path)]
#定义特征提取函数
def get_FPT(h2):

    kurt_list = []
    rms_list = []
    for i,row in enumerate(h2):
        kurt = scipy.stats.kurtosis(row)
        kurt_list.append(kurt)
        rms = np.mean(row**2)**0.5
        rms_list.append(rms)
        weight = np.concatenate([np.linspace(5,   4.5, 100),
                                 np.linspace(4.5, 4,   500),
                                 np.linspace(4,   3,   2000),
                                 np.linspace(3,   3,   3000)])
        w = weight[i]
        kurt_c = kurt > np.mean(kurt_list)+w*np.std(kurt_list)
        rms_c  = rms  > np.mean(rms_list) +w*np.std(rms_list)
        if kurt_c and rms_c:
            break
    return i
    
#mat文件转换为数组
def mat_to_arr(file):
    h = scipy.io.loadmat(file)['h'].reshape(-1)
    h2 = h.reshape(-1, int(len(h)/2560))
#    print(len(h)/2560)
    rms = np.array( [np.mean(i**2)**0.5 for i in h2] )
    rms = np.convolve(rms,[0.3,0.4,0.3],mode='same')
    return h,rms


# In[ ]:
df = pd.DataFrame()   

plt.style.use(['dark_background'])

for file in PHM_bearing_files[:17]:

    h,rms = mat_to_arr(file)
    df[file[-14:-4]]=rms

df = df[['Bearing1_1','Bearing1_3','Bearing1_4']]
df=df[:-1]


print(df)
    
    
#%%
#训练集和测试集划分
train = df[0:1500]
test = df[1501:]
print("Training dataset shape:", train.shape)
print("Test dataset shape:", test.shape)


#%%

#绘图
fig, ax = plt.subplots(figsize=(14, 6), dpi=80)

cols = df.columns.values

ax.plot(train['Bearing1_1'], label='Bearing1_1', color='b', animated = True, linewidth=2)
ax.plot(train['Bearing1_3'], label='Bearing1_3', color='r', animated =True, linewidth=2)
ax.plot(train['Bearing1_4'], label='Bearing1_4', color='g', animated =True, linewidth=2)


plt.legend(loc='upper left')
ax.set_title('Bearing Sensor Training Data', fontsize=16)

plt.show()

出图如下:

工学博士,担任《Mechanical System and Signal Processing》审稿专家,担任
《中国电机工程学报》优秀审稿专家,《控制与决策》,《系统工程与电子技术》,《电力系统保护与控制》,《宇航学报》等EI期刊审稿专家。

擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
基于LSTM算法的航空发动机剩余寿命预测是一种利用长短时记忆网络模型来分析并预测航空发动机剩余寿命的方法。 LSTM算法是一种能够处理长序列依赖关系的神经网络模型,它具有记忆单元和门控机制,能够有效地捕捉时间序列中的序列依赖关系。 在航空发动机剩余寿命预测中,可以将历史的传感器数据和发动机工作状态作为输入序列,通过训练LSTM模型来学习序列的特征和关系,然后预测发动机的剩余寿命。 首先,需要对输入数据进行预处理,包括数据清洗、特征选择和归一化处理等。然后,构建LSTM模型,选择合适的网络结构,并设置适当的超参数。模型的输入是历史的传感器数据序列,输出是发动机的剩余寿命。 在训练阶段,使用已知剩余寿命的样本数据进行模型训练,通过反向传播算法来优化模型的权重。同时,可以使用一些评价指标(如均方误差)来评估模型的拟合效果,并进行模型调整和优化。 在预测阶段,将最新的传感器数据输入训练好的LSTM模型中,可以得到发动机的剩余寿命预测结果。根据预测结果可以制定合理的维修计划,避免因发动机故障带来的安全隐患和经济损失。 基于LSTM算法的航空发动机剩余寿命预测具有较高的精度和准确性,能够更好地帮助航空公司进行发动机维护管理,提高运输效率和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哥廷根数学学派

码字不易,且行且珍惜

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值