System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于智能交通领域,具体涉及一种无信号交叉口考虑车辆多种行驶方向的死锁避免方法。
技术介绍
1、现有的交叉口控制系统是基于交通信号灯实现对到达交叉口车辆调度的作用,这是一种被动的调度策略并且不能适应实时交通流。随着智能网联车辆的出现,无信号交叉口车辆通行策略成为可能。智能网联车辆之间能够通过车联网技术实现车对外界的信息交换,在自动驾驶模式下,实现对实时交通信息的分析,做出相应的调整。与传统信号灯控制的方法相比,该方法根据实时交通流对车辆调度进行调整,提高了交叉口空间的利用率。在交叉口外,车辆按照先后顺序等待通过交叉口且同一车道可能存在不同行驶方向的车辆。已被允许进入交叉口的车辆彼此之间存在路权点争夺的情况,这种竞争可能导致循环等待现象的发生,每辆车都在等待下一辆车释放所需的路权点,同时又在占用其他车辆所需的路权点,因此,需要合理的车辆通行顺序避免这一现象发生。
技术实现思路
1、本专利技术的目的在于克服现有技术的不足之处,提出了一种无信号交叉口考虑车辆多种行驶方向的死锁避免方法,针对无信号交叉口车辆通行问题对车辆进行编码解码并进行修复,使得调度序列满足每条车道上不同行驶方向的车辆通行顺序不变和避免不同车道之间的车辆形成死锁。
2、本专利技术为实现上述专利技术目的,采取的技术方案如下:
3、一种无信号交叉口考虑车辆多种行驶方向的死锁避免方法,包括以下步骤:
4、s1、在无信号交叉口中划分路权点,建立petri网模型;
5、s2、
6、s3、通过调度编码序列判断是否满足同车道车辆先后顺序,通过调度变迁序列判断不同车道之间的车辆是否产生死锁,如果不满足同车道车辆先后顺序或者不同车道之间的车辆会产生死锁,将当前位置之后满足条件的编码和变迁与当前位置的进行更换。
7、作为本专利技术的优选技术方案,s1中:将交叉口空间划分为c_num个路权点,左转、直行和右转路径上的路权点数量分别为num_l,num_s,num_r;pis、pif表示第i号车道车辆的等待区域和离开区域;pila、pirb、pilc,其中1≤a≤num_l,1≤b≤num_s,1≤c≤num_r,分别表示第i号车道车辆左转、直行、右转车辆行驶到对应路径上的路权点位置;tile、tisf、tirg,其中1≤e≤num_l+1,1≤f≤num_s+1,1≤g≤num_r+1,分别表示第i号车道车辆左转、直行、右转车辆行驶在对应路径上的车辆动作。
8、作为本专利技术的优选技术方案,s2中:车辆编码由“车道号.行驶方向.位次”组成;车道号为当前车辆所在车道标号,行驶方向包括左转、直行、右转分别用“1”,“2”,“3”表示,位次为当前车辆在所在车道的顺序;调度编码序列由车辆编码扩展并随机打乱得到;调度变迁序列与调度编码序列是一一对应的关系,表示当前车辆所要进行的车辆动作。
9、作为本专利技术的优选技术方案,s3包括以下步骤:
10、s3.1、初始化待进入交叉口车辆表input_car,初始化当前未离开交叉口车辆car_now,令ca r_now=input_car;按s2生成调度编码序列encode并解码成调度变迁序列decode;将encod e和decode已经判断完成的分别放进encode_finish和decode_finish中;用mark_save存放变迁引发之后的标识;
11、s3.2、设置i=0,如果i<调度序列长度,进行s3.8,否则进行s3.14;
12、s3.3、记录判断位置judge=i;
13、s3.4、找出car_now中排在当前车辆encode[judge]前方的车辆pre_car;
14、s3.5、通过调度编码序列判断是否满足同车道车辆先后顺序;
15、s3.5.1、判断encode[judge]是否为pre_car中第一辆,若是进行s3.7,否则进行s3.5.2;
16、s3.5.2、pre_car在encode_finish出现的次数记为pre_num,encode[judge]在encode_finish出现的次数记为now_num,如果pre_num≥now_num+1,进行s3.7,否则进行s3.6;
17、s3.6、judge=judge+1,进行s3.3;
18、s3.7、判断decode[judge]是否能在标识mark_save[judge]下引发,能引发进行s3.8,否则进行s3.6;
19、s3.8、判断不同车道之前的车辆是否会产生死锁;
20、s3.8.1、判断decode[judge]是否为encode[judge]的最后一个变迁,若是进行s3.7,否则进行s3.8.2;
21、s3.8.2、用r表示decode[judge]的前置资源库所,在标识mark_save[judge]下引发变迁decod e[judge]得到新的标识ms,t1为在标识ms下能让资源库所r增加的变迁集合,集合t2、t3初始化为
22、s3.8.3、判断集合t1和t2中是否有不重复集合,若有进行s3.8.4,否则输出检测到死锁,进行s3.6;
23、s3.8.4、取出t1和t2不重复集合中一个t,判断t否为encode[judge]的最后一个变迁,若是输出不会产生死锁,否则进行s3.8.5;
24、s3.8.5、用r表示t的前置资源库所,判断标识ms中r中的托肯数量是否为1,若是为1输出不会产生死锁,否则进行s3.8.6;
25、s3.8.6、t3存放在标识ms下能让资源库所r增加的变迁集合,将t3中与t1不重复的变迁添加进t1中,进行s3.8.3;
26、s3.9、判断judge是否等于i,若是进行s3.11,否则进行s3.10;
27、s3.10、将encode和decode中judge位置元素移动到i位置前面来;
28、s3.11、判断当前车辆encode[judge]是否离开交叉口,若是进行s3.12,否则进行s3.13;
29、s3.12、从car_now中删除当前车辆encode[judge];
30、s3.13、将标识ms添加进mark_save,将encode[i]和encode[i]分别添加进encode_finish和decode_finish中,令i=i+1,进行s3.2;
31、s3.14、输出encode_finish和decode_finish。
32、本专利技术所述的一种无信号交叉口考虑车辆多种行驶方向的死锁避免方法,采用以上技术方案与现有技术相比,具有以下技术效果:
33、(1)本专利技术通过对车辆进行编码和解码,实现了每一辆车通行交叉口的具体顺序和车辆本文档来自技高网...
【技术保护点】
1.一种无信号交叉口考虑车辆多种行驶方向的死锁避免方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种无信号交叉口考虑车辆多种行驶方向的死锁避免方法,其特征在于,S1中:将交叉口空间划分为c_num个路权点,左转、直行和右转路径上的路权点数量分别为num_L,num_S,num_R;Pis、Pif表示第i号车道车辆的等待区域和离开区域;PiLa、PiRb、PiLc,其中1≤a≤num_L,1≤b≤num_S,1≤c≤num_R,分别表示第i号车道车辆左转、直行、右转车辆行驶到对应路径上的路权点位置;TiLe、TiSf、TiRg,其中1≤e≤num_L+1,1≤f≤num_S+1,1≤g≤num_R+1,分别表示第i号车道车辆左转、直行、右转车辆行驶在对应路径上的车辆动作。
3.根据权利要求2所述的一种无信号交叉口考虑车辆多种行驶方向的死锁避免方法,其特征在于,S2中:车辆编码由“车道号.行驶方向.位次”组成;车道号为当前车辆所在车道标号,行驶方向包括左转、直行、右转分别用“1”,“2”,“3”表示,位次为当前车辆在所在车道的顺序;调度编码序列由车
4.根据权利要求3所述的一种无信号交叉口考虑车辆多种行驶方向的死锁避免方法,其特征在于,S3包括以下步骤:
...【技术特征摘要】
1.一种无信号交叉口考虑车辆多种行驶方向的死锁避免方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种无信号交叉口考虑车辆多种行驶方向的死锁避免方法,其特征在于,s1中:将交叉口空间划分为c_num个路权点,左转、直行和右转路径上的路权点数量分别为num_l,num_s,num_r;pis、pif表示第i号车道车辆的等待区域和离开区域;pila、pirb、pilc,其中1≤a≤num_l,1≤b≤num_s,1≤c≤num_r,分别表示第i号车道车辆左转、直行、右转车辆行驶到对应路径上的路权点位置;tile、tisf、tirg,其中1≤e≤num_l+1,1≤f≤num_s+1,...
【专利技术属性】
技术研发人员:刘慧霞,黄程,曹猛,缪姝琪,沈佳辉,薛志豪,尹小娟,蒋田斌,
申请(专利权)人:南通大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。