当数据到达时更新RUL预测

这个例子展示了如何在新数据从被测机器到达时更新RUL预测。在这个例子中,您使用一个训练数据集合来训练一个RUL模型。然后从一台机器上循环测试数据序列,更新每个新数据点的RUL预测。该实例展示了随着新数据的出现,RUL预测的演变过程。

这个示例使用exponentialDegradationModel。对于降解RUL模型,当一个新的数据点变为可用,必须先预测新的RUL值之前更新退化模型。对于其他RUL模型类型,请跳过此更新步骤。

用于训练和预测的数据

加载此示例中的数据,它由两个变量,TestDataTrainingData

负载UpdateRULExampleData

TestData是包含某个条件指示符的值的表,条件,每小时记录一次,就像最初的几条记录所显示的那样。

头(TESTDATA,5)
ans =5×2表时间条件为1 1.0552 2 1.2013 3 0.79781 4 1.09 5 1.0324

TrainingData表的单元格数组是否具有与?相同的变量TestData。在每个单元TrainingData表示条件指示器向失败的演化条件在一个机器中的合奏的寿命。

火车预测模型

使用TrainingData培养一个exponentialDegradationModelRUL预测模型。的适合命令根据其中的历史记录估计模型参数的先验TrainingData。的之前训练的模型的属性包含模型参数θ,βρ。(有关这些模型参数的详细信息,请参阅exponentialDegradationModel。)

mdl = exponentialDegradationModel (“LifeTimeUnit”,“小时”);配合(MDL,TrainingData,“时间”,“条件”)mdl.Prior
ans =结构体字段:西塔:0.6389 ThetaVariance:0.0661 Beta版:0.0583 BetaVariance:1.8383e-04的Rho:-0.3129

初始斜率在条件指示符测量结果中出现后,降解模型是最可靠的降解跟踪。0.1设置斜率检测水平告诉模型不作RUL预测直到达到斜率。(当你事先知道测量是其分解已启动的组件,您可以禁用由设置斜率检测mdl。SlopeDetectionLevel = []。)

mdl。SlopeDetectionLevel = 0.1;

预测每个时间步的RUL

定义一个阈值条件指示器值,该值指示机器的寿命结束。RUL是测试机器的条件指示器达到此阈值之前的预测时间。

阈值= 400;

对于RUL预测,假设TestData从时间开始t= 1小时,和一个新的数据样本变得可用每隔一小时。在一般情况下,你可以预测每一个新的数据点的新的RUL值。对于本实施例的劣化模型,通过循环TestData方法使用每个新数据点更新模型更新命令。然后,检查模型是否检测斜率可靠RUL预测的足够变化。如果是这样,使用预测新RUL值predictRUL命令。为了观察估计的演化,将估计的RUL值和相关的置信区间存储在向量中EstRULCI,分别。类似地,将模型参数存储在数组中ModelParameters

N =身高(TestData);EstRUL =小时(0 (N, 1));CI =小时(0 (N, 2));ModelParameters = 0 (N, 3);t = 1:N CurrentDataSample = TestData(t,:);更新(mdl,CurrentDataSample)模型参数(t,:) = [mdl]。θmdl。βmdl。ρ];只有当数据表明斜率发生变化时才计算RUL。如果~isempty(mdl. slopedetectioninstant) [EstRUL(t),CI(t,:)] = predictRUL(mdl,CurrentDataSample,threshold);结束结束

绘制估计的模型参数值的轨迹。在降解的数据中检测的斜率之后的值快速变化。他们往往汇聚更多的数据点变得可用。

时间=小时(1:N)';TSTART = mdl.SlopeDetectionInstant;%斜率检测时间瞬间情节(时间,ModelParameters);持有情节([tStart, tStart], [1、2],“k——”)图例({“\θ(t)”,“\β(t)”,“\ρ(t)”,“检测瞬时斜率”},'位置',“最佳”)保持

绘制预测的RUL以观察其随更多降解数据的变化。在退化数据中检测到坡度之前,没有新的RUL估计数。在那之后,预期的RUL会像预期的那样随着时间的推移而减少。predictRUL计算RUL值的统计分布。预测的RUL的置信区间随着时间的推移窄。

情节(时间、EstRUL“b -”、时间、CI、“c”(tStart)、tStart EstRUL(小时),'R *')标题("估计时间t ")xlabel(“t”)ylabel(“估计原则”)图例({“预测原则”,“信心绑定”,“信心绑定”,“检测瞬时斜率”})

另请参阅

||

相关话题