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模型。它的核心思想是:后车司机会选择一个速度,使得即使前车突然急刹,自己也能安全停下。
公式我就不列了,咱们直接看逻辑:
- 后车当前速度决定了它的刹车距离
- 前车当前速度决定了它的刹车距离
- 两者之差,就是安全跟车距离
避坑指南:我曾经在仿真里直接用Gipps模型,结果发现车辆在低速时跟车距离太小。后来加了最小安全距离约束(比如3米),问题就解决了。做仿真时,别忘了加这个下限。
2.4 两种模型的对比
说实话,没有哪个模型是万能的。我个人的经验是:
- GM模型:适合宏观趋势分析,参数调好了能复现交通波
- 安全距离模型:适合微观行为模拟,尤其是紧急场景
你想想看,如果做自动驾驶仿真,安全距离模型更靠谱。但如果做交通流宏观分析,GM模型反而更灵活。
2.5 本章知识体系
下面这张图,是我自己总结的跟驰模型知识框架。你看一眼,就能明白今天讲的内容在整个体系里的位置。
重要提醒:无论用哪种模型,参数标定都是最耗时的环节。我建议你准备一套真实数据,用最小二乘法或遗传算法来标定。别凭感觉设参数,那会出大问题。