主要内容

时间序列预测模型使用深度学习网络金宝app

这个例子展示了如何使用一个LSTM深入学习网络模型内®模型来预测剩余寿命(原则)的一个引擎。金宝app包括内部的网络仿真软件模型通过使用金宝app有状态的预测块,预测原则在每一个模拟步骤。

这个示例使用的数据涡扇发动机退化模拟数据集如[1]所述。示例使用一个训练有素的LSTM网络预测发动机的荷重软化(预见性维护),测量周期,代表各种传感器在给定时间序列数据引擎。数据用于训练网络包含100台发动机的模拟时间序列数据。每个序列都有17个可变长度的特性和对应于一个完整的运行失败(RTF)实例。如何训练网络的更多信息,参见使用深度学习Sequence-to-Sequence回归

下载数据

下载并解压缩涡扇发动机退化模拟数据集。

涡扇发动机的每个时间序列退化模拟数据集代表一个不同的引擎。每个引擎从开始未知程度的磨损和制造变化。引擎操作通常在每个时间序列的开始,并开发一个错误在某种程度上在系列。在训练集,断层生长在级到系统故障。

数据包含一个zip压缩文本文件与26列的数字,用空格分开。每一行是一个快照的数据在一个运行周期,每一列是一个不同的变量。列对应如下:

  • 列1 -单元号

  • 列2 -时间周期

  • 列3 - 5——操作设置

  • 列6-26——传感器测量1日到21日

创建一个目录来存储涡扇发动机退化模拟数据集。

dataFolder =“数据”;如果~存在(dataFolder“dir”mkdir (dataFolder);结束

下载并提取涡扇发动机退化模拟数据集。

文件名= matlab.internal.examples.downloadSuppor金宝apptFile (“nnet”,“数据/ TurbofanEngineDegradationSimulationData.zip”);解压缩(文件名,dataFolder)

准备数据

加载数据使用processTurboFanDataTrainhelper函数。的processTurboFanDataTrain函数提取的数据filenamePredictors并返回单元阵列XTrain,其中包含训练预测数据。

filenamePredictors = fullfile (dataFolder,“train_FD001.txt”);[XTrain] = processTurboFanDataTrain (filenamePredictors);

删除与常量值特性

自网络训练与特性,不为所有时间步长保持不变,功能与常量值预测步骤需要被删除。找到的数据行有相同的最小值和最大值,和删除行。

m = min ([XTrain {:}], [], 2);M = max ([XTrain {:}], [], 2);idxConstant = M = = M;i = 1:元素个数(XTrain) XTrain{我}(idxConstant:) = [];结束

规范化培训预测

规范化培训预测零均值和单位方差。计算平均值和标准偏差对所有观察,连接序列数据水平。

μ=意味着([XTrain {:}), 2);sig =性病([XTrain {}):, 0, 2);i = 1:元素个数(XTrain) XTrain{我}= (XTrain{我}-μ)。/团体;结束

为一个引擎中提取数据

在仿真软件模型金宝app中,我们只计算一个引擎的原则。在这个例子中,我们提取的9号元素XTrain并将其存储在一个变量命名SensorData。Y你可以选择其他的引擎XTrain单元阵列。SensorData是两个数组的大小17 -到- 201。每一行对应一个功能和每一列对应于传感器读数在给定的周期。

SensorData = XTrain {9};

金宝app仿真软件模型有一个相关的仿真时间,在本例中需要与发动机循环有关。出于这个原因,我们定义了一个timeseries命名EngineData,将传感器数据存储为timeseries对象,可以仿真软件中加载模型。金宝app作为默认在仿真软件仿真时间金宝app10.0和引擎运行到201年周期,时间领域的EngineData需要一个数组的大小201 - - 1值线性增加从0到10的。

时间= linspace (10201 0) ';EngineData = timeseries (SensorData、时间);

顶部面板的图显示了传感器读数从每个传感器在每个周期和底部面板显示引擎的荷重软化在单位的周期。201个周期后,引擎停止操作。注意,如果您选择另一个引擎XTrain数据,那么您需要适应时间领域的EngineData因此,作为不同数量的每个引擎运作周期。

金宝app仿真软件模型来预测原则

加载仿真软件模型金宝appRULPredictionLSTM.slx

modelName =“RULPredictionLSTM”;open_system (modelName);

RULPredictionLSTM.png

EngineData从基础工作空间使用加载吗从工作空间块。在这个例子中,介入的时间EngineData0.05。年代啊,我们的样品时间从工作空间0.05块。因此,在第一步块输出的第一行EngineData,在第二步输出第二行-对应第二发动机循环等等。如果另一个引擎选择XData块的,那么样品时间需要更新。

set_param ([modelName,“从工作区”),“SampleTime”,“0.05”);

有状态的预测块加载pretrained LSTM网络turbofanNetMAT-file原则并返回输出端口。的有状态的预测块更新网络状态的每一次预测,改善当前RUL.The的预测一半计块显示的值计算原则(在单位的引擎周期)在模拟。

RUL_sigSpec = 金宝appSimulink.HMI.SignalSpecification;RUL_sigSpec。BlockPath = 金宝appSimulink.BlockPath (“RULPredictionLSTM /状态预测”);set_param (“RULPredictionLSTM /一半计”,“绑定”RUL_sigSpec)

运行仿真

因为从MAT-file模拟读取数据,运行很快,很难效仿。减缓仿真,仿真踱步选项设置为0.5。

set_param (modelName“EnablePacing”,“上”);set_param (modelName“PacingRate”,0.5);

计算原则,运行仿真。

sim (modelName);

RULPredictionLSTMOutput.png

图显示了模型虽然它正在运行。计显示估计原则,相应的在这种情况下,到90年周期。最后的模拟,荷重软化的形式返回到基本工作空间一个数组,包含在每个模拟迭代计算的值。

这个系统可以集成在一个大的框架,例如在一个系统,不断监测发动机的状态,并采取预防措施,如果荷重软化低于给定的用户定义的值。

引用

  1. Saxena,阿凯Goebel唐西门,和尼尔·埃克伦。“损害传播为航空发动机建模run-to-failure模拟。”在预测和健康管理,2008年。2008年榜单。国际会议上1 - 9页。IEEE 2008。

另请参阅

|||

相关的话题