过去,我遇到过一些预测性维护问题,其中我的历史传感器数据出现故障。使用这种数据集,您可以计算 RUL(剩余使用寿命)并相应地标记数据。这使您可以:
- 执行回归,训练以预测 RUL
- 在失败之前标记数据并尝试预测它(发出类似的通知:小心,系统将“很快”失败)。
- 标记执行多类分类的数据。与之前的步骤类似,但放置了更多标签进行预测(例如,它应该告诉您您是否处于健康、警告或接近错误状态)
顺便说一句,这次我将有没有失败的历史数据(他们没有也不会执行 RTF,Run To Failure)。我知道在系统崩溃之前的某个特定时刻,有人执行了维护程序。我确实会有最小允许的传感器值。
我如何面对这种问题,进行预测性维护并告诉他们可以稍后“稍微”执行维护而不会导致故障?我正在考虑生存分析(我以前从未做过),但我认为我不会有硬件的技术规格来显示特定部件的估计寿命。
我还没有数据,但我开始猜测我将如何面对这个问题。我创建了一个我应该期待的简单示例(使用单个传感器,我想我会有更多)。
在我的测试数据中,我在假设他们进行维护的地方放置了一条垂直线,水平线是传感器在出错之前永远不应跨越的限制。垂直绿线之后的数据是我的数据集中永远不会拥有的数据。
import matplotlib.pyplot as plt
import pandas as pd
min_s1 = 23;
replace_cycle = 20
df_1 = pd.DataFrame(data={'s1':[100,99,98,98,97,95,92,88,84,76,70,64,55,45,40,35,32,30,29,28,27,27,26,25,25,24,24,23,23]})
df_2 = pd.DataFrame(data={'s1':[99,97,98,97,96,95,91,85,80,71,65,57,49,40,35,31,28,27,27,26,26,25,25,24,23,23,23,23,23]})
df_3 = pd.DataFrame(data={'s1':[100,98,98,97,97,96,93,89,86,78,72,67,59,50,43,36,33,31,31,29,30,28,28,27,26,26,25,25,24]})
fig, ax = plt.subplots()
df_1.plot(ax=ax, style='.-');
df_2.plot(ax=ax, style='.-');
df_3.plot(ax=ax, style='.-');
plt.axhline(min_s1, color='red', linestyle='--');
plt.axvline(replace_cycle, color='green', linestyle='--');
ax.legend(['s1 registered run #1','s1 registered run #2','s1 registered run #3','s1 min value','s1 maintenance']);
