在工业领域的设备寿命预测中,在没有历史数据的基础上,往往可以假设寿命退化遵循线性、指数等规律,本例分享一下基于线性拟合的数据预测,可以结合具体工业应用进行RUL预测。
例:假设有一组能够表征设备寿命状态,且经过处理的数据,如下图:
模拟状态数据
图中,x轴表示数据采集的周期,y表示每个采集周期的状态数据值(假设该数据跟寿命有关系)。
直观看一下,数据有上升的线性趋势,因此利用线性拟合方法y=kx+b得到线性函数系数k,b.
模拟状态数据线性拟合
基于该状态数据的变化趋势,我们可以预测后续20个数据采集周期的状态变化:
后续二十个数据周期的状态趋势变化(既寿命使用情况)
在实际设备寿命预测过程中,通过设定固定状态阈值,即可预测剩余的设备工作寿命。当然实际过程需要考虑的因素很多,如用于寿命预测的状态数据如何得到,多阈值如何考虑等。
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
def linefit(Y):#线性拟合
X = np.arange(1,len(Y)+1)
z = np.polyfit(X, Y, 1)#k,b = [0.00460042,0.74567879],线性函数系数
p = np.poly1d(z)#p = 0.0046 x + 0.7457,线性函数
return z,p
测试代码:
if __name__ == '__main__':
data = pd.read_excel('*****.xlsx').values
x = np.arange(1,len(data)+1)
z, p = linefit(data)
fittedData = [p(i) for i in x]
predX = [len(data)+i for i in range(1,21)]
predY = [p(i) for i in predX]
plt.plot(predX,predY,'r--')
plt.plot(fittedData)
plt.plot(x, data)
plt.show()