刘 昕 鑫, 范 道 林
(中国水利水电第七工程局有限公司,四川 成都 610213)
近几年,国内对群塔作业防碰撞技术的研究已经越来越重视,但防碰撞系统或装置仍未能得到普遍应用。随着各类新兴技术的发展和成熟,在算法设计、硬件技术等方面仍有一定的研究和进步空间[1,2]。
在算法设计方面,笔者通过分析国内各机构和我公司的研究进程发现:有的仅关注于幅度限位、高度限位和角度限位等简单功能集成,所采用的防碰撞算法处理较为单一,难以全面、准确地预测碰撞危险;有的侧重于区域限制计算,无法满足诸如水电站大坝施工环境下不同类型塔机交叉作业的需要;有的算法设计过于复杂,未考虑到实际工程应用的可行性;还有的算法存在对不同型号塔机的推广应用兼容性不足的问题。[3]
笔者所设计的碰撞预警算法已应用于瓦托水电站工程。该工程施工场地狭小,工期紧张,工作强度高。三台设备的活动区域在施工现场互有交错,设备运行过程中交叉施工干扰极大,安全隐患突出(图1)。笔者结合瓦托水电站施工现场的实际情况,从系统实用性、可靠性及系统开发时限等出发,设计出一种更为精简、易推广的算法。
图1 瓦托水电站施工现场
目前,分布式构架越来越受到计算机界的青睐,对分布式系统的定义如下:分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。[4]由于瓦托水电站施工现场仅有三台用于混凝土浇筑的塔机,且其属于塔身底座固定类型,无需通过GPS技术进行大范围位置定位,因此,为了降低系统硬件要求、实现模块化,技术人员将分布式构架的概念应用于碰撞预警系统中。
本课题开发出的分布式系统的特点为:
(1)取消作为中心节点的基站,实现设备间依靠无线网络的协同互联。
(2)在系统中所有设备的司机室配备一台平板电脑作为控制主机,各设备根据自身需要获取信息,仅进行与自身相关的防碰撞计算,从而使信息传输量和计算量得到降低,对硬件配置要求亦随之降低。
(3)在分布式构架之下,各施工设备上的软硬件配置和功能基本相同,易实现模块化,从而便于系统中施工设备数量的增加等后续功能扩展或向同类推广,适应性强。
图2为碰撞预警系统的分布式构架体系,系统涵盖的每台塔机上都形成一个完整而独立的模块,各模块之间借助无线网络进行信息互联。每台塔机上均以控制主机为中心,配备有为自身碰撞预测服务的信息采集、传输和处理设备。同时,均编制有功能完备的碰撞预警软件,软件的后台进行碰撞预警计算,前端界面实现现场运动模拟、信息警示等功能。
图2 系统分布式构架示意图
笔者根据塔机群作业的设备特点和环境特点分析出以下几个问题:无论是平臂塔机,还是动臂塔机,其运动状态均由回转、变幅和起升三个方向的复合运动组成。其中,由于回转运动惯性较大、发生较频繁、运动路径范围广,相比较之下最易遭遇碰撞事故,因此,应当将回转运动作为主运动形式进行碰撞预警。
鉴于塔机作业的回转速度一般不超过5°/s,在狭小场地和紧张工期的前提下,塔机之间常常近距离作业,如果过早报警或漏报、误报都将影响工作效率或造成损害。因此,碰撞预警系统需要预测未来多长时间后发生碰撞并制定出合理的提前报警时间,根据时间的长短区分警报级别。
分布式构架之下,各塔机只考虑自身是否会撞到对方,因此,当自身塔机产生运动时(包括回转、变幅和起升),才开始进行相应的碰撞预警计算,避免自身与外部碰撞。即对每台塔机来说,当需要自己主动避让时,才对自身构成碰撞警报。
碰撞预警算法针对的对象主要是大坝施工现场的三台塔机。俯视角度观察到的瓦托水电站施工现场的三台塔机的平面布置情况见图3。图中左侧、右侧均为平臂式塔机,左右两个直径较大的圆圈代表其工作覆盖范围;中间为动臂式塔机,中间直径较小的圆圈代表其工作覆盖范围。笔者以左侧、右侧、中间塔机的简称指代三台设备。塔机布置的剖视情况见图4。
图3 塔机平面布置图
图4 塔机布置剖视图
虽然施工设备的三维形体复杂,但可将其看作多个简单形体的组合。对该系统中塔机而言,根据其运动状态,可以将其整体解析为固定不动的塔身部分以及发生运动的起重臂、平衡臂、悬吊重物的钢丝绳几部分,即可将不同设备间的碰撞问题转化为设备不同部件间的碰撞问题。在该系统中,设备部件间存在26种可能发生的碰撞情况(表1)。
针对分解后的塔机部件间的碰撞现象,起重臂投影为一条线、钢丝绳投影为一个点、塔身外轮廓投影为圆形或方形,将碰撞问题简化为平面上点线之间距离的研究,进一步降低了算法难度。
此时,算法的繁琐程度仍然较高。笔者结合碰撞现象的实质以及“主动设备避让原则”,对所有碰撞情况进行了共性化处理,提取出了点碰线、线碰点、点碰固定障碍物、线碰固定障碍物等4个核心计算函数,在该系统中,26种碰撞现象在经过角度映射等处理后均可归类到以上4个本质计算函数中去(表1)。
表1 部件间所有可能发生的碰撞现象表
综上所述,经过部件分解、二叉树遍历递归算法、三维向二维缩维、共性化处理等步骤,算法得到精简,易推广。[5]
根据算法设计思路,笔者对某种具体的碰撞现象的分析过程进行了如下说明。
首先,以右侧塔机起重臂碰撞左侧塔机钢丝绳为例进行说明。右侧塔机是主动设备,左侧塔机为被动设备。右侧塔机的起重臂垂直投影后可简化为一条一端固定、另一端轨迹是圆的线段;左侧塔机钢丝绳垂直投影后则简化为一个点。此时,碰撞问题实质上成为某一高度水平面上移动的线和点是否会相撞的问题。
线碰点在投影平面中的轨迹见图5,共有四种情形。因为所有的塔机底座固定,两塔机的塔身中心轴距离为L;左侧设备经过变幅后钢丝绳所在的竖直轴线与塔身中心轴之间的距离为R1;右侧设备起重臂投影后对应线段的长度为R2,投影平面上起重臂回转时扫过一个半径为R2的圆形面。由于现实中L、R1、R2之间的关系不同,导致潜在碰撞点及计算方法不同,通常分为以下四种情形:
(1)R1+L (2)R1>L+R2(R2极小); (3)R1+R2 (4)其他(R1、R2所在两圆形轨迹有交点)。 图5 线碰点四种情形示意图 情形一,当R1+L 情形二,当R1>L+R2,意味着右侧设备回转运动扫过的范围极小,无潜在碰撞点。 情形三,当R1+R2 图6 线碰点R1+L 情形四,其他两个圆形轨迹有交点的所有情形。如图7(a)所示,此时潜在碰撞点无法直接确定。假设左侧设备(被动设备)的碰撞部件(钢丝绳)在所预测时刻所处的回转角度为β(图7中未标出),假设两设备圆形轨迹有两个交点A、B(包含只有一个交点的情况,看作A、B点重合),A点对应角度β1(β1≤180°),B点对应角度360°-β1,β2代表安全裕度(10°)。根据被动设备所处位置的不同(β不同),潜在碰撞点不同。 图7 线碰点情形四(两设备轨迹有交点)危险范围示意图 在线碰点的情形四: 若β1+β2<β<360-β1-β2,无潜在碰撞点; β1<β<β1+β2,潜在碰撞点为A(如图7(b)); 360-β1-β2<β<360-β1,潜在碰撞点为B(图7(c)); 若β<β1或β>360-β1,潜在碰撞点为C(线与点圆形轨迹的切点)(图7(d))。 得出潜在碰撞点后,再确定危险范围。以潜在碰撞点A为例,点A是左侧设备圆形运行轨迹上的一点,右侧设备(主动设备)在其回转中心以O为圆心的坐标系中,点A对应的角度为αA。假设右侧设备当前所处回转角度为α(图上未标出),α1代表预留的安全裕度(10°),α2代表右侧设备制动所需预留的角度。那么,实线和虚线处的α1+α2分别代表右侧设备逆时针和顺时针回转时需要发出碰撞警报的角度范围。 另外,潜在碰撞点并非真实的碰撞点,找到潜在碰撞点的目的是为了确定危险范围。碰撞预警的目的是:在近距离作业时提醒设备操作人员提高警惕,只要主动设备离外部物体距离过小就应该发出碰撞警报,因此,允许存在设备进入预警范围后经过一段时间正常运行又自己走出预警范围的情况。 线碰点计算方法如下: (1)右侧设备为主动设备,其碰撞部件经过缩维处理后可简化为一条线。 (2)左侧设备为被动设备,其碰撞部件经过缩维处理后可简化为一个点。 (3)算法输入参数包括:a.两设备底座中心位置及设备高度等外形轮廓;b.左侧设备(被动设备)回转角度、变幅位置和起升高度;c.右侧设备(主动设备)回转角度、变幅位置和起升高度;d.右侧设备(主动设备)目前的警示级别;e.右侧设备(主动设备)正常制动需预留的回转角度;f.右侧设备(主动设备)紧急制动需预留的回转角度(其中,b、c、d的参数为实时获得;a、e、f中的参数基本固定)。 (4)根据被动设备部件的位置、运动方向等,结合主动设备自身的运动轨迹确定潜在的碰撞点,再根据潜在碰撞点的位置以及主动设备的位置、运动方向等判断出危险范围。 (5)对于算法的输入变量,无论被动设备或主动设备,其回转角度、变幅位置和起重高度等运动信息既可以是当前的参数,也可以是10 s/4 s/2 s后的预测值。 (6)首先判断设备是否已处于潜在碰撞点对应的危险范围内,若处于该范围,采用上述方法若能有效适用于所有线碰点一类的现象,必须关注以下注意事项: ①根据碰撞预警规则,所有回转角度应及时处理并保持在0°至360°,从而使数据整齐,便于比较和计算。 ②碰撞部件缩维后是“线”的情况下,一般需要将缩维后的线段长度作为算法的输入参数。当设备为平臂式塔机时,该参数的值是起重臂的全长;设备为动臂式塔机时,该参数值为起重臂全长与其变幅倾角余弦值的乘积。 ③由于动臂式塔机的起重臂有斜度,而起重臂上只有与平臂式塔机起重臂等高的那一点才可能遭遇碰撞。在这种情况下,动臂式塔机的碰撞部件——起重臂在缩维后可简化为一个点,因此,这类碰撞现象本质的研究对象是点和线。该点对应的变幅位置、起升高度、回转角度才应该作为算法的输入参数。 ④碰撞现象里主动和被动设备左右位置互换时的调用方法:a.所有回转角度α的映射:若α≤180°,令α=180°-α;否则,令α=540°-α。b.所有回转角速度的映射:数值不变,回转方向相反。c.变幅运动和起升运动无映射变化(例如“中间塔机起重臂碰撞右侧塔机钢丝绳”之类,其本质是线碰点,只不过是其主动设备在左侧、被动设备在右侧,意味着此时两设备的运行轨迹和危险范围应当以平面上的竖直轴线作对称处理,但其实质以及解算步骤完全一致)。 ⑤对于碰撞部件涉及到的平衡臂碰撞现象,在算法输入参数里,只需将起重臂长度和回转角度位置更换为平衡臂的对应数值即可。 同理,可以总结出其他碰撞情况(点碰线、点碰固定障碍物、线碰固定障碍物)的计算方法。 该算法初步设计完成后,笔者编制了一个单机测试软件,用于检验算法设计是否合理、编写是否正确。该软件通过编译工具Visual Studio、使用C#语言编写。 笔者对四种本质碰撞情况——线碰固定、点碰固定、线碰点、点碰线分别编写了一个方法。该软件中包含可能发生的所有碰撞现象,并对这26种碰撞现象进行了编号,每种碰撞现象都可以调用四个本质计算函数之一判断出警示级别。 运行时,先对主动设备进行识别,识别后仅调用与主动设备相关的碰撞预警算法。以中间塔机为例,其需进行预警的现象是1号到10号,那么,调用中间塔机算法时,依次判断这十种碰撞现象的警示级别并保留最高级别输出。 在单机测试版软件中,将施工现场的设备位置、塔机外形参数等固定信息与实际情况保持一致,塔机的运动参数——回转角度、起升高度、变幅长度等可由用户通过UI界面设置。 检验发现:(1)无论主动设备是哪一台塔机,均可以调用相应的算法、识别出危险情况且提前报警。(2)从现场建立的防碰撞系统界面中观察运行画面,当作为主动设备的塔机存在碰撞危险时,界面右侧表示相应塔机危险状态的警示灯会提前由绿转红,同时,界面左上角通过文字提示危险碰撞现象和警报级别。(3)随着碰撞部件由远及近运动,从初始的无警报逐次变为3级/2级/1级警报并发出警报声。在此过程中,当出现塔机运动状态改变或错过碰撞位置即碰撞危险解除时,警报能够自动停止。 (1)对塔机群碰撞预警系统采用了分布式系统构架,对各塔机之间独立进行了碰撞危险的计算,通过网络协同互联,降低了对硬件设备的性能要求,实现了模块化,有利于系统的拓展和推广。 (2)基于分布式系统构架制定了碰撞预警规则,设计出一种碰撞预警算法:将塔机分解为简单形体的组合,通过遍历归纳出部件间所有可能的碰撞现象,对碰撞现象合理缩维,再进行共性化处理,提取出四个核心计算函数,实现了算法的简化,同时仍保障了结果的精确度。 (3)编制了一个单机测试版软件用于检验所设计的算法,检验发现:对于不同设备、不同部件间的碰撞危险均可以有效识别,预判和警示功能都得到了较好的实现,充分说明所设计的算法的合理性,可以满足使用需求。4.2 线碰点计算方法小结
5 算法验证
5.1 算法编写
5.2 单机测试版软件
6 结 语