资讯动态

Legion人群仿真建模入门:从零创建基本模型的完整指南

发布时间:2026/9/9 15:20:31 来源:尧图企业网站定制
做建筑方案汇报的时候最怕被甲方问到一个问题这个大厅里这么多人走来走去到底会不会堵以前我只能拍着胸脯说“设计上没问题”心里却直打鼓。后来我开始用Legion人群仿真软件跑模型把密度云图、排队长度、疏散时间直接摆在桌面上汇报变得踏实了很多。这一篇是这个系列的第五篇重点讲如何从零创建一个基本的人群仿真模型属于那种“照着操作就能跑通”的入门教程适合正在接触Legion的建筑师、设计师、安全评估人员和咨询工程师。写在前面的提醒搜索“Legion”的时候很容易误入联想电脑的Legion Toolkit那款游戏本控制软件它跟人群仿真完全是两个领域。本文要讲的是英国Legion Limited公司开发的微观行人仿真软件广泛用于地铁站、火车站、机场、体育馆、商场等公共建筑的人流分析和疏散安全评估。Legion最大的强项是把每个人当作一个独立智能体来模拟它能看到路、能避让、能排队、能根据身边密度调整速度而不是把人群当成均匀流动的水。这套机制决定了它能输出非常有说服力的密度、流量和排队数据。下面我按自己的实操经验把建基本模型的完整流程拆给你看。1. Legion人群仿真模型从零起步先弄清楚它解决什么问题1.1 为什么选Legion而不是其他仿真工具市面上的行人仿真工具并不少Pathfinder、MassMotion、SimWalk、AnyLogic都有人用。我并不是说Legion在所有场景下都最好但在交通枢纽类项目里它的认可度相当高。火车站、地铁换乘站这类高密度、方向性强的空间Legion的微观仿真机制特别适合。它把每个人当作独立AgentAgent不仅会走路还会根据视野范围内的障碍物、周边人群密度和自身目的地做实时决策。密度高的时候减速遇到对向人流会绕行赶车的时候会提高步伐频率这些行为都能在模型里体现出来。用一句话概括Legion与传统流量模型的差别就相当于拿“水管流量”和“放学时的教学楼走廊”做对比。传统方法只关心单位时间过去多少人而Legion关心的是具体每个行人是怎么走过去的。这个差别直接决定了你在做瓶颈分析时能不能看到人群在扶梯口形成典型三角拥堵区、能不能看到对向人流来回冲突造成的蛇形走位。我第一次用Legion跑通一个换乘站模型时看到站台上出现“下车的人流把候车人群往外推”的场景总算明白为什么有些站台修得再宽也还是拥挤。1.2 一个基本人群仿真模型由哪些部分组成新手拿到Legion之后最容易犯的错就是一上来就急着加闸机、自动扶梯、商铺、安检机结果界面里堆满对象却没有一条完整的人流。做过两三个项目后我的体会是一个能跑通的基本人群仿真模型核心永远只有四个部分——空间几何、行人构成、出行需求、路线策略。空间几何指的就是底图上哪里可以走、哪里不能走包括大厅、走廊、站台、楼梯、墙体、柱子这些元素。行人构成指仿真人群的身体尺寸、期望速度等特征不同场景差异很大。出行需求回答的是“多少人、从哪来、什么时间去哪里”。路线策略则决定行人出了入口之后怎么走到目标点是直接走最短路径还是中途绕行避开拥挤区。这四个部分拼在一起仿真引擎才能逐秒计算。如果做个类比空间几何是舞台行人构成是演员出行需求和路线策略是剧本。剧本不完整舞台再漂亮也排不出好戏。我见过很多新人的模型第一版把所有能加的设施全加上结果一仿真发现所有行人堆在一个入口附近不动原因就是需求曲线没设置好连“谁要去哪”都没说清楚。所以建基本模型时宁可少加设施也要先把这四个模块的逻辑理顺。1.3 建模前先定“仿真目标”这条建议很多教程都不会提但我认为它是整个建模过程中最重要的一步。做仿真不是“把模型建出来看个动画就行”而是为了回答一个明确的工程问题。比如换乘大厅晚高峰能不能承受每小时约8000人的流量站台发生紧急事件时人群在多长时间内能疏散到室外安全区域检票口设置8个还是10个能让排队时间缩短多少候车大厅的商铺布局会不会阻塞去站台的主要通道目标不同模型精度和边界条件完全不同。要是做日常运营评估重点在流量曲线和瓶颈区域要是做疏散性能化设计就必须考虑紧急状态下行人速度提高、部分通道被占用甚至关闭等极端条件要是做方案比选一个相对粗糙的基本模型就能看出差异。我习惯在建模前用两三句话把目标写下来放到项目文件夹里后续所有参数调整都围绕它来。这样能避免陷入“为了仿真而仿真”的泥潭。2. 建模准备几何图纸处理与空间初始化2.1 从CAD图纸到仿真底图的转换要点Legion本身不是绘制软件底图基本上都来自建筑师提供的CAD图纸。这个过程看着简单却决定了后面所有工作的效率。导入DWG或DXF之前先花个十几分钟清理图纸删掉尺寸标注、文字说明、填充图案、外部参照只留下墙体、门洞、柱网、楼梯口、设备基础这些硬边界。图层越干净后面描Surface时越省事。我记得有一次项目时间紧张我偷懒没清图直接把带大量填充图案和家具详图的图档导进去结果要标记的碎线多到爆炸多花了两天处理。从那以后我宁可多花点时间做图层整理也不贪图那几分钟的导入速度。清理之后再导入选中底图把单位比例校准。国内图纸习惯用毫米而Legion默认用米制导入后先量一段已知长度的墙体比如地面上标注10米的走廊如果量出来是10000那就说明差了1000倍统一缩放后再往下做。坐标系同样不能忽略CAD绘图原点最好已经移到项目附近不然后续需要贴准确位置和工作底图时会对不上坐标。2.2 楼层、楼梯与竖向通道的建立如果基本模型只做单层大厅可以暂时跳过这一节但实际项目大多数是两层以上的建筑竖向连通的建模就特别关键。在Legion里每一层要单独创建平面空间楼梯则用竖向连接对象把相邻楼层串起来。这里最常见的错误是只在平面上画了楼梯投影却没有建立竖向连接结果楼上和楼下的行人完全无法互通仿真时楼下人群在楼梯口越积越多楼上却没有对应的人流下来。正确做法是先创建楼层列表再在各层平面上把可走区域画好然后找到楼梯或扶梯的位置添加Stair或Connection对象并设置正确的起步和到达方向。建立竖向连接后建议先放一两个试验行人跑一遍确认楼上楼下能通路再继续后续操作。另外要注意速度折算普通人水平行走速度约1.2~1.5m/s在楼梯上会明显降低大致按水平速度的60%~70%处理自动扶梯则要用扶梯自身的提升速度典型值在0.5~0.65m/s。扶梯方向也要和实际运营一致国内地铁常出现“靠右站立、左侧通行”的习惯基础模型可以先统一处理后续再做精细化调整。2.3 模型边界与“不可行走区域”的标记任何仿真软件都需要清晰的边界约束否则Agent会无限扩散。把墙体、玻璃隔断、栏杆扶手当作边界处理柱子、检票机、花坛、服务台、座椅、商铺等则属于内部障碍。在Legion里通常用Surface圈出可走区域用Obstacle或Scope画出障碍物用Wall画出墙体边界。做这一步时我有几条经验第一边界宁可画得保守一点也不要留缝隙。一个1厘米的小缺口在仿真中可能被Agent识别成“可穿过的捷径”导致大量行人从墙缝里硬挤过去结果可信度大打折扣。第二障碍物先用简化形状占位就好。闸机方向、楼梯口宽度这些关键尺寸要准确而柱子、花坛这类可以通过矩形轮廓先替代等主要人流关系跑通后再精确调整。第三每画完一个封闭区域一定要运行一次几何检查看看有没有断点、自交、未闭合的问题。基础模型的边界标记工作看起来繁琐但它是保证仿真结果可信的地基。我通常会反复用“放大到局部检查”的方式对所有关键门洞、走廊宽度做确认避免因为底图上的线条偏差导致整个通道宽度失真。3. 核心人群要素配置Agent属性与出行需求设定3.1 Agent基本属性体型、速度与服务水平的对应关系Legion里的Agent不是单纯一个点而是带有身体尺寸的椭圆体或胶囊体常见参数包括肩宽、体厚和期望速度。不同地区、不同出行目的人群的统计特征并不相同。我在国内项目里常用通勤人群参数期望速度1.34m/s左右肩宽0.45~0.5m体厚0.28~0.32m。如果是早高峰赶地铁速度可以适当提高如果是商场休闲人流速度再降到1.0~1.2m/s。这些参数看起来只是几个数字但它们直接影响服务水平。服务水平Level of ServiceLOS通常采用Fruin分级把密度从低到高分为A到F六级可以快速判断现场拥挤程度。下表是简化的对应关系方便刚开始接触的朋友理解LOS等级平均密度范围人/㎡现场大致感受A小于0.31自由行走可以随意变速或变向B0.31~0.43步行速度略有影响整体舒适C0.43~0.72行动受到一定限制需要调整步速D0.72~1.08行走矛盾明显反向穿行变得困难E1.08~2.15拥挤状态速度接近停滞F大于2.15严重拥堵几乎无法移动不同空间对LOS要求并不一样。大厅通常希望峰值不高于C级站台排队区可以接受E级以下楼梯和疏散出口处不宜长时间超过D级。Legion运行时会把密度转化为LOS并绘制成云图和统计表建模者可以直接看到哪些区域超出设计标准。设置Agent属性时如果项目有实测数据或者设计规范优先使用项目数据没有的话再看DfT或SFPE等参考文献里的推荐值。3.2 流量与OD表的建立把“多少人从哪到哪”说清楚基本模型的创建最核心的需求是回答“人从哪里进到哪里去什么时间到达”。实际项目里我会把这三件事整理成一张OD需求矩阵在Legion里对应建立多个需求输入入口和目的地对象并为每个入口配置一条随时间变化的流量曲线。用一个实际案例来说明某火车站早高峰进站厅6:30到9:00之间南入口进站旅客约3200人/h其中1200人先去售票区1900人直接去进站闸机方向还有100人先到取票机再进闸机。如果在模型里只建一个总入口不区分目的地大厅里的人流分布会严重失真。我把流量拆成三股分别设置入口、目的地和路线这样一旦后期发现售票区前排队过长能立刻定位是哪一股人流过量或者服务能力不足。流量曲线建议用15分钟或30分钟粒度而不是连续、均匀的小时均值。高峰期的客流往往是脉冲式的尤其是地铁到站后大量乘客会在短时间内涌出站台如果用小时均值去平均就会把真实的峰值抹平瓶颈区域被掩盖。没有实测数据时可以根据运营方的刷卡记录、售票数据或者同类建筑的经验值来构造曲线尽量贴近真实。3.3 公共交通工具与排队逻辑的初步设置很多实际项目会涉及公交车、地铁或铁路的到发这些动态交通元素会带来瞬时大客流。Legion支持通过Service或Vehicle对象模拟车辆到达配合车门、队列和发车时间表使用。车辆相当于一个移动的“需求发生器”车到站开门后乘客下车进入站台同时站台上等车的人群按顺序上车。这样的建模方式可以把上下车冲突、列车到达后的多股人流叠加等现象都还原出来。不过对刚开始建基本模型的朋友我不建议第一版就引入车辆对象。可以先把下车人流用定时脉冲式需求替代等模型主干逻辑跑通之后再逐步把列车时刻表加进去。这样做的好处是减少前期调试复杂度避免同时面对“空间没走通”和“车辆逻辑报错”两座大山。排队逻辑方面安检机、检票口、服务台都可以设置成门对象并配置单个旅客服务时间。比如安检机单旅客服务时间约为3到5秒服务时间的分布可以用三角分布来模拟基础模型可以先使用一个平均值后续做敏感性分析时再细调。提示涉及疏散场景的排队设置要谨慎。疏散时人群通常不会在闸机或安检机前排队等待甚至会突破闸机所以评估疏散工况时要把门设为常开或者关闭具体行为要依据项目实际情况和规范来定不能直接沿用日常客流排队参数。4. 创建基本人群仿真模型的实操流程演示4.1 第一步导入底图并校准坐标系现在进入实际操作部分。打开Legion新建一个项目。建议先设置单位我通常选择米和秒作为单位制因为建筑图纸常用米仿真结果的流量和时间也习惯用秒来观察。通过Import功能把之前清理好的DWG或DXF底图导入软件导入后第一件事不是急着画Surface而是校准比例。校准方法找一个图纸上标有具体长度的实体比如站台宽度或某段走廊长度用Legion自带的测量工具量出模型里的长度再和实际数值对比。如果模型里量出来的是10000而实际是10米那就说明单位之间差了1000倍统一缩放就能解决。校准完成后把底图锁定到“不可编辑”状态防止后续误拖动。这个环节我一般会花15分钟以上因为所有后续绘制都是以底图为参照如果比例弄错了后面所有空间都要重建。4.2 第二步定义空间与障碍底图锁定后用Surface工具沿着墙体内侧轮廓画出可走区域。画的时候一定要贴合墙内边不要说画到墙里面去。画完一个区域就养成“闭合检查”的习惯确保所有边界都形成封闭回路。然后用障碍物工具标出柱子、闸机、花坛、服务台等内部障碍。扶手和玻璃隔断这类线性分隔用线状边界对象处理。如果模型有两层以上先建楼层列表再为每一层分别画Surface最后通过竖直连接把楼梯、扶梯位置对应起来。连接对象的起始层和目标层、方向箭头都要在属性面板里仔细设置一个常见错误是上下楼层连反了导致Agent从一楼楼梯口进结果从二楼楼梯口“冒出”方向完全不对。画完空间对象后可以先加一个临时需求入口放几十个试验行人跑一下确认所有可达区域都能正常通行再清掉试验需求开始正式配置。4.3 第三步创建人群需求输入空间真正连通之后才进入“加入人”的环节。在需求工具中创建多个入口对象放在建筑边缘、大门、安检区前、扶梯口等位置。每个入口要配置一个随时间变化的流量生成曲线也就是Profile。Peak曲线可以用软件内置的Profile编辑器直接画也可以导入CSV数值。我的习惯是曲线横轴用秒或分钟纵轴用人流量单位人/h或人/15min并且把时间起点设置为比评估时段提前20到30分钟让客流从零开始逐步增长而不是仿真一开始就是满负荷状态这样能避免“启动瞬间就爆红”的假象。接着创建出口对象和目的地对象。目的地可以是站台、商铺门口、出站闸机另一侧等位置。把入口和目的地之间的对应关系建立起来也就是配置OD。基础模型阶段其实可以让行人自由寻找出口不显式设置路线但为了后续统计某条流线的客流量我建议第一版就显式建立OD。显式OD就像给每个人发了一张“行程单”后续修改路线时只需要调整对应人群不用重新画全局路径。4.4 第四步设置行程路线行程路线是新手最容易忽略但也最容易大幅影响结果的一步。Legion支持两种常见路径方式一种是行人根据空间认知自动选择最短或者便捷路径另一种是Route或Itinerary方式为特定人群指定途经点和到达目的地顺序。实际项目中两种方式常常结合使用。比如在地铁换乘通道里赶时间的乘客大多愿意走最短路径但拉着行李箱的乘客可能会因为前方拥堵而绕行这就需要给不同人群赋予不同的路径权重。基础模型可以先统一用自由路径跑一次观察哪里出现明显拥堵再针对拥堵区域增加“路线偏好”模拟真实场景下的绕行行为。我的建议是路径设置永远不要第一次就做复杂先跑通再修正否则模型一跑全都是红根本分不清是空间问题还是路径问题。4.5 第五步运行仿真与结果输出空间、需求、路线都配好后就进入运行仿真环节。设置仿真时长时不要只设置评估时段本身比如评估早高峰7:00到9:00实际运行时长建议从6:40到9:30给模型“预热”和“消散”留出时间。模拟步长一般保持默认主要考虑到精度和速度的平衡。如果只是为了调试可以暂时调大步长加快速度正式计算和最终交付时用默认步长。运行结束后打开结果视图第一眼重点看四样东西密度云图是否出现持续性红色血栓、排队长度是否超过预期、各断面流量曲线是否平滑、LOS云图是否大面积超过设计标准。如果发现问题回到模型修改参数再重新跑。通常一个基本模型要经过两三轮迭代才能输出一个让人放心的结果。最后把结果导出成高清图片和CSV表格汇报时用这些图表做方案对比比单纯放逼真动画更有说服力。5. 常见问题与排查技巧实录5.1 Agent穿墙或者卡在墙角怎么办Agent穿墙是刚接触Legion时最常遇到的问题。出现这个现象的根源一般不在Agent本身而在几何模型两个Surface之间有微小重叠或者边界线出现缺口甚至CAD导入时留下了双线墙体中间一条极窄的缝隙都可能被寻路算法识别成可通行区域。排查方法很直接打开几何检查和重叠检查看看是否有黄色或红色警告找到之后把对应墙体或障碍描边重新闭合。卡墙角的问题则多半和网格精度有关。Legion内部会把可走区域离散成网格网格尺寸越细路径越精确但计算量越大网格太粗时Agent想绕过墙角会发现周围没有足够的网格空间于是原地打转或者贴墙蹭来蹭去。遇到这种情况把网格调细到0.125到0.25米大多数卡角问题都能解决。一个已经交付项目的经验是宁可多花几分钟计算也别为了省时间把网格调粗否则卡角现象会浪费你更多时间。5.2 密度云图数值明显偏高或偏低怎么排查如果仿真结果里整体密度高得离谱先检查需求曲线是不是把峰值设置过大再看入口数量是不是太少。比如实际车站有4个入口却只建了1个所有人流从同一个口涌入入口处自然红成一片。还有一种偏高的原因是Agent全都挤在入口处不动这通常说明入口附近空间被墙体或障碍限制得太死人群还没散开就撞上了边界。密度整体偏低的情况往往是流量没真正生效。比如Profile曲线的时间轴没覆盖整个仿真窗口导致Agent只在前面一小段时间产生。或者入口流量设置为零只是名称建了但没挂曲线。检查这些低级的设置错误时建议列表里逐项核对入口对象的流量数值和时间曲线确认它们在对应时间段内非零。最开始建模时这几种错误我都犯过每次排查到最后都会发现是“设置漏了一项”的低级问题而不是软件本身有问题。5.3 排队长度不符合直觉的排查顺序有次分析一个安检区域模型显示的队伍总是比现场观测的短。我起初以为是服务时间设置太短调了多次仍不对最后发现是门对象的服务方向设置反了。Agent全在门背面排队看起来队伍短其实是因为它们从错误方向接近服务点。检查门的方向箭头、排队方向和通道轴向是否一致是这类问题的第一步。服务时间也需要根据实际情况调整安检设备类型不同单旅客通过时间差异很大不能全部用同一个默认值。实测或者查厂家数据后再填入三角分布范围会更贴切。队伍形态不符合直觉还有一个常见原因排队空间没有限制。如果服务台前方没有物理隔离Agent会聚成一大团而不是整齐排队。这时候可以设置排队通道或者路线偏好让行人只能沿指定路径接近服务台。基础模型可以先不做隔离但要知道这个因素会造成结果差异。5.4 结果表格中LOS评价等级怎么阅读结果表格里的LOS等级不少第一次接触的人一看就晕。其实可以这样理解LOS不是看某一个瞬间的密度而是看统计时段内人群实际体验到的密度水平。评级时如果直接抓瞬时最大密度往往会被一两秒的异常峰值带偏。我更习惯看85%分位密度也就是仿真过程中有85%的时间密度低于这个值这比一个偶发红点更能反映大多数人的真实感受。还要注意统计口径。同一个模型用Fruin标准和SFPE标准得到的结果可能存在差异空间类型不同评价标准也不同。交付报告时建议把适用范围、统计口径、人员构成、评估时段都写清楚避免评审人员拿着不同标准来质疑结果。我见过一些项目因为报告里没写清口径导致多轮返工这个细节真的不能省。5.5 和Legion Toolkit同名工具别下错再强调一次容易踩的坑网上搜“Legion”这个词前面几页极有可能出现联想电脑的Legion Toolkit那是笔记本散热与性能调度工具和人群仿真没有关系。人群仿真软件Legion的开发商是英国Legion Limited产品常见的名称为Legion Model Builder、Legion Space官网域名通常也带legion。下载安装时注意软件发布方和界面截图一般不会搞错。如果是公司采购或者教学使用直接找代理商确认比自行百度靠谱得多。6. 实操总结与进阶建议6.1 我的几条建模习惯做了几年Legion仿真之后我总结出几条值得坚持的习惯分享给大家。第一别急着加复杂细节。先把“空间需求路径”这条主干跑通确认密度云图、流量曲线都符合直觉再逐步增加闸机、扶梯、商铺等详细物件。主干不靠谱细节堆得越多越难排查。第二每个项目都要建立一个“基线版本”后续所有方案修改都从基线复制再改对应的空间或参数这样对比结果时才能保证唯一变量。第三所有参数写一个说明表记录来源是规范、文献还是现场测量这个说明表在送审或者评审时几乎是必须的。第四仿真结果导出前先固定一个正交视角和相机位置之后依次切换密度、速度、排队图层导出图片在汇报里排版整齐前后方案对比也更清楚。6.2 从基本模型到高精度模型的扩展方向基础模型跑通之后可以按项目需求往三个方向扩展。第一是动态事件方向把列车时刻表、航班到发、会议散场等事件加进去分析多股人流的叠加效应。比如列车到站后站台瞬时涌入几百号人同时出站闸机还要承接上一趟车剩余的出站乘客这种叠加是静态流量分析看不出来的。第二是场景对比方向用Scenario Manager建立现状方案和改造方案两组模型批量运行并输出对比报告在设计汇报中可以快速展示不同方案对排队长度的改善。第三是数据接入方向如果现场有闸机刷卡数据、WiFi探针数据或者视频统计人数可以用来校准Agent属性和流量曲线让模型更贴近真实运营状态。校准这件事值得多说几句。我参与过的项目里凡是依据实测数据校准过的模型在说服评审方面都轻松很多。如果没有实测数据也可以根据同类建筑的公开研究文献来调参比如研究英国公共交通车站行人参数、中国地铁站行人特征之类的文献。模型不是越复杂越好而是越贴近问题本质越好。6.3 把Legion结果用在方案汇报中的呈现技巧有些工程师自己心里清楚结果但汇报时表达不清导致甲方听得很闷。我的经验是汇报材料里不要放满屏密度云图那样反而抓不住重点。针对一个关键问题放2到3张图就够了一张整体密度云图、一张最严重瓶颈的放大图、一张排队长度时间曲线再配合一个简短结论。比如“当前方案在早高峰时段安检区排队约15米超过设计排队空间的30%建议增加一台安检机或者扩大排队缓冲区域”。这样表达决策者一眼就懂。对比方案时尽量用同一套颜色标尺。两套方案如果采用不同的密度色标人眼很容易被颜色差异误导。我建议所有对比图都锁定同一个密度范围与配色比如0到2人/㎡对应同一套色谱这样不同方案间差异才真实。如果要用动画展示控制在15秒以内重点循环播放瓶颈区域而不是从头到尾放全程。说到最后我的体会是人群仿真软件再聪明建模的人如果对建筑空间和人的行为缺乏理解出来的结果也只是一段好看的动画。Legion的价值在于帮我们验证直觉、发现设计盲区而不是替代设计思考。建议每位刚开始接触的朋友都从这篇最小可运行的模型开始亲手跑通一轮感受一下从CAD底图到密度云图全流程的成就感。跑通之后你自然知道下一步该往哪个方向细化。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价