红绿灯配时实测:固定 60 秒 vs 自适应,2400 辆车差多少

举报
deli007 发表于 2026/11/11 06:34:44 2026/11/11
【摘要】 红绿灯配时实测:固定 60 秒 vs 自适应,2400 辆车差多少

四个进口各 600 辆/小时,一小时理论上有 2400 辆车经过这个路口。

泊松到达实际来了 2367 辆,我把同一批车喂给四种配时策略,只换信号灯的控制方式。

最快的是 LQF,平均延误 9.8 秒。最慢的是固定 90 秒周期,18.2 秒。

两者差 29%。

更反直觉的是,绿灯时间更长的固定 90 秒,输给了固定 60 秒。

高峰 600 辆/小时下,固定 60 秒周期的实时路口

这些数字不是我盯着一辆车掐表算的。

每辆车都有到达、排队、启动、通过四个时间戳,延误由仿真器逐秒推出来。

一、为什么值得看:红灯前的几十秒浪费在哪

路口有四条进口道,北、南、东、西。

每辆车按 60% 直行、25% 左转、15% 右转生成,右转不受灯控,直接走。

直行和左转跟随机动车绿灯,两相位轮转:南北放行,东西放行。

每次切换要 3 秒黄灯加全红,用来清空路口。

一个 60 秒周期切两次,固定损失 6 秒。绿灯刚亮还有 2 秒启动损失。

饱和流率按 1800 辆/小时算,但一个进口能过多少车,取决于它拿到多少绿时。

固定 60 秒给每个方向 27 秒绿,理论通行能力是 1800×27÷60,也就是 810 辆/小时。

固定 90 秒给 42 秒绿,理论值 840 辆/小时。

600 辆/小时的需求,已经占到固定 60 秒能力的 74%。

900 辆/小时则超过了两种固定周期的能力,排队会一直涨。

所以红灯等多久,不只是红时长的问题。损失时间、绿信比、需求量三者怎么配,才是关键。

二、四种策略,跑同一批车

我实现了四种控制方式,参数全部摆在页面上。

策略 周期 绿灯规则 切换条件
固定 60 秒 60 秒 每方向 27 秒 固定轮转
固定 90 秒 90 秒 每方向 42 秒 固定轮转
感应控制 不固定 最短 12 秒,最长 45 秒 对向有排队,且本方向 3 秒无新车
LQF 不固定 最短 12 秒,最长 45 秒 每 12 秒比较一次,绿灯给队列更长的一对进口

四种策略共用同一批到达车辆,随机种子 20261110,仿真 60 分钟,时间步长 0.1 秒。

车辆跟驰按 2 秒车头时距放行,第一辆车额外等 2 秒启动。

转向比例、饱和流率、清空时间都相同。变量只有控制逻辑。

三、2400 辆车的四种结果

先看 600 辆/小时这一档。

策略 平均延误 P95 延误 最长等待 最大排队 完成/到达 切换 损失时间
固定 60 秒 13.8 秒 33.8 秒 50.4 秒 11 辆 2356/2367 120 次 16.7%
固定 90 秒 18.2 秒 48.1 秒 58.4 秒 13 辆 2352/2367 80 次 11.2%
感应控制 10.0 秒 25.6 秒 42.9 秒 10 辆 2361/2367 185 次 25.8%
LQF 9.8 秒 23.4 秒 37.8 秒 10 辆 2362/2367 228 次 31.8%

固定 90 秒的损失时间最低,只有 11.2%,但平均延误最高。

原因是它给每个方向 42 秒绿,不管那个方向有没有那么多车。

在 74% 的负荷下,多出来的绿时没有被车用掉,反而让另一个方向多等。

LQF 的损失时间最高,31.8%,平均延误却最低。

它把绿时花在队列更长的一对进口上,切换次数多,但每次切过去都有车可放。

这组数据说明,损失时间不是唯一指标。绿时给谁,同样决定等待。

感应控制在高负荷下会延长绿灯,也会在队列清空后提前切换

四、需求量一变,结论就翻

同一套策略,只改每个进口的需求量,平均延误如下。

每进口需求 固定 60 秒 固定 90 秒 感应控制 LQF
300 辆/小时 10.4 秒 13.8 秒 6.7 秒 6.6 秒
600 辆/小时 13.8 秒 18.2 秒 10.0 秒 9.8 秒
750 辆/小时 16.6 秒 19.9 秒 13.8 秒 14.5 秒
900 辆/小时 44.2 秒 27.1 秒 27.1 秒 77.6 秒
1000 辆/小时 151.9 秒 67.7 秒 88.1 秒 201.2 秒

300 辆/小时这一档,固定 90 秒最差,13.8 秒。

车很少,它还是给每个方向 42 秒绿,另一边空等。

低需求 300 辆/小时,固定 90 秒的平均延误反而最高

600 辆/小时这一档,感应控制和 LQF 领先,比固定 60 秒少等 27% 到 29%。

750 辆/小时时差距收窄,感应控制 13.8 秒,固定 60 秒 16.6 秒,只差 17%。

900 辆/小时是分水岭。

固定 60 秒的通行能力只有 810 辆/小时,需求 900 已经超过它,平均延误冲到 44.2 秒。

固定 90 秒和感应控制都做到 27.1 秒。

LQF 在这里崩了,77.6 秒。

它每 12 秒就比一次队列,谁长就给谁,切换了 207 次。

每次切换损失 3 秒清空加 2 秒启动,损失时间占比 28.8%,有效通行能力被自己吃掉。

到了 1000 辆/小时,固定 90 秒最好,67.7 秒。LQF 最差,201.2 秒。

所以没有一种配时在所有需求量下都赢。

低需求怕空放,高需求怕切换,过饱和时稳定的大周期反而更抗压。

过饱和 1000 辆/小时,LQF 切换过频,平均延误 201.2 秒

五、验证与踩坑:感应控制第一版会丢绿灯

页面加载会跑 12 条自检,当前 12/12 通过。

自检覆盖固定周期的时长相加、同种子结果一致、延误非负、完成数不超过到达数、右转不占绿灯、LQF 优先放行长队列、零需求不出 NaN、非法输入被拦截。

这些自检不是装饰。它们确实抓出了一个逻辑错误。

第一版感应控制的条件是:对向有排队,且本方向 3 秒没有新车,就切换。

听起来合理,实际会丢绿灯。

900 辆/小时换算下来是 0.25 辆/秒,3 秒没有新车很常见,哪怕本方向还排着 8 辆车。

控制器把绿灯切走了,付了 3 秒清空和 2 秒启动,再切回来时队列更长。

修复只加了一个条件:本方向队列必须清空。

if (otherQ > 0 && quiet && ownQ === 0) beginClear(now);

改完之后,900 辆/小时的平均延误从 113.7 秒降到 27.1 秒。

600 辆/小时只从 11.1 秒降到 10.0 秒,差别不大。

这就是边界场景的价值。低负荷下看起来正常的逻辑,到接近饱和才暴露。

第二个真问题是场景定义。

我最初把 900 辆/小时标成高峰,可固定 60 秒的能力只有 810,这个场景其实已经过饱和。

四种策略都在排队,比出来的数字没有意义。

后来把高峰改成 600,过饱和改成 1000,才有了上面那张分档表。

失败路径也测了。需求输入 abc,页面不白屏,结果区保留上一次的有效数字。

错误条原文是「参数错误:每进口需求必须是数字 已保留上一次有效结果」。

非法输入被中文错误条拦住,上一次结果仍然保留

六、准备环境:进入码道 Web

码道有三种使用方式:WebUI、TUI 和桌面 IDE。本文用 WebUI 版演示。

浏览器打开码道 Web 版:https://devcloud.cn-north-4.huaweicloud.com/chat?source=dmzntgwlb&sourcead=dmzntgwlb1&invitecode=INV-IXhxk5bwWx_qKSP1FcgSuiOEf6ruDXtjvLFiCH9nMs5dZGLapaSSylwt-cKRj5LoT3MlxikWxy8VhqplfvtQjefQOq31Tbp3R3wYP3K535Cn4XTaUzqqExKPYTWvvw4LijV14IS1torXdTGp7oyXb6SR5VxgYTg50jM

登录后直接在对话框里描述需求,不需要装软件。

这个页面是单文件 index.html,没有外部脚本、字体和图片,断网也能打开。

七、直接下载试玩

这个 Demo 已经完整开源,源代码、本文档、全部截图都在公开仓库里。

git clone https://gitcode.com/OPCTeam/demo_park.git

进入 codearts-traffic-signal-lab 文件夹,把 index.html 用浏览器打开即可运行,不需要安装任何依赖。

八、使用码道体会

这个页面由码道 Web 一次对话生成,单文件约 84 KB。

它自己跑了 12 条自检,还把对比表、柱状图和 SVG 路口都做出来了,布局基本不用我重排。

生成过程中它检查了自己的截图,发现路口画得太小、上下留白太多,又调了一版。

这部分确实省时间。

但语义错误它没有发现。感应控制丢绿灯这个 bug,页面看起来完全正常,600 辆/小时的数据也很像样。

只有把需求推到 900,数字才露馅。

所以我对它的第一版数据保持怀疑。界面可以信,控制逻辑要自己验。

场景定义也是我改的。它默认把 900 当高峰,可那个需求已经超过路口能力。

工具能写出能跑的代码,判断“这个场景是否成立”,还是得靠人。

九、总结

固定周期不落后,自适应也不是免费的。

在这个路口,600 辆/小时时感应控制和 LQF 比固定 60 秒少等约 28%。

过了通行能力,固定 90 秒反而最稳,朴素的 LQF 因为切换太频而崩盘。

如果你要做真实路口的配时,这篇只能算一个可控的沙盘。

它没有行人相位,没有保护左转,没有相邻路口协调,右转永远放行,到达也严格按泊松分布。

真实路口还要喂转向流量、行人过街需求和上下游协调,才谈得上落地。

下一步我想加绿波协调,把三个路口串起来,看车队能不能一路绿灯通过。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。