跳到主要内容位置

Linux项目-基于边缘AI的液压系统状态监测平台

简介#

本项目开发一种基于边缘 AI 的液压系统状态监测平台。系统架构包括多参数传感器数据采集、中控数据处理与分析、上位机界面与故障预警三部分。多参数传感器(STM32G030)实时采集压力、温度、振动和形变等工业传感器的关键参数,通过 Modbus 传输至中控(STM32H563)。中控负责汇集与保存工业现场的数据,并进行实时异常检测,当上位机发出数据查询时,将处理后的数据通过 USB 传输至上位机(STM32MP157)。上位机提供 GUI 界面,用户可查看系统运行状态和分析结果,并集成 ONNXRuntime 推理模型进行智能分析和故障预警,及时通知用户进行预防性维护。

实物展示#

整体#

V1

V2

PCB#

界面#

QT界面-状态监测

QT界面-传感器数据

工业现场#

功能#

硬件介绍#

数据中控的 PCB 设计,主要是设计核心板外围电路,设计电源和 RS485 接口连接多个多参数 Modbus 传感器等,原理图如下:

PCB 如下:

![](img/projects/hyd/PCB_PCB1_2024-08-07 (3)_00.jpg)

工业多参数 Modbus 传感器在硬件上设计为下接多种不同类型的工业传感器,例如压力、温度、流量等传感器,主要功能为将模拟量通过 ADC 采样为数字量,通过 Modbus 协议转发给上层设备。

原理图如下:

PCB 如下:

![](img/projects/hyd/PCB_PCB1_2024-08-07 (4)_00.jpg)

软件介绍#

上位机软件系统基于 C++和 QT 框架开发,各个部分都是移植 libmodbus 库。libmodbus 的 --- libmodbus

该系统通过紧密协作和高效的数据通信实现数据的采集、传输和处理。具体流程如下:各个多参数 Modbus 传感器节点(STM32G030)采集的环境参数数据通过 Modbus-RTU 协议传输到数据采集中控单元(STM32H563);数据采集中控单元则汇总和管理这些数据,并通过 Modbus-RTU 协议将其发送至 MPU 主控单元(STM32MP157)。在 MPU 主控单元,数据经过后台处理及 AI 推理工具分析,最终通过 QT-GUI 界面展示处理结果供用户使用。

通过上述结构和流程,系统形成了一个高效且智能的数据处理闭环。它不仅能够进行多维度的环境参数监测,还能对数据进行深度分析,从而为用户提供智能化和实时化的数据展示和决策支持。

上位机#

上位机目前还没开发完成,期望版本是通过 ModbusTCP,这样上位机界面应当可以通过多种设备连接,包括手持设备、PC、Web 等。

故障诊断的 AI 模型是基于多尺度的神经网络,因为 ONNX 工具并不支持复杂网络结构,目前使用的简化版本,仅有一维 CNN 结构,且使用 python 实现。准确率比较低(80 左右),模型如下:

完整模型准确率基本在 99%准确率,见论文:https://doi.org/10.1038/s41598-024-66541-9

注:目前正在尝试移植到 RV1126 上,采用 C++实现,并尝试仅剥离 Transformer 模块,使用 FFT 变化与二维卷积。

这里放一下各个部分程序的流程图,详细代码见仓库HydraulicSystemMonitoringDevice: 工业液压系统监测装置,STM32MP157/STM32H5/STM32G0 系列开发。移植 libmodbus 库到 FreeRTOS/Linux 进行传感器数据收集与设备控制,实现 QT 交互界面以及 AI 异常监测。(开发中) (gitee.com)

Linux 上位机,GUI-QT 多线程实现:

H5:

工业多参数 Modbus 传感器,F0/G0:

相关资料#

modbus 库:libmodbus 的 --- libmodbus

构建的故障诊断模型-发表论文:https://doi.org/10.1038/s41598-024-66541-9

参考课程:【项目一】全场景工业互联设备管理系统解决方案(PC 上位机+中控+多传感器) (100ask.net)

软件代码:HydraulicSystemMonitoringDevice: 工业液压系统监测装置,STM32MP157/STM32H5/STM32G0 系列开发。移植 libmodbus 库到 FreeRTOS/Linux 进行传感器数据收集与设备控制,实现 QT 交互界面以及 AI 异常监测。(开发中) (gitee.com)