复杂场景下交通流生成方法实战 - 第2节
一、交通流三参数:流量、密度、速度
做交通仿真这么多年,我越来越觉得,搞懂这三个参数,就像厨师搞懂油盐酱醋一样基础。流量、密度、速度,说白了就是描述交通状态的三个核心指标。你想想看,一条路上车多不多、跑得快不快、单位时间能过多少车,全看它们。
1.1 流量(Flow)
流量,就是单位时间内通过某断面的车辆数。单位是 veh/h 或 veh/s。
我习惯用这个公式:
q = n / t
其中 q 是流量,n 是车辆数,t 是时间。
举个例子:我在做某城市快速路仿真时,发现早高峰流量能到 1800 veh/h/lane。嗯,这个数字基本就是一条车道的极限了。
关键点:流量不是越大越好。超过某个阈值,速度就会暴跌,流量反而下降。这就是所谓的“拥堵流”现象。
1.2 密度(Density)
密度,就是单位长度路段上的车辆数。单位是 veh/km。
k = n / L
k 是密度,n 是车辆数,L 是路段长度。
我曾经在一条 2 公里长的隧道里做过实测,密度最高能到 120 veh/km/lane。那场景,基本就是车头贴车尾。
小技巧:密度可以用占有率(occupancy)来近似。很多检测器不给密度,但给占有率。两者基本线性相关。
1.3 速度(Speed)
速度分两种:时间平均速度和空间平均速度。
- 时间平均速度:固定点测速,取算术平均。我一般用这个做宏观分析。
- 空间平均速度:一段路的总距离除以总时间。这个更准,但数据难拿。
公式很简单:
v = d / t
v 是速度,d 是距离,t 是时间。
1.4 三参数关系:基本图
这三个参数不是孤立的。它们之间有个经典关系,叫“基本图”(Fundamental Diagram)。
我直接画了个 SVG 图,你看一眼就明白了:
你看这个图:
- 流量-密度曲线像个抛物线。密度低时流量小,密度适中时流量最大,密度再高流量反而下降。
- 速度-密度曲线是下降的。密度越大,速度越慢。
注意:基本图是理想化的。实际数据点会散得很开,尤其是拥堵区域。我见过不少新手拿理想曲线去拟合实测数据,结果误差大得离谱。
二、跟驰模型(Car-Following Model)
跟驰模型,说白了就是描述“后车怎么跟着前车跑”的数学模型。你想想看,开车时你是不是会保持一个安全距离?前车刹车你也刹车?这就是跟驰行为。
2.1 经典模型:GM 模型
GM 模型(General Motors Model)是最早的跟驰模型之一。公式长这样:
a_n(t+T) = α * [v_n(t)]^m / [Δx(t)]^l * Δv(t)
其中:
- a_n 是后车加速度
- v_n 是后车速度
- Δx 是车头间距
- Δv 是速度差
- α, m, l 是参数
我刚开始做仿真时,用的就是 GM 模型。说实话,参数调起来挺头疼的。m 和 l 取不同值,模型行为差很多。
我的经验:m 取 0、l 取 1 时,模型最稳定。这是很多教材推荐的默认值。
2.2 智能驾驶员模型(IDM)
IDM 是目前最常用的跟驰模型之一。我个人非常喜欢它,因为参数物理意义明确。
a = a_max * [1 - (v/v0)^δ - (s*(v,Δv)/s)^2]
其中:
- a_max 是最大加速度
- v0 是期望速度
- δ 是加速度指数
- s* 是期望间距
- s 是实际间距
我曾经用 IDM 做过一个高速公路合流区的仿真。参数标定后,模型能很好地复现实测的跟驰行为。尤其是拥堵时段的 stop-and-go 现象,IDM 模拟得特别真实。
核心参数:期望时间间隔 T(通常 1.0-1.5 秒)、最小间距 s0(通常 2-5 米)、最大加速度 a_max(通常 1.0-2.0 m/s²)。
三、换道模型(Lane-Changing Model)
换道模型比跟驰模型复杂得多。为什么?因为换道涉及决策——要不要换、往哪换、什么时候换。这不像跟驰,前车动你就动。
3.1 换道动机
换道分两种:
- 强制换道:不得不换。比如匝道入口的车必须并入主路。
- 自由换道:想换就换。比如嫌前车太慢,换个车道超车。
我做过一个项目,分析某城市快速路的换道行为。结果发现,强制换道只占 30%,剩下 70% 都是自由换道。这说明什么?说明大部分司机其实是在“找快车道”。
3.2 经典模型:MOBIL 模型
MOBIL 模型是目前最流行的换道决策模型。它的核心思想很简单:
换道条件:a'_c - a_c > Δa_th
其中:
- a_c 是当前车道的加速度
- a'_c 是目标车道的加速度
- Δa_th 是换道阈值
说白了,就是换过去后你能跑得更快,而且不能太影响后车。
避坑指南:我曾经把 Δa_th 设得太小(0.1 m/s²),结果仿真里车辆频繁换道,像得了多动症。后来调到 0.3-0.5 m/s²,行为才正常。
3.3 安全间隙
换道还有个硬约束——安全间隙。目标车道上必须有足够的空间让你插进去。
我一般用这个公式判断:
gap > v * T + s0
gap 是目标车道上的间隙,v 是自车速度,T 是期望时间间隔,s0 是最小间距。
小技巧:实际仿真中,安全间隙可以加个随机项。因为不是所有司机都那么保守。有些人就是敢在很小的间隙里硬挤。
四、三参数与跟驰/换道的关系
你可能会问:这三部分内容有啥关系?
关系大了去了。
- 跟驰模型决定了微观层面的速度-密度关系。每个司机怎么跟车,最终决定了宏观的流量-密度曲线。
- 换道模型影响了车道间的流量分配。换道频繁,车道利用率高,但也会引发扰动。
- 三参数是宏观表现,跟驰和换道是微观机制。
我举个例子:你在仿真里把跟驰模型的期望时间间隔设成 0.5 秒,你会发现流量-密度曲线的峰值会右移——因为车跟得更紧了,密度更高时流量才达到最大。但这样安全吗?不安全的。所以参数设置要权衡。
一句话总结:三参数是“是什么”,跟驰和换道是“为什么”。搞懂后者,你才能精准控制前者。
好了,这一章的内容就这些。下一章我们会深入讲跟驰模型的参数标定方法,到时候我会拿实际项目数据来演示。