
如果你做过交通枢纽、大型体育场馆或者地铁站的项目一定对“那里人太多会不会挤爆”这种问题不陌生。人群仿真软件 Legion 就是专门用来回答这类问题的工具它属于微观行人仿真这一流派把每一个行人都当成独立的个体来模拟考虑人与人之间怎么避让、怎么选路、什么时候减速甚至停下来。国内这几年做大型公共建筑的安全评估、客流组织优化、疏散能力论证Legion 的出镜率非常高。这一篇是这个系列的第五篇前面我们聊过仿真评估的适用场景、基础数据的采集思路、服务水平和密度标准怎么定以及 Legion 项目的文件结构和界面逻辑。接下来就进入真正动手的阶段怎么从一张 CAD 底图开始一步步搭出一个基本的人群仿真模型。我会尽量按实操顺序讲把建模过程中那些容易踩坑的地方一起说清楚文章里涉及的参数和做法是基于比较常见的项目实践整理出来的大家根据自己的项目情况灵活调整就行。1. 建模前先把 Legion 的思路想清楚1.1 Legion 到底在模拟什么很多人第一次用 Legion 会有一个误区以为它像游戏引擎一样把人放进去就能自动跑出结果。实际上 Legion 的逻辑更像“空间规则 行人行为决策”的组合。它会在每个时间步里根据行人当前的位置、目标方向、周围人群密度、前方是否有障碍物等因素计算出行人的下一位置。也就是说你这个模型的质量很大程度上取决于你是否把“空间规则”定义清楚了。所谓空间规则就是软件认为哪些区域行人可以走哪些区域不能走哪些是障碍物哪些是楼梯口哪些是排队区。你把这些定义得越准确行人的行为就越贴近现实。反过来如果你只是把一张平面图丢进去告诉软件“整个大厅都能走”那仿真结果基本没有参考价值。理解了这一点你就知道为什么建模的第一步不是急着放人而是先把空间打扫干净。1.2 一个基本模型的四个构成要素一个能跑起来的基本人群仿真模型至少包含四个要素空间几何、障碍物、步行通道和行人需求。空间几何解决的是“能往哪里走”的问题障碍物解决的是“哪里不能走”的问题步行通道决定“顺着什么方向走更合理”行人需求则告诉你“什么时候、从哪里进来多少人他们要到哪里去”。这四个要素在 Legion 里面对应着不同的对象类型操作上也各有分工。空间几何和障碍物主要在空间编辑环境里绘制步行通道通常用路径线或引导线来实现而行人需求则需要在行程任务或需求表格里配置。把这四块分开理解后面建模时就不会手忙脚乱。2. 搭建几何模型从 CAD 底图到可走空间2.1 图纸导入前的准备工作创建基本人群仿真模型的第一步是准备一张干净、准确的底图。我建议优先使用 CAD 导出的 DWG 或者 DXF 文件而不是直接把图片拖进去。因为 CAD 文件自带坐标信息导入后能保证模型和真实世界的尺寸一一对应这一点对后期结果输出非常重要。拿到 CAD 图纸后别急着导入先在 CAD 里做一次“瘦身”。把标注、填充、文字注释、设备符号这些对建模没用的图层关掉或删掉只保留墙线、门窗洞、柱网、楼梯轮廓、扶梯轮廓这些结构性元素。图纸太乱会导致导入后识别困难画空间边界时也容易误捕捉到无关图层。你要是连续做过几个模型就会发现图纸清理花掉的半小时后面建模能省下两小时。2.2 空间对象类型的选择逻辑Legion 的空间对象分很多种打开空间编辑的创建面板就能看到可走区域、不可走区域、障碍物、楼梯、扶梯、自动步道、排队区、座椅区等等。对新手来说一开始不要贪多先把最常用的几种用明白就行。创建空间对象时的核心逻辑是“画轮廓、定类型”。画轮廓时要注意闭合软件通过闭合的多边形识别一块独立空间。如果轮廓没有闭合或者出现自相交后面计算可走区域时很容易报错。我习惯把同类空间放在不同的图层里比如“walkable”图层放可走区域“obstacles”图层放障碍物“stairs”图层放楼梯这样后期想整体调整某一类对象时会非常方便。2.3 可走区域和障碍物的边界处理可走区域就是行人实际能通行的地面范围。操作上沿着墙体的内边线画出闭合多边形然后把对象类型设为“可走区域”。这里有一个容易忽略的细节行人不会贴着墙根走。真实情况下人会和墙保持一定距离这个距离在 Legion 里被称为“空间缓冲距离”也叫墙间距。默认值通常是 0.2 到 0.3 米表示行人中心点离墙面的最小距离。你在绘制可走区域边界时到底应该贴着墙画还是让开一点取决于模型精度要求。常规项目里贴着墙内边线画即可空间缓冲距离交给软件在计算时自动叠加。障碍物的处理逻辑类似柱子、花坛、售票机、信息牌这类固定设施只要尺寸够大、会影响人流走动的都应该画成障碍物。需要注意的是别把太小的物件画进去一个直径 10 厘米的垃圾桶对整体人流几乎没影响却会无谓增加计算量。我一般会定一个粗略的筛选线投影面积小于 0.5 平方米、且不在疏散通道正中间的设施可以忽略。2.4 楼梯、扶梯、斜坡的特殊处理楼梯和扶梯在 Legion 里不能简单归为“可走区域”因为它们还涉及行进方向和速度变化。比如上行楼梯和下行楼梯行人的速度衰减规律不一样扶梯就更特殊行人站在踏阶上自身可以不走路但移动速度由扶梯的输送速度决定。这种差异如果忽略掉仿真出来的疏散时间和现实中会差很多。所以在画楼梯时要单独创建楼梯空间对象并明确设置是上行还是下行以及台阶尺寸、扶手位置这些参数。扶梯则要设置输送速度一般自动扶梯的速度在 0.5 m/s 到 0.65 m/s 之间具体数值以项目资料为准。斜坡的坡度如果超过一定值行人速度也会有明显下降不能简单当作平地处理。3. 给模型“注入灵魂”行人需求与路径设置3.1 行人需求数据从哪来、怎么填空间建模完成之后模型还只是一个“空的容器”接下来要往里放入行人的需求。很多初学者会在这一步卡住因为想知道“我应该放多少人进去”。这个数字不是随便定的它来自于项目的客流预测数据或者运营计划比如早高峰一小时站厅需要承接多少进站乘客某个体育赛事散场时有多少观众同时离场。Legion 里配置行人需求最常见的方式是创建行程任务然后在任务里指定行人出现的时间段、人数总量、起始区域和目的区域。这里的“起始区域”和“目的区域”就是前面建好的空间对象。比如一个地铁早高峰模型你可以设置一个“进站客流”任务行人从站厅入口区域出现走到站台区域结束。人数的时间分布按 15 分钟或 5 分钟一个时段来填越精细越好。3.2 路径分配与引导线的作用行人从哪里出发、到哪里去软件会按照空间的最短路径原则自动计算路径。但实际项目中“最短路径”不等于“最合理路径”。人的行走习惯不只是看距离还会看拥挤程度、通道宽窄、是否要绕远路等因素。这时候就需要通过引导线来干预路径分配引导线的作用是告诉软件“这个方向上行人应该优先顺着这条线走。”引导线的设置要贴近实际的步行习惯。比如站厅里有一个中岛式服务台行人从入口进来以后大部分人会顺着服务台右侧通道去站台层只有少数人会走左侧。此时你可以画两条引导线分别代表两个方向的路径偏好并设定不同比例的行人分配概率。这一步是 Legion 建模里比较关键的环节也是最需要结合实际观察经验的地方。3.3 空间偏好和服务水平的初始设定Legion 里还有一类参数叫空间偏好它影响行人对空间的选择。比如两条同样长度的通道一条宽 3 米一条宽 1.5 米假如没有其他约束行人会更倾向于走宽的那条。软件通过空间成本函数来体现这种偏好默认情况下会综合考虑距离、宽度、密度等因素。如果你在项目中发现仿真行为明显偏离实际情况优先检查的就是这类偏好参数。另外还要在建模前设定服务水平标准这通常和项目所在地的管理要求挂钩。比如国内很多大型枢纽会要求常态运营情况下站台和站厅的拥挤密度不高于某一档服务水平。Legion 本身不会替你做这个判断它只负责输出密度、速度、排队长度这些指标最终是否满足标准需要建模人员结合服务水平分级表来人工判定。4. 仿真运行与结果分析怎么判断模型跑得对4.1 仿真时长与精度的平衡模型建好以后点击运行之前需要设置仿真时长。仿真时长要覆盖整个要分析的时间窗。比如分析早高峰可能要从 7:00 开始跑到 9:30 结束覆盖两个半小时。但仿真时长越长计算量越大所以实际操作中会拆成多个短时段来分析。比如先跑一个 30 分钟的模型用来校准参数确认没问题以后再跑完整时段。仿真精度的设置也要注意。Legion 默认的时间步长是每秒若干个计算步步长越小精度越高但耗时也越长。对于刚开始建模校准的阶段可以适当降低精度先看整体趋势对不对等到最终出报告阶段再调回高精度重跑一遍。这样能节省大量调试时间。4.2 密度图、速度图和排队长度仿真完成后最常用的输出结果是密度图。密度图用颜色来表示某一区域内的人群密度分布红色代表高密度、黄色代表中等密度、绿色代表低密度。你可以设定时间段播放密度变化直观地看到拥堵是怎么形成、怎么消散的。这一步也是向业主或评审专家展示结论时最有说服力的材料。速度图和密度图类似只是反映的是行人平均速度。如果某个区域颜色明显偏红说明行人速度很慢甚至停滞这通常代表拥堵点。排队长度则专门用于分析服务台、安检口、售票机这类排队场景你需要事先定义排队区域和服务位置仿真结束后直接读取平均排队长度和最大排队长度。4.3 疏散场景的特别关注点如果你做的是疏散场景重点关注的是“最后一个人离开建筑需要多久”。Legion 在疏散模式下可以输出统计报表包含总疏散时间、每个出口的使用人数、某个逃生通道在某一时刻的通过人数等等。这些数据是安全评估报告里的核心指标。疏散建模时有一点要特别注意所有行人同时开始疏散但同时会有“反应延迟”。Legion 里可以通过设定反应时间分布来模拟比如人群从察觉到危险开始行动每个人延迟几秒到几十秒不等。在报警响应阶段的延迟会影响疏散总时长对评估疏散方案的影响比较大建议做敏感性分析。5. 常见问题与排查技巧实录5.1 行人在原地打转或原地抖动这是 Legion 新手最容易遇到的现象之一。原因一般是可走区域之间存在缝隙或者重叠导致行人到了缝隙位置无法判断下一步往哪里走。解决方法回到空间编辑环境检查问题区域附近的空间对象是否闭合、边界是否互相重叠。另外如果某个区域被障碍物围了一圈只留了一个很小的缺口行人到达后也会出现原地打转的现象因为模型认为这个区域的通行能力太低。还有一种情况是行人需求设置中起始区域和目的区域定义在了同一块可走区域内行人出生后发现自己已经达到了目的地于是停在原地不断微调位置。这种“抖动”不影响全局结果但如果出现大面积的人群抖动还是要回头检查需求设置。5.2 密度图整体偏高或偏低密度图整体偏高通常是行人需求放多了或者可走区域画小了。很多人建模时会下意识把可走区域画得很保守比如把楼梯口前的一小段缓冲平台也排除掉这就导致实际可容纳面积减少密度数值虚高。我的建议是画完可走区域以后用一个简单的“面积反算”来验证把总人数除以可走面积看看平均密度是否在合理范围内。密度整体偏低则刚好相反通常是需求设置过少或者行人被过分分散了。还有一种可能是引导线设置让行人过度分流导致某些区域几乎没人走。这时可以检查一下引导线的分配比例看是否符合真实的客流走向。5.3 疏散时间明显超出预期疏散时间超标先不要急着调整参数先检查出口宽度和出口数量是否和图纸一致。有时候 CAD 图纸里门洞的宽度是装饰面宽度实际净宽要扣掉门框和装饰厚度。如果模型里出口多画了 20 厘米宽度疏散时间可能会变化 5% 到 10%。这类基础错误对结论影响很大排查时要优先核对。另一个常见原因是行人走道宽度在瓶颈位置被压缩得过窄。比如楼梯口出来以后紧接着一个转角转角的弧线没有处理导致行人在此滞留。这种情况在图纸上看起来空间足够但仿真结果显示瓶颈明显解决方法是调整转角的可走区域轮廓或者增加引导线让行人在转角前提前分散。5.4 结果和实测数据对不上项目后期经常需要把仿真结果和实际客流统计做对比验证。如果发现模型流量和实测偏差较大先看需求时间分布是否准确。客流高峰不是一个恒定的数值而是随时间波动的。如果你把高峰小时均匀分配到每个分钟模型输出自然会偏平缓。建议把需求人数按 5 分钟一个时段切分这样更接近真实情况。还要注意行人组成比例。不同的项目行人构成差异很大比如通勤人群和旅游人群的行走速度、对陌生环境的熟悉程度都不一样。在 Legion 里可以通过设定不同类型的行人类别来体现差异比如“通勤者”步行速度较快“亲子家庭”步行速度较慢。如果你的项目里儿童和老人占比很高使用统一的成年人速度参数会导致结果偏差。6. 实操中的一点个人体会做 Legion 仿真这几年我最深的体会是这个软件虽然叫“仿真”但真正决定项目质量的往往不是软件本身而是建模人员对现场的理解。你画的空间边界是否合理给行人分配的路径是否符合真实习惯需求数据切分得够不够细这些都直接影响仿真结果的可信度。有个小技巧可以分享模型初步建好以后先别急着追求复杂跑一个最简单的“满负荷压测”。把需求人数整体乘个 1.5 倍或 2 倍跑一遍观察哪些地方率先出现瓶颈。很多时候这种极端工况能暴露出你在空间建模时忽略的问题比如转角半径不足、楼梯口缓冲距离不够、出口净宽不满足要求等等。把这些问题在普通工况里先优化掉最后的模型会稳定很多。另外建议养成每次修改参数都另存一个版本的习惯。Legion 项目文件修改起来很快但有时候改着改着就忘了初始参数是什么。建一个简单的版本记录表写上修改日期、修改内容、运行结果的关键指标项目周期长的时候会非常有用。这一篇主要聚焦在创建基本人群仿真模型的完整流程从图纸处理、空间建模到行人需求配置再到结果判断和常见问题排查。下一篇我会继续展开典型的“瓶颈分析”案例实操看看怎么针对一个真实项目场景做模型校准和方案比选。大家在实际建模过程中遇到什么问题也欢迎随时交流。