主要内容

exponentialDegradationModel

估计剩余使用寿命的指数退化模型

描述

使用exponentialDegradationModel为指数衰减过程建模,以估计组件的剩余使用寿命(RUL)。退化模型通过预测监控信号何时将越过预定义的阈值来估计RUL。当组件经历累积退化时,指数退化模型是有用的。有关降级模型的更多信息,请参见指数退化模型

配置一个exponentialDegradationModel对象的特定类型的组件,可以:

  • 使用有关类似组件集成(如按相同规格制造的多台机器)的健康状况的历史数据估计模型参数。要做到这一点,使用适合

  • 在基于组件降级过程的知识创建模型时指定模型参数。

一旦配置了降级模型的参数,就可以预测使用类似组件的剩余有用寿命predictRUL.有关演示使用降级模型的RUL预测的基本示例,请参见当数据到达时更新RUL预测

有关预测剩余使用寿命的一般信息,请参见剩余使用寿命预测模型

创建

描述

例子

mdl= exponentialDegradationModel创建用于估计RUL的指数衰减模型,并使用默认设置初始化该模型。

例子

mdl= exponentialDegradationModel (名称,值使用名称-值对指定用户可设置的模型属性。例如,exponentialDegradationModel (NoiseVariance, 0.5)建立一个指数退化模型,模型噪声方差为0.5.可以指定多个名称-值对。将每个属性名用引号括起来。

属性

全部展开

此属性是只读的。

的当前平均值θ参数,指定为标量。有关降级模型的更多信息,请参见指数退化模型

您可以指定θ使用名称-值对参数:

  • 创建模型。

  • 属性重置模型重新启动函数。

否则,为θ改变时,你使用更新函数。

此属性是只读的。

当前方差θ参数,指定为非负标量。有关降级模型的更多信息,请参见指数退化模型

您可以指定ThetaVariance使用名称-值对参数:

  • 创建模型。

  • 属性重置模型重新启动函数。

否则,为ThetaVariance改变时,你使用更新函数。

此属性是只读的。

的当前平均值β参数,指定为标量。有关降级模型的更多信息,请参见指数退化模型

您可以指定β使用名称-值对参数:

  • 创建模型。

  • 属性重置模型重新启动函数。

否则,为β改变时,你使用更新函数。

此属性是只读的。

当前方差β参数,指定为非负标量。有关降级模型的更多信息,请参见指数退化模型

您可以指定BetaVariance使用名称-值对参数:

  • 创建模型。

  • 属性重置模型重新启动函数。

否则,为BetaVariance改变时,你使用更新函数。

此属性是只读的。

电流之间的相关性θβ,指定为范围[-1,1]内的标量值。有关降级模型的更多信息,请参见指数退化模型

您可以指定ρ使用名称-值对参数:

  • 创建模型。

  • 属性重置模型重新启动函数。

否则,为ρ改变时,你使用更新函数。

当前截距值ϕ在降级模型中,指定为标量。有关降级模型的更多信息,请参见指数退化模型

您可以指定φ在创建模型时使用名称-值对参数。否则,为φ更改时,您估计模型之前使用适合函数。

模型参数的先验信息,指定为具有以下字段的结构:

  • θ-的平均值θ

  • ThetaVariance——方差θ

  • β-的平均值β

  • BetaVariance——方差β

  • ρ——之间的相关性θβ

可以指定的字段之前

  • 当您创建模型时。当你指定θThetaVarianceβBetaVariance,或ρ在使用名称-值对创建模型时,对应的字段之前也是集。

  • 使用适合函数。在这种情况下,先前的值是从用于拟合模型的数据中得到的。

  • 使用重新启动函数。在本例中,的当前值θThetaVarianceβBetaVariance,ρ复制到之前

  • 在模型创建后使用点符号。

有关降级模型的更多信息,请参见指数退化模型

加性噪声方差ε在降级模型中,指定为非负标量。有关降级模型的更多信息,请参见指数退化模型

您可以指定NoiseVariance

  • 在创建模型时使用名称-值对

  • 的名称-值对重新启动函数

  • 在模型创建后使用点符号

坡度检测水平,用于确定退化过程的开始,指定为范围[0,1]中的标量。这个值对应于斜率显著性t检验中的alpha值。

若要禁用坡度检测测试,请设置SlopeDetectionLevel[]

您可以指定SlopeDetectionLevel

  • 在创建模型时使用名称-值对

  • 的名称-值对重新启动函数

  • 在模型创建后使用点符号

此属性是只读的。

坡度检测时间,即检测到显著坡度的时刻,指定为标量。的更新函数在时设置此值SlopeDetectionLevel不是空的。

此属性是只读的。

最新的退化特征值提供给更新函数,指定为标量。

此属性是只读的。

初始生命周期变量值时更新函数首先在指定为标量的模型上调用。

当模型检测到一个斜率时,InitialLifeTime值更改为匹配SlopeDetectionInstant价值。

此属性是只读的。

的最新生存期变量值更新函数,指定为标量。

生命周期变量,指定为包含有效MATLAB的字符串®变量名或""

当你用适合函数,如果您的训练数据为:

  • 表格,然后LifeTimeVariable必须匹配表中的一个变量名

  • 时间表,然后LifeTimeVariable表中的一个变量名或时间变量的维度名,data.Properties.DimensionNames {1}

您可以指定LifeTimeVariable

  • 在创建模型时使用名称-值对

  • 作为一个参数适合函数

  • 在模型创建后使用点符号

生命周期变量单位,指定为字符串。

生命周期变量的单位不需要基于时间。测试组件的寿命可以用使用变量来衡量,例如行驶的距离(英里)或消耗的燃料(加仑)。

降级变量名,指定为包含有效MATLAB变量名的字符串。退化模型只有一个数据变量。

您可以指定DataVariables

  • 在创建模型时使用名称-值对

  • 作为一个参数适合函数

  • 在模型创建后使用点符号

当从数据拟合之前的值时使用并行计算的标志,指定为真正的

您可以指定UseParallel

  • 在创建模型时使用名称-值对

  • 的名称-值对重新启动函数

  • 在模型创建后使用点符号

用于记帐的附加模型信息,指定为任何数据类型或格式。模型不使用此信息。

您可以指定用户数据

  • 在创建模型时使用名称-值对

  • 在模型创建后使用点符号

对象的功能

适合 利用历史数据估计剩余寿命模型的参数
predictRUL 估计测试组件的剩余使用寿命
更新 更新退化剩余寿命模型的后验参数分布
重新启动 重置剩余的可用寿命退化模型

例子

全部折叠

负荷训练数据。

负载(“expTrainVectors.mat”

训练数据是列向量的单元格数组。每个列向量是一个组件的降级特征配置文件。

使用默认设置创建指数衰减模型。

mdl = exponentialDegradationModel;

使用训练数据训练退化模型。

fit (mdl expTrainVectors)

创建一个指数退化模型,并用已知的先验分布配置它。

mdl = exponentialDegradationModel (“θ”, 0.5,“ThetaVariance”, 0.003,...“β”, 0.3,“BetaVariance”, 0.002,...的ρ, 0.1);

指定的先验分布参数存储在之前模型的属性。

mdl。之前
ans =结构体字段:Theta: 0.5000 ThetaVariance: 0.0030 Beta: 0.3000 BetaVariance: 0.0020 Rho: 0.1000

模型的当前后验分布也被设置为匹配指定的先验分布。例如,检查相关参数的后验值。

mdl。ρ
ans = 0.1000

负荷训练数据。

负载(“expTrainTables.mat”

训练数据是由表格组成的单元格数组。每个表都是一个组件的降级特性配置文件。每个配置文件包含生命周期测量值“时间”变量和相应的退化特征的测量“条件”变量。

使用默认设置创建指数衰减模型。

mdl = exponentialDegradationModel;

使用训练数据训练退化模型。指定生命周期和数据变量的名称。

fit (mdl expTrainTables,“时间”“条件”

负荷训练数据。

负载(“expTrainTables.mat”

训练数据是由表格组成的单元格数组。每个表都是一个组件的降级特性配置文件。每个配置文件包含生命周期测量值“小时”变量和相应的退化特征的测量“条件”变量。

创建指数衰减模型,指定生命周期变量单元。

mdl = exponentialDegradationModel (“LifeTimeUnit”“小时”);

使用训练数据训练退化模型。指定生命周期和数据变量的名称。

fit (mdl expTrainTables,“时间”“条件”

负载测试数据,它是测试组件的运行到故障降级配置文件。测试数据是与训练数据具有相同寿命和数据变量的表格。

负载(“expTestData.mat”

基于退化特性限制的知识,定义一个阈值条件指示器,指示组件的寿命结束。

阈值= 500;

假设您每小时测量一次组件状态指示器,持续150小时。用每个测量值更新训练过的退化模型。然后,预测组件在150小时的剩余使用寿命。RUL是退化特性将通过指定阈值的预测时间。

t = 1:150 update(mdl,expTestData(t,:)))结束estRUL = predictRUL (mdl阈值)
estRUL =持续时间136.45人力资源

估计的RUL就在附近137小时,表示预测的总寿命为287个小时。

负载观测数据。

负载(“expTestData.mat”

对于本例,假设训练数据不是历史数据,而是组件状态的实时观测数据。

基于退化特性限制的知识,定义一个阈值条件指示器,指示组件的寿命结束。

阈值= 500;

建立一个指数退化模型,任意先验分布数据和指定的噪声方差。另外,指定观察数据的生存时间和数据变量名称。

mdl = exponentialDegradationModel (“θ”,1,“ThetaVariance”1 e6,...“β”,1,“BetaVariance”1 e6,...“NoiseVariance”, 0.003,...“LifeTimeVariable”“时间”“DataVariables”“条件”...“LifeTimeUnit”“小时”);

观察部件状态One hundred.小时,每次观测后更新退化模型。

我= 1:10 0更新(mdl expTestData(我,:));结束

One hundred.时,使用模型中存储的当前生命时间值预测组件的RUL。同时,获得与估计的RUL相关的置信区间。

estRUL = predictRUL (mdl阈值)
estRUL =持续时间221.38人力资源

估计的RUL大约是234小时,表示预测的总寿命为334个小时。

算法

全部展开

参考文献

[1] Gebraeel Nagi。“具有指数退化模式部件的传感更新剩余寿命分布”。自动化科学与工程学报.第3卷第4期,2006年,382-393页。

扩展功能

介绍了R2018a