跟车模型(Car-Following-Models)
大多数跟车模型都有自己的一组参数。因为一些模型有共同的模板,所以它们共享一些参数。这些在下面描述:
●反应时间(Reaction time)
默认情况下,驾驶员可能会在每个模拟步骤对周围环境做出反应(即通过改变速度或改变车道。因此,反应时间等于step-length设置的值(默认为1s)。
为了改变决策频率从而延迟反应,可以设置参数actionStepLength。
●动作步长(action-Steplength)
此参数用于将模拟步长(step-length)与驾驶员决策频率分离。它可以在车流文件(XML)中定义,
默认:动作步长等于模拟步长,这适用于默认步长1s
●反应时间(tau)
此参数旨在模拟驾驶员所需的最小时间间隔(以秒为单位)。它被所有模型使用。驾驶员试图在他们的领导者的后保险杠和他们自己的后保险杠之间保持最小的 tau 时间间隔(前保险杠 + minGap),以确保在他们的领导者开始制动时及时制动的可能性。相对于所需(最小)时间进展,minGap 的使用因模型而异。即,克劳斯模型选择的速度可以确保始终可以维护 minGap,而其他模型可能无法做到这一点。
如上所述,反应时间由模拟步长和actionStepLength参数定义。基本上受到模拟步长(相扑选项--step-length
通过设置高于反应时间的 tau 值,可以提高驾驶安全性,因为车辆将使用较大的间隙并有足够的时间做出反应。相反,将 tau 值设置为低于反应时间会导致不安全驾驶。在模拟中,这可能表现为高减速甚至碰撞。
SUMO网络有两种表示:
① 描述网络拓扑和几何结构的 纯xml文件
② 加载到模拟中的.net.xml文件。这包含许多生成的信息,例如交叉口的结构 和 通行权逻辑。
重新路由(Rerouter)
总而言之:一旦车辆移动到指定的边缘,Rerouter就会改变车辆的路线。
1、在某一个时间间隔内,关闭一段路 (Edge)
2、在某一段时间间隔内,关闭一条车道(Lane)
其中包括可逆车道:
3、分配新目的地
“dest_prob_reroute”强制重路由器为 通过重路由器声明的边属性中定义的边之一的车辆 分配新的路线。
使用新的路由目的地,由相应元素中的新目的地名称定义:
●默认的跟车模型(Car-following-model)
●默认的变道模型(Lane-changed-model)
●如何插入具有固定密度的车辆??
●车辆停止,设定:
输出Edge/Lane的相关信息:
输出参数:
(1) sampledSeconds:在测量间隔内(step)中,每秒出现在车道上的车辆数量。 (如果车辆enter/leave 边或车道,可能是亚秒级subseconds)
(2) traveltime:通过edge/lane所需要的时间,单位秒。这只是基于平均速度的估计,而非车辆所需的确切时间。基于vehicle车头通过edge所需的时间。
(3) overlapTraveltime:与(2)相似,并非确切时间。完全通过edge/lane所需的时间。该值基于vehicle任何部分处于edge的时间。
(4) 密度(density):在edge上的车辆密度,单位:veh/km
(5) 道路密度(laneDensity): 每条lane(在edge上)的车辆密度,单位:veh/km/lane
(6) 占有率(occupancy): 单位——%, 表示edge/lane的占有率
(7) waitingTime(停止总时间):车辆被视为停止的总秒数(速度 < speedThreshold)。 所有车辆停止秒数的总和。
(8) 损失时间(timeLoss): 车辆因行驶速度低于预期而损失的总秒数(所有车辆的总和)
(9) Speed(速度):时间间隔内,edge/lane上的平均速度。注意:这是空间平均速度,而非车辆的时间平均速度。注:慢车在edge花费更多时间,所以它们对平均速度的影响比例更高。
(10) departed(产生):在时间间隔step内,已排放到edge/lane上的车辆数量。
(11) arrived(到达目的地):在edge/lane上完成路线的车辆数量。
(12) entered(流入):在上游进入边缘(edge)/车道(lane)的车辆数量。
(13) left(流出): 通过下游移动离开edge/lane的车辆数量。
(14) laneChangedFrom: 偏离该lane(车道)的车辆数量。
(15) lanechangeTo: 变道到该lane上的车辆数量
SUMO默认变道模型:
1、LC-model的目的
本文所描述的变道模型有两个主要目的:①它根据车辆的路线和车辆周围的当前和历史交通状况,计算单个模拟步骤中车辆的变化决策。②此外,它还计算了车辆本身和阻碍车辆的速度变化,以促进预期变道机动的成功执行。
2、四种变道动机
1) 战略变更
2) 合作变更
3) 战术变更
4) 监管变更
3、架构(Architecture)&&术语
○车辆(Vehicle)指的是真实世界的车辆及其驾驶员的模型(有时也称为车辆-驾驶员单元).
○车辆的速度主要由它前面的下一辆车称为先导车决定
4、变道模型(Lane-changing Models)
总共有三种变道模型:①LC2013(默认变道模型) ②SL2015 ③DK2018
5、变道模型参数(vType):
●lcStrategic:执行战略性变道的渴望。较高的值会导致较早的换道。默认值:1.0,范围 [0-inf)
●lcCooperative:进行合作变道的意愿。较低的值会导致合作减少。默认值:1.0,范围 [0-1]
●lcSpeedGain:渴望进行车道变换以获得速度。较高的值会导致更多的车道变换。默认值:1.0,范围 [0-inf)
●lcKeepRight:渴望遵守正确的义务。较高的值会导致较早的换道。默认值:1.0,范围 [0-inf)
●lcOvertakeRight:违反规则的概率在正确的默认值上获得超车:0,范围 [0-1]
●lcOpposite:对反方向车道超车的渴望。较高的值会导致更多的车道变换。默认值:1.0,范围 [0-inf)
●lcLookaheadLeft:当需要向左更改时(相对于右前瞻)配置战略前瞻距离的因素。默认值:2.0,范围 [0-inf)
●lcSpeedGainRight:为速度增益向左或向右改变时配置阈值不对称的因素。默认情况下,向右改变的决定需要更多的考虑。设置为 1.0 时实现对称。默认值:0.1,范围 [0-inf)
●lcSpeedGainLookahead:以秒为单位的预测减速时间。默认值:0 (LC2013), 5 (SL2015), 范围 [0-inf)
●lcCooperativeRoundabout:增加在多车道环岛中移动到内侧车道的意愿的因素。默认值:lcCooperative,范围 [0-1]
●lcCooperativeSpeed:协作速度调整的因素。默认值:lcCooperative,范围 [0-1]
●minGapLat:使用sublane-model时所需的最小横向间隙,默认值:0.6
●lcSublane:在车道内使用配置的横向对齐的渴望。较高的值会导致为对齐而牺牲速度的意愿增加。默认值:1.0,范围 [0-inf)
●lcPushy:愿意横向侵犯其他司机。默认值:0,范围 [0-1]
●lcPushyGap:横向侵入其他驱动器时的最小横向间隙(定义 lcPushy 的替代方法)。默认值:minGapLat,范围 0 到 minGapLat
●lcAssertive:愿意接受目标车道上较低的前后间隙。所需间隙除以该值。默认值:1,范围:正实数
●lcImpatience:用于修改 lcAssertive 和 lcPushy 的动态因素。默认值:0(无效)范围 -1 到 1。不耐烦起到了乘数的作用。在 -1 处,乘数为 0.5,在 1 处,乘数为 1.5。
●lcTimeToImpatience:达到最大不耐烦的时间(1)。每当车道变换机动被阻止时,不耐烦就会增加。默认值:无穷大(禁用不耐烦增长)
●lcAccelLat:每秒最大横向加速度。默认值:1.0
●lcTurnAlignmentDistance:到车辆路线上即将转弯的距离,低于该距离的路线应动态调整以匹配转弯方向。默认值:0.0(即禁用)
●lcMaxSpeedLatStanding:standing时横向速度的常数项。默认值:maxSpeedLat(即禁用)
●lcMaxSpeedLatFactor:移动时以横向速度为界,计算为 lcMaxSpeedLatStanding + lcMaxSpeedLatFactor * getSpeed()。如果 > 0,这是一个上限(车辆在低速时变化较慢,如果 < 0,这是速度的下限,应与 lcMaxSpeedLatStanding > maxSpeedLat 结合(车辆在低速时变化更快)。 默认值:1.0
●lcMaxDistLatStanding:站立时以m为单位的最大横向机动距离(当前用于防止“滑动”keepRight 更改)。 默认值:两轮车的 1.6 和 0
●lcLaneDiscipline:不愿执行将车辆置于车道边界的速度增益变化。默认值:0.0
●lcSigma:横向定位缺陷。默认值:0.0
SUMO的Traci接口(Python):
1、返回给定边缘上,最后一个时间步长(time step)的车辆id
2、 强制改变车道至给定参数的车道;如果成功,车道将在给定的时间内被选择。
3 、traci重新设置车道新的最大允许速度
4、返回当前加载对象的数量
5、Traci实现自动路由
6、Traci更改车辆状态(命令 0xc4)
Change Vehicle State - SUMO Documentation
车辆停车的设置: setStop()