与传统批量制造系统相比,FMS具有更大的柔性,进一步提高了设备利用率,缩短了生产周期,降低了制造成本。
FMS的出现改变了传统生产方式。
使得生产设备在时间上和空间上是兼容的。
FMS为了适应市场的需要变得日益复杂,从单一的串行系统到多进程的并行系统,从基于单机环境下的操作到网络并行环境下的机群操作等等。
而具备并发、异步、离散、并行、时变和随机特征的复杂FMS给设计者带来了更为严峻的挑战。
死锁是FMS设计者们不可回避的问题。
如何采用科学的数学、图形模型来动态地描述实际的FMS,实现优化无死锁的高生产效率的FMS是项目设计者们所面临的主要题。
Petri网是1962年由德国人CarlAdamPetri先生在他的博士论文《用自动机通信》中首次提出的网状结构的信息流模型。
这一工作引起了美国和欧洲一些科学家的重视,之后的40年里,Petri网的应用范围也扩展到通信以外的许多领域。
Petri网是一种系统的数学和图形的描述与分析工具。
对于具有并发、异步、分布、并行、不确定性或随机性的信息处理系统,都可以利用这种工具构造出要开发的Petri网模型,然后对其进行分析,即可得到有关系统结构和动态行为方面的信息,根据些信息就可以对要开发的系统进行评价和改进。
目前,Petri网建模己经广泛应用于许多领域,包括分布式软件系统、分布式数据库系统、并发/并行程序、柔性制造/工业控制系统、离散事件系统、多处理机存储系统、数据流计算系统、容错系统、可编程逻辑和VLSI阵列、异步电路和结构、编译器和操作系统、办公信息系统、形式语言、逻辑程序、网络设计与规划、神经网络、数字滤波器、决策模型、化学系统和法律系统等。
这些系统的共同特点都是具有并发、异步、分布、并行、不确定性和随机成份,具有这些成份的系统都可以使用Petri网进行描述和分析。
死锁是自动制造系统控制系统设计时必须考虑和解决的问题。
死锁造成系统整体或局部的停顿,在有些情况下,并不是单纯地降低生产率,而是可能造成重大经济损失甚至灾难性后果。
自动制造系统中抑制死锁产生的途径是使系统的资源分配策略永远不要产生循环等待现象。
死锁问题的研究起源于操作系统中的资源分配问题。
上世纪八十年代以后,制造系统完成了从大批量且品种单一的生产模式向以多品种、小批量以及具备适应市场快速变化能力为目标的现代自动制造系统转变,自动制造系统中的死锁研究也受到了重视和广泛关注。
尽管人们深入研究了操作系统、多处理器计算机系统以及分布式数据库中的死锁处理方法,因为物理背景的差异,这些方法还不能直接应用于制造系统中。
一般认为,死锁产生的主要原因是:
(1>系统资源不足;(2>进程允许推进的顺序不当;(3>资源分配不当。
Coffman等给出了系统死锁的四个必要(但非充分>条件:
(1>相互抑制(Mutualexclusion>:
资源只能分配给某个确定的任务或是闲置,即资源不能同时被两个任务占据,一个资源每次只能被一个进程使用。
(2>持有并等待(Holdandwait>:
持有资源的进程允许申请其它资源。
(3>非剥夺条件(Nopreemption>:
除非资源被释放,否则一个资源不允许被强行剥夺。
(4>循环等待(Circularwait>:
若干进程形成了一个进程链,该进程链中的每一个成员等待着它下一个进程持有的资源。
即存在一组资源请求{P1,P2,…,Pn},其中P1等待P2占据的资源,P2等待P3占据的资源,…,Pn等待P1占据的资源。
前三个条件实际上是由系统和资源的物理特性决定的。
也就是说,对于一个给定资源集合的系统,这三个条件要么成立要么不成立,它们不会随着时间而变化。
而第四个条件确可因对资源的请求、分配和释放随时间而变化。
只要发生死锁,这四个条件必然满足。
反之,只要有一个条件不满足,系统就不会发生死锁。
处理死锁的方式一般分为四种,第一是忽略死锁发生的可能性,即所谓的鸵鸟算法。
如果死锁发生的可能性非常小或者即使发生死锁,也不会有严重的后果,而避免发生死锁的代价又很昂贵,这种情况下就可以忽略死锁问题。
Petri网是对离散事件系统进行建模和分析的主要数学工具之一,基于Petri网的自动制造系统的死锁处理方法大致可分为三种策略:
死锁检测与恢复、死锁避免和死锁预防。
1.死锁检测和恢复
这种方法并不刻意去追求系统的无死锁性或活性,而是一旦检测到系统发生了死锁,通过自动或人工的方法解锁。
这种方法往往会达到较高的生产率和资源利用率,但控制项目师必须对可能发生死锁的生产环节有充分的认识,在设计单机(如机器人,机床>控制器时,需要设计相应的控制程序以便解锁时应用。
此外,可能还需要一些附加的设备供解锁时使用,其结果又是要加大投入。
2.死锁避免
死锁避免通过不断地搜索系统的可达状态来达到死锁控制的目的。
根据该算法,系统每运行一步,即由控制系统判断系统选择可达图的何种分枝不会导致死锁,并沿该分支继续运行下去,反之,则不选择该分支,从而达到死锁避免的效果,中即采用了该算法。
死锁避免算法的优点在于系统可以具有最大许可的控制效果,也就是说除了危险节点及死锁节点外,受控系统保留了全部好的状态,在实际的并发系统中,这意味着系统运行效率得到了最大程度的保留。
但是,死锁避免算法也具有必须事先计算系统的可达状态图的缺点。
而在Petri网系统中,系统的可达状态具有爆炸性的特点,也就是说,其可达状态数随着网规模的增大呈现指数级增长的趋势。
这使得既使在一些中等规模的网系统中,该算法的实现都是极其不现实的。
3.死锁预防
死锁预防策略是使以上发生死锁的四个必要条件之一不成立,是一种静态策略。
研究表明,破坏前三个条件都是不实际的,而破坏循环等待条件是通过离线地建立一种相对固定的资源使用序列,并要求这些资源按照该序列被申请使用,这种方法从逻辑上保证了系统不会发生死锁,因而不必再去控制系统运行过程中对资源的申请。
该策略要向FMS系统添加强制约束或者通过离线的机构控制资源的分配从而保证系统的所有进程得以顺利进行。
我们希望系统的静态的控制策略一旦建立可以保证系统不会出现我们不希望出现的死锁状态。
因为现代制造系统的自动化水平越来越高,系统的死锁往往对生产造成较大甚至灾难性的影响,因此人们越来越重视死锁问题,任由死锁发生是不可取的。
而死锁检测与恢复的方法实际上也是一种被动的方法,死锁避免也存在一定的问题,首先它需要在线的决策,过于进取的策略往往不能完全避免死锁,过于保守的策略会使得系统的许可行为受到严重影响。
基于Petri网的死锁预防是一种静态方法,它使用一种离线计算的机制控制资源的请求,保证系统不会发生死锁,一旦这种无死锁的控制机制建立起来,系统的运行将永远不会进入死锁状态,一般来说,死锁预防的缺点主要是保守性,使得系统的生产率和关键资源的利用率降低,但该方法可应用于安全关键系统,如高度自动化的半导体制造系统。
因此,本文的研究工作集中于死锁预防方法。
信标是分析和描述Petri网死锁的一种重要概念,人们研究了很多基于信标控制的死锁预防策略。
现行的死锁预防方法大都采用对目标Petri网模型添加控制库所的方法来保证网系统是无死锁的。
Ezpeleta等人提出了针对普通网的子类-S3PR网的死锁预防策略,把死锁和严格极小信标(SMS-strictlyminimalsiphon>一一对应起来,通过对每一个SMS添加监控器来保证网系统的活性。
该算法具有不需要计算系统的可达状态的优点,但是该方法也存在以下不足之处:
行为许可性,计算复杂性和结构复杂性。
行为许可性的主要问题是系统的许可行为受到了限制,换言之,控制器将某些许可的系统行为排除在外,这是因为添加的控制库所的输出弧指向Petri网模型的源变迁(进程的入口>,从而在很大程度上限制了可以进入系统加工的零件数目。
计算复杂性主要是指控制器的设计需要求解所有的SMS,而理论上,一个Petri网中SMS的个数与网规模成指数关系。
结构复杂性是指活性Petri网控制器中控制库所的个数和网规模在理论上是指数关系,因为每一个SMS都需要添加一个控制库所,所以对于大型网系统而言,需要添加大量的监督器和连接弧使得控制器的设计变的复杂,甚至难以实现。
死锁发生的本质是因为系统中的严格极小信标的不充分标识引起的。
因此能否通过显式地控制一部分信标从而达到隐式控制其它信标的目的,从而获得一个无死锁的或者活的Petri网显得特别重要。
如果在一个Petri网中没有SMS被清空,则该Petri网是无死锁的。
同时它也是一些Petri网子类(如自由选择网和非对称自由选择网〕活的充分条件。
结论表明在一定的条件下,如果使得一个Petri网中所有的基本信标不被清空,则其从属信标也不会被清空,进一步说其所有的SMS都不会被清空。
这意味着如果要使一个Petri网没有信标被清空时,并不需要对所有的SMS都添加控制。
因此,Petri网基本信标的概念应运而生。
基于基本信标,可以得到一个较为简单的Petri网控制模型,这个模型中包含较少的添加库所和有向弧,达到简化控制器设计的目的。
从理论上讲,基本信标能够降低活性Petri网控制器的结构复杂性。
基本信标是一类特殊的结构对象,它们是通过观察信标中托肯数的变化和其它信标托肯数变化的关系而产生的。
显然,一个从属信标能通过正确配置它基本信标的托肯数来保证其可控性。
基本信标理论在死锁预防策略中起了重要作用,运用该理论可以获得结构简单的活性Petri网控制器。
课题设计的理论知识基础、技术方案论证、实施计划与步骤及完成课题的每周进度安排:
一、理论基础知识:
✧熟悉和掌握Petri网的基本理论知识。
✧掌握C语言编程。
✧掌握Petri网信标有关知识。
✧掌握补库所法设计死锁预防控制器的相关知识。
✧了解离散数学。
二、研究内容和拟解决的主要问题:
a)研究内容:
在求得资源环的基础上,计算出所有严格极小信标集合,进一步确定基本信标,进而求出操作库所并为其添加补充库所
b)主要问题:
如何求得资源环?
用函数递归调用穷举法求资源环。
利用整数线性规划求取操作库所的容量限制K。
三、研究方法及措施:
对于信标的求解,人们做了很多的研究,影响比较大的有以下思想。
Ezpeleta研究S
PR的信标与死锁之间的关系,并提出了如何通过增加控制器实现增强网络活性和防止严格极小信标被清空的方法,使得控制器的控制实现技术能够独立地发展。
但是这种方法会遇到一些类似计算复杂、行为随意和结构复杂等问题。
Chu和Xie提出了一个基于混合整数规划其计算有效性与初始标识关系不大,所以被认为比经典状态枚举方法有效。
Huang提出了一个提取严格极小信标的算法,成功避免了列举所有的信标。
他们的方法的缺点就是在计算前先计算最大无标识信标,所以他们的方法的有效性有待提高。
Li和Zhou将Petri网的信标归类为两类:
基本信标和从属信标。
通过标识一个S
PR网的基本信标的不变量控制,他们证明在一定的条件下仅仅通过控制基本信标就能获得一个活性监控器,这样避免了多余的监控器。
因此有效地提高了计算效率。
然而,一些严格极小信标的计算结果是错的,就是说他们的方法还不是很完善。
基于资源环求SMS的方法比Li和Zhou的方法效率有显著地提高,首先求得资源环,再删除含有特殊变迁的资源环,最后由资源环及其输入变迁的操作库所组合形成了严格极小信标。
该方法逻辑严谨,算法方便快捷,与其他方法相比大大提高了计算SMS的效率。
四、研究工作的步骤和进度:
a)工作步骤:
1.学习掌握Petri网基本知识;
2.编程求得资源环;
3.编程求出所有严格小信标;
4.编程求出基本信标;
5.编程确定操作库所的容量限制K,保证系统的活性
6.编程添加补充库所
b)计划进度:
✓第一周调研、收集Petri网和离散事件资料、写出开题报告。
✓第二周提交开题报告,撰写文献综述、资料翻译等。
✓第三周~第五周研究Petri为工具的离散事件系统控制器问题
✓第六周写出中期自查报告。
✓第七、八周对前期的设计进行完善。
第九、十周项目调试,准备写论文。
✓第十一周审阅论文,根据老师意见修改论文、调试项目。
✓第十二周毕设管理小组验收设计成果、收缴论文,对论文进行格式、形式审查,组织评阅,学生准备论文答辩。
✓第十三周组织设计、论文答辩;答辩委员会评定成绩。
五、主要参考文献:
[1]曹希仁(1985>.离散事件动态系统.自动化学报,vol.11,pp.438-447
[2]董利达.基于序状Petri网的离散事件系统监控理论[D].浙江.浙江大学.2004.
[3]顾启泰.离散事件系统建模与仿真[M].北京.清华大学出版社.1999.
[4]罗继亮<2006).离散事件系统的禁止状态监控器设计.博士论文,浙江大学.
[5]王寿光.网简化技术在Petri网反馈控制器设计中的应用[J].软件学报.2003(14(6>>.1037-1040.
[6]吴哲辉.Petri网导论.[M].北京.机械工业出版社. 2006.
[7]郑大钟.赵千川.离散事件动态系统[M].清华大学出版社.2001.
[8]Iordache,M.V.andAntsaklis,P.J.(2003>.SynthesisofsupervisorsenforcinggenerallinearconstraintsinPetrinets.TAC,48(11>,pp.2036–2039.
[9]MoodyJ.O.andAntsaklis.PetriNetSupervisorsforDESwithUncontrollableandUnobservableTransitions[J].IEEETRANSACTIONSONAUTOMATICCONTROL.2000(45(3>>.462-475.
指导教师意见:
签名:
年月日
Ⅱ.文献综述
补库所法设计死锁预防控制器综述
摘要:
作为Petri网的一个结构体,信标在柔性制造系统所以求信标的算法成为了Petri网的一个热点。
对于一类Petri网系统S
PR,补库所监督器可以保证系统的活性,本文提出了此类监督器存在的充分条件。
严格极小信标分为基本信标和从属信标,对每个基本信标通过添加控制库所,保证其能够被标识,同时不产生新的可被清空的信标.从属信标的控制通过调整基本信标的控制深度变量来实现。
通过添加控制库所,得到了许可状态更多、结构更为简单的Petri网控制器。
还提出了一种基于基本信标和补库所的算法。
关键词:
Petri网;基本信标;死锁预防;资源环,补充库所,S
PR
TheSynthesisofDeadlockPreventionPolicyforS
PRbasedonComplementaryPlacesandElementarySiphons
Abstract:
AsastructuralobjectofPetrinets,siphonsplayanimportantroleinthedevelopmentofdeadlockpreventionpoliciesforflexiblemanufacturingsystems(FMS>,manydeadlockpreventionpoliciesareproposedbasedonsiphons.ThereforethemethodofcomputingsiphonsisbecomingahotpotinthestudyofthePetrinets.
ForaclassofPetrinetscalledSystemsofSimpleSequentialProcesseswithResources(S
PR>,thispaperproposesasufficientconditionunderwhichthereexistsacomplementary-placesupervisortoenforcetheirliveness.Strictminimalsiphonsaredividedintoelementaryanddependentones.Foreachelementarysiphon,amonitorisaddedtoensurethatitissufficientlymarkedwithoutgneratingemptiablecontrol-inducedsiphons.Thecontrollabilityofadependentsiphonisguaranteedbychangingthecontroldepthvariablesofitsrelatedelementarysiphons,whichleadstoaliveness-enforcingsupervisorforaplantmode.Furthermore,byaddingcontrol-monitors,amorepermissiveandstructurallysimplenetsupervisorwillbeavailable.Moreover,analgorithmisproposedtodesignliveness-enforcingsupervisorsbasedoncomplementaryplacesandelementarysiphons.
Keywords:
Petrinets,Elementarysiphon,Deadlockprevention,Loopresource,Complementary-place,S
PR
文献综述正文
一、Petri网与S
PR网
1962年,C.A.Petri提出了Petri网的理论。
Petri网作为一种数学方法,在离散事件系统建模、分析、性能评价和控制设计中得到了广泛地应用。
作为一种控制系统的设计手段,从上世纪70年代开始,Petri网以其能够模拟系统的并发和冲突行为以及反映系统的动态特性而受到广泛地关注。
Petri网由此得到了快速的发展。
S
PR是一种普通Petri网,其特点是每一个工序只需要一种资源的参与,一个资源不能连续参与两个工序的加工。
1998年,Tricas等提出了ES
PR中严格极小信标和系统思索的关系,指出了存在严格极小信标是系统具有可能死锁的必要条件,通过添加控制库所打破这种必要条件,相应的位置设计了活性Petri网控制器。
而控制器的计算需要求解Petri网模型中所有严格极小信标。
二、死锁
随着信息技术在生产系统中的广泛应用,生产过程中的安全性、可靠性以及其他日益繁多、错综复杂的要求也相应的要由控制系统的软件来实现和满足。
现代自动自造系统日益成为软件密集型系统,针对它们的建立和维护来说,系统控制如今的设计是一项异常艰巨和复杂的软任务。
系统的死锁问题是自动制造系统控制器设计时必须考虑和解决的问题,这一点在高度自动化生产系统中至关重要。
死锁问题的研究始于操作系统中的资源分配问题[1]。
一般认为,死锁产生的