基于着色Petri网的离散事件动态系统建模与仿真

2022-01-07 06:59姚可欣付长军郑伟明陈得恩田兴聪熊轲
新型工业化 2021年9期
关键词:指挥所库所令牌

姚可欣,付长军,郑伟明,陈得恩,田兴聪,熊轲

(1.北京交通大学 计算机与信息技术学院,北京 100000;2.中国电子科技集团公司第五十四所,河北 石家庄 050000)

0 引言

离散事件动态系统[1]广泛应用于军事作战、消防抗灾等场景中。由于这类场景的环境复杂,建模涉及对象层次多、种类多、关系复杂,因此需要构建标准化的场景描述语言和建模方法。在系统开发初期,选择合适的建模分析方法并建立严谨的系统模型,对于检验系统设计中存在的缺和提升系统开发效率具有重要意义。

离散事件动态系统的建模分析方法主要包括美国国防部体系结构框架(Department of Defense Architecture Framework,DoDAF)[2]、统一建模语言(Unified Modeling Language,UML)[3-4]、系统建模语言(Systems Modeling Language,sysML)[5]和功能模型建模(ICAM Definition,IDEF)[6]等。DoDAF能有效地描述系统的静态信息和动态信息,但不能验证系统动态行为特征的变化情况。UML、sysML和IDEF是以图形描述的可视化建模语言,但不能用于系统的验证和运行。

Petri网是一种基于逻辑层次的建模方法[7-10],能够描述系统的动态行为及各实体间的信息交互关系,适用于离散事件动态系统建模。然而传统的Petri网难以适用于规模庞大、结构复杂的系统建模。因为随着系统的库所和变迁节点数量的增加,会导致图形网络绘制困难、可视性不强的问题。此外,Petri网还缺少对时间信息的描述并会产生托肯类型单一的问题[11],使得对系统的分析变得更为复杂。

着色Petri网(Colored Petri Net,CPN)是对传统Petri网的扩展[12-13]。CPN能够实现颜色集的描述和层次化建模。对系统进行层次化建模能够减少模型中库所和变迁的使用量,增强模型的可视性;颜色集功能能够提高模型对数据的抽象和处理能力,降低了模型的复杂度,更有利于动态系统的设计与建模[14]。

因此,本文提出一种基于CPN的离散事件动态系统建模方法。首先对系统的信息流分析并建立UML模型,然后依据映射规则和CPN的性质,将UML模型转换为CPN模型。CPN Tools[15]测试输出的结果,验证了所提方法的可行性,同时也为系统的设计与优化提供了一定的参考。

1 CPN

1.1 CPN概念

Petri 网主要用于描述离散事件系统。在 Petri网络中,通过变迁的使能实现令牌由输入库所向输出库所的转移,以此来描述系统状态的动态变化。CPN是由传统Petri网扩展而来的高级Petri 网,增加了颜色集和网络分层两部分功能。通过引入托肯颜色集的概念,能够分别对不同的信息类型进行定义,提高模型对数据处理的能力。通过引入分层的概念,将整个系统划分为父单元与子单元,然后通过替代变迁和融合库所将各单元组织连接起来。降低了模型的复杂度,使得模型更为清楚简洁。因此,CPN更适用于描述大规模的、动态性高的离散事件系统。

1.2 CPN性质

CPN具有良好的数学性质,包括可达性、有界性和活性等。这些性质可以用来验证模型的正确性和系统的可行性。

(1)可达性。如果CPN模型的一个初始状态通过不断激发变迁,最终能达到一个结束状态,那么这两个状态间是可达的。可达性可以用来验证系统设计的正确性。(2)有界性。在CPN模型运行的各个状态下,如果所有库所的令牌数均有明确的上界和下界,那么该CPN模型是有界的。有界性可用来检验系统是否存在溢出。(3)活性。CPN模型中活变迁是指在可达状态下能够使能的变迁。若一个CPN模型的所有变迁都是活变迁,则该CPN模型具有活性。活性可以用于验证模型的可执行性。

2 基于UML的信息流分析

以经典的红蓝体系对抗游戏为例,对系统进行信息流分析。该离散事件动态系统描述的是在红方发起进攻后,蓝方以机降作战的方式对入侵红方进行打击的过程。下面根据游戏对抗的过程,建立系统的UML模型。

2.1 系统用例图设计

系统用例图如图1所示。通过用例图可以得到各参与作战实体的动作以及各实体之间的信息流动关系。参与作战的实体包括蓝方的地面机动指挥所、空中指挥所、侦察直升机、武装直升机、运输直升机和机降分队。基本指挥单元接收状态信息并逐级下发指挥信息;各战斗单元接收并执行上级下发的指令,进行协同信息的交互,最终完成作战任务。

图1 系统用例图

2.2 系统活动图设计

通过系统用例图对红蓝对抗流程进行分析,将对抗过程分为筹划准备、集结乘载、空中机动、突击着陆、地面战斗和撤离战斗6个阶段。根据对抗过程中信息的流动,分别对每个参与作战的实体设计UML活动图。活动图描述了各个参与作战实体在各阶段的动作及动作的顺序,为UML模型向Petri网模型的转换提供基础。

(1)总体活动图设计。如图2所示,系统的总体活动图用于描述作战过程的6个阶段。在战斗准备过程中,首先进行筹划准备,各指挥所逐级下发作战任务给作战单元;然后在集结乘载阶段中,由乘载协调组向运输直升机和待乘机降分队发送装载信息,指挥组接收机降场信息并指挥机降分队乘载上机。在战斗开始时,首先进入空中机动阶段,侦察机监视战场情况并上报,指挥组负责监视空中梯队、接收战场信息并进行组织协同;接着进行突击着陆,指挥组协同指挥机降着陆;在地面战斗过程中,指挥组根据侦察机提供的定位信息,引导机降分队进行火力打击,武装直升机进行空中协战;最后是撤离战斗阶段,由作战单元申请撤离,指挥组协调组织各单元撤离战场,作战结束。

图2 系统总体活动图

(2)参战单元活动图设计。根据系统用例图和总体活动图的描述,对参与红蓝对抗的各参战实体建立活动图。活动图描述了各阶段中各实体信息流动的情况。以空中指挥所为例,构建的活动图如图3所示。在准备筹划阶段,空中指挥所接收上级作战任务并判断当前状态是否应战。若应战,则作战任务信息逐级下发至各作战单元;否则,不予响应,继续等待下一条指令。然后在集结乘载过程中,空中指挥所向各作战单元下达进场指令,并指挥地面待乘分队乘载上机。接着在空中机动过程中,由空中指挥所监视和指挥运输直升机起飞,实时掌握各作战单元的态势信息,并向上级申请火力资源。在突击着陆的过程中,空中指挥所接收机降场状态信息,并指挥机降。在地面战斗过程中,空中指挥所将指挥权转交给地面指挥所;最后在撤离战斗时,空中指挥所接收撤离指令,组织各作战单元撤离,战斗结束。

图3 空中指挥所活动图

3 基于CPN的系统建模

在第2节对系统信息流分析的基础上,将系统的用例图和活动图转换为Petri网模型。通过引入颜色集和对模型进行分层设计,将Petri网模型进一步转换为CPN模型,实现对系统运行过程的推演。

3.1 UML模型向Petri网映射规则

(1)用例图向Petri网映射规则。用例图描述了参与红蓝对抗的作战单元,以及在对抗过程中各单元的动作。使用Petri网表述用例图的方法如下:①库所用于表示参与作战的实体;②变迁用于表示各实体的用例;③连接库所和变迁的有向弧用于描述各实体间信息流动的方向。

(2)活动图向Petri网映射规则。活动图描述了红蓝对抗过程中各作战单元要进行的活动及活动的顺序。使用Petri网表述活动图的方法如下:①变迁用于表示活动节点。为变迁添加输入库所和输出库所,用于表示该活动发生前和发生后系统的状态;②守卫条件和变迁函数用于表示活动发生的监护条件;③Petri网中的分支结构,使用与活动图分支路数相同数量的输出变迁,并由守卫条件和有向弧上的判断函数决定分支选择;④Petri网中的合并结构,使用与活动图合并路数相同数量的输入变迁,并由守卫条件和有向弧上的判断函数决定合并条件。

3.2 颜色集声明

CPN模型中用颜色集来描述UML中对象的属性信息。根据对抗过程中各参与者的交互信息,为不同的托肯创建不同类型的颜色集。为了能够描述时间信息,均为设定为可携带时间信息的颜色集。不同类型颜色集的表述如表1所示:

表1 颜色集声明及其含义

3.3 CPN模型

采用自上而下的建模方法,将转换后的Petri网模型进一步转换为CPN模型。CPN模型的顶层模型用于描述各参与作战实体间的信息传递关系,子模型对顶层模型的替代变迁进行细化建模。根据UML图中对系统不同阶段的划分,将Petri网分为1个顶层模型和6个子模型。再根据UML活动图为每个阶段构建CPN子模型,创建不同类型的颜色集实现对不同类型信息的描述。

(1)顶层模型。顶层模型用于描述参与者之间信息交互的方向。基于对红蓝对抗系统的信息流分析,系统的 CPN顶层模型如图4所示。该模型含有一个初始库所代表上级指挥中心,其颜色集为TxP类型,表示作战任务信息。此外,顶层模型还包括6个表示参与者的库所、6个替代变迁和一个托肯。参与者库所的颜色集均为SxTxZxO四元组,表示作战信息;替代变迁表示系统运行的不同阶段,由对应的子模型具体实现;初始库所的托肯用于初始化作战任务信息,该信息可从初始库所流入子模型。

图4 CPN 顶层模型

(2)子模型。子模型作为顶层模型替代变迁的实现,能够实现层次化建模。以描述筹划准备过程的子模型为例,其CPN模型如图5所示。该子模型的输入端口库所为上级指挥中心,其颜色集为TxP类型,表示作战命令二元组。上级作战任务信息流入子网络后,由地面指挥所判断当前的状态是否要响应作战任务。判断过程通过在有向弧上添加选择语句实现。满足变迁激活条件的信息才会向下传递,否则继续等待下一个作战任务。下达作战任务变迁的功能是更新作战指令和目标信息的值,并将信息以SxTxZxO四元组的形式发送给各参与作战单元。最后,更新指挥单元和作战单元的状态,表示准备完成,可进入下一阶段。

图5 筹划准备子网络

4 模型仿真及验证

4.1 模型仿真

使用CPN Tools工具建立系统的CPN模型,该工具支持CPN建模语言、网络层次划分和颜色集。此外,CPN Tools的状态空间报告可以用来验证模型的正确性。

在仿真过程中,令牌的动态变化能够显示出系统状态的变化。仿真结束后,可得到状态空间报告。报告给出CPN模型的数学性质,包括可达性、有界性和活性等,可据此对模型进行正确性验证。

4.2 模型正确性验证

(1)可达性分析。图6是单次仿真得到的状态空间报告。由图可知模型中有54个可达状态节点和55条有向弧,表示模型在不同约束条件下存在多条可达路径。说明从初始标识出发,总存在变迁序列使得CPN模型能够到达规定的终止状态。因此,模型满足可达性,系统能够按照UML设计的轨迹正确运行。

图6 模型状态空间报告

(2)有界性分析。模型有界性报告的部分结果如图7所示。从报告结果可以看出,模型中每个库所拥有的令牌数都在某一确定范围内。库所中令牌的下界是指在整个运行过程中,该库所拥有令牌数量的最小值。结果显示库所中初始化的托肯数目为0或在运行过程中有令牌的流失;令牌的上界是指在整个运行过程中,该库所拥有令牌数量的最大值。结果显示库所存在输入变迁使能,使得令牌能够流入库所。因此,模型具有良好的有界性,保证了系统运行的安全性。

图7 模型有界性报告

(3)活性分析。模型的活性报告如图8所示。从报告结果可以看出,状态节点50、54是该模型的两个死标识。这两个节点分别表示打击失败和打击成功两种情况下的结束的状态,符合系统设计需求。结果显示模型中没有死变迁,即模型中的所有变迁都能够使能,表明该模型具有良好的活性。

图8 模型活性报告

5 结语

为解决复杂场景下离散事件系统动态性高引起的分析困难问题,提出了一种基于着色Petri网的离散事件动态系统建模方法。该方法首先对系统进行信息流分析并构建UML模型,然后根据Petri网的性质将UML模型映射为Petri网模型,最后通过为Petri网模型添加颜色集和层次结构建立系统的CPN模型。CPN Tools测试输出的结果,验证了所提方法的有效性,同时也为系统的设计与优化提供了一定的参考。

猜你喜欢
指挥所库所令牌
称金块
空中指挥所——预警机
基于路由和QoS令牌桶的集中式限速网关
战时指挥所
动态令牌分配的TCSN多级令牌桶流量监管算法
瞻仰“牛田东路军指挥所”旧址
利用Petri网特征结构的故障诊断方法
基于Petri网的WEB服务组合建模及验证
基于模糊Petri网的数控机床主轴故障诊断*
基于智能Petri网的物流配送路径优化算法