主要内容

在树莓派上使用机器学习算法对旋转设备进行预测性维护

本示例展示了如何使用Simulink®支持包用于树莓派硬件,以使用机金宝app器学习算法金宝app预测和监控旋转设备的健康状况。您可以使用此示例对任何旋转设备或设备进行预测性维护,以便在它们出现故障之前进行修复。

在本例中,旋转设备的运行状态分为四种模式:停止、阻塞、正常和转子不平衡。本例使用Sense HAT屏蔽,它在8x8 RGB LED显示屏上分别显示这些操作模式为1、2、3和4。树莓派通过感知振动来确定状态,使用Sense HAT LSM9DS1 IMU传感器,在X-, Y-和z方向上。

您可以从旋转设备的振动数据中提取均值、均方根(RMS)和功率谱密度等特征,这些特征是执行进一步的数据分类和开发预测模型以识别已定义的运行模式所必需的。

另外显示数字表示设备上的运行模式8x8 RGB LED矩阵,你可以使用ThingSpeak在云中查看操作状态的平台。

先决条件

所需的硬件

  • 树莓派板

  • 任何包含活动部件的设备。本例使用旋转风扇。

  • Sense HAT护盾

  • 连接电线

  • 用于阻断设备正常运行模式的任何对象。这个例子使用了纸板。

  • 粘合剂或胶带

硬件设置

  1. 将Sense HAT屏蔽连接到树莓派硬件板上。

  2. 将整个硬件设置放在旋转设备的安全位置。使用胶水或胶带将硬件板固定在设备顶部。确保在设备震动时,没有连接的电线造成障碍物。

为训练深度学习算法准备数据集

本示例使用MATLAB®中提供的预训练的特征数据集。要加载MAT文件,在MATLAB命令窗口中运行此命令。

负载raspi_training_data_pdm.mat

观察到fullfeattable.mat在MATLAB工作区中加载文件。这个MAT文件包含为风扇提取的283 × 34的特征矩阵。这些特征表明这些特征度量什么属性(比如加速度或振动)。它们是使用在四种不同模式下运行的风扇的原始X、Y和z轴加速度数据值计算出来的。

注意,平均值存储在第1至3列中,均方根值存储在第4至6列中,功率谱密度值存储在第7至33列中。第34列定义了设备的运行模式。如果使用此MAT文件,请从配置Simulink金宝app模型和校准参数部分。或者,您可以使用IMU传感器捕获任何其他旋转设备的加速度数据。按照以下步骤,使用IMU传感器捕获和训练任何其他旋转设备的加速度数据。

A.使用加速度计进行数据采集

B.特征提取

C.建立预测模型对数据进行分类

数据采集使用加速度计

您可以使用任何IMU传感器沿X、Y和z轴获取加速度数据值。本例使用LSM9DS1 IMU传感器

为了将从IMU传感器获得的加速度数据保存在MAT文件中,首先创建一个新的Simulink模型。金宝app然后将这些块添加到模型画布中。

1.LSM9DS1 IMU传感器树莓派硬件/Sense金宝app HAT金宝app库的Simulink支持包。

2.显示,来自Simulink金宝app/Dashboard库。

3.到工作空间,来自Simu金宝applink/ sink库。

连接AccelLSM9DS1 IMU Sensor模块的端口连接到Display模块和to Workspace模块的输入端口。

配置LSM9DS1 IMU传感器块参数对话框。

1.设置董事会参数Pi 2模型B

2.设置主动传感器参数加速度计

3.设置样品时间参数0.02

该传感器每0.02秒捕获一次加速度数据。Display块显示沿X、Y和Z轴的加速度数据的1 × 3矢量输出。

配置到工作空间块参数对话框。

1.设置变量名参数raw_sensor_data

2.设置保存格式参数数组

3.设置保存二维信号为参数2-D数组(沿第一维连接)

4.设置样品时间参数0.02

硬件选项卡中的Simuli金宝appnk模型模式部分中,选择在船上跑然后点击监视和调优

在“停止”模式下进行数据采集时,请确保设备处于“关机”状态。同样,在正常模式下进行数据采集时,请将设备上电。在开机状态下,使用一块纸板或任何其他物体来阻挡设备的任何移动部分。对于转子不平衡模式,您可以移动或摇动设备的整个设置。

观察加速度数据存储在raw_sensor_data.mat文件。

LSM9DS1 IMU传感器每0.02秒捕获一次加速度数据。X-、Y-和z -缓冲区存储沿X-、Y-和z轴的加速度数据的1 × 3矢量输出。

特征提取

使用MATLAB中的代码raspberrypi_pdm_extract_features.m函数文件从您的设备的四种操作模式的原始加速数据中提取特征。该函数计算原始加速度数据的平均值、均方根(RMS)和功率谱密度,并将它们存储在的相邻列中raw_sensor_data.mat文件。该函数为每50个数据样本值计算这些特征。

在这个MATLAB函数中:

  • samplesPerObservation为IMU传感器捕获的样本数量。

  • accx_mataccy_mat,accz_mat对应从IMU传感器接收到的输入加速度数据,分别为X-、Y-和z轴。

  • featmat对应于整个特征数据集。

  • feature1feature2,feature3对应于分别为X、Y和z输入加速度数据计算的平均值。

您可以一次为一种操作模式执行此MATLAB函数并捕获特征。这些特性存储在MAT文件的第1到33列中。

为了捕获所有操作模式下的加速度数据,在MATLAB命令窗口中运行这些命令。

Extracted_features = raspberrypi_pdm_extract_features(out,1);%停止模式Extracted_features = [Extracted_features;raspberrypi_pdm_extract_features (, 2)];%块模式Extracted_features = [Extracted_features;raspberrypi_pdm_extract_features (3)];%正常模式Extracted_features = [Extracted_features;raspberrypi_pdm_extract_features (, 4)];%转子不平衡模式

开发预测模型来分类数据

分类学习者应用程序可以帮助您探索使用各种分类器的监督机器学习。使用这个应用程序,你可以探索你的数据,选择特征,指定验证方案,训练模型,并评估结果。您可以执行自动训练,以搜索应用程序的最佳分类模型类型。您可以通过提供一组已知的输入数据(观察或示例)和对数据的已知响应(如标签或类)来执行有监督的机器学习。您使用这些数据来训练一个模型,该模型生成对新数据响应的预测。要使用带有新数据的模型,或学习编程分类,可以将模型导出到工作区或生成MATLAB代码以重新创建训练过的模型。有关更多信息,请参见分类学习者App(统计和机器学习工具箱)

1.打开分类学习者应用程序,输入classificationLearner在MATLAB命令窗口中。你也可以在应用程序选项卡,在机器学习

2.在分类学习者在应用程序页,单击新会话并选择从工作空间.确保extracted_features.mat文件在MATLAB工作区中。

3.在“从工作区新建会话”对话框中,选择extracted_features.mat文件来自数据集变量列表。

4.在响应部分中,选择从数据集变量并从下拉菜单中选择MAT文件的响应列。在本例中,coulmn的名称为模式

5.在验证部分中,选择坚持验证.选择要用作验证集的数据的百分比。该应用程序在训练集上训练模型,并使用验证集评估其性能。用于验证的模型仅基于部分数据,因此坚持验证建议仅用于大数据集。最后的模型使用完整的数据集进行训练。在这个例子中,坚持的百分比设置为30..这个值表示70%的数据用于训练机器学习算法。

6.点击开始会议

7.在训练分类器之前,先训练散点图显示数据。在情节部分中,选择数据只绘制数据。

8.属性选择要绘制的特征X而且Y列表下预测.通过在散点图上绘制不同的预测因子对,选择能够很好地区分类别的预测因子输入。例如,绘制extracted_features.mat数据中,可以看到加速度数据沿z轴的RMS值和加速度数据沿y轴的平均值分别为4类,对应转子不平衡模式。绘制其他预测器,看看是否可以分离其他类。属性中的复选框可添加或删除预测器部分。

9.要创建分类模型,请在分类学习者选项卡,在模型类型节,展开图库并选择要使用数据训练的模型类型。对于本例,选择袋装的树木

10.点击火车.该应用程序为Bagged Trees模型生成一个混淆矩阵。

11.在数据上选择和训练两个或多个模型,并观察准确性(验证)为每个模型打分。通过检查他们在每节课上的表现,在你训练的学生中选择最好的模型。

12.要将模型导出到工作区,请在分类学习者选项卡,在出口部分中,点击出口模式并选择出口紧凑型.在Export Model对话框中,输入要导出模型的工作区变量的名称,然后单击好吧.本例中变量名称为ensembleclassifier.MATLAB创建一个ensembleclassifier.mat文件在示例的当前目录中。类训练的数据的袋装树分类模型的所有属性都定义在此MAT文件中分类学习者应用程序。

13.为了拯救ensembleclassifier变量,在MATLAB命令窗口中执行此命令。

保存(“ensembleclassifier.mat”“ensembleclassifier”

配置Simulink金宝app模型和校准参数

本例使用树莓派硬件的Simulink支持包中的预配置Simulink金宝app模型。金宝app打开Simulink模型金宝app,在MATLAB命令窗口中执行此命令。

open_system (“raspberrypi_predictiveMaintenance”

配置XY,Z缓冲(DSP系统工具箱)块参数对话框。

  1. 设置输出缓冲区大小参数50

  2. 设置缓冲重叠参数20.

每个缓冲区每0.02秒存储50个数据样本,对应于每个轴。

速率转移块将计算的平均值数据从accel_xaccel_y,accel_z本署的产出extractFeaturesMATLAB函数块,以一个速率运行,到ThingSpeak写块的输入,以不同的速率运行。

在三个站点中都配置这些参数率转换“块参数”对话框。

  1. 清除确保确定的数据传输(最大延迟)参数。

  2. 输出端口采样时间1

双击MATLAB函数block并将此代码复制到M文件中。

函数Label = classify_op_mode(features)%%label = 0 (1,1);mdl = loadLearnerForCoder(“raspi_trained_model_pdm.mat”);Label = predict(mdl,features);
结束

loadLearnerForCoder(统计和机器学习工具箱)函数加载训练模型。命令导出的MAT文件的名称分类学习者的参数loadLearnerForCoder函数。

使用ThingSpeak进行基于云的通信

ThingSpeak云可以帮助您从远程位置查看和监控旋转设备的运行状况。您可以在ThingSpeak云中查看旋转设备的运行模式。在这个例子中,你使用ThingSpeak写块视图并监控它通过速率转换块接收到的数据:

  • 标签的输出分类器模型函数块

  • x轴加速度数据的平均值

  • y轴加速度数据的平均值

  • z轴加速度数据的平均值

配置ThingSpeak写块参数对话框。

  1. 要发送的变量数量4

  2. 更新间隔0.1

  3. 选择打印诊断消息

按照以下步骤配置ThingSpeak通道。

  1. 登录您的ThingSpeak帐户。

  2. 选择渠道>新渠道

  3. 中输入惟一的名称的名字参数。

  4. 中输入通道的描述描述参数。

  5. 要在仪表板上显示四个参数,请选择Field1Field2Field3,Field4

  6. 输入名字预测Accelerometer_X_axisAccelerometer_Y_axis,Accelerometer_Z_axis在田野里123.,4,分别。

  7. 点击节省通道.显示的仪表板屏幕有四个部分。

  8. 在仪表盘上,在API密钥选项卡,复制关键写API密钥部分。

  9. 将此API密钥粘贴到写API密钥ThingSpeak写块参数。

数据类型转换控件接收的标签输出分类器模型的MATLAB函数块uint8用于进一步处理的数据类型。集输出数据类型uint8

8x8 RGB LED显示预测操作模式

导致输出子系统接收MotorState分类器模型MATLAB函数块。要打开子系统,在MATLAB命令窗口中运行此命令。

open_system (“raspberrypi_predictiveMaintenance / LED输出”

MotorState控件的控制输入多端口切换块。多端口开关块的这个端口的值决定了从一个常量块中选择的输出。输出是设备的预测运行模式,显示在8x8 RGB LED矩阵块。

配置多端口切换块参数对话框。

  1. 数据端口个数4

  2. 默认情况诊断没有一个

中配置8x8 RGB LED矩阵块参数对话框。

  1. 模式显示图象

在树莓派硬件上金宝app部署Simulink模型

1.在硬件选项卡中的Simuli金宝appnk模型模式部分中,选择在船上跑然后点击构建、部署和启动

2在四种不同的操作模式下操作设备:停止、正常、阻塞和转子不平衡。观察8x8 RGB LED矩阵显示相应的模式编号。

3.观察ThingSpeak频道上显示的四个实时数据部分。

另请参阅