Compare commits

..

11 Commits

10 changed files with 465 additions and 97 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

562
main.adoc
View File

@@ -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,43 +7,216 @@
== 摘要 == 摘要
随着物联网 (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
== 绪论 == 绪论
=== 课题研究背景及其意义 === 课题研究背景及其意义
随着工业技术的快速发展,振动筛作为物料分选、过滤和去杂的关键设备,在矿业、化工、食品等多个行业中扮演着至关重要的角色。然而,由于振动筛长时间运行在高强度、高负荷的工况下,其内部零部件容易发生磨损、松动或断裂等故障,这些故障不仅会导致生产效率的降低,还可能引发安全事故,给企业带来不可估量的损失。
传统的振动筛故障检测方法多依赖于人工巡检和经验判断存在检测效率低下、准确性不高、响应速度慢等问题。近年来随着微电子机械系统MEMS技术的快速发展微型化、高集成度的传感器被广泛应用于振动监测领域能够实时、准确地采集振动筛的振动信号。同时卷积神经网络CNN作为深度学习领域的重要分支以其强大的特征提取和模式识别能力在故障诊断领域展现出巨大的潜力。
因此,本课题提出“基于 MEMS 和 CNN 的振动筛故障检测设备”的研究,旨在通过 MEMS 传感器实时采集振动筛的振动信号,并利用 CNN 对采集到的信号进行深度学习和处理,实现振动筛故障的自动识别和预警。这不仅能够提高故障检测的准确性和效率,减少人工巡检的工作量和误判率,还能够及时发现潜在的安全隐患,保障生产线的稳定运行,具有较为广泛的应用前景。
==== 利用振动特征进行故障诊断研究现状
振动传感器通过测量设备的振动加速度或振动速度,将振动信号转换为电信号进行采集和分析。在设备故障诊断中,振动传感器可以实时监测设备的振动情况,并通过算法和数据分析技术提取振动信号的特征参数,如频率、振幅、相位等。这些特征参数可以反映出设备的运行状态和健康情况,为故障诊断提供重要依据。
===== 国内研究现状
朱来发等提出了一种加速度传感器的振动筛螺栓松动故障诊断系统。指出根据加速度信号图谱,以及振幅的大小分辨振动筛的故障类型的方法。
贾涛在振动筛的故障诊断及动力学分析过程中分析了振动筛滚动轴承故障特征。认为将包络信号进行频谱分析后可以观测到对应故障频率的最大谱峰以及谐波谱峰,提供了使用加速度数据进行振动筛轴承故障诊断的参考特征。
江方文在研究中使用小波系数能量特征提取,通过将不同层的小波系数能量值组合为特征向量输入故障识别系统中进行故障诊断。通过该方法可以减少单一特征量的局限性,提取不同频段内由故障产生的异常特征,可以获得较好的识别效果。
苏旭在振动筛健康状态监测方法研究中则提出将变分模态分解和多尺度排列熵相结合应用于振动筛故障特征量提取,将振动筛加速度信号进行变分模态分解,并采用频谱估计法选出含有故障信息的敏感分量,分别计算不同尺度下加速度信号的排列熵值,选取对故障敏感的尺度因子所对应的排列熵值,组成故障特征向量组,完成故障特征提取工作。
赵国瑞等使用力锤代替激振器作为激振器作为激振源,对预制裂纹的大型香蕉直线振动筛简化模型输入激励,并使用加速度传感器记录振动响应信号,通过分析响应信号的特征频率变化规律,判断裂纹的存在和发展趋势。但使用外加激振源并观测响应信号的方式必须定期停机检测,难以实现振动筛故障的在线诊断。
张凤则采用神经网络系统辨识的方式建立系统模型,然后对辨识后得出的系统模型施加激励,通过分析模型对施加激励的输出响应,能够较为准确的进行损伤检测,可以应用于实际振动筛的裂纹趋势分析上。
彭利平等提出了一种基于刚度反演的大型振动筛减震弹簧健康识别的方法。提出了利用加速度响应获取速度、位移响应的数字信号处理方法,构造系统的响应矩阵,实现了筛体自由响应反推出各减振弹簧刚度。
在生产实践中,王斌认为滚动轴承、齿轮具有规则结构,设备转速一定时,滚动轴承和齿轮具有确定的故障频率。将时域信号经滤波处理后,高频低能量信号经信号放大、快速傅里叶变换 FFT、包络处理后生成包络的频域信号监测到上述故障频率下的异常振动时可以判断故障发生的位置。
===== 国外研究现状
Barbosa 等提出了一种基于振动信号分析和高阶统计的悬臂梁故障检测与分类方法,采用 Fisher 判别比FDR进行特征选择人工神经网络进行故障检测和分类。
Kim 和 Thong 等分别提出了通过加速度和间歇位移测量的数据融合进行自主动态位移估计和噪声加速度测量的数值双积分的方式用于位移测量的方式。
Cheng 等利用虚拟原型技术建立了振动筛激励系统的动力学模型,从齿轮转心的轨迹变化、齿轮的法向啮合力以及振动加速度在垂直、水平和轴向三个方面讨论了正常齿轮副和故障齿轮副的动态特性,指出了轮齿折断故障的检测策略和识别指标。
Krot 等提出了一种基于非线性动力学模型的相空间图 (PSP) 方法在弹簧劣化(裂纹或刚度降低)情况下对振动筛进行分析的思路。
Wodecki 等认为通过分析时频标识、循环稳态、位移轨迹和 PSP 特征可以识别与不平衡轴引起的冲击相关的高振幅循环扰动以及与故障轴承相关的弱循环脉冲。该研究表明,即使在振动器的严重周期性扰动和具有非高斯分布的筛分材料碎片(脉冲噪声)的随机冲击下,也可以可靠地检测到轴承点蚀和其他局部缺陷的集中点。
Cai 等提出了一种称为包络导数算子 (EDO) 的替代能源算子方法。克服了 Teager-Kaiser 能量算子 (TKEO) 和希尔伯特变换 (HT) 由于对振动和噪声较为敏感的问题。
// ===== 国内研究现状
// // 朱来发,金花雪,范伟和刘斌,《加速度传感器的振动筛螺栓松动故障诊断系统》, 华侨大学学报 (自然科学版), 卷 45, 期 1, 页 1015, 2024.
// 朱来发等提出了一种加速度传感器的振动筛螺栓松动故障诊断系统。该系统针对 GLS10 型直线振动筛弹簧紧固螺栓松动故障,结合 LABVIEW 和 NIUSB-6363 数据采集卡进行故障诊断。指出根据加速度信号图谱,以及振幅的大小分辨振动筛的故障类型的方法。
// // 贾涛。振动筛的故障诊断及动力学分析 [D]. 西安建筑科技大学2012.
// 贾涛在振动筛的故障诊断及动力学分析过程中分析了振动筛滚动轴承故障特征。当滚动轴承工作时,其振动信号频谱图中幅值最大峰对应轴承转动工频,并且在其工频倍频位置存在幅值呈指数形式衰减的峰。当轴承内圈出现故障时,时域上存在明显的冲击特征,但是频域上并未明显的特征谱峰。将包络信号进行频谱分析后可以观测到对应故障频率的最大谱峰以及谐波谱峰。该分析提供了使用加速度数据进行振动筛轴承故障诊断的参考特征。
// // 赵国瑞,武丽,薛光辉,等。基于振动的大型香蕉直线振动筛大梁裂纹故障诊断研究 [J]. 煤炭工程2011(3): 119121.
// // 薛光辉。大型振动筛大梁裂纹故障诊断方法研究 [D]. 中国矿业大学(北京), 2010.
// 赵国瑞等使用力锤代替激振器作为激振器作为激振源,对预制裂纹的大型香蕉直线振动筛简化模型输入激励,并使用加速度传感器记录振动响应信号,通过分析响应信号的特征频率变化规律,判断裂纹的存在和发展趋势。
// 但使用外加激振源并观测响应信号的方式必须定期停机检测,难以实现振动筛故障的在线诊断。
// //张凤。基于神经网络模型的振动筛损伤检测研究 [D]. 太原理工大学2012.
// 张凤在基于神经网络模型的振动筛损伤检测研究中使用加速度传感器进行直线振动筛下横梁裂纹的故障检测。在是实际测量数据中发现由传感器测量的数据在出现裂纹时频谱特征不明显。采用神经网络系统辨识的方式建立系统模型,然后对辨识后得出的系统模型施加激励,通过分析模型对施加激励的输出响应,能够较为准确的进行损伤检测,可以应用于实际振动筛的裂纹趋势分析上。
// // 江方文。振动筛故障特征提取及监测系统的开发 [D]. 华侨大学2018.
// 江方文在振动筛故障提取计检测系统开发中使用了压电式加速度传感器进行数据采集。将加速度计 x 和 y 轴解算得到振幅,再合成得到振动筛的运动轨迹和振动的方向。此外,该研究中使用小波系数能量特征提取,通过将不同层的小波系数能量值组合为特征向量输入故障识别系统中进行故障诊断。通过该方法可以减少单一特征量的局限性,提取不同频段内由故障产生的异常特征,可以获得较好的识别效果。
// // 苏旭。振动筛健康状态监测方法研究 [D]. 华侨大学2021.
// 苏旭在振动筛健康状态监测方法研究中则提出将变分模态分解和多尺度排列熵相结合应用于振动筛故障特征量提取,将振动筛加速度信号进行变分模态分解,并采用频谱估计法选出含有故障信息的敏感分量,分别计算不同尺度下加速度信号的排列熵值,选取对故障敏感的尺度因子所对应的排列熵值,组成故障特征向量组,完成故障特征提取工作。
// //彭利平,刘初升,王宏。基于刚度反演的大型振动筛减振弹簧健康识别 [J]. 煤炭学报2016, 41(6): 15681574.
// 彭利平等提出了一种基于刚度反演的大型振动筛减震弹簧健康识别的方法。建立了减振弹簧故障下振动筛非对称动力学模型,推导了减振系统几何位置误差下振动筛空间三自由度运动的振动微分方程。提出了利用加速度响应获取速度、位移响应的数字信号处理方法,构造系统的响应矩阵,开发了减振弹簧刚度反演基本原理与方法,实现了筛体自由响应反推出各减振弹簧刚度。
// // 王斌。三轴加速度传感器在振动筛故障诊断的应用 [J]. 洁净煤技术2023, 29(S2): 683686.
// 在生产实践中,王斌提出一种三轴加速度传感器在振动筛故障诊断的应用。认为滚动轴承、齿轮具有规则结构,设备转速一定时,滚动轴承和齿轮具有确定的故障频率。该应用使用 MMA7260 的 MEMS 三轴加速度传感器作为数据采集来源,当传感器采集的时域信号经滤波处理后,高频低能量信号经信号放大、快速傅里叶变换 FFT、包络处理后生成包络的频域信号监测到上述故障频率下的异常振动时可以判断故障发生的位置。
// ===== 国外研究现状
// // T. S. Barbosa, D. D. Ferreira, D. A. Pereira, R. R. Magalhães 和 B. H. G. Barbosa, 《Fault Detection and Classification in Cantilever Beams Through Vibration Signal Analysis and Higher-Order Statistics》, J Control Autom Electr Syst, 卷 27, 期 5, 页 535541, 10 月 2016, doi: 10.1007/s40313-016-0255-1.
// Barbosa 等提出了一种基于振动信号分析和高阶统计的悬臂梁故障检测与分类方法,采用 Fisher 判别比FDR进行特征选择人工神经网络进行故障检测和分类。对悬臂梁施加了三种不同程度的故障低、中、高所提出的模式识别系统能够对故障进行分类性能范围为 88% 至 100%。
// // [1] J. Kim, K. Kim 和 H. Sohn, 《Autonomous dynamic displacement estimation from data fusion of acceleration and intermittent displacement measurements》, Mechanical Systems and Signal Processing, 卷 42, 期 1, 页 194205, 1 月 2014, doi: 10.1016/j.ymssp.2013.09.014.
// // [2] Y. K. Thong, M. S. Woolfson, J. A. Crowe, B. R. Hayes-Gill 和 D. A. Jones, 《Numerical double integration of acceleration measurements in noise》, Measurement, 卷 36, 期 1, 页 7392, 7 月 2004, doi: 10.1016/j.measurement.2004.04.005.
// Kim 和 Thong 等分别提出了通过加速度和间歇位移测量的数据融合进行自主动态位移估计和噪声加速度测量的数值双积分的方式用于位移测量的方式,该方式可以作为振动筛运行状态的数据来源和评价标准之一。
// //Cheng X, Li Z, Cao C, 等。Dynamic Analysis and Fault Diagnosis for Gear Transmission of a Vibration Exciter of a Mine-Used Vibrating Screen under Different Conditions[J]. Applied Sciences, Multidisciplinary Digital Publishing Institute, 2022, 12(24): 12970.
// Cheng 等利用虚拟原型技术建立了振动筛激励系统的动力学模型,从齿轮转心的轨迹变化、齿轮的法向啮合力以及振动加速度在垂直、水平和轴向三个方面讨论了正常齿轮副和故障齿轮副的动态特性,指出了轮齿折断故障的检测策略和识别指标。
// //Krot P, Zimroz R. Methods of Springs Failures Diagnostics in Ore Processing Vibrating Screens[J]. IOP Conference Series: Earth and Environmental Science, IOP Publishing, 2019, 362(1): 012147.
// Krot 等使用安装在旋转不平衡激振器轴承支架上的振动传感器数据用于矿石加工振动筛弹簧故障的诊断。提出了一种基于非线性动力学模型的相空间图 (PSP) 方法在弹簧劣化(裂纹或刚度降低)情况下对振动筛进行分析的思路。认为相空间图上的轨迹可以检测支撑弹簧的损坏,并且这些轨迹受弹簧刚度降低和动态系统的非线性特性的影响,而信号的相空间表示和分析不受噪声的影响,相空间图上的线性模型响应认为是无缺陷弹簧的健康状态。
// // CSC 引用自 Antoni J. Cyclic spectral analysis in practice[J]. Mechanical Systems and Signal Processing, 2007, 21(2): 597630.
// // Wodecki J, Krot P, Wróblewski A, 等。Condition Monitoring of Horizontal Sieving Screens—A Case Study of Inertial Vibrator Bearing Failure in Calcium Carbonate Production Plant[J]. Materials, Multidisciplinary Digital Publishing Institute, 2023, 16(4): 1533.
// Wodecki 等比较了使用频谱图、循环频谱相干性 (CSC)、包络谱、位移轨迹和 PSP 在振动筛轴承故障时的特征,认为通过分析时频标识、循环稳态、位移轨迹和 PSP 特征可以识别与不平衡轴引起的冲击相关的高振幅循环扰动以及与故障轴承相关的弱循环脉冲。该研究表明,即使在振动器的严重周期性扰动和具有非高斯分布的筛分材料碎片(脉冲噪声)的随机冲击下,也可以可靠地检测到轴承点蚀和其他局部缺陷的集中点。
// // Cai Z, Xu Y, Duan Z. An alternative demodulation method using envelope-derivative operator for bearing fault diagnosis of the vibrating screen[J]. Journal of Vibration and Control, 2018, 24(15): 32493261.
// Cai 等认为 Teager-Kaiser 能量算子 (TKEO) 和希尔伯特变换 (HT) 由于对振动和噪声较为敏感,限制了其在振动筛的轴承故障诊断方面的应用。为了克服这些缺点,提出了一种称为包络导数算子 (EDO) 的替代能源算子方法。振动筛的仿真和轴承故障诊断结果表明EDO 能够有效地提取故障特征频率,证明了其与 TKEO 相比的可行性和优越性。
==== 卷积神经网络在相关方向的研究现状
随着计算机深度学习能力的发展,使用常规人工特征提取和传统时频域分析的方式正逐渐被深度学习方式取代。不同于传统方式,深度学习能够快速从大量数据中学习到人工不易观察到的特征,并具有较强的泛化能力。目前主要的研究都是基于广泛使用的深度学习模型结构,如堆叠 自动编码器 (AE)、深度信念网络 (DBN) 卷积神经网络 (CNN)、残差神经网络 (ResNet) 循环神经网络 (RNN)、长短时记忆网络 (LSTM) 等。
// Y. Lei, B. Yang, X. Jiang, F. Jia, N. Li 和 A. K. Nandi, 《Applications of machine learning to machine fault diagnosis: A review and roadmap》, Mechanical Systems and Signal Processing, 卷 138, 页 106587, 4 月 2020, doi: 10.1016/j.ymssp.2019.106587.
或者使用具有成熟结构的 LeNet、MobileNet 等网络。
就卷积神经网络而言,当 CNN 应用于时间序列分类时,它有两个优点:局部依赖性和尺度不变性。局部依赖意味着邻近信号可能是相关的,而尺度不变性是指不同的空间或频率下的尺度不变性。对于使用 CNN 的架构,主要分为使用 1D CNN 和 2D CNN 的诊断模型。2D CNN 广泛应用于图像处理,而 1D CNN 常见于数据序列的处理。一般来说,故障诊断常使用 1D CNN 进行。
=== 国内研究现状 ===== 国内研究现状
==== 振动传感器应用现状 王靖岳等使用一维振动信号作为网络输入,输入 CNN-LSTM 网络进行训练。使用该方法对齿轮箱试验台采集的复合故障数据进行训练与测试,得到了较好的实现效果。
田心平等通过自适应噪声完备集合经验模态分解 (CEEMDAN) 算法降噪和信号重构,再运用改进 CNN 模型进行故障诊断,实现了在复杂工况下对轴承故障的高效准确识别。
熊青松在对高层建筑结构振动识别中也使用了类似信号重构的思路。提出一种基于深度表征学习的振动识别法。利用历史数据获取结构加速度响应信号,通过 FFT 获取一维频谱序列。然后将频谱序列输入深度自编码神经网络AUE进行训练并重构信号。量化原始与重构信号差异得到敏感特征参数。最后使用机器学习分类算法训练分类器基于测试结果选择最优算法实现振动信号的可靠识别。
马举在基于重采样算法与迁移学习的直线振动筛故障诊断研究中引入了迁移学习理论,选择了针对性的迁移学习效果评估指标,用于精准筛选最优诊断模型。对于在多批次同型号振动筛上快速部署最优诊断模型具有参考意义。
张珂等提出一种多模态注意力卷积神经网络。该网络采用多个并行卷积层构建,并结合注意力机制,有效地提取了丰富的故障特征。
肖雄等为了解决使用一维卷积神经网络进行故障诊断容易过拟合的问题,将抽取的 N^2 各时域信号转换为 N*N 的灰度特征图,使用 LeNet-5 进行分类,取得较好的识别效果。类似的,陈华在直线振动筛在线故障诊断方法研究及系统开发中,将多个布置于不同位置的加速度传感器原始时域信号抽取并重组为单通道二维灰度特征图,并使用 LeNet-5 对输入图像进行分类,能过够得到较好的故障诊断结果。
==== 振动信号采集监测设备研究现状 ===== 国外研究现状
Aqueveque 等提出了一种用于振动筛故障检测的物联网系统。将无线传感器与数据驱动的机器学习相结合,形成一个仪器专用网络,用于监测振动振动筛。使用类似于具有核密度估计的朴素贝叶斯模型和二次 SVM 模型进行异常分类,并在测试轴分别取得了 97.5% 和 97.8% 的准确率。
Ince 等提出了一种使用一维 CNN 进行实时电机故障检测的方法。在预处理阶段通过二阶陷波滤波器对数据进行滤波,以抑制用于预处理的基频。
不同于传统使用 1D CNN 进行时间序列分类任务的方法Jiang 等使用深度卷积神经网络 (DCNN),并且将基于陀螺仪、总加速度和线性加速度信号生成的活动图像作为输入。认为能够提取相邻信号之间的隐藏相关性。
Janssens 等将加速度计信号使用 z-score 方式标准化。然后从训练集信号中提取包含一秒测量样本的非重叠窗口并计算 DFT最后将频域数据用作神经网络模型的训练样本。该网络使用了 2D CNN输入数据是从正交放置的两个振动传感器得到并处理的。
在轴承故障诊断中Zhang 等也使用了将原始振动信号转化成二维特征图像作为卷积神经网络的方法。作者比较了该方法和使用频域特征作为 ANN 输入进行故障检测的方法,指出 FFT + ANN 虽然在部分测试数据集中表现良好,但对于高频信号,选择 FFT 或者 WT 进行频率特征的提取将变得较为困难。
Fan 等同样也使用二维特征图作为卷积神经网络的输入但不同于直接使用原始时域信号作者比较了使用处理后的内征模态函数排列IMFA、经验模态分解 - 伪 Wigner-Ville 分布EP、对称极坐标图像SPCI和灰度纹理图GTM作为卷积神经网络的输入的分类效果论证了几种特征图像在添加噪声后的识别准确率变化。
除了使用不同的特征图作为网络输入Hao 等通过在 CNN 模型中增加了多种卷积步幅模式,以提取信号不同尺度的特征并扩展特征维度,从而使网络能够从训练数据中更好的提取潜藏的特征。
此外Wang 等人在使用 1D-CNN 进行的的轴承故障诊断中还提出使用多模态传感器用于同时收集振动和声音信号作为输入,将振动和声音信号分别经过卷积和池化提取特征后在全连接层进行融合。通过分析不同信噪比下的损失函数和准确率,实证发现所提方法的诊断准确率高于基于单模态传感器的算法。
// ===== 国内研究现状
// // 王靖岳,高天,王浩天和王军年,《》, 矿山机械,卷 50, 期 5, 页 5559, 2022, doi: 10.16816/j.cnki.ksjx.2022.05.008.
// 王靖岳等提出了一种 CNN 内嵌 LSTM 网络的齿轮箱复合故障状态监测方法。该方法使用一维振动信号作为网络输入,该网络先叠加两层卷积层和一层展平层,将特征图转化为一维序列后输入 LSTM 层,再经过一层全连接层得到输出。使用该方法对齿轮箱试验台采集的复合故障数据进行训练与测试,平均准确率达到 86.4%,证明了该模型的有效性与稳定性。
==== 边缘计算技术研究现状 // // 田心平,钱云祥,张浩楠,等。基于自适应降噪和改进 CNN 的轴承故障诊断方法 [J]. 机电工程技术2024, 53(1): 228-232+252.
// 田心平等提出了一种结合自适应降噪和改进 CNN 的滚动轴承故障诊断方法。通过自适应噪声完备集合经验模态分解 (CEEMDAN) 算法降噪和信号重构,再运用改进 CNN 模型进行故障诊断,实现了在复杂工况下对轴承故障的高效准确识别。
// //熊青松,熊海贝,孔庆钊,等。基于振动信号深度表征学习的高层建筑结构振动识别 [J]. 工程力学,: 113.
// 熊青松在对高层建筑结构振动识别中也使用了类似信号重构的思路。提出一种基于深度表征学习的振动识别法。利用历史数据获取结构加速度响应信号,通过 FFT 获取一维频谱序列。然后将频谱序列输入深度自编码神经网络AUE进行训练并重构信号。量化原始与重构信号差异得到敏感特征参数。最后使用机器学习分类算法训练分类器基于测试结果选择最优算法实现振动信号的可靠识别。
// // 马举。基于重采样算法与迁移学习的直线振动筛故障诊断研究 [D]. 华侨大学2023.
// 马举在基于重采样算法与迁移学习的直线振动筛故障诊断研究中引入了迁移学习理论,选择了针对性的迁移学习效果评估指标,用于精准筛选最优诊断模型。在八种重采样算法利用近邻思想扩充少数类样本的基础上,结合迁移学习理论,对 Alex Net、VGG16 等四种深度学习模型进行微调,将批次一数据集预训练模型权重载入批次二、批次三诊断模型中,实现 ZS2468C 型振动筛不同批次迁移学习故障诊断。该研究对于在多批次同型号振动筛上快速部署最优诊断模型具有参考意义。
// // 张珂,王竞禹,石怀涛,等。基于 CNN 的变工况滚动轴承故障诊断研究 [J]. 控制工程2022, 29(2): 254262.
// 张珂等针对滚动轴承工作环境多变和样本不足导致故障诊断效果不佳的问题,提出一种多模态注意力卷积神经网络。该网络采用多个并行卷积层构建,并结合注意力机制,有效地提取了丰富的故障特征。
// // 肖雄,王健翔,张勇军,等。一种用于轴承故障诊断的二维卷积神经网络优化方法 [J]. 中国电机工程学报2019, 39(15): 45584568.
// 肖雄等为了解决使用一维卷积神经网络进行故障诊断容易过拟合的问题,将抽取的 N^2 各时域信号转换为 N*N 的灰度特征图,使用 LeNet-5 进行分类,取得较好的识别效果。类似的,
// // 陈华。直线振动筛在线故障诊断方法研究及系统开发 [D]. 华侨大学2022.
// 陈华在直线振动筛在线故障诊断方法研究及系统开发中,将多个布置于不同位置的加速度传感器原始时域信号抽取并重组为单通道二维灰度特征图,并使用 LeNet-5 对输入图像进行分类,能过够得到较好的故障诊断结果。
// ===== 国外研究现状
// //Aqueveque P, Radrigan L, Morales A S, 等。Development of a Cyber-Physical System to Monitor Early Failures Detection in Vibrating Screens[J]. IEEE Access, 2021, 9: 145866145885.
// Aqueveque 等提出了一种用于振动筛故障检测的物联网系统。将无线传感器与数据驱动的机器学习相结合,形成一个仪器专用网络,用于监测振动振动筛。使用类似于具有核密度估计的朴素贝叶斯模型和二次 SVM 模型进行异常分类,并在测试轴分别取得了 97.5% 和 97.8% 的准确率。
// //O. Janssens 等《Convolutional Neural Network Based Fault Detection for Rotating Machinery》, Journal of Sound and Vibration, 卷 377, 页 331345, 9 月 2016, doi: 10.1016/j.jsv.2016.05.027.
// Janssens 等人提出了一种基于卷积神经网络的旋转机械故障检测方法。该网络使用将加速度计信号缩放至均值和单位方差为零(即使用 z-score 方式标准化)。然从训练集信号中提取包含一秒测量样本的非重叠窗口。对于提取样品的每个窗口,计算 DFT最后将频域数据用作神经网络模型的训练样本。该网络使用了 2D CNN输入数据是从正交放置的两个振动传感器得到并处理的具有一个宽度为 64 的卷积层和一个有 200 个单元的全连接层。
// // T. Ince, S. Kiranyaz, L. Eren, M. Askar 和 M. Gabbouj, 《Real-Time Motor Fault Detection by 1-D Convolutional Neural Networks》, IEEE Transactions on Industrial Electronics, 卷 63, 期 11, 页 70677075, 11 月 2016, doi: 10.1109/TIE.2016.2582729.
// Ince 等提出了一种使用一维 CNN 进行实时电机故障检测的方法。该方法使用工业电路监测器采集电机电流数据,通过二阶陷波滤波器对当前数据进行滤波,以抑制用于预处理的基频。通过在抗混叠滤波之前执行抽取,对原始输入电流信号进行 8 倍的下采样。然后进行归一化,作为一维 CNN 网络的输入。该方案实现了大于 97% 的识别准确率,并且具有较高水平的泛化能力。
// //W. Jiang 和 Z. Yin, 《Human Activity Recognition Using Wearable Sensors by Deep Convolutional Neural Networks》, 收入 Proceedings of the 23rd ACM international conference on Multimedia, 收入 MM15. New York, NY, USA: Association for Computing Machinery, 10 月 2015, 页 13071310. doi: 10.1145/2733373.2806333.
// 不同于传统使用 1D CNN 进行时间序列分类任务的方法Jiang 等提出了一种基于深度卷积神经网络的可穿戴传感器进行人体活动识别的方法。该方法使用深度卷积神经网络 (DCNN),并且将基于陀螺仪、总加速度和线性加速度信号生成的活动图像作为输入。认为通过将各一维信号逐行堆叠形成信号图像中,每个信号序列都有机会与其他序列相邻,这使得 DCNN 能够提取相邻信号之间的隐藏相关性。该论文中将所提方法和 SVM 方法和特征选择方法进行对比,取得了最佳的精度和处理效率。
// // Zhang W, Peng G, Li C. Bearings Fault Diagnosis Based on Convolutional Neural Networks with 2-D Representation of Vibration Signals as Input[J]. MATEC Web of Conferences, EDP Sciences, 2017, 95: 13001.
// 在轴承故障诊断中Zhang 等也使用了将原始振动信号转化成二维特征图像作为卷积神经网络的方法。作者比较了该方法和使用频域特征作为 ANN 输入进行故障检测的方法,指出 FFT + ANN 虽然在部分测试数据集中表现良好,但对于高频信号,选择 FFT 或者 WT 进行频率特征的提取将变得较为困难。
// // Fan H, Xue C, Zhang X, 等。Vibration Images-Driven Fault Diagnosis Based on CNN and Transfer Learning of Rolling Bearing under Strong Noise[J]. Shock and Vibration, Hindawi, 2021, 2021: e6616592.
// Fan 等同样也使用二维特征图作为卷积神经网络的输入但不同于直接使用原始时域信号作者比较了使用处理后的内征模态函数排列IMFA、经验模态分解 - 伪 Wigner-Ville 分布EP、对称极坐标图像SPCI和灰度纹理图GTM作为卷积神经网络的输入的分类效果论证了几种特征图像在添加噪声后的识别准确率变化。
// // Hao H, Fuzhou F, Zhu J, 等。Research on Fault Diagnosis Method Based on Improved CNN[J]. Shock and Vibration, 2022, 2022: 115.
// 除了使用不同的特征图作为网络输入Hao 等通过在 CNN 模型中增加了多种卷积步幅模式,以提取信号不同尺度的特征并扩展特征维度,从而使网络能够从训练数据中更好的提取潜藏的特征。
// // Wang X, Mao D, Li X. Bearing fault diagnosis based on vibro-acoustic data fusion and 1D-CNN network[J]. Measurement, 2021, 173: 108518.
// 此外Wang 等人在使用 1D-CNN 进行的的轴承故障诊断中还提出使用多模态传感器用于同时收集振动和声音信号作为输入,将振动和声音信号分别经过卷积和池化提取特征后在全连接层进行融合。通过分析不同信噪比下的损失函数和准确率,实证发现所提方法的诊断准确率高于基于单模态传感器的算法。
=== 当前存在的主要问题 === 当前存在的主要问题
==== 加速度传感器问题
当前主要的振动筛故障检测设备从传感器到诊断设备,其设备成本均较高。在传感器选择上,大多数振动检测传感器的加速度传感器方案选择了较为昂贵的压电式单轴或者多轴陶瓷加速度传感器。这种类型的传感器不仅价格高昂,并且体积较大,并且使用模拟量输入,需要接入变送器以及和变送器匹配的主站才才能获取可以处理的数据。并且较多小型化设计中为了匹配模拟量输出的加速度传感器和采集控制器(多为微控制器),使用了高分辨率的模数转换器和较为复杂的外围电路,这进一步地增加了成本。另外,在变送器或转换器的模拟量传输路径上,由于工频干扰和传输损失带来的精度和漂移问题也对系统设计带来了较大的挑战。所以较为昂贵的传感器和较为复杂的设计考量使得目前用于振动筛的故障检测设备难以得到广泛的应用。
==== 计算终端的问题
无论是使用传统人工特征提取方法或是深度学习方式,都需要将采集的数据进行较为复杂的处理。
对于使用远程服务器进行数据处理的方案,其本身最主要的问题在于较大的延迟和负载,以及一些冗余安全性问题。故障检测设备要求具有一定的实时性,虽然某些远程服务器确实性能普遍强于用于边缘计算的数据终端,但是由于复杂的网络结构和请求机制,以及网络设备的转发延迟和性能限制,有较多的传输和转发耗时。而由于实时性的要求会导致传输线路始终保持在较高负载的状态,当需要维护和更换设备时,可能会造成生产效率的损失。此外,对于中心数据处理服务器的依赖导致用户必须同时依赖计算服务提供商,或者自行托管服务器。如果依赖于计算服务提供商,则服务商是否能够长时间的提供支持和维护成为了故障检测设备生命周期的主要影响因素,如果其停止维护,将使得全部检测设备即使完好也无法继续运行。
对于使用传统边缘计算终端进行数据处理的方案而言,传统上为了方便部署,开发者通常偏好于具有成熟开发环境以及完善框架的终端类型以简化开发流程。例如具有 cuda 框架的 jetson 平台、具有 onnx 框架的 Intel 平台或者其他具有专用加速器如 npu、xpu 的 aarch64 平台等。但对于一般的振动筛故障检测场景来说仍然较于昂贵,并且仍然需要搭建采集前端,部署流程本质上并无减少。对于较为小型的农业或者工业振动筛,很可能存在边缘计算终端价格占比较高甚至高于设备成本的情况,也导致了故障检测设备未能得到广泛应用。此外这类边缘计算的开发和维护也较为复杂,采用高级操作系统的边缘计算终端除了需要考虑数据计算流程外,还需要考虑进程保活、故障重启、入侵防护、组件更新等一系列问题,更复杂的功能同时也带来了对于安全和维护的一系列挑战。
=== 本论文主要研究内容 === 本论文主要研究内容
本论文主要针对上述加速度传感器价格昂贵,外围电路复杂以及使用中心服务器进行计算或使用传统边缘计算终端进行计算的种种问题进行改进,提出了一种使用微机电 (MEMS) 传感器进行振动信号采集,使用通用微控制器 (MCU) 部署使用卷积神经网络 (CNN) 的振动筛故障检测设备。并讨论了该设备硬件设计、卷积神经网络的训练和部署以及应用程序的设计等问题。
=== 论文结构 === 论文结构
== 基于 MEMS 和 CNN 的边缘计算振动监测节点总体方案 基于以上工作内容,论文主要分为六个部分。
第一部分为绪论。阐述该课题的来源以及意义,对振动筛故障检测的国内外研究现状进行总结和归纳,分析了当前相关故障检测设备存在的主要问题。
第二部分介绍基于 MEMS 和 CNN 的振动筛故障检测设备的总体设计方案。主要针对总体技术架构、需求分析、总体方案几个方面进行讨论和设计。确定该设备定位为低成本和易部署,并根据该需求划分软件层次以及选定相关传感器、微控制器等硬件方案。
第三部分介绍故障检测设备的硬件设计方案。分别对故障检测设备中数据处理主控、蓝牙主控、传感器及外围、电源和保护、通信转换几个部分的硬件方案进行设计和计算。同时设计使用印刷电路板 (PCB) 的故障检测设备原型,以及设计过程中的布局布线问题。
第四部分介绍基于卷积神经网络的振动筛故障检测分类模型设计,该部分比较常见时间序列分类问题的解决方案,介绍使用卷积神经网络进行故障分类的原因。同时介绍本设计中训练数据的采集、预处理和划分。最后介绍所使用的神经网络主要的结构设计以及相关特点。
第五部分介绍故障检测设备的程序开发。该部分中先介绍故障检测设备程序的层次分划。然后对于主控程序,主要设计传感器驱动层以及数据预处理部分。然后着重介绍使用 X-CUBE-AI 框架进行分类网络部署的步骤。最后介绍蓝牙主控使用广播模式进行数据传输的程序设计。
第六部分为总结和展望。总结本设计中所进行的主要工作和相关成果,并对于本设计仍未完成和存在缺陷的地方提出了展望。
== 基于 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[总体技术架构]
@@ -51,7 +224,7 @@ image::doc_attachments/2024-03-29T09-55-39-990Z.png[总体技术架构]
- 主要利用基于 MEMS 技术的加速度计和温湿度计实现被检测对象的振动和环境温湿度感知,实现对工况数据的初步收集。 - 主要利用基于 MEMS 技术的加速度计和温湿度计实现被检测对象的振动和环境温湿度感知,实现对工况数据的初步收集。
=== 处理层 ==== 处理层
- 对感知层采集的到的数据进行预处理。通过滤波去除噪声,尖峰或者平滑数据波形等。根据情况对采样数据进行插值处理,以弥补传感器采样频率不足的缺陷。根据实际特征情况,选择识别频域或者时域信号(由于性能限制,无法同时部署两个推理模型)。 - 对感知层采集的到的数据进行预处理。通过滤波去除噪声,尖峰或者平滑数据波形等。根据情况对采样数据进行插值处理,以弥补传感器采样频率不足的缺陷。根据实际特征情况,选择识别频域或者时域信号(由于性能限制,无法同时部署两个推理模型)。
@@ -61,7 +234,7 @@ image::doc_attachments/2024-03-29T09-55-39-990Z.png[总体技术架构]
- 将需要上报的数据按格式打包,传输到传输层模块或者设备中。 - 将需要上报的数据按格式打包,传输到传输层模块或者设备中。
=== 传输层 ==== 传输层
- Modbus 从设备将数据分类存储并分配寄存器地址,等待主机查询后回报。 - Modbus 从设备将数据分类存储并分配寄存器地址,等待主机查询后回报。
@@ -71,15 +244,15 @@ image::doc_attachments/2024-03-29T09-55-39-990Z.png[总体技术架构]
=== 需求分析 === 需求分析
边缘计算振动检测节点对于掌握设备运行状态和保障设备稳定安全运行具有重要意义。本设计中“基于 MEMS 和 CNN 的边缘计算振动检测节点”总体技术需求如下: 振动筛故障检测设备对于掌握设备运行状态和保障设备稳定安全运行具有重要意义。本设计中“基于 MEMS 和 CNN 的振动筛故障检测设备”总体技术需求如下:
(1) 针对现阶段基于振动和温湿度的工况识别的采样需求、快速处理需求、低功耗和低成本需求,主要完成元器件选型。基于选定传感器、主控等主要元器件设计集采集,数据处理和边缘计算、数据暂存和交换一体的检测节点电路,并根据电路和结构要求设计电路板。 (1) 针对现阶段基于振动和温湿度的工况识别的采样需求、快速处理需求、低功耗和低成本需求,主要完成元器件选型。基于选定传感器、主控等主要元器件设计集采集,数据处理和边缘计算、数据暂存和交换一体的振动检测电路,并根据电路和结构要求设计电路板。
(2) 能够运行实现原始数据采集、数据处理和边缘计算、数据暂存和交换功能的程序。并能够实现稳定长久的运作和后期可维护的需求。 (2) 能够运行实现原始数据采集、数据处理和边缘计算、数据暂存和交换功能的程序。并能够实现稳定长久的运作和后期可维护的需求。
为了满足对于一般工业设备、家用和商用场景下振动检测的需求,结合边缘计算的运算能力要求以及部署和维护成本考量,得到本文边缘计算节点的设计基本性能指标如表所示。 为了满足对于一般工业设备、家用和商用场景下振动筛故障检测的需求,结合边缘计算的运算能力要求以及部署和维护成本考量,得到本文振动筛故障检测设备的设计基本性能指标如表所示。
.边缘计算节点性能指标 .振动筛故障检测设备性能指标
[%autowidth] [%autowidth]
|=== |===
| 性能 | 参数 | 性能 | 参数
@@ -108,9 +281,9 @@ image::doc_attachments/2024-03-29T09-55-39-990Z.png[总体技术架构]
=== 总体方案 === 总体方案
本文设计的基于 MEMS 和 CNN 的边缘计算振动检测节点主要由基于 MEMS 的传感器模块,基于 CNN 的数据处理模块、数据传输模块和电源模块四部分组成。根据边缘计算节点的基本性能指标要求,确定节点的硬件结构如图所示。 本文设计的基于 MEMS 和 CNN 的振动筛故障检测设备主要由基于 MEMS 的传感器模块,基于 CNN 的数据处理模块、数据传输模块和电源模块四部分组成。根据振动筛故障检测设备的基本性能指标要求,确定设备的硬件结构如图所示。
image::doc_attachments/2024-03-30T01-28-57-237Z.png[节点硬件结构框图] image::doc_attachments/2024-03-30T01-28-57-237Z.png[设备硬件结构框图]
为了满足低功耗、低成本和平衡性能的要求,做出的硬件选型方案如下。 为了满足低功耗、低成本和平衡性能的要求,做出的硬件选型方案如下。
@@ -126,7 +299,7 @@ image::doc_attachments/2024-03-30T01-28-57-237Z.png[节点硬件结构框图]
- 电源模块采用常见的开关电源和低压差线性稳压器的组合方式,满足宽电压输入和高效率转换的需求,结合防反接,防过压保护和 ESD 防护电路,能够有效的满足稳定、安全、低成本的电源供应需求。 - 电源模块采用常见的开关电源和低压差线性稳压器的组合方式,满足宽电压输入和高效率转换的需求,结合防反接,防过压保护和 ESD 防护电路,能够有效的满足稳定、安全、低成本的电源供应需求。
== 基于 MEMS 和 CNN 的边缘计算振动监测节点的硬件设计 == 基于 MEMS 和 CNN 的振动筛故障检测设备的硬件设计
=== LIS3DH 型加速度传感器单元及其电路设计 === LIS3DH 型加速度传感器单元及其电路设计
@@ -320,7 +493,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 +527,172 @@ 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, 页 311, 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, 收入 MM15. New York, NY, USA: Association for Computing Machinery, 10 月 2015, 页 13071310. 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%。划分完成后需要保证每种标签数据占比均匀。
//骨干网络设计
=== 神经网络结构层次
==== 卷积层
在卷积神经网络CNN卷积层是核心组成部分它负责从输入数据中提取关键特征。卷积层通过使用一组可学习的卷积核或称为滤波器来扫描输入数据如图像的局部区域并在每个位置上执行卷积操作从而生成特征图feature maps。这些特征图捕获了输入数据在不同空间层次上的局部信息为后续的网络层提供了有用的表示。卷积层中的每个卷积核都具有一定的尺寸和深度它们沿着输入数据的宽度和高度方向滑动并在每个位置上与输入数据进行点积运算然后加上一个偏置项最后通过激活函数如 ReLU得到输出特征图上的一个值。由于卷积核的权值是共享的这使得卷积层能够学习到输入数据中的平移不变性特征并且显著减少了网络中的参数数量降低了过拟合的风险。
//待验证公式
二维卷积的过程为 stem:[Y(i, j) = \sum_{m=0}^{h-1} \sum_{n=0}^{k-1} X(i+m, j+n) \cdot K(m, n)]
其中stem:[0 \leq i < H-h+1 ] stem:[ 0 \leq j < W-k+1 ]。stem:[ X(i+m, j+n) ] 是输入 X 在位置 stem:[(i+m, j+n)] 的值stem:[K(m, n)] 是卷积核 K 在位置 stem:[(m, n)] 的值。
//选取怎样的卷积核大小和
==== 池化层
池化层Pooling Layer的主要作用是对卷积层的输出进行降采样操作减小输入数据的空间尺寸降低模型的计算复杂度减少过拟合并在一定程度上提取输入数据的重要特征。池化层的操作过程可以看作是卷积操作的一种特殊情况但通常不使用权重参数而是使用预定义的池化函数如最大值、平均值等来聚合输入数据。常用池化层类型有最大池化层Max Pooling、平均池化层Average Pooling和自适应池化层Adaptive Pooling等。
本设计中,输入为三轴加速度计在时域上平铺的二维单通道图像,存在一定的纹理特征,所以选用最大池化层以保留纹理特征并增强泛化能力。
==== 全连接层
全连接层Fully Connected Layer也被称为密集连接层Dense Layer或内积层Inner Product Layer是神经网络中常见的一种层级结构尤其在卷积神经网络Convolutional Neural Networks, CNNs的尾部经常出现。全连接层的主要作用是对前一层可能是卷积层、池化层、或其他类型的全连接层的输出进行加权求和并通过激活函数产生非线性特性从而得到网络的最终输出。
//全连接层激活函数 ReLU
本设计中神经网络输出为故障类型分类的置信度,故在最后一层全连接层中使用 softmax 作为激活函数。softmax 函数将神经网络的输出转换为概率分布。给定一个长度为 K 的向量 z其中 K 是类别的数量softmax 函数的第 i 个输出是:
//待验证公式
[stem]
++++
\text{softmax}(z)i = \frac{e^{z_i}}{\sum{j=1}^{K} e^{z_j}}
++++
softmax 确保输出的概率分布在 [0, 1] 之间,并且所有类别的概率之和为 1。
当使用 softmax 作为分类网络的最后一层时通常会使用交叉熵损失函数cross-entropy loss来度量模型预测的概率分布与真实标签之间的差异。交叉熵损失函数能够很好地与 softmax 函数一起工作,因为它直接度量了预测概率分布与真实概率分布之间的“距离”。本设计中也使用该损失函数。
初步设计的神经网络模型结构如下图所示。
image::doc_attachments/2024-05-12T09-19-31-206Z.png[神经网络模型结构]
==== 超参数设计
//超参数设计,学习率、损失函数
在设计 CNN卷积神经网络中的超参数时需要考虑多个方面以确保模型能够高效、准确地执行特定任务。以下是一些关键的超参数及其设计考虑因素
1. 学习率Learning Rate
学习率决定了模型在训练过程中权重更新的步长。
如果学习率太高,模型可能无法收敛;如果太低,训练可能会非常慢。
可以使用学习率衰减策略如轮数减缓step decay、指数减缓exponential decay或分数减缓1/t decay来随着训练的进行逐渐减小学习率。
通常建议从较小的值(如 0.01 或 0.001)开始,并根据训练情况进行调整。
2. 批次大小Batch Size
批次大小决定了在一次权重更新中使用的样本数量。
较大的批次大小可以加速训练,但可能需要更多的内存;较小的批次大小可能会导致训练不稳定,但可能有助于泛化。
通常,批次大小设置为 2 的幂次(如 32、64、128 等)可以提高计算效率。
3. 卷积层参数:
卷积核大小Kernel Size决定了感受野的大小通常使用 3x3 或 5x5 的小卷积核。
步长Stride决定了卷积核在输入特征图上滑动的步长默认为 1。
填充Padding用于在输入特征图的边界周围添加额外的像素以保持输出特征图的空间尺寸。常用的填充方式有'valid'(不填充)和'same'(填充后输出与输入尺寸相同)。
卷积核数量Number of Filters/Channels决定了输出特征图的深度通常根据任务和数据集的特性进行设置。
4. 池化层参数:
池化类型常用的有最大池化Max Pooling和平均池化Average Pooling。最大池化能够提取最显著的特征而平均池化则能够保留更多全局信息。
池化窗口大小:决定了池化操作的感受野大小,通常为 2x2。
步长:决定了池化窗口在输入特征图上滑动的步长,与池化窗口大小通常设置为相同值。
5. 全连接层参数:
神经元数量:决定了全连接层的宽度,通常根据任务和数据集的特性进行设置。过多的神经元可能导致过拟合,而过少的神经元可能无法充分学习数据的特征。
激活函数:如 ReLU、Sigmoid、Tanh 等用于引入非线性特性。ReLU 在深度学习中广泛使用,因为它能够有效缓解梯度消失问题。
6. 优化器Optimizer
常用的优化器有 SGD随机梯度下降、Adam、RMSprop 等。不同的优化器具有不同的特性和适用场景,需要根据具体情况进行选择。
7. 损失函数Loss Function
对于分类任务常用的损失函数有交叉熵损失Cross-Entropy Loss对于回归任务常用的有均方误差Mean Squared Error, MSE等。损失函数的选择应基于任务的需求和数据的特点。
8. 正则化Regularization
为了防止过拟合,可以使用正则化技术如 L1 正则化、L2 正则化也称为权重衰减、Dropout 等。这些技术可以限制模型的复杂度,提高模型的泛化能力。
9. 迭代次数Epochs
迭代次数决定了模型在训练集上完整的遍历次数。过多的迭代次数可能导致过拟合,而过少的迭代次数可能导致模型未能充分学习数据的特征。通常需要通过验证集的性能来选择合适的迭代次数。
//本设计中
//导出 h5fd
== 基于 MEMS 和 CNN 的振动筛故障检测设备的程序开发
为了实现本设计的设计需求,程序开发主要分为三个部分。分别是基于 GD/STM32F405 的主控程序、基于 CH582F 的蓝牙主控程序、以及简单的上位机数据采集和标注程序。三部分的功能和关系如下图所示。 为了实现本设计的设计需求,程序开发主要分为三个部分。分别是基于 GD/STM32F405 的主控程序、基于 CH582F 的蓝牙主控程序、以及简单的上位机数据采集和标注程序。三部分的功能和关系如下图所示。
@@ -362,7 +700,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,114 +775,144 @@ X[k+N/2]=A[k]-W_{N}^{k}B[k],k=0,1,\ldots,\frac{N}{2}-1
由于采用的主控带有数字信号处理模块 (DSP),所以程序中不需要自行实现。采集到足够点数的时域数据后传入处理函数即可。 由于采用的主控带有数字信号处理模块 (DSP),所以程序中不需要自行实现。采集到足够点数的时域数据后传入处理函数即可。
==== 基于 Keras 的 CNN 训练过程 ==== 基于 X-Cube-AI 的推理模型转化和部署
//选用 2D-CNN 的原因 由于本设计中采用边缘计算形式,选用的主控受成本和功耗限制,运算能力和存储空间均受较大限制。在本地计算机中使用较小规模的网络所训练的模型,其大小也达到数兆字节 (MByte),而所选用的 GD32F405RGT6 所采用的高速嵌入式存储器仅有 1 兆字节 (Mbyte) 闪存和 192 千字节 (KB) 随机存储器 (SRAM),显然难以直接使用原始模型进行推理。
===== 神经网络类型的选取
本设计针对的设备振动模型,主要特征为同一工况下振动波形比较稳定,呈现较强的周期性。在功能需求上看,主要需要完成的是三轴加速度计数据到各类工况的置信度的映射,属于较为典型的时间序列分类模型,典型应用为人类活动识别 (HAR) 目前的解决方案主要是通过对模型进行量化剪裁等操作,以及根据微控制器进行针对性的加速优化,减少模型尺寸和推理资源占用。由于使用的微控制器为基于 Cortex-M4F 内核的 GD/STM32F405可以使用 CMSIS-NN 神经网络库。该库/框架优化了各种常见的神经网络层,如卷积层、全连接层等,确保了在微控制器上的运行效率。而基于 CMSIS-NN 框架,又产生了抽象程度更高,直接面向用户的高级应用层框架和辅助工具包,如独立开发者 Jianjia Ma 开发的 NNoM、Google 的用于微控制器的 TensorFlow Lite、意法半导体的 X-CUBE-AI、瑞萨电子的 e-Ai 解决方案等。这些方案普遍支持将使用特定框架训练的模型文件转化为适合部署于单片机上的形式的 c 库,并提供了模型推理的应用层接口,不需要用户手动维护底层结构
传统上,这类时间序列分类任务主要依靠信号处理领域的方法来处理数据,这种方式需要具有该领域较强的专业知识,并且严重依赖于启发式的特征提取(例如传统上电机利用振动数据进行故障辨识的方式)。传统方法只能提取浅层特征,从而导致无人监督和增量任务的性能下降,导致模型的准确性和泛化能力较差 本设计中由于使用意法半导体提供的 hal 库进行编程,并且使用意法半导体的 STM32CubeMX 工具生成项目,为了简化开发流程,直接使用了 STM32CubeMX 可嵌入的 X-CUBE-AI 工具包构建单片机上的推理框架
//Reference: J. Wang, Y. Chen, S. Hao, X. Peng 和 L. Hu, 《Deep learning for sensor-based activity recognition: A survey》, Pattern Recognition Letters, 卷 119, 页 311, 3 月 2019, doi: 10.1016/j.patrec.2018.02.010. ===== X-CUBE-AI 简介
当前使用深度学习方法实现时间序列分类的方法中,主要提出了基于循环神经网络 (RNN)、长短期记忆网络 (LSTM)、卷积神经网络 (CNN) 的独立、组合或者变体形式搭建的网络结构。就各网络特征而言,循环神经网络和长短期记忆网络适合识别具有自然顺序的短期活动,而卷积神经网络能够提取数据中的深层特征,更适合具有稳定特征的长期活动。对于本设计而言,考虑到部署设备的计算能力和运行空间有线,仅采用顺序结构的卷积神经网络 (CNN) 进行验证测试。 // 该段引用自意法半导体 X-CUBE-AI 手册,确认是否需要添加参考
X-CUBE-AI 通过提供在计算和存储器RAM 和闪存)方面均已优化的自动神经网络库生成器扩展 STM32CubeMX该生成器将预训练的神经网络从最常用的 DL 框架(如 Caffe、Keras、Lasagne 和 ConvnetJS转换为自动集成到最终用户项目的库。项目自动完成设置准备好在 STM32 微控制器上进行编译和执行。
对于进行时间序列分类的卷积神经网络而言,普遍上使用一维卷积神经网络 (1D-CNN)。在同等构型上,一维卷积神经网络的计算复杂度明显低于传统的二位卷积神经网络,并且具有更少的参数,更容易训练和部署推理。所以目前应用上,大多将一维的处理后的时间序列使用一维卷积神经网络处理,如果存在多个输入值(如采用三轴加速度计作为数据源),会将其并行的作为多个通道输入。在卷积过程中,多个通道相互独立,输入卷积层的通道个数也等于卷积层输出的通道个数 X-CUBE-AI 内核引擎,是 X-CUBE-AI 扩展包的一部分。它提供一个自动且先进的 NN 映射工具利用有限并受约束的硬件资源为嵌入式系统的预训练神经网络DL 模型)生成并部署优化且稳定的 C 模型。生成的 STM32 NN 库(专用和通用部分)可直接集成到 IDE 项目或者基于 makefile 的构建系统。还可导出定义明确且特定的推理客户端 API用于开发客户端基于 AI 的应用程序。支持各种用于深入学习的框架DL 工具箱)和层
而在一些研究中提出将多个输入值堆叠成信号图像并送入二维卷积神经网络中 (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, 收入 MM15. New York, NY, USA: Association for Computing Machinery, 10 月 2015, 页 13071310. doi: 10.1145/2733373.2806333.] image::doc_attachments/2024-05-08T03-27-13-238Z.png[x-cube-ai 内核引擎]
在另一些研究中直接将单轴的原始数据分成相等的长度并拼合成一幅图像送入卷积神经网络中该研究认为该方式进行分类效果应好于使用原始的一维信号作为输入。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.] 根据官方说明X-CUBE-AI 主要采用权重/偏差压缩和操作融合的方式进行 flash 和 ram 空间上的优化,通过设置不同的压缩等级和优化参数,可以取得推理精度和空间以及运行速度的均衡。
// 插图片 ===== X-CUBE-AI 模型转化和部署流程
考虑到本设计中相邻时间的三轴加速度数据之间的特征可能有助于对于设备工况进行分类任务故选二维卷积神经网络。本设计中仅有三轴加速度数据输入网络的张量大小为stem:[float32[?,W,3,1]]。其中 W 为采样窗口宽度,图像高度为 3输入通道数为 1 由于集成在 STM32CubeMX 中,所以 X-CUBE-AI 的转化和部署流程自动化程度较高。基本步骤如下所述
1. 导入使用特定框架生成的模型文件。本设计中使用 Keras 框架在 PC 上进行训练,导出格式为 `.h5df`。
//训练数据准备 2. 选择压缩等级/优化策略。由于采用权重/偏差压缩和操作融合的方式进行压缩,所以选择较大的压缩等级会导致模型精度产生损失。考虑到本设计中其他应用占用 flash 和 ram 空间不大,故选择 `Medium` 压缩等级,优化策略选择 `Balance`。
===== 训练数据的采集和标注
本设计中送入 CNN 进行识别的数据主要是由 LIS3DH 加速度传感器获取的 x、y、z 三轴的加速度数据。准备训练数据的主要过程如下。
* 从下位机接收上传的含有三轴加速度数据的数据包。将数据包解包,并转换成 ASCII 编码以供训练和阅读。将三轴加速度数据逐条储存在文本文件中,以逗号分隔,每个时间点一行。该过程中需要令被测设备保持一种工况,数据以数据流的形式上传并保存。上传的数据需要保证采样时间间隔相等,且在时间上连续。三轴加速度数据在时间上对齐。 3. 进行分析作业,进行维度信息报告网络的预分析(系统集成角度)
* 采集到足够多的数据之后,需要对数据进行标注。由于采集过程中令被测设备保持同一类型的工况,因此每次采集的数据为同一类 4. 确认导入的模型结构和转化的 C 模型结构。测试过程中导入的模型结构和转化的 C 模型结构如下图
===== 训练数据的滤波处理 5. 执行本地验证。启动所生成的 C 模型的验证过程。验证后生成的静态库参数如图所示。
//滤波器预处理 6. 执行目标上验证。工具箱会生成验证固件并烧录至目标单片机,单片机循环运行推理流程,通过串口返回运行时性能。
MEMS 加速度计的测量误差包括确定性误差和随机性误差。由于机械噪声和电子噪声等随机干扰引起的复杂随机干扰无法通过标定消除,是干扰测量数据准确性的主要因素。但是本设计中由于需要针对设备故障进行检测,如果滤波器选择不当,如故障信号频率位于滤波器的阻带区,或者时域上的特征信号被滤波器平滑处理,会导致工况识别的准确性大大下降,因此谨慎选择滤波器类型和参数至关重要。
由于本设计主要针对振动筛故障检测,常见振动筛工作频率普遍在 100Hz 以下,时域波形比较平滑,并且频域上故障信息往往混杂在噪声信号中,所以选取滤波器时主要考虑对于时域滤波整形的性能问题。在时域滤波场景中,通常使用滑动平均或者一阶递归实现。在阶跃响应下,递归滤波器的波形更加平滑,同时由于数据量较少,处理速度要求高,所以选择计算更快的一阶递归滤波器,通频带在低频区域,符合加速度计数据特性。滤波器的算法公式如下。 image::doc_attachments/2024-05-09T03-00-34-821Z.png[导入的 Keras 模型结构]
[stem] image::doc_attachments/2024-05-09T02-59-50-174Z.png[转化后的 C 模型结构]
++++
Y(n) = (1-\alpha) * Y(n - 1) + {\alpha}X(n)
++++ image::doc_attachments/2024-05-09T02-56-47-839Z.png[生成的静态库参数]
其中:
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 的推理模型转化和部署
==== 基于 Modbus 总线协议的程序设计 ==== 基于 Modbus 总线协议的程序设计
==== 设备间数据交换程序设计 Modbus 是一种广泛使用的串行通信协议,由 Modicon 公司(现为施耐德电气 Schneider Electric在 1979 年开发主要用于可编程逻辑控制器PLC之间的通信。如今它已经成为工业电子设备之间连接的标准协议之一。Modbus 协议的主要特点包括免费、易于部署和维护、支持多种电气接口和传输介质能够在各种环境中实现可靠的通信。Modbus 协议基于主从架构其中一个设备作为主节点其他设备作为从节点。主节点负责启动命令而从节点则响应并执行相应的操作。Modbus 的数据模型基于四个基本表离散量输入、线圈、输入寄存器和保持寄存器允许在主从节点之间读写大量的数据项。此外Modbus 还支持多种功能码用于执行各种操作如读取和写入寄存器、读取和写入线圈等。Modbus 协议支持多种传输方式,包括串口传输和以太网传输(如 Modbus TCP。Modbus 协议凭借其简单性、开放性和易实施性在工业领域得到了广泛的应用。无论是数据采集与监视控制系统SCADA还是远程终端控制系统RTUModbus 都能够提供高效、可靠的通信解决方案。
=== 基于 MEMS 和 CNN 的边缘计算振动监测节点蓝牙设备程序开发 本设计中仅使用 MODBUS 传输检测的状态结果。状态值均按 16 进制存储,这样协议上只需要实现 03 读指令对于向本机地址发送的未定义的指令可直接返回错误帧。03 读指令的请求帧格式如图所示。
image::doc_attachments/2024-05-09T08-35-32-683Z.png[03 读寄存器指令 - 主机请求]
03 读指令的响应帧格式如图所示。
image::doc_attachments/2024-05-09T08-42-58-805Z.png[03 读寄存器指令 - 从机响应]
在程序实现上,本设计选择 MODBUS-RTU 的报文格式,即串口模式传输二进制数据,主要需要控制的外设为串口设备。由于前述硬件设计中已采用自动换向电路,所以不需要手动控制 485 收发器的读写方向。
在报文解析上,采用`串口中断 + 环形缓冲区 + 状态机读取` 的方式接收并解析报文。当每接收到一个字节后均会产生中断,在中断中将接收到的数据放入环形缓冲区中。环形缓冲区的大小设置为理论可能最大帧长的 2 倍,确保在从机处理缓慢导致缓冲区溢出后,仍能保证缓冲区存在一帧有效内容,减少通信失败次数。报文的解析过程在主循环中进行。由于直接采用裸机编程,无法像在使用实时操作系统 (RTOS) 中新开阻塞线程等待报文,所以需要使用状态机的方式,如果未接收到的报文程度不足则保存当前状态,等待缓冲区长度足够后再进行解析。其中 CRC 校验使用查表法或者使用硬件 CRC 校验模块,以减少报文完整性校验消耗的时间。
==== 设备间数据交换程序设计 ==== 设备间数据交换程序设计
由于本设计中数据处理和蓝牙上传输分别由两个主控完成,所以需要实现一种设备间数据交换协议,实现蓝牙设备从数据处理主控获取数据并发送的功能。根据使用场景,由于主要设计仅传送推理结果(即运行状态信息),总体数据量不大,并且通信间隔可以较高且为点对点传输,对于通信线路负载和速率要求不高。为了提高通信稳定性,选择了可以由主机启动的 IIC 作为数据交换协议的底层实现方式。该方式在通信中由主机时钟线同步,相比异步的串口通信稳定性稍强。
由于 IIC 协议的特殊性,时钟线由主机控制,从机无法产生突发通信。所以程序上采用主机轮询的方式,主机发送查询指令,从机应答,期间均通过主机产生的时钟边沿同步。
该交换协议不封装上层数据格式,直接使用传统的 IIC 读写寄存器格式,写入和读取每次均为 1 字节 (8 bits)。读写协议如下图示意。
image::doc_attachments/2024-05-09T04-59-40-361Z.png[IIC 读写示意]
其中,第一个字节指定从机地址和读写方向。高七位 (7:1) 为从机地址,低位为数据方向,分别表示读/写。第二个字节为寄存器地址,对于本设计中,为可供读写的变量值的映射,当主机指令读写该寄存器地址时,即在代码逻辑中读取或者写入该寄存器地址所代表的变量值。第三个字节为数据值,长度为固定 1 字节。这样每次指令只读取或者写入 1 字节长度的数据。例如对于温度测量值,在数据处理主控设备中以单精度浮点类型 (float) 存储,读取该值需要发送 4 次指令。
=== 基于 MEMS 和 CNN 的振动筛故障检测设备蓝牙设备程序开发
本设计中采用南京沁恒 (WCH) 公司的 RISC-V 内核的集成蓝牙主控 CH582F 进行开发。该主控开发环境主要为 MounRiver Studio基于 risc-v-gcc 和 openocd 工具链实现代码编译、调试和下载。
不同于运行一般任务的单片机,因为蓝牙可能会和多个设备连接或者同时运行多个任务,为了解决多任务的调度问题,需要实现基于单片机的实时操作系统或者任务调度程序,能够以类似分时的方式实现多任务的伪并行。在沁恒的蓝牙开发组件 (BLE SDK) 中,提供了操作系统抽象层 TMOS。TMOS 是调度的核心BLE 协议栈、profile 定义和所有应用都围绕它实现。不同于传统的操作系统它是一个允许软件建立和执行事件的循环。TMOS 是通过时间片轮询的方式实现多任务调度运行,系统时钟来源于芯片实时时钟 (RTC)。用户通过注册任务Task将自定义的事件Event添加到 TMOS 的任务链表中,由 TMOS 进行调度运行。Event 事件标志位,为 1 则运行,为 0 则不运行。
在开发过程中,所有的任务都将注册到 TMOS 调度框架中。
==== BLE 广播模式程序设计 ==== BLE 广播模式程序设计
==== BLE MESH 模式程序设计 (optional) 本设计中采用 BLE 广播模式进行无线状态下的数据传输。功能上要求当蓝牙主控采集到数据处理主控所反馈的被测设备状态信息后,使用 BLE 广播模式直接将相关的状态信息包含在广播包中。这一设计主要服务对象为人员巡检场景。由于蓝牙单点广播的范围较小,所以需要接收端存在于设备附近进行接受,而每个蓝牙设备的 MAC 地址不同,实际应用中,可以通过接收端设备记录搜索到的广播设备地址,实现数据收集和巡检打卡的功能。
== 基于 MEMS 和 CNN 的边缘计算振动监测节点有效性验证(及工程集成应用) ===== 广播包 PDU 内容设计
=== 验证场景 广播包 PDU 数据是广播模式的核心部分,在仅广播不建立连接的情况下,所有的数据只通过 PDU 负载段 (Payload) 向外传送。本设计中设备处于广播状态,且作为不可连接的信标模式 (Beacon)。该模式主要有 URI Beacons、iBeacons 和 AltBeacons 三种类型,本设计中使用类似 iBeacons 的格式进行 PDU 负载段内容的设计。自定义的数据包格式如下图所示。
=== 基于 MEMS 和 CNN 的边缘计算振动监测节点工况识别准确性验证 image::doc_attachments/2024-05-11T05-02-31-706Z.png[广播数据段设计]
其中:
* Adv Flags 将广播数据包定义为 BLE 处于普通可发现模式和不兼容经典蓝牙。
* 设备名称为 `{B,L,E,V,A,R}` 作为显示名称
* 厂家 ID 作为设备版本表示,暂时保留 0xEFFF
* UUID 作为设备标志,根据设备 MAC 地址进行散列映射,基本保证不出现重复
* 状态信息作为数据处理主控识别结果的表示,最大可表示 65535 种状态类型
* 温湿度数据从数据处理主控采集,因为其最大可测量到小数点后两位,所以均放大 100 倍,一般使用 16 位整型广播
==== 程序框架设计
程序主要分为三个任务,由 TMOS 进行任务调度。
===== 数据采集任务
该任务定时触发,主要内容是从数据处理主控获取数据。使用前述“设备间数据交换协议”,分批次从数据处理主控读取状态识别结果以及温湿度数据。
===== 广播数据包任务
该任务定时或数据采集任务完成后触发。当产生数据采集任务相关事件产生后,先关闭广播,然后更新需要广播的数据包,再重启广播。定时触发时不关闭广播。
===== 射频校准任务
该任务定时触发,用于定周期校准射频部分,保证蓝牙稳定工作。
// == 基于 MEMS 和 CNN 的振动筛故障检测设备有效性验证
// === 验证场景
// === 准确性验证
== 总结与展望 == 总结与展望
本课题提出了一种基于 MEMS 和 CNN 的振动筛故障检测设备,该设备通过集成的 MEMS 加速度传感器和卷积神经网络 (CNN) ,实现了对振动筛振动信号的实时采集和分析。
=== 总结 === 总结
本设计中对于“基于 MEMS 和 CNN 的振动筛故障检测设备”,主要设计了检测终端的硬件部分、使用输入振动信号进行训练和推理的神经网络模型以及实际运行于检测设备上的数据采集、推理和数据传输软件部分。
对于检测终端的硬件部分,设计了电源转换电路、主控外围电路、传感器外围电路以及通信相关电路。本设计中基本实现了振动检测设备从数据采集到进行推理并输出推理结果的功能。
对于使用输入振动信号进行训练和推理的神经网络模型部分,设计了相适应的网络结构,并通过该网络训练得到了相应的推理模型。该网络使用三轴加速度计采集的加速度时域信号叠加形成的单通道二维信号图像作为输入,参考于 LeNet 网络结构,主要由一层卷积层和三层全连接层组成。该模型在本地运行推理取得了较高的识别精度。
对于运行于检测设备上的数据采集、推理和数据传输软件部分,分层次设计了相应的应用部分。使得故障检测终端设备能够使用传感器实时采集被测设备的振动信号,并能够静态地部署在本地训练并转化过的推理模型,且在推理完成后能够使用总线和蓝牙广播方式反馈检测数据。
=== 展望 === 展望
由于个人水平和时间有限,仅实现了“基于 MEMS 和 CNN 的振动筛故障检测设备”的原型部分。
在硬件设计上,由于理论和经验有限,仅对电源输入部分添加了常用的防过压和防反接保护措施,传感器和主控按照厂家数据手册进行了设计,而没有将其作为可实用的产品进行足够的加工合理性和稳定性论证和试验。
在神经网络部分,由于保守起见,仅搭建了较为简单的的卷积神经网络结构,没有尝试进行更复杂的神经网络推理和部署验证,也许通过调整网络结构、优化数据预处理流程以及调整训练相关参数能够获得更好的模型性能。
在主控程序的程序上也实现的较为简单,比如总线通信部分,没有对极端错误情况进行处理。以及使用蓝牙进行数据回传的部分可以设计使用 BLE MESH 组网进行数据回传,能够很大程度上解决当前使用广播方案通信距离十分有限的问题。
另外仍有很多设想但未作实现的部分。如数据回传后的可视化部分以及使用仿真优化的检测设备壳体设计。