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 把换道决策分成了三层:

  1. 战略层:要不要换?比如前方有障碍、要转弯、或者单纯想开快点
  2. 战术层:能不能换?看间隙、看速度、看后车反应
  3. 执行层:怎么换?打灯、转向、加速/减速

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 换道决策与执行逻辑:完整流程

好了,两个模型都聊完了。咱们把整个换道流程串起来看看:

  1. 感知:获取自车速度、位置,以及周围车辆的状态
  2. 意图判断:是强制换道还是自由换道?
  3. 目标车道选择:左车道还是右车道?一般选收益最大的
  4. 间隙检查:目标车道的间隙够不够?用 Mobil 或 LC2013 的安全准则
  5. 激励检查:换道对我有没有好处?用 Mobil 的激励准则
  6. 执行:打灯、转向、调整速度
  7. 完成:回到跟驰模型

下面这张图是我自己画的,把整个流程串起来了:

换道决策与执行逻辑流程图 感知周围车辆状态 判断换道意图 选择目标车道 间隙足够? 是 否 执行换道 回到跟驰模型

3.4 两个模型的对比

最后,咱们用一张表来对比一下 Mobil 和 LC2013:

对比项 Mobil LC2013
核心思想 利己 + 礼貌 社会性 + 稳定性
决策层次 单层(激励+安全) 三层(战略+战术+执行)
换道轨迹 无(瞬间换道) 正弦曲线
计算复杂度 低 中
适用场景 高速公路、简单路网 城市道路、复杂交互
参数调优难度 低(只有 p 和 b_safe) 中(多个阈值)

我的经验:如果你刚开始做换道模型,我建议先从 Mobil 入手。参数少、逻辑清晰、容易调通。等你对换道行为有了感觉,再上 LC2013 也不迟。我在一个城市路网项目中试过直接用 LC2013,结果参数调了整整两周——那叫一个痛苦。

好了,换道模型就聊到这儿。记住一句话:换道不是一个人的事,是博弈。你想想看,现实中你换道时是不是也要看后车让不让?仿真也是一样的道理。

最后一个小技巧:调试换道模型时,别只看换道率。多看看「换道失败后车辆的行为」——是继续等待?还是放弃换道?这个细节往往决定了仿真效果的真实性。

可可精品资料库