基于层次颜色Petri网的仓储作业系统建模与仿真
2020-12-05朱正月
朱正月
(安徽电子信息职业技术学院信息与智能工程系,安徽蚌埠233030)
随着物联网技术的发展和全球经济一体化进程的推进,现代物流产业正朝着信息化、自动化、智能化、柔性化等方向发展。仓储管理作为现代物流体系中的一个枢纽,其作业的智能化程度决定了物流企业的工作效率和经济效益。智能仓储系统是由立体货架、有轨巷道堆垛机、出入库输送系统、信息识别系统、自动控制系统、计算机监控系统、计算机管理系统和其他辅助设备组成的一套智能化管理系统(Intelligent Management System,IMS)。设计开发此类系统是一项综合性很强的系统工程,如何选用合适的建模工具来建立可执行的系统模型,并进行仿真验证以降低系统后续设计中的错误风险,最终构建一个正确、可靠、健壮的信息系统,是系统开发人员非常关注的问题。
Petri网是一种描述和分析大规模复杂的、具有事件并发和异步特性的离散事件动态系统(Discrete Event Dynamic Systems,DEDS)模型的重要工具[1]。韩晓光、陈增强等利用半张量积(Semi-tensor Product,STP)方法对Petri 网的陷阱、可逆性、活性和可达性等展开了讨论和分析[2-4]。丹麦奥胡根大学的Kurt Jensen教授在基本Petri网中引入数据和分层概念,扩展了基本Petri网功能,于1981年提出了一种具有层次特性的高级Petri网——CPN(Colored Petri Net),其拥有一个强大的系统模型可视化仿真平台CPN Tools。CPN在通信协议、数据网、分布式算法及嵌入式系统等多个领域有广泛应用,也适用于制造系统[5-7]等以并发、交互为主要特点的系统建模。CPN融合了数据结构和层次分解功能,引入分层(hierarchy)概念,扩展为一个HCPN(Hierarchical Colored Petri Net)。HCPN可以将一个大规模复杂系统分成若干层次和模块,采用自顶向下(top-down)或自底向上(bottom-up)的分层模块化设计方法,最后建立一个具有层次结构、由多个相互联系的CPN子模型组成的HCPN模型,降低了构建系统模型的复杂度。
通过学习研究文献[8-9],CPN在智能物流领域的相关系统建模中有一定应用,但利用HCPN和CPN Tools实现一个仓储作业系统建模与仿真分析的整体研究还不多。HCPN具有层次化、模块化特性和强大的仿真平台CPN Tools,在实现仓储作业系统全局建模和分析上具有显著优势。本文在分析上海某供应链企业的仓储作业系统流程基础上,从系统全局运行角度出发,基于CPN的层次结构和模块化特性,采用自顶向下、逐步求精的模块化设计方法,实现该企业仓储作业系统的HCPN模型描述,利用仿真平台CPN Tools对所建立的系统HCPN模型进行仿真验证和分析。
1 HCPN定义
不同文献中CPN的定义略有不同,综合相关文献和文中仓储作业系统建模需要,给出以下定义。
定义1[10]非层次颜色Petri网被定义为一个多元组:CPN=(Σ,P,T,A,N,C,G,E,I),满足条件以下9个条件。(1)Σ是一组非空有限集,称作颜色集。(2)P={p1,p2,p3,…,pm}是库所的非空有限集。(3)T={t1,t2,t3,…,tn}是变迁的非空有限集。(4)A是弧的有限集,满足P∩T=P∩A=T∩A=Ø。(5)N是节点函数,定义为N:A→(P×T)∪(T×P)。(6)C是颜色函数,指定存储在每个库所中令牌的实体类型,定义为C:P→Σ。(7)G 是守卫(guard)函数,定义为G:T→expr,满足∀t∈T:[Type(G(t))= BOOL∧Type(Var(G(t)))⊆Σ],其中BOOL∈{true,false},Type(v)表示变量v的类型,Var(expr)表示expr的变量集合。(8)E是弧表达式函数,定义为E:A→expr,满足∀a∈A:[Type(E(a))=C(p)MS∧Type(Var(E(a)))⊆Σ],其中p是N(a)中的库所,C(p)MS是库所p的颜色集上的多重集。(9)I是初始函数,定义为I:P→expr,满足∀p∈P:[Type(I(p))=C(p)MS]。
定义2[10]层次颜色Petri网被定义为一个多元组:HCPN=(S,SN,SA,PN,PT,PA,FS,FT,PP),其应满足如下条件:
(1)S 是页的有限集,对∀s∈S,s 是一个非层次CPNs=(Σs,Ps,Ts,As,Ns,Cs,Gs,Es,Is);∀s1,s2∈S:s1≠s2⇒(Ps1∪Ts1∪As1)∩(Ps2∪Ts2∪As2)=Ø。
(2)SN⊆T是替代节点集合,有T={t|∃s∈S:t∈Ts}。
(3)SA是页分配函数,定义为SA:SN→S,任何页都不是自身的子页。
(4)PN⊆P是端口节点集合,P={p|∃s∈S:p∈Ps}。
(5)PT是端口类型函数,定义为PT:PN→{in,out,i/o,general}。
(6)PA是端口分配函数,定义为从SN映射到一个二元关系,使得:
1)槽(socket)节点和端口(port)节点相互对应:∀t∈SN:PA(t)⊆X(t)×PNSA(t);
2)socket节点有对应的数据类型:∀t∈SN,∀(p1,p2)∈PA(t):[PT(p2)≠general⇒ST(p1,t)=PT(p2)];
3)相互配对的port节点和socket节点具有相同的颜色集和初始表达式:∀t∈SN,∀(p1,p2)∈PA(t):
4)ST函数用于将套接端口(socket port)和替代变迁对映射到{in,out,i/o},其规则是:
(7)FS⊆Ps是融合集的有限集,其所有成员有相同的颜色集和等价的初始化表达式:∀fs∈FS,∀p1,p2∈fs:[C(p1)=C(p2)∧I(p1)<>=I(p2)<>]。
(8)FT 是融合类型函数,定义为FT:FS→{global,page,instance}。页和实例融合集应属于单独一页,满足:∀fs∈FS:[FT(fs)≠global⇒∃s∈S:fs⊆Ps]。
(9)PP⊆SMS是初始主页上的多重集。
2 仓储作业系统HCPN建模
2.1 仓储作业系统
仓储作业系统是智能化物流管理体系的一个重要组成部分。图1描述的是上海某供应链企业的智能仓储平面布局情况。该企业仓储作业系统主要包括货物、叉车、托盘、出/入库输送带、AGV小车、分拣包装设备、堆垛机、立体货架等对象,涉及多个作业流程,各作业流程间衔接紧密,智能协同,研究局部对象的作业流程难以提升仓储作业系统的整体运行效率,需要从全局角度对仓储作业系统进行研究,以构建一个高可靠、高效率的智能化作业系统。在文献[11]研究工作的基础上,将该供应链企业的仓储作业系统划分为入库输送、AGV 小车、入库、出库、出库输送和出/入库调度控制6个功能子系统,确定6个子系统间的作业流程衔接关系,利用CPN Tools建立该仓储作业系统的HCPN模型并进行仿真分析。
2.2 分层规划和颜色集声明
声明系统HCPN 模型所需要的颜色集,在top页(父页)建立顶层CPN模型,使用层次工具创建6 个替代变迁代表系统中的6 个子系统模块,依次建立6个替代变迁对应的6个sub页(子页),实现替代变迁与子页的一一映射,通过子页描述6个子系统模块的作业流程;用融合库所代替多个页面中共有的库所,实现对不同页面上相关库所的同时操作;用槽库所/端口库所实现top页与sub页间关联和通信。采用分层和模块化设计方法构建的仓储作业系统HCPN模型,大大减少了系统模型的库所和变迁数量,降低了系统模型的复杂性,避免了系统模型的状态空间过于庞大,利于对系统的有界性(boundedness)、活性(liveness)、家性(home)和公平性(fairness)等性质进行验证和分析。图2 是仓储作业系统HCPN模型的颜色集声明。
图1 某供应链企业的智能仓储平面布局
图2 仓储作业系统HCPN模型颜色集
图2中,颜色集GOODS、AGVGOODS、TASKORDER、TUNNELS、CARRAYGOODS 和STORAGEGOODS 均为笛卡尔积形式。其中,GOODS声明了3个颜色:货物编号、货物名称和出/入库巷道号;AGVGOOS 声明了3 个颜色:AGV 小车运送的货物编号、货物名称和出/入库巷道号;TASKORDER 声明了2 个颜色:调度命令中货物出/入库巷道号和出/入库命令状态;TUNNELS 声明了2 个颜色:出/入库巷道号和巷道闲/忙状态;CARRAYGOODS 声明了3 个颜色:输送中货物编号、货物名称和出/入库巷道号;STORAGEGOODS 声明了3 个颜色:仓库中货物编号、货物名称和出/入库巷道号。
2.3 建立系统顶层CPN模型
在HCPN 中,替代变迁和融合库所是实现CPN 分层的两个重要部件,它们提供了将CPN 网分解为若干子网的强大能力,使用槽库所和端口库所实现top页与sub页的关联与通信。在2.2节描述的仓储作业系统分层规划中,top页模型中的每个子系统模块用一个替代变迁表示,该变迁映射到一个子页,一个子页就是一个子模型,一个子页功能实现一个子系统模块操作。图3 是建立的顶层CPN 模型。在图3中,用替代变迁IntoTrans、AGV、IntoWarehouse、OutWarehouse、Dispatch和OutTrans分别描述入库输送子系统、AGV小车子系统、入库子系统、出库子系统、调度控制子系统和出库输送子系统,这6个替代变迁和相关的控制库所构成了系统的顶层CPN模型。
2.4 建立系统各子层CPN模型
(1)出/入库调度控制子系统CPN模型
出/入库调度控制子系统负责协调处理智能仓储中心的出/入库智能调度作业过程,采用出库优先的调度策略,其思想是:当同一个出/入库巷道中有出库作业流程且未完成时,则入库作业流程不能启动,避免巷道拥塞。出/入库调度控制子系统CPN模型在子页Dispatch中实现描述,映射到顶层CPN模型中的替代变迁Dispatch,建立的CPN模型如图4所示。
图3 仓储作业系统的顶层CPN模型
图4 出/入库调度控制子系统CPN模型
图4 中,为保证该企业仓储作业系统具有较高的作业效率和较低的系统执行时间,提升该智能仓储中心的货物出/入库量,结合企业生产实际,采用出库优先的调度策略来实施出/入库智能调度作业过程。当出现并发的出/入库任务时,变迁DispatchJudge被触发,判断出/入库作业是否冲突,相应的同一个出/入库巷道是否空闲等情况,根据出库优先的原则实施调度操作,为出/入库子系统提供巷道状态。如果出/入库任务同时处于某个巷道,将先执行该巷道的出库任务,出库操作完成后再执行入库任务。AGV小车子系统接受出/入库调度控制子系统的控制,在该系统的调度下执行货物运送任务。
(2)出库子系统CPN模型
出库子系统主要负责处理货物从立体货架移出到巷道出库台的作业过程,在子页OutWarehouse中实现描述,映射到顶层CPN模型中的替代变迁OutWarehouse,建立的CPN模型如图5所示。图5中,在出/入库调度控制子系统的控制下,出库子系统收到系统发出的出库指令,检查相应巷道是否处于允许出库状态,如相应巷道允许出库,变迁OutStart被触发,巷道堆垛机执行出库操作,移动到立体货架相应位置,拾取货物并移动到巷道出货台,将货物放置于巷道出货台,由后续AGV小车子系统负责将货物运送到出库台,同时释放巷道状态信息到库所Ptunnels中,1个托肯e流进出库控制库所Poutctrl,该托肯用于允许AGV小车子系统执行将货物从巷道出货台运送至出库台的运送作业。变迁OutStart中设计有一个守卫函数tout=gtu,用于判断货物要出库的巷道与分配的巷道是否一致,以保证货物顺利出库。
(3)入库子系统CPN模型
入库子系统主要负责处理货物从巷道入货台堆放到立体货架的作业过程,在子页IntoWarehouse中实现描述,映射到顶层CPN模型中的替代变迁IntoWarehouse,建立的CPN模型如图6所示。
图6中,在出/入库调度控制子系统的智能调度下,入库子系统收到系统发出的入库指令,检查AGV小车运送的货物是否已到巷道入货台上,相应巷道是否处于允许入库状态。如货物已到巷道入货台且相应巷道允许入库,变迁IntoStart被触发,巷道堆垛机执行入库操作,按指令要求将货物堆放到立体货架相应位置,同时释放巷道状态信息到库所Ptunnels中,1个托肯e流进入库控制库所Pintoctrl中,该托肯用于允许AGV小车子系统可执行下一次货物从入库台到巷道入货台的运送作业。变迁IntoStart中设计有一个守卫函数tin=gtu,用于判断货物要入库的巷道与分配的巷道是否一致,以保证货物顺利入库。
图5 出库子系统CPN模型
图6 入库子系统CPN模型
(4)AGV小车子系统CPN模型
AGV 小车子系统主要负责处理货物从入库台运送到巷道入货台和从巷道出货台运送到出库台的作业过程,在子页AGV 中实现描述,映射到顶层CPN 模型中的替代变迁AGV,建立的CPN 模型如图7所示。
在图7 中,当入库控制库所Pintoctrl 和出/入库控制库所Pin_out_ctrl 中各有1 个托肯e 时,表示入库台上有货物并且巷道入货台上无货物,AGV小车子系统执行操作,AGV小车将入库台上的货物运送到巷道入货台上。当出库控制库所Poutctrl和出/入库控制库所Pin_out_ctrl中各有1个托肯e时,表示巷道出货台上有货物并且出库台上无货物,AGV小车子系统执行操作,AGV小车将巷道出货台上的货物运送到出库台上。当有入库台货物运送到巷道入货台任务和巷道出货台货物运送到出库台任务同时发生时,在出/入库调度控制子系统的调度下,采用出库优先的调度策略,AGV小车先将货物从巷道出货台运送到出库台,再将入库台货物运送到巷道入货台,避免AGV小车子系统出现“死锁”状况。
图7 AGV小车子系统CPN模型
(5)出库输送子系统CPN模型
出库输送子系统主要负责处理货物从出库台到出库缓冲区的作业过程,在子页OutTrans中实现描述,映射到顶层CPN模型中的替代变迁OutTrans,建立的CPN 模型如图8 所示。图8 中,货物由AGV 小车运送到出库台后,出库输送子系统执行操作。当控制库所Pctrl3中有1个托肯e时,表示货物可以向出库缓冲区输送,变迁TransOutPlat 被触发,由辊道运输机以分节形式将出库台货物输送到出库缓冲区,同时1 个托肯e流入出/库控制库所Pin_out_ctrl,该托肯用于控制后续AGV小车从巷道出货台运送出库货物到出库台的操作。当控制库所Pctrl4中有1个托肯e时,表明出库缓冲区中货物被移除,可允许辊道输送机将出库输送带上货物输送到出库缓冲区,再由叉车将出库缓冲区货物运走,至此出库输送子系统就完成了一次货物出库输送作业过程。
(6)入库输送子系统CPN模型
入库输送子系统主要负责处理货物从入库缓冲区到入库台的作业过程,在子页IntoTrans中实现描述,映射到顶层CPN模型中的替代变迁IntoTrans,建立的CPN模型如图9所示。
图8 出库输送子系统CPN模型
图9 入库输送子系统CPN模型
图9 中,货物到达仓储中心经过验收、打托和贴标后准备入库,入库输送子系统执行操作。当控制库所Pctrl1 中有1 个托肯e 时,表示入库缓冲区允许使用,变迁TransIntoBuffer 被触发,执行由叉车将托盘运到入库缓冲区的作业流程。当控制库所Pctrl2中有1个托肯e时,表示入库台为空,允许货物到达,由辊道运输机以分节形式将入库缓冲区中的货物运输到入库台,货物到达入库台后,1个托肯e流入出/库控制库所Pin_out_ctrl,该托肯用于控制后续AGV小车从入库台运送入库货物到巷道入货台的操作,至此入库输送子系统就完成一次货物入库输送作业过程。
智能化控制特性是一个IMS的核心,仓储作业系统作为一类IMS,在其闭环式的系统运行过程中,智能化控制发挥核心作用,物理系统实现上可以采用各种传感器、RFID设备、智能机器人和先进的控制、总线、通讯和信息技术,其中的出/入库智能调度控制子系统是整个系统的中枢。在构建的仓储作业系统HCPN模型中,为模拟系统智能控制特性,保证各子系统在闭环下智能管控、协同运行,使用守卫函数和控制库所等来实现。图3所示的顶层的CPN模型中,各替代变迁的触发和执行,受PintoCtrl、PoutCtrl和Pin_out_ctrl三个控制库所的作用,只有在相应的控制库所上有托肯e时,替代变迁才有可能被触发。图4所示的出/入库智能调度控制子系统CPN模型中,设计有多个守卫函数,用于闭环仿真系统下的智能管控,其中守卫函数tin=tn管控入库调度变迁IntoTrigger的触发,守卫函数tout=tn管控出库调度变迁Out-Trigger的触发,守卫函数tin=tout andalso tn=tout管控出/入库调度判断变迁DispathJudge的触发,主要作用是实现出库优先的智能调度策略。图7所示的AGV小车子系统CPN模型中,使用三个控制库所,分别用于AGV小车的两种运送货物作业过程控制,解决出入库作业时对AGV小车资源的竞争死锁现象,保证AGV小车智能化有序执行出/入库运送货物作业过程。图5、图6中的变迁OutStart、IntoStart分别使用守卫函数tout=gtu、tin=gtu,用来智能管控货物的入库和出库作业过程触发。多种守卫函数和控制库所的应用是HCPN网模型在行为与特性上描述物理系统的自动化、智能化控制功能的重要方式。
3 仓储作业系统HCPN模型仿真分析
CPN Tools采用交互式图形表示,可实现用模拟方法分析被建模系统的行为,借助状态空间方法和模型检查来验证模型性能,进行基于模拟的性能分析,可利用高层次图形来刻画CPN模型的行为,是一个经典的CPN 模型仿真和性能分析平台。在第2 节建立的仓储作业系统HCPN 模型的基础上,利用CPN Tools 4.0.0仿真平台对系统模型进行仿真验证,分析模型的正确性、可靠性和有界性等性质。
在仿真环节,首先按图2所示内容在CPN Tools 4.0.0平台中声明模型的各颜色集,然后按图3到图9所示的CPN模型采用自顶向下、模块化方式建立层次结构的仓储作业系统HCPN模型,设置初始标识,语法检测通过后即可进行仿真模拟操作。在CPN Tools中建立好仓储作业系统的HCPN模型后,拖出平台索引菜单中的仿真工具面板,设置其中Play按钮的执行步数,单击该按钮后在模型可执行的变迁上单击一下,启动HCPN模型的仿真过程。可以利用索引菜单中的监视器(Monitoring)工具面板对仿真过程实施仿真断点监视操作,以观察模型运行的特定状态或特定的变迁发生情况。
仿真过程结束后,调出索引菜单中的状态空间面板,使用面板中的状态空间工具(State Space Tools)来计算系统模型的状态空间和强连通部件图(Strongly Connected Componet Graph,SCC-graph)。面板中“”按钮的作用是进入并计算状态空间,这个计算过程需要一定的时间,计算完成后可利用保存按钮功能以合适的文件格式保存状态空间报告,基于状态空间报告可以对HCPN模型进行相关性能分析。
基于CPN Tools 4.0.0 仿真平台完成仓储作业系统的HCPN 模型的仿真后,使用状态空间工具进行计算分析,得到该系统HCPN模型的一份状态空间报告(state space report),该报告提供了系统HCPN模型的状态空间大小信息和标准的行为性质。图10是通过状态空间工具计算得到的仓储作业系统HCPN模型的非完全状态空间报告。
图10中,(a)描述了系统HCPN模型的状态空间统计信息,(b)描述了系统HCPN模型的家属性相关信息,(c)描述了系统HCPN模型的活性相关信息,(d)描述了系统HCPN模型的公平性相关信息,(e)描述了系统HCPN模型的有界性相关信息。利用计算状态空间得到的状态空间报告来分析系统HCPN模型性能的过程,将主要的性能分析计算工作交由仿真平台来完成,操作容易,自动化程度高,大大降低了人工分析的工作量。由状态报告可以看出,建立的仓储作业系统HCPN模型中库所都是有界的,模型中无死变迁,没有无限发生序列,具有有界性、活性和公平性,系统可以正常运行。
图10 状态空间报告
4 结 论
仓储作业系统是一个复杂的系统,使用合理的调度策略可以提高系统作业效率。采用自顶向下、模块化方式构建某企业仓储作业系统的HCPN模型,利用CPN Tools 4.0.0仿真平台对系统模型进行仿真,利用状态空间方法分析系统模型的有界性、家性、活性和公平性等性质,确保了所建立的HCPN模型的正确性、可靠性和健壮性,提高了系统模型的灵活性和扩展性,为大规模复杂离散事件动态系统建模提供了一种新思路。通过仿真验证和分析可以看出,增强AGV小车子系统和出/入库子系统的工作能力,能大大提升系统的整体运行效率。后续工作中,考虑在系统建模过程中引入时间因素,建立赋时层次颜色Petri网(HTCPN),以进一步优化改进仓储作业系统性能。