分布式实时运行数据驱动的液压支架群虚拟监测关键技术

2021-11-09 10:34李娟莉李梦辉谢嘉成王学文张鑫
北京理工大学学报 2021年10期
关键词:哈希液压分布式

李娟莉, 李梦辉, 谢嘉成, 王学文, 张鑫

(太原理工大学 机械与运载工程学院,山西 太原 030024)

煤矿智能化是煤炭工业高质量发展的核心技术支撑[1-3]. 在智能化的进程中,构建面向智能化综采工作面的虚拟监测平台,实时监测综采工作面装备的运行状态,对于建成更高层次的远程监控系统从而进一步实现工作面无人操作具有重要的意义[4].

液压支架作为综采工作面的核心设备之一,在综采工作面装备的协同运行过程中起着重要的作用. 不少学者对于单台液压支架的姿态测量[5]、虚拟可视化[6]等方面已经展开了相关研究. 对支架群组的研究对于单台支架运动的稳定性、支护系统的围岩动态稳定性以及综采工作面三机的协同运行具有重要的作用,为此,也有学者从自组织协同控制[7],自动调直[8]等方面对支架群组展开了相应的研究.

随着智能化技术的不断推进,液压支架电液控制技术已成为常态配置,在复杂底板、矿压等未知环境因素作用下,支架跟随预设程序进行自主动作可能会由于自身重心不稳,而与周围支架发生咬架、挤架等一系列意外问题,严重干扰着支架群的正常支护任务. 因此,必须要全面、准确、不间断地获得工作面所有支架的实时运行数据,通过大数据分析,及时发现存在的问题,实现复杂的工况条件下对支架以及群组的准确调控. 作者所在课题组结合虚拟现实技术,在完成对单台液压支架运动解析[9]的基础上,建立了液压支架群组的虚拟场景,对群组液压支架的网络协同操作[10]、监测可视化[11]等方面进行了研究.

随着智能传感和监测技术的不断完善,以及测点的增多和采样频率的提高,对液压支架姿态的监测数据量越来越庞大,仅仅依靠单机系统显然已经无法完成监测任务. 将分布式技术引入到智能化进程中,多台主机协同运行,对于解决特殊环境下单机系统无法完成复杂任务的情况具有很好的效果. TOMASZ等[12]提出了一种面向采矿业的分布式协同虚拟现实框架;ZHANG等[13]提出了一种基于分布式的、多智能体的三维虚拟监控方法;谢嘉成等[14]提出了基于局域网的协同监测,分布式地处理获得的各综采装备的实时运行状态数据.

本文基于分布式、局域网协同、负载动态均衡、以及虚拟现实等技术,提出了一种基于实时运行数据驱动、可识别数据交互器、动态分配任务的分布式液压支架群虚拟监测方法,建立了液压支架群虚拟监测系统. 在尽量减少分布式各主机之间数据传输量的基础上,利用多台主机对液压支架群进行监测,在此基础上,对各主机的任务量进行分配,且当系统负载失衡时,能自主地进行任务的重新分配.

1 液压支架群虚拟监测系统总体框架

系统的总体框架分为三层:物理层、模型层和应用层,各层执行特定的功能,其结构如图1所示. 物理层主要完成现场监测体系的搭建,负责姿态数据的采集与存储,并且利用实验室局域网将数据实时写入数据库中. 模型层主要完成三大关联模型的建立,首先建立实时数据驱动模型将物理层采集的数据用于可视化监测;其次建立基于可识别数据交互器的分布式局域网协同模型;最后建立了基于一致性哈希算法的多主机动态分配模型. 应用层主要通过编写GUI,实现良好的人机交互,能够稳定、流畅地完成监测任务,将监测信息直观清晰地显示给用户.

图1 分布式虚拟监测系统结构Fig.1 Structure of distributed virtual monitoring system

2 实时运行数据驱动的液压支架虚拟监测模型

虚拟监测模型如图2所示. 首先通过安装在支架上的传感器实时获取单台支架的姿态;其次在每台支架上安装采集模块,负责单台支架的信息采集,多台支架之间通过基于485总线的采集模块级联将信息进行汇总;然后通过局域网传输至工控机中,在工控机中实现数据的整合、存储以及二维显示;将工控机中的数据实时写入数据库中实现历史数据的存储以及最新数据的实时更新;可视化软件通过预留的数据接口不断读取数据库中特定表格的数据,经过数值转换提高精度以及即时演算后,最终实现虚拟支架姿态与真实支架姿态的实时同步.

图2 液压支架虚拟监测模型Fig.2 Virtual monitoring model of hydraulic support

2.1 实验室条件下的液压支架姿态监测

本文对液压支架的监测数据包括后连杆,顶梁,护帮板和底座俯仰角、横滚角、偏航角的角度以及推移油缸杆的伸长长度. 在单台支架上安装各类传感器如图3所示,在多台支架上按相同方式布置.

图3 单台液压支架传感器布置方案Fig.3 Layout scheme of single hydraulic support sensor

2.2 姿态数值转换方法

由于传感器的测量坐标系与模型中部件所处的坐标系不完全相同,对同一个部件的姿态而言,传感器测量的数值不能与模型中对应部件的姿态数值直接相等,需要进行转换. 支架坐标转换如图4所示,取平面A为传感器测量的基准面,垂直面B为传感器测量值所在平面,平面C为底座所在平面,垂直面D为模型中部件姿态的测量面. 当底座有倾角时,传感器的测量值仍是相对于面A的,而模型中姿态值的改变是相对于面C的,传感器测量值与模型上测量值分别位于面B、D,此时需要进行数值的转换.

图4 液压支架坐标转化Fig.4 Coordinate transformation of hydraulic support

设定表征支架模型姿态的矩阵为Zm=[β1β2β3β4β5β6β7],传感器测量值矩阵为Zs=[α1α2α3α4α5α6α7],βi、αi(i=1~7)分别表示模型和传感器测量两种方式下,支架后连杆、顶梁、护帮板的角度、推移油缸杆的伸长长度以及底座的横滚角、偏航角、俯仰角. 建立Zm与Zs的关系为

(1)

3 基于可识别数据交互器的分布式液压支架群虚拟监测模型

如果仅仅通过单台主机实现对所有支架的姿态监测,由于对主机硬件和数据传输网络的压力太大,势必会造成监测卡顿等现象. 针对这种情况,在上述实时数据驱动模型的基础上,提出一种C/S模式下的基于可识别数据交互器的分布式虚拟监测模型,如图5所示.

图5 分布式虚拟监测模型结构框图Fig.5 Structure diagram of distributed virtual monitoring model

该方法将所有监测数据分配到多台主机,每台主机负责监控部分支架的姿态,多台主机之间通过基于可识别数据交互器的关键参数同步方式进行数据传递.

3.1 基于数据交互器的状态同步

在实验室已有的局域网环境下,通过网络地址和端口号,搭建基于C/S(客户端/服务器)模式下的网络环境 . 在该基础上进一步进行数据交互方式的设计,考虑到井下网络资源紧缺,数据交互要尽量少地占用网络资源. 为此,提出了基于数据交互器的状态同步方法,该方法需要建立一个空物体作为数据交互器,数据传输内容仅为支架姿态的关键参数,只需占用少量的网络资源即可实现状态同步. 与常规方法相比:该方法将进行网络同步的物体从具有实际意义的实体(液压支架)中脱离出来,使网络同步不受实体数量或者规模的影响.

3.2 数据交互器判断归属

在分布式系统中,每当有新的主机加入,都会生成新的数据交互器,并将该交互器投影到所有的服务器和客户端中. 如图5中数据交互器所示. 在一台主机中,多个节点需要进行归属的判断,从而将属于自身的节点和镜像节点区分开来. 在分布式局域网中,每个节点都有唯一的网络标识,该标识在数据交互器节点加入网络中时生成,可用该标识实现节点的识别,从而实现归属判断. 在节点归属判断完成的基础上,可以进行节点功能的分工. 属于主机自身的节点可以读取数据库中的数据,而该主机中其他多个镜像节点则只负责接收从其余主机通过局域网发送来的数据.

3.3 分布式系统中的数据同步

上述过程完成的是网络同步的“搭桥”过程,在通道连接好的基础上,需要进一步实现数据的传递功能. 各主机之间的数据传递过程使用了Unity3D中基于NetworkView组件的RPC(remote procedure calls)远程过程调用函数,该函数可以通过调用远程计算机上的函数实现数据传递过程;使用了Unity3D中OnSerializeNetworkView函数,该函数可将数据进行序列化与反序列化. 上述两种方法的共同使用的实现了姿态数据在各主机之间的传递.

4 基于一致性哈希算法的监测任务动态分配模型

4.1 基于一致性哈希算法的分配策略

根据工况的复杂程度、监测需求和主机的负载状况等,每台主机的监测任务实时动态调整,可以避免造成不必要的资源浪费以及使系统时刻保持负载均衡状态.

目前有许多关于分布式系统的负载均衡以及任务调度的研究与应用[15-16],其中一致性哈希算法可以在系统变动尽量小、尽量保持稳定的情况下实现动态分配,本文选用一致性哈希算法进行主机任务的动态分配.

利用一致性哈希算法实现主机任务动态分配的关键是需要实现两级映射,如图6所示,第一级映射需要将全部支架以及主机映射到特征空间,特征空间中每个元素表征一台支架的全部姿态信息,每个元素名称与含义唯一;第二级映射以特征空间中每个元素的名称为Key值,利用一致性哈希算法将每个元素一一映射到哈希环上,按顺时针方向,哈希环上的支架节点寻找离其最近的主机节点,从而实现每台主机任务的动态分配. 在分配结束后,将分配结果发送到主机各自的数据交互器,数据交互器根据分配结果从数据库中读取相应支架的数据.

图6 基于一致性哈希算法的分布式系统两级映射Fig.6 Two level mapping of distributed system based on consistent hash algorithm

4.2 主机负载状况评价

主机的负载状况由多个影响因素共同决定,包括了主机的CPU占用率、内存占用率、监测画面的帧率以及该主机的任务量等等,利用式(2)获取单台主机的负载状况评价指标P.

(2)

式中:P(i)为第i台主机的评价指标,该值越小表示负载越小;Lcpu(i),Lmem(i),Lfps(i),Ltask(i)分别为第i台主机的CPU占用率、内存占用率、帧率百分比以及任务量百分比;[α(i)]为系数矩阵,可以调节各因素在评价参数中所占的比重.

主机的CPU和内存占用率可直接通过程序进行获取,而帧率百分比和监测任务百分比可以通过式(3)获取.

(3)

式中:FPScurrent表示主机运行时的画面帧率;FPSstandard表示帧率参考值;该值与主机的硬件状况相关,此处选作60帧每秒;Taskcurrent表示主机当前的任务量;Taskall表示全部的任务量,此处将任务量量化为支架的数量.

4.3 分布式系统的负载均衡评价

在对系统中主机负载状况进行评价的基础上,需要进一步对系统的负载均衡性进行评价,此处建立基于标准差的负载均衡评价方法,利用式(4)获得系统的负载均衡评价指标S.

(4)

式中:N为主机的总数;S即为系统的负载均衡评价指标,该值越小表明系统的负载均衡性越好.

4.4 系统初始化时监测任务的分配

节点在哈希环上的位置以及哈希环的长度可由式(5)、式(6)获取.

Position=hash(Key)%N

(5)

N=numOfYyzj+

numOfHost*virtualNodes

(6)

式中:hash(Key)表示通过SHA-1(Secure Hash

Algorithm1,安全散列算法1获取到的节点哈希值;Key为主机节点的IP地址或支架节点的唯一名称;Position为节点在哈希环上的映射位置;numOfYyzj为需要监测的支架数量;numOfHost为主机节点数量;virtualNodes为虚拟节点个数;最终哈希环的长度应稍大于所计算的N值.

将主机节点和支架节点映射在哈希环上,如图7(a)所示. 支架节点和主机节点在哈希环上均匀分布,支架节点按顺时针方向寻找离其最近的主机节点,如图中支架节点1落在了主机节点1上,即支架1的监测任务由主机1负责,当有多台支架时,依此类推进行任务的分配.

图7 基于一致性哈希的任务分配示意图Fig.7 Diagram of task assignment based on consistent hash

但是实际情况可能如图7中(b)所示,主机节点聚集在一起,导致分配不均匀. 针对这种问题,引入虚拟节点如图7中(c)所示,虽然每个主机节点的物理节点只有一个,却有多个虚拟的节点,如支架节点1落在了主机节点1的2号虚拟节点上,则支架1的监测任务由主机1负责,虚拟节点的引入可在一定程度上解决由于主机节点聚集导致的任务分配不均匀的问题.

4.5 系统运行中监测任务的动态分配

在进行监测任务的动态分配之前,需要对开启动态分配的条件进行设定:当单台主机的负载状况P和系统的负载均衡评价S超过设定的阈值时,系统会自动进行任务的动态分配,程序流程图如图8所示. 其中,计算负载均衡评价指标P的程序流程图如图9所示.

图8 监测任务动态分配Fig.8 Dynamic assignment of monitoring tasks

图9 负载均衡评价指标PFig.9 Load balance evaluation index P

系统在运行过程中按照上述分配方法对每台主机的任务量进行动态调整,通过有意改变各主机在哈希环上虚拟节点数量的比例,从而实现了任务“有目的性”的调配. 任务的动态分配保证了在系统运行过程中,任务量较大的部分始终占据更多的硬件和系统资源.

5 试验验证

5.1 试验系统

本课题依托于煤矿综采装备山西省重点实验室,实验室配备有一套综采成套试验系统,该系统可以通过电液控制阀控制液压支架发生升架、降架、移架等操作. 在Unity3D中通过C#语言编写程序实现上述功能,在实验室中选择三台电脑做为主机进行分布式系统的各项测试.

5.2 数据准确性试验

为了方便地调整底座的角度,数据准确性试验将在真实支架模型上进行,实验室现有的支架模型是严格按照真实支架比例制造的,此处以支架的后连杆以及顶梁角度为试验对象. 在支架模型上布置各类传感器,如图10所示.

图10 模型上传感器布置方案Fig.10 Sensor layout on Model

试验过程中不断调整底座姿态,记录数据如表1所示,其中α5、α6、α7分别为底座横滚角、俯仰角和偏航角,α1、α2分别为传感器测量的后连杆以及顶梁角度,β1、β2分别为经过转换后的后连杆以及顶梁的角度.

表1 数据准确性试验数据记录表

由上表可以看出,真实支架模型后连杆、顶梁的传感器测量值会随着底座姿态的变换而变换,而经过转换的角度值几乎保持不变,说明转换公式达到了预期的效果. 将转换后的数值用于模型驱动,即可保证真实支架姿态与模型姿态的一致.

5.3 分布式系统监测任务初始化试验

在系统开始运行时,需要进行监测任务的初始化分配,设定每台主机的负载状况P相同,设定需要监测的支架数量为69台,根据式(6)得到哈希环的长度为200. 当每台主机的虚拟节点个数为1时,部分支架节点和主机节点在哈希环上的位置如表2所示.

表2 节点在哈希环上的位置

将所有节点绘制在哈希环上,其在哈希环上的分布和每个主机节点上支架节点的数量如图11(a)所示,可以看到主机节点密集分布. 此时系统的负载均衡性较差,增加主机的虚拟节点个数为3、5、7,节点分布状况如图11(b)、(c)、(d)所示.

图11 系统初始化节点分布图Fig.11 Distribution of system initialization nodes

由图11中的节点数量分布图可以看出,随着主机虚拟节点数量的增加,分配到多台主机上的支架数量逐渐趋于均衡. 利用式(2)得到各主机的参数P,其中设置系数矩阵为{0.2,0.2,0,0.6}. 利用式(4)计算得到虚拟节点个数(Nodes)不同的情况下系统的负载均衡评价指标S,如图12所示.

图12 主机虚拟节点个数与均衡性指标关系图Fig.12 Relationship between the number of virtual nodes and the balance index

由图12可以看出,当虚拟节点的数量增加到一定程度时,节点数量的增加对于系统均衡性的作用越来越小,在实现需求的均衡性前提下,主机虚拟节点的数量应该越少越好. 在系统中设置初始化的负载均衡评价指标S的阈值为0.1,当S低于0.1时,就认为系统负载均衡性良好.

在本次试验中,S值小于0.1的虚拟节点个数有8和9,按上述的原则,选择每台主机的虚拟节点个数为8作为初始化设置对系统进行初始化.

5.4 分布式系统监测任务动态分配试验

在上述系统初始化的基础上,进行任务的动态分配试验. 当虚拟节点个数为8时,各主机负责监测的支架编号如表3所示.

表3 分布式系统任务分配表

初始化后系统开始执行正常的监测任务,设置主机负载状况评价系数矩阵为{0.2,0.2,0.5,0.1}. 增加第三台主机的监测任务量直到系统出现卡顿,此时系统触发监测任务的动态分配,执行一次或多次动态分配过程后,系统再次达到正常的运行状态. 系统动态分配过程中的各项指标变化如表4所示.

表4 监测任务动态分配中各项指标变化

试验次数0表示初始化分配结果,此时系统并未开始运行;试验次数1表示系统正式开始运行并且增加了第三台主机的任务量,可以看到此时主机3的指标P值和指标S值都大于设定的阈值,此时系统的动态分配功能会被触发;试验次数2和3表示进行了两次分配后,各主机的指标P和指标S都回到正常的范围,表明在该种分配方式下,系统可以正常流畅地运行.

5.5 分布式系统延迟性测试

在Unity中编写XML文件,分别获取系统运行过程中三台主机监测画面上某台液压支架的后连杆角度值(θAng)得到历史数据曲线(图13). 通过图分析可得,系统正常运行过程中,三台主机画面上显示内容几乎完全同步,不存在明显的延迟现象.

图13 液压支架后连杆角度值历史数据曲线图Fig.13 Historical data curve of angle of hydraulic support rear connecting rod

5.6 整体运行效果测试

将Unity3D中建立的系统发布,将发布后的程序在三台主机上运行,三台主机的显示画面如图14所示.

图14 三台监测主机画面Fig.14 Pictures of three monitoring hosts

通过测试,在三台主机的情况下,整个系统运行良好,在进行大量数据的监测时,未出现明显的卡顿现象,说明分布式虚拟监测系统达到了预期的效果.

6 结束语

建立了基于数据驱动的液压支架虚拟监测模型,同时提出了数值转换方法,经过试验验证了转换公式的准确性,实现了真实支架姿态与模型支架姿态的一致性. 建立了基于数据交互器的分布式虚拟监测系统. 采用分布式的方法将支架的监测任务分配给多台主机,主机之间通过数据交互器进行数据的传递,在尽量减少网络传输数据量前提下实现了分布式系统中各主机之间的数据传递. 提出了基于一致性哈希算法的液压支架分布式虚拟监测系统任务分配方法,通过试验验证,该方法充分考虑了主机的负载状况,可以实现分布式系统的负载均衡以及资源的最大化利用. 该分布式系统的实现过程中,对硬件和Unity3D软件自带的网络同步函数进行了研究,接下来将对基于一致性哈希算法的负载均衡相关算法进行深入研究,使算法更加适应综采工作面的情况,同时将系统扩展到综采工作面中的其他设备,从而实现综采工作面装备的整体虚实同步.

猜你喜欢
哈希液压分布式
基于AMESim液压挖掘机回转系统仿真分析
新一代分布式母线保护装置
基于仿真的液压传动课程教学改革
多四旋翼无人机系统分布式分层编队合围控制
液压系统常见污染及控制措施的探讨
山西公布首批屋顶分布式光伏整县推进试点
哈希值处理 功能全面更易用
Windows哈希值处理不犯难
文件哈希值处理一条龙
液压管路系统随机振动下疲劳分析