Main Content

在云上使用漂移感知学习监控设备的健康状态

此示例描述在云上运行Monitor Equipment State of Health Using Drift-Aware Learning示例的部署版本所需的设置。本主题说明如何使用下图中的基础架构,使用增量漂移感知学习模型来自动化监控冷却系统健康状况的过程。此示例需要 Statistics and Machine Learning Toolbox™、MATLAB® Compiler SDK™、MATLAB Production Server™ 和 MATLAB Web App Server™。

infrastructure.png

下图显示了漂移感知学习的架构。该架构需要使用两个分析函数 processUnlabeledData.ctfprocessLabeledData.ctf,它们部署在 MATLAB Production Server (MPS) 上。

processUnlabeledData.ctf 加载模型,用它来预测设备的健康状态,并将传感器读数和预测值写入输出主题 processedUnlabeledprocessedLabeledData.ctf 从标注的输入主题中读取标注的数据,并使用标注的数据检查模型的漂移。然后,它将标注的数据连同漂移诊断信息一起输出到输出主题 processedLabeled

之后,部署在 Web App Server 上的仪表板读取处理后的数据。通过仪表板能够直观地检查传感器读数和模型性能。

Redis 服务器支持在已标注和未标注的组件技术文件 (CTF) 之间共享更新后的模型。

infrastructure2.png

上传传感器读数

从 Docker 化的容器启动 Kafka 服务器。

要上传传感器读数,您必须首先创建 Kafka 主题:unlabeledlabeledprocessedUnlabeledprocessedLabeled。对于此示例,您必须在 kafka.host.com 的端口号 9092 上运行 Kafka 服务器。有关使用 Kafka 服务器上传数据的更多详细信息,请参阅Streaming Data Framework for MATLAB Production Server Basics (MATLAB Production Server)

通过 uploadApp 上传读数。

Monitor Equipment State of Health Using Drift-Aware Learning示例类似,使用 unlabeledlabeled 主题通过 uploadApp2 将未标注和已标注的数据(在 UnlabeledData.matLabeledData.mat 中提供)上传到 Kafka 服务器,这些数据也作为支持文件提供。uploadApp2 可部署的存档在 Web App Server 上运行。要了解有关如何在 Web App Server 上设置可部署的存档的更多信息,请参阅Create Web App (MATLAB Compiler) 中的说明。

uploadApp_png.PNG

在部署 uploadApp2 后,点击开始流式传输。该 App 上传 60,000 个未标注的传感器读数和 6000 个已标注的传感器读数,这些读数分别存储在文件 unlabeledData.matlabeledData.mat 中。每个传感器读数每 0.1 秒采样一次。

当 App 上传未标注和已标注的数据时,上传状态灯变红。上传完成后,状态灯变绿。现在,Kafka 服务器包含任何负责维护冷却系统的人都可以访问的数据。

监控冷却系统

要开始监控冷却系统,首先必须创建可部署的存档 processUnlabeledData.ctfprocessLabeledData.ctf。要部署这两个存档,您必须运行 MATLAB Production Server。首先从 processUnlabeledData.ctf 开始,因为它将漂移感知学习模型加载到 Redis 缓存中。该模型是以增量朴素贝叶斯分类模型为基础学习器的预热增量漂移感知学习器。

创建可部署的存档 processUnlabeledData.ctf 并将其移至 MPS。

通过运行支持文件 createCTFUnlabeled.m 中的以下脚本,将 processUnlabeledData.ctf 打包到一个可部署的存档中。

kafkaHost = "kafka.host.com";
kafkaPort = 9092;

inputKS = kafkaStream(kafkaHost,kafkaPort,"unlabeled","Rows",1200,"RequestTimeout", 60,'TimestampResolution','Seconds');
outputKS = kafkaStream(kafkaHost,kafkaPort,"processedUnlabeled","Rows",1200,"RequestTimeout",60);

archive = streamingDataCompiler("processUnlabeledData",inputKS,outputKS,StateStore="LocalRedis",InitialState="initUnlabeledData");

要了解有关这些步骤的更多信息,请参阅Package Streaming Analytic Function (MATLAB Production Server)Deploy Streaming Analytic Function to Server (MATLAB Production Server)

启动 Kafka 连接器。

在端口 1234 上为 processUnlabeledData.ctf 启动 Kafka 连接器。

Windows

powershell -executionPolicy bypass -File kafka-connector-start.ps1 -out out.log -err error.log -c collector.properties -k kafka.properties -p "1234"

Linux

 chmod +x kafka-connector-start.sh
!./kafka-connector-start.sh -out out.log -err error.log -c collector.properties -k kafka.properties -p "1234"

启动 Kafka 连接器会初始化 processUnlabeledData.ctf,即上传热增量漂移感知学习器模型,并且 processUnlabeledData 可部署的存档会侦听输入主题 unlabeled 中的数据。

创建可部署的存档 processLabeledData 并将其移至 MPS。

重复上述步骤以使用支持文件 createCTFLabeled.m 创建和部署 processLabeledData.ctf,并在端口 1235 上为 processLabeledData.ctf 启动 Kafka 连接器。processLabeledData 存档开始读取已标注的数据,并在数据分布发生漂移时更新模型参数。Redis 缓存允许在两个可部署的存档之间共享模型。

打开在 Web App Server 上托管的仪表板 App。

输出主题 processedUnlabeledprocessedLabeled 包含已处理的数据。一旦处理了 processUnlabeledData.ctfprocessLabeledData.ctfprocessedUnlabeled 主题会包含传感器读数以及模型预测值,而 processLabeled 主题会包含传感器读数以及模型漂移诊断信息。

dashboard2 App 从 processedUnlabeledprocessedLabeled 主题中读取已处理的数据。该 App 在 Web App Server 上运行,按照Create Web App (MATLAB Compiler) 中的说明使用 MATLAB Web App Server 部署 dashboard2 App。

dashboard_png.PNG

在部署后,dashboard2 App 就可以开始通过流式传输上传到 Kafka 服务器的数据。您可以通过将流式传输选项设置为 On 来启动流式传输过程。

查看传感器读数选项卡,检查前两分钟收到的数据的传感器读数。

sensor_reading_png.PNG

查看模型性能选项卡,监控数据的漂移。

model_performance_png.PNG

另请参阅

|

相关主题