ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

医疗机构人群仿真实战:SimWalk建模、标定与改造方案比选

医疗机构人群仿真实战:SimWalk建模、标定与改造方案比选

做人群仿真这几年,车站、机场、体育场馆都碰过,说实话最折腾人的还是医疗机构人群仿真。同样是SimWalk这类社会力模型软件,用在医院里和用在其他公共建筑里完全是两种手感。医院里不只有“正常走路的人”,还有坐轮椅的、推病床的、抱着孩子挂号的家属、边走边问路的老人,每类人的速度、路径、行为逻辑完全不一样。这篇把我在医疗机构仿真项目里攒下的建模流程、参数取值、结果判读和踩坑经验都整理出来,给准备接医院项目或者正在为医院动线发愁的朋友做个参考。

1. 医院仿真为什么值得单独开一篇

1.1 医院和其他公共场所的本质差异

医院仿真难,难在它不像车站、体育馆那样“人从入口进、通过检票口、到目的地坐下”这种单一流线。医院是一个典型的多任务、多目的地、多类人群混合的系统。

先说人群构成。普通场馆里的行人绝大多数是健康成年人,速度分布相对集中,行为也简单——从A走到B。医院完全不是这样:门急诊区域有大量老年人、儿童、孕妇,还有行动障碍患者和陪护家属。一个人生病后步速会明显下降,推轮椅、推病床的又占据额外空间。我做过一个综合医院的项目,光是早高峰时段患者与陪护的比例就接近1:1.5,儿童医院甚至能到1:2以上。这些人群不能用单一速度参数去描述,否则模型出来的密度分布一定失真。

再说行为模式。医院里的人不是单纯“路过”,而是发生大量折返流。典型的门诊动线是:入口→挂号→候诊→诊室→缴费→检验检查→再回诊室→缴费→取药→离院。中间任何一步都可能因为问询、排错队、检查结果没出来而折返。这种“非直达”行为,在建模时必须显式拆成多段路径,否则人一进大厅就直接冲向药房,和现实完全不符。

最后是空间约束。医院内部通道的东西比别的建筑多:担架床、轮椅、输液架、自助机、导诊台、临时隔离屏风、候诊椅。走廊宽度常常只有两米多,再被床和轮椅占掉一部分,有效通行宽度大幅下降。这种空间下的拥挤不是简单“人多”导致的,而是“通行能力不足+行为复杂”叠加出来的。

1.2 医院项目究竟在仿真哪些东西

给医院做仿真,诉求通常分三类。

第一类是日常运营评估。最常见的问题是:门诊大厅高峰时段会不会堵?挂号排队要排多久?候诊区面积够不够?自助服务设备要放几台、放在哪里?这类项目核心是流量、密度、排队时间、平均等待时间这些指标。

第二类是疏散安全评估。医院有大量行动不便者,疏散时间天然比其他建筑长。消防审查、安全评估、应急预案制定都会要求做疏散模拟,算出必需疏散时间,找出瓶颈楼层和瓶颈出口。SimWalk在这里的典型用法是设置不同速度的人群、关闭部分出口、观察总疏散时间和最后一个人离开的时间。

第三类是流线和空间改造验证。比如新建门急诊楼,方案阶段就要验证“把挂号收费集中在一层大厅还是分层设置”哪种更顺畅;或者老楼改造,想调整诊室布局、药房窗口位置,先跑一轮仿真看效果再动工。

不管哪一类,最后交付给院方的都不是“一个好看的动画”,而是可量化、可对比、经得起复核的指标。下一节就从项目开工前的数据摸底说起。

2. 开工之前:把医院的“人”和“路”摸透

2.1 现场调研清单与图纸整理

很多人在医院仿真项目翻车,翻在调研不充分。软件操作只是最后几步,前面的数据质量决定了模型可信度。

我的调研清单分五块。第一是建筑底图:CAD平面图必须拿到最新的竣工图,尤其是改扩建过的区域,旧图和现场经常对不上。第二是功能房间:挂号收费窗口数量、药房窗口数量、诊室数量、候诊区座椅数、楼梯和电梯的位置与数量。第三是设备设施:自助挂号机、自助缴费机、取报告机的位置,这些设备在使用时会形成“排队+操作”两个动作。第四是家具和障碍物:候诊椅、屏风、导诊台、临时围挡,建模型时要么作为障碍物,要么作为排队区的一部分。第五是垂直交通参数:电梯数量、载重、速度、开门时间,楼梯宽度和踏步尺寸。

图纸到手后不要直接导入软件就开始画。我习惯先做一轮“图纸净化”:删掉标注、尺寸、家具块等无关图层,只保留墙体、门窗、柱子、楼梯。SimWalk导入CAD后,墙体、柱子这些障碍物边界要逐根核对,特别是玻璃隔断这种“看得见但走不过去”的东西,必须手动补上障碍物多边形,否则行人会直接从玻璃里穿过去,模拟结果完全不能用。

2.2 人流构成、高峰曲线与视频标定数据

医院和车站最大的不同在于它有非常明显的“潮汐高峰”。综合医院门诊一般早上7点半到9点是挂号高峰,9点到11点是就诊高峰,10点到12点是检查检验高峰,下午相对平缓,但取药窗口在下午又会迎来一个次高峰。我们做仿真不是跑一个静态的“平均人数”,而是要把这种时变曲线转成逐时段行人到达率。

确定到达率的方法只有一个:现场视频。我带团队做过最扎实的一次调研,是在目标医院的门诊入口、挂号大厅、电梯厅三个点位架摄像机,连续录三个工作日,每个工作日从早7点到晚6点,晚上回去逐帧人工计数。三个点位的设备都很简单,关键是处理好院方的隐私授权和患者知情同意,拍摄角度尽量只拍到通道和人群轮廓。

计数结果要整理成两类数据。一类是各时段的进入人数,用于设置模型中的行人输入速率;另一类是特定区域的瞬时人数和排队长度,用于事后标定模型。标定这一步非常重要——仿真软件默认参数跑出来的结果往往和实测差20%以上,靠的就是这些实测数据把模型掰回来。后面的第5章我会专门说标定的坑。

人群构成比例也要在调研阶段定下来。综合医院的门诊区域,我通常按患者40%-50%、家属40%-50%、医务人员5%-10%来设。儿科门诊要把家属比例上调到60%以上。急诊和住院部又是另一套比例,住院部的护工、探视家属、小推车物流通道要单独建模。这些比例直接影响平均速度,不可以拍脑袋写。

3. SimWalk建模实操:从CAD图纸到能跑的模型

3.1 图纸导入、可行走区域与障碍物布置

SimWalk的建模逻辑不难理解:把建筑平面图变成一张“可以走”的地图,行人在这张地图上受目的地吸引、被障碍物和他人排斥,一步步移动。用生活化的类比就是,SimWalk像在给蚂蚁画一个迷宫,每个行人是迷宫里的一只蚂蚁,软件里设置它的出生点、想去的地方和走路偏好。

第一步是导入图纸。SimWalk支持DXF、DWG等格式,导入后先设置比例尺。这一步我吃过亏:有的CAD图纸用毫米为单位,有的用米为单位,比例设置错了整个模型全部作废。建议导入后立刻量一条已知尺寸的轴线,比如跨距是7.2米的柱网,在软件里量出来必须也是7.2米,否则调比例。

第二步是画可行走区域,也就是行人能踩到的地面范围。医院里这块要注意:护士站、收费窗口背后、诊室内部工作区、药房柜台内侧,这些区域行人是进不去的,都必须从可行走区域里抠掉。候诊区的座椅区域也要单独处理,椅子上坐了人就不能再站人,严格的做法是把座椅区域画成障碍物。

第三步是定义不可通行边界。墙体、柱子、门窗、玻璃隔断、自动扶梯的中间大跨都是障碍物。医院还有一些“软障碍物”——可移动屏风、临时排队栏杆、宣传展架,这些建议先问院方哪些是固定摆的,固定摆的进模型,临时挪动的忽略,免得模型和现场对不上。

3.2 输入源、目的地与路径比例的设置逻辑

地图画好后,开始定义行人从哪里来、到哪里去。SimWalk里对应的是输入源和目的地,再通过路径把两者连起来。

医院的输入源有几个:主要出入口、急诊入口、住院部入口、电梯厅、地下车库入口。目的地有:挂号收费区、各诊室区域、药房取药窗、检验科、放射科、功能检查区、收费处。每个输入源到每个目的地之间都建立路径,并且要按流量比例分配。

这里最关键的量是“路径比例”。以门诊大厅为例:早高峰进入大厅的100个人里,可能有35人去挂号、20人去自助机操作、15人直接去电梯厅上楼、15人去导诊台问询、15人去药房。这组比例必须来自现场调研或院方提供的统计数据,不能自己猜。猜出来的路径比例再好看也是自嗨。

路径设置时,SimWalk默认行人走最短路径,但医院现实不是这样——人到了挂号窗口发现队伍太长,会转去自助机;走到导诊台问完路,还得折返回去上扶梯。模拟这类行为要拆成两段路径:先让行人从入口走到导诊台,再在导诊台设置“换乘点”,把一部分人分配到下一段路径。相当于在软件里把一次出行拆成多个“行程段”,每个行程段有自己的目标点。

这种拆法还有个好处:可以处理排队。挂号、缴费、取药这类目标点,一定要把排队逻辑挂进去,而不是让行人走到窗口前原地站着。SimWalk里的排队服务区可以设置服务时间分布和服务人员数量,这比用静态障碍物模拟排队准确得多。

3.3 医院人群参数:速度分布、行人尺寸与排队行为

人群参数是整个模型里最体现功力、也最容易被忽略的部分。

期望速度方面,我给的推荐值如下。健康成年患者和家属:平地期望速度1.0到1.5米/秒,分布中心设在1.2米/秒;老年患者和家属:0.6到1.0米/秒,中心0.8米/秒;坐轮椅患者:0.7到1.0米/秒;推床转运:0.4到0.6米/秒;穿白大褂的医务人员:1.3到1.6米/秒,他们在医院里走路明显比患者快。

这里补充一下参数逻辑。SimWalk基于社会力模型,行人有一个期望速度(心里想走多快),实际速度受前方人群和障碍物影响会降下来。医院模型一定要设速度分布而不是固定速度,因为老年患者一多,整体流线会被拖慢,用单一速度会把密度算偏低。

行人尺寸方面,默认行人半径一般0.35到0.4米,也就是肩宽约0.7到0.8米。医院里要分几类:普通成人半径0.35米;携带行李的陪护和检查报告袋等体积影响不算大,半径调到0.38米;挂输液架的患者半径0.4到0.45米;轮椅患者建议用自定义多边形,宽度约0.65米、长度1.1米;病床转运则要单独定义成“床+2个推床人员”的组合,总长2.2米左右、宽0.8米左右。尺寸给小了,走廊的通过量会虚高,排队队伍也会显得比现实宽松。

排队行为同样要分场景。挂号窗口和取药窗口常见的是单列蛇形排队,可以设成一段排队区,行人沿着蛇形栏杆走;候诊区是“进入大厅→找空位坐下”的模式,不是线性排队,建议用区域目标点,让行人进入候诊区后随机选择座位;缴费窗口前往往是多列并行排队,要建多个服务台、多条队列。

给一份我常用的参数速查表:

人群类型期望速度均值(米/秒)期望速度范围(米/秒)行人半径/尺寸(米)典型场景
健康患者/家属1.21.0-1.50.35门急诊公共区
老年患者/家属0.80.6-1.00.36老年科、门诊
医务人员1.41.3-1.60.35全院各区域
轮椅使用者0.90.7-1.00.65*1.1门诊、住院
病床转运0.50.4-0.60.8*2.2住院部、检查通道
儿童(随家长)1.00.8-1.20.25儿科

这套参数不是从软件说明书里抄的,是拿现场视频一步步校准出来的。后面第5章再讲怎么标定。

4. 模拟结果怎么看,改造方案怎么比

4.1 密度热图与Fruin服务水平判别

模拟跑完,SimWalk会输出一大堆数据,最直观的是密度热图。颜色从蓝到红渐变,蓝色是自由流,红色是拥挤停滞。拿到热图先看三个位置:大厅中心交叉区、挂号收费窗口前、电梯厅入口。

密度热图要结合Fruin服务水平来看。这是行人交通领域经典的分级标准,按每平方米人数或人均占有面积把服务水平分成A到F六级。人均面积3.25平方米以上是A级,行人可以自由选择速度、无冲突;1.39到2.32平方米是C级,一般步行舒适度还过得去;0.93到1.39平方米是D级,行人有明显避让行为,开始感觉拥挤;低于0.93平方米就是E级,接近通行能力上限;0.46平方米以下属于F级,基本停滞,排队和推挤是常态。

换算成密度来说,超过每平方米1人就开始“拥挤”,达到每平方米1.5人以上,走行速度会明显下降。医院门诊大厅在早高峰有两个小时处于每平方米0.8到1.2人的密度是非常正常的,关键是看红色区域持续时间和覆盖范围。如果一个区域在热图上红了整整两个小时,那就不是“高峰正常波动”,而是结构性瓶颈,必须改。

看热图时我还习惯开“时段切片”,按15分钟一段输出密度。医院是动态系统,8点10分和8点40分的拥挤位置可能完全不同:前者在大厅入口处,后者可能已经转移到电梯厅。不给院方看这种时间变化,他们很难理解“为什么大厅入口不堵了、楼上却堵了”。

4.2 排队长度、等待时间与瓶颈定位

排队数据是医院院方最关心的,因为直接关系到患者的体感。挂号窗口排20人和排5个人,患者体验完全是两个世界。

SimWalk的排队统计可以输出每个服务窗口的队列长度随时间的变化曲线、最大排队人数、平均排队人数、平均服务等待时间。我的一般做法是输出高峰两小时内,每15分钟取一个队列长度点,拉成曲线和实测数据对比。如果模型标定得好,排队曲线在形状和峰值上会和现场视频统计比较接近。

判断标准上,门诊挂号窗口平均等待时间控制在10到15分钟以内是可以接受的,超过20分钟就属于明显排队过长;取药窗口同理。缴费窗口的高峰持续时间如果超过40分钟,基本可以判断窗口数量不足。

排队之外还要找“隐性瓶颈”。医院里最经典的是:挂号不堵、缴费不堵,但电梯厅堵成一片。原因是垂直交通能力不足,而不是服务窗口不足。遇到这种情况,要单独统计电梯厅的瞬时聚集人数和平均等待时间。电梯厅的通行能力计算我习惯先手算校核——一台1.6吨电梯一次大约能上13到15个人,每台电梯单程大约90秒,如果早高峰每小时有1500人上楼,那需要多少台电梯,算一算就知道瓶颈是不是在垂直交通。

4.3 一个门诊大厅改造比选的完整例子

说一个我做过的典型方案比选,场景是一个综合医院的门诊大厅改造。

现状问题很明确:早高峰挂号收费区排队严重,大厅中部的自助机被人群包围,电梯厅入口和挂号队伍形成交织,人流互相打架。院方提了两个改造方向:一是把挂号收费窗口从6个增加到9个;二是保留6个窗口,但在大厅入口处增加8台自助挂号缴费机,并调整自助机摆放位置。

如果只看窗口数,方案一似乎最直接。但仿真结果告诉我,增加3个窗口只把平均排队时间从12分钟压到9分钟,大厅密度并没有明显下降。原因很简单:大厅的瓶颈不在服务能力,而在挂号队伍占用通道空间、与通往电梯厅的流线交叉。多开窗口只是把更多人流吸到同一个区域,反而加剧交叉。

方案二在入口处新增自助机、并把原自助机从中央移动到靠墙区域后,排队曲线明显改善:峰值排队人数从34人降到15人,平均等待时间从12分钟降到6分钟,电梯厅入口区域的Fruin服务水平从E级回到D级。把这两个方案的成本、排队曲线、密度热图放到一起对比,院方很快就采纳了方案二。

这个例子的启发是:医院改造不是“哪里堵加哪里”,而是要看堵的根源。入口流线、空间分配、设备位置、服务能力的组合拳,往往比单一增加窗口有效。SimWalk在这个环节的价值不是给一个“标准答案”,而是让每个方案在同样的输入条件下跑一遍,用数据说话。

5. 医院项目翻车高发区与排查思路

5.1 模型标定偏差:实测与模拟对不上

医院仿真最容易翻车的地方,是模型跑出来的流量和实测对不上。常见表现是:模拟出来的大厅峰值人数比现场视频少20%。排查方向我按优先级给三个。

第一是检查到达率是否设置正确。模型的输入不能直接用“总门诊量”,要按调研的15分钟到达间隔去设。总门诊量8000人,不代表早高峰15分钟就均匀分布了800人,医院高峰和低谷差异极大。

第二是检查速度参数。如果模拟里行人整体走太快,单位时间内通过入口的人数偏多,大厅里囤积的人数就偏少。这时把患者速度分布中心从1.2下调到1.0,把老年人群比例上调,密度一般会明显改善。遇到仿真比实际流量大的情况,则反过来检查是不是行人尺寸设小了。

第三是检查路径比例。把挂号直接做成唯一目的地,忽略问询、折返、走错路带来的重复流量,大厅人数也会偏低。建议在模型中额外设置3%到5%的“问询+折返”流量,这部分人到达导诊台后原路返回或转向,能显著提高模型与实测的吻合度。

标定的目标不是追求某个单点和实测完全相等,而是全局误差控制在10%以内。我一般比较三个指标:大厅峰值人数、窗口峰值排队人数、高峰小时通过主入口的总人数。三个指标同时贴近,模型才算基本可信。

5.2 队伍卡死、死锁与调度设置

模拟跑着跑着,队伍突然不走了,或者某些行人原地踏步,这是SimWalk项目里最常见的“翻车现场”。医院场景尤其多,因为排队多、空间窄、还有轮椅病床这类大尺寸对象。

卡死最常见的原因是排队区规划不当。挂号窗口前排队的蛇形空间画得太窄,队尾甩到主通道上,两侧来向的行人把队伍截断,后面的人永远挤不到队尾。解决办法是给每条排队区留足容量:一个窗口前排队区至少要能容纳高峰时段排队人数,且队尾不能侵入通道。如果现实中队尾本来就到通道了,说明空间就是不够,仿真把它暴露出来反而是价值。

病床和轮椅组合模型也容易卡死。小尺寸的行人在大尺寸物体周围插空绕行,被夹在墙角和床之间动弹不得。这不算软件bug,是模型空间不足的体现。排查时把卡死区域调成密度热点图,往往发现对应区域实测里也是拥堵点。

还有一种卡死和随机种子有关。SimWalk每次运算是随机的,某些种子下局部排队顺序不对会导致死锁。跑方案比选时务必固定随机种子,保证不同方案之间的差异来自方案本身而不是随机噪声。正式汇报前,同一方案至少要跑3到5个种子,取统计均值,别拿单次结果下结论。

5.3 垂直交通的近似处理

医院的高层住院楼和门急诊楼,垂直交通是大人流组织的关键。SimWalk原生对楼梯的建模比较直接,设置楼梯区域后可以定义上下行方向;对电梯轿厢则没有专门的“电梯模拟器”,处理起来需要一点技巧。

我的做法是:当项目关心的是“电梯厅会不会堵”时,不深究轿厢内部的过程,而是把电梯抽象成“服务台”——候梯厅是排队区,电梯是服务窗口,电梯的载客量和运行周期折算成服务时间。一台电梯平均每趟载12人、运行周期90秒,就相当于一个服务速率每分钟8人的窗口。每层楼有4台电梯,就设4个服务窗口。仿真算出来的候梯厅排队人数,和实测吻合度很好。

当项目关心的是“电梯配置够不够”时,建议另算一笔手工账:高峰小时总需求量乘以平均每人占用电梯时间,除以电梯总运力,得到电梯利用率。利用率超过70%,就该提醒院方考虑加装电梯或调整科室楼层分布了。SimWalk算出来的流量数据可以为这笔手工账提供输入。

楼梯和扶梯则可以直接模拟。扶梯要设置好上行方向和速度,医院里下行扶梯利用率往往不高,大部分人习惯乘坐上行扶梯后再走楼梯下来。楼梯建模时注意把楼梯间的平台画进去,平台是医院疏散和日常通行中真正的瓶颈,很多拥挤发生在楼梯转角的平台处。

5.4 随机性与敏感性:别只跑一遍

最后单独强调一点:医院仿真方案比选,最忌讳只跑一遍就出结论。

人的行为天生有随机性。同一套方案,不同随机种子跑出来的排队峰值可能差到5到8人。正确的做法是每个方案跑多个种子取平均,同时把“最好情况”和“最差情况”都列出来。汇报时告诉院方:该方案平均排队时间9分钟,最差情况下可能到12分钟,比现状的18分钟仍有明显改善。这种表达比单纯一个数字有说服力得多。

敏感性分析也要做。医院仿真的输入不确定性很大:明天流感季门诊量上升20%怎么办?专家门诊日患者构成变化了怎么办?我用简单的方式:把输入流量整体上调15%,把老年患者比例上调10%,看方案的改善效果是否依然成立。如果一个方案在“恶劣输入”下依然优于现状,它才是真正值得采纳的方案;如果只在理想输入下好看,那方案本身就是脆弱的。

一点收尾的个人经验

做完这些医院项目,我最大的体会是:医疗机构人群仿真,难点从来不在SimWalk软件本身,而在于对医院真实运行逻辑的理解。去现场多看一上午,比在办公室调一星期参数有用。实地站过门诊大厅,你才会发现最大的拥堵往往不是发生在排队窗口,而是在人流的交叉点上;你才会理解为什么那么多患者会在导诊台前折返。

再分享一个小技巧:给院方汇报时,别只拿密度图和曲线表。剪一段模拟动画,用颜色区分患者和家属,再配上排队长度实时曲线,院方领导十分钟内就能看懂问题出在哪。动画不是用来炫耀软件的,是用来让非专业的人理解专业结论的。这个细节,往往决定你的仿真报告是被采纳进改造方案,还是被放在抽屉里落灰。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进