☰
Legion人群仿真软件全解析:从Agent模型到工程实践
2026/10/16 5:31:02 网站建设 项目流程

先说个背景。上次我写过一篇“人群仿真软件怎么选”的综述,把市面主流产品按应用方向撸了一遍,结果后台不少朋友问:Legion这个工具到底牛在哪?跟其他软件比是不是真像宣传说的那样“国际基建标配”?正好手头刚结束一个换乘枢纽的评估项目,趁热把Legion的基本功能、底层逻辑和实操踩坑一并整理出来,作为这个系列的续篇。

人群仿真软件Legion,放在公共空间设计这个行当里,其实就干一件事:把“人怎么走、哪里会挤、疏散要多久”这种以前只能靠经验拍脑袋的问题,变成可量化、可对比、可汇报的数据图表。它最典型的应用场景是交通枢纽、体育场馆、商业综合体、医院门诊楼这类人流密集空间,用来评估闸机数量够不够、疏散通道宽度够不够、换乘大厅会不会堵成一锅粥。对建筑设计师、消防性能化设计者、交通规划师、运营管理人员,甚至写大作业的学生来说,它都是一个能显著提升方案说服力的工具。

这篇我打算分五块讲:先定位Legion能干什么又不能干什么,然后拆解它的核心功能模块,再聊它的底层模型为什么能让人信服,接着给一套完整实操流程,最后把我这些年跑模型踩过的坑一次性倒出来。内容偏工程实用,不整虚的。

1. Legion到底是个什么工具:定位、边界与典型场景

1.1 先搞清楚:这类软件解决的不是“画图”问题

很多第一次接触Legion的朋友会惯性思维,觉得“这不就是个三维动画软件吗?把小人放进建筑模型里跑一跑”。真不是。Legion的核心价值不在“画”,而在“算”——它是一套基于Agent的微观行人仿真系统。所谓“微观”,意思是每一个“小人”都是一个独立决策体,有自己的速度分布、身体尺寸、路径偏好和躲避行为,而不是像宏观流体模型那样把人群当成一股水来算。

举个直观例子。在设计一个地铁换乘大厅检票闸机时,传统算法一般用“高峰小时客流量×平均通过能力”来算闸机数量,最后得出一个总数。但Legion能做的是:把你设定的早高峰客流真正“放进”空间里,让他们从各个入口进来,走向不同线路的闸机,有人排队、有人绕行、有人慢悠悠看指示牌,然后告诉你哪里的排队队伍会长到把通道堵住,哪个闸机的利用率只有四成,疏散时哪个出口会成为瓶颈。前者告诉你“够不够”,后者告诉你“哪里不行、为什么不行、怎么改最有效”。

这也是我判断一个项目该不该用Legion的分水岭:如果只需要“总量估算”,Excel加规范条文就够了;如果需要“空间优化的方向性结论”,那才轮到Legion上场。

1.2 典型项目类型:什么时候该上Legion

跑过几轮项目之后,我把适合用Legion的场景归纳为四类:

  • 交通枢纽类:高铁站、地铁站、机场航站楼、公交首末站。核心问题通常是换乘通道宽度、安检区排队空间、闸机数量与布局、高峰小时疏散组织。
  • 大型活动类:体育场馆、会展中心、音乐节临时设施。核心问题是散场疏散时间、出入口流量分配、临时护栏与引导方案效果验证。
  • 商业与医疗类:大型商场中庭、医院门诊大厅、学校食堂。核心问题是不同时段人流叠加后的拥挤程度,以及紧急情况下的疏散能力。
  • 城市更新类:老旧片区改造、新建地下空间。核心问题是规划方案在不同人流量情景下的表现,为决策提供量化支撑。

我做过的某换乘枢纽项目就是一个典型案例。当时设计方提出了三套检票厅布置方案,争论焦点是“东侧入口加宽到8米还是10米更划算”。传统经验判断是“能宽就宽”,但仿真结果显示:因为西侧地铁出站客流与东侧高铁进站客流恰好相反方向,入口宽度到8米以后,瓶颈根本不是入口,而是检票机前的蛇形排队区。加宽入口多花的造价,不如挪一点空间给排队缓冲。这类结论,没有仿真模型很难在方案阶段让所有决策方心服口服。

1.3 别指望它干这些事:边界与局限

Legion不是万能的,我在项目汇报时习惯先讲清楚它的边界,避免后面被甲方拿着错误预期来质疑。首先,它擅长微观空间尺度,不适合做宏观路网级或区域级的交通流模拟,如果你要研究几十公里范围内的人车分流,那是另外一类交通仿真软件的活。其次,它对几何细节要求比较高,特别复杂的曲面空间、自由造型建筑,建模成本会指数级上升,性价比不高。第三,内置的默认参数虽然能用,但要做到“精准预测”,必须有实测数据进行参数校准,纯靠软件默认值跑出来的结果,更适合做方案比选,而不是绝对数值承诺。

一句话总结定位:Legion是“空间方案阶段的设计决策支持工具”,不是“运营阶段的实时客流预报系统”。把这句话理解了,后面所有功能拆解都不会跑偏。

2. 拆开看Legion的核心功能:建模、仿真、分析一条线

2.1 空间建模:把建筑图纸变成“人能走的空间”

Legion的第一个核心能力是空间建模。它支持从DXF/DWG等常见CAD格式导入平面图,然后通过一系列空间元素把“建筑图”翻译成“行人可理解的环境”。这一步是整个仿真项目的底盘。

它建模的对象主要有这几类:可走行地面(Walkable Area),这是行人脚能踩上去的区域;障碍物(Obstacle),包括墙、柱、座椅、花坛等行人不能穿过的物体;垂直交通设施(Stairs、Escalator、Ramp),要分别设置方向、宽度和通行能力;排队区(Queue),常见于安检、检票、售票这类需要“蛇形排队”的功能区块;闸机类通道(Barrier/Bottleneck),用于模拟刷卡闸机或门禁。

这里面最容易让新手翻车的是两个细节。第一,建模前一定要清理图纸,把多余文字、标注、填充图案统统删干净,否则导入后这些东西会被识别成障碍物,产生一堆莫名其妙的绕行路径。第二,空间的“连通性”至关重要。行人仿真的寻路逻辑依赖于各个可走行区域之间是否有公共边界或连接点。很多时候仿真结果异常,比如小人原地打转、宁可绕远路,不是算法问题了,而是你建模时漏了一条门洞那么宽的连接带,空间在软件眼里是两块“孤岛”。

我常用的做法是:先导入平面底图,用多段线把每个房间和通道描出来,不急着精细建模,先保证每个区域之间都有合理的开口连通,然后跑一次“空跑测试”,看行人能不能从任意起点走到任意终点。能走通,再逐级加细节。

2.2 Agent定义:每个“小人”都是一个独立的决策体

空间建好了,接下来就是往空间里“放人”。Legion里的“人”并不只是一个个动画角色,每个Agent都自带一组行为参数,包括期望步速、步幅、身体尺寸、加速度响应、路径选择偏好等。

这些参数直接决定仿真结果的合理性。举个例子,默认情况下通勤成年人的期望步速在1.2~1.6米/秒之间,但如果你的项目里有一半客流是拖着行李箱的旅客或带着孩子的家庭,需要把人群组成改成“通勤者+老年+儿童+携行李者”混合模式,并相应下调步速分布。这个动作不是可选项,而是必选项。国内很多高铁站和机场,高峰期携行李比例超过四成,直接套通用默认参数跑出来的疏散时间,比实际会偏乐观,这种报告拿出去是要出问题的。

Legion的实用之处在于它有一套相对完整的人群构成编辑体系。你可以定义不同类别行人的比例、速度分布曲线、身体椭圆尺寸,还可以设置结伴行为——比如两个人并肩走、手牵手,系统会让他们在行进中保持一个组内间距。这种细节在商场中庭和游乐场类项目里非常关键,因为家庭结伴人群的行为模式和独自通勤者完全不一样,前者会频繁停留、张望、突然转向,后者则是典型的目的导向。

2.3 仿真引擎:人在空间里是怎么“动”起来的

空间和Agent定义好后,就进入仿真引擎环节。Legion的仿真原理,用一个词概据就是“微观互动”:每个行人都朝向目标行走,同时不断感知周围环境和其他行人,做减速、避让、超车、排队等局部决策。大量个体在统一规则下交互,最终宏观上就会出现“自组织现象”——比如双向人流自然分成左右两股通道、狭窄瓶颈前自动形成V字形排队、拐角处出现弧形的通行弧线。懂行人一眼就能看出,这是典型的基于Agent的社会力模型思路,跟流体力学式的均匀扩散模型完全不同。

这里有个很容易误解的点:你不需要像导演一样给每个小人编排“从A走到B的第几秒在第几步转弯”。你需要做的是定义客流需求(Origin-Destination,即每一股人流从哪个入口进来、去哪个出口/目标区域、什么时候进来、流量多大),剩下的路径选择和时间分配全部交给仿真引擎。路径规划一般分为全局路径层和局部避障层:全局层负责找一条从起点到目标的最短/最优路径,局部层负责在行走中应付面前的“挡路者”。两层一配合,你就会看到小人绕开前方慢速行人,从队列侧面穿过去追同伴,这些细节不是预先写死的剧本,而是模型真实“涌现”出来的行为。

2.4 结果分析:让各方都能看懂的输出体系

仿真跑完以后,Legion会把海量数据压缩成一系列“给设计师和管理者看”的图表,这也是它相比很多自研脚本的强项——分析输出高度产品化。

最常见的四类是:密度热力图(Density Map),用红橙黄绿把空间各点的平均拥挤程度可视化;走行轨迹图(Trajectory Map),展示行人的实际行走路径分布,能看出哪里被“走秃了”、哪里根本没人走;服务水平图(Level of Service Map),按行业通行的人均占用面积标准给空间评级;时间-空间图(Space-Time Diagram),展现某条通道或某个瓶颈处人流的时空聚集模式。

这里要特别提一下服务水平(LOS)这个概念。业内常用的是Fruin提出的A-F六级体系,我在项目里整理了一张速查表,方便给业主解释:

等级人均占用面积直观状态典型场景
A≥1.4 平方米/人自由行走,可越过他人凌晨空荡的航站楼
B1.0~1.4速度略有下降,正常通行平峰期的商业街
C0.7~1.0需频繁调整速度,可保持低速行走晚高峰换乘通道入口
D0.4~0.7速度受限,难以越过慢行者高峰期的安检排队区
E0.2~0.4几乎无法正常行走,身体接触增多演唱会散场时的出入口
F≤0.2停步不前,拥挤踩踏风险极高极端拥挤的通道瓶颈

一张LOS图出来,不用懂技术的人也能一眼看出问题:哪些区域常年处在D级以下,哪个出口设计宽度在散场时刻根本喂不满需求。这种“图形化说服力”是Legion在项目汇报中最大的价值。

3. 为什么结果可信:底层模型、校准思路与工具对比

3.1 微观仿真模型的核心:每个个体都有“自己的想法”

如果你问任何一位用Legion做过项目的人“这软件的底气在哪”,十有八九会回答:它的Agent模型比老一代“人流均匀分布”算法高级得多。这个模型把人当成一个个有目标、有知觉、有身体占用的独立单元,而不是被平均分割的“流体微团”。

可以这样理解:流体式的人群模拟像往水池里倒一瓢水,水会均匀摊开,遇到障碍物自动分流;而Agent式模拟更像在蚂蚁窝里撒一把面包屑,每只蚂蚁各自侦察路径、相互协商、绕过障碍物,最后整个蚁群形成一条条清晰的觅食路线——但没有任何一只蚂蚁知道“整体路线图”。这正是涌现式模拟的核心逻辑:个体规则简单,群体行为复杂。

社会力模型是这个逻辑的经典数学表达:行人受到朝向目标的“驱动力”、来自障碍物和其他行人的“排斥力”、以及结伴带来的“吸引力”共同作用。Legion对这种力的平衡做了大量工程化实现,所以你在模型里看到的行人运动是连续、平滑、符合直觉的:速度不是瞬变,而是加速度变化;避让不是机械转弯,而是带着身体旋转的弧线。

3.2 校准与验证:仿真不是“算命的”

再高级的模型,参数不对就是纸老虎。一个负责任的Legion项目,必须走“调查-校准-验证”三步流程。

比如你模拟一个火车站检票厅,第一步是去现场拍视频或人工计数,统计真实客流的速度分布曲线、流量特征、排队长度和进出站比例。第二步,把统计结果反哺到模型参数里,让虚拟客流的“行为特征”贴近实地观测值。第三步,用一个你没参与参数标定的时段(比如下午平峰期)来验证模型:把对应的客流需求输进去,看仿真输出的排队长度、行走时间是否跟现场实测吻合。误差在合理范围(通常10%~15%以内),这个模型才算“可信”,拿去预测未来高峰才有底气。

这块也是区分“会用软件”和“能做咨询项目”的关键。很多新手拿到软件就习惯性点“Run”,出来的结果虽然好看,但一问怎么验证的,就开始支支吾吾。这几年消防性能化设计和交通影响评价报告审查越来越严,评审专家经常直接问校准数据来源和验证误差。所以后面大家自己跑项目时,建议务必保留一份完整的“模型校准记录”,包括原始录像截图、人工计数表、参数调整前后对比曲线。这份东西在答辩时的分量,比十页漂亮的彩图都重。

3.3 横向对比:Legion和同类工具怎么选

用得多以后,我习惯把市面主流工具分两类:一类是“用起来轻、上手快、适合单场景快速评估”的轻量级疏散仿真软件,另一类是“空间细节多、行为参数细、适合大型枢纽级分析”的重型工具。Legion明显属于后者。

和另一款以CAD插件形式嵌入、侧重疏散路径分析的软件相比,Legion在公共交通枢纽建模上有几个不可替代的优势:一是数据类型丰富,能导入复杂多层的枢纽模型,并精细建立扶梯、通道、闸机等设施的运行逻辑;二是输出指标体系完整,LOS分级、空间时间热图、排队曲线这些都是规划项目里甲方点名要的东西;三是它处理大规模Agent的能力很强,几万人同时仿真的场景也扛得住。

但它也有让人头疼的地方:学习曲线比较陡,新手光理解“走行空间要清理干净”这个建模原则就得磨合一阵;授权价格也不便宜,不是随便一个学生项目就能上。所以选型逻辑我建议是:要做交通枢纽、大型场馆这类“拼细节、拼说服力”的项目,优先考虑Legion这类重型工具;只是方案阶段粗略估一下疏散宽度够不够,用轻量级方案或Excel估算完全够用,别用牛刀杀鸡。

4. 从零跑通一次仿真:实操流程、参数设置与结果解读

4.1 建模前的准备:拿到一张“能喂给软件”的底图

第一关往往不是软件操作,而是图纸清理。我的习惯流程是:先拿到建筑专业提供的CAD平面图,新建一个建模图层组,把原始图XREF(外部参照)进来看一眼;然后新建一层,用多段线手动描出所有可走行空间的轮廓线,墙、柱、家具一步到位画成闭合多段线;最后关掉原始图层,把描好的底图另存为一份干净的DXF导入Legion。

为什么要花这个冤枉时间手动描图?因为直接导入原始CAD图,经常会出现大量零碎短线、重叠面、未闭合边界,软件识别后要么生成密密麻麻的微型障碍物,要么在局部区域产生“间隙缝隙”,小人走着走着就掉进缝里动弹不得。手动描图虽然前期慢,但能省掉后面排查几何错误的无数时间。做这行有个经验法则:几何清理花的时间约占整个项目仿真周期的三成,磨刀不误砍柴工。

另外,单位统一务必检查。我见过某项目的平面图是以毫米为单位导入的,结果配好的速度参数全部失效,行人在图面上看起来像蚂蚁挪动。设定模型空间比例时,优先确认单位是“米”,否则后续所有距离和速度参数都得跟着错。

4.2 定义空间功能、垂直交通与行人需求

底图干净了,接下来在Legion里逐项定义空间功能。比如一个标准的高铁站进站厅,我一般分这么几步:

  1. 把候车大厅地面框选为主要走行空间,站房内的柱子逐一设为障碍物,四周墙体作为边界。
  2. 在西侧定义自动扶梯和楼梯,分别给出上行/下行方向、有效通行宽度,扶梯还要设置运行速度,默认按0.5米/秒左右设置,真实值以现场为准。
  3. 在进站口布置一组检票闸机,每个闸口的通过能力按2400人/小时左右的经验值设定,具体要看是双向还是单侧门。
  4. 定义客流需求:早高峰7:30到8:30之间,南侧入口进站客流1200人,西侧地铁站换入客流2800人,各股客流分别流向1、2、3号候车区,比例按调查数据分配。

这套“空间+设施+需求”三层定义,是Legion建模的骨架。骨架搭得越贴近实际,仿真结果就越有参考价值。特别提醒一点:出入口或闸机这类“附加通行能力的边界”一定要用专门的通道对象来定义,而不是简单地在墙上开个缺口。否则行人流量完全不受通行能力和闸机服务时间限制,仿真输出就会变成“所有人同时涌进去”的极端失真画面。

4.3 运行仿真的参数选择:随机种子、重复次数与场景组合

参数设置这块,新人最不重视但后期最容易被人质疑的就是“随机性和多次运行”。Legion的行人行为带有随机特征,所以第一次运行结果和第二次运行结果不可能完全一样,这非常正常。正确的做法是:对同一场景至少跑10~30次,取统计平均值和适当百分位(比如95百分位),用这个“统计包络”来代表场景的通行服务水平。

我在项目里一般按三组场景做矩阵:常态平峰、常态高峰、应急疏散。每组场景固定客流需求,只改变随机种子重复跑20次,输出平均密度、最大排队长度和疏散总时间三个核心指标。汇报时一般展示“平均+最不利”两条曲线,既能让业主看到典型情况,又能体现安全裕度。

还有一类参数值得格外关注:仿真计算时间步长。步长太长会丢失行人之间的细微避让行为,导致密度失真;太短则会让计算时间爆炸。一般默认的仿真步长在0.1~0.2秒级别就能满足绝大多数项目需求,除非你在做超高密度的极端疏散分析,否则不需要刻意调小。

4.4 读懂三张核心图:热力图、路径图、服务水平图

模型跑完,就要从一堆输出里提炼“能讲人话”的结论。我每次汇报必放三张图:

第一张是密度热力图。把时间轴调到最不利的高峰时刻,截图看哪里“红”了。红色区域就是瓶颈,比如换乘通道的交叉点、安检区入口的过渡段。第二张是路径轨迹图。这张图能回答“人流实际怎么走的”和“设计的路线有没有被真正使用”。我做过一个商场中庭项目,轨迹图显示大部分行人根本不走设计方预留的“主通道”,而是沿橱窗边缘走出一条斜线,最后形成一条设计师完全没料到的非正式捷径——这直接影响了后续商铺布局和家具摆放。第三张是服务水平图,把LOS等级涂到平面上,一眼定位“D级以下区域”。

解读时有个经验:别只贴一张图就完事,一定要按时间切片放“拥堵形成-高峰维持-逐渐消散”三张,让观众看到动态过程,而不是静态瞬间。否则别人很难判断到底是一闪而过的瞬时拥挤,还是持续半小时的结构性问题。我在实践中通常将每一分析场景输出做成一段短视频,在最后正式汇报中覆盖静态图和动态视频两套素材,效果显著好于只给一页“红图”。

5. 常见问题与避坑实录:多年项目总结的教训清单

5.1 模型跑不动或者结果跳动剧烈:先查几何,别急着调参数

遇到仿真结果不合理,我的第一反应永远是回去检查几何信息,而不是调行为参数。虚实难辨的零碎障碍物、重叠的可走行区域、未闭合的墙体边界,都会导致Agent在局部区域陷入振荡或卡死。表现为:一个小人不停原地转圈、某个区域密度异常偏高、相邻两次运行结果差异巨大。

排查技巧很简单:在仿真开始前,先让一两个测试Agent从所有关键入口走到所有关键出口,走不通的位置就是几何问题所在。另外,开启软件自带的“路径可视化”模式,直接看到Agent感知到的可行路径网格,网格破碎或扭曲处就是几何清理的死角。

5.2 仿真画面很“假”:行人在穿模、逆行、原地打转

几何没问题画面的确有问题,大概率是参数配置或对象定义出了岔子。最常见的是行人与障碍物碰撞,主要原因是身体椭圆尺寸设得过大而通道宽度设得过窄,或者障碍物边缘未留出足够的“缓冲间距”。处理方式是把行人身体尺寸按实际群体组成调小10%~20%,同时把通道与障碍物边缘的间距设到0.2米以上。

逆行现象通常源于OD表方向设反或垂直到达设施的方向错误,检查一下每个入口的“目标区域”是否都指向正确方位。原地打转则常见于排队区设置不当——比如蛇形排队区的转弯半径太小,行人无法按行人模型顺利转弯,就一直转圈。把排队区转弯半径加大到1.5米以上,这一现象基本能消除。

5.3 仿真结果与现场实测偏差大:校准流程不到位

这是最棘手的一类问题。偏差大的原因通常不是软件算错,而是输入条件与实际不符。要么是客流需求数据错了,要么是速度、结伴等行为参数与实际人群不符,要么是设施通行能力和实际运营模式不一致,比如检票员查票速度设得太快或太慢。

处理办法就是回到3.2节讲的校准流程:先核对OD数据和分时客流曲线,卡到分钟级;再做人行速度实测,统计不同人群类别的速度分布;最后对闸机或安检通道做计时观测,把服务时间从“经验值”改成“现场实测值”。多轮迭代后,模型输出和实测差值基本能控制到可接受范围。

5.4 汇报演示时容易被挑战的四个细节

最后讲点汇报层面的教训,都是真金白银换来的:

  • 不要只贴“平均”结果。评审专家最常问的是“最坏情况是多少”,所以保留95百分位和最不利单次结果很重要。
  • 动画比静图更抗质疑。模型行人的走行路线和心理舒适度,光靠一张热力图说不清,但一段三维走行动画能让在场所有人都直观感受到问题严重性。
  • 明确告知假设条件。客流预测值、设施通行能力、行为参数如果来自规范或文献而非实测,一定要在汇报中列清楚。隐瞒假设一旦被专家挖出来,整个分析的可信度会归零。
  • 区分“仿真结果”和“设计结论”。仿真提供的是“如果……那么……”的定量关系,设计决策还须结合造价、运营、结构等条件综合确定。说成“仿真证明此方案最优”是给自己埋雷,说成“仿真显示该方案在客流高峰时段换乘通道处于E级服务水平,建议优化排队区布局”才是严谨表达。

这几年做过高铁站、体育场馆、商场改造等项目之后,我最大的体会是:Legion这类人群仿真软件本质上不是在“预测未来”,它是在帮你把设计假设拿进一个虚拟的“人群实验室”里反复压测。结果不会给你“唯一正确答案”,但它能把方案之间细微的差异放大成肉眼可见的体验差距,让决策者不再靠嗓门大小和资历深浅来争论。

最后分享一个我用得比较顺手的扩展思路:做完一次仿真后,别急着删模型。把项目里改过的宽度、闸机数量、出入口位置整理成多组参数化变体,用Legion批量跑一遍,形成“参数-平均疏散时间”对照表,这个表在后期和业主谈设计余量时非常能打。毕竟,仿真模型建一次的成本不低,多榨出几组对比结论,这笔投入才真正划算。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询