多Agent协同拆装过程仿真模型
2017-07-20董健康邓龙
董健康+邓龙
摘 要: 针对现阶段虚拟维修拆装过程不能模拟真实维修环境中多人协同拆装的问题,结合面向对象和过程建模的特点,使用MAS(Multi-Agent System)对维修拆装系统中的拆装平台进行仿真构建,给出一种适用于多人协同维修拆装训练的维修拆装模型;采用面向对象的着色Petri网对多拆装平台拆装过程的交互模型进行仿真描述,并在A320虚拟维护训练器上验证了本方案的可行性和正确性。
关键词: MAS; 协同拆装; 仿真模型; 行为交互
中图分类号:TP391.9 文献标志码:A 文章编号:1006-8228(2017)07-01-05
Simulation model of multi-agent cooperative disassembly process
Dong Jiankang, Deng Long
(Electronic Information and Automation College of Civil Aviation University of China, Tianjin 300300, China)
Abstract: In order to solve the problem of multi-person coordination and disassembly in real maintenance environment, this paper uses MAS (Multi-Agent System) to build a simulated disassembly platform in the disassembly system combined with object-oriented and process modeling features. This paper presents a model of maintenance disassembly for multi-person collaborative maintenance and disassembly training. The interactive model of collaborative disassembly platform is simulated by object-oriented colored Petri net. Finally, the collaborative disassembly process and behavior interaction are simulated on the A320 virtual maintenance trainer, and the simulation results verified the feasibility and correctness of this scheme.
Key words: Multi-Agent System; collaborative disassembly; simulation model; behavior interaction
0 引言
民用飞机维修培训是机务人员入岗前必经的环节,国内各大航空公司对新员工往往会有大约一年的维修培训时间,长时间的培训依然掩盖不了国内维修资源短缺及维修资源分布分散的现状。
随着计算机技术的高速发展,虚拟拆装仿真技术为虚拟维修环境中多个用户共协同拆装训练提供了条件。国内外学者在协同虚拟装配仿真方面进行了研究,如:Wang Y[1]等在虚拟维护系统框架中建立了维护工具Agent的行为选择机制。Liu X[2]等人提出了基于本体的Agent通信机制和合作模型,并利用模糊综合评估的智能算法来解决Agent之间的竞争冲突。甄希金[3]等介绍了分布式装配环境中并行渲染、协同操作管理机制、装配工具库等关键技术。欧立铭等[4]提出协同虚拟维修系统,舰员在共享网络环境下体会大型复杂装备维修过程中协同维修配合。然而这些协同拆装都是对单一虚拟拆装平台中的三维模型进行协同装配设计,没有考虑多人执行拆装仿真过程中的大数据量实时处理问题,不能满足实时协同拆装仿真的要求。
虽然多Agent维修拆装系统中每一个Agent模型具有自治性和反应性的功能[5],但是对于系统来说,它们不是一个孤立的实体,通过拆装系统中多个操作平台之间的交互合作[6],可以有效地解决系统中场景的一致性和多用户协同操作引起的并发冲突问题。
1 维修拆装过程
飞机维修拆装过程是由一系列拆装任务构成的,每一个维修拆装任务是维修人员按照维修手册[7]的要求,对飞机的故障LRU(Line Replace Unit)组件执行的一系列拆卸装配操作的过程。在维修拆装培训时,训练人员根据拆装任务进行拆装训练。维修手册中LRU组件的拆卸或装配过程,有其对应的任务号,每一个任务号还包含对应多个拆装子任务号。
定義1:维修手册单个LRU组件任务号中,完成该任务号执行的所有操作称为一个拆装任务。
定义2:维修手册中拆装任务号以模块划分,一个拆装任务号中的部分操作模块称为拆装子任务。
结合A320飞机维护手册AMM拆装任务的结构,单个组件的拆卸任务由多个的子任务构成,可以按层次关系对任务划分为:拆卸任务层、拆卸子任务层和基本拆装动作执行层。
拆卸子任务层由该组件拆卸任务的进入飞机维护构型子任务、进入工作区程序任务和组件移除子任务构成。进入飞机维护构型是使飞机能够保持在能够满足执行拆装条件的前提条件;进入工作区程序包括平台工具的使用和打开对应的检查口盖或者舱门;组件移除包括具体组件的拆卸步骤,包括组件连接件的移除和固定件的拆卸。
基本拆装动作层是每个子任务单元中,单个或者多个维修人员使用工具对组件进行的一系列拆装动作。
由以上对任务和子任务的层次分析,以燃油活门组件7QU拆卸任务和拆卸子任务进行层次划分如图1。
2 维修拆装过程Agent建模
2.1 多Agent维修拆装系统
通过对多操作平台维修拆装系统的分析,根据Agent分层建模思想,可以用人机交互层、多Agent层、物理平台层三层结构来描述多Agent维修拆装系统[1]。基于多Agent的维修系统框架如图2所示。
物理平台层提供了维修拆装系统功能的技术支持,其中包含可视化渲染子系统、3D模型、分布式网络通信环境,操作系统等。该层负责管理3D模型,组织和驱动3D场景,并计算3D模型的属性、状态和基于场景的事件管理。
多Agent层包含操作和服务两类Agent。每个Agent对应于维修系统中具有特定语义、行为规则和交互功能的计算机软件实体,捕获维修拆装事件中用户的操作和拆装行为特征。
人机交互层是用户通过鼠标键盘对其他Agent交互的消息的驱动。包括学生用户通过鼠标、键盘的操作,以事件触发的形式改变操作平台中实体3D模型的状态,达到完成组件拆装过程的目的。
基于以上虚拟维修拆装系统Agent层次分析,对维修拆装系统进行MAS的形式化定义。
定义3:维修拆装系统由如下三元组描述:
MTD=::
其中,MTD是维修拆装系统的形式化描述模型;Ca是维修系统中各Agent之间的消息实例集合。Ia是维修系统中Agent的实例集合,OperatAgent是操作平台Agent,MagAgent任务管理Agent,InfAgent是接口Agent。智能体Iai是物理实体的面向对象的着色PN模型,面向对象着色Petri网[8]为OPNAi=(CPNAi,MI),其中CPNAi是智能体Iai的着色Petri网模型;MI是Agent的消息接口集合,包括消息的输入和输出接口。R={Rij|i,j=1,2,…,n;i≠j}是虚拟维修拆装系统中各Agent外部动作之间的交互关系。
2.2 操作平台Agent结构
维修拆装平台Agent模型中,拆装过程中每一个仿真平台中拆装实体的行为动作的执行与其逻辑关系的描述都是该平台Agent模型内部行为的一部分,所以,仿真平台Agent模型是具有自治性、主动性功能的思考模块Ro和具有反应性、交互性功能的反应模块Pm的混合结构[9]。混合型Agent的维修拆装仿真平台模型结构如图3所示。Pm通过平台自身行为推理体现反应性和自治性;Ro通过对拆装实体行为的规则计算实现实体拆装行为决策性。
定义4:思考模块Ro可由二元组(KN,RP)表示。KN是平台Agent的行为知识库,包括维修拆装平台中各个拆装实体3D模型库Na和其3D模型维修拆装行为逻辑规则库Be;RP是平台内拆装实体3D模型动作行为决策器,包括 3D模型行为规则子模块BR和行为传递子模块BT,其中BR实现Agent内部状态变迁,BT负责各平台Agent间行为决策的传递,实现与不同Agent的交互。模型行为决策器RP中的BR由实体3D模型行为规则编号RID、实体3D模型部件编号AID、目标状态SN和结果状态SR组成;BT由Agent集合和行為传递关系R组成,如Rij是指i与j之间的行为传递关系。在BR将反应模块中输出的实体3D模型行为状态偏差Uout与目标状态SN进行对比,若状态偏差为零,则行为状态输出目标状态SR;反之,决策器RP将继续执行实体3D模型当前状态的行为计算。
定义5:反应模块Pm用八元组(Pr,Uino,Rf,Uinn,Cf,Pr',Pf,Uout)表示。其中,Pr是实体3D模型目标行为参数集,Pf内有多个可以预先设定值域且相互独立的数据区,存储不同拆装任务下制定行为状态目标行为参数Pr值域的集合;Uino是外围其他Agent模型消息输入,行为决策执行器Rf接收Uino通过思考模块RP行为规划后的决策执行计算;Rf是响应由RP接收到外部输入Uino后做出改变模型状态决策的行为决策执行器;Uinn是内部行为决策执行器Rf的结果输出,用于触发执行器Cf进行行为变化计算;Cf是以物理规则和维修拆装行为约束规则为标准的控制器,内部输入Uinn触发控制器改变行为实体3D模型的状态;Pr'是由Cf执行模型状态变化后得到的模型当前行为状态参数;比较器Pf用于比较当前实体3D模型行为状态参数Pr'和目标行为状态参数Pr,并得到行为状态偏差输出Uout。
2.3 多操作平台Agent拆装过程交互过程
拆装平台中拆装实体的状态随受训者使用虚拟工具执行的具体操作变化做出反应。OperatAgent的模型接收触发信息通过效应输出改变其状态,在改变自身状态的同时与其他操作平台进行信息交互[10],实现其他平台中相同组件模型状态和位置同步。拆装实体的状态是通过拆装工具对其一步一步操作而变化的,每当工具发送一次有效触发信息,组件的根据其约束关系状态改变一次。由于不同组件从开始拆装到拆装结束要经过多步操作,以下为OperatAgent内部响应一次用户的触发操作,其内部状态改变的整个过程。OperatAgent自身行为的Petri网表示如图4所示。
当OperatAgent接收到用户触发信息(e1)前,首先接收来自用户的触发消息(Act1),判断该消息的有效性(Act2),如果触发消息无效,格式化数据(Act10), 显示操作错误(Act11);如果该输入触发信息有效,执行存储数据(Act3),给维修系统中的其他操作平台发送该触发信息(Act4),实现拆装实体状态联动,读取触发信息类型(Act5),拆装实体状态改变(Act6),组件位置状态改变(Act7),模型渲染(Act8),最后并行执行显示结果(Act9)。图4中P1、P2、…、P13为OperatAgent的初始状态或者中间状态。
维修拆装多Agent仿真系统中,各个操作平台Agent共同完成一个复杂组件的拆装过程时,采用请求/应答的方式实现协商,合作。当请求Agent发出请求后,请求托肯通过请信息求弧发送到ILP中[8],应答Agent执行请求,无论是否执行成功,均通过对应弧返回信息给请求Agent,如果无法完成任务,或请求不符合自己的要求,则拒绝执行,通过相应弧返回拒绝信息。
以7QU燃油活门的拆装为例,两个维修学员在各自的操作平台上执行该燃油活门的拆卸任务。由单个操作平台内燃油活门拆装过程模型可知,当OperatAgent1的用户通过鼠标触发操作断开7QU燃油活门接带,OperatAgent1根据触发操作实现该操作平台内燃油活门接带断开操作,与此同时给MagAgent发送搭接带被断开的触发信息,OperatAgent2通过接收MagAgent转发来自OperatAgent1的搭接带断开的消息,实现自身平台下搭接带的断开。最终实现在不同操作平台,实现拆装操作的场景一致性。用以上请求/应答模型,重点描述执行拆装任务时的交互行为。用面向对象的Perti网模型描述其过程如图5所示。
3 维修拆装仿真实现
3.1 3D模型的动作实现
针对静态3D模型的场景主要使用3DMAS软件来绘制,其尺寸均以实际A320飞机比例大小为标准。另外,考虑模型位置以及在特定狀态下的动作等等,而且由于模型数量庞大,涉及到众多飞机组件及零件,我们选择使用XML脚本文件进行组件和拆装中涉及的零部件模型的逻辑推理和加载调用,以节点来对应实体模型的动作条件、路径、坐标及其他属性的加载,每个节点内容则是每个属性所对应的内容,最后将每个显示组件所需的全部模型参数信息,集成为一个脚本文件在初始化时进行加载。7QU燃油活门动作实现脚本语言实现如图6所示。
3.2 操作过程中的并发性冲突解决
LRU和工具的并发性冲突解决方案,采取权限获取法,当对应的实体被操作时,其状态被一个客户端用户锁定,其他客户端不能对其操作。在维修训练为前提的系统设计中解决操作并发冲突[11],本文采取“权限控制法+时间戳”的方法,其中的权限控制法可以看成权限优先的方法,即多人同时对一个拆装对象进行操作时,由最先执行此行为的用户获得最高权限。主要思路是:当维修训练人员执行一个拆装操作时,每个操作平台Agent会记录当前平台下用户对组件触发操作的时间,维修对象接受到动作指令,首先判断当前是否存在并发操作,如果没有则执行操作指令,如果有并发性冲突,则系统依据时间戳的控制方法,选出最先对维修对象进行操作的维修人员,采用协商最先占据最先操作获得控制权,接受动作指令。并发冲突解决方案如图7所示。
4 结论及仿真验证
通过以上建立的基于多Agent的维修拆装交互模型,把这些模型融入到实验室虚拟维护模拟机系统整体架构上,把虚拟维护模拟机系统中每一个拆装平台进行Agent抽象。通过所建立的维修拆装交互模型,解决多人维修拆装训练中场景一致和并发性冲突问题。最终在实验室A320虚拟维修训练器平台上对维修拆装过程模型和交互行为效果进行仿真。
在模拟维修拆装环境中,以燃油活门组件7QU(AMM 28-25-51-000-001)为例,其两个维修学员在两台操作平台Agent上拆卸过程参考图如图8所示。
表示两个维修训练人员进入到维修拆装系统后,按照手册要求对7QU燃油活门进行拆装前准备工作,包括领取可移动工作平台、扳手,断开跳开关等。当两个维修人员进入到拆装工作区后,如图(b)所示。学员1按照维修手册中7QU的拆卸要求拆掉电插头,同时,学员2拆掉其搭接带,如图(c)所示。在拆卸螺母时,两人可以同时操作,效果图如图(d)和(e)。最终移除燃油到可移动工作平台上如图(f),拆卸完毕。
建立良好的多人协同维修拆装模型,可以增强飞机维修拆装培训的真实性和沉浸性、减少实物飞机培训过程中的成本,也有利于该分布式维修训练平台的改进,对还原实际拆装过程中多人交互协作的拆装实况,具有一定的重要意义。
参考文献(References):
[1] Wang Y, Lv C, Zhou D, et al. Multi-agent based modeling
and simulation of virtual maintenance system[C]// World Congress on Intelligent Control and Automation,2016:2963-2968
[2] Liu X, Peng G, Liu X, et al. Development of a collaborative
virtual maintenance environment with agent technology[J].Journal of Manufacturing Systems,2010.29(4):173-181
[3] 甄希金,武殿梁,范秀敏等.虚拟环境下汽车装配工位协同操
作仿真[J].上海交通大学学报,2009.12:1863-1868
[4] 欧立铭,徐晓刚,王建国等.协同虚拟维修及其关键技术[J].舰
船科学技术,2010.32(11):122-125
[5] Wooldridge M, Jennings N R. Intelligent agents: theory and
practice[J]. Knowledge Engineering Review,1995.10(2):115-152
[6] Buehler J, Pagnucco M. A framework for task planning in
heterogeneous multi robot systems based on robot capabilities[C]// AAAI Conference on Artificial Intelligence,2014.
[7] A320 Aircraft Maintenance Manual [Z]. China Eastern
Airline, REVISION NO.30, Aug 01/05
[8] 郭晓泉.多级面向对象着色Petri网模型及其应用研究[D].东
北大学,1998.
[9] 刘家学,郭瑾.基于弱定义Agent的补充勤务维修行为建模[J].
中国民航大学学报,2015.33(3):28-31
[10] 曹军海,张和明,熊光楞.AOSE中Agent行为的形式化定义
与描述方法[J].系统工程与电子技术,2004.26(11):1684-1686
[11] 焦玉民,王强,徐婷等.智能虚拟维修环境多Agent协作机制[J].
系统工程与电子技术,2013.35(6):1348-1352