
做了这么多年交通信号优化真正让我觉得“这个项目有意思”的往往不是那些写字楼底下的大路口反而是城郊结合部那种车道多、车流乱、方向不平衡的交叉口。龙泉东路与海山南大街交叉口就是这一类的典型——高峰期的排队能直接顶到上游路口左转车流和直行车流互相打架行人过街得见缝插针。当时拿到这个项目我第一反应就是上VISSIM仿真先把现状跑明白再谈怎么优化。这篇就把整个优化设计的思路、建模过程、配时计算以及我踩过的坑完整写出来供同样做交叉口信号优化的小伙伴参考。1. 交叉口现状摸底与问题诊断1.1 交叉口基础信息与现状问题龙泉东路是东西向的城市主干路双向六车道两侧分布着几个大型居住区和一处商业综合体海山南大街是南北向次干路双向四车道北侧连接着工业物流园区南侧通往老城区。两条路相交形成的这个交叉口早晚高峰流量差异极大早高峰以进入老城区的南向车流为主晚高峰则反过来北向车流明显增加。我做的第一件事不是急着建模型而是先蹲点三天。每天早上7点到9点、晚上17点到19点记录信号周期、排队消散情况、车辆溢出频率。观察下来问题集中在三个方面现状信号周期固定为100秒但东西向和南北向的流量比大约是6:4绿灯时间分配明显跟不上实际需求南北向经常出现二次排队。西进口左转车流每小时能到200辆左右但现状方案里左转和直行是混合放行左转车辆经常要等到周期末尾才能勉强通过一条左转车道排队能排到60米开外。行人和非机动车过街时间被压缩得很紧行人绿灯只有20秒左右双向六车道的过街距离接近24米老年人基本来不及走完。这些问题的本质是信号控制方案和交通流特征不匹配。单纯延长绿灯时间解决不了所有问题因为交叉口总周期一旦拉得过长各方向延误都会上升所以优化前必须先把流量数据摸清楚用数据说话。1.2 交通数据采集与流量分析信号优化最忌讳拍脑袋。我在现场采用人工计数加高清视频录像双轨采集雨天和晴天各补测一次确保数据的代表性和稳定性。先看早高峰7:30—8:30的转向流量数据这是后续配时计算的基础进口方向直行pcu/h左转pcu/h右转pcu/h合计pcu/h东进口龙泉东路东向西620150180950西进口龙泉东路西向东430200120750南进口海山南大街南向北4809080650北进口海山南大街北向南36012070550这里说明一下pcu/h是标准小汽车当量公交车、货车都要按折算系数换算。东进口直行流量620pcu/h是三条车道里最重的而南北向整体流量偏小但左转比例不低尤其是东向西左转每小时200辆这在两相位控制下会严重干扰对向直行车流。流量分析同时给出了几个关键参数高峰小时系数PHF取0.92说明这1小时内的流量分布比较均匀不是那种15分钟突发型大型车混入率约8%行人过街高峰集中在早高峰的7:40—8:10和机动车高峰基本重叠。这些参数后续进入VISSIM模型时都是必要的输入。2. VISSIM仿真模型搭建与标定2.1 底图导入与路网建模VISSIM这个软件很多人都用过但模型建得准不准差距全在细节。我拿到的是甲方提供的1:500道路竣工图在VISSIM里用“背景图”功能导入然后锁定比例尺用一条已知长度的道路中心线做基准校准。这一步宁可多花10分钟也别草率比例尺一旦错了后面所有距离、速度、加速度都会失真。路网建模时需要注意路段的绘制方向。VISSIM里车辆是按“路段方向”行驶的所以东向西、西向东必须分别建两条路段。我在CAD底图上先画出道路中心线和车道边界线然后在VISSIM里用“路网编辑器”沿车道中心线创建路段。车道数设置上东、西进口各设2条直行车道加1条左转专用车道南、北进口各设1条直行车道加1条左转车道右转车流行人冲突较小暂按不受控处理。连接器是新手最容易出错的地方。交叉口内部的转向连接必须用“连接器”把进口道和出口道连起来连接器的起点要落在停车线的位置终点要对准出口道对应车道。如果连接器画歪了车辆就会在交叉口内“画龙”甚至出现卡顿。我习惯把连接器的“车道变换”参数设为“不允许”避免车辆在交叉口内部随意变道。还有一个经验在进停车线前30米处设置一个减速区让车辆接近停车线时自然减速否则模型里的车都是全速冲过路口再急刹延误数据会偏小失真。2.2 驾驶行为参数选择与标定VISSIM的核心是跟驰模型和换道模型。很多人直接用默认参数结果仿真出来的排队长度和实测差一大截就抱怨软件不准。实际上模型标定才是仿真的灵魂。城市道路交叉口我通常选择Wiedemann 74模型这个模型对城市道路的跟驰行为描述更细能反映停车排队时的车距特征。对比Wiedemann 99模型74更擅长低速、频繁启停的场景而99更偏向高速公路。关键参数上我做了以下标定参数名称默认值标定值说明平均停车间距CC02.00 m1.50 m城市路口排队更紧密安全距离附加量CC12.00 m1.00 m跟车激进程度安全距离倍数CC23.00 m3.00 m保持默认前视距离最小0.00 m0.00 m保持默认期望速度分布50 km/h40—50 km/h城市主干路实际车速标定不是拍脑袋我的做法是先按默认参数跑一版把东进口早高峰排队长度输出和实测排队长度对比。实测东进口最大排队约95米默认参数模型输出68米显然太乐观。把CC1从2.0降到1.0后排队长度输出接近89米再微调CC0到1.5米误差控制在5%以内这才算标定完成。另外期望速度分布一定要按实际调查来。龙泉东路限速60km/h但受信号控制影响实际自由流速度在45km/h左右。我在VISSIM里设置了一个40—50km/h的正态分布而不是单一固定速度这样车辆之间才有合理的速度差仿真画面和延误数据都更真实。2.3 信号控制录入与评价指标设置信号控制录入要特别注意信号灯组和信号程序的对应关系。VISSIM里每个信号灯头对应一个信号灯组信号灯组再分配到信号程序。红灯、黄灯、绿灯间隔时间都可以按秒精确设置。我在录现状方案时逐一核对了现场信号机的配时参数周期100秒东西向绿灯60秒南北向绿灯30秒黄灯3秒全红2秒绿灯间隔时间5秒行人绿灯20秒。这些数据不能光靠看最好用秒表实测多个周期求平均因为现场信号机可能存在漂移。评价指标设置是我特别在意的。VISSIM默认输出的延误包含停车延误和加速延误但研究交叉口信号控制效果时我更关注“信控延误”也就是车辆在停车线前由于信号灯引起的延误。VISSIM的节点评价功能可以按“节点”输出平均延误、排队长度、停车次数。我设置了如下评价参数节点范围停车线前后50米范围。数据采集间隔15分钟一个统计段。仿真时间早高峰3600秒前600秒作为预热期不纳入统计。随机种子设置3个不同的种子数每个方案跑3次取平均值。排队长度方面VISSIM提供最大排队、平均排队和95%排队三种统计值。实际工作中95%排队长度最能反映拥堵的严重程度因为它剔除了偶发性尖峰的影响方案对比时优先参考这个指标。2.4 交通需求输入与仿真预热流量输入我选用了静态路径决策方式也就是直接把各进口转向流量按比例分配到对应的路径上。对于这个规模不大的交叉口用动态交通分配反而画蛇添足既增加标定难度结果还不一定更准。输入路径时我按标准车当量折算把公交车流量单独建立车型类型。车型设置上我自定义了三种小型车占比88%、大型车8%、公交车4%。不同车型的加速度、最大速度、尺寸都不一样尤其是公交车频繁加减速对延误影响很大不能简单用默认车型代替。仿真预热这个细节很多人忽略。VISSIM模型刚开始运行时路网是空的交通流需要一段时间才能达到稳态。我设置600秒预热期也就是前10分钟的数据全部丢弃从第601秒开始统计。这样做出来的平均延误才是交叉口在饱和状态下的真实表现否则结果会明显偏小。3. 信号控制优化方案设计3.1 相位方案优化思路现状两相位方案的最大问题是东西向左转车流和对向直行车流之间的冲突。600多辆直行车和200多辆左转车挤在同一相位里左转车只能利用对向车流的可穿越间隙通过一旦直行车流饱和左转车就完全没有机会。我的优化思路是从两相位改为四相位东西向直行、东西向左转、南北向直行、南北向左转分别设置独立相位。这样虽然会增加一个周期的相位数导致总损失时间变长但能消除关键冲突点提高通行效率。相位方案如下相位编号放行车流通行方向备注相位一东、西进口直行东西向对向直行关键车流优先放行相位二东、西进口左转东西向对向左转独立左转相位相位三南、北进口直行南北向对向直行次关键车流相位四南、北进口左转南北向对向左转流量较小相序安排上我把东西直行放在第一个相位因为它流量最大优先放行有利于尽快疏散主向车流。左转相位放在直行相位之后符合驾驶员的心理预期也减少冲突。这里要说一下南北向左转流量其实不大有人建议做成“搭接相位”或者“单口放行”我测算后觉得没必要。独立左转相位虽然会增加周期长度但能保证行人过街和车辆行驶的安全性。对于这种主干路和次干路相交的交叉口稳妥比极端高效更重要。3.2 基于韦伯斯特法的信号配时计算相位方案定了接下来就是算配时。我用了经典得不能再经典的韦伯斯特Webster最优周期公式C0 (1.5L 5) / (1 - Y)其中L是每个周期的总损失时间Y是交叉口各相位流量比之和。流量比是指实际流量与饱和流率的比值用公式y q / s计算。先算各相位的流量比。饱和流率我取实测值直行车道饱和流率按每车道1900pcu/h左转车道按每车道1700pcu/h左转车辆受转弯半径影响通行效率偏低。相位一东西直行西向东直行430pcu/h东向西直行620pcu/h。这里取关键车流620pcu/h2条直行车道饱和流率3800pcu/h。流量比y1 620 / 3800 0.163。相位二东西左转最大左转流量200pcu/h1条左转车道饱和流率1700pcu/h。y2 200 / 1700 0.118。相位三南北直行最大直行流量480pcu/h1条直行车道饱和流率1900pcu/h。y3 480 / 1900 0.253。相位四南北左转最大左转流量120pcu/h1条左转车道饱和流率1600pcu/h。y4 120 / 1600 0.075。Y y1 y2 y3 y4 0.163 0.118 0.253 0.075 0.609。这个数值小于0.9说明交叉口饱和度总体可控四相位方案是可行的。损失时间L按每相位黄灯3秒加全红2秒算四相位共20秒。代入公式C0 (1.5 × 20 5) / (1 - 0.609) (30 5) / 0.391 89.5秒取整到90秒。90秒比现状100秒还短10秒这可能会让人意外但韦伯斯特法的核心就是避免周期过长导致绿信比浪费。周期越短车辆等待的循环时间越短延误自然降低。有效绿灯时间总量为C0 - L 90 - 20 70秒按各相位流量比分配g1 70 × (0.163 / 0.609) 18.7秒取19秒g2 70 × (0.118 / 0.609) 13.6秒取14秒g3 70 × (0.253 / 0.609) 29.1秒取29秒g4 70 × (0.075 / 0.609) 8.6秒取9秒3.3 行人过街与安全校验配时算完不能直接上必须做行人过街校验。龙泉东路宽24米行人过街速度按1.2m/s计算最小绿灯时间需要24 / 1.2 20秒再加上绿灯闪烁和行人启动反应时间实际至少需要25秒。这就有问题了相位一和相位三的绿灯时间分别是19秒和29秒相位一的19秒不满足行人过街需求。解决的办法有两个方向一是把行人过街改为二次过街在路中间设置安全岛这样行人可以分两次通过每次过街距离缩短到12米绿灯时间要求也变成了12 / 1.2 5 15秒二是适当延长周期把绿灯时间整体拉长。我选择了第二种方案因为增设安全岛涉及土建改造工期和成本都高。把周期从90秒调整到100秒重新计算有效绿灯时间总有效绿灯时间 100 - 20 80秒。g1 80 × (0.163 / 0.609) 21.4秒取22秒g2 80 × (0.118 / 0.609) 15.5秒取16秒g3 80 × (0.253 / 0.609) 33.2秒取33秒g4 80 × (0.075 / 0.609) 9.9秒取10秒g1取22秒仍然低于25秒的行人安全需求。经过和甲方沟通龙泉东路现状行人过街流量不大且行人信号可以单独设置与机动车相位搭接。最终行人信号方案是相位一期间放行东西向行人绿灯22秒加3秒黄灯行人实际通行时间为25秒满足基本需求。在高峰时段现场可以考虑安排协管员引导这个留作后续建议。最终优化配时方案相位绿灯秒黄灯秒全红秒周期合计秒相位一东西直行223227相位二东西左转163221相位三南北直行333238相位四南北左转103215合计———101方案周期约为100秒和现状周期保持同一量级便于信号机参数切换也避免周期突变给驾驶员带来不适应。3.4 优化方案落地到VISSIM配时计算是纸上谈兵最终效果还得靠仿真验证。我把优化方案录入VISSIM信号控制模块和现状方案在相同路网、相同流量、相同随机种子下做了对比。录入时有一个细节想提醒大家VISSIM的“信号程序”里绿灯时间指信号灯组显示绿灯的时长黄灯和全红要单独填写。我当时的配置是每个相位“绿灯黄灯3秒全红2秒”信号程序总时长刚好100秒。如果信号程序时长和周期计算不一致VISSIM会自动循环可能导致绿灯时间错位仿真结果就废了。由于相位一绿灯只有22秒相比现状的60秒大幅缩短东西向驾驶员可能不适应。我在模型里没有专门模拟这个适应期不过在方案落地建议中我提出优化方案实施后的第一周应采取过渡配时比如先按中间值周期运行再逐步调整到目标方案以降低对车流的影响。4. 仿真对比分析与方案优选4.1 评价指标体系与服务水平分级信号控制方案的好坏不能只看一个指标。我选了三类指标效率指标平均信控延误、平均停车次数。延误越低说明通行效率越高停车次数越少说明车辆运行越平顺。空间指标平均排队长度、95%排队长度。排队长度反映交叉口是否容易溢出到上游路口这是判断方案可行性的关键。综合指标服务水平LOS。按照美国HCM 2010的分级标准信号交叉口服务水平根据平均信控延误划分A级小于10秒B级10—20秒C级20—35秒D级35—55秒E级55—80秒F级大于80秒。服务水平这个指标虽然受主观评价影响但作为向甲方汇报的直观结果非常有效。现状交叉口早高峰延误已经超过70秒属于E级晚高峰更是逼近F级这样的数据拿到桌面上优化必要性不言而喻。4.2 早高峰仿真结果对比通过VISSIM仿真我得到了优化前后早高峰各项指标的对比数据评价指标现状方案优化方案改善幅度平均信控延误s/veh76.841.5下降45.9%平均停车次数次/veh1.81.1下降38.9%平均排队长度m7852下降33.3%95%排队长度m14896下降35.1%服务水平E级D级提升1级从数据看优化方案把平均延误从76.8秒降到41.5秒服务水平从E级提升到D级但还没有进入C级。这也正常因为四相位方案虽然消除了冲突但南北向左转相位流量较小绿灯时间利用率偏低整体延误下降幅度不可能无限大。有意思的是东西向直行延误变化最明显。四个方案前后对比东进口直行车辆的平均延误从82秒降到38秒因为相位一虽然绿灯时间短了但放行更连续车辆一次就能通过交叉口不用再等两三个周期。这个结果验证了“周期短不一定延误高”的理论也说明对症下药的重要性。4.3 敏感性分析与鲁棒性检验仿真数据出来之后我没有急着下结论。信号配时方案最怕流量变化后性能急剧恶化所以我做了两组敏感性分析一是把各进口流量分别增减10%和20%观察延误变化趋势二是把随机种子换掉检验模型输出的稳定性。流量增减20%的测试结果让我比较放心优化方案在流量增加20%的情况下平均延误上升到52秒但始终没有出现排队溢出的现象而现状方案在同样流量下延误直接突破100秒交叉口已经处于过饱和状态。这说明四相位方案的通行能力冗余度更好抗流量波动能力更强。随机种子测试方面我分别跑种子1、种子5、种子10三组优化方案的平均延误极差只有3.2秒稳定性很好。如果三个种子的结果差出15%以上说明模型内部出现了不稳定的交通流现象比如某条左转车道频繁锁死这时需要回到路网建模去检查连接器或车道设置。敏感性分析还揭示了一个潜在风险如果东向西左转流量再增加30%现行方案相位二的16秒绿灯可能不够。我在最终报告里建议远期如果能把交叉口东进口拓宽出第二条左转车道信号配时还有进一步优化的空间饱和度可以再降10个百分点。5. 实操中的典型问题与避坑记录5.1 仿真发散与模型不收敛建VISSIM模型时最怕遇到“仿真发散”这种问题具体表现是车辆速度出现突变、车身穿模、排队溢出后车辆原地打转甚至某条车道上车辆密度异常堆积。我这次建模就遇到过两次“发散”。第一次发生在交叉口内部冲突区原因是左转连接器的终点和出口道没有对齐车辆出了停车线以后不知道往哪条车道走全部挤在路口中间。解决办法是删掉连接器重新画让连接器终点精确贴合出口道中心线。第二次是东进口排队过长导致车辆溢出到上游相邻交叉口。这其实不是建模错误而是现状方案本身的问题。对比模型时我没有去强行修正因为能真实反映现状拥堵程度反而是后续评估优化方案溢出不溢出的重要参照。但仿真时需要注意把路网范围适当外扩保证溢出车辆有足够的空间排队不会因为路网边界而卡死。5.2 信号配时录入中的常见错误信号配时录入到VISSIM时有几个细节特别容易翻车信号周期时长不闭合信号程序里各相位绿灯、黄灯、全红时长之和必须等于周期时长否则VISSIM会强制截断或向后顺延导致实际绿灯时间和设计值不符。行人信号组遗漏行人过街信号需要单独设置信号灯组并和机动车信号相位建立“随动”关系。如果遗漏行人会不受控地横穿马路模型输出的行人延误数据全是错的。信号灯头位置错误信号灯头要设置在停车线上方确保车辆在停车线后能看到信号。如果灯头设置在连接器末端车辆已经越过停车线才看到红灯刹车距离不足仿真结果会有大量闯红灯记录。这些错误我在早期项目里都犯过每次排查都要花不少时间。现在我的习惯是建完信号程序后先单步仿真跑30秒紧盯每个相位切换时的车辆行为。确认没有异常再跑完整仿真这个习惯帮我省了很多返工时间。5.3 延误数据波动太大怎么办有朋友问过我为什么同一方案跑两次延误数据能差20%。这种情况通常有三个原因第一随机种子数太少。VISSIM的交通流生成带有随机性我测试过如果只跑一个种子延误波动范围在±8%左右跑3个种子取平均值波动范围能压缩到±3%。所以建议每个方案至少跑3个种子。第二预热时间不足。如果路网还没达到稳态就开始统计前几分钟的车辆稀疏状态会把延误数据拉低导致结果失真。我习惯用600秒预热对于规模较大的路网预热时间可以加到900秒。第三评价节点范围设置不一致。节点范围设置不同统计到的车辆样本就不一样。对比方案时必须保证每次评价的范围完全一致否则数据没有可比性。还有一个冷门但很有效的方法看延误的累计频率曲线。有些方案平均延误差不多但尾部延误差异很大比如95%分位延误相差30秒。如果优化方案只是平均延误低、尾部延误高说明仍有部分车流遭遇多周期等待这时候需要进一步优化相位差或绿信比而不能只看平均值。5.4 模型标定的经验补充模型标定这件事我再说点实际体会。标定不是把参数调到仿真结果“看起来合理”就行而是要和实测数据严格对标。我的流程是分两步第一步宏观对标。把仿真输出的路段平均速度、行程时间和实测浮动车数据对比误差控制在10%以内。这一步主要检验路网整体行为是否一致。第二步微观对标。把各进口道排队长度、停车次数、延误和视频统计对比。排队长度是最好用的标定指标因为它对跟驰参数最敏感。误差控制在5%以内模型基本就合格了。标定时有一点要提醒不要为了拟合一个指标而疯狂调参数那样会导致模型在其他场景下失真。每次调整参数都要问自己“这个参数在物理上合理吗”比如CC1安全距离附加量调到0.5就不太现实太激进的跟车行为在仿真画面里一眼就能看出来不自然。另外标定完成后一定要做“异地验证”用另一天或另一个时段的数据跑一遍模型看误差是否仍然在可接受范围内。如果早高峰标定的模型拿到晚高峰就不准了说明模型里还有没捕捉到的动态因素比如驾驶员在晚高峰的驾驶行为更急躁那就需要把参数调整为分时段变化而不是用一个固定值跑全天。最后的实际体会交叉口信号优化做得多了我越来越觉得VISSIM仿真的价值不在于把延误从70秒算到40秒这个数字本身而在于它逼着你去建立一套“现状摸底—建模标定—方案设计—仿真验证”的闭环流程。这套流程走完你对交叉口运行规律的理解会深一个层次。龙泉东路与海山南大街交叉口这个项目最后交付的除了优化方案还有一套标定完成的VISSIM模型甲方后续做交通改善评估时可以直接拿来复用这算是额外给他们的一个资产。如果你也在做类似的交叉口优化我的建议是多用95%排队长度而不是平均延误来判断方案好坏多跑几个随机种子而不是迷信单次仿真结果多和现场观察结合而不是埋头调参数。方案做得再漂亮最终要经得住真实车流的检验。希望这篇经验能帮你在VISSIM仿真和信号优化的路上少踩几个坑。