混合交通流随机化生成 && 混合交通流车队强度的计算

该代码实现了一个计算车道中混合交通流车队强度的算法。首先,根据CAVs(联网自动车辆)的渗透率建立初始车辆列表。接着,对列表进行随机化处理。最后,通过遍历车辆列表并应用不同跟车模式的时距系数计算车排强度,从而推算平均车头时距。
摘要由CSDN通过智能技术生成

        计算车道中混合交通流的车队强度,首先我们分为三步走:第一步,建立初始交通流列表;第二步,随机化;第三步,计算车队强度。其中车队强度越高,车流的平均车头时距(headway)越小,更有利于交通。直接上代码:

import random
# 第一步,首先按照CAVs的渗透率来建立初始车辆列表
car_num = 10    # 输入1:车辆数量
cav_Per = 0.50  # 输入2:CAVs渗透率
CAVs_num = int(car_num*cav_Per)  # 联网自动车辆的数量
HDVs_num = car_num - CAVs_num    # 人工驾驶车辆的数量

flow_list1 = []  # 车道1的混合交通流
for i in range(car_num):
    if i < HDVs_num:
        flow_list1.append(0)
    else:
        flow_list1.append(1)
print(flow_list1)  # 先生成一个未打乱的混合交通流


# 第二步,随机化
mixed_flow_list1 = flow_list1.copy()  # 创建数组副本
random.shuffle(mixed_flow_list1)  # 考虑随机化的车排长度
print(mixed_flow_list1)


# 第三步:计算车排强度(这里也是my paper中的一个公式)
p_str = 0   # 初始车排强度
T_CC = 0.9  # 三种跟车模式,分别是cav跟随cav、cav跟随hdv、hdv跟随车辆
T_CH = 1.2
T_HH = 1.5

for i in range(0, len(mixed_flow_list1)):
    # 遍历车辆数
    if i == len(mixed_flow_list1)-1:
        # 如果是第一辆车
        if mixed_flow_list1[i] == 1:
            p_str = p_str + mixed_flow_list1[i]*T_CC
        else:
            p_str = p_str + mixed_flow_list1[i] * T_HH
    else:
        # case1:后车为hdv
        if mixed_flow_list1[i] == 0:
            p_str = p_str + mixed_flow_list1[i]*T_HH
        # case2:cav跟随cav
        elif mixed_flow_list1[i] + mixed_flow_list1[i+1] == 2:
            p_str = p_str + mixed_flow_list1[i] * T_CC
        # case3:cav跟随hdv
        elif mixed_flow_list1[i] == 1 and mixed_flow_list1[i+1] == 0:
            p_str = p_str + mixed_flow_list1[i] * T_CH

# 该车道车辆的车排强度。车排强度越大,车道中的平均车头时距越小
S_platoon = round(len(mixed_flow_list1)/p_str, 2)

print(S_platoon)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值