CN118314747B - 基于Petri网建模的智能网联车无信号交叉口通行控制方法 - Google Patents
基于Petri网建模的智能网联车无信号交叉口通行控制方法 Download PDFInfo
- Publication number
- CN118314747B CN118314747B CN202410553777.4A CN202410553777A CN118314747B CN 118314747 B CN118314747 B CN 118314747B CN 202410553777 A CN202410553777 A CN 202410553777A CN 118314747 B CN118314747 B CN 118314747B
- Authority
- CN
- China
- Prior art keywords
- vehicle
- transition
- intersection
- sequence
- array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000007704 transition Effects 0.000 claims abstract description 150
- 230000008569 process Effects 0.000 claims abstract description 17
- 238000010924 continuous production Methods 0.000 claims abstract description 4
- 230000000977 initiatory effect Effects 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 9
- 230000008439 repair process Effects 0.000 claims description 8
- 239000011159 matrix material Substances 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000000903 blocking effect Effects 0.000 abstract description 2
- 230000002457 bidirectional effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000006855 networking Effects 0.000 description 4
- 238000011217 control strategy Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/07—Controlling traffic signals
- G08G1/08—Controlling traffic signals according to detected number or speed of vehicles
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/01—Detecting movement of traffic to be counted or controlled
- G08G1/0104—Measuring and analyzing of parameters relative to traffic conditions
- G08G1/0137—Measuring and analyzing of parameters relative to traffic conditions for specific applications
- G08G1/0145—Measuring and analyzing of parameters relative to traffic conditions for specific applications for active traffic flow control
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/097—Supervising of traffic control systems, e.g. by giving an alarm if two crossing streets have green light simultaneously
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Chemical & Material Sciences (AREA)
- Analytical Chemistry (AREA)
- Traffic Control Systems (AREA)
Abstract
本发明属于智能交通系统领域,具体涉及基于Petri网建模的智能网联车无信号交叉口通行控制方法。本发明方法包括:针对交叉口内部区域的空间资源以及车辆通过交叉口的连续过程中对各资源的占用情况,构建Petri网模型;将即将到达交叉口区域的车辆进行编号并根据每一辆车经过其路径上的各个路权点的通行过程生成交叉口车辆通行序列,并解码成变迁序列;通过迭代分析Petri网中的变迁和资源,对随机的车辆通行序列实现在线监督,判断每个变迁的引发是否会引起系统的死锁,并将会引起死锁的序列进行修复,进而解决在智能网联环境下的无信号交叉口车辆阻塞问题。
Description
技术领域
本发明属于智能交通系统领域,具体涉及基于Petri网建模的智能网联车无信号交叉口通行控制方法。
背景技术
在城市道路交通网中,交叉口是道路系统中的重要节点,但也很容易发生交通拥堵和事故。如果交叉口中出现死锁,会导致交通拥堵。因此,对交叉口中死锁场景进行分析并讨论解决策略具有重要的现实意义。传统的交叉口信号控制主要包括定时控制、感应控制和自适应控制。定时控制根据交叉口的进出口道交通流量固定配时;感应控制通过交通检测设备感知实时车流信息,动态调节信号配时;自适应控制则以整体通行效率为目标,根据区域交通流量调整各交叉口配时。相较于传统的交叉口信号控制,在智能网联环境下的交叉口信号控制更智能、灵活、高效,能够提高交通运行效率。为了契合我国道路交通对解决交叉口死锁问题的需求,智能网联环境下的交叉口控制理论亟待深入研究与完善。
现有技术中的基于Petri网和启发式算法的无信号交叉口车辆调度方法采用基于Petri的交叉口监督控制器,分析了双向四车道交叉口出现的死锁情况,针对死锁情况设置监督控制库所,使车辆可以安全有序通过交叉路口。但设置监督控制库所是一种离线死锁避免方法,具有一定的局限性,现需要解决智能网联环境下的无信号交叉口车辆阻塞问题。
发明内容
本发明的目的在于克服现有技术的不足之处,提出了基于Petri网建模的智能网联车无信号交叉口通行控制方法,从而避免车辆在交叉口循环等待的情况,以期在智能网联环境下缓解交通拥堵,提高通行效率,进而实现交叉口路权资源利用的最大化,为智能交通系统中的交叉口车辆通行提供一定的控制策略。
本发明为实现上述发明目的,采取的技术方案如下:
基于Petri网建模的智能网联车无信号交叉口通行控制方法,包括以下步骤:
S1、建模:针对交叉口内部区域的空间资源以及车辆通过交叉口的连续过程中对各资源的占用情况,构建无信号交叉口系统的Petri网模型(N,M0),并定义如下符号:
N:一个由圆形节点、方型节点和有向弧组成的Petri网N=(P,T,F),代表由k个路权点组成且能让n条路径的车辆驶过的交叉口通行系统;P:库所集,由N中所有的圆形节点组成的集合,其中Pi0=Pis∪Pif,Pis为车辆在交叉口入口前的缓冲区,Pif为车辆驶离交叉口的缓冲区;d表示路径i上的路权点总数,j表示车辆经过的第j个路权点,Pij代表路径i上的车辆通过交叉口的第j个通行过程;PR={Pr},Pr代表所有路权点构成的库所集;T:变迁集,由N中所有的方形节点组成的集合,其中d表示路径i上的路权点总数,tij的引发表示第i条路径的车辆从第j-1个路权点行驶到第j个路权点;F:有向弧集,代表每一辆车在系统中的行驶情况及在行驶过程中经过每个路权点时对资源的需求和释放情况;M:P→N为标识,N为非负整数集,表示系统的运行状态,标识的每个数字表示各库所中所含的车辆数或资源数;其中M0为初始标识,表示当前各车辆还未进入交叉口内部区域,车辆位于缓冲区,资源未被占用;A:关联矩阵,表示N中各变迁下每个库所托肯数的变化规律,是一个|T|行和|P|列的矩阵;
S2、生成车辆编号序列:对即将到达交叉口区域的车辆进行编号并根据每一辆车经过其路径上的各个路权点的通行过程生成交叉口车辆通行序列,具体步骤如下:
S2-1、根据车辆的行驶路径以及车辆到达交叉口的先后顺序进行编号,编号为两位整数ID,I表示车辆所要行驶的路径,D表示同一车辆到达交叉口的先后顺序;
S2-2、将当前即将通过交叉口的车辆总数记为x,将x辆车按照编号从小到大的顺序排列为数组a0,然后按照每辆车在Petri网的路径中所需通过的变迁数进行序列的扩展,得到扩展后总长度为m的数组a1,随后对数组中的车辆编号依次判断并选择数组Pass中的位置Li放入;在判断过程中,若Li超出数组总长度m,则将数组Pass的长度扩充为2m,然后继续前述的判断与放置操作;
S2-3、判断并放置完所有车辆编号后删除数组Pass中的空位,得到可能的车辆通行序列;
S2-4、将Pass中的车辆通行序列解码为变迁序列;
S3、检测死锁并修复:通过迭代分析Petri网中的变迁和资源,实现模型的死锁避免,确保系统安全无死锁,具体步骤如下:
S3-1、待检测的变迁序列为S2中得到的数组Pass;设u=1,记录Pass当前检测的变迁序号;
S3-2、判断u是否大于变迁序列的长度,若大于则表示完成了对序列的检测与修复,否则令变迁序列中第u个变迁为tα,执行S3-3;
S3-3、检查变迁tα在当前标识下是否使能,若使能则执行S3-4,否则从tα后选择一个使能且到达顺序在tα之前的变迁,放在tα之前,并更新tα;
S3-4、检查变迁tα能否引起死锁,若会引起死锁则选择tα之后的使能变迁放在该变迁前面,并更新tα,重新执行S3-4;反之则引发tα,并更新当前标识,令u=u+1,执行S3-2。
作为本发明的优选技术方案,对待进入交叉口的车辆生成编号序列,具体步骤如下:
S2-2-1、将即将通过交叉口的车辆总数记为x,将x辆车按照编号从小到大的顺序排列为数组a0,然后根据每辆车在Petri网的路径中所需通过的变迁数目进行序列的扩展,得到扩展后的数组a1,a1表示每辆车经过其所需通过的交叉口路权点;将数组a1中的编号总数记为m;
S2-2-2、对数组a1中的车辆编号IDi按照顺序放入长度为m的车辆通行序列数组Pass中;判断车辆的先后顺序Di是否等于1;如果车辆的先后顺序Di=1,则随机选择Pass中的位置L,将IDi放在L上;若Di>1,执行S2-2-3;
S2-2-3、当Di>1时,获取I=Ii,D=Di-1的车辆编号所在的位置Lmin和Lmax,若Lmax<m,在Lmin后面随机选择一个空的位置L1,将IDi放在L1上;若Lmax=M,则执行S2-2-4;
S2-2-4、扩展Pass数组长度为2m,再在L后面随机选择新的位置L1,将车辆编号IDi放在L1上。
作为本发明的优选技术方案,检测变迁在当前标识下是否会引起死锁,具体步骤如下:
S3-4-1、采集当前的可达标识M0∈R(Nu,Mu0);S3-4-2、将变迁集合T1、T2、T3初始化为S3-4-3、找到引发变迁tα后会占用的路权点资源rα,由于每个路权点同一时刻只能被一辆车占用,因此在引发变迁tα后,rα中的资源个数变为0;找到所有在引发后能使rα增加的变迁,并放入变迁集合T1中;S3-4-4、若此时T1=T2,则输出True,表示变迁tα在标识M0下引发会导致死锁;若T1≠T2,则从T1\T2中任选一个变迁tβ,找到引发tβ后会占用的路权点资源rβ,并检查此时rβ是否未被车辆占用,若未被占用则输出False,表示变迁tα在表示M0下不会引发死锁;若此时路权点rβ已被占用,则执行S3-4-5;S3-4-5、找到所有能增加rβ资源的变迁,并放入变迁集合T3中,并更新T1=T1∪T3,T2=T2∪{tβ},并执行S3-4-4。
作为本发明的优选技术方案,对车辆通行序列的修复,具体步骤如下:S3-3-1、采集当前的可达标识M1∈R(Nu,Mu0);S3-3-2、从变迁序列at中第u个变迁往后搜索所有在可达标识M1下使能的变迁,放到数组temp中;S3-3-3、从temp中随机选择一个变迁tran;将tran放在tα前面,并更新u=u+1。
本发明所述的基于Petri网建模的智能网联车无信号交叉口通行控制方法,采用以上技术方案与现有技术相比,具有以下技术效果:
本发明是基于Petri网进行建模,提供了对交叉口结构以及车辆行驶过程的直观的图形化表示,便于进行形式化分析和验证,且通过调整模型的结构和参数可以方便地对不同类型的交叉口进行建模与分析;二是通过死锁检测算法,对随机的车辆通行序列实现在线监督,判断每个变迁的引发是否会引起系统的死锁,并将会引起死锁的序列进行修复,进而解决在智能网联环境下的无信号交叉口的车辆阻塞问题。
附图说明
图1为本发明控制方法的流程图;
图2为本发明实施例中双向四车道交叉口的离散化模型示意图;
图3为本发明实施例中双向四车道的直行、左转车辆路线示意图;
图4为本发明实施例中双向四车道交叉口的Petri网模型示意图;
图5为本发明实施例中双向四车道交叉口的8个单条路径Roadi的Petri网模型示意图;
图6为本发明实施例中生成车辆编号的示意图一;
图7为本发明实施例中生成车辆编号的示意图二。
具体实施方式
为了使本技术领域的人员更好的理解本申请实施例中的技术方案,首先对本申请实施例中的部分符号进行解释说明,以便于本领域技术人员理解。
如图1所示,基于Petri网建模的智能网联车无信号交叉口通行控制方法,包括以下步骤:
S1、建模:针对交叉口内部区域的空间资源以及车辆通过交叉口的连续过程中对各资源的占用情况,构建无信号交叉口系统的Petri网模型(N,M0),并定义如下符号:
N:一个由圆形节点、方型节点和有向弧组成的Petri网N=(P,T,F),代表由k个路权点组成且能让n条路径的车辆驶过的交叉口通行系统;P:库所集,由N中所有的圆形节点组成的集合,其中Pi0=Pis∪Pif,Pis为车辆在交叉口入口前的缓冲区,Pif为车辆驶离交叉口的缓冲区;d表示路径i上的路权点总数,j表示车辆经过的第j个路权点,Pij代表路径i上的车辆通过交叉口的第j个通行过程;PR={Pr},Pr代表所有路权点构成的库所集;T:变迁集,由N中所有的方形节点组成的集合,其中d表示路径i上的路权点总数,tij的引发表示第i条路径的车辆从第j-1个路权点行驶到第j个路权点;F:有向弧集,代表每一辆车在系统中的行驶情况及在行驶过程中经过每个路权点时对资源的需求和释放情况;M:P→N为标识,N为非负整数集,表示系统的运行状态,标识的每个数字表示各库所中所含的车辆数或资源数;其中M0为初始标识,表示当前各车辆还未进入交叉口内部区域,车辆位于缓冲区,资源未被占用;A:关联矩阵,表示N中各变迁下每个库所托肯数的变化规律,是一个|T|行和|P|列的矩阵;
S2、生成车辆编号序列:对即将到达交叉口区域的车辆进行编号并根据每一辆车经过其路径上的各个路权点的通行过程生成交叉口车辆通行序列,具体步骤如下:
S2-1、根据车辆的行驶路径以及车辆到达交叉口的先后顺序进行编号,编号为两位整数ID,I表示车辆所要行驶的路径,D表示同一车辆到达交叉口的先后顺序;
S2-2、将当前即将通过交叉口的车辆总数记为x,将x辆车按照编号从小到大的顺序排列为数组a0,然后按照每辆车在Petri网的路径中所需通过的变迁数进行序列的扩展,得到扩展后总长度为m的数组a1,随后对数组中的车辆编号依次判断并选择数组Pass中的位置Li放入;在判断过程中,若Li超出数组总长度m,则将数组Pass的长度扩充为2m,然后继续前述的判断与放置操作;
S2-3、判断并放置完所有车辆编号后删除数组Pass中的空位,得到可能的车辆通行序列;
S2-4、将Pass中的车辆通行序列解码为变迁序列;
S3、检测死锁并修复:通过迭代分析Petri网中的变迁和资源,实现模型的死锁避免,确保系统安全无死锁,具体步骤如下:
S3-1、待检测的变迁序列为S2中得到的数组Pass;设u=1,记录Pass当前检测的变迁序号;
S3-2、判断u是否大于变迁序列的长度,若大于则表示完成了对序列的检测与修复,否则令变迁序列中第u个变迁为tα,执行S3-3;
S3-3、检查变迁tα在当前标识下是否使能,若使能则执行S3-4,否则从tα后选择一个使能且到达顺序在tα之前的变迁,放在tα之前,并更新tα;
S3-4、检查变迁tα能否引起死锁,若会引起死锁则选择tα之后的使能变迁放在该变迁前面,并更新tα,重新执行S3-4;反之则引发tα,并更新当前标识,令u=u+1,执行S3-2。
对待进入交叉口的车辆生成编号序列,具体步骤如下:
S2-2-1、将即将通过交叉口的车辆总数记为x,将x辆车按照编号从小到大的顺序排列为数组a0,然后根据每辆车在Petri网的路径中所需通过的变迁数目进行序列的扩展,得到扩展后的数组a1,a1表示每辆车经过其所需通过的交叉口路权点;将数组a1中的编号总数记为m;
S2-2-2、对数组a1中的车辆编号IDi按照顺序放入长度为m的车辆通行序列数组Pass中;判断车辆的先后顺序Di是否等于1;如果车辆的先后顺序Di=1,则随机选择Pass中的位置L,将IDi放在L上;若Di>1,执行S2-2-3;
S2-2-3、当Di>1时,获取I=Ii,D=Di-1的车辆编号所在的位置Lmin和Lmax,若Lmax<m,在Lmin后面随机选择一个空的位置L1,将IDi放在L1上;若Lmax=M,则执行S2-2-4;
S2-2-4、扩展Pass数组长度为2m,再在L后面随机选择新的位置L1,将车辆编号IDi放在L1上。
检测变迁在当前标识下是否会引起死锁,具体步骤如下:S3-4-1、采集当前的可达标识M0∈R(Nu,Mu0);S3-4-2、将变迁集合T1、T2、T3初始化为S3-4-3、找到引发变迁tα后会占用的路权点资源rα,由于每个路权点同一时刻只能被一辆车占用,因此在引发变迁tα后,rα中的资源个数变为0;找到所有在引发后能使rα增加的变迁,并放入变迁集合T1中;S3-4-4、若此时T1=T2,则输出True,表示变迁tα在标识M0下引发会导致死锁;若T1≠T2,则从T1\T2中任选一个变迁tβ,找到引发tβ后会占用的路权点资源rβ,并检查此时rβ是否未被车辆占用,若未被占用则输出False,表示变迁tα在表示M0下不会引发死锁;若此时路权点rβ已被占用,则执行S3-4-5;S3-4-5、找到所有能增加rβ资源的变迁,并放入变迁集合T3中,并更新T1=T1∪T3,T2=T2∪{tβ},并执行S3-4-4。
对车辆通行序列的修复,具体步骤如下:S3-3-1、采集当前的可达标识M1∈R(Nu,Mu0);S3-3-2、从变迁序列at中第u个变迁往后搜索所有在可达标识M1下使能的变迁,放到数组temp中;S3-3-3、从temp中随机选择一个变迁tran;将tran放在tα前面,并更新u=u+1。
具体实施时,基于Petri网建模的智能网联车无信号交叉口通行控制方法在双向四车道交叉口的具体应用,将双向四车道的交叉口离散化表示为24个路权点,并用Petri网建模,对即将通过交叉口的车辆进行编号,并生成通行序列,不同的通行序列对应着车辆行驶过每个路权点的先后顺序,其控制策略的目标是在确保每一辆车的通行过程不遗漏的前提下,实现对通行序列的死锁检测,并修复为无死锁的通行序列,从而保证交叉口区域的车辆安全有序地行驶完毕,具体步骤如下:
步骤1)(建模):建立双向四车道交叉口的Petri网模型:将交叉口内部区域离散化表示为图2,离散化后的交叉口由24个小单元格组成,设定每个单元格仅能容纳一辆车,且单元格的空间可以保证此车与其他车辆之间的安全距离。离散化后的单元格称为路权点。双向四车道的直行、左转车辆路线如图3所示。车辆的路径分为8种,分别为四个方向的直行路径与左拐路径。其中1,2,3,4为四个方向的直行路径,5,6,7,8为四个方向的左拐路径。对单条路径Roadi进行Petri网的建模,包括库所集P、变迁集T、有向弧集F以及系统运行状态M。车辆由起始库所Pis进入交叉口内部区域,经过库所Pij,最终由结束库所Pif驶离交叉口。图4为Road1的Petri网模型。整个Petri网模型由8个单条路径Roadi的Petri网模型组成,如图5所示。
Pis(i=1,2,3,4,5,6,7,8)为路径i的起始库所,车辆由此进入交叉口内部区域,行驶过所有路权点后进入结束库所Pif,Pis中的数字表示该路径待通行的车辆总数;
P={pij,i=1,2,3,4;j=1,2,3,4}∪{pij,i=5,6,7,8;j=1,2,3,4,5,6}为代
表车辆行驶过程的库所集,其中pij表示车辆行驶到路径i的第j个路权点,pij中的数字表示当前的车辆数目(只能是0或1);
Pc={rk,k=1,2,3,…,22,23,24}为资源库所集,其中rk中的数字表示当前路权点被占用的情况,0表示被占用,1表示未被占用;
T=P={tij,i=1,2,3,4;j=1,2,3,4,5}∪{tij,i=5,6,7,8;j=1,2,3,4,5,6,
7}为变迁集,其中tij表示路径i的车辆结束第j-1个路权点,开始第j个路权点。
具体的,t11表示路径1的车辆从起始库所p1s进入到交叉口内部区域中,p11表示该车辆进入到第一个路权点r10,该过程占用r10中的路权资源,此时资源库所r10中的路权资源数为0;t12表示p11中的车辆结束对上一个路权点的占用,开始进入下一个路权点p12,此时r10中的数字为1,r9中的数字为0,以此类推,直到该车辆进入结束库所p1f,代表驶出了交叉口区域。图4中的p1s、p2s、…、p8s中的数字分别表示八条路径的待行驶车辆数量为3、0、1,3,0,1,5,0;r1,r2,…,r22,r23,r24中的数字表示其容量均为1,其它操作库所没有数字,表示在初始状态下其它路权点都没有车辆占用,这些数字构成初始标识M0=3p1s+0p2s+p3s+3p4s+0p5s+1p6s+5p7s+0p8s+r1+r2+r3+r4+r5+r6+r7+r8+r9+r10+r11+r12+r13+r14+r15+r16+r17+r18+r19+r20+r21+r22+r23+r24。图4中每个符号的具体含义如表1所示。
表1Petri网模型中库所和变迁的物理意义
元素 | 含义 |
Pis | 第i条路径的车辆驶入交叉口入口处车辆等待区域 |
tij | 第i条路径的车辆结束第j-1个路权点,开始第j个路权点 |
Pij | 车辆进入第i条路径的第j个路权点 |
Pif | 第i条路径的车辆驶出交叉口区域 |
ri | 第i个路权点 |
步骤2)(生成车辆编号序列):对即将到达交叉口区域的车辆进行编号并根据每一辆车经过其路径上的各个路权点的顺序生成交叉口车辆通行序列,具体步骤如下:
步骤2-1):根据车辆的行驶路径以及车辆到达交叉口的先后顺序进行编号,编号为两位整数ID,I表示车辆所要行驶的路径,D表示同一车辆到达交叉口的先后顺序。
步骤2-2):得到每一辆车的编号后,根据每辆车驶过的库所生成车辆通行序列,具体步骤如下:
步骤2-2-1):将即将通过交叉口的车辆总数记为n,将n辆车按照编号从小到大的顺序排列为数组a0,然后根据每辆车在Petri网的路径中所需通过的变迁数目进行序列的扩展,得到扩展后的数组a1,a1表示每辆车经过其所需通过的交叉口路权点。将数组a1中的编号总数记为m;
步骤2-2-2):对数组a1中的车辆编号IDi按照顺序放入长度为m的车辆通行序列数组Pa ss中。判断车辆的先后顺序Di是否等于1。若Di=1,则随机选择Pass中的位置L,将IDi放在L上。若Di>1,执行步骤2-2-3);
步骤2-2-3):当Di>1时,获取I=Ii,D=Di-1的车辆编号所在的位置Lmin和Lmax,若Lmax<m,在Lmin后面随机选择一个空的位置L1,将IDi放在L1上。若Lmax=m,则执行步骤2-2-4);
步骤2-2-4):扩展Pass数组长度为2m,再在Lmin后面随机选择空的位置L1,将车辆编号IDi放在L1上;
步骤2-3):判断并放置完所有车辆编号后删除数组Pass中的空位,得到可能的车辆通行序列;
步骤2-4):将Pass中的车辆通行序列解码为变迁序列。
具体的,双向四车道交叉口区域的八个车道共有13辆车。车道1即将进入交叉口的车辆有3辆,I均为1,第一个到达缓冲区的车辆D值为1,其编号(ID)为11;第二个到达缓冲区的车辆D值为2,其编号(ID)为12;第三个到达缓冲区的车辆D值为3,其编号(ID)为13。在得到所有车辆的编号后,按大小顺序排列为长度为14的数组a0:(11,12,13,31,41,42,43,61,71,72,73,74,75);车辆11在行驶过程中会相继经过p11,p12,p13,p14,p1f五个库所,因此扩展为(11,11,11,11,11),表示车辆11的行驶过程。将所有车辆编号扩展后得到a1:(11,11,11,11,11,12,12,12,12,12,13,13,13,13,13,31,31,31,31,31,41,41,41,41,41,42,42,42,42,42,43,43,43,43,43,61,61,61,61,61,61,61,71,71,71,71,71,71,71,72,72,72,72,72,72,72,73,73,73,73,73,73,73,74,74,74,74,74,74,74,75,75,75,75,75,75,75)。
得到a1后,按顺序将车辆编号放入长度为77的车辆通行数组Pass中。车辆11对应的I为1,D为1,因此在Pass数组随机选择位置L=1,5,21,48,77,将11放入L中,如图6所示。将车辆11编号放入Pass数组后,再对车辆12编号进行放置。车辆12对应的I为1,D为2,获取I=1,D=2-1的车辆编号在数组Pass中的位置Lmin为1,Lmax为77。由于Lmax=m,扩展数组Pass长度为154,再在Lmin后随机选择空位置L=7,22,80,88,91放置车辆编号12,如图7所示。在将所有车辆编号全部放置完成后,删除数组中的空白位置,即得到车辆通行序列Pass=(11,41,11,71,12,31,71,71,72,72,71,41,11,12,41,42,31,71,72,72,11,31,73,73,13,42,43,73,74,74,75,11,12,71,12,13,75,41,13,41,42,71,12,72,61,72,73,74,75,13,42,42,72,61,73,73,74,13,73,75,74,75,43,74,74,61,31,43,31,43,43,61,75,61,75,61,61)。
将Pass数组中的编号解码为变迁序列,通行序列中编号IDi的第y次出现,对应路径I上的第y个变迁。解码后得到的变迁序列at=(t11,t41,t12,t71,t11,t31,t72,t73,t71,t72,t74,t42,t13,t12,t43,t41,t32,t75,t73,t74,t14,t33,t71,t72,t11,t42,t41,t73,t71,t72,t71,t15,t13,t76,t14,t12,t72,t44,t13,t45,t43,t77,t15,t75,t61,t76,t74,t73,t73,t14,t44,t45,t77,t62,t75,t76,t74,t15,t77,t74,t75,t75,t42,t76,t77,t63,t34,t43,t35,t44,t45,t64,t76,t65,t77,t67,t67)。
步骤3)(检测死锁并修复):通过迭代分析Petri网中的变迁和资源,实现模型的死锁避免,确保系统安全无死锁。具体步骤如下:
步骤3-1):待检测的变迁序列为步骤2中得到的数组Pass。设u=1,记录Pass当前检测的变迁序号;
步骤3-2):判断u是否大于变迁序列的长度,若大于则表示完成了对序列的检测与修复,否则令变迁序列中第u个变迁为tα,执行步骤3-3);
步骤3-3):检查变迁tα在当前标识下是否使能,若使能则执行步骤3-4),否则从tα后选择一个使能且到达顺序在tα之前的变迁,放在tα之前,并更新tα;
步骤3-4):检查变迁tα能否引起死锁,若会引起死锁则选择tα之后的使能变迁放在该变迁前面,并更新tα,重新执行步骤3-4);反之则引发tα,并更新当前标识,令u=u+1,执行步骤3-2);
具体流程如下:变迁序列at=(t11,t41,t12,t71,t11,t31,t72,t73,t71,t72,t74,t42,t13,t12,t43,t41,t32,t75,t73,t74,t14,t33,t71,t72,t11,t42,t41,t73,t71,t72,t71,t15,t13,t76,t14,t12,t72,t44,t13,t45,t43,t77,t15,t75,t61,t76,t74,t73,t73,t14,t44,t45,t77,t62,t75,t76,t74,t15,t77,t74,t75,t75,t42,t76,t77,t63,t34,t43,t35,t44,t45,t64,t76,t65,t77,t67,t67),初始标识M0=(3,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),在初始标识M0下,逐个检测变迁的使能情况并判断引发后是否会引起死锁。从u=1开始,判断变迁tα=at[1]=t11,找到变迁t11引发时托肯会减少的库所r10,此时M0[r10]=1,则变迁t11使能,且引发t11不会引起死锁,因此引发t11,并更新当前标识为M1=(2,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1),u=u+1。在判断完变迁t11-t41-t12-t71-t11-t31-t72-t73-t71-t72-t74-t42-t13-t12-t43-t41-t32-t75-t73-t74-t14-t33-t71-t72-t11-t42-t41-t73-t71-t72后,即M0[t11-t41-t12-t71-t11-t31-t72-t73-t71-t72-t74-t42-t13-t12-t43-t41-t32-t75-t73-t74-t14-t33-t71-t72-t11-t42-t44-t73-t71-t72>M1,M1=(0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,1,0,0,0,0,1,1,0,0,0,1,1,1,1,0,1,1)。现在u=30,判断tα=at[u]=t71是否允许被引发。找到变迁t71引发时路权资源会减少的库所r8,此时M1[r8]=1,则t71使能。接下来判断t71在标识M1下引发是否会导致死锁,具体步骤如下:
(1)采集当前可达标识M1=(0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,0,1,1);
(2)初始化,令操作使能变迁集合
(3)找到变迁t71引发时路权资源会减少的库所r8;
(4)找到引发后能使r8中路权资源增加的变迁并放入集合T1,T1={t72,t14};
(5)此时T1≠T2,且T1\T2={t72,t14},从T1\T2中选择tβ=t14;找到t14引发后会占用的路权点资源rβ=r7,此时M1[r7]=0,路权点r7已被占用;
(6)找到所有能使r7中路权资源增加的变迁并放入集合T3,T3={t22,t15},更新T1=T1∪T3,T2=T2∪{tβ},继续执行步骤(5);
在迭代循环后,死锁检测算法输出结果为True,即t71在标识M1下引发会导致死锁。因此需要进行序列的修复操作,具体步骤如下:
(1)采集当前可达标识M1=(0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,0,1,1);
(2)在变迁序列at中从t71往后搜索所有在可达标识M1下使能的变迁,放入数组temp中;此时temp=(t13,t15);
(3)从temp中随机选择一个变迁tran=t15,将t15放到t71之前,并更新u=u+1;
重复上述步骤,在判断完每一个变迁后,即可得到一组无死锁的变迁序列at=(t11,t41,t12,t71,t11,t31,t72,t73,t71,t72,t74,t42,t13,t12,t43,t41,t32,t75,t73,t74,t14,t33,t71,t72,t11,t42,t41,t73,t71,t72,t15,t13,t14,t12,t71,t44,t45,t43,t76,t77,t15,t75,t76,t74,t73,t72,t13,t14,t44,t45,t77,t61,t75,t76,t74,t15,t77,t73,t75,t76,t77,t74,t42,t62,t34,t35,t43,t44,t75,t76,t45,t63,t64,t65,t77,t66,t67),从而得到无死锁的车辆通行序列Pass=(11,41,11,71,12,31,71,71,72,72,71,41,11,12,41,42,31,71,72,72,11,31,73,73,13,42,43,73,74,74,11,12,12,13,75,41,41,42,71,71,12,72,72,73,74,75,13,13,42,42,72,61,73,73,74,13,73,75,74,74,74,75,43,61,31,31,43,43,75,75,43,61,61,61,75,61,61)。
经过实例验证,本方法可以通过Petri网对交叉口进行建模,将车辆通行序列解码为变迁序列,再通过死锁检测算法对随机的车辆通行序列实现在线监督,判断每个变迁的引发是否会引起系统的死锁,并将能引起死锁的序列进行修复,进而得到车辆在交叉口的无死锁通行序列,从而保证交叉口区域的车辆安全有序地行驶完毕。
以上所述的具体实施方案,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述仅为本发明的具体实施方案而已,并非用以限定本发明的范围,任何本领域的技术人员,在不脱离本发明的构思和原则的前提下所做出的等同变化与修改,均应属于本发明保护的范围。
Claims (4)
1.基于Petri网建模的智能网联车无信号交叉口通行控制方法,其特征在于,包括以下步骤:
S1、建模:针对交叉口内部区域的空间资源以及车辆通过交叉口的连续过程中对各资源的占用情况,构建无信号交叉口系统的Petri网模型(N,M0),并定义如下符号:
N:一个由圆形节点、方型节点和有向弧组成的Petri网N=(P,T,F),代表由k个路权点组成且能让n条路径的车辆驶过的交叉口通行系统;P:库所集,由N中所有的圆形节点组成的集合,其中Pi0=Pis∪Pif,Pis为车辆在交叉口入口前的缓冲区,Pif为车辆驶离交叉口的缓冲区;d表示路径i上的路权点总数,j表示车辆经过的第j个路权点,Pij代表路径i上的车辆通过交叉口的第j个通行过程;PR={Pr},Pr代表所有路权点构成的库所集;T:变迁集,由N中所有的方形节点组成的集合,其中d表示路径i上的路权点总数,tij的引发表示第i条路径的车辆从第j-1个路权点行驶到第j个路权点;F:有向弧集,代表每一辆车在系统中的行驶情况及在行驶过程中经过每个路权点时对资源的需求和释放情况;M:P→N为标识,N为非负整数集,表示系统的运行状态,标识的每个数字表示各库所中所含的车辆数或资源数;其中M0为初始标识,表示当前各车辆还未进入交叉口内部区域,车辆位于缓冲区,资源未被占用;A:关联矩阵,表示N中各变迁下每个库所托肯数的变化规律,是一个|T|行和|P|列的矩阵;
S2、生成车辆编号序列:对即将到达交叉口区域的车辆进行编号并根据每一辆车经过其路径上的各个路权点的通行过程生成交叉口车辆通行序列,具体步骤如下:
S2-1、根据车辆的行驶路径以及车辆到达交叉口的先后顺序进行编号,编号为两位整数I D,I表示车辆所要行驶的路径,D表示同一车辆到达交叉口的先后顺序;
S2-2、将当前即将通过交叉口的车辆总数记为x,将x辆车按照编号从小到大的顺序排列为数组a0,然后按照每辆车在Petri网的路径中所需通过的变迁数进行序列的扩展,得到扩展后总长度为m的数组a1,随后对数组中的车辆编号依次判断并选择数组Pass中的位置Li放入;在判断过程中,若Li超出数组总长度m,则将数组Pass的长度扩充为2m,然后继续前述的判断与放置操作;
S2-3、判断并放置完所有车辆编号后删除数组Pass中的空位,得到可能的车辆通行序列;
S2-4、将Pass中的车辆通行序列解码为变迁序列;
S3、检测死锁并修复:通过迭代分析Petri网中的变迁和资源,实现模型的死锁避免,确保系统安全无死锁,具体步骤如下:
S3-1、待检测的变迁序列为S2中得到的数组Pass;设u=1,记录Pass当前检测的变迁序号;
S3-2、判断u是否大于变迁序列的长度,若大于则表示完成了对序列的检测与修复,否则令变迁序列中第u个变迁为tα,执行S3-3;
S3-3、检查变迁tα在当前标识下是否使能,若使能则执行S3-4,否则从tα后选择一个使能且到达顺序在tα之前的变迁,放在tα之前,并更新tα;
S3-4、检查变迁tα能否引起死锁,若会引起死锁则选择tα之后的使能变迁放在该变迁前面,并更新tα,重新执行S3-4;反之则引发tα,并更新当前标识,令u=u+1,执行S3-2。
2.根据权利要求1所述的基于Petri网建模的智能网联车无信号交叉口通行控制方法,其特征在于,对待进入交叉口的车辆生成编号序列,具体步骤如下:
S2-2-1、将即将通过交叉口的车辆总数记为x,将x辆车按照编号从小到大的顺序排列为数组a0,然后根据每辆车在Petri网的路径中所需通过的变迁数目进行序列的扩展,得到扩展后的数组a1,a1表示每辆车经过其所需通过的交叉口路权点;将数组a1中的编号总数记为m;
S2-2-2、对数组a1中的车辆编号IDi按照顺序放入长度为m的车辆通行序列数组Pass中;判断车辆的先后顺序Di是否等于1;如果车辆的先后顺序Di=1,则随机选择Pass中的位置L,将IDi放在L上;若Di>1,执行S2-2-3;
S2-2-3、当Di>1时,获取I=Ii,D=Di-1的车辆编号所在的位置Lmin和Lmax,若Lmax<m,在Lmin后面随机选择一个空的位置L1,将IDi放在L1上;若Lmax=M,则执行S2-2-4;
S2-2-4、扩展Pass数组长度为2m,再在L后面随机选择新的位置L1,将车辆编号IDi放在L1上。
3.根据权利要求2所述的基于Petri网建模的智能网联车无信号交叉口通行控制方法,其特征在于,检测变迁在当前标识下是否会引起死锁,具体步骤如下:
S3-4-1、采集当前的可达标识M0∈R(Nu,Mu0);
S3-4-2、将变迁集合T1、T2、T3初始化为
S3-4-3、找到引发变迁tα后会占用的路权点资源rα,由于每个路权点同一时刻只能被一辆车占用,因此在引发变迁tα后,rα中的资源个数变为0;找到所有在引发后能使rα增加的变迁,并放入变迁集合T1中;
S3-4-4、若此时T1=T2,则输出True,表示变迁tα在标识M0下引发会导致死锁;若T1≠T2,则从T1\T2中任选一个变迁tβ,找到引发tβ后会占用的路权点资源rβ,并检查此时rβ是否未被车辆占用,若未被占用则输出False,表示变迁tα在表示M0下不会引发死锁;若此时路权点rβ已被占用,则执行S3-4-5;
S3-4-5、找到所有能增加rβ资源的变迁,并放入变迁集合T3中,并更新T1=T1∪T3,T2=T2∪{tβ},并执行S3-4-4。
4.根据权利要求3所述的基于Petri网建模的智能网联车无信号交叉口通行控制方法,其特征在于,对车辆通行序列的修复,具体步骤如下:
S3-3-1、采集当前的可达标识M1∈R(Nu,Mu0);
S3-3-2、从变迁序列at中第u个变迁往后搜索所有在可达标识M1下使能的变迁,放到数组temp中;
S3-3-3、从temp中随机选择一个变迁tran;将tran放在tα前面,并更新u=u+1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410553777.4A CN118314747B (zh) | 2024-05-07 | 2024-05-07 | 基于Petri网建模的智能网联车无信号交叉口通行控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410553777.4A CN118314747B (zh) | 2024-05-07 | 2024-05-07 | 基于Petri网建模的智能网联车无信号交叉口通行控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118314747A CN118314747A (zh) | 2024-07-09 |
CN118314747B true CN118314747B (zh) | 2024-09-03 |
Family
ID=91730056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410553777.4A Active CN118314747B (zh) | 2024-05-07 | 2024-05-07 | 基于Petri网建模的智能网联车无信号交叉口通行控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118314747B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106200575A (zh) * | 2016-07-07 | 2016-12-07 | 西安电子科技大学 | 一种基于Petri网的自动制造系统的稳健性控制方法 |
CN106227163A (zh) * | 2016-07-15 | 2016-12-14 | 中国电子科技集团公司第二十八研究所 | 基于Petri网和模拟退火的装备制造系统无死锁调度方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3364021B2 (ja) * | 1993-12-10 | 2003-01-08 | 神鋼電機株式会社 | 運行管理制御装置およびその方法 |
JP3684755B2 (ja) * | 1997-05-12 | 2005-08-17 | アシスト シンコー株式会社 | 運行管理制御装置および運行管理制御方法 |
CN111428910B (zh) * | 2020-02-28 | 2023-12-05 | 西安电子科技大学 | 基于时延Petri网的车辆最短时间交通路径处理方法 |
CN111563336A (zh) * | 2020-04-30 | 2020-08-21 | 南通大学 | 一种基于改进遗传算法的柔性制造系统无死锁调度方法 |
CN114740834A (zh) * | 2022-03-02 | 2022-07-12 | 浙江大学 | 一种基于Petri网模型的多AGV路径规划避障方法 |
CN117314078B (zh) * | 2023-09-26 | 2024-05-14 | 南通大学 | 基于Petri网和神经网络的柔性制造系统的无死锁调度方法 |
CN117170381A (zh) * | 2023-10-11 | 2023-12-05 | 浙江工业大学 | 一种多四向穿梭车的路径规划方法 |
CN117852825B (zh) * | 2024-01-10 | 2024-09-03 | 南通大学 | 基于深度学习的含中心资源柔性制造系统的无死锁调度方法 |
-
2024
- 2024-05-07 CN CN202410553777.4A patent/CN118314747B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106200575A (zh) * | 2016-07-07 | 2016-12-07 | 西安电子科技大学 | 一种基于Petri网的自动制造系统的稳健性控制方法 |
CN106227163A (zh) * | 2016-07-15 | 2016-12-14 | 中国电子科技集团公司第二十八研究所 | 基于Petri网和模拟退火的装备制造系统无死锁调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN118314747A (zh) | 2024-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115079705B (zh) | 基于改进a星融合dwa优化算法的巡检机器人路径规划方法 | |
CN104318758B (zh) | 基于多层次多模式的公交线网规划方法 | |
CN112735126B (zh) | 一种基于模型预测控制的混合交通流协同优化控制方法 | |
CN114281084B (zh) | 一种基于改进a*算法的智能车全局路径规划方法 | |
CN112785077B (zh) | 基于时空数据的出行需求预测方法及系统 | |
CN111179601A (zh) | 隧道交通运行管控方法 | |
CN113487889A (zh) | 基于快速梯度下降的单交叉口信号控制的交通状态对抗扰动生成方法 | |
CN117111578A (zh) | 一种自动驾驶系统探测盲区导向模糊测试方法及系统 | |
CN118314747B (zh) | 基于Petri网建模的智能网联车无信号交叉口通行控制方法 | |
CN112884229B (zh) | 基于差分进化算法的大型公共场所人流引导路径规划方法 | |
CN117636661A (zh) | 一种无信号交叉口完全自主交通流通行控制方法 | |
CN110634289B (zh) | 一种基于电警数据的城市道路交通最优路径在线规划方法 | |
Tamimi et al. | Intelligent traffic light based on genetic algorithm | |
CN104809890A (zh) | 基于主成分分析和局部搜索改进正交遗传算法的交通信号配时优化方法 | |
CN109273047A (zh) | 一种基于模拟退火的核酸结构预测方法 | |
CN114116926A (zh) | 基于公交站点信息匹配的乘客出行方式识别方法 | |
CN105427647B (zh) | 一种区别车辆转向的路径分配方法及装置 | |
CN111125886A (zh) | 一种基于三种不同行为的人群疏散仿真系统及仿真方法 | |
CN114625167B (zh) | 基于启发式Q-learning算法的无人机协同搜索方法及系统 | |
Jiang et al. | Time-dependent pheromones and electric-field model: a new ACO algorithm for dynamic traffic routing | |
CN116451891A (zh) | 一种u型堆场多点装卸模式下多设备的协同调度方法 | |
CN118942239A (zh) | 一种智能网联环境下的无信号交叉口车辆调度方法 | |
CN113327453A (zh) | 一种基于高点视频分析的停车场空位引导系统 | |
CN113268857A (zh) | 一种基于多智能体的城市快速路交织区微观交通仿真方法及装置 | |
CN116013093B (zh) | 一种基于视频的协同疏散仿真方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |