2. 跟驰模型(上)

各位同学,今天我们来聊聊跟驰模型。说实话,这是交通仿真里最基础也最核心的一块。你想想看,路上那么多车,一辆跟着一辆,它们之间到底是怎么互动的?这就是跟驰模型要回答的问题。

我个人习惯把跟驰模型分成两大类:一类是刺激-反应型的,另一类是安全距离型的。今天我们先讲前者,也就是经典的GM模型和它背后的框架。

2.1 刺激-反应框架:核心逻辑

这个框架的逻辑其实特别简单。说白了,就是一句话:后车司机的反应,取决于他受到的刺激。

公式长这样:

反应(t) = 灵敏度 × 刺激(t-τ)

这里的τ是反应时间。嗯,这里要注意,反应时间不是固定的。我在项目中遇到过,不同司机的反应时间能差出0.5秒到2秒。做仿真时如果全设成一样的,结果会很不靠谱。

那刺激是什么?通常就是前后车的速度差。你想想看,前车刹车了,你看到尾灯亮起,这就是刺激。你踩刹车,这就是反应。

2.2 GM模型:经典中的经典

GM模型,全称是General Motors模型。上世纪50年代,通用汽车的研究人员搞出来的。别看它老,现在很多商业软件还在用它的变体。

它的公式长这样:

a_n(t) = c × [v_n(t)]^m × Δv(t-τ) / [Δx(t-τ)]^l

看着有点复杂是吧?我来拆解一下:

  • a_n(t):第n辆车的加速度
  • c:灵敏度系数
  • v_n(t):后车当前速度
  • Δv:前后车速度差
  • Δx:前后车间距
  • m, l:模型参数

这里有个关键点:m和l的取值决定了模型的行为。我记得有一次做项目,默认设了m=0, l=1,结果仿真出来的车流跟实际数据对不上。后来调成m=1, l=2,效果就好多了。

经验值参考:

场景 m值 l值
高速公路自由流 0 1
城市道路拥堵 1 2
匝道合流区 0.5 1.5

2.3 安全距离模型:另一种思路

跟刺激-反应框架不同,安全距离模型想的是:我到底要跟前车保持多远,才安全?

最经典的是Gipps模型。它的核心思想是:后车司机会选择一个速度,使得即使前车突然急刹,自己也能安全停下。

公式我就不列了,咱们直接看逻辑:

  1. 后车当前速度决定了它的刹车距离
  2. 前车当前速度决定了它的刹车距离
  3. 两者之差,就是安全跟车距离

避坑指南:我曾经在仿真里直接用Gipps模型,结果发现车辆在低速时跟车距离太小。后来加了最小安全距离约束(比如3米),问题就解决了。做仿真时,别忘了加这个下限。

2.4 两种模型的对比

说实话,没有哪个模型是万能的。我个人的经验是:

  • GM模型:适合宏观趋势分析,参数调好了能复现交通波
  • 安全距离模型:适合微观行为模拟,尤其是紧急场景

你想想看,如果做自动驾驶仿真,安全距离模型更靠谱。但如果做交通流宏观分析,GM模型反而更灵活。

2.5 本章知识体系

下面这张图,是我自己总结的跟驰模型知识框架。你看一眼,就能明白今天讲的内容在整个体系里的位置。

跟驰模型知识体系 刺激-反应框架 安全距离框架 GM模型(通用汽车模型) Gipps模型 灵敏度系数 c 速度指数 m, l 反应时间 τ 速度差 Δv 安全距离阈值 刹车能力 最小 间距 选择哪种模型?看你的仿真场景和目标

重要提醒:无论用哪种模型,参数标定都是最耗时的环节。我建议你准备一套真实数据,用最小二乘法或遗传算法来标定。别凭感觉设参数,那会出大问题。