这个例子展示了如何在新数据从被测机器到达时更新RUL预测。在这个例子中,您使用一个训练数据集合来训练一个RUL模型。然后从一台机器上循环测试数据序列,更新每个新数据点的RUL预测。该实例展示了随着新数据的出现,RUL预测的演变过程。
这个示例使用exponentialDegradationModel
。对于降解RUL模型,当一个新的数据点变为可用,必须先预测新的RUL值之前更新退化模型。对于其他RUL模型类型,请跳过此更新步骤。
加载此示例中的数据,它由两个变量,TestData
和TrainingData
。
负载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
培养一个exponentialDegradationModel
RUL预测模型。的适合
命令根据其中的历史记录估计模型参数的先验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是测试机器的条件指示器达到此阈值之前的预测时间。
阈值= 400;
对于RUL预测,假设TestData
从时间开始t
= 1小时,和一个新的数据样本变得可用每隔一小时。在一般情况下,你可以预测每一个新的数据点的新的RUL值。对于本实施例的劣化模型,通过循环TestData
方法使用每个新数据点更新模型更新
命令。然后,检查模型是否检测斜率可靠RUL预测的足够变化。如果是这样,使用预测新RUL值predictRUL
命令。为了观察估计的演化,将估计的RUL值和相关的置信区间存储在向量中EstRUL
和CI
,分别。类似地,将模型参数存储在数组中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(“估计原则”)图例({“预测原则”,“信心绑定”,“信心绑定”,“检测瞬时斜率”})
exponentialDegradationModel
|predictRUL
|更新