概述#
驾驶员状态提供了一种通用机制,用于在跟驰和换道模型中引入不完美性。虽然错误可能在驾驶过程的多个阶段进入 [见图 1],但 SUMO 仅在感知阶段应用错误,详情请参见 下文。

图 1:驾驶过程中的错误。
实际上,错误是被添加到跟驰模型的输入量(即间距和速度差)中的。若要在 贡献的跟驰模型 中进行集成,可以采用 标准模型中的实现(参见 MSCFModel_Krauss::stopSpeed() 和 MSCFModel_Krauss::followSpeed())。目前(SUMO 1.8.0),该功能仅针对标准 Krauss 和 IDM 模型实现。
为车辆配备驾驶员状态#
要对车辆应用不完美驾驶功能,需为其配备驾驶员状态设备 (Driver State Device),参见 设备配置程序描述(并使用 <device name>=driverstate)。为车辆配备驾驶员状态所需的最小定义形式如下:
<routes>
...
<vehicle id="v0" route="route0" depart="0">
<param key="has.driverstate.device" value="true"/>
</vehicle>
....
</routes>
在这种情况下,驾驶员状态的所有参数(见下文)均设置为其默认值。下表列出了驾驶员状态设备所有可能的参数。每个参数必须作为相应需求定义元素(例如 <vehicle ... />、<vType ... /> 或 <flow ... />)的子元素以 <param key=<PARAMETER NAME> value=<PARAMETER VALUE> 的形式指定。关于错误动态的详细信息,请参见 感知错误建模。
| 参数 (Parameter) | 类型 | 默认值 (Default) | 描述 (Description) |
|---|---|---|---|
| initialAwareness | float | 1.0 | 分配给驾驶员状态的初始感知度 (awareness)。 |
| errorTimeScaleCoefficient | float | 100.0 | 时间尺度常数,控制底层错误过程的时间尺度。 |
| errorNoiseIntensityCoefficient | float | 0.2 | 噪声强度常数,控制底层错误过程的噪声强度。 |
| speedDifferenceErrorCoefficient | float | 0.15 | 用于缩放应用于跟驰模型速度差输入的误差的系数。 |
| headwayErrorCoefficient | float | 0.75 | 用于缩放应用于跟驰模型距离输入的误差的系数。 |
| freeSpeedErrorCoefficient | float | 0.0 | 用于缩放应用于自由行驶速度的误差的系数。 |
| speedDifferenceChangePerceptionThreshold | float | 0.1 | 控制速度差变化感知阈值的常数。 |
| headwayChangePerceptionThreshold | float | 0.1 | 控制距离输入变化感知阈值的常数。 |
| minAwareness | float | 0.1 | 驾驶员感知度的最小值(这是一个技术参数,用于避免 1/minAwareness 项的爆炸式增长)。 |
| maximalReactionTime | float (s) | 原始动作步长 (original action step length) | 在最小感知度时驾驶员达到的 actionStepLength 值。actionStepLength 在该值与原始值之间随感知度(在 minAwareness 和 1.0 之间)线性缩放。 |
支持的跟驰模型 (carFollowModels)#
以下模型支持驾驶员状态设备:
- Krauss
- IDM
- CACC
感知错误建模#
一个底层的 奥恩斯坦-乌伦贝克 (Ornstein-Uhlenbeck) 过程驱动着应用于跟驰模型感知输入的误差。该过程的特征时间尺度和驱动噪声强度由驾驶员状态感知度决定,感知度旨在作为交通状况与驾驶员状态动态之间的接口。我们有:
errorTimeScale = errorTimeScaleCoefficient*awareness(t)errorNoiseIntensity = errorNoiseIntensityCoefficient*(1.-awareness(t))
时间 t 时的误差状态 error(t) 经过缩放并添加到跟驰模型的输入参数中,如下所示:
perceivedSpeedDifference = trueSpeedDifference + speedDifferenceError(t),其中speedDifferenceError(t) = speedDifferenceErrorCoefficient*headway(t)*error(t)perceivedHeadway = trueHeadway + headwayError(t),其中headwayError(t) = headwayErrorCoefficient*headway(t)*error(t)
请注意,误差过程的状态 error(t) 并不直接随感知度缩放,感知度仅通过影响过程参数间接控制误差。此外,感知误差的规模被假定为随与感知对象的距离线性增长。
最后,只有当感知值的变化达到足够程度时,驾驶员状态才会引起跟驰模型输入的更新。更新跟驰输入的条件是:
- 间距:
|perceivedHeadway - expectedHeadway| > headwayChangePerceptionThreshold*trueGap*(1.0-awareness) - 速度差:
|perceivedSpeedDifference - expectedSpeedDifference| > speedDifferenceChangePerceptionThreshold*trueGap*(1.0-awareness)
其中,预期量为:
expectedHeadway = lastRecognizedHeadway - expectedSpeedDifference*elapsedTimeSinceLastRecognitionexpectedSpeedDifference = lastRecognizedSpeedDifference
出版物#
参见 TransAID 项目报告 混合交通中车辆自动化与自动驾驶车辆驾驶员行为的建模、仿真与评估 中的章节 2.3.1.3 Modelling of a Decreased Post-ToC Driver Performance。
