医院人流仿真怎么做?SimWalk医疗项目实操指南 做医疗机构人群仿真和处理火车站、机场的常规行人仿真有一个根本差异站房里的人状态高度一致目标是进站、换乘、出站而医院里同时存在目标明确的患者、来回折返的家属、行动不便的轮椅使用者、转运中的病床以及大量处于等待状态的人群。SimWalk 这个系列写到第 14 期我把这款软件用得最费心的场景就是医疗机构仿真这里的每个细节一旦忽略结果就会和真实就诊体验完全脱节。这篇我打算把话说明白医院人流仿真的痛点到底在哪、建模前要准备哪些参数、完整跑一个项目要经过哪些环节、常见问题怎么排查。适合做医院空间方案的设计师、基建与后勤部门、院感管理或运营优化团队以及给医疗机构提供咨询和设计服务的同行参考。1. 医疗机构人群仿真这跟火车站人流完全不是一回事1.1 先搞清楚医院里的人到底在“做什么”很多第一次接触医院项目的人会下意识把医院空间当成普通公共建筑来建模入口生成行人、出口吸收行人、路径只连最近的路。这个做法几乎必翻车因为医院里的大量行为不是“通过型移动”而是“服务型移动”。我仔细拆过医院行人的行为构成大概可以分成五类定向移动挂号后去诊室、缴费后去药房、检查完回候诊区这部分人目标清晰但路径经常不是直线。排队等待挂号、缴费、取药、候诊、办住院手续这类行为占的时长比例非常高往往比走路时间还长。徘徊寻路找科室、找检查室、找自助机、找卫生间特征是走走停停、来回折返。伴随移动家属扶着患者、推着轮椅、陪着老人慢慢走两个人的速度受其中较慢者约束。紧急转运病床转运、手术接送、急诊推车移动速度不高但占道宽对向行人必须让行。这意味着不能把一个医院访客建模成“单个行人从A点到B点”。正确做法是把他建模成一个“活动序列”到达、排队、移动、再排队、再移动、最后离场。仿真模型的参数重心也相应从“走路速度”转向“服务时间、排队规则、路径选择”。1.2 医院空间的三个“仿真痛点”医疗机构的人群仿真之所以难核心不在软件而在空间组织。我总结了一下医院建筑反复出现三类问题第一类是窗口服务型空间。挂号窗口、收费窗口、药房窗口往往集中在门厅两侧早高峰时好几条队列同时存在。队列一旦排出护栏区域就会和门厅的主通道交叉严重时把整个大厅的横向通行截断。这类问题在图纸上看不见只有把行人和队列一起放进动态模型里才能看出冲突的严重程度。第二类是候诊型空间。候诊区紧挨诊室走廊叫号系统按顺序放人但候诊人数超过座位容量后站着等的人会自然外溢到走廊、楼梯口甚至电梯厅。模型里如果只画了“候诊座椅区”没有考虑站等区域和溢出路径仿真结果会比实际情况乐观很多。第三类是通道型空间。医院走廊同时承载步行人流、轮椅、病床、物流小车。双向通行在直线段没问题一旦遇到电梯厅、转角、开门位就会形成瓶颈。用SimWalk做这类分析最合适因为社会力模型能让行人在瓶颈处自然减速、绕行、等待而不是按固定路线机械移动。1.3 医疗机构仿真最适合回答的几类问题基于上面这些痛点SimWalk在医疗场景里最常回答的问题大概是以下几类门诊楼高峰期哪个出入口、哪个通道最常见拥堵挂号窗口从8个减到6个对最长排队时间和门厅拥挤度有多大影响把缴费窗口换个位置能不能避开取药队列和主通道的冲突新院区方案里科室布局会不会导致大量患者走“回头路”某层病房区发生紧急疏散时走廊和楼梯的疏散时间能否满足要求如果项目关心的是“某个空间改造后到底有没有改善”那医疗机构仿真比单纯的排队论计算更有说服力。因为它输出的不只是平均排队长度还包括整条走廊的密度演化、服务水平变化和每一名行人的行程时间分布这些信息能直接支撑决策。2. 建模之前的准备数据、几何、行为参数一个都不能少2.1 几何图纸的清理是第一步很多人以为仿真建模的重心在软件操作实际上医院项目的成败有一半在图纸处理。医院建筑的CAD图纸布局复杂设备带、家具、屏风、绿植、临时隔断什么都有。如果直接拿原始图纸导入SimWalk绘制可行走区域时会非常痛苦也容易出错。我的习惯是先用CAD做一次“图纸净化”删除家具、医疗设备、装饰性构件只保留建筑结构、墙体、门窗、柱子、电梯井、楼梯。把每层的可步行区域边界检查一遍确保是闭合轮廓否则仿真时行人会穿墙。门洞宽度要按实际开启方向确认急诊通道的门和病床转运区的门宽度差异很大不能用一个默认值。无障碍坡道、自动门、电梯、扶梯都要单独标记出来因为这些对象的通行能力、延误时间都和普通地面不同。如果有跨楼层场景必须把楼梯和电梯定义清楚SimWalk里的垂直通行对象会影响楼层间的换乘时间。我踩过最典型的一个坑图纸里有一扇常闭防火门我在建模时按普通门处理结果仿真里大量行人从这扇门穿行。后来和院方核对才发现常闭状态根本不通行。图纸呈现的是“设计状态”而仿真需要的是“实际使用状态”这两者不一致的时候必须以实际情况为准。2.2 行人类型与行为参数不要只用健康成人的默认值SimWalk的底层模型比较接近连续空间上的社会力模型行人有目的地、期望速度和私人空间每一步运动受目标吸引力、其他行人的排斥力和障碍物的排斥力共同影响。这套机制能自然模拟出绕行、减速、等待、插空等行为但前提是参数贴合影对象的实际构成。医院人群和车站乘客最大的区别是移动能力差异极大。我通常会在模型里配置下面这些行人类型行人类型典型期望速度范围占用半径参考行为特点轻症患者1.0 ~ 1.3 m/s0.25 m目标明确偶有停顿老年患者/行动不便者0.6 ~ 0.9 m/s0.30 m步速慢路径稳定性差家属/陪护1.2 ~ 1.5 m/s0.25 m常与患者伴行跟随行为明显轮椅使用者0.8 ~ 1.2 m/s0.40 m转弯半径大避让能力弱病床转运0.5 ~ 0.8 m/s0.50 m占道宽无法快速避让医护人员1.0 ~ 1.3 m/s0.25 m路径固定紧急情况下会加速注意一个关键点速度参数是分布不是固定值。仿真软件里设置“期望速度”之后每个行人被赋予的速度会在规定范围内随机波动这样比所有人统一一个速度更贴近真实。默认参数偏向健康成年人直接套在医院项目上结果会显著偏乐观。我在医疗项目里通常会把“老年患者行动不便者”的比例放在15%到25%之间具体取决于科室类型老年科和骨科的比例要更高。轮椅和病床的参数也值得单独处理它们除了速度慢、占用半径大还有一个特点是“对向避让不及时”。普通行人面对迎面来人会提前半秒调整方向而病床推送人员通常要等到很近才会减速喊话。在SimWalk里这种差异不太好直接用固定公式表达我的变通做法是把轮椅和病床的“个人空间”半径调大并把它们的碰撞权重提高让普通行人在模型中会产生更明显的让行行为。2.3 活动序列与路径逻辑建模前必须梳理就诊流程医院人群仿真里活动序列是整个模型的灵魂。一个完整的门诊流程通常长这样到达门厅 → 使用自助机或人工挂号 → 分诊台咨询 → 进入候诊区 → 诊室就诊 → 收费窗口缴费 → 药房取药 → 离场这套序列里每一步都有对应的空间位置和服务时长。建模时不是给行人一个“起点”和“终点”而是把整个“任务链”按顺序绑定到空间对象上。路径选择方面SimWalk会让每个行人根据自己的活动序列在每一步中选择合理路径。大部分患者会选择最短路径但也有部分人会受到标识引导、从众习惯的影响绕路这时候就要给不同活动序列的人设置不同的“路径选择偏好”。还有一个我特别想提醒的细节医院里有一类典型的“二次折返”路径比如患者先从诊室去检验科抽血、再回到原诊室给医生看报告然后去药房。这种路径在空间上表现为一个“回勾”。如果在建模时只把“诊室→药房”作为连续路径就无法体现折返对走廊的二次压力。解决方式是单独建立一条“诊室→检验→诊室→药房”的活动序列并估算这类患者的比例。医院的每日人流高峰也有一些普遍规律门诊高峰通常在早上8点到10点伴随的是挂号和候诊的排队压力下午高峰出现在复诊、取报告和取药的时段人流分布相对分散但持久。建模前如果医院方有历史数据包括分时段门急诊量、各楼层主要目的地分布一定要充分利用。如果没有精确统计至少也要通过现场观察估计各入口的“高峰小时进入人数”和各服务点的“平均服务时长”否则后续所有输出都无从谈起。3. 从CAD到输出报表一次医疗机构仿真的完整实操下面我用一个典型场景来做演示某综合医院的门诊一层大厅同时包含主入口、自助挂号区、人工挂号窗口、缴费窗口、药房取药窗口、分诊台和通往上层诊室的电梯厅。我要分析的是早高峰时段如果把其中两个人工挂号窗口改成自助机大厅拥堵是否会改善。3.1 六个主要步骤从空白图纸到运行结果第一步是导入底图。把净化后的CAD平面图导入SimWalk检查尺寸单位。很多图纸是毫米单位而仿真软件内部习惯用米不统一单位会出现行人速度诡异、空间尺度完全不对的问题。我最开始在医疗项目里忽略过一次单位设置跑出来人竟然穿墙排查半天才发现是图纸尺度差了一千倍。第二步是绘制通行范围。在底图上划定可步行区域然后把墙、柱子、服务台、座椅区画成障碍物。注意医院门厅的临时座椅、自助机点位、宣传栏都会占用人行空间别漏掉。候诊区的座椅可以按“障碍物座位容量”的方式来处理排队的行人会绕过座椅区候诊行人则可以进入。第三步是设置行人生成点和吸引点。门厅主入口、急诊连廊、地下车库入口、电梯厅出口都要设定不同的“生成比例”。吸引点就是各服务点、诊室、药房、电梯厅。生成率按高峰小时进楼人数拆到每个入口比如主入口承担60%、地下车库入口承担25%、连廊承担15%。第四步是定义活动序列和服务点。这一步花的时间最多。我会把行人按就医类型分成若干类普通门诊、复诊开药、陪同家属、轮椅患者、推床转运等。每一类都配置一条独立的“活动序列”并把序列里的“挂号”“缴费”“取药”等服务环节绑定到具体服务对象上。服务对象的参数包括服务台数量、服务时间分布、最大队列容量、溢出规则等。第五步是设置仿真时长与输出指标。医疗机构仿真最好不要只跑十分钟就结束。我一般让模型先“预热”十分钟让人群在空间里自然铺开再统计正式时段的指标。输出指标至少要包含平均排队时间、最大排队长度、平均密度、服务水平等级、人均行程时间、时段流量曲线。如果项目涉及疏散还需要额外设置疏散触发条件和安全出口位置。第六步是试运行和多场景重复。第一次跑出来先别急着分析。打开可视化界面看有没有不合理的穿墙、卡死、逆行、服务点排队溢出等异常确定模型行为基本合理后再按不同随机种子重复运行10次左右。同一场景跑多次的意义在于消除随机性对结果的干扰通常用平均值代表该场景的综合表现而峰值结果用于评估最不利情况。3.2 排队区域和服务能力的设置细节SimWalk排队建模的核心是“服务点队列空间”的组合。要设置几个参数服务台数量例如人工挂号窗口从目前的8个逐渐改为6个、4个观察排队指标变化。服务时间分布不同业务的服务时间差异很大。我按常见经验值给出一组范围——人工挂号60到140秒收费120到180秒药房发药120到240秒分诊咨询30到60秒自助机操作45到90秒。这些值用正态分布或三角形分布描述比固定值更贴近现场。队列方向与容量让队列沿护栏方向排列并设置容量上限。超过上限时新到达行人无法进入排队区只能在附近滞留或重新选择路径这个机制能自然模拟出“排队溢出到主通道”的现象。服务区与主通道的距离如果服务台紧贴主通道队列形成时会把通道完全截断仿真结果会显示通道服务水平明显下降。这里有个值得注意的逻辑排队拥堵不一定源于服务时间长也可能是队列空间不够。门诊大厅如果想通过减少人工窗口来推动患者使用自助机仿真中光改窗口数量还不够要把自助机的点位和服务时长、引导标识带来的路径选择概率都一起改否则患者仍然会固执地挤到剩余的人工窗口前面。3.3 密度、流量、服务水平仿真结果应该怎么看仿真跑完之后输出内容很多但真正用于决策的就那几项。密度云图最直观能一眼看出哪个区域在几点几分变成红色排队长度的时间序列能判断“最大排队发生在什么时候、持续多久”总行程时间和延误时间是改造前后对比的硬指标。服务水平的判定常用行人空间标准。以走廊类通道为例通行能力从自由流到严重拥堵大致可以分成六档服务水平人均占用面积通行状态感受A级大于3.2平方米/人自由行走几乎互不影响B级2.3 ~ 3.2平方米/人基本自由少数绕行C级1.4 ~ 2.3平方米/人正常行走相遇时需避让D级0.9 ~ 1.4平方米/人接近饱和速度开始受限E级0.5 ~ 0.9平方米/人拥挤行走受限大量停顿F级小于0.5平方米/人严重拥堵基本停滞注意密度不等于“单位面积站着几个人”它对应的是包括身体间距、肩宽、随身物品在内的空间占用。医院里轮椅、病床、陪护行李都会放大单个行人的空间需求所以同一个面积在医疗机构里的实际服务水平会比一般公共建筑更低。在对比不同方案时我建议至少把两个指标放一起看最长排队时间反映最差时刻的体验平均行程时间反映整体效率。有时候一个方案平均行程时间下降但最长排队时间翻倍说明它只是把压力从分散区域集中到某个点上这种方案并不能算真正改善。3.4 多场景对比算出来的结果怎么汇报仿真的价值最终要落到“对比”上。我给甲方出报告时习惯做一张改造前后对比表指标现状方案改造方案A改造方案B早高峰门厅平均密度1.8平方米/人D级2.5平方米/人C级2.9平方米/人B级挂号最长排队时间18分钟9分钟7分钟缴费最长排队时间12分钟10分钟11分钟药房取药最长排队时间21分钟6分钟8分钟人均总行程时间26分钟19分钟18分钟到达电梯厅平均用时4.8分钟3.2分钟3.5分钟这张表能直接回答“改完之后到底哪里变好、哪里变差、哪个方案总体最优”的问题。密度云图作为附件展示“瓶颈位置如何转移”比单独堆砌数据更有说服力。提示医院项目的汇报最重要的不是讲模型原理而是把每个指标翻译成“患者会多等几分钟”“走廊会不会堵”“要派几个引导员”这类听得懂的语言。4. 常见问题与踩坑记录医疗项目仿真最容易翻车的几个地方4.1 仿真运行中的典型问题排查我在这里把医疗仿真项目里反复出现的问题整理成一份速查表每次跑模型卡壳时对照着查比翻说明书高效得多。现象可能原因解决建议行人从墙壁穿过去可行走区域轮廓未闭合或障碍物属性丢失回到几何层检查墙体闭合性逐一补全边界某区域密度远超直觉生成率设太高或入口分配比例不合理核对高峰小时进楼人数是否合理拆分到各入口排队人数无限增长服务时间设置过长或行人持续被某种活动吸引到同一服务点检查服务分布的均值和标准差确认活动序列逻辑是否会导致重复排队轮椅与普通行人频繁重叠占用半径和避让参数没生效给轮椅和病床单独增加个人空间半径降低它们的避让权重仿真结果单次波动太大随机种子太少同一场景至少运行10次取平均结果大厅流量持续偏低行人找路困难或活动序列不完整检查是否存在“无法到达的目的地”给行人增加路径选择提示还有一个容易被忽略的问题仿真时长不够。有些模型只跑了5分钟就做统计而医院排队的随机性很强5分钟样本往往不具代表性。我通常会把正式统计时长设在30分钟到1小时至少覆盖一个完整的早高峰。4.2 校准与验证如何让模型贴近真实人流仿真模型做得再精细如果结果和真实人流对不上就只能算“自洽的猜测”。我一般在建模完成后的第一轮运行就做校准流程如下用出入口计数数据或视频观察统计早高峰各入口的实际进入人数和分时段流量曲线。在现场记录关键排队点的“队列实时长度”特别是挂号和药房窗口的峰值队列长度。跑一轮仿真把仿真的进门流量、排队人数、走廊密度和实测数据对比。如果仿真值相差超过10%到15%先从生成率和服务时间两个环节排查。不要同时调七八个参数那样会找不到因果关系。逐步调整入口生成比例、服务时间均值、行人速度分布直到模型稳定在实测数据附近。我曾经遇到过一个很典型的偏差仿真显示门厅终点区域的密度一直偏低实测则很拥堵。后来发现原因是模型里的门诊科室楼层比例设反了大量行人被错误分配到低楼层的诊室电梯厅的堆积量远低于实际。这类错误用肉眼很难发现必须靠实测数据反推才能暴露。4.3 医疗项目里最容易踩的四个坑第一个坑是低估行动不便者的比例。医院里的人不是写字楼里的上班族健康成年人的期望速度参数不能全局使用。早高峰时段门厅里有相当比例的老人、孕妇、术后患者、推轮椅家属他们的速度区间明显偏低。不混入低速行人仿真出来的走廊密度和排队溢出都会失真。第二个坑是忽略“成对”行为。医院里大量行人不是独立个体而是“一患一陪”甚至“一患多陪”。如果按单个行人随机生成大厅和走廊里看似人数相同实际的空间占用和交互行为却差很多。医学里常说“陪伴者会放大患者的行动半径”仿真建筑空间时最好把陪伴关系通过“同步速度”或“低间距跟随”的方式体现出来。第三个坑是电梯和扶梯建模不到位。医院垂直交通的重要性远大于普通办公建筑。电梯厅前排队的人会占用走廊空间如果没有把等候区域单独建模仿真结果会低估电梯厅对相邻通道的挤压。扶梯的速度、方向、满载率也直接影响楼层间的人流到达速率这些对象建模一定要单独处理。第四个坑是把“设计状态”当“使用状态”。规划图纸上的门可能常闭图纸上的通道可能摆了一排导诊台这些实际状态都会改变通行条件。做医院仿真项目纸上推演不如现场走一圈。保持“模型服务于真实运营”的思维比执着于参数精确性更重要。4.4 医疗机构仿真的最终价值聊了这么多技术细节最后说点实话。医疗机构人群仿真做到最后最有价值的产出往往不是那张漂亮的密度云图而是帮决策者做“减法”发现某个入口实际只需要现在的三分之二宽度省下的面积可以还给候诊区。发现某条走廊就算再拓宽一两米瓶颈还是在尽头的电梯厅那这个拓宽预算就可以砍掉。发现把自助机挪到门厅侧边比在门厅中间增设引导台更有效运营调整的成本几乎为零。我手里做过几个项目仿真结论推动的都是很小的调整调整几个窗口功能、挪一下自助机位置、把排队护栏换一个朝向。这些改动在图纸上不值一提但现场感受天差地别。我个人在这个场景里最深的一点体会是做医疗机构人流仿真先研究“人怎么生病”再研究“人怎么走路”。没有把分诊流程、陪护关系、候诊等待、折返问路这些行为算进去模型输出的数字再漂亮也只是技术上的“标准答案”跟现实不发生关系。下次你们要做医院项目我建议先花几天去门诊大厅站一站看那些真实的排队、伴随和反复问路再回来建模。你会发现原来SimWalk里要填的那些复杂参数现场早就给了你答案。这个系列后面还会继续往下写接下来我打算聊聊体育场馆和赛事人群的仿真思路那是另一个更刺激的挑战瞬时大流量、多入口散场、不同观众群体的情绪状态差异都对模型提出了完全不同的要求。