十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Aimsun多模式交通仿真:建模流程、参数标定与实践避坑指南

Aimsun多模式交通仿真:建模流程、参数标定与实践避坑指南 1. 为什么说多模式是交通仿真绕不开的深水区我去年接了一个老城区交叉口改造的咨询项目早高峰的场景非常典型小汽车、每5分钟一班的公交、成群结队过街的行人、还有穿插在车流里的电动自行车全部挤压在一个不到3000平米的十字路口。当时甲方给的诉求听起来很简单——把公交专用道延长200米评估一下效果。但真正动手做方案的时候才发现难的不是画线而是回答一个连锁问题公交专用道延长之后小汽车排队会不会倒灌到上游路口公交进站停靠时间会不会因为与右转车辆冲突而增加行人过街的等待时间会不会恶化这一类问题本质上是多模式交通系统里的耦合效应。我很难用《城市道路设计规范》里的公式单独算清楚因为公式默认每种交通方式是独立运行、互不干扰的而现实中根本不是这么回事。公交停靠占用最外侧车道会压缩社会车辆的通行空间社会车辆排队过长又会阻挡公交出站时的变道行人在绿灯末期抢行会迫使转弯车辆减速甚至停车进而影响整个相位的消散效率。这种情况下最靠谱的办法就是做多模式交通仿真。我用的是Aimsun。它在这一类问题上有一个很突出的优势不需要在微观、中观、宏观三套软件之间来回切换同一个模型体系里就能同时处理机动车、公交、行人和非机动车而且支持从一个尺度切换到另一个尺度。这对我这种长期在项目一线、被deadline追着跑的人来说省掉的不只是数据转换的时间更重要的是避免了模型在软件间迁移时产生的误差和返工。这篇内容不打算写成软件手册而是把我做多模式仿真项目时完整跑通的思路和操作细节拆出来讲。适合三种人看一是刚接触交通仿真、想系统了解多模式建模逻辑的学生二是从Vissim或TransModeler转过来的、想快速上手Aimsun的工程同行三是已经会用Aimsun但老觉得多模式项目仿真结果心里没底的从业者。我会把建模流程、参数设置、模式交互、结果校验和踩坑经历都过一遍绝大多数内容都是项目里能直接复用的。1.1 单模式仿真算不出耦合效应先解释一下为什么单模式仿真在多模式场景下会失真。做过传统四阶段法的人都知道交通分配阶段通常只考虑小汽车公交则是单独用公交分配模型跑行人更是在最后一步才被简化为过街流量加到交叉口分析里。这种串行分析方式有两个硬伤。第一不同交通方式之间的阻抗是互相影响的但你没办法在一次分配里同时反映这种影响——小汽车堵得越厉害可能越多人转向公交而公交运行时间又受到小汽车占道的影响这是一个双向反馈循环。第二路口的信号配时、车道功能划分等控制措施天然就是把不同交通主体放在同一个时间和空间里去博弈的单模式模型根本表达不了这种博弈。Aimsun在微观仿真层面用的是基于反应时间的跟驰模型和换道模型车辆之间、车辆与行人的冲突都是在仿真时钟推进过程中逐秒解算出来的。也就是说你不需要提前用公式估算公交车停靠会造成10%的社会车辆延误模型会通过车辆的实际减速、变道、排队行为自动把这个延误算出来。这正是多模式仿真最核心的价值它把复杂交通现象还原为个体行为的涌现结果而不是依赖分析者拍脑袋给定的折减系数。1.2 Aimsun的三层仿真框架对多模式的支持Aimsun能实现多模式仿真底层是三套仿真引擎在支撑中观meso、微观micro和宏观macro。宏观模型用于战略层面的需求分析和路网流量分配输出的是路段流量和饱和度速度快但看不到个体行为中观模型在路网层面上用排队论表达车流能跑很大的网络也支持动态交通分配微观模型则把每一辆车、每一个行人当作独立个体来解算能看到变速、换道、让行、排队这些细粒度行为代价就是计算量大、运行速度慢。多模式仿真通常落在微观和中观层面。行人过街、公交停靠、非机动车混行这类问题必须用微观而如果你要评估的是一个片区十几条公交线路调整方案每条线路还涉及几十个站点用纯微观模型会慢到怀疑人生这时候中观模型就派上用场了。Aimsun比较聪明的地方在于三种引擎共享同一套路网和需求数据你可以在关键节点区域用微观精度外围网络用中观表达两者在同一个模型里协同运行。这种混合仿真特别适合做那种局部精细、全局宏观的真实项目。2. 搭建多模式仿真模型的前两步路网与需求很多人拿到Aimsun第一件事就是导底图、画路网、摆信号灯实际上这样很容易做出一个看起来很像、跑起来失灵的模型。我自己的经验是建模之前必须先想清楚两件事模型要回答什么问题回答这个问题需要多高的精度这个精度决策会直接决定你在路网上投入多少精力。如果是评估公交优先信号方案路段几何可以适当简化但每个路口的车道功能、公交站台位置、行人过街设施必须精确如果是评估片区路网改造那路段的车道数、限速、关键交叉口的渠化都要准确。多模式仿真最忌讳的就是全程一刀切所有细节都画满结果模型又慢又难校准。2.1 用底图构建路网时哪些细节会决定成败Aimsun支持直接导入DXF、DWG、SHP、OSM等多种格式的底图但导入只是第一步路网的几何修正才是真正花时间的环节。根据我个人的项目经验以下几个细节对多模式仿真的结果影响最大。车道线形和宽度。Aimsun的跟驰模型会基于车道宽度和车辆尺寸调整横向位置在机非混行路段过窄的车道会让仿真车辆换道频率明显增加。我一般会结合实际测量数据对关键路段的车道宽度做一次系统校准而不是直接采用底图默认值。尤其是公交专用道和普通车道衔接的位置宽度突变会导致仿真车辆出现不合理的减速。转向关系与禁止转向。多模式模型中转向关系不只是简简单单的几何连接它决定了车辆在路口的路径选择。公交线路要按实际运行路径设定不能靠模型自动分配。行人的过街路径也与路口转向关系高度相关——行人要走对角过街、二次过街还是直接横穿必须用行人路径设施显式表达。公交停靠站的定位。这是最容易被新手忽略的环节。公交站台离交叉口停车线的距离、港湾式还是直线式、是否影响右转车辆这些细节如果模型里不准确仿真的公交停靠延误和排队溢出就完全不可信。在实际项目中我会要求团队把每个关键站台的站牌位置和停靠泊位数量拍下来对照卫星图逐一核实。行人过街设施。Aimsun里行人不是直接在路网上行走的需要单独创建行人过街设施和行人路径。这个机制什么意思呢简单说行人要走的路段和车辆走的路段是两套网络通过交叉口处的连接关系交互。我看到很多模型在这里偷懒——只画了路口车辆停止线行人过街横道没画结果行人直接在车流里穿行仿真的冲突点位全部错位。2.2 OD矩阵基础上的多方式出行需求路网建好之后下一步是定义需求。多模式仿真的需求不能只给一个总OD矩阵而是要按照交通方式拆分。机动车的需求表达相对成熟一般通过OD矩阵加载到路网上再通过动态交通分配DTA让车辆自主选择路径。Aimsun的路径选择模型采用C-logit形式它会根据实时路阻更新路径选择概率这比较接近真实驾驶员的路径调整行为。公交的需求则包含两部分一部分是公交车辆的运行计划发车间隔、车型、上下客时间另一部分是公交乘客的数量——这会影响站台的上下客时间。行人的需求稍微特殊一点Aimsun里需要定义行人OD矩阵和对应的行人路径设施。这里有一个比较实用的经验行人的OD颗粒度不需要做得很细按主要流向聚合到关键过街设施和出入口即可细分到每个建筑出入口会让校准成本成倍上升却不一定会提升结论的可靠性。非机动车自行车、电动自行车的需求在Aimsun里可以通过车辆类型来实现给它单独设置速度分布、加速度和跟驰参数。如果要在一个模型里同时跑机动车、公交、行人、非机动车建议把模型拆分成不同的需求时段来加载避免一次性把所有方式的需求全部灌进去导致路网瞬时过载仿真结果失真。3. 不同交通主体在Aimsun里的建模方式与参数多模式仿真跟单模式最明显的区别就是不同交通主体拥有完全不同的运动特性和决策逻辑。机动车有车道、有信号灯约束公交除了机动车属性之外还受线路和站台时刻表约束行人则是在二维空间里自由选择路径基本不受车道限制非机动车介于两者之间既有机动车的方向稳定性又有类似行人的灵活性。Aimsun对这几类主体分别提供了差异化的建模机制。3.1 机动车Gipps跟驰模型是基本功Aimsun微观仿真的车辆运动核心是Gipps跟驰模型这个模型简单说就是每一辆车根据前车速度和距离计算出一个安全的跟驰速度保证在任何情况下都能刹停而不追尾。它不是把所有车当成同质个体而是通过一系列参数来区分不同驾驶员的行为风格。在建多模式模型时这几个参数我会重点调校反应时间reaction time默认值通常在0.8到1.2秒之间。城市拥堵路段可以适当调小高速道路调大但要注意反应时间会影响仿真的通行能力调得太小会让路网通过能力虚高。最大加速度和最大减速度小汽车、公交车、货车需要分别设置。公交车的加速度区间一般在1.0到1.5 m/s²减速度1.2到1.8 m/s²这跟空载和满载状态都有关系。速度接受度speed acceptance这个参数影响车辆实际行驶速度与限速之间的关系。中国城市道路上的超速现象比较多我会习惯把速度接受度调到1.05到1.1之间模型才能复现实际的行程车速。机动车模型不用每个参数都自己调Aimsun里内置了不同车辆类型的默认参数集。我的建议是先用默认参数把模型跑通再根据实测交通流参数饱和流率、排队长度、行程时间做敏感性分析确认哪些参数对输出影响最大再针对性标定。3.2 公交系统线路、站台与时刻表的联动公交建模如果只把公交车当成一种速度慢、体积大的车辆类型那就大错特错了。公交的本质特征是它按照固定线路行驶并且在特定位置停靠。这个停靠动作是多模式仿真里机电动脉因为它直接决定了公交车对路段通行能力的影响。在Aimsun里公交建模主要有几个组件公交线网包括线路经过的路段和转向、公交站台stop、公交计划timetable和公交车辆类型。停靠时间dwell time是公交建模最重要的参数。它有几种设定方式可以设固定值比如每站30秒也可以根据上下客人数动态计算——这需要为公交线路定义乘客需求数据。上下客时间的计算通常采用这样的逻辑每位乘客上车约2到3秒下车约1到2秒老幼病残孕乘客会适当增加。如果模型里没有乘客数据我一般会设定一个正态分布的平均停靠时间均值为20秒、标准差5秒左右但前提是你要清楚这只是逼不得已的简化。公交专用道的建模要注意一个细节Aimsun中通过车辆类型的路段使用权规则access restriction来管理公交专用道。需要把普通小汽车设置成不允许进入公交专用道公交车和出租车则按实际政策设置。一旦这个规则漏配公交车会跟社会车辆混行仿真的公交行程时间就会虚低。另外Aimsun里公交线路的路径优先级priority很重要。比如BRT在交叉口大多有信号优先或绝对优先措施这个功能不是简单的信号配时可以实现的需要通过API或外部信号控制器接口来定义。我见过不少项目把BRT的信号优先漏掉了结果仿真的BRT行程时间明显高于实际值结论完全跑偏。3.3 行人与非机动车微观模型里的软主体行人和非机动车跟机动车最大的区别是它们不会严格遵循车道规则运动自由度大得多。Aimsun的行人建模方式是在路网上定义行人过街设施和行人路径行人会在这些设施内按照社会力模型social force model运动。所谓社会力模型可以简单理解成行人的运动由几种力共同驱动目的地吸引力、与障碍物或其他行人的排斥力、以及速度保持力。这个模型能比较真实地还原行人减速、避让、跟随等行为。行人建模的关键参数有步行速度中国人行横道的设计速度通常取1.0到1.2 m/s但在早晚高峰的通勤人群里实际步行速度可以到1.3到1.5 m/s。模型里设置一个速度分布均值、标准差比设置单一速度更真实。行人流量通过行人OD矩阵定义。过街行人流量最好用早晚高峰的实测计数数据。行人信号相位Aimsun支持把行人过街设施与信号灯组的相位关联起来这样行人的过街行为会严格受信号灯控制。如果这个关联没建好行人就会在红灯期间全涌过去仿真动画直接失真。非机动车在Aimsun中通常归类为车辆类型而非行人。这意味着它仍然受车道限制和跟驰模型约束但可以通过放宽最小车头间距、调低速度限制来体现它的灵活性。在实际中国城市项目里电动自行车的速度分布通常在15到25 km/h之间最高可以到30 km/h以上我会单独定义一种电动自行车车辆类型避免和普通自行车混合建模导致速度失真。这里要特别说一句如果你在一个以非机动车流量极大著称的城市比如某些南方城市的市中心做微观仿真需要意识到非机动车建模误差对整体结果的影响可能比机动车更大。因为它们占据了大量的横向空间会影响机动车的换道决策和路口通行能力。如果甲方对精度有强要求我建议把非机动车路段的细节做得尽量细包括非机动车道宽度、路缘石位置和交叉口内的允许转向路径。4. 模式交互才是多模式仿真的核心战场很多人以为多模式仿真就是把几种交通方式放在同一个模型里各跑各的跑完叠加输出结果。大错特错。多模式仿真真正的价值在于表达交互——公交车进站停靠导致后面小汽车换道行人绿灯延长导致左转车辆通行时间被压缩非机动车在路口蔓延侵占机动车等待区。这些交互细节才是实际交通运行中最难应对、最容易出问题的部分。Aimsun的微观仿真引擎在解算车辆跟驰、换道、接受间隙等行为时其实是把其他模式的主体作为约束条件来更新的所以交互是内生的不是外挂的。4.1 公交停靠与社会车辆混行的冲突分析公交停靠是一个非常重要的多模式冲突场景尤其在直线式停靠站非港湾式的路段上。我做过一个BRT沿线项目公交车进站时直接从最外侧车道减速停稳停靠时间30到40秒后面的小汽车要么跟着等要么往左变道。在仿真里你可以直观看到公交站上游80到100米的路段上出现一个明显的速度下降区紧接着外侧车道的排队长度会周期性增长——这个周期性正好和公交车到达频率吻合。这种冲突如果不用微观仿真几乎不可能通过解析公式估算准确因为变道行为取决于相邻车道的间隙分布而间隙分布又受到车流密度和速度的实时影响这是一个强耦合的随机过程。在多模式仿真里我一般会做三件事来量化这种冲突影响第一设置公交停靠的动态停靠时间。不要用固定值而是用正态分布或三角分布甚至可以基于乘客需求表动态计算。否则模型会周期性出现一到站就停一走就顺畅的机械化表现丢失真实性。第二观察公交站附近的冲突热点。Aimsun 可以输出车辆轨迹数据我会专门提取公交站上游路段的平均车速和车道变换次数对比同一路段无公交停靠场景下的差异这个差值就是公交停靠对路段通行能力的边际影响。第三评估改善措施的仿真效果。如果要设港湾式公交站直接把模型里的站台改成港湾几何重新仿真看排队长度变化如果要允许公交车在站内超车需要修改公交站的车道配置。这种改方案—仿真—对比的循环是我做方案比选最常用的方法比依赖经验的定性判断可靠得多。4.2 信号控制下的行人过街与公交优先信号交叉口是多模式交互最集中的地方。行人和转弯车辆冲突、公交与直行车流的冲突、行人与公交进站的冲突——全部发生在一个时间窗口只有几十秒的区域内。关于行人和机动车冲突我通常会关注两个场景。第一个是右转车辆与过街行人的冲突。Aimsun里如果行人过街相位是绿灯而右转车辆同时允许通行模型里车辆会寻找行人流中的可接受间隙通过。这个间隙接受行为的参数需要标定——行人流密度越大车辆等待时间越长右转通行能力的折减也越真实。第二个是行人二次过街。当道路宽度很大行人无法在一个绿灯时间内通过时需要在路中央设置安全岛和二次过街设施。在Aimsun里这个需要在行人路径网络上分段表达并把中央驻足区设计为行人可以等待的区域。公交优先信号TSP是多模式仿真里的进阶操作。Aimsun支持通过外部信号控制器接口或API去实现公交优先逻辑。常见做法是检测到公交车接近路口时延长当前绿灯相位或缩短红灯相位让公交车不停车通过。在仿真里实现TSP时需要注意一个细节公交优先的触发不能只看公交车是否接近还要考虑服务方向是否是当前放行方向。现实中很多TSP方案默认只对直线方向优先不对左转方向优先因为左转公交和小汽车的冲突太复杂优先带来的收益也小。此外信号配时在多模式仿真里不是设定一次就永久不变的。你会经常遇到这样的情况同一种信号配时早高峰和小高峰下不同交通主体的延误差异很大这是流量构成不同导致的。所以我会习惯在模型里做至少三个时段的仿真——早高峰、晚高峰、平峰每个时段单独配一套需求数据和信号方案。这样输出结论才具备把参考价值延伸到具体时段的能力。5. 输出结果怎样才算可信指标与验证模型跑完动画能放数据能导很多项目组就觉得大功告成了。但真正要交付的时候第一个问题往往是你这模型的结论凭什么可信多模式仿真因为涉及的主体多、参数多输出结果的不确定性和误差累积风险比单模式仿真大得多。所以仿真结果的分析与校验在我看来是整个流程中最考验经验的环节。5.1 选对指标比多跑几次仿真更重要不同决策目标对应不同的性能指标指标选对了仿真才有决策支持价值。多模式仿真项目的指标选取我习惯按交通主体分类来构建。对机动车最有价值的指标是路段平均行程时间、路口的平均车辆延误和排队长度。延误是评价信号配时优劣最经典的指标排队长度则直接关系到是否会发生溢流。这里有一个细节要注意Aimsun里的延误有多种定义停车延误、控制延误、总延误交付给甲方之前一定要在报告中写明用的是哪一种否则同一条数据不同人解读结论完全不一样。对公交系统最核心的指标是行程时间可靠性plan headway adherence和到站准点率。Aimsun可以输出每辆公交车的到站时刻和时刻表对比就能得到准点率。在多模式项目里我特别推荐用公交运输时间指数或者公交与小汽车行程时间比来评估公交优先措施——这两个指标能直观反映公交系统在整个交通生态中的竞争力有没有提升。对行人与非机动车不能只盯着平均过街延误还要看实际通行空间的服务水平。Aimsun可以输出行人密度和行人速度对比不同方案之下行人的服务水平等级这在以人本交通为卖点的项目里相当有用。另外多模式仿真的随机性比单模式大得多。Aimsun微观仿真的每次运行结果都会因为随机种子不同而有波动我不建议只跑一次就取结果。一般做法是固定需求不变设置5到10个不同随机种子跑多次取平均值作为最终结论。如果某组结果的标准差特别大通常意味着该方案的交通运行处于一个非常不稳定的临界状态这个信息本身就对决策很有价值。5.2 用GEH和旅行时间做模型校验模型校验是交通仿真流程里不能跳过的环节多模式模型更是如此。最常用的校验指标是GEH统计量它本质上是一种结合了相对误差和绝对误差的指标能避免流量大的断面相对误差看似很小、实际偏差绝对值很大这种误导。GEH的计算公式是 GEH √(2 × (M − C)² / (M C))其中M是仿真流量C是实测流量。行业惯例是GEH小于5.0为通过小于4.0为良好小于2.0为优秀。要注意的是GEH对低流量断面特别敏感——流量低的断面GEH值很容易虚高所以校验的时候通常会剔除流量过低的次要路段重点考核主要断面的流量。除了流量行程时间也是必须校验的指标。行程时间反映路网的运行质量而流量反映的是需求加载是否合理。我会用浮动车数据或者GPS轨迹数据来获取全程旅行时间与仿真输出的路段行程时间做对比。如果模型里流量对得上但行程时间差很多那大概率是通行能力参数比如饱和车头时距或信号配时输入有问题。公交校验还有一项特殊内容全程运行时间的对比。把仿真里公交线路从首站到末站的总运行时间跟实测的公交GPS数据对比偏差控制在10%以内是我认为可以接受的标准。如果偏大先检查公交停靠时间和信号优先逻辑是否设对如果偏小检查公交专用道的使用权规则是否遗漏。6. 项目实战中的多模式仿真避坑记录前几节讲的是方法这一节讲的是我实际踩过的坑。做多模式仿真有时候模型跑得通、图表做得好只要忽略了一个不起眼的设置结论就是错的。这些坑多花时间排查起来很痛苦分享出来希望你能绕开。6.1 行人建模精度过高仿真根本跑不动做某个大型枢纽的仿真时把站前广场的每个进站口、每个商铺门口、每条过街线路都做了精细的行人建模结果微观仿真运行速度从每秒步进0.5秒掉到0.05秒一次仿真要跑将近三个小时。后来我把行人的路径设施做了合并把次要出入口的行人需求聚合到主要通道上运行速度立刻回升到每秒步进0.3秒以上关键区域的输出结果几乎没有变化。多模式仿真资源有限的话行人的建模精度要跟着研究目标走。如果研究重点是交叉口信号配时那行人的路径不需要细到每个出入口聚合到过街横道两端就足够了只有研究站前广场、枢纽换乘这类以行人空间为主体的项目才值得投入行人微观建模的算力成本。6.2 公交时刻表与信号周期的时间基准没对齐有次交付仿真结果甲方拿实测数据来对比发现公交的平均行程时间偏差比较大。排查了很久才发现问题不在参数而在时间基准公交时刻表的发车间隔是按整点排的信号配时的周期起点是按00秒起的结果在仿真里公交车到达路口的时间点和相位切换的衔接关系与实际情况不一致导致公交车频繁遇到红灯。这个问题的解决办法是在建模初期先确认信号配时方案里各相位的起点时间与公交时刻表的参考时刻是否对齐然后统一时间轴。Aimsun里的信号配时方案和公交计划共享仿真时钟只要统一了参考零点公交车到达路口时的相位状态就会和真实情况匹配。这个细节不起眼但直接决定了公交优先方案评估的准确性。6.3 高度依赖本地化的非机动车参数在国内外做过多模式仿真之后我的一个非常深刻的体会是非机动车的建模参数千万不能用默认值必须根据当地实际的骑行文化和流量特征来标定。在荷兰做项目时自行车流量大但骑行规则非常清晰机动车对自行车的让行行为也比较一致但在国内一些城市电动自行车在路口的穿行方式更加随意会大量使用人行横道、逆向行驶、甚至在机动车道间穿插。这些行为如果不通过调整路径选择规则、降低车道约束、放宽间隙接受阈值来反映模型出来的冲突和延误就会跟实际差距甚远。如果你的项目涉及很高的非机动车流量我建议把非机动车路段和路口单独做一次灵敏度分析。多跑几组参数组合看机动车延误和非机动车延误的变化区间有多大。这个区间往往比单次仿真的点估计值更能揭示方案的稳健性也能帮你判断非机动车建模的不确定性是否会影响最终方案排序——如果方案排序在参数变化后根本不变那至少说明结论是稳健的交付时也更有底气。多模式仿真在Aimsun里的核心思路并不复杂把不同类型的交通主体放进同一个时间与空间坐标系里让它们按照各自行为规则自主交互最后从交互结果里提取决策指标。但真正做到可信、可用功夫全在建模细节和参数标定上。尤其是公交停靠时间、行人过街路径、信号优先级处理这些多模式特有的部分一旦处理粗糙整个仿真就只是画了一张好看的动画图而已。希望这篇文章里提到的思路和踩坑经验能让你在下一轮多模式仿真项目里少走一些弯路。
返回列表