跟驰模型 (Car-Following Models)#
本概述页面收集了关于 sumo 中跟驰模型的信息。这仍是一个存根,需要扩展。
链接 (Links)#
模型参数 (Model Parameters)#
大多数跟驰模型都有自己的参数集。因为某些模型有共同的起源,所以它们共享一些参数。这些参数如下所述。
反应时间 (Reaction time)#
默认情况下,驾驶员可以在每个仿真步长对周围环境做出反应(即通过改变速度或变道)。因此,他们的反应时间等于 sumo 选项 --step-length 设置的值(默认为 1s)。要改变决策频率从而延迟反应,可以设置参数 actionStepLength。
actionStepLength#
此参数用于将仿真步长(选项 --step-length)与驾驶员决策频率解耦。可以在 <vType> 定义中将其设置为属性 actionStepLength,或者使用选项 --default.action-step-length <FLOAT> 为所有 vType 设置默认值。
默认情况下,动作步长等于仿真步长,这对于默认的 1s 步长效果很好。当通过设置较小的步长值进行亚秒级仿真时,保持较高的动作步长可能很有用,以便模拟反应时间,并减少计算需求从而加快仿真速度。
Note
动作步长的工作方式类似于反应时间(车辆不会立即对环境变化做出反应),但它也与“真实”反应时间不同,因为每当车辆执行动作步时,它会对前一个仿真步的状态做出反应,而不是对在其前一个动作步中看到的状态做出反应。因此,感知-反应循环的频率较低,但仍然与仿真步长一样快。
tau#
此参数旨在模拟驾驶员期望的最小时间间隔(以秒为单位)。所有模型都使用此参数。驾驶员试图在前车的后保险杠与其自身(前保险杠 + minGap)之间保持 tau 的最小时间间隙,以确保在前车开始制动时能够及时刹车。
关于期望(最小)时间间隔,minGap 的使用因模型而异。例如,Krauss 模型选择的速度确保始终可以保持 minGap,而其他模型可能不会这样做。
如上文所述,反应时间由仿真步长和 actionStepLength 参数定义。从根本上受仿真步长(sumo 选项 --step-length <FLOAT>)的限制。
通过将 tau 设置为高于反应时间的值,可以提高驾驶安全性,因为车辆将使用较大的间隙并有足够的时间做出反应。相反,将 tau 设置为低于反应时间的值会导致不安全的驾驶。在仿真中,这可能表现为高减速度甚至碰撞。
decel, apparentDecel, emergencyDecel#
默认情况下,carFollowModels 会调整其行驶速度,以将必要的制动限制在 decel 属性配置的最大值。对于默认的 Krauss 模型,这是一个硬性限制,而对于其他模型(如 IDM),减速度限制则不那么严格。乘用车的默认减速度值为 4.5(单位为 m/s^2),其他车辆类别有不同的默认值。
每个仿真步的“安全”速度由配置的 carFollowModel 根据前车以及通行权规则计算。为了确保在各种情况下的安全驾驶,还会考虑前车的最大制动能力。该值取自前车的 apparentDecel 属性(默认与其 decel 属性值相同)。
如果出于某种原因,达到安全速度需要的制动超过了期望的减速度,车辆可能会这样做,直到达到属性 emergencyDecel 配置的硬性限制。乘用车的默认紧急减速度为 9,其他车辆类别有不同的默认值。全局默认值可以通过选项 --default.emergencydecel 更改。
如果制动强度超过由 ----emergencydecel.warning-threshold 配置的阈值,将触发紧急制动警告。默认情况下,此阈值设置为 1,当使用 emergencyDecel 的 100% 进行制动时会触发警告。通过将阈值设置为大于 1 的值可以禁用警告。
