3. 换道模型:Mobil模型,LC2013模型,换道决策与执行逻辑
换道模型,说白了就是模拟司机「什么时候想换、怎么换、换了之后会怎样」的一套规则。我做了这么多年仿真,发现很多新手容易把换道想得太简单——以为就是打个灯、转个方向盘就完事了。其实不然,换道决策背后是一整套博弈逻辑。
今天咱们重点聊两个经典模型:Mobil 和 LC2013。前者是「利己主义」的代表,后者则更「社会性」一些。嗯,咱们一个一个来看。
3.1 Mobil模型:利己主义的换道逻辑
Mobil 的全称是 Minimizing Overall Braking Induced by Lane changes,翻译过来就是「最小化换道引起的整体制动」。名字挺长,但核心思想很简单:我换道,不能让别人踩急刹车。
我个人习惯把 Mobil 拆成两个部分来看:
- 激励准则:判断换道对我自己有没有好处
- 安全准则:判断换道会不会对别人造成太大影响
3.1.1 激励准则
说白了就是算一笔账:换道之后,我的加速度能提高多少?
公式长这样:
a_new - a_old + p * (a_new_follow - a_old_follow) > a_threshold
其中:
a_new:换道后我的加速度a_old:换道前我的加速度a_new_follow:换道后目标车道后车的加速度a_old_follow:换道前原车道后车的加速度p:礼貌因子(0~1),p=0 就是纯自私,p=1 就是完全利他a_threshold:换道阈值,一般取 0.1~0.2 m/s²
关键点:Mobil 的「利己」体现在它首先考虑自己的收益,但通过 p 因子引入了对后车的「礼貌」。我在项目中遇到过把 p 设成 0 的情况,结果仿真里车辆疯狂换道,后车频繁急刹——那画面简直没法看。
3.1.2 安全准则
安全准则更简单:换道后,目标车道后车的减速度不能超过一个安全阈值。
a_new_follow > -b_safe
b_safe 一般取 2~4 m/s²。我曾经见过一个项目,把 b_safe 设成 6 m/s²,结果换道时后车经常被逼到急刹——仿真里看着都心疼。
我的建议:实际项目中,b_safe 取 3 m/s² 比较稳妥。既不会太保守导致换道率过低,也不会太激进引发危险。
3.2 LC2013模型:更「社会」的换道逻辑
LC2013 是 2013 年提出来的,全称我记不太清了,但它的核心思想我一直记得:换道不是一个人的事,要考虑整个交通流的稳定性。
LC2013 把换道决策分成了三层:
- 战略层:要不要换?比如前方有障碍、要转弯、或者单纯想开快点
- 战术层:能不能换?看间隙、看速度、看后车反应
- 执行层:怎么换?打灯、转向、加速/减速
3.2.1 战略层:换道意图
LC2013 把换道意图分为两类:
- 强制换道:不得不换,比如车道封闭、前方事故、要下匝道
- 自由换道:可换可不换,比如当前车道太慢,想换个快车道
强制换道的优先级远高于自由换道。我在做高速合流区仿真时,经常看到车辆在最后 200 米才开始强制换道——那场景,跟现实中的「加塞」一模一样。
3.2.2 战术层:间隙接受
LC2013 用的是 最小安全间隙 模型。说白了就是:目标车道前后车之间的距离够不够我插进去?
公式:
Gap_required = v_ego * t_headway + margin
其中:
v_ego:自车速度t_headway:期望时距,一般取 1.5~2.5 秒margin:安全余量,一般取 2~5 米
注意:LC2013 的间隙接受不是「非黑即白」的。它会根据后车的速度动态调整——如果后车在减速,那间隙小一点也能接受;如果后车在加速,那就要留更大空间。这个细节,很多实现都忽略了。
3.2.3 执行层:换道轨迹
LC2013 用的是 正弦曲线 来模拟换道轨迹。为什么用正弦?因为它的加速度变化是连续的,不会出现「突然打方向」的突兀感。
轨迹公式:
y(t) = (lane_width / 2) * sin(π * t / T_duration)
其中:
lane_width:车道宽度,一般 3.5 米T_duration:换道持续时间,一般 3~6 秒
避坑指南:我曾经把 T_duration 设成 2 秒,结果车辆换道像「瞬移」一样——仿真里看着特别假。后来我改成 4 秒,效果就好多了。你想想看,现实中谁会在 2 秒内完成一次换道?除非是赛车手。
3.3 换道决策与执行逻辑:完整流程
好了,两个模型都聊完了。咱们把整个换道流程串起来看看:
- 感知:获取自车速度、位置,以及周围车辆的状态
- 意图判断:是强制换道还是自由换道?
- 目标车道选择:左车道还是右车道?一般选收益最大的
- 间隙检查:目标车道的间隙够不够?用 Mobil 或 LC2013 的安全准则
- 激励检查:换道对我有没有好处?用 Mobil 的激励准则
- 执行:打灯、转向、调整速度
- 完成:回到跟驰模型
下面这张图是我自己画的,把整个流程串起来了:
3.4 两个模型的对比
最后,咱们用一张表来对比一下 Mobil 和 LC2013:
| 对比项 | Mobil | LC2013 |
|---|---|---|
| 核心思想 | 利己 + 礼貌 | 社会性 + 稳定性 |
| 决策层次 | 单层(激励+安全) | 三层(战略+战术+执行) |
| 换道轨迹 | 无(瞬间换道) | 正弦曲线 |
| 计算复杂度 | 低 | 中 |
| 适用场景 | 高速公路、简单路网 | 城市道路、复杂交互 |
| 参数调优难度 | 低(只有 p 和 b_safe) | 中(多个阈值) |
我的经验:如果你刚开始做换道模型,我建议先从 Mobil 入手。参数少、逻辑清晰、容易调通。等你对换道行为有了感觉,再上 LC2013 也不迟。我在一个城市路网项目中试过直接用 LC2013,结果参数调了整整两周——那叫一个痛苦。
好了,换道模型就聊到这儿。记住一句话:换道不是一个人的事,是博弈。你想想看,现实中你换道时是不是也要看后车让不让?仿真也是一样的道理。
最后一个小技巧:调试换道模型时,别只看换道率。多看看「换道失败后车辆的行为」——是继续等待?还是放弃换道?这个细节往往决定了仿真效果的真实性。
可可精品资料库