(海军航空大学岸防兵学院 烟台 264001)
随着航空装备近年来的飞速发展,不断出现的新技术让航空装备变得越来越复杂,也给航空装备的维修工作带来了不小的挑战。近些年现代战争的发展也在表明,航空装备的维修情况,包括维修速度,维修质量等,将对战争的走向起到相当重要的作用。维修(maintenance)指的是使装备保持、恢复到或改善其规定技术状态所进行的全部活动,它既包括技术活动也包括管理活动[1]。可以说装备维修能力是保持和恢复战斗力的重要保障[2]。与此同时,维修保障过程又是一个极其复杂的过程,不管是维修的人员,维修的设备还是维修的资源等等,都需要进行合理的安排。所以对于装备维修活动的研究,在装备的设计和使用阶段,都需要对维修保障流程进行建模仿真分析[3]。
Petri网在处理离散时间系统问题不仅可以描述系统的静态行为,也可以很好地描述系统的动态行为。相比较其他方法来说,对于进程或部件的顺序、冲突以及同步等关系,Petri网在描述起来更方便一些,并且具有自己的运算方法,便于修改与改进[4],具有强大的系统行为分析能力[5]。在 Petri网基础上的工作流模型,兼具了数学语言与图形符号的特点,能够具体形象地反映出维修工作流程的特点,是较为优秀的一种建模方法[6]。
在一般的Petri网中,有以下几个基本的构成要素[7]。
用库所(place)来表示状态,一般用一个圆表示;
用变迁(transition)表示事件或者转换过程,一般用一个矩形来表示;
用流关系(flow relation)表示事件发生的条件,或者用弧(arc)来表示库所与变迁之间的关系;
标志(token)一般用库所里的点来表示,或者直接写成数字,表示系统中的数据、状态或者资源。
以上这几个要素构成了网(net)的基本结构。
对于装备维修活动来说,虽然用Petri网能很好地模拟出动态过程,但是维修活动本来就是一个复杂的过程,且有着很强的交互性,这种状态空间上的问题,普通的Petri网就会有些捉襟见肘,在这种情况下,利用层次分解的方法就能够很好地解决这个问题,可以把网内的一些复杂工作流分解为子网,子网里的复杂流程还可以继续分解为子网。其结构概念如图1所示。
图1 层次Petri网结构概念图
采用层次Petri网建模方法具有以下的优点[3]:
1)在高一级的工作流网中可以将子网的内部结构隐藏起来,这样就可以更多地关注其顶层的分析;
2)对于不同的修理任务,如果具有相同的结构,就不必再去重复建模;
3)经过层次分解后的网系统具有更好的结构性,更便于分析计算处理。
在工作流研究上,Aalst等始利用Petri网对工作流进行建模研究的相对较多,可以说采用基于Petri网工作流方法建模,一直都是一个研究热点。在基础Petri网的基础上,可以给出工作流网的定义[8~9]:
Petri网PN=(P,T,F) 是一个工作流网(Work-flow Net),当且仅当:
1)存在一个源库所i∈P,使得·i=Ø(·i指的是i的库所前集,也就是说i是唯一的源库所);
2)存在一个汇结库所o∈P,使得o·=Ø(o·指的是o的库所后集,也就是说o是唯一的汇结库所);而且每一个节点x∈P∪T都位于i到o的一条路径上。
一个工作流网有一个输入库所(i)和一个输出库所(o),因为在网系统中的任何一个标志只要进入工作流,那么它所代表的修理任务就会开始,然后直到工作结束的输出库所;也可以这样理解,就是当一个工作流网被确定之后,整个修理工作的时间也就被确定了下来。
航空装备相比较于其他装备来说,具有工作强度大,装备质量要求高的特点,尤其是对于军用飞机来说,一方面在日常的训练工作和战时的作战任务中有着很高的出勤率,一架飞机往往要承担数小时的工作任务,有时甚至还需要跨昼夜飞行。另一方面,航空装备对于质量要求非常高,除了要满足飞机完好率和出勤率这样的指标之外,飞机在空中工作时也必须尽量保证不出问题,这是对国家财产与飞行员生命的负责,这些因素决定了航空装备的维修就必须满足高质量与高效率。
然而与此同时,航空装备维修又是一个复杂的过程,首先是因为装备自身的构造复杂,机械、电子等专业相互交叉,工作责任难以界定,其次是工作流程一般较为复杂,一个工作往往需要分为很多步骤和流程,因此需要用基于Petri网的工作流方法,将复杂的工作细化、层次化。通过对维修工作的分析,可以将装备维修工作细化分解为以下几种基本流路[10~11]。
顺序流路:这是一种串联式的顺序,按照由前至后。先执行流路前面的任务,完毕后再执行后面的任务,这也是最为简单的一种形式,例如必须要先把故障件拆下,再安装新件,就是一种无法改变的顺序流路;
并行流路:这是一种并联式的顺序,在流路里的任务可以同时进行,并且任务之间并没有什么影响,比如准备修理工具和准备修理设备可以同时间进行,这就是一种并行流路的形式。
图2 顺序流路
图3 并行流路
选择流路:这种流路又被称为条件流路,它的运行规则是在几项任务中选择一项执行,这种流路更多地是一种维修方式的选择;
图4 选择流路
循环流路:在这种情况下,任务需要被循环执行,一直到满足最后的条件,例如在校准一些参数时就要采取这种循环的形式。
图5 循环流路
在建模的过程中,采取的是以维修对象状态为中心的建模方式,首先将维修对象在维修过程中可能处于的各个状态列举出来,第一个状态为“故障状态”,最后一个状态为“修理完毕”,每个状态都用库所表示;然后引起状态变化的“维修操作”用变迁表示;确定能够触发变迁所需要的各种条件,并用变迁的“前置库所”表达;最后针对需要展开的节点,按照以上的步骤,逐步展开,从而实现层次化的建模[12]。
针对某型军用教练机的发动机更换工作为例。在飞机的维修更换工作中,可以说更换发动机工作是常见的大项维修工作,流程较为复杂,且更换前的准备工作与更换后的检查验收工作都应当计算在维修工作时间内,而且每一项主要流程内都包含了许多小的工作项目,各个工作项目或并行,或串行。如果将所有的工作细化完成后放在一个网系统中显示,势必会比较复杂且逻辑关系难以判断:这样就违反了航空装备维修过程要高效的要求,因此采用基于Petri网的工作流方法,将修理工作分层显示,将使维修过程的建模直观化,精简化。
在建模时,先建立整体的主要流程的顶层模型,之后再将其中的流程抽出建立子网模型,本文在建立顶层模型后,抽取修理过程中具有代表性的工作项目建立子网。
在对工作流程的分析基础上,将更换发动机的流程尽量简化,并按照工作流的时间顺序排列,其主要流程如图6。
在以上的主要工作流程中,“工作前准备”和“更换前期工作”可以同时进行,也就是说属于并行流路,之后的所有流程都必须严格按照时间前后顺序进行,也就是串联流路,这样可以建立起发动机更换工作的顶层网模型。
图6 更换发动机主要工作流程
图7 更换发动机顶层网模型
在顶层网模型中,每一个变迁代表的是一个工作项目,每一个库所代表的是一个工作状态,各变迁及库所含义如表1。
表1 顶层网中各变迁、库所含义
在顶层网中的每一个变迁都能够进行进一步的子网建模,所以在这里我们选取工作流程中的恢复检查工作为例来进行子网建模。
图8 恢复检查工作子网模型
这里将t6恢复检查工作拿出来进行子网的建模,在子网中的各变迁及库所含义如表2。
表2 顶层网中各变迁、库所含义
相比较来说,利用基于层次Petri网的工作流方法建立起来的模型,更能够显示出维修工作的从属性与逻辑性,假如将不建立层次模型,而仅仅用一个网系统建立模型,如图9。
可以看到网的复杂程度开始增加,且较难看出主要工作流程与从属流程的关系,逻辑性也很难体现出来,不利于下一步对网系统进行定量的逻辑计算,不能很好的提高维修工作的效率性与准确性。
图9 将恢复检查子工作在同一张网中展开
本文通过对于Petri网的层次性扩展,结合工作流方法,以更换发动机维修任务为例建立了层次Petri网模型,将基于层次Petri网的工作流方法与航空装备维修相结合,能够很好地解决维修工作中的复杂性问题,也为下一步进行定量分析奠定了基础。
与此同时模型还有这需要进一步解决的问题,首先是本文仅仅做了模型的建立工作,并没有进一步对模型进行仿真分析,所以模型还需要进一步验证改进,这也是下一步最主要的工作。其次本文只是对维修流程进行了建模,而在实际的修理过程中还需要考虑到很多诸如维修资源等条件,下一步也需要在这方面进行改进。