层次化UML状态机在拆装过程仿真中的应用
2014-07-09陈静杰李会茹曾学锋
陈静杰, 李会茹, 曾学锋
(1. 中国民航大学航空自动化学院,天津 300300;2. 北京飞机维修工程有限公司,北京 100621)
虚拟拆装是民航飞机维修培训中的一个重要环节,对民航维修人员熟悉工作,提高拆装效率具有重要意义。目前,对虚拟拆装研究[1-4]主要集中在零部件拆装次序和拆装关系的建模,其实质是将零部件作为一个质点的虚拟拆装。文献[5]中介绍了对虚拟拆装过程进行建模的分析,采用PERT图建立拆装过程模型,但模型中缺少工具约束。与真实操作中的要求不相符。文献[6]中对UML状态机的形式化语义进行了研究,定义了状态项代数和配置函数,可以求出在任一时刻UML状态机的状态配置。这种方法满足组合性,但是没有进一步进行形式化验证。以上拆装过程建模存在一些不足,例如,没有对拆卸零部件的状态迁移和行为进行描述,一般的工作流模型缺乏对拆卸过程中约束条件和拆卸过程层次化建模的考虑。
基于此,针对已有虚拟拆装过程模型的不全面,本文结合UML状态机和层次化分析法描述拆装过程的建模。文中利用状态机表示零部件拆装过程中的状态变换形式,迁移条件。应用层次分析法将复杂问题中的各种因素划分为相互联系的有序层次化模型的方法,建立层次化模型序列,采用多线程数据采集,跟踪待拆的零部件。
1 维修任务的拆装过程建模
维修任务中有多道工序,主要包括测试、排故与拆装。本文研究基于3D仿真场景中的组件拆装过程仿真。分析拆装过程中零部件状态变迁的条件,建立零部件的关系网。直观形象表达出各个零部件的状态转换。
1.1 UML状态机建模
本研究中应用UML完善的功能表达性和完备的定义[7]描述零部件拆装过程。用状态(state)描述待拆零部件的存在状态,变迁表示零部件在两个状态之间的迁移。
事件表示对零部件施加的外界条件,动作表示对零部件的运动仿真,监护条件为布尔函数,只有为true时,状态才能迁移。
定义1:UML状态机的状态和迁移N=(P,T,E,G,A)
P表示零部件的状态集,T表示状态变迁集,E表示变迁的事件,G表示监护条件,A为具体动作的描述。图1描述某个零部件状态迁移的过程,其中Ps表示零部件的初始状态,经过变迁后到达最终状态Pt。变迁弧上条件表示在发生事件E(在拆装中表示拆卸或安装的工具和设备的到达条件)后,监护条件的变量为真,发生变迁的动作A,到达状态Pt。其中A表示零部件的运动表示(平移,螺旋,旋转等)。
图1 状态迁移图
1.2 零部件间的约束关系
每一个待拆卸的组件由多个零部件组成,用数学表达式表示:
其中x是待拆的零部件。零部件之间的约束关系可以总结为下图2中的4种:一对一约束、一对多约束、多对一约束和多对多约束。设xi,xj… xj∈X,则编号为i,j,k,m,n的零部件之间的关系表示为: Ρ (xi,xj) = R(xk,xm,xn)。
图2 零部件约束关系图
1.3 零部件拆卸过程建模
拆卸过程模型包含 7个元素:Ni={P,F,T,E,G,A,X },其中,P为库所集,T为变迁集,F为状态和变迁连接关系的有向弧集。dom(F)为F的定义域,cod(F)为F的值域。
sP表示零部件的原状态,tP表示目标状态,E表示变迁的事件,G表示监护条件,A为具体动作的描述,T表示状态变迁集,K表示零部件状态集,X表示拆卸零部件与相连零部件之间的关系表示。在此模型中,可以清晰的定义状态和转换。实现状态转换的模块化描述。图3为一个零部件的状态和迁移过程描述。图中,零部件B、C、D是A的前置条件,零部件B、C、D可并行操作。其中P1表示零部件B的拆卸状态,P2表示零部件C的拆卸状态,P3表示零部件D的拆卸状态。T1,T2,T3分别表示零部件C、D、B的状态迁移过程。T4表示零部件A在解除零部件B、C、D的约束后,进行状态迁移到达状态P4。
图3 零部件拆卸过程图
2 拆装模型层次化[8]
UML状态机具有直观清晰,包含信息量大的特点,但是对于多个零部件组成的复杂的飞机组件而言,只使用UML状态机模型表示,会使模型庞大,造成建模效率低。本文引入层次分析法[9-10],将复杂的拆装过程,进行层次分解,条理结构清晰的建立组件的拆装过程模型。在同一层次的各要素关系平等,不存在显著的相关性;最低层的指标可以被量化。把组成复杂的组件根据拆卸的相关性和并行性,分解成不同的层次(如图4)。
图4 拆卸零部件分层图
飞机组件的拆卸一般分为三大部分:进入飞机维护构型、进近程序和拆卸操作。下面对拆卸操作建立层次化模型。
在应用层次分析法时,顶层表示待拆的组件,第二层表示只要选取了合适的工具或设备便可以直接进行拆卸的零部件(或者是零部件序列)。第三层表示,在第二层的零部件拆卸后,才可能进行拆卸操作的零部件,第三层的零部件可能受第二层一个或者多个零部件的约束。处于第二层的零部件可以进行并行操作。处于第三层的零部件在满足与其相连的第二层的所有零部件拆卸完成后,才能进行拆卸操作(根据需要确定建立层次数,本文以三层为例)。
在层次分析法中,给位于最低层的每一个零部件设置一个标志位,待拆状态(初始状态)时为零,应用层次分析法,给位于底层的零部件计算出状态标志值Si,待相应拆卸完成后,对应的零部件标志值从初始状态零变成Si。当标志拆卸过程完成。
位于层次图中的每一节点,代表组件的一种当前状态。
层次分析法的应用步骤:
(1)第二层按照B1,B2,…Bn编号;第三层按照C1,C1…Cn;以此类推。按照建立的层次结构模型建立判断矩阵,设顶层元素A与下一层B1,B2,…Bn有关,判定矩阵的形式如下所示。
bij表示相对A来讲,bi和bj与A关系的紧密度。采用1,2,3…9或者其倒数作为度量的参照。
(2)对判定矩阵的每一列做归一化计算:
(3)同理第三层(C1,C2,C3…)的零部件,分别对每个父结点下的零部件建立判断矩阵这里的x,y,x表示零部件的编号,
n为同一父节点的子节点个数。见步骤(1)和(2),
(4)将计算得到的第三层的所有的归一化矩阵值,进行全局的归一化处理。与父节点没有连接的零部件归一化值置为0,见式(1)。
(m为C层元素的个数, Wcη|m×1为Wcη|的扩展矩阵,E1×m为1的列阵)
对新建立的新方阵的元素做归一化运算,见式(2)。
根据Wc计算得到 C层的零部件的状态标志值,随着拆卸的进行,模型标志从初始状态零,置为计算得到的值Si。时,组件拆卸完成。根据每个标志值的到达可以判定相应的零部件是否完成拆卸,达到实时监测的效果。
3 仿真实例
基于上述研究构建的层次化UML状态机建模方法,应用在基于OSG的3D虚拟设备维修平台上[11],对A320飞机电子设备舱中电瓶的拆装过程进行仿真分析。
步骤一,分析电瓶拆卸过程。第一部分为飞机维护构型;第二部分为进近程序,包括打开822电子舱门和断开相应跳开关;第三部分为拆卸过程。步骤二,对电瓶的拆卸工作分为可并行操作的3个元素(每个元素中包含了要求顺序操作的零部件集):供电(包括滚花螺帽,盲盖,电源固定保险丝);通风(包括通风管道,卡箍,堵盖);电瓶的固定(包括两个翼型螺帽,两个杆,固定保险丝)。
3D渲染场景在拆装进行前加载完毕,选取工作平台准备进入电子设备舱开始电瓶的拆装。图5中H表示历史状态,即飞机处于维护构型,供电给勤务网络,驾驶舱中BAT 1的按钮电门弹起,在顶板35VU上放置警告装置;打开822电子舱,断开 5PB1、12PB1的按钮电门。开始电瓶的拆卸操作,首先将电瓶的拆装工作分成3部分(通电部分、通风部分、固定部分),每部分可以并行操作。P1描述 822电子舱门打开的状态,P2描述跳开关断开的状态;T1,T2,T3,T4描述固定装置的拆开过程,T1描述用工具剪钳剪断固定用的保险丝的过程,T2描述用手旋转翼型螺帽,翼型螺帽螺旋式上升至固定杆顶端的操作,T3描述用手抬高垫片的操作,T4描述用手侧向搬开固定杆的操作。P3,P4,P5,P6描述固定装置的组成零部件完成相应操作后的状态。T5,T6,T7,T8描述通电部分的拆开过程,T5描述用工具剪钳剪断固定用的保险丝的过程,T6描述用手旋转电源插头的操作,T7描述用手将电插头从电瓶上移除的操作,T8描述用手将盲盖安装在电瓶上的操作。P7,P8,P9,P10描述通电部分的组成零部件完成相应操作后的状态。T9,T10,T11描述通风管路部分的拆开过程,T9描述用扳手拧松卡箍的过程,T10描述用手将通风管移开的操作,T11描述用手将堵头安装到通风管上的操作。P11,P12,P13描述通风部分的组成零部件完成相应操作后的状态。安装是拆卸的逆过程,这里没有叙述。图6是电瓶拆卸操作的部分效果图。
图5 电瓶的拆卸过程及建模
图6 电瓶拆卸效果图
4 结 束 语
本文对虚拟维修拆装过程建模进行了研究,结合UML状态机和层次分析法建立了飞机组件的拆装过程模型,并将这种模型应用于基于OSG的三维虚拟维修设备平台上,对组成复杂的组件采用层次分析法规划零部件的拆卸,规范了拆装过程建模的流程,解决了飞机虚拟维修训练设备中大量组件的统一建模问题,且利用层次分析法能动态监测拆装过程中的零部件。利用UML状态机仿真零部件的拆装过程中状态的变迁,真实再现零部件的拆卸过程。此维修训练设备已应用于某高校的机务维修训练中,提高受训人员的拆装熟练度和操作能力。
[1] 蒋双双,刘鹏远,张锡恩. 一种基于Petri网的虚拟维修过程建模方法[J]. 系统仿真学报,2007,19(11):2488-2491.
[2] 于鹏飞,时和平,芮科慧. 基于动作对象的虚拟维修动作仿真方法研究[J]. 装备指挥技术学院学报,2009,20(5): 127-131.
[3] 任洪丽,张 伟,李文瑞. 基于改进蚁群算法UML状态机图的测试用例生成[J]. 计算机工程与设计,2010,31(17): 3835-3837,3928.
[4] 郭 峰,姚淑珍. 基于Petri网的UML状态图的形式化模型[J]. 北京航空航天大学学报,2007,33(2):248-252.
[5] 尚 洁,容晓峰,徐兴华. 基于PERT图的虚拟拆装过程建模[J]. 计算机与数学工程,2011,39(3):151-154.
[6] 姚淑珍,金茂忠. UML 状态图的形式化建模及其分析[J]. 北京航空航天大学学报,2007,33(4): 472-476.
[7] 蒋 慧,林 东,谢希仁. UML状态机的形式语义[J]. 软件学报,2002,13(12): 2244-2250.
[8] Zhou Y,Baresi L,Rossi M. Towards a formal semantics for UML/MARTE state machines based on hierarchical timed automata [J]. Journal of Computer Science and Technology,2013,28(1): 188-202.
[9] 王伟岩,马 野,邱楚楚. 基于改进层次分析模型的舰载无人机系统修理级别分析研究[J]. 舰船电子工程,2011,31(4): 143-146.
[10] 荆全忠,姜秀慧,杨鉴淞,周延峰. 基于层次分析法(AHP)的煤矿安全生产能力指标体系研究[J].中国安全科学学报,2006,16(9): 74-79,145.
[11] 刘家学,刘 涛,耿 宏. 基于Petri网和语义网络的虚拟维修过程建模与应用[J]. 图学学报,2013,34(2): 113-118.