暂存
This commit is contained in:
206
main.adoc
206
main.adoc
@@ -1,5 +1,5 @@
|
|||||||
= 基于 MEMS 和 CNN 的边缘计算振动检测节点
|
= 基于 MEMS 和 CNN 的振动筛故障检测设备
|
||||||
// 基于 MEMS 和 CNN 的振动筛工况检测设备
|
// 基于 MEMS 和 CNN 的振动筛故障检测设备
|
||||||
曹王仁博 <cao.wangrenbo@yandex.com>
|
曹王仁博 <cao.wangrenbo@yandex.com>
|
||||||
2024.03.11
|
2024.03.11
|
||||||
:toc: auto
|
:toc: auto
|
||||||
@@ -7,15 +7,15 @@
|
|||||||
|
|
||||||
== 摘要
|
== 摘要
|
||||||
|
|
||||||
随着物联网 (IoT) 和工业 4.0 的快速发展,对实时监测和分析振动数据的需求不断增长。传统的振动监测系统通常依赖于中心服务器进行数据处理,这会带来延迟和数据传输成本高昂的问题。为了解决这些问题,本文提出了一种基于卷积神经网络 (CNN) 和微机电系统 (MEMS) 的边缘计算振动检测设备。该设备通过采用 MEMS 技术的加速度传感器和温湿度传感器,采集被测对象的相关振动数据和温度信息,并通过快速傅里叶变换获取振动信号的频域特征。将采集到的三轴加速度计的时域或频域数据通过卷积神经网络获得能检测被测对象工况的分类模型,并通过 cube-ai 工具将模型转化压缩并部署到基于微控制器的边缘计算振动检测节点上。该节点具有自动工况识别,基于工业现场总线和蓝牙数据回传的功能。通过该设备,能够实现简化的工况辨识,无需针对特定设备人工设定辨识特征,并可作为兼容的 Modbus 传感器或者 BLE 节点被动查询或主动上报相关数据。实现低成本、易部署的振动检测。
|
随着物联网 (IoT) 和工业 4.0 的快速发展,对实时监测和分析振动数据的需求不断增长。传统的振动监测系统通常依赖于中心服务器进行数据处理,这会带来延迟和数据传输成本高昂的问题。为了解决这些问题,本文提出了一种基于卷积神经网络 (CNN) 和微机电系统 (MEMS) 的边缘计算振动筛故障检测设备。该设备通过采用 MEMS 技术的加速度传感器和温湿度传感器,采集被测对象的相关振动数据和温度信息,并通过快速傅里叶变换获取振动信号的频域特征。将采集到的三轴加速度计的时域或频域数据通过卷积神经网络获得能检测被测对象工况的分类模型,并通过 cube-ai 工具将模型转化压缩并部署到基于微控制器的边缘计算振动检测节点上。该节点具有自动工况识别,基于工业现场总线和蓝牙数据回传的功能。通过该设备,能够实现简化的工况辨识,无需针对特定设备人工设定辨识特征,并可作为兼容的 Modbus 传感器或者 BLE 节点被动查询或主动上报相关数据。实现低成本、易部署的振动检测。
|
||||||
|
|
||||||
关键词:振动监测、边缘计算、CNN、MEMS
|
关键词:振动筛、故障监测、边缘计算、CNN、MEMS
|
||||||
|
|
||||||
== Abstract
|
== Abstract
|
||||||
|
|
||||||
With the rapid development of the Internet of Things (IoT) and Industry 4.0, there is a growing need for real-time monitoring and analysis of vibration data. Traditional vibration monitoring systems typically rely on a central server for data processing, which introduces problems with latency and high data transmission costs. To address these issues, this paper proposes an edge computing vibration detection device based on convolutional neural networks (CNN) and microelectromechanical systems (MEMS). The device collects relevant vibration data and temperature information of the measured object through acceleration sensors and temperature and humidity sensors using MEMS technology, and obtains the frequency domain characteristics of the vibration signal through fast Fourier transform. Use the collected time domain or frequency domain data of the three-axis accelerometer through a convolutional neural network to obtain a classification model that can detect the working conditions of the measured object, and use the cube-ai tool to convert, compress and deploy the model to a microcontroller-based Edge computing vibration detection node. The node has automatic working condition recognition and is based on industrial fieldbus and Bluetooth data return functions. Through this device, simplified working condition identification can be achieved without the need to manually set identification characteristics for specific equipment, and it can be used as a compatible Modbus sensor or BLE node to passively query or actively report relevant data. Enable low-cost, easy-to-deploy vibration detection.
|
With the rapid development of the Internet of Things (IoT) and Industry 4.0, there is a growing need for real-time monitoring and analysis of vibration data. Traditional vibration monitoring systems typically rely on a central server for data processing, which introduces problems with latency and high data transmission costs. To address these issues, this paper proposes an edge computing vibrating screen fault detection device based on convolutional neural network (CNN) and microelectromechanical systems (MEMS). The device collects relevant vibration data and temperature information of the measured object through acceleration sensors and temperature and humidity sensors using MEMS technology, and obtains the frequency domain characteristics of the vibration signal through fast Fourier transform. Use the collected time domain or frequency domain data of the three-axis accelerometer to obtain a classification model that can detect the working conditions of the measured object through a convolutional neural network, and use the cube-ai tool to convert, compress and deploy the model to a microcontroller-based Edge computing vibration detection node. The node has automatic working condition recognition and is based on industrial fieldbus and Bluetooth data return functions. Through this device, simplified working condition identification can be achieved without the need to manually set identification characteristics for specific equipment, and it can be used as a compatible Modbus sensor or BLE node to passively query or actively report relevant data. Enable low-cost, easy-to-deploy vibration detection.
|
||||||
|
|
||||||
Keywords: vibration monitoring, edge computing, CNN, MEMS
|
Keywords: vibrating screen, fault monitoring, edge computing, CNN, MEMS
|
||||||
|
|
||||||
== 绪论
|
== 绪论
|
||||||
|
|
||||||
@@ -39,11 +39,11 @@ Keywords: vibration monitoring, edge computing, CNN, MEMS
|
|||||||
|
|
||||||
=== 论文结构
|
=== 论文结构
|
||||||
|
|
||||||
== 基于 MEMS 和 CNN 的边缘计算振动监测节点总体方案
|
== 基于 MEMS 和 CNN 的振动筛故障检测设备总体方案
|
||||||
|
|
||||||
=== 总体技术架构
|
=== 总体技术架构
|
||||||
|
|
||||||
基于 MEMS 和 CNN 的边缘计算振动监测节点的总体技术架构,主要包括感知层、处理层和传输层三个核心部分。
|
基于 MEMS 和 CNN 的振动筛故障检测设备的总体技术架构,主要包括感知层、处理层和传输层三个核心部分。
|
||||||
|
|
||||||
image::doc_attachments/2024-03-29T09-55-39-990Z.png[总体技术架构]
|
image::doc_attachments/2024-03-29T09-55-39-990Z.png[总体技术架构]
|
||||||
|
|
||||||
@@ -126,7 +126,7 @@ image::doc_attachments/2024-03-30T01-28-57-237Z.png[节点硬件结构框图]
|
|||||||
|
|
||||||
- 电源模块采用常见的开关电源和低压差线性稳压器的组合方式,满足宽电压输入和高效率转换的需求,结合防反接,防过压保护和 ESD 防护电路,能够有效的满足稳定、安全、低成本的电源供应需求。
|
- 电源模块采用常见的开关电源和低压差线性稳压器的组合方式,满足宽电压输入和高效率转换的需求,结合防反接,防过压保护和 ESD 防护电路,能够有效的满足稳定、安全、低成本的电源供应需求。
|
||||||
|
|
||||||
== 基于 MEMS 和 CNN 的边缘计算振动监测节点的硬件设计
|
== 基于 MEMS 和 CNN 的振动筛故障检测设备的硬件设计
|
||||||
|
|
||||||
=== LIS3DH 型加速度传感器单元及其电路设计
|
=== LIS3DH 型加速度传感器单元及其电路设计
|
||||||
|
|
||||||
@@ -320,7 +320,7 @@ image::doc_attachments/2024-03-26T08-58-51-017Z.png[XC6206 典型应用电路]
|
|||||||
|
|
||||||
设计上选用 1uF 的低 ESR 陶瓷电容,尽可能的靠经放置在芯片的输入和输出引脚附近。
|
设计上选用 1uF 的低 ESR 陶瓷电容,尽可能的靠经放置在芯片的输入和输出引脚附近。
|
||||||
|
|
||||||
=== 基于 MEMS 和 CNN 的边缘计算振动监测节点 PCB 设计
|
=== 基于 MEMS 和 CNN 的振动筛故障检测设备 PCB 设计
|
||||||
|
|
||||||
为了保证设计对于振动、温度变化等环境的耐受性以及生产时的一致性,整体电路采用印刷电路板(PCB)制作。PCB 的器件布局,功率、信号线的布置对于产品性能有着不可忽视的影响,因此需要对 PCB 进行合理设计。
|
为了保证设计对于振动、温度变化等环境的耐受性以及生产时的一致性,整体电路采用印刷电路板(PCB)制作。PCB 的器件布局,功率、信号线的布置对于产品性能有着不可忽视的影响,因此需要对 PCB 进行合理设计。
|
||||||
|
|
||||||
@@ -354,7 +354,98 @@ image::doc_attachments/2024-04-06T06-05-45-990Z.png[PCB 底层视图]
|
|||||||
|
|
||||||
// 待插入图片
|
// 待插入图片
|
||||||
|
|
||||||
== 基于 MEMS 和 CNN 的边缘计算振动监测节点的程序开发
|
== 基于 CNN 的振动筛故障检测分类模型设计
|
||||||
|
|
||||||
|
//选用 2D-CNN 的原因
|
||||||
|
=== 神经网络类型的选取
|
||||||
|
|
||||||
|
本设计针对的设备振动模型,主要特征为同一工况下振动波形比较稳定,呈现较强的周期性。在功能需求上看,主要需要完成的是三轴加速度计数据到各类工况的置信度的映射,属于较为典型的时间序列分类模型,典型应用为人类活动识别 (HAR)。
|
||||||
|
|
||||||
|
传统上,这类时间序列分类任务主要依靠信号处理领域的方法来处理数据,这种方式需要具有该领域较强的专业知识,并且严重依赖于启发式的特征提取(例如传统上电机利用振动数据进行故障辨识的方式)。传统方法只能提取浅层特征,从而导致无人监督和增量任务的性能下降,导致模型的准确性和泛化能力较差。
|
||||||
|
|
||||||
|
//Reference: J. Wang, Y. Chen, S. Hao, X. Peng 和 L. Hu, 《Deep learning for sensor-based activity recognition: A survey》, Pattern Recognition Letters, 卷 119, 页 3–11, 3 月 2019, doi: 10.1016/j.patrec.2018.02.010.
|
||||||
|
|
||||||
|
当前使用深度学习方法实现时间序列分类的方法中,主要提出了基于循环神经网络 (RNN)、长短期记忆网络 (LSTM)、卷积神经网络 (CNN) 的独立、组合或者变体形式搭建的网络结构。就各网络特征而言,循环神经网络和长短期记忆网络适合识别具有自然顺序的短期活动,而卷积神经网络能够提取数据中的深层特征,更适合具有稳定特征的长期活动。对于本设计而言,考虑到部署设备的计算能力和运行空间有线,仅采用顺序结构的卷积神经网络 (CNN) 进行验证测试。
|
||||||
|
|
||||||
|
对于进行时间序列分类的卷积神经网络而言,普遍上使用一维卷积神经网络 (1D-CNN)。在同等构型上,一维卷积神经网络的计算复杂度明显低于传统的二位卷积神经网络,并且具有更少的参数,更容易训练和部署推理。所以目前应用上,大多将一维的处理后的时间序列使用一维卷积神经网络处理,如果存在多个输入值(如采用三轴加速度计作为数据源),会将其并行的作为多个通道输入。在卷积过程中,多个通道相互独立,输入卷积层的通道个数也等于卷积层输出的通道个数。
|
||||||
|
|
||||||
|
而在一些研究中提出将多个输入值堆叠成信号图像并送入二维卷积神经网络中 (2D-CNN),在信号图像中,每个信号序列都有机会与其他序列相邻,这使得 CNN 能够提取相邻信号之间的隐藏相关性。该方法应用于人类活动识别 (HAR) 中,提出了一种使用陀螺仪、总加速度和线性加速度信号作为输入的 DCNN。footnote:[W. Jiang 和 Z. Yin, 《Human Activity Recognition Using Wearable Sensors by Deep Convolutional Neural Networks》, 收入 Proceedings of the 23rd ACM international conference on Multimedia, 收入 MM’15. New York, NY, USA: Association for Computing Machinery, 10 月 2015, 页 1307–1310. doi: 10.1145/2733373.2806333.]
|
||||||
|
|
||||||
|
在另一些研究中,直接将单轴的原始数据分成相等的长度,并拼合成一幅图像送入卷积神经网络中,该研究认为该方式进行分类效果应好于使用原始的一维信号作为输入。footnote:[W. Zhang, G. Peng 和 C. Li, 《Bearings Fault Diagnosis Based on Convolutional Neural Networks with 2-D Representation of Vibration Signals as Input》, MATEC Web Conf., 卷 95, 页 13001, 2017, doi: 10.1051/matecconf/20179513001.]
|
||||||
|
|
||||||
|
// 插图片
|
||||||
|
|
||||||
|
考虑到本设计中相邻时间的三轴加速度数据之间的特征可能有助于对于设备工况进行分类任务,故选二维卷积神经网络。本设计中仅有三轴加速度数据,输入网络的张量大小为:stem:[float32[?,W,3,1]]。其中 W 为采样窗口宽度,图像高度为 3,输入通道数为 1。
|
||||||
|
|
||||||
|
|
||||||
|
//训练数据准备
|
||||||
|
=== 训练数据的采集和标注
|
||||||
|
本设计中送入 CNN 进行识别的数据主要是由 LIS3DH 加速度传感器获取的 x、y、z 三轴的加速度数据。准备训练数据的主要过程如下。
|
||||||
|
|
||||||
|
* 从下位机接收上传的含有三轴加速度数据的数据包。将数据包解包,并转换成 ASCII 编码以供训练和阅读。将三轴加速度数据逐条储存在文本文件中,以逗号分隔,每个时间点一行。该过程中需要令被测设备保持一种工况,数据以数据流的形式上传并保存。上传的数据需要保证采样时间间隔相等,且在时间上连续。三轴加速度数据在时间上对齐。
|
||||||
|
|
||||||
|
* 采集到足够多的数据之后,需要对数据进行标注。由于采集过程中令被测设备保持同一类型的工况,因此每次采集的数据为同一类。
|
||||||
|
|
||||||
|
=== 训练数据的滤波处理
|
||||||
|
|
||||||
|
//滤波器预处理
|
||||||
|
MEMS 加速度计的测量误差包括确定性误差和随机性误差。由于机械噪声和电子噪声等随机干扰引起的复杂随机干扰无法通过标定消除,是干扰测量数据准确性的主要因素。但是本设计中由于需要针对设备故障进行检测,如果滤波器选择不当,如故障信号频率位于滤波器的阻带区,或者时域上的特征信号被滤波器平滑处理,会导致工况识别的准确性大大下降,因此谨慎选择滤波器类型和参数至关重要。
|
||||||
|
|
||||||
|
由于本设计主要针对振动筛故障检测,常见振动筛工作频率普遍在 100Hz 以下,时域波形比较平滑,并且频域上故障信息往往混杂在噪声信号中,所以选取滤波器时主要考虑对于时域滤波整形的性能问题。在时域滤波场景中,通常使用滑动平均或者一阶递归实现。在阶跃响应下,递归滤波器的波形更加平滑,同时由于数据量较少,处理速度要求高,所以选择计算更快的一阶递归滤波器,通频带在低频区域,符合加速度计数据特性。滤波器的算法公式如下。
|
||||||
|
|
||||||
|
[stem]
|
||||||
|
++++
|
||||||
|
Y(n) = (1-\alpha) * Y(n - 1) + {\alpha}X(n)
|
||||||
|
|
||||||
|
++++
|
||||||
|
其中:
|
||||||
|
|
||||||
|
stem:[\alpha] —— 滤波系数
|
||||||
|
|
||||||
|
stem:[X(n)] —— 本次采样值
|
||||||
|
|
||||||
|
stem:[Y(n-1)] —— 上次滤波输出值
|
||||||
|
|
||||||
|
stem:[Y(n)] —— 本次滤波输出值
|
||||||
|
|
||||||
|
根据现场情况调整滤波系数值,保证数据平滑且滞后程度较低。
|
||||||
|
|
||||||
|
=== 训练数据的采样
|
||||||
|
//加窗滑动采样,选择窗口大小和重叠
|
||||||
|
使用卷积神经网络进行时间序列分类任务需要较多的训练数据以便获得较好的泛化能力。本设计中采样的数据为连续等间隔采样值,为了进行训练和推理,需要将数据划分为指定大小的数据段。本设计中采用滑动窗口采样的方式创建输入数据。
|
||||||
|
|
||||||
|
使用滑动窗口采样,需要指定窗口大小和重叠程度。在试验阶段,选取滑动窗口大小为 90 个采样点,重叠度为 50%。
|
||||||
|
|
||||||
|
=== 训练数据的标准化
|
||||||
|
//标准化
|
||||||
|
标准化 (Normalization) 是深度学习中重要的预处理手段,由于 CNN 中采用了梯度下降算法,为避免梯度爆炸问题,需要进行标准化操作。同时进行标准化操作还能够便于使用他人的超参数进行训练,同时能提高模型的精度和泛化能力。
|
||||||
|
|
||||||
|
一般来说,卷积神经网路偏好于标准化到 [-1.0, 1.0] 范围,本文中由于采样加速度数据具有正负方向,故以加速度 0 值作为标准化零点。
|
||||||
|
|
||||||
|
标准化有多种策略,常见方法有 min-max 标准化 (Min-max Normalization)、z-score 标准化 (zero-mean Normalization)、atan 反正切函数标准化。
|
||||||
|
|
||||||
|
本设计中使用 z-score 标准化方法,这种方法给予原始数据的均值 (mean) 和标准差 (standard deviation) 进行数据的标准化。经过处理的数据符合标准正态分布。其转化函数如下。
|
||||||
|
|
||||||
|
[stem]
|
||||||
|
++++
|
||||||
|
x^*=(x - \overline{x})/\sigma
|
||||||
|
++++
|
||||||
|
|
||||||
|
=== 训练数据的划分
|
||||||
|
//划分
|
||||||
|
处理后的数据需要进行划分,本设计中将处理后的数据划分为训练集和验证集,其中训练集占比 80%,测试集为 20%。划分完成后需要保证每种标签数据占比均匀。
|
||||||
|
|
||||||
|
//骨干网络设计
|
||||||
|
=== 骨干网络设计
|
||||||
|
|
||||||
|
==== 卷积层
|
||||||
|
==== 池化层
|
||||||
|
==== 全连接层
|
||||||
|
//超参数设计,学习率、损失函数
|
||||||
|
|
||||||
|
//导出 h5fd
|
||||||
|
|
||||||
|
== 基于 MEMS 和 CNN 的振动筛故障检测设备的程序开发
|
||||||
|
|
||||||
为了实现本设计的设计需求,程序开发主要分为三个部分。分别是基于 GD/STM32F405 的主控程序、基于 CH582F 的蓝牙主控程序、以及简单的上位机数据采集和标注程序。三部分的功能和关系如下图所示。
|
为了实现本设计的设计需求,程序开发主要分为三个部分。分别是基于 GD/STM32F405 的主控程序、基于 CH582F 的蓝牙主控程序、以及简单的上位机数据采集和标注程序。三部分的功能和关系如下图所示。
|
||||||
|
|
||||||
@@ -362,7 +453,7 @@ image::doc_attachments/2024-04-06T03-32-14-767Z.png[]
|
|||||||
|
|
||||||
由于采用了卷积神经网络 (CNN) 作为工况识别的方式,考虑到控制板运算性能有限,不适合进行模型训练。所以部署该设备需要分两部分完成,即先采集传感器数据并送至上位机处理,在上位机中将数据格式化,并按照对应工况进行数据标注。标注完成后,使用基于 Keras 框架的 卷积神经网络 (CNN) 进行训练,生成权重数据。由于生成的权重数据体积较大,并且主控设备没有直接对应的推理框架,所以需要使用 Cube-AI 工具进行模型的压缩和转换,以部署到边缘计算主控上。对于边缘计算主控,无论是数据采集阶段,还是推理运行阶段,都需要有对应传感器的设备层驱动、数据预处理过程以及通信模块。当处于推理运行阶段时,下位机主控采集并预处理的数据除了在调试模式中继续发往上位机,还会裁切成对应大小和维度的片段送入 CNN 推理模块中,并获得不同工况的置信度输出。主控将数据暂存并按照格式打包,发送给蓝牙主控和供 Modbus 模块调用,以便实现数据的有线/无线被动查询、无线主动上报功能。对于蓝牙主控,需要实现能解析从主控发送的数据包的板内通信模块,以及蓝牙协议栈。对于数据采集上位机,需要实现和下位机串口通、数据解包和格式化、数据加标签等功能。
|
由于采用了卷积神经网络 (CNN) 作为工况识别的方式,考虑到控制板运算性能有限,不适合进行模型训练。所以部署该设备需要分两部分完成,即先采集传感器数据并送至上位机处理,在上位机中将数据格式化,并按照对应工况进行数据标注。标注完成后,使用基于 Keras 框架的 卷积神经网络 (CNN) 进行训练,生成权重数据。由于生成的权重数据体积较大,并且主控设备没有直接对应的推理框架,所以需要使用 Cube-AI 工具进行模型的压缩和转换,以部署到边缘计算主控上。对于边缘计算主控,无论是数据采集阶段,还是推理运行阶段,都需要有对应传感器的设备层驱动、数据预处理过程以及通信模块。当处于推理运行阶段时,下位机主控采集并预处理的数据除了在调试模式中继续发往上位机,还会裁切成对应大小和维度的片段送入 CNN 推理模块中,并获得不同工况的置信度输出。主控将数据暂存并按照格式打包,发送给蓝牙主控和供 Modbus 模块调用,以便实现数据的有线/无线被动查询、无线主动上报功能。对于蓝牙主控,需要实现能解析从主控发送的数据包的板内通信模块,以及蓝牙协议栈。对于数据采集上位机,需要实现和下位机串口通、数据解包和格式化、数据加标签等功能。
|
||||||
|
|
||||||
=== 基于 MEMS 和 CNN 的边缘计算振动监测节点主控程序开发
|
=== 基于 MEMS 和 CNN 的振动筛故障检测设备主控程序开发
|
||||||
|
|
||||||
==== 程序整体架构
|
==== 程序整体架构
|
||||||
|
|
||||||
@@ -437,98 +528,13 @@ X[k+N/2]=A[k]-W_{N}^{k}B[k],k=0,1,\ldots,\frac{N}{2}-1
|
|||||||
|
|
||||||
由于采用的主控带有数字信号处理模块 (DSP),所以程序中不需要自行实现。采集到足够点数的时域数据后传入处理函数即可。
|
由于采用的主控带有数字信号处理模块 (DSP),所以程序中不需要自行实现。采集到足够点数的时域数据后传入处理函数即可。
|
||||||
|
|
||||||
==== 基于 Keras 的 CNN 训练过程
|
|
||||||
|
|
||||||
//选用 2D-CNN 的原因
|
|
||||||
===== 神经网络类型的选取
|
|
||||||
|
|
||||||
本设计针对的设备振动模型,主要特征为同一工况下振动波形比较稳定,呈现较强的周期性。在功能需求上看,主要需要完成的是三轴加速度计数据到各类工况的置信度的映射,属于较为典型的时间序列分类模型,典型应用为人类活动识别 (HAR)。
|
|
||||||
|
|
||||||
传统上,这类时间序列分类任务主要依靠信号处理领域的方法来处理数据,这种方式需要具有该领域较强的专业知识,并且严重依赖于启发式的特征提取(例如传统上电机利用振动数据进行故障辨识的方式)。传统方法只能提取浅层特征,从而导致无人监督和增量任务的性能下降,导致模型的准确性和泛化能力较差。
|
|
||||||
|
|
||||||
//Reference: J. Wang, Y. Chen, S. Hao, X. Peng 和 L. Hu, 《Deep learning for sensor-based activity recognition: A survey》, Pattern Recognition Letters, 卷 119, 页 3–11, 3 月 2019, doi: 10.1016/j.patrec.2018.02.010.
|
|
||||||
|
|
||||||
当前使用深度学习方法实现时间序列分类的方法中,主要提出了基于循环神经网络 (RNN)、长短期记忆网络 (LSTM)、卷积神经网络 (CNN) 的独立、组合或者变体形式搭建的网络结构。就各网络特征而言,循环神经网络和长短期记忆网络适合识别具有自然顺序的短期活动,而卷积神经网络能够提取数据中的深层特征,更适合具有稳定特征的长期活动。对于本设计而言,考虑到部署设备的计算能力和运行空间有线,仅采用顺序结构的卷积神经网络 (CNN) 进行验证测试。
|
|
||||||
|
|
||||||
对于进行时间序列分类的卷积神经网络而言,普遍上使用一维卷积神经网络 (1D-CNN)。在同等构型上,一维卷积神经网络的计算复杂度明显低于传统的二位卷积神经网络,并且具有更少的参数,更容易训练和部署推理。所以目前应用上,大多将一维的处理后的时间序列使用一维卷积神经网络处理,如果存在多个输入值(如采用三轴加速度计作为数据源),会将其并行的作为多个通道输入。在卷积过程中,多个通道相互独立,输入卷积层的通道个数也等于卷积层输出的通道个数。
|
|
||||||
|
|
||||||
而在一些研究中提出将多个输入值堆叠成信号图像并送入二维卷积神经网络中 (2D-CNN),在信号图像中,每个信号序列都有机会与其他序列相邻,这使得 CNN 能够提取相邻信号之间的隐藏相关性。该方法应用于人类活动识别 (HAR) 中,提出了一种使用陀螺仪、总加速度和线性加速度信号作为输入的 DCNN。footnote:[W. Jiang 和 Z. Yin, 《Human Activity Recognition Using Wearable Sensors by Deep Convolutional Neural Networks》, 收入 Proceedings of the 23rd ACM international conference on Multimedia, 收入 MM’15. New York, NY, USA: Association for Computing Machinery, 10 月 2015, 页 1307–1310. doi: 10.1145/2733373.2806333.]
|
|
||||||
|
|
||||||
在另一些研究中,直接将单轴的原始数据分成相等的长度,并拼合成一幅图像送入卷积神经网络中,该研究认为该方式进行分类效果应好于使用原始的一维信号作为输入。footnote:[W. Zhang, G. Peng 和 C. Li, 《Bearings Fault Diagnosis Based on Convolutional Neural Networks with 2-D Representation of Vibration Signals as Input》, MATEC Web Conf., 卷 95, 页 13001, 2017, doi: 10.1051/matecconf/20179513001.]
|
|
||||||
|
|
||||||
// 插图片
|
|
||||||
|
|
||||||
考虑到本设计中相邻时间的三轴加速度数据之间的特征可能有助于对于设备工况进行分类任务,故选二维卷积神经网络。本设计中仅有三轴加速度数据,输入网络的张量大小为:stem:[float32[?,W,3,1]]。其中 W 为采样窗口宽度,图像高度为 3,输入通道数为 1。
|
|
||||||
|
|
||||||
|
|
||||||
//训练数据准备
|
|
||||||
===== 训练数据的采集和标注
|
|
||||||
本设计中送入 CNN 进行识别的数据主要是由 LIS3DH 加速度传感器获取的 x、y、z 三轴的加速度数据。准备训练数据的主要过程如下。
|
|
||||||
|
|
||||||
* 从下位机接收上传的含有三轴加速度数据的数据包。将数据包解包,并转换成 ASCII 编码以供训练和阅读。将三轴加速度数据逐条储存在文本文件中,以逗号分隔,每个时间点一行。该过程中需要令被测设备保持一种工况,数据以数据流的形式上传并保存。上传的数据需要保证采样时间间隔相等,且在时间上连续。三轴加速度数据在时间上对齐。
|
|
||||||
|
|
||||||
* 采集到足够多的数据之后,需要对数据进行标注。由于采集过程中令被测设备保持同一类型的工况,因此每次采集的数据为同一类。
|
|
||||||
|
|
||||||
===== 训练数据的滤波处理
|
|
||||||
|
|
||||||
//滤波器预处理
|
|
||||||
MEMS 加速度计的测量误差包括确定性误差和随机性误差。由于机械噪声和电子噪声等随机干扰引起的复杂随机干扰无法通过标定消除,是干扰测量数据准确性的主要因素。但是本设计中由于需要针对设备故障进行检测,如果滤波器选择不当,如故障信号频率位于滤波器的阻带区,或者时域上的特征信号被滤波器平滑处理,会导致工况识别的准确性大大下降,因此谨慎选择滤波器类型和参数至关重要。
|
|
||||||
|
|
||||||
由于本设计主要针对振动筛故障检测,常见振动筛工作频率普遍在 100Hz 以下,时域波形比较平滑,并且频域上故障信息往往混杂在噪声信号中,所以选取滤波器时主要考虑对于时域滤波整形的性能问题。在时域滤波场景中,通常使用滑动平均或者一阶递归实现。在阶跃响应下,递归滤波器的波形更加平滑,同时由于数据量较少,处理速度要求高,所以选择计算更快的一阶递归滤波器,通频带在低频区域,符合加速度计数据特性。滤波器的算法公式如下。
|
|
||||||
|
|
||||||
[stem]
|
|
||||||
++++
|
|
||||||
Y(n) = (1-\alpha) * Y(n - 1) + {\alpha}X(n)
|
|
||||||
|
|
||||||
++++
|
|
||||||
其中:
|
|
||||||
|
|
||||||
stem:[\alpha] —— 滤波系数
|
|
||||||
|
|
||||||
stem:[X(n)] —— 本次采样值
|
|
||||||
|
|
||||||
stem:[Y(n-1)] —— 上次滤波输出值
|
|
||||||
|
|
||||||
stem:[Y(n)] —— 本次滤波输出值
|
|
||||||
|
|
||||||
根据现场情况调整滤波系数值,保证数据平滑且滞后程度较低。
|
|
||||||
|
|
||||||
===== 训练数据的采样
|
|
||||||
//加窗滑动采样,选择窗口大小和重叠
|
|
||||||
使用卷积神经网络进行时间序列分类任务需要较多的训练数据以便获得较好的泛化能力。本设计中采样的数据为连续等间隔采样值,为了进行训练和推理,需要将数据划分为指定大小的数据段。本设计中采用滑动窗口采样的方式创建输入数据。
|
|
||||||
|
|
||||||
使用滑动窗口采样,需要指定窗口大小和重叠程度。在试验阶段,选取滑动窗口大小为 90 个采样点,重叠度为 50%。
|
|
||||||
|
|
||||||
===== 训练数据的标准化
|
|
||||||
//标准化
|
|
||||||
标准化 (Normalization) 是深度学习中重要的预处理手段,由于 CNN 中采用了梯度下降算法,为避免梯度爆炸问题,需要进行标准化操作。同时进行标准化操作还能够便于使用他人的超参数进行训练,同时能提高模型的精度和泛化能力。
|
|
||||||
|
|
||||||
一般来说,卷积神经网路偏好于标准化到 [-1.0, 1.0] 范围,本文中由于采样加速度数据具有正负方向,故以加速度 0 值作为标准化零点。
|
|
||||||
|
|
||||||
标准化有多种策略,常见方法有 min-max 标准化 (Min-max Normalization)、z-score 标准化 (zero-mean Normalization)、atan 反正切函数标准化。
|
|
||||||
|
|
||||||
本设计中使用 z-score 标准化方法,这种方法给予原始数据的均值 (mean) 和标准差 (standard deviation) 进行数据的标准化。经过处理的数据符合标准正态分布。其转化函数如下。
|
|
||||||
|
|
||||||
[stem]
|
|
||||||
++++
|
|
||||||
x^*=(x - \overline{x})/\sigma
|
|
||||||
++++
|
|
||||||
|
|
||||||
//划分
|
|
||||||
|
|
||||||
//骨干网络设计
|
|
||||||
|
|
||||||
//超参数设计,学习率、损失函数
|
|
||||||
|
|
||||||
//导出 h5fd
|
|
||||||
|
|
||||||
==== 基于 Cube-AI 的推理模型转化和部署
|
==== 基于 Cube-AI 的推理模型转化和部署
|
||||||
|
|
||||||
==== 基于 Modbus 总线协议的程序设计
|
==== 基于 Modbus 总线协议的程序设计
|
||||||
|
|
||||||
==== 设备间数据交换程序设计
|
==== 设备间数据交换程序设计
|
||||||
|
|
||||||
=== 基于 MEMS 和 CNN 的边缘计算振动监测节点蓝牙设备程序开发
|
=== 基于 MEMS 和 CNN 的振动筛故障检测设备蓝牙设备程序开发
|
||||||
|
|
||||||
==== 设备间数据交换程序设计
|
==== 设备间数据交换程序设计
|
||||||
|
|
||||||
@@ -536,11 +542,11 @@ x^*=(x - \overline{x})/\sigma
|
|||||||
|
|
||||||
==== BLE MESH 模式程序设计 (optional)
|
==== BLE MESH 模式程序设计 (optional)
|
||||||
|
|
||||||
== 基于 MEMS 和 CNN 的边缘计算振动监测节点有效性验证(及工程集成应用)
|
== 基于 MEMS 和 CNN 的振动筛故障检测设备有效性验证(及工程集成应用)
|
||||||
|
|
||||||
=== 验证场景
|
=== 验证场景
|
||||||
|
|
||||||
=== 基于 MEMS 和 CNN 的边缘计算振动监测节点工况识别准确性验证
|
=== 基于 MEMS 和 CNN 的振动筛故障检测设备工况识别准确性验证
|
||||||
|
|
||||||
== 总结与展望
|
== 总结与展望
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user