基于边云协同的设备数据采集及振动故障分析应用*
2023-09-18陈帝旭王晓峰
陈帝旭 郑 湃 王晓峰
(①中国科学院沈阳计算技术研究所,辽宁 沈阳 110168;②中国科学院大学,北京 101408)
随着2015 年国务院出台《中国制造2025》等一系列指导性文件[1],我国开始全面部署推进制造强国战略。提升我国高铁吊弦预配的智能制造水平,符合《中国制造2025》的智能制造发展方向,常州数控技术研究所发挥其在数控技术和自动化方面的技术优势,联合中铁建电气化局集团轨道交通器材有限公司,于2021 年成功开发融合了可以生产铝腕臂、钢腕臂和简统化腕臂的高铁智能化接触网腕臂柔性预配平台[2]。但目前高铁接触网吊弦预配的自动化和智能化水平发展依然不对称,该高铁接触网整体吊弦压接检一体化智造单元还是以人工辅助平台和半自动化为主,智能判断故障、生产数据信息化等智能制造技术的融入程度不高。究其原因是高铁接触网腕臂柔性预配生产线多设备多工艺的环境下,设备数据结构复杂和协议多样[3],仅伺服电机就有20 余个,严重阻碍了设备数据的及时采集。包含电机振动数据等大量复杂的设备高频数据未经处理就直接传输到云端进行故障分析[4],将导致数据传输带宽占用极高,不仅阻碍设备数据网络共享,还会使设备故障发现不及时,严重时会给制造企业带来巨大的经济损失。因此,有必要设计一种基于边云协同服务框架,靠近车间现场高效采集和预处理数据,并对设备故障实时预测的完整架构,以达到制造车间生产数据标准化、统一化的目的,推动高铁接触网整体吊弦压接检智造单元加速迈向智能化。
综上所述,数据是智造车间的核心[5],实现对设备数据的高效采集和实时处理是完成设备工作状态监控和数据分析的首要条件。但目前为止,大部分设备数据采集与振动故障分析方法没有兼顾数据采集效率、采集准确性和设备业务执行实时性的要求[6-10]。因此本文提出基于边云协同的设备数据统一采集与故障分析应用方法。边缘设备与云平台协同运行,既利用边缘计算的数据采集和局部数据处理能力,又利用云平台的数据分析和数据共享能力[11],边云协同运行极大释放网络的带宽,从而实现设备业务的快速响应。同时,运用OPC UA(OPC unified architecture,OPC UA)设备建模对采集项进行灵活定义,能兼容多种协议数据格式进行采集,使边缘设备数据采集的内容和时间可控,从而满足不同的需求。
1 边云协同数据采集架构设计
当前智造单元设备网络中存在大量协议繁杂且智能化程度不同的感知设备[12],传统数据采集方法堆砌各种协议进行采集,难以采集到实时、完整和准确的数据。针对这个问题,本文设计基于边云协同的数据采集架构,采用可兼容、可扩展的分层设计。如图1 所示,设计为设备网络、边缘数据中心和云中心3 层,包括异构设备数据采集、时序数据存储与预处理、边云数据协同3 个功能,负责将底层设备的原始协议数据采集并转换为OPC UA 格式协议数据,传输至时序数据库高效存储和实时处理,然后制定数据同步策略,将预处理后的数据协同到云端。接下来对以上功能进行实现。
图1 边云协同数据采集架构图
1.1 异构设备数据采集
本文基于OPC UA 技术,通过设计协议转换中间件,采集、解析和封装原始设备数据协议,并映射到OPC UA 服务器地址空间对应节点,实现使用标准OPC UA 协议信息在车间网络进行通信,以完成统一采集各类智造单元设备数据。
1.1.1 OPC UA 服务器搭建
设计良好的数据模型是搭建OPC UA 服务器的基础,也是将生产现场数据统一进行管理的关键[13]。根据数据采集需求,本文对智造单元设备的机械运动数据、伺服参数、传感器数据等,使用可视化信息建模工具UaModeler,根据设备实际情况描述设备对象和抽象建模,分别对设备创建各自的对象节点类型。建模后的智造单元某数控设备信息模型部分变量节点见表1。
表1 设备部分信息模型节点表
最后通过UaModeler 工具,将建模好的设备信息,导出为XML 格式的模型定义节点集文件保存待用。
设备信息模型配置好后,本文选择成熟的SDK 快速开发OPC UA 服务器,open62541 是开源的OPC UA 协议栈,使用C 语言开发,在实时性、嵌入式开发方面更具优势[14]。使用open62541 的开发工具节点集编译器加载XML 格式的设备信息模型,将节点信息转换为OPC UA 服务器可识别的类文件代码,并提供.c 和.h 库文件形式的调用接口,通过调用该接口方法,OPC UA 服务器将信息模型节点集实例化为OPC UA 节点,为服务器生成设备地址空间。
图2 所示为服务器的运行逻辑,首先通过UA_Server_new()方法创建OPC UA 服务器对象,在UA_Server_setConfig(server)方法中为OPC UA 服务器配置安全证书、名称、端口号等参数,再启动服务器监听程序,方法是UA_Server_run(server,&running),开启服务器对象实例,OPC UA 服务器启动并运行后,OPC UA 客户端连接服务器即可开始通信。
图2 OPCUA 服务器搭建流程图
底层设备使用OPC UA 通信,可以最大程度保证数据的可靠性。OPC UA 定义了一套统一的数据模型并使用强类型定义,用于描述和表示设备数据。统一的数据模型和明确定义的数据类型,确保了数据的格式和语义在不同系统和设备之间的一致性和完整性。同时,OPC UA 使用基于规范的TCP/IP 通信协议,避免了数据丢失、重复或损坏的情况,确保了数据在传输过程中的正确性和可靠性。
1.1.2 底层设备协议转换
本节设计一种具备扩展性和通用性的协议转换中间件实现协议转换功能,完成连接底层设备采集原始数据,再按对应设备的通信协议格式解析封装为OPC UA 格式的数据供OPC UA 服务器读取。实现数控设备原始数据的兼容采集。
协议转换中间件的设计包含通信配置模块、协议库模块、数据请求模块和解析封装模块。通信配置模块为各设备的通信提供初始化配置参数,包括连接设备所需的接口参数和数据项请求参数。如针对Modbus RTU 协议进行通信,数据请求配置需要知道一次读取请求的字节数、数据的起始寄存器地址等关键参数。协议库模块集成多种协议的通用操作函数和各设备厂家提供的专用设备通信函数,并提供统一调用接口。数据请求模块调用协议库中对应设备通信函数,加载通信配置中的参数信息,建立设备连接,并请求设备原始协议格式的字节码数据,实现对原始数据的采集。解析封装模块把每次数据请求返回的原始字节流数据分割为独立的数据片段,如图3 所示。
图3 数据片段分割示意图
最后将各个数据片段转换为可理解的数据后,按语义取出此次传输需要对OPC UA 服务器进行数据填充的设备数据,封装为OPC UA 数据格式由OPC UA 服务器进行读取。车间不同设备使用的通信协议和官方SDK 大都不同,故分别开发对应的协议转换驱动程序,通过接口的方式为OPC UA 服务器提供规范的调用,使OPC UA 服务器能同步读取设备最新的OPC UA 格式数据。
1.2 时序数据存储与预处理
车间设备的运行状态数据大多是带时间戳,并按顺序产生的高频时序数据[15]。传统关系型数据库数据存储和查询低效,难以满足车间实时性的要求,所以本文选型时序数据库存储时序数据。TDengine开源时序数据库具有低成本、部署快和读写性能远高于其他时序数据库的特点,所以本文在离车间现场较近的边缘数据中心服务器部署TDengine 时序数据库集群,通过TDengine 数据库的接口与TDengine 建立连接,发送数据写入请求,完成OPC UA 格式设备信息数据到TDengine 设备数据表的持久性存入。
时序数据是按时间顺序密集分布并存储的。在边缘层对数据进行清洗、预处理,让绝大部分数据靠近数据源高效处理,可以保障车间任务执行的实时性。相比于批处理,本文选择更高效、实时的流式计算作为数据预处理方式。TDengine 提供流式计算功能,用户可以通过设置聚合函数、表名、滑动窗口等参数定义1 个流处理事件,持续对流入窗口的数据进行预处理。以需要预处理的数据表作为流计算的源表,数据会被以定义的方式自动处理,并根据定义的触发模式将计算结果推送到目的表保存。
1.3 边云数据协同
边云数据协同是指在边缘计算和云计算结合的环境中,实现数据的协同和共享。通过将云端计算和存储能力推进至边缘数据源头,以提高数据处理和响应的效率。首先,在边缘端统一采集设备数据并在本地存储后,经过分析,边缘数据库中的数据包含3 个阶段:①M-data,结构化数据类型的数据源元数据;②C-data,对海量的M-data 数据进行清洗和预处理后的精炼数据;③K-data,将边缘存储的预处理数据汇聚进行融合和分析的云端数据。因此,仅将必要的经过预处理后的C-data 类型数据,通过以太网协同到云端,云端汇集C-data 整理为Kdata 数据进行深入分析,边云共享数据存储资源,减少了数据传输的延迟和带宽消耗。本文选择以从TDengine 数据库导出CSV 格式数据文件的方式,与云端通过HTTP 传输同步数据,云端TDengine 数据库将表导入进行持久化存储,边云在数据层面进行协同,减轻数据上传至云端的带宽压力,数据同步过程如图4 所示。
图4 边云数据协同示意图
2 边云协同电机故障分析应用
电机振动故障预测性维护对腕臂预配生产线设备健康十分重要,然而云端网络通信面临巨大的流量压力,电机端采集的振动信号很难实时上传至云端进行故障诊断应用,且传统故障诊断方法通过单时频分析的方式,人工提取时频图中的显著特征进行故障诊断的做法费时费力,不利于在边缘端实时自动化推理[16]。本文基于预处理后同步至云端的振动数据,设计一款边云智能协同的端到端电机振动故障识别算法。利用卷积神经网络(convolutional neural network,CNN)[17]能从大规模数据中自动学习特征的特点,结合CNN 与二维时频图,实现在边缘资源受限设备智能实时诊断电机故障的神经网络。
2.1 数据集预处理
从智造单元设备的伺服电机采集到的原始电机振动信号数据需要经过样本集切割和时频图转换处理才能作为卷积神经网络的训练输入。本文的电机振动数据集是由1 台数控机床电机模拟正常工作状态、电机转子受阻故障以及电机基座松动故障3 种电机运行状态的实验采集到的。在负载1 HP、转速600 r/min 的工况下,采样频率设为100 Hz,每次采集不少于720 000 个采样点,选择512 个采样点作为数据样本长度,使用步长500 的重叠采样法对振动信号数据集进行切割,以增强训练数据数量,最后得到正常状态和两种故障状态下的样本各1 200 个。
接着采用cmor3-3 小波基函数对电机样本数据集中的信号进行连续小波变换,通过不同尺度变换将一维时序信号转化为二维时频信号。以3 种类型信号时频图为例,图5 和图6 所示为一组相互对应的电机振动数据的时域图和转换后的时频图。
图5 3 种信号的时域波形图
图6 3 种信号的时频变换结果图
最终,得到电机不同状态的特征图样本各1 200 个,选取其中的720 个作为训练样本,剩余的480 个作为测试样本。不同故障样本数量及标签配置见表2。
表2 不同故障样本的数量及标签配置表
2.2 时频图结合CNN 的故障诊断方法
时频变换让故障信号转换为具有不同纹理及细节特征的时频图,而相较于其他浅层神经网络,CNN 具有充分学习和表达小波时频图复杂特征的能力,同时具备更快的运算速度,并避免了训练陷入局部极值等问题。故本文选择CNN 自动提取时频图像中的轮廓及差异信息,从而实现不同故障类型的准确识别。时频图转换方法主要采用了连续小波变换(continuous wavelet transform,CWT)方法。在上一节中,采用连续小波变换成功将一维振动信号转换为到二维时频特征图后,将其作为深度神经网络的输入,建立CNN 模型进行测试,完成基于时频图结合卷积神经网络的故障诊断方法,实现对电机故障的准确、智能诊断,故障诊断方法总体过程如图7 所示。
图7 时频图结合神经网络的故障诊断方法
主要流程包括:①对采集到的振动信号数据集进行故障分类,获得不同故障类型的原始振动信号;②对原始时域信号进行连续小波变换,以得到二维时频图,并调整时频图尺寸;③将生成的二维时频图按一定比例随机分为训练集、测试集和验证集;④建立CNN 模型,并初始化网络参数;⑤利用训练集训练CNN,直到损失函数收敛;⑥利用测试集验证训练好的CNN 模型的性能;⑦得到CNN 模型的识别结果。
2.3 边云智能协同
云端接收边缘数据训练模型再下放边缘端部署,以边云智能协同推理的方式将模型部署应用于边缘生产线故障预测场景,减小带宽波动带来的影响,协同过程如图8 所示。
图8 边云智能协同示意图
针对边缘设备在资源不足的边云智能协同应用场景下,执行大参数模型低效的问题,本文采取模型压缩策略,使用8 位模型量化方法,使其变得更加轻量化。TensorFlow 模型优化工具包提供了模型量化的工具,本文使用该工具量化经训练并已转换为 TensorFlow Lite 模型的电机故障诊断模型。量化前的.h 模型文件大小为1 074 kB,量化后的.tflite 模型压缩到了347 kB,减少了75 %的存储空间。
最后,压缩后的故障预测模型通过以太网传输到边缘数据中心存储,在边缘树莓派服务器部署Tensorflow Lite 框架,以实现模型的迁移协同推理,并在其中运行轻量化后的模型进行故障预测。
3 实验验证
本文依托于高铁吊弦预配智造单元某条生产线,在设备运行加工期间,连续采集10 天的设备状态数据进行试验。各实验设备使用C 语言和Python语言的协议转换驱动程序、故障定时诊断程序已安装在树莓派armhf 系统,OPC UA 服务器监听进程也已配置启动,且设备都已处于同一个局域网中。使用开源OPC UA 客户端输入服务器的URL 地址连接到OPC UA 服务器。本实验中,测试服务器URL 访问地址配置为opc.tcp://10.0.0.6:4 840。
3.1 数据采集方法验证
3.1.1 数据采集准确性测试
以使用OPC UA 客户端浏览生产线某台西门子数控设备信息为例,为其设置的命名空间为2,进入该设备地址空间监控实时更新的节点变量数据。如图9 所示,可以看到数控系统的编程坐标、切削和主轴倍率等设备节点值,将本文方法读取到的编程坐标值,与西门子数控系统面板上的数值在同一时刻进行比较,二者得到的数据一致且完整。此外,本实验还测试了数控设备紧急停机时,对应OPC UA 节点值的变化,结果表明,从客户端读取的数据项的值,与急停时数控系统面板观察到的数据值一致。
图9 OPCUA 客户端节点通信图
3.1.2 数据采集时延测试
由于OPC UA 协议格式数据带时间戳,可以借此测试数据从请求开始,再到传输至时序数据库存储所消耗的数据采集总时延。本实验针对生产线上包含不同协议的3 台智能数控装备分别采集X轴编程坐标数据项,得到3 台设备采集该数据项的平均时延。如表3 所示,与传统数据采集方式对比,本文所用的数据采集方法时延更低,平均在1.31 ms左右,比传统方法快了约2.5 ms。
表3 边云协同设备数据采集时延测试表
3.2 故障分析实例应用
采用YDAT501 型压电加速度传感器垂直于数控机床电机驱动端上侧磁吸安装。分别采用拆卸基座螺丝、转子人为增阻的方式引入损伤。在云平台上,本文使用了Windows 10 的64 位操作系统、i5-11300H@ 3.10 GHz 的CPU 以及Pycharm 作为模型训练环境。在训练神经网络过程中,得到了误差收敛曲线和准确率曲线,如图10 所示。
图10 accuracy 准确率与Loss 损失值图
将训练好的模型经压缩后传输到边缘端,部署在边缘树莓派ARM 处理器上,定义一个定时任务,每隔一段时间执行故障分析程序,从时序数据库中读取电机振动信号数据,通过set_tensor()函数输入,调用invoke()运行模型得到故障分类,输出诊断结果。诊断结果显示,CNN 表现出了较强的泛化能力和聚类能力,成功将具有较大时频图差异的同类故障样本识别为一类。同时,CNN 也展现了较强的特征提取和识别能力,成功地区分了具有相似时频图的异类故障样本。测试结果见表4 所示,与传统集中式云中心故障分析方法相比,本文应用在边云智能协同场景,基于小波时频图的CNN 的电机振动故障方法在准确率不受影响的情况下,故障分析响应时间明显变得更短。
表4 边云协同振动故障分析应用性能测试表
4 结语
本文对高铁吊弦预配智造单元传统数据采集技术的研究进行了创新,提出基于边云数据协同的异构数控设备数据统一采集和预处理方法,兼容异构设备协议实现到OPC UA 标准数据协议的转换,以时序存储服务器为核心,高效存入OPC UA 时序数据实时进行预处理。随后改进传统人工故障检测方法,提出结合卷积神经网络与小波变换时频图的电机振动故障诊断方法,训练并轻量化压缩模型,便于下放到边缘端进行部署,边云协同完成边缘电机故障的实时智能推理。最后将所提方法在现实智造单元生产线中验证,实验结果表示,本文提出的基于边云协同框架下的设备数据统一采集架构与故障分析应用,以较低成本,提升了数据采集和传输效率,不仅减少该智造单元中数据传输的网络带宽占用,也满足了设备故障分析响应的实时需求,具有通用性和高效性。