exponentialDegradationModel
估计剩余使用寿命的指数退化模型
描述
使用exponentialDegradationModel
模拟指数退化过程,以估计组件的剩余使用寿命(RUL)。退化模型通过预测被监测信号何时超过预定义阈值来估计RUL。当组件经历累积退化时,指数退化模型是有用的。有关降级模型的更多信息,请参见指数退化模型.
配置exponentialDegradationModel
对象用于特定类型的组件,您可以:
使用有关相似组件集成健康状况的历史数据(例如按相同规格制造的多台机器)来估计模型参数。要做到这一点,使用
适合
.在根据您对组件退化过程的了解创建模型时指定模型参数。
一旦您配置了退化模型的参数,您就可以预测类似组件的剩余使用寿命predictRUL
.有关说明使用退化模型进行RUL预测的基本示例,请参见当数据到达时更新RUL预测.
有关预测剩余使用寿命的一般信息,请参见剩余使用寿命预测模型.
创建
属性
θ
- - - - - -的当前平均值θ参数
标量
此属性是只读的。
的当前平均值θ退化模型中的参数,指定为标量。有关降级模型的更多信息,请参见指数退化模型.
你可以指定θ
使用名称-值对参数时:
创建模型。
方法重置模型
重新启动
函数。
否则,的值θ
属性时发生的变化更新
函数。
ThetaVariance
- - - - - -的当前方差θ参数
负的标量
此属性是只读的。
的当前方差θ退化模型中的参数,指定为非负标量。有关降级模型的更多信息,请参见指数退化模型.
你可以指定ThetaVariance
使用名称-值对参数时:
创建模型。
方法重置模型
重新启动
函数。
否则,的值ThetaVariance
属性时发生的变化更新
函数。
β
- - - - - -的当前平均值β参数
标量
此属性是只读的。
的当前平均值β退化模型中的参数,指定为标量。有关降级模型的更多信息,请参见指数退化模型.
你可以指定β
使用名称-值对参数时:
创建模型。
方法重置模型
重新启动
函数。
否则,的值β
属性时发生的变化更新
函数。
BetaVariance
- - - - - -的当前方差β参数
负的标量
此属性是只读的。
的当前方差β退化模型中的参数,指定为非负标量。有关降级模型的更多信息,请参见指数退化模型.
你可以指定BetaVariance
使用名称-值对参数时:
创建模型。
方法重置模型
重新启动
函数。
否则,的值BetaVariance
属性时发生的变化更新
函数。
ρ
- - - - - -电流相关性θ而且β
0
(默认)|范围[-1,1]中的标量值
此属性是只读的。
电流相关性θ而且β,指定为范围[-1,1]中的标量值。有关降级模型的更多信息,请参见指数退化模型.
你可以指定ρ
使用名称-值对参数时:
创建模型。
方法重置模型
重新启动
函数。
否则,的值ρ
属性时发生的变化更新
函数。
φ
- - - - - -当前截距值
标量
当前截距值ϕ在退化模型中,指定为标量。有关降级模型的更多信息,请参见指数退化模型.
你可以指定φ
在创建模型时使用名称-值对参数。否则,的值φ
属性之前估计模型时,会发生变化适合
函数。
之前
- - - - - -模型参数的先验信息
结构
关于模型参数的先验信息,指定为具有以下字段的结构:
θ
-的平均值θThetaVariance
-方差θβ
-的平均值βBetaVariance
-方差βρ
-之间的相关性θ而且β.
的字段之前
:
当您创建模型时。当你指定
θ
,ThetaVariance
,β
,BetaVariance
,或ρ
在使用名称-值对创建模型时,的对应字段之前
也设置好了。使用
适合
函数。在这种情况下,先验值来自用于拟合模型的数据。使用
重新启动
函数。的当前值θ
,ThetaVariance
,β
,BetaVariance
,ρ
复制到的对应字段之前
.在模型创建后使用点符号。
有关降级模型的更多信息,请参见指数退化模型.
NoiseVariance
- - - - - -加性噪声方差
1
(默认)|负的标量
加性噪声方差ε在退化模型中,指定为非负标量。有关降级模型的更多信息,请参见指数退化模型.
你可以指定NoiseVariance
:
在创建模型时使用名称-值对
类使用名称-值对
重新启动
函数在模型创建后使用点符号
SlopeDetectionLevel
- - - - - -边坡检测等级
0.05
(默认)|范围[0,1]中的标量值|[]
坡度检测级别,用于确定退化过程的开始,指定为范围[0,1]中的标量。这个值对应于斜率显著性t检验中的alpha值。
禁用坡度检测测试,请设置SlopeDetectionLevel
来[]
.
你可以指定SlopeDetectionLevel
:
在创建模型时使用名称-值对
类使用名称-值对
重新启动
函数在模型创建后使用点符号
SlopeDetectionInstant
- - - - - -边坡检测时间
[]
(默认)|标量
此属性是只读的。
斜率检测时间,即检测到显著斜率的瞬间,用标量指定。的更新
函数设置此值SlopeDetectionLevel
不是空的。
CurrentMeasurement
- - - - - -最新退化特征值
标量
此属性是只读的。
提供给的最新退化特征值更新
函数,指定为标量。
InitialLifeTimeValue
- - - - - -初始寿命变量值
标量|持续时间
对象
此属性是只读的。
时的初始生命周期变量值更新
函数首先在作为标量指定的模型上调用。
当模型检测到一个斜率时InitialLifeTime
值更改为匹配SlopeDetectionInstant
价值。
CurrentLifeTimeValue
- - - - - -当前寿命变量值
标量|持续时间
对象
此属性是只读的。
对象提供的最新生命周期变量值更新
函数,指定为标量。
LifeTimeVariable
- - - - - -生命周期变量
""
(默认)|字符串
生命周期变量,指定为包含有效MATLAB的字符串®变量名或""
.
当你训练模型时使用适合
函数,如果你的训练数据是a:
表格
,然后LifeTimeVariable
必须匹配表中的一个变量名时间表
,然后LifeTimeVariable
表中的一个变量名或者时间变量的维度名,data.Properties.DimensionNames {1}
你可以指定LifeTimeVariable
:
在创建模型时使用名称-值对
作为参数
适合
函数在模型创建后使用点符号
LifeTimeUnit
- - - - - -寿命可变单位
""
(默认)|字符串
生命周期变量单位,以字符串形式指定。
生命周期变量的单位不需要是基于时间的。测试组件的寿命可以根据使用变量来测量,例如行驶距离(英里)或燃料消耗(加仑)。
DataVariables
- - - - - -退化变量名称
""
(默认)|字符串
退化变量名,指定为包含有效MATLAB变量名的字符串。退化模型只有一个数据变量。
你可以指定DataVariables
:
在创建模型时使用名称-值对
作为参数
适合
函数在模型创建后使用点符号
UseParallel
- - - - - -使用并行计算的标志
假
(默认)|真正的
从指定的数据中拟合先前值时使用并行计算的标志真正的
或假
.
你可以指定UseParallel
:
在创建模型时使用名称-值对
类使用名称-值对
重新启动
函数在模型创建后使用点符号
用户数据
- - - - - -附加模型信息
[]
(默认)|任何数据类型或格式
用于记帐的附加模型信息,指定为任何数据类型或格式。该模型不使用此信息。
你可以指定用户数据
:
在创建模型时使用名称-值对
在模型创建后使用点符号
对象的功能
适合 |
利用历史数据估计剩余使用寿命模型参数 |
predictRUL |
估算测试组件的剩余使用寿命 |
更新 |
更新退化剩余使用寿命模型的后验参数分布 |
重新启动 |
重置剩余使用寿命退化模型 |
例子
列车指数退化模型
加载训练数据。
负载(“expTrainVectors.mat”)
训练数据是由列向量组成的单元格数组。每个列向量都是一个组件的退化特征剖面。
创建一个默认设置的指数退化模型。
mdl =指数退化模型;
使用训练数据训练退化模型。
fit (mdl expTrainVectors)
创建已知先验的指数退化模型
创建一个指数退化模型,并配置它与已知的先验分布。
mdl =指数退化模型(“θ”, 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 =指数退化模型;
使用训练数据训练退化模型。指定生命周期和数据变量的名称。
fit (mdl expTrainTables,“时间”,“条件”)
用指数退化模型预测RUL
加载训练数据。
负载(“expTrainTables.mat”)
训练数据是由表格组成的单元格数组。每个表都是一个组件的退化特性概要文件。中的生命周期测量值组成了每个配置文件“小时”
变量和相应的退化特征测量“条件”
变量。
创建一个指数退化模型,指定寿命时间变量单位。
mdl =指数退化模型(“LifeTimeUnit”,“小时”);
使用训练数据训练退化模型。指定生命周期和数据变量的名称。
fit (mdl expTrainTables,“时间”,“条件”)
负载测试数据,这是测试组件的运行到故障降级配置文件。测试数据是一个与训练数据具有相同寿命和数据变量的表。
负载(“expTestData.mat”)
基于退化特征极限的知识,定义一个阈值条件指示器值,该值指示组件的寿命结束。
阈值= 500;
假设在150小时内每小时测量一次组件状态指示器。每次测量都更新训练好的退化模型。然后,预测组件的剩余使用寿命为150小时。RUL是退化特征将超过指定阈值的预测时间。
为update(mdl,expTestData(t,:))结束estRUL = predictRUL(mdl,阈值)
estRUL =持续时间136.45人力资源
估计的RUL在附近137
小时,表示总预测寿命287
个小时。
更新指数退化模型并预测RUL
加载观测数据。
负载(“expTestData.mat”)
对于这个例子,假设训练数据不是历史数据,而是对组件条件的实时观察。
基于退化特征极限的知识,定义一个阈值条件指示器值,该值指示组件的寿命结束。
阈值= 500;
创建一个指数退化模型任意先验分布数据和指定的噪声方差。另外,指定观测数据的寿命和数据变量名。
mdl =指数退化模型(“θ”, 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。“具有指数退化模式的组件的感官更新剩余寿命分布。”IEEE自动化科学与工程汇刊.Vol. 3, no . 4, 2006, pp. 382-393。
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
的
predictRUL
,更新
,重新启动
命令支持使用金宝appMATLAB编码器™对于这个RUL模型类型。在生成使用此模型的代码之前,必须保存使用的模型saveRULModelForCoder
.有关示例,请参见生成预测剩余使用寿命的代码.除了只读属性外,您不能在运行时更改降级模型的以下属性:
LifeTimeVariable
LifeTimeUnit
DataVariables
看到
predictRUL
有关代码生成的其他限制。
自动平行支撑金宝app
通过使用并行计算工具箱™自动并行运行计算来加速代码。
要并行计算这些模型,请设置UseParallel
财产真正的
.
版本历史
在R2018a中引入
Matlab명령
다음matlab명령에해당하는링크를클릭했습니다。
명령을실행하려면matlab명령창에입력하십시오。웹브라우저는matlab명령을지원하지않습니다。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。