自动制造系统(automated manufacturing systems, AMSs)用一组有限的资源同时处理多种零件. 因此不适当的资源分配将导致系统出现循环等待, 带来巨大的经济损失[1–4]. AMSs中可能出现故障的资源称为不可靠资源. 当不可靠资源故障时, 需要故障资源的零件无法继续加工. 此外, 资源故障可能造成系统阻塞, 导致不需要故障资源的零件也无法进行加工. 因此, 需要为AMSs开发有效的死锁控制策略, 以阻止系统出现死锁和阻塞状态[5–11].
目前广泛使用的死锁控制策略之一是死锁预防, 其主要应用以下两种技术预防死锁. 一种是可达性分析[12–14], 该方式可以使系统达到最大许可性. 然而, 它存在状态爆炸的问题. 另一种是结构分析[15–19], 分为以下两种方法. 基于虹吸的方法通过预防标记不足的虹吸解决死锁问题[15,16]. 基于资源回路的方法通过阻止回路饱和解决死锁问题[17–19]. 对于各类复杂的AMSs, 研究人员分别通过最大完美资源变迁(maximal perfect resource transition, MPRT)回路[18,19], 最大完美控制变迁(maximal perfect control transition, MPCT)回路[20], 最大关键资源变迁(maximal critical resource transition, MCRT)回路[21], 完美活动(perfect activity, PA)回路[22,23]等解决死锁问题.
Li等基于资源回路的概念划分Petri网(Petri nets, PNs), 通过为划分后的子网设计管理器合成整个PNs的活性增强管理器. 这种分治策略相比以往方法可以降低复杂度, 但复杂度仍为指数级[17]. Liu等对于具有资源的简单序列进程系统(systems of simple sequential processes with resources, S3PRs), 仅为有效变迁覆盖中的MPRT回路添加控制器以预防死锁. 这种添加方法可以降低外部控制器的结构, 但会拒绝一些可达标记[19]. Liu等通过为MPRT回路添加控制器预防系统死锁, 并为MPCT回路添加控制器预防二次死锁, 解决具有关键资源的S3PRs的死锁. 该策略考虑了造成死锁的一种特殊标记, 称为无死锁不安全标记, 但其控制器添加方式会拒绝一些可达标记[20]. Feng等将S3PRs的活性条件推广到具有共享资源的顺序系统(systems of sequential systems with shared resources, S4PRs), 通过饱和的PA回路表征S4PRs中的死锁. 该方法考虑具有多资源获取的系统, 但控制器结构较为复杂[22]. 为此, Feng等在文献[22]的基础上将可饱和PA回路分为独立和依赖两类, 通过为独立可饱和回路添加控制器预防死锁. 该方法已经取得突破性的进展, 但其没有考虑造成死锁的无死锁不安全标记[23]. 对于多数量资源获取的系统, Feng等将死锁用饱和的PRT回路表征, 得到系统的变迁覆盖. 该方法复杂度较低, 但会拒绝一些可达标记, 且该方法可适用的系统较少[24].
上面提到的死锁控制方法没有考虑到资源故障的情况, 但现实生活中, 资源故障是不可避免的. 对于具有不可靠资源的AMSs, 需要应用有效的控制策略预防系统死锁. Feng等研究了具有一种不可靠资源, 且一次最多有一个不可靠资源故障的S3PRs, 并在变迁覆盖[17]的基础上提出强变迁覆盖. 该方法确保即使资源故障, 系统也可以无限地处理所有类型的零件. 但他们没有考虑具有多种不可靠资源的系统[18]. Du等对于具有多种不可靠资源的S3PRs, 通过线性约束控制死锁标记下的MCRT回路. 该控制器考虑了需要MCRT回路中不可靠资源的活动库所, 保证资源故障时进程的连续操作. 该方法考虑了多种资源故障的情况, 但S3PRs中没有同时需要可靠和不可靠资源的阶段, 其不能解决这种阶段下资源故障造成的阻塞[21].
面向进程Petri网(process-oriented Petri nets, POPNs)可以直观地描述AMSs, 但其模型结构复杂度较高, 且不易寻找造成死锁的回路. 为此, 人们提出面向资源Petri网(resource-oriented Petri nets, ROPNs)的建模方式. Zhao等使用饱和的生产进程回路(production process circuit, PPC)描述死锁, 通过在线监督管理器, 前瞻预测托肯的前进. 该策略通过控制变迁的触发解决死锁问题. 但其复杂度较高[25]. 对于具有加权资源分配的简单顺序进程系统(weighted S3PRs, WS3PRs), Liu等定义其对应的ROPN模型, 提出一种基于结构分析的不需要外部监督的死锁预防方法. 该方法主要借助回路中弧线的权值合理分配资源, 其主要关注资源的利用率, 没有考虑可达标记的问题[26]. Chen等定义S3PRs对应的ROPN模型, 通过对其进行可达性分析揭示不良标记与强连通子网之间的关系. 他们仅为每个强连通子网添加一个死锁控制器, 因此控制器的结构较为简单. 但是这种借助可达分析的方法复杂度较高[27]. Chen等对具有权重的AMSs, 通过控制一些特定变迁的触发, 避免受控系统出现死锁. 该方法具有多项式复杂度, 但会拒绝一些可达标记[28].
通过分析发现, 现有死锁预防策略的问题集中体现在计算复杂度较高、拒绝一些可达标记、外部控制器的结构复杂、资源故障导致阻塞等多个方面. 由于ROPN模型的结构特征, 其更方便寻找造成死锁的可饱和回路. 然而现有的ROPN模型较为简单, 它们大多仅为具有灵活路径的AMSs建模. 基于这些前提, 本文研究一类具有多种不可靠资源的复杂AMSs的死锁问题, 其主要贡献总结如下.
(1) 通过建立POPNs与ROPNs的联系, 提出一种将POPNs转化为ROPNs的算法. 与现有ROPN模型相比, 本文的模型可以表示具有多类型资源获取、装配操作和灵活路径的AMSs.
(2) 提出一种新的死锁监督控制器. 与现有控制器相比, 该控制器具有控制开关, 通过实时改变控制库所的容量, 系统可以接受更多的安全标记.
(3) 提出危险库所的概念, 并为它们添加资源缓冲子网. 使得即使不可靠资源故障, 不需要故障资源的零件仍然可以持续加工.
1 使用ROPNs建模本节首先介绍了ROPNs的基本符号, 然后提出一种新的算法建立一类复杂AMSs的ROPN模型. 与文献[25–28]使用的模型不同, 本文的模型可以表示具有多类型资源获取、装配操作和灵活路径的AMSs, 且其考虑了同时需要可靠和不可靠资源的特殊阶段.
1.1 ROPNs在AMSs中, 零件在每个阶段获取不同的资源进行加工处理. ROPNs使用资源库所表示AMSs中零件加工所需资源, 用变迁表示零件的加工阶段. 通过使用变迁将资源库所与零件存储中心相连接, 可以描述一种零件的加工过程. 由于一个AMS中具有多种不同的零件, 在ROPNs中引入颜色, 使用有色变迁区分不同零件的加工阶段. 此外, 库所中的有色托肯只能触发具有相同颜色的变迁. 通过这种触发方式, ROPNs可以完整的描述AMSs中所有零件的加工进程.
在ROPNs中, K表示资源库所的容量. 资源库所中的托肯表示当前状态下已经被占用的资源空间, 托肯的移动表示零件的加工过程. 此外, P表示库所集, T表示变迁集, I表示输入函数, O表示输出函数, M表示当前标记.
定义1.
在ROPNs中, 每个变迁tid只有一个独特的颜色cid, 用来区分不同的零件阶段. 一个库所pl可能包含多种颜色的托肯, 且不同库所中可能有相同颜色的托肯, 用(pl, ci)表示pl中ci颜色的托肯. M(pl)表示标记M下pl中所有颜色的托肯数量, M(pl, cid)表示标记M下pl中cid颜色的托肯数量.
定义2. 给定可达标记M∈R(N, M0), 当同时满足式(1)和式(2)时, 称变迁tid是使能的.
$ M(p_{l}, c_{id}) ≥ I(p_{l}, t_{id}) $ | (1) |
$ K(p_{l}) ≥ M(p_{l}) − I(p_{l}, t_{id}) \cdot (c_{id}) + O(p_{l}, t_{id}) \cdot (c_{id}) $ | (2) |
当仅满足式(1)时, 表明tid的输入库所中都有足够的cid颜色的托肯, 此时tid为进程使能. 当仅满足式(2)时, 表明tid的输出库所都有足够的资源空间, 此时tid为资源使能. 用TEN表示标记M下的使能变迁集.
定义3. 给定可达标记M∈R(N, M0), 如果触发使能变迁tid后M变为M', 用符号表示为M [tid 〉 M'.
$ M'(p_{l}) = M(p_{l}) − I(p_{l}, t_{id}) \cdot (c_{id}) + O(p_{l}, t_{id}) \cdot (c_{id}) $ | (3) |
多类型资源获取阶段可以表示同时需要可靠和不可靠资源的零件阶段, 装配操作可以提高零件的生产效率, 灵活路径可以增强零件加工的灵活性, 这些结构都具有很重要的现实意义. 但是现有的POPNs不能为同时具有这些结构的AMSs建模. 因此本节建立POPNs与ROPNs的联系, 提出一种新的ROPN模型, 称为特殊资源标记图(special resource marked graphs, SRMGs).
定义4. 一个SRMG表示为一个八元组N = (P, T, C, X, I, O, M, K), 其结构为:
(1) P = P0∪PR, P0为零件存储中心. PR = PRr∪PRu 是一组有限的资源库所集, 其中PRr是一组可靠资源库所集, PRu是一组不可靠资源库所集.
(2) T = ∪Ti, Ti表示第i种零件加工过程中的变迁.
(3) C: C(pl)和C(tid)分别代表pl中托肯的颜色和tid的颜色.
(4) X = ∪Xi, i∈
(5) I: P×T→
(6) O: P×T→
(7) M: P→
(8) K: P→
假设AMSs中没有零件会连续使用同一资源, 如果有, 将这些连续操作视为一个加工阶段.
下面使用算法1建立ROPN模型, 其主要借助AMSs的POPN模型, 通过删减活动库所以及更改部分弧线, 在已有POPN模型的基础上生成其对应的ROPN模型. 对于可以描述多类型资源获取、装配操作和灵活路径的ROPN模型, 称它们为SRMGs.
算法1. 基于ROPNs建立的模型
输入: AMSs的POPN模型
输出: 对应的ROPN模型
1) 删除POPN模型中的PB和PA, 以及连接这些库所的弧;
2) 删除为资源库所标记的容量, 并将rl转化为对应的pl, 其中K(pl) = M0(rl);
3) 将剩余网中弧的方向反转;
4) 添加零件存储中心P0;
5) 在P0与没有输入库所的变迁ti之间添加I(P0, ti), 在P0与没有输出库所的变迁tj之间添加O(P0, tj);
6) 为变迁赋予颜色, C(tid) = cid;
对于一个没有资源循环等待的标记M, 其是一个无死锁标记. 如果M中所有使能变迁触发后都会到达死锁标记, 称该标记为无死锁不安全标记.
定义5. 给定可达标记M∈R(N, M0), 如果M为死锁或无死锁不安全标记, 称M为不安全标记. 否则, 称M为安全标记.
将触发后不会导致不安全标记的使能变迁称为活性变迁, 用TRL表示标记M下的活性变迁集. 下面, 介绍本文的死锁预防策略, 其通过计算活性变迁, 阻止系统到达不安全标记.
2 死锁预防策略本文的目标是解决AMSs的死锁问题, 因此需要破坏死锁的循环等待条件. 在方法的选取上, 采用死锁预防的思想. 其通过分析模型找到造成死锁的特殊结构, 然后添加控制器阻止这些特殊结构饱和达到预防死锁的目的. 基于这一思想, 本文借助SRMGs的结构特征, 找到造成死锁的可饱和回路, 通过离线方式为这些回路设计控制器. 控制器通过限制变迁的触发阻止系统到达不安全标记. 考虑到资源故障问题, 为危险库所添加资源缓冲子网. 这种子网起到缓冲区的作用, 使得资源故障不会影响系统的正常运行.
2.1 基本控制器对于触发后导致回路没有剩余资源空间的变迁, 现有死锁控制器阻止它们的触发. 这导致控制策略会拒绝一些可达安全标记. 针对这一问题, 本节设计一种具有开关的控制器. 该方法可以使系统接受更多的可达安全标记. 针对控制器的结构复杂性问题, 基于简化策略仅为基本资源等待回路添加基本控制器, 在降低外部结构的基础上预防系统到达死锁标记.
定义6. 在SRMGs中, 将每个库所(变迁)视为一个节点. 一条路径是有序的节点序列, 表示为<x1, x2, …, xn >. 其中(1) { x1, x2, …, xn}
定义7. 在SRMGs中, 如果回路Rl中的所有资源库所都是回路Rk的资源库所, 称Rk包含Rl. 如果一个RWC不包含任何其他的RWC, 称其为基本资源等待回路(BRWC). 用Ri表示一个BRWC, RI表示Ri集.
定义8. 如果t不在Ri中, t的输入(输出)库所在Ri中, 且t的输出(输入)库所不在Ri中, 称t为Ri的输出(输入)变迁. TI(Ri)(TO(Ri))表示Ri的输入(输出)变迁集.
根据定义8可知, 变迁t不可能同时为一个回路的输入和输出变迁.
定义9. 对于变迁tid, 用RIid表示输入变迁是tid的BRWC集, ROid表示输出变迁是tid的BRWC集.
定义10. 具有多个输出库所的变迁称为多资源获取变迁, 用tma表示, Tma表示tma集. 具有多个输入库所的变迁称为多资源释放变迁, 用tmr表示, Tmr表示tmr集. tma的输出库所用POma表示, tmr的输入库所用PImr表示, 如果POma = PImr, 称tma和tmr是相对应的变迁.
由于tma具有多个输出库所, 如果tma为Ri的输入变迁, 其触发后可能占用Ri的多个资源空间. 当然, tma的输出库所不一定都位于Ri中.
定义11. Ri(P) = {p1, …, pr}表示Ri中的库所集, Ri(T) = {t1, …, tr}表示Ri中的变迁集.
事实上, 回路中的库所数一定等于变迁数.
定义12. 在标记M下, 对于Ri中的某个托肯, 如果其触发Ri的活性输出变迁后仍在Ri中, 称该托肯为标记M下Ri的循环托肯. 否则, 称该托肯为标记M下Ri的可离开托肯.
定义13. 给定标记M, 如果回路Ri同时满足以下条件, 称其为饱和回路: (1) M(Ri) = K(Ri) = ∑K(pl); (2) 在标记M下, Ri中没有可离开托肯.
为了控制BRWC中托肯的数量, 算法2为RI添加具有开关的基本控制器. Ri的基本控制器定义如下: Rci = {pci, sci, I(pci), O(pci), W(pci), K(pci)}. pci表示基本控制库所, 其分为基本可用空间pci1和基本缓冲空间pci2. sci表示基本控制开关. I(pci)表示pci的输入弧, O(pci)表示pci的输出弧. W(pci)表示pci的弧的权重, 意味着变迁的触发会占用或释放pci的多个资源空间. K(pci) = K(pci1)⊕K(pci2)表示pci的容量, 其是根据开关状态动态变化的. 初始时, M0(sci) = off, K(pci) = K(pci1). 当sci = on时, K(pci) = K(pci1) + K(pci2). 由于触发tma可能会占用Ri的多个资源空间, 用|O(Ri(P), ta)|表示ta指向Ri中库所的弧的数量, 则W(O(pci, ta))表示触发ta占用的pci的资源空间数. 触发tmr可能会释放Ri的多个资源空间, |I(Ri(P), tb)|表示Ri中库所指向tb的弧的数量, W(I(pci, tb))表示触发tb释放的pci的资源空间数.
算法2. 基本控制器的添加方法
输入: RI
输出: RCI
1) for(i = 1; i ≤ |RI |; i++)
2) Ri = Ri∪pci∪sci;
3) M0(sci) = off;
4) K(pci1) = ∑K(pl) − 1;
4) K(pci2) = 1; K(pci) = K(pci1)♁K(pci2); //
5) for(a = 1; a ≤ |TI(Ri)|; a++)
6) Ri = Ri∪O(pci, ta); //
7) for(b = 1; b ≤ |TO(Ri)|; b++)
8) Ri = Ri∪I(pci, tb); //
定义14. 给定标记M,
当Re(M(pci)) > 0时, Ri至少有一个未被占用的资源空间. 根据定义13可知, Ri不是饱和的. 即使Re(M(pci)) = 0, 只要标记M下Ri有活性输出变迁, Rp(M(pci)) > 0. 此时 Ri具有可离开托肯, 该托肯离开Ri后可以释放占用的资源空间, Ri不是饱和的. 当Re(M(pci)) = 0, 且Ri没有活性输出变迁时, Rp(M(pci)) = 0. 此时Ri没有可离开托肯, Ri是饱和的.
引理1[22]. 对于S4PR, 其死锁等价于系统中存在饱和的PA回路.
定理1. 对于SRMGs, 其死锁等价于系统中存在饱和的RWC.
证明: 根据引理1可知, 系统死锁时部分资源库所没有剩余资源空间, 且这些资源库所之间存在循环等待. 在SRMGs中, 这些资源库所构成饱和的回路. 此外, 由于K(P0) = ∞, 包含P0的回路永远不会饱和. 因此, 当AMSs出现死锁时, SRMGs中存在饱和的RWC. 同理, 当某个回路饱和时, 该回路一定是RWC. 由于该回路是饱和的, 回路中一定没有剩余资源空间, 且其输出变迁不能触发. 此时回路中的托肯相互等待其他托肯占用的资源空间, 因此需要这些资源的零件永远无法完成加工, 系统出现死锁.
定理2. 如果Rk包含Rl, 只要Rl不饱和, Rk也不会饱和.
证明: 根据定义13和定义14, 对于Rl, 以下两种情况下它不会饱和: 1) Re(M(pcl)) ≠ 0, 此时不满足定义13的条件1. 由于Rk包含Rl, Rl中具有剩余资源空间的库所也一定在Rk中, 因此Re(M(pck)) ≠ 0; 2) Re(M(pcl)) = 0, 且Rl有活性输出变迁, 表明Rl有可离开托肯, 此时不满足定义13的条件2. 由于Rk包含Rl, Rl的活性输出变迁一定是Rk的输出变迁, 因此Rk不会饱和. 综上所述, 只要Rl不饱和, Rk也不会饱和.
RCI = {pCI, sCI, I(pCI), O(pCI), W(pCI), K(pCI)}表示RI的基本控制器. (NCI, M0CI) = (N, M0)
现有的死锁预防策略很少考虑无死锁不安全标记. 由于这种特殊标记一定会导致死锁, 因此有必要阻止系统到达这些标记. 前文通过添加基本控制器的方式仅能预防回路饱和, 不能阻止系统到达无死锁不安全标记. 为此, 本节引入总控制器.
定义15. 由n (n ≥ 2)个BRWC组成的回路称为交互式基本资源等待回路(IBC), Bj表示一个IBC.
与BRWC中的定义类似, TI(Bj)(TO(Bj))表示Bj的输入(输出)变迁集. BIid表示输入变迁是tid的IBC集, BOid表示输出变迁是tid的IBC集. Bj(P)表示Bj中的库所集, Bj(T)表示Bj中的变迁集.
为了控制IBC中托肯的数量, 算法3为部分回路添加总控制器, 其中BJ表示需要添加总控制器的所有回路. 与基本控制器类似, Bj的总控制器定义如下: Bcj = {Pcj, Scj, I(Pcj), O(Pcj), W(Pcj), K(Pcj)}. 假设Bj由nj个BRWC组成, 将Scj(Pcj2)分成nj份, 每一份用
算法3. 系统中总控制器的添加方法
输入: BJ
输出: BCJ
1) for(j = 1; j ≤ |BJ|; j++)
2) Bj = Bj∪Pcj∪Scj;
3) M0(Scj) = off;
4) K(Pcj1) = ∑K(pȴ) − nj; K(
5) for(c = 1; c ≤ |TI(Bj)|; c++)
6) Bj = Bj∪O(Pcj, tc); //
7) for(d = 1; d ≤ |TO(Bj)|; d++)
8) Bj = Bj∪I(Pcj, td); //
定义16. 给定标记M,
定理3. 给定无死锁标记M, 对于nj (nj > 1)个BRWC组成的 Bj, 当且仅当Bj中的剩余资源空间小于nj, 且这nj个回路都没有活性输出变迁时, M为无死锁不安全标记.
证明: 充分性: 由于M是无死锁标记, 此时系统中没有饱和的回路. 若Bj中的剩余资源空间小于nj, 表明只有多个BRWC共享的资源库所具有剩余资源空间. 此时任一BRWC的使能输入变迁触发后都会造成该回路饱和, 且已知回路没有活性输出变迁, 因此回路的使能变迁都不能触发, M为无死锁不安全标记.
必要性: 当M为无死锁不安全标记时, 回路的使能变迁触发后都会到达死锁标记, 因此回路没有活性输出变迁. 对于由nj个BRWC组成的Bj, 由于多个BRWC具有共享的资源库所, Re(M(Pcj)) < ∑ Re(M(pci)). 由于M是无死锁标记, 且回路没有活性输出变迁, 因此每个BRWC都至少有一个剩余资源空间, 即 ∑Re(M(pci))
定理4. 如果Bk和Bl由相同的资源库所组成, 且组成Bk的BRWC的数量小于等于组成Bl的. 假设已经为Bl添加总控制器, 则不需要为Bk添加总控制器.
证明: 假设Bk、Bl的控制器分别为Pck、Pcl, 由于Bk和Bl具有相同的资源库所, 那么Pck、Pcl的剩余资源空间是相同的. 若组成Bk的BRWC的数量小于等于组成Bl的, 那么Pck的可用资源空间大于等于Pcl的. 因此添加Pcl后, 无需添加Pck就能控制Bk中允许存在的最大托肯数.
对于由nj个BRWC组成的Bj, 主要有以下4种构成方式: (1) 组成Bj的多个回路具有同一个tma和tma相对应的变迁tmr, 但这些BRWC中tma的输出库所(tmr的输入库所)不同; (2) 组成Bj的nj个BRWC共享一个或多个资源库所; (3) 组成Bj的nj个BRWC两两之间具有共享的一个或多个资源库所. (4) 组成Bj的nj1个BRWC共享一个或多个资源库所, 且组成Bj的nj2个BRWC两两之间具有共享的一个或多个资源库所.
根据定理3可知, 只要每个BRWC都至少有一个仅属于自己的剩余资源空间, 或者某些没有剩余资源空间的BRWC具有活性输出变迁, 系统就不会到达无死锁不安全标记. 为实现这一目标, 下面将结合Bj的4种构成方式, 分别介绍总控制器的添加规则.
总控制器的添加规则: 对于第1种情况, 由于tmr是组成Bj的多个BRWC的输出变迁, 其触发会释放Bj的多个资源空间. 因此即使不添加额外的总控制器, 也能保证系统不会出现无死锁不安全标记. 对于第2种情况, 由于nj个BRWC具有相同的共享资源库所, 仅需为组成Bj的所有BRWC两两之间构成的IBC添加总控制器. 对于第3种情况, 一个BRWC会与相邻的两个BRWC分别具有不同的共享资源库所. 因此, 需要分别为组成Bj的所有2, 3, …, nj个BRWC构成的IBC添加总控制器. 对于第4种情况, 结合第2种和第3种情况下的控制器添加方式即可. 最后, 根据定理4删减冗余的控制器.
BCJ = {PCJ, SCJ, I(PCJ), O(PCJ), W(PCJ), K(PCJ)}表示BJ的总控制器. (NCIJ, M0CIJ) = (N, M0)
为回路添加控制器后, 回路的输入变迁触发后同时会占用控制库所的资源空间. 通过控制库所的容量限制可以控制回路中的托肯数. 以此可以判断使能变迁是否为活性变迁, 从而实现变迁的控制, 预防系统到达不安全标记.
对于使能变迁tid, 如果它不是任何回路的输入变迁, 那么触发tid只会释放回路中库所的资源空间, 因此tid一定是活性变迁. 给定无死锁标记M, M [tid 〉 M', 算法4可以确定以tid为输出变迁的回路在M'下的状态. (1)假设tid是Ri的输出变迁, 由于tid可能属于Tmr, 则tid触发后可能释放pci的多个资源空间. 若Re(M'(pci))
算法4. Ri的输出变迁tid触发后控制器的状态
输入: 一个可达标记M∈R(N, M0), Ri的输出变迁tid
输出: M'
1) 初始化: M'(pci) = M(pci), M'(Pcj) = M(Pcj);
2) if(ROid ≠
3) for(i = 1; i
4) M'(pci) = M(pci) − W(I(pci, tid));
5) if(M(sci) = on且
6) if(Re(M'(pci))
7) M'(sci) = off;
8) if(BOid ≠
9) for(j = 1; j
10) M'(Pcj) = M(Pcj) − W(I(Pcj, tid));
11) if(M(sci) = on且M(
12) if(Re(M'(pci))
13) M'(sci) = off; M'(
14) M'(pl) = M(pl) − I(pl, tid) + O(pl, tid);
算法5将输出库所是P0的变迁t称为结束变迁tf, 并用TF表示结束变迁集. 用M(R)表示Ra(M(pci)) < W(O(pci, tid))的Ri集, M(B)表示Ra(M(Pcj)) < W(O(Pcj, tid))的Bj集. 需要依次检查标记M'下M(R)与M(B)中的回路是否会饱和. 当所有的Rp(M(pci))
算法5. 判断使能变迁tid是否为活性变迁
输入: 一个可达标记M∈R(N, M0), 使能变迁tid
输出: M'(pci), M'(Pcj), M'(sci), M'(
1) 初始化: Fl = true;
2) if(BIid∩M(B) =
3) M' = 算法4(M, tid);
4) if(RIid∩M(R) ≠
5) if(tid••∈TF)
6) M'(sci) = on; M'(
7) else
8) for(i = 1; i ≤ |RIid∩M(R)|; i++)//
9) if(Rp(M(pci)) < W(O(pci, tid)))
10 ) Fl = false; break;
11) if(Rp(M(pci)) ≥ W(O(pci, tid)))
12) M'(sci) = on; M'(
13) if(BIid∩M(B) ≠
14) if(tid∈TF)
15) M'(sci) = on; M'(
16) else
17) for(j = 1; j ≤ |BIid∩M(B)|; j++) //
18) if(Rp(M(Pcj)) < W(O(Pcj, tid)))
19) Fl = false; break;
20) if(Rp(M(Pcj)) ≥ W(O(Pcj, tid)))
21) M'(
22) if(Fl = true)
23) M'(pci) = M(pci) + W(O(pci, tid));
24) M'(Pcj) = M(Pcj) + W(O(Pcj, tid));
25) M'(pl) = M(pl) − I(pl, tid) + O(pl, tid);
在算法5中: (1)由于K(P0) = ∞, 如果使能变迁tid是结束变迁, 其一定是活性变迁. (2)如果tid••是结束变迁, 由于结束变迁的前集库所中的托肯一定是可离开托肯, 因此触发tid不会使回路饱和, tid一定是活性变迁. 若此时回路的可用资源空间不足, 只需打开控制开关, 回路一定具有充足的剩余资源空间. (3)如果tid是某些回路的输入变迁, 其触发后会占用回路中库所的资源空间, 可能导致回路饱和.
定理5. 算法5得到的活性变迁触发后不会到达不安全标记.
证明: 算法2为所有BRWC添加基本控制器. 对于算法5求得的任意一个活性变迁tid, M [tid 〉M'. 对于
算法3为BJ添加总控制器. 对于BJ中的任意一个Bj, 与Ri类似, 当Ra(M(Pcj))
由于tid是在TRL中任意选取的一个变迁, 因此对于算法5求得的任一活性变迁, 其触发后到达的M'一定是安全标记.
由于算法5得到的活性变迁触发后不会到达不安全标记, 因此本文的控制策略允许这些变迁触发. 该策略在系统具有未完成加工的零件时, 允许处理新的零件, 这可以提高零件的生产效率.
2.4 资源缓冲子网本节考虑资源故障造成的阻塞问题. 现有的死锁预防策略通常没有考虑同时需要可靠和不可靠资源的阶段. 针对具有这种复杂结构的AMSs, 本节提出危险库所的概念, 通过为这些库所添加资源缓冲子网, 确保资源故障时系统不会出现阻塞.
定义17. 给定tik∈Tma∩Ti, 如果
下面通过算法6为PK添加资源缓冲子网, 使得即使不可靠资源故障, 托肯也能及时释放占用的危险库所的资源空间.
算法6. 为SRMGs添加资源缓冲子网
输入: SRMG(N, M0)
输出: SRMG(Nq, M0q) //添加资源缓冲子网后的SRMG
1 for(k = 1; k ≤ |PK|; k++)
2 if(pk∈•tir∩PRr) //
3 N = N∪qk∪tfir∪trir;
4 N = N∪I(pk, tfir)∪I(qk, trir)∪O(qk, tfir)∪O(pk, trir);
5 if(pu∈•tir∩PRu)
6 K(qk) = min{K(pu), K(pk)};
算法6为每个危险库所pk添加资源缓冲子网, 其包含资源故障变迁tfir, 资源恢复变迁trir, 恢复库所qk, 以及输入弧和输出弧. 其中K(qk) = min{K(pu), K(pk)}用来保证qk具有足够的资源空间放置(pk, cir).
对于本文的死锁预防策略: (1)如果托肯的剩余路径中不需要故障资源, 那么只需根据算法5确定该托肯能否前进. (2)否则, 在算法5的基础上, 仅允许托肯前进到故障资源库所. (3)当pu故障时, 其输出变迁tir无法触发. 1)如果该阶段托肯没有占据可靠资源的资源空间, 只需等待故障资源修复, 系统就可以回到正常运行状态. 2)如果该阶段托肯同时占据危险库所pk的资源空间, 令pk触发资源缓冲子网中的资源故障变迁tfir. 此时(pk, cir)前进到恢复库所qk并释放pk的资源空间, Re(M(pk)) = K(pk) − M(pk) − M(qk). 同理可以计算出含有pk的回路的剩余资源空间、可用资源空间和潜在资源空间. 当Re(M(qk)) = K(qk) − M(qk) = 0时, 不允许托肯触发危险变迁tik. (4) pu修复后, 如果pk具有剩余资源空间, 允许qk中的托肯可以触发trir回到pk, 系统回到正常运行状态.
综上所述, 算法5可以与资源缓冲子网结合, 求得任何状态下系统的活性变迁. 使得pu的故障不会影响需要pk的零件的生产, 且故障资源修复后系统仍能持续的加工所有零件.
3 例子本文使用CPN tools进行仿真分析. 首先通过弧线连接库所与变迁, 为库所设置容量. 然后为库所中不同颜色的托肯赋予不同的类型描述它们的颜色. 此外, 通过赋值也可以描述变迁的颜色. 最终建立一个完整的ROPN模型. 在未限制变迁的触发时, 使能变迁的触发可能导致系统死锁, 此时系统无法继续运行. 通过在现有ROPN模型上加入控制器限制变迁的触发, 可以使系统正常运行, 系统不会出现死锁.
示例1: 给定一个AMS, 其零件所需资源为: X1: r3→r1∪r5→r2, X2: r2→(r3→r1→r5)∪(r4→r6→r7)→r8, X3: r2→(r3→r6→r4) | (r8→r1→r7)→r5, X4: r3→r4→r6.
示例1中r1和r5之间的“∪”表示某个零件阶段同时需要r2和r3. (r3→r1→r5)和(r4→r6→r7)之间的“∪”用来区分并行加工的多个子零件分别需要的资源. “ | ”表示某零件具有多条灵活子路径. 对于该AMS, 通过算法1可以得到其对应的SRMG, 使用CPN tools对该AMS进行仿真如图1.
对于示例1中AMS对应的SRMG, RI = {R1, R2, R3, R4, R5}, 其中R1 = < p4, t24, p6, t36, p4 >, R2 = < p2, t22, p3, t12, p1, t13, p2 >, R3 = < p2, t22, p3, t12, p5, t13, p2 >, R4 = < p1, t25, p5, t27, p8, t35, p1 >, R5 = < p7, t27, p8, t35, p1, t37, p7 >. 通过算法2为 RI添加的基本控制器如表1所示.
t12是R4的输入变迁, t13是R4的输出变迁, t12• = •t13 = {r1, r5}. 由于触发t12会同时占用r1和r5的资源空间, 且R4中同时具有r1和r5, 因此触发t12会占用pc4的两个资源空间. 同理, 触发t13会释放pc4的两个资源空间. 因此W(O(pc4, t12)) = 2, W(I(pc4, t13)) = 2. pci的其他输入、输出弧的权值都是1.
对于由R2、R3、R4和R5组成的Bj, 由于R2和R3组成的回路属于构成IBC的第1种情况, 不需要为其添加总控制器. 对于由R2、R4和R5组成的Bj, 其是构成IBC的第2种情况, 因此需要分别为R2和R4, R2和R5, R4和R5组成的回路添加总控制器. 对于R3、R4和R5组成的Bj, 其是构成IBC的第3种情况, 需要分别为R3和R4, R4和R5, R3、R4和R5组成的回路添加总控制器. 由于R3和R4组成的回路与R2和R4组成回路的资源库所相同, 且构成IBC的BRWC的数量相同, 根据定理4, 不需要额外为R3和R4组成的回路添加总控制器. 因此需要添加总控制器的BJ = {B1, B2, B3, B4}, 其中B1 = < p2, t22, p3, t12, p1, t25, p5, t27, p8, t35, p1, t13, p2 >, B2 = < p2, t22, p3, t12, p1, t37, p7, t27, p8, t35, p1, t13, p2 >, B3 = < p1, t25, p5, t27, p8, t35, p1, t37, p7, t27, p8, t35, p1 >, B4 = < p2, t22, p3, t12, p5, t27, p8, t35, p1, t37, p7, t27, p8, t35, p1, t25, p5, t13, p2 >. 通过算法3为 BJ添加的总控制器如表2所示.
与R4添加的基本控制器的弧权重计算方式类似, 由于t12是B3的输入变迁, t13是B3的输出变迁, 且B3中同时具有r1和r5. 因此触发t12会占用Pc3的两个资源空间, 触发t13会释放Pc3的两个资源空间. W(O(Pc3, t12)) = 2, W(I(Pc3, t13)) = 2. Pcj的其他输入、输出弧的权值都是1.
对于示例1中的AMS, PK = {p5}. 通过算法6为p5添加资源缓冲子网如图2. 其中K(q5) = min{K(p1), K(p5)} = K(p5) = 2.
对于示例1中的AMS, 给定安全标记M, M(p1, c13) = M(p1, c37) = 1, M(p2, c22) = M(p2, c32/c33) = 1, M(p3, c12) = M(p3, c23) = 1, M(p4, c43) = 1, M(p5, c13) = M(p5, c27) = 1, M(p6, c26) = M(p6, c36) = 1, M(p7, c27) = M(p7, c39) = 1, M(p8, c35) = 1. M(pc1) = 0♁1, M(pc2) = 0♁1, M(pc3) = 0♁0, M(pc4) = 1♁1, M(pc5) = 1♁1. M(Pc1) = 0♁1♁1, M(Pc2) = 0♁1♁1, M(Pc3) = 0♁1♁1, M(Pc4) = 0♁0♁1♁1. M(sc3) = on, M(
下面, 通过本文的控制策略, 进行以下分析: 1) 没有资源故障时, 根据算法5判断使能变迁是否为活性变迁; 2) 不可靠资源故障时, 结合危险库所的资源缓冲子网, 根据算法5判断使能变迁是否为活性变迁.
t23是R4、R5和B3的输入变迁, 且Ra(M(Pc3)) = 0 < 1. 由于标记 M下B3没有使能输出变迁, Rp(M(Pc3)) = 0 < 1. 对于 M [t23〉M1, M1不是安全标记, t23
t27不是任何回路的输入变迁, 因此t27∈TRL. 由于t27是R3的输出变迁, M(sc3) = on, M(
与t23类似, t33是R4、R5和B3的输入变迁, 且Ra(M(Pc3)) = 0 < 1. 由于标记 M下B3没有使能输出变迁, Rp(M(Pc3)) = 0 < 1. 对于 M [t33〉 M3, M3不是安全标记, t33
t35是R2的输入变迁, 且Ra(M(pc2)) = 0 < 1. R2仅具有使能输出变迁t33, 由于t33
t36不是任何回路的输入变迁, 因此t36∈TRL. 由于t36是R1的输出变迁, 且M(sc1) = off, sc1的状态不变.
因此根据以上分析, TRL = {t27, t36}.
在标记M, 触发t27会分别释放p5和p7的一个资源空间到达M'. M'(p1, c13) = M'(p1, c37) = 1, M'(p2, c22) = M'(p2, c32/c33) = 1, M'(p3, c12) = M'(p3, c23) = 1, M'(p4, c43) = 1, M'(p5, c13) = 1, M'(p6, c26) = M'(p6, c36) = 1, M'(p7, c39) = 1, M'(p8, c28) = M'(p8, c35) = 1. M'(pc1) = 0♁1, M'(pc2) = 0♁1, M'(pc3) = 0♁1, M'(pc4) = 1♁1, M'(pc5) = 1♁1. M'(Pc1) = 0♁1♁1, M'(Pc2) = 0♁1♁1, M'(Pc3) = 1♁1♁1, M'(Pc4) = 0♁1♁1♁1.
在M', 如果p1和p8同时故障. 在p1未修复之前, p1的输出变迁t13、t25和t37暂时不能触发. 在p8未修复之前, p8的输出变迁t28和t35暂时不能触发. 使能变迁集T'EN = {t12, t23, t26, t36, t39}. 此时, 危险库所p5可以触发tf13前进到q5, 并释放p5的一个资源空间, 使需要p5的零件不会因为p1的故障出现阻塞.
t12是R4和R5的输入变迁, 由于W(O(pc4, t12)) = 2, Ra(M'(pc4)) = 1 < 2. 在 p1和p8的故障修复之前, t28和t37暂时不能触发, 标记M'下R4没有使能输出变迁, Rp(M'(pc4)) = 1 < 2. 对于 M' [t12〉M'1, M'1不是安全标记, t12
对于t23, 由于Ra(M'(pc4)) = Ra(M'(pc5)) = Ra(M'(Pc3)) = 1 ≥ 1, 则t23∈T'RL. 此外, 由于t23是R3的输出变迁, 且M'(sc3) = off, sc3的状态不变.
t26是R5、B2、B3和B4的输入变迁, 且Ra(M'(Pc2)) = Ra(M'(Pc4)) = 0 < 1. B2有使能输出变迁t39, 但B4没有使能输出变迁, Rp(M'(Pc4)) = 0 < 1. 对于 M' [t26〉M'3, M'3不是安全标记, t26
t36不是任何回路的输入变迁, 因此t36∈T'RL.
t39是R3、R4和B1的输入变迁, 且t39•• = t310∈TF. 由于Ra(M'(pc3)) = Ra(M'(Pc1)) = 0 < 1, 此时 pc3和Pc1的可用资源空间不足, 因此开启控制器的开关. 对于M' [t39〉M'4, M'4(sc3) = on, M'4(
因此根据以上分析, T'RL = {t23, t36, t39}. 通过不断的迭代这一过程寻找不同标记下的活性变迁, 使得无论是否出现资源故障, 系统都不会到达不安全标记.
4 对比在本节中, 简要的对比本文与现有的死锁预防策略, 结果如表3[1-4,13-16,18,21,23,25,28-30]所示. 其中第2列表示系统中是否具有灵活路径, “Y”表示“是”, “N”表示“否”. 第3列表示系统中是否具有装配操作. 第4列表示系统中是否具有多类型资源获取阶段. 第5列表示死锁控制方法的计算复杂度, “E”表示指数复杂度, “P”表示多项式复杂度. 第6列表示使用的建模方式. 第7列表示系统中是否存在不可靠资源, 如果存在, 是仅有一种不可靠资源, 还是具有多种不可靠资源. 第8列表示如果系统具有不可靠资源, 一次最多允许多少不可靠资源故障, “—”表示不存在这种情况. 第9列表示系统中是否存在同时需要可靠和不可靠资源的零件阶段.
从表3可以看出, 大多数死锁预防方法是指数级复杂度. 为此, 研究人员提出各种策略降低计算复杂度, 以解决大规模AMSs的死锁问题. 对于具有不同结构的AMSs, 研究人员先后提出多种不同的回路进行死锁控制. 此外, 他们通过减少控制器的添加数量不断优化控制策略. 后来, 人们发现借助ROPNs的结构特征, 可以很容易找到造成系统死锁的回路, 通过为这些回路添加控制器, 在阻止回路饱和的基础上可以预防死锁. 然而, 尽管基于ROPNs的建模方式复杂度较低, 但其很少考虑具有装配操作或多类型资源获取的复杂AMSs. 另外, 人们在ROPNs的建模过程中, 很少考虑资源故障的问题.
本文在现有的ROPN模型的基础上, 提出一种新的算法, 得到一类复杂AMSs的ROPN模型. 与文献[13–16]等不同, 本文的死锁预防方法是多项式复杂度的, 更加适用于大规模的系统. SRMGs同时考虑了具有多类型资源获取、装配操作和灵活路径的一类复杂AMSs, 而文献[1,3,25,29,30]等没有考虑具有多类型资源获取的系统, 文献[2–4,16,18,21,29]等没有考虑具有装配操作的系统, 文献[1,13,16,18]等没有考虑具有灵活路径的系统. 此外, 本文的监督控制器具有控制开关. 通过借助控制库所额外的缓冲空间, 受控系统允许更多的安全标记发生.
对一类同时需要可靠和不可靠资源, 且允许多种不可靠资源同时故障的系统, 本文通过为危险库所添加资源缓冲子网, 避免系统出现死锁和阻塞. 而文献[1,13,25,27]等没有考虑具有不可靠资源的系统, 文献[2,14,16,18]仅考虑了具有一种不可靠资源的系统. 文献[3,4]虽然考虑了多种不可靠资源同时故障的情况, 但系统中没有多类型资源获取阶段. 因此以上论文中的策略无法应用于同时需要可靠和不可靠资源的AMSs.
综上所述, 本文使用的SRMGs不仅可以表示复杂的AMSs, 而且具有更简单的结构. 本文的死锁预防策略考虑了资源故障的问题, 与现有控制策略相比, 其在计算复杂度、许可性和实用性等方面都较好.
5 结论与展望本文主要研究了一类具有多类型资源获取、装配操作和灵活路径的AMSs, 然后使用一种新的算法建立这类AMSs对应的ROPN模型. 称这类模型为SRMGs, 其用不可靠资源库所来表示可能出现故障的资源. 为解决资源竞争造成的死锁问题, 首先建立死锁与饱和回路之间的关系. 通过为一些特殊回路添加控制器, 使得没有资源故障时, 系统不会出现不安全标记. 然后, 为每个危险库所添加资源缓冲子网, 使得即使不可靠资源故障, 不使用故障资源的零件仍然可以持续生产. 与现有的死锁控制器不同, 本文添加的监督控制器具有控制开关, 因此控制策略可以接受更多的安全标记. 此外, 本文的死锁预防策略是多项式复杂度的, 适用于具有装配操作的大规模AMSs. 在未来, 可以考虑将本文的方法扩展到结构更复杂的AMSs. 另外, 可以进一步优化监督控制器的结构, 通过减少添加的控制器数量设计最优的监督控制器.
[1] |
Wu NQ, Zhou MC, Li ZW. Resource-oriented Petri net for deadlock avoidance in flexible assembly systems. IEEE Transactions on Systems, Man, and Cybernetics—Part A: Systems and Humans, 2008, 38(1): 56-69. DOI:10.1109/TSMCA.2007.909542 |
[2] |
Du N, Hu H, Zhou M. A survey on robust deadlock control policies for automated manufacturing systems with unreliable resources. IEEE Transactions on Automation Science and Engineering, 2020, 17(1): 389–406.
|
[3] |
Feng YX, Xing KY, Zhou MC, et al. Robust deadlock prevention for automated manufacturing systems with unreliable resources by using general Petri nets. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 2020, 50(10): 3515-3527. DOI:10.1109/TSMC.2018.2884316 |
[4] |
Du N, Hu HS. Robust deadlock detection and control of automated manufacturing systems with multiple unreliable resources using Petri nets. IEEE Transactions on Automation Science and Engineering, 2021, 18(4): 1790-1802. DOI:10.1109/TASE.2020.3019684 |
[5] |
Zhang ZL, Liu GY, Barkaoui K, et al. Adaptive deadlock control for a class of Petri nets with unreliable resources. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 2022, 52(5): 3113-3125. DOI:10.1109/TSMC.2021.3062469 |
[6] |
关旋旋. 基于Petri网的死锁避免方法研究. 自动化应用, 2022(6): 4-7. |
[7] |
林荣峰. 基于Petri网的自动制造系统多步向前死锁预测方法研究[硕士学位论文]. 西安: 西安电子科技大学, 2020.
|
[8] |
卫屏. 基于Petri网的资源共享装配系统活性构建方法[硕士学位论文]. 西安: 西安电子科技大学, 2020.
|
[9] |
王锋刚. 含变迁故障Petri网的鲁棒活性控制[硕士学位论文]. 西安: 西安电子科技大学, 2022.
|
[10] |
刘伟, 史晓浩, 孙红伟. 基于逻辑混合Petri网的混合系统建模与分析. 山东科技大学学报(自然科学版), 2021, 40(4): 65-75. DOI:10.16452/j.cnki.sdkjzk.2021.04.008 |
[11] |
陈金栋, 刘伟, 冯新, 等. 基于逻辑工作流网的有限无死锁组合. 山东科技大学学报(自然科学版), 2020, 39(5): 89-97. |
[12] |
程学珍, 王常安, 李继明, 等. 基于自适应神经模糊Petri网的电机故障诊断. 山东科技大学学报(自然科学版), 2020, 39(3): 109-117. |
[13] |
Hu H, Zhou MC. A Petri net-based discrete-event control of automated manufacturing systems with assembly operations. IEEE Transactions on Control Systems Technology, 2015, 23(2): 513-524. DOI:10.1109/TCST.2014.2342664 |
[14] |
Liu GY, Li P, Li ZW, et al. Robust deadlock control for automated manufacturing systems with unreliable resources based on Petri net reachability graphs. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 2019, 49(7): 1371-1385. DOI:10.1109/TSMC.2018.2815618 |
[15] |
Hu H, Zhou MC, Li ZW, et al. Deadlock-free control of automated manufacturing systems with flexible routes and assembly operations using Petri nets. IEEE Transactions on Industrial Informatics, 2013, 9(1): 109-121. DOI:10.1109/TII.2012.2198661 |
[16] |
Wu YC, Xing KY, Luo JC, et al. Robust deadlock control for automated manufacturing systems with an unreliable resource. Information Sciences, 2016, 346–347: 17–28.
|
[17] |
Li ZW, Zhu S, Zhou MC. A divide-and-conquer strategy to deadlock prevention in flexible manufacturing systems. IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews), 2009, 39(2): 156-169. DOI:10.1109/TSMCC.2008.2007246 |
[18] |
Feng YX, Xing KY, Gao ZX, et al. Transition cover-based robust Petri net controllers for automated manufacturing systems with a type of unreliable resources. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 2017, 47(11): 3019-3029. DOI:10.1109/TSMC.2016.2558106 |
[19] |
Liu HX, Xing KY, Zhou MC, et al. Transition cover-based design of Petri net controllers for automated manufacturing systems. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 2014, 44(2): 196-208. DOI:10.1109/TSMC.2013.2238923 |
[20] |
Liu HX, Wu WM. Deadlock control policy for a class of automated manufacturing systems with key resources. Proceedings of the 12th IEEE International Conference on Networking, Sensing and Control. Taipei: IEEE, 2015. 486–491.
|
[21] |
Liu HX, Wu WM, Yang HY. Strong controllable siphon basis-based robust deadlock control for manufacturing systems with multiple unreliable resources. IEEE Access, 2020, 8: 269-277. DOI:10.1109/ACCESS.2019.2958331 |
[22] |
Feng YX, Xing KY, Zhou MC, et al. Structural liveness analysis of automated manufacturing systems modeled by S4PRs
. IEEE Transactions on Automation Science and Engineering, 2019, 16(4): 1952-1959. DOI:10.1109/TASE.2019.2905277 |
[23] |
Feng YX, Xing KY, Zhou MC, et al. Liveness analysis and deadlock control for automated manufacturing systems with multiple resource requirements. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 2020, 50(2): 525-538. DOI:10.1109/TSMC.2017.2767902 |
[24] |
Feng YX, Zhou MC, Tian F, et al. Deadlock prevention controller for automated manufacturing systems modeled by S4PR
. IEEE Transactions on Systems, Man, and Cybernetics: Systems, 2021, 51(12): 7403-7412. DOI:10.1109/TSMC.2020.2971455 |
[25] |
Zhao YM, Chai XJ, Zhao LZ. An efficient deadlock avoidance policy for FMS using ROPN. Advanced Materials Research, 2014, 998–999: 751–754.
|
[26] |
Liu D, Hou YF, Barkaoui K, et al. Intrinsically live structures in process and resource-oriented Petri nets modeling automated manufacturing systems. Proceedings of the 11th IEEE International Conference on Networking, Sensing and Control. Miami: IEEE, 2014. 578–583.
|
[27] |
Chen HF, Wu NQ, Zhou MC. Resource-oriented Petri net-based approach to deadlock prevention of AMSs. Proceedings of the 2015 IEEE International Conference on Systems, Man, and Cybernetics. Hong Kong: IEEE, 2015. 515–520.
|
[28] |
Chen HF, Wu NQ, Li ZW, et al. Liveness of disjunctive and strict single-type automated manufacturing system: An ROPN approach. IEEE Access, 2019, 7: 17760-17771. DOI:10.1109/ACCESS.2019.2896254 |
[29] |
Chen HF, Wu NQ, Zhou MC. A novel method for deadlock prevention of AMS by using resource-oriented Petri nets. Information Sciences, 2016, 363: 178–189.
|
[30] |
Chen C, Hu HS. Liveness-enforcing supervision in AMS-oriented HAMGs: An approach based on new characterization of siphons using Petri nets. IEEE Transactions on Automatic Control, 2018, 63(7): 1987-2002. DOI:10.1109/TAC.2017.2758842 |