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
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。