1. 中观仿真究竟适合解决什么问题
做交通仿真这些年,我接触过不少项目,从单个交叉口的信号优化,到整个片区的路网改造评估,再到城市级的路网运行分析。工具用过几款,但 Aimsun 一直是我项目里的常驻选手,尤其是它的中观仿真模块,在特定场景下几乎是不可替代的。
先说清楚一个概念。交通仿真按模型精度大致分三层:宏观、中观、微观。宏观模型把车流当成流体,用流量、密度、速度来描述路网状态,适合几百平方公里的大区域,但它给不出车道级、信号控制级的细节;微观模型则把每辆车当成独立个体,跟驰、换道、信号响应都逐秒模拟,精度高但计算量大,跑一个稍大的路网就可能卡到怀疑人生;中观仿真夹在两者之间,它不逐车描述驾驶行为,但能描述车辆的移动、排队、路径选择,在一些项目里反而最实用。
Aimsun 的中观仿真(Mesoscopic Simulation)就是这个中间层的典型代表。它把车队当成一个个移动单元,用聚合的方式描述车辆行为,同时保留路网拓扑、信号控制、路径选择的细节。这意味着它既能看大的路网运行状态,又不需要微观模型那样的计算代价。
我第一次真正依赖中观仿真,是在一个城市快速路与地面路网衔接的评估项目里。整个研究范围大概有 60 多平方公里,包含了三条快速路、十几条主干道和大量支路。如果全路网做微观模型,光是建模和标定就能耗掉两三个月,更别说每次仿真跑起来动辄半小时起步。但全部用宏观模型又太粗糙,因为项目核心要评估的是快速路出入口匝道对地面路网的冲击,这个尺度恰恰是宏观模型看不出来、微观模型又“杀鸡用牛刀”的。中观仿真正好卡在这个点上——路网范围够大,但关键节点、关键路段的拥堵演变、排队回溯能看得清楚。
如果你手里的项目满足下面任何一个条件,中观仿真就值得优先考虑:
- 研究范围较大(一般超过 10 平方公里),微观模型跑不动或建模代价太高;
- 需要模拟长时间段(早高峰 2-3 小时甚至全天),微观模型的时间和计算开销不可接受;
- 重点在路网层面的运行评估,比如拥堵演变、路段行程时间、路网容量,而不是单点信号配时的精细优化;
- 需要动态交通分配(DTA),也就是让车辆根据实时路况动态选择路径,而不是用固定 OD 路径表。
反过来说,如果研究范围只是单个交叉口或者一条几百米的短路段,那直接用微观模型更合适——Aimsun 自带的微观仿真模块就够用,没必要引入中观。工具选型这种事,最优解从来不是"功能越精细越好",而是"代价和精度匹配需求"。
2. 核心原理拆解:Aimsun 中观仿真的运行逻辑
2.1 空间离散化:路段与断面的关系
Aimsun 中观仿真的基础是路网拓扑,但它不会像微观仿真那样逐车道去描述车辆位置,而是把路段按一定规则分段,车辆在这些段之间移动。这个"分段"的概念特别关键。
在 Aimsun 中,你可以用一个节点(Node)把一条路段切成两部分,中观仿真里车速、密度的统计都以这些"段"为基本单元。默认情况下,一个路段会被当成一个整体来处理,但如果路段比较长(比如超过 500 米),建议分段,因为车辆在排队回传时,排队尾端的位置需要靠分段来定位。
我习惯的做法是,凡是长度超过 300-400 米的路段,都会在可能的瓶颈点(比如出口匝道位置、交叉口进口道)附近加节点做分段。分段越细,排队回传和拥堵消散的描述越准,但代价是计算时间上升。一般来说,路段分段长度控制在 150-300 米之间是个比较合理的范围。
2.2 时间离散化:更新间隔怎么选
Aimsun 中观仿真的另一个核心参数是更新间隔(Update Interval)。车辆的位置、速度、路径判断不是连续计算的,而是按固定时间步长刷新。这个参数直接决定了仿真的时间精度。
默认值通常是 0.5 秒或 1 秒。我做项目时,如果不是针对某一处做精细的排队分析,一般用 1 秒就够了;但如果是快速路匝道附近的排队长度评估,我会调到 0.5 秒,让排队回传更平滑。
这里有一个容易被忽略的点:更新间隔会影响路径选择判定的频率。Aimsun 中观仿真中,车辆不是每一秒都在重新算路径的,而是有一个"重新考虑路径"的周期参数。如果这个周期设得太短,仿真里会出现车辆频繁变来变去的情况,跑出来的路径分布会不稳定;设得太长,又反应太慢,路况变了车流还按老路径走。常规设置在 3-5 分钟比较稳妥,在事件影响分析中,这个值适当调小到 1-2 分钟,能更快反映事件导致的路网重分配。
2.3 交通流模型:中观模型的"简化但不失真"
Aimsun 中观仿真采用的交通流模型,本质上是一个基于道路通行能力和宏观基本图(Macroscopic Fundamental Diagram)的简化模型。它不模拟车辆与车辆之间的跟驰关系,而是把每个路段段的交通流状态用流量-密度关系来约束。
这意味着,中观模型的精度上限取决于你给路网标定的通行能力值准不准。如果路段的通行能力设得离谱,中观模型跑出来的结果绝对不会好。我在标定通行能力时,一般会参考实地调查的饱和流量值。对于城市主干道,一条车道的基本饱和流率在 1800-1900 pcu/h 左右,信号交叉口进口道会打折到 1600-1700 左右,快速路基本路段可以按 2000-2200 来估。但这些只是初值,最后必须以实际跑出来的速度-流量关系重新校正。
中观模型有个特性会让初次使用的人困惑:它不会有微观模型里那种"车辆走走停停、时走时停"的不稳定现象,车速曲线更平滑。这是正常的,因为它的本质是聚合模型,丢掉了逐车波动的随机细节。如果项目关注的是舒适性评价、急刹车比例这类微观指标,那中观做不了;但如果是平均行程时间、排队长度、路网吞吐量,中观的结果在统计意义上更稳定。
2.4 路径选择与动态交通分配:中观仿真的核心优势
中观仿真最大的优势之一,就是天然支持动态交通分配(DTA)。Aimsun 的中观模块内置了路径选择模型,车辆在运行过程中会根据实时路况(或历史路况)重新评估路径,这就跟真实的驾驶员行为更接近了——大家不会一条路走到黑,堵了就换路。
Aimsun 中观仿真里的路径选择模型有几种:
- 固定路径:OD 间只有预设路径,车辆按固定比例分配;
- C-Logit 模型:考虑路径重叠惩罚的随机路径选择模型,适合绕行路网;
- 用户均衡(User Equilibrium):通过迭代让出行者找不到更优路径,得到均衡流量分布;
- 随机用户均衡(Stochastic User Equilibrium):在用户均衡基础上加入感知误差,更接近真实情况。
实际项目中,我最常用的是 C-Logit 或者随机用户均衡。C-Logit 的好处是计算快,对大规模路网友好,而且它会考虑路径之间的重叠问题。比如两条路径在最后 3 公里完全重合,C-Logit 会认为它们不能算两条完全独立的路径——这个在快速路和地面路网的竞争关系里特别重要。
需要提醒的是,DTA 不是一次跑完就完事的。它需要迭代,一般跑完一轮后把各路段的阻抗重新计算,再让下一批车辆基于新路况做路径选择,这样循环几次,路网流量才会收敛到一个稳定状态。Aimsun 里可以设定迭代次数,我通常设 5-10 次。如果发现路径流量在相邻两次迭代里变化仍然很大,说明模型还没收敛,需要增加迭代次数或检查 OD 矩阵是否有明显的问题。
2.5 控制逻辑与信号配时的处理方式
中观仿真对信号交叉口的处理方式,和微观模块有本质不同。中观模型不会逐车检测信号灯状态,而是把信号控制简化为每个进口方向的时间窗。信号周期、绿信比、相位差这些参数以配时方案的形式直接输入到模型中,车辆在接近交叉口时,根据当前信号状态决定是否减速停车或通过。
这意味着信号配时的精细优化不是中观仿真的强项,但信号方案的"宏观评价"完全可行。比如你要比较某个交叉口周期从 120 秒改到 100 秒之后,对整个路网行程时间的影响,中观仿真完全可以回答。你只需要在信号配时方案里调整参数,重新跑一遍即可。
Aimsun 中观仿真支持信号控制的类型包括定时控制、感应控制和简单的联动控制。如果你用的是定时控制,直接把配时方案的周期、绿信比填进去就行;如果是感应控制,中观模型也能模拟,但只能模拟到"某相位是否因检测器触发而延长",具体延长时机是靠参数控制的,达不到微观模型那种逐秒响应细节。
3. 实操全流程:从建模到结果输出的完整记录
3.1 路网建模:导入与简化的基本原则
Aimsun 建模的底层路网通常从 GIS 或 CAD 数据导入。如果项目方提供了高质量的 GIS 路网数据,Aimsun 的导入功能可以直接读取,然后你需要花时间清理拓扑。所谓清理拓扑,主要就是检查节点连接关系——两个路口之间有没有重复路段、交叉口处的转向连接是否齐全、单行道方向是否正确。
如果是手动建模,我建议遵循"主干道精细、支路简化"的原则。中观仿真的优势在于范围大,但范围大不代表每条路都要画得精确到厘米。城市支路、小区道路,只要保证拓扑连接正确、等级和通行能力合理,就没必要花大量时间精细处理几何线形。快速路匝道的连接关系、互通立交的转向逻辑这些必须仔细检查,因为它们是影响路网运行的关键瓶颈。
导入路网后,一定要检查路段的各项基础属性:
- 道路等级(高速公路、城市快速路、主干道、次干道、支路);
- 车道数;
- 通行能力(初值按经验填,后续标定);
- 自由流速度(不同道路等级的默认值要合理);
- 路段长度(导入时偶尔会出现长度异常的路段,需要排查)。
3.2 OD 矩阵准备:中观仿真的"燃料"
OD 矩阵是中观仿真的核心输入,没有准确的 OD 矩阵,模型做得再精致也白搭。OD 矩阵的来源有三个渠道:基于交通调查反推、基于手机信令或 GPS 数据、基于现状流量反推标定。
如果是从零开始的项目,又没有现成 OD 数据,我一般会先用现状路段流量做一次"OD 反推"。Aimsun 内置了 OD 矩阵估计功能(ODME),可以把现状路段流量作为约束条件,反推出一个与观测流量匹配的 OD 矩阵。这个反推结果不一定完全准确,但作为初始迭代的输入是够用的。后续需要用实际调查数据做标定,把模型跑出来的路段流量和实测流量对比,不断调整 OD 直到误差在可接受范围内。
OD 矩阵的时间粒度和中观仿真的时长是一致的。比如仿真时段设为上午 7:00-9:00,OD 矩阵就要按这个时段切分。如果做全天仿真,通常按小时拆分成多个 OD 矩阵,Aimsun 支持 OD 矩阵随时间切换。
注意:OD 矩阵里的单位要统一。很多人栽在单位不统一上,OD 矩阵里填的是辆/h,但路网通行能力填的是 pcu/h,结果跑出来的流量对不上,还以为模型出了问题。
3.3 中观模型参数设定:核心参数与建议取值
Aimsun 中观仿真模型参数主要集中在"Mesoscopic Parameters"里。下面这些是我每次建模型都必调的参数,给出经验值供参考:
| 参数名称 | 作用 | 建议取值 |
|---|---|---|
| Update Interval | 仿真时间步长 | 0.5-1.0 秒 |
| Route Choice Period | 路径选择重评估周期 | 180-300 秒 |
| Reaction Time | 反应时间(对应车头时距) | 0.8-1.2 秒 |
| Maximum Speed | 车辆最大允许速度 | 按道路限速+10%设置 |
| Jam Density | 阻塞密度 | 150-190 veh/km/lane |
| Queue Discharge Headway | 排队消散车头时距 | 1.8-2.2 秒 |
| Capacity Drop Factor | 通行能力衰减系数 | 0.85-0.95(瓶颈处) |
其中 Capacity Drop Factor 是个有意思的参数。它描述的是瓶颈路段在拥挤状态下,通行能力会比自由流状态下降多少。实测表明,大多数瓶颈在拥挤条件下的通行能力会下降 5%-15%,这个现象叫容量下降(Capacity Drop)。不设这个参数,中观模型的瓶颈排队长度会被低估——因为模型里的瓶颈始终能以最大通行能力放行车辆,而实际上挤成一团之后放行效率是下降的。
3.4 信号控制与检测器的设置
在 Aimsun 中观仿真里设置信号控制,流程上和微观类似,但要注意中观的信号控制是以"时间窗"工作的。
进入 Signal Controllers 模块后,需要做这几件事:
- 把交叉口关联到信号控制器,设置控制类型(固定配时/感应控制);
- 定义信号组(Signal Groups),每个信号组对应一组转向流向;
- 设置相位、周期、绿信比、全红时间;
- 如果做联动控制,设置偏移(Offset)和协调相位。
关于全红时间,很多初学者忽略了它。中观仿真里如果全红时间设成 0,黄灯时间也会被压缩,结果会出现该方向车辆刚停、另一个方向的车辆就冲出去的情况,导致路口通行能力虚高。我一般会按交叉口实际尺寸推算全红时间,至少 2-3 秒。
检测器的设置在中观仿真里的用途主要是:感应信号控制的触发输入、路网运行状态统计的数据源。如果你在仿真中安装了检测器(loop detector),Aimsun 可以输出流量、占有率、速度的时间序列数据,用来和实测检测器数据对比标定。这个功能强烈建议用,因为它能直接量化"模型跑得准不准"。
3.5 运行仿真与结果输出
设置完成后,就可以开始跑仿真了。在中观仿真中,不需要像微观那样打开"驾驶模拟"视图,直接运行标准仿真即可。运行过程中,Aimsun 会按照设定的更新间隔推进仿真时钟,车辆在路网上移动、排队、通过交叉口,路径选择会在指定的周期重新计算。
仿真运行时的速度主要取决于三个因素:路网的规模和复杂度、更新间隔的大小、启用 DTA 时的迭代次数。我跑过一个 100 多平方公里的区级路网,用 1 秒更新间隔,DTA 迭代 5 次,单次仿真大约 10 分钟跑完。如果更新间隔改成 0.5 秒,时间会翻倍甚至更多。所以在这个场景下,先用 1 秒间隔跑收敛和标定,最后需要精细结果时再切 0.5 秒。
结果输出方面,Aimsun 中观模块可以直接输出:
- 路段性能指标(行程时间、速度、密度、流量、排队长度);
- 路网层面的集计指标(总行程时间、总延误、路网平均速度);
- 转弯流量(用于和交叉口实测流量对比);
- 路径流量(用于分析路径选择行为);
- 尾气排放指标(如果需要做环境影响评价)。
结果输出的时间粒度可以在 Output 设置里选择。我一般会把"路段输出间隔"设为 5-15 分钟,这样既能看到时间趋势,又不至于数据量过大。如果是做事件影响分析,需要更细的 1 分钟粒度输出。
4. 常见问题与排查技巧实录
4.1 模型跑不出拥堵,路网空空荡荡
这是最常遇到的问题,症状是仿真跑完了,报告显示路网服务水平一片绿,和现实里早晚高峰堵成一锅粥完全对不起。
排查顺序:
- 检查 OD 矩阵总量。把 OD 矩阵求和算总出行需求,和实际调查的路网载入量对比。如果 OD 总量偏小三分之一以上,路网当然跑不饱。这是最常见的原因。
- 检查路段通行能力是否偏大。Aimsun 默认的路段通行能力是基于理想条件给的,现实中受路侧干扰、停车、行人过街等因素影响,通行能力会大打折扣。城市商业区路段通行能力要打 0.8 甚至 0.7 的折。
- 检查自由流速度是否偏大。限速 60 的路段如果填成 80,车辆流速过快、路段容量就上不去,也不容易拥堵。
4.2 排队长度看起来不真实
有时候会出现"排队很短但路段平均速度很低"的矛盾现象。这往往是因为路段没有分段,模型把整条路段当成一个混合体来处理,车辆一多就均匀减速,而不是形成从瓶颈开始的物理排队。
解决方法:在瓶颈位置(进口道上游、匝道连接处)加节点,把路段切开,让排队能沿着分段逐步回传。加完节点后看排队形态,应该能看到排队尾部逐渐向上游延伸的合理演变过程。
4.3 路径选择结果不合理
比如明明有快速路可以走,模型里的车却全部走地面;或者明明某条地面道路已经堵死了,车还是源源不断开进去。
检查这几个地方:
- 路径选择模型是否启用了 DTA?如果只走固定路径且比例没设好,会出现路径分布明显不合理的情况;
- 路段的"感知阻抗"参数是否合理。Aimsun 里路径选择是基于路段阻抗(一般是行程时间)的,如果某个路段的自由流行程时间和实际计算行程时间差距过大,路径选择结果会失真;
- 检查是否有断头路或禁止转向限制没有设置。有时候路网拓扑上存在一条"近路",但因为转向限制没设置,模型里车可以走,现实里根本不能走。这种拓扑错误会导致路径选择结果跑偏。
4.4 仿真结果和检测器数据对不上
模型和实测对不上的原因,八成在 OD 标定,两成在通行能力和信号配时。我的做法是把标定分成两步:
- 第一步,比路段流量。把模型输出的路段流量和实测检测器数据按小时对比,计算误差和 RMSE。哪条路差得多,就重点查那附近区域的 OD 需求。
- 第二步,比行程时间。把模型输出的路段行程时间和实测 GPS 数据(比如网约车轨迹、浮动车数据)对比。如果流量对得上但行程时间偏小很多,说明路段的通行能力或信号延误参数偏乐观。
这两步都做完,模型的可靠性才算立住了。
4.5 仿真运行时间突然拉长
如果同一个模型,之前跑 10 分钟,这次跑了 20 分钟还没结束,先检查是不是参数被改了。更新间隔从 1 秒改成 0.5 秒,运行时间基本翻倍;路径选择周期从 300 秒改成 60 秒,路径计算的频率提高了 5 倍,运行时间也会大幅增加。
另一个可能的原因是 DTA 迭代次数被调大了。如果模型启用了 DTA,并且迭代次数设成 20,乘以单次仿真时间,总耗时自然膨胀。合理做法是先用少迭代次数(3-5 次)快速调试,调试稳定后再增加到正式运行的迭代次数。
4.6 数据量过大导致机器卡死
跑大路网仿真时,结果输出数据可能特别大。有一次我输出 1 分钟粒度的路段数据,跑了两小时仿真,生成了几个 GB 的数据文件,后处理的时候直接卡死。
经验是:先想清楚你需要什么粒度再设置输出。评估行程时间稳定性,15 分钟粒度就够了;做信号协调分析,5 分钟粒度差不多;除非做高频振荡分析,才需要 1 分钟甚至更细。别贪多,数据不是越多越好,够用就行。
5. 中观仿真的几个高级落地场景
5.1 事件影响分析
中观仿真特别适合做突发事件影响评估。比如快速路上某一段因为事故封闭两条车道,影响范围会迅速扩散到周边路网。微观模型能模拟这个事件,但研究范围有限;宏观模型范围够了,又描述不了车道封闭这种细节;中观模型正好:在研究区域内封闭特定路段的部分车道,降低对应的通行能力,然后通过 DTA 观察车辆如何重新选择路径,量化评估整个路网的总延误增量。
这类分析的要点是,把事件发生时段和持续时间设好,事件前后的 OD 矩阵不要变,只改事发路段的通行能力。然后对比"无事件基线"和"事件场景"的路网总行程时间差,就是事件导致的额外延误。
5.2 大型活动交通组织评估
体育赛事、演唱会这种短时间高强度的交通需求,用中观仿真做预评估非常合适。散场时几千辆车同时涌入路网,经过一段时间自然消散——这个过程模型完全可以复现。把活动散场的 OD 矩阵作为额外需求加载到路网上,看路网会不会出现严重锁死、哪些出口方向最拥堵、交通管制措施是否有效,都能得到量化结果。
这类项目有个容易忽略的点:散场高峰往往和晚高峰叠加,OD 矩阵不能只加活动需求,还要把背景交通需求加上。
5.3 交通管理策略比选
比如某个片区要实施单行交通组织,或者要设置可变车道,或者要调整信号协调方案。这些问题的尺度都是"片区级",关注的指标是路网整体运行效率而非单个交叉口。用中观仿真做方案比选,速度快、成本低,还能做多方案对比的敏感性分析,是性价比最高的选择。
方案对比时,要保证各方案之间只改变要评估的策略,其他边界条件(OD、信号基础方案)保持一致,否则对比结果没有说服力。最好用同一组随机数种子跑多次取平均值,因为中观模型虽然确定性比微观强,但 DTA 迭代过程中仍有一定随机性。
6. 用中观仿真的一些个人心得
做中观仿真项目这几年,我最深的感受是:不要小看模型标定这个环节。Aimsun 的中观模块上手不算难,任何一个会用软件的工程师,花一两天时间就能把模型跑起来。难的是把模型标定到能和实测数据对上的那一步。这个环节最花时间,也最体现功力。
另一个经验是,中观仿真的"中"字意味着你需要时刻提醒自己:它在哪些维度精确、在哪些维度简化。用它做片区路网评估是合理选择,但如果你试图用它回答"某个交叉口左转车道该设多长"这类微观问题,那就是用错了工具。工具选对了,项目就成了一半;选错了,后面再怎么抠参数都是白费力气。
最后一点给刚入行的朋友:无论用什么仿真软件,第一步永远是理解你的研究对象和问题本身,第二步才是打开软件。想清楚你需要什么指标、什么精度、什么研究范围,再回头挑工具,这样才能让 Aimsun 中观仿真真正发挥出它应有的价值。