Skip to content

带内

方越的恢复曲线又慢了。

每季度一次的岗位适配复核,流程标准,不指向个人。呼吸面罩扣上,密封检查,跑台启动。三分钟递增负荷,然后静息恢复。面罩下的传感器记录呼气末CO₂分压、潮气量、呼吸频率。数据直连岗位适配复核系统。

跑完她坐在复核区的长椅上等结果。复核区在丰富海大学三号穹顶工程段附属医务段。灯是白的,永远是白的——丰富海的三班制不做光变化模拟,没有意义,总有人在工作。旁边的检修口盖板上有人用蓝色记号笔写着「B班小赵欠我一顿蛋白块」。

结果出来了。

静息心率62。正常。潮气量520 mL。正常。恢复至基线时间:4分18秒。岗位中位数:4分04秒。偏差:+14秒。

偏差一栏的颜色是绿的。带内。

下面有一行自动生成的评估摘要:「各项指标均在岗位适配标准容许带内。下次复核:常规周期。」

她把面罩擦干净挂回去。走出医务段的时候经过一面墙,墙上贴着这个季度的班组产出排名。她的组排第三。她扫了一眼,没停。


走廊窄。丰富海的走廊是大型穹顶里最窄的一类——不是因为建设者省材料,是因为他们算过人流通量。在三班制下,常态运行时,同一时刻需要流动的人口被压到约三分之一,走廊按峰值流量的1.2倍设计就够了。地面是标准预制板,灰白色。两侧墙面每隔四米一个检修口——方形凹槽,盖着可拆卸面板。这些面板是丰富海走廊的基本视觉单元。远看就是灰白底色上的方格阵列。

有些面板上有字。蓝色、黑色、偶尔红色的记号笔。交班备注居多——「C区三号阀已换垫圈,04:12」、「注意B段回风口滤网左上角变形,已报未修」。也有不是交班备注的——「第四年了还是这个味道」、「吴姐生日快乐」,以及更多她不读的东西。面板定期更换,字就没了。没有人抄录它们。

方越走在灰白色的格点阵列中间,空气里是金属和润滑脂的痕量微粒。她闻不到。从小闻到大的东西不算气味。去过雨海出差的同事说那边的空气闻起来像旧纸。方越没去过雨海。

她的工位在三号穹顶的系统工程段。一排工作台,标准配置:终端、双屏、可调座椅螺栓锚在地面。A班正在收尾,B班的人陆续到了。交接不需要仪式——A班的人在终端上标注进度,退出登录,B班的人坐下来,登录,看上一班留的标注,继续。

方越是B班。她坐下来,登录。

屏幕上是她这周的主要任务:三号穹顶通风子系统的季度负荷模型更新。


她喜欢这份工作。

负荷建模是一种翻译——把穹顶里所有活着的和运行着的东西翻译成大气循环系统的语言。每一台设备的热输出,每一段管道的阻力系数,每一个区段的人员密度,都是模型里的变量。这些变量输入进去,模型输出一组通风调度参数:各区段的送风量、回风比、处理气掺混率。系统按这组参数运行,穹顶里的每一个区段的空气成分维持在带内。

她做得快。这不是天赋——是熟悉。三年的工作让她能一眼看出负荷曲线上的异常拐点。能在脑子里粗估一个新增热源对下游温湿度的影响。能不看手册就报出任何一个区段的设计风量和实际测量值之间的典型偏差。

季度更新的主要工作是刷新人员变量。丰富海大学的人口有季度波动——新生入学、毕业离开、跨海区交流、短期驻留的矿业联合体技术人员。每一次人口变动都是模型的输入变更。人在这里不是名字。是代谢率、热输出、CO₂生成速率。是一组生理参数的统计分布。

她从人事系统导出了本季度三号穹顶的人员数据。匿名化处理后的生理参数集——年龄、体重范围、基础代谢率分档、岗位活动强度等级。她不需要知道谁是谁。她需要知道的是这个穹顶里的人的总代谢负荷。

数据导入模型。运行。看结果。

送风量调度参数和上季度几乎没有变化。人口净变动不到2%,模型输出的差异在噪声范围内。

常规工作。她标注完成,准备进入下一个任务。


下一个任务不常规。

上个月系统工程段接到一个项目:为三号穹顶制定「应急工况下的人员调度优化方案」。背景是去年一次真实事件——不是三号穹顶,是隔壁二号穹顶的一台CO₂处理单元故障,导致该穹顶的CO₂处理能力在四十二小时内降低了约30%。事件处置得当,没有人员伤亡,二号穹顶在容许范围内完成了切换和修复。但事后评估指出:人员调度的响应时间可以更快,标准可以更精确。

项目的目标是建立一套量化的人员调度框架——在通风子系统能力降级时,根据各区段的实际空气处理裕度和人员代谢负荷,自动计算最优的人员重新分配方案。简单说:如果某个区段的空气处理能力临时下降,谁应该留下,谁应该转移到冗余更充足的区段。

方越被分配到这个项目里不意外——她是三号穹顶负荷建模的常驻工程员。模型是她的。

项目组四个人。她负责核心模型:把人员变量和系统能力变量整合到同一个优化框架里。

她用了三周建模。框架的逻辑很清楚:

  • 目标函数:在系统能力降级条件下,最小化各区段的人均大气负荷偏差。
  • 约束条件:各区段人均有效供气量不低于应急下限值。总转移人次最小化。关键岗位覆盖率不低于阈值。
  • 决策变量:个体—区段分配关系,以及各转移批次的人员集合。

然后是人员分配的优先级权重。

这是模型里最敏感的部分。谁先走,谁后走,谁留下。

最简单的方案是不区分个体——所有人按区段均匀转移。但项目需求明确要求「考虑个体差异以提高分配精度」。理由充分:不同人的代谢负荷不同,均匀转移不是真正的负荷均衡。一个基础代谢率高的人和一个低的人对大气系统的压力不同。真正的「公平」是按负荷调配,不是按人头。

方越没有反对这行需求。项目组没有人反对。

因为它是对的。在技术上,按负荷调配比按人头均匀分配更精确,这是事实。

项目负责人在第一次讨论会上说过一句话:「我们不是在分配座位,是在分配空气。空气是算出来的。」

没有人反对。方越也没反对。她同意。这是对的。

她在模型里加入了个体代谢参数。数据来源是岗位适配复核系统——每季度更新的那个。每个人的呼吸效率、基础代谢率、恢复曲线指标,全部匿名化后作为模型输入。

模型跑通了。输出了一套在各种降级情景下的最优人员调度方案。

她做了验证。在模拟的CO₂处理能力降低30%的情景中,她的模型比均匀分配方案减少了约12%的人均大气负荷差异。更稳。更公平——如果公平的意思是按实际负荷均衡分配。

项目组审查了模型。反馈积极。工程段的人看东西的方式和其他地方不同——他们不问「这样做对不对」,他们问「这样做稳不稳」。模型是稳的。


她是在审查自己模型的调试日志时发现的。

不是发现——发现意味着意外。她一直知道。只是在调试日志的某一行,她看到了自己的数据点。

匿名化的。她的名字不在模型里。但她的生理参数在。她认出了自己。基础代谢率分档:中。岗位活动强度:中高。恢复曲线偏差:+14秒。氧耗峰值:高于岗位中位数8.6%。

在模型的优先级排序中,这组参数对应的匿名个体在CO₂处理能力降低30%的情景下被分配到「优先转移」组。

不是惩罚。不是歧视。是她自己写的优化逻辑的正确输出。目标函数最小化人均大气负荷偏差,氧耗偏高的个体被转移到冗余更充足的区段,留下氧耗较低的个体在降级区段维持运行。数学上无可挑剔。

她盯着那一行。1247号数据点。优先级标签:T2(第二批转移)。

T1是第一批转移——通常是体重大、活动强度高的重体力岗位人员。T2是第二批转移——中等代谢负荷但某些指标偏离岗位基准的人。T3是暂缓转移。K是关键岗位锁定,除非系统进入更高等级降级情景,否则强制在岗。

她在T2里。不是因为她的能力。是因为她的恢复曲线慢了十四秒。


她盯着那一行又看了一会儿。

然后她想到另一件事。

她认出了自己,是因为她知道自己的参数。但岗位适配复核系统不是她一个人能访问的系统——项目组四个人,工程段的段长,还有复核流程里涉及的人事数据接口维护人员。这些人里,接触过岗位系统原始数据的,可以做同样的事:把参数组合和具体的人对上。她自己就能做。她在建模期间反复进出两套系统,她随时可以做。

她没有做。不是因为规则不允许——这类交叉查询没有明文禁止。是因为那个问题从来没有出现在她的工作流程里。项目文件上写着「匿名化处理」,她就照着处理了,然后继续下一步。

所谓匿名化,是一道程序,不是一堵墙。

1247号是她。模型里所有的数据点,都是有名字的人。


她没有关掉模型。她继续做手头的事。

调试日志里还有其他需要检查的东西——几个边界条件下的数值稳定性、某些极端情景下约束条件之间的冲突处理。这些是技术问题。有明确答案。

她检查了一个小时。修正了两个数值精度问题。在代码注释里记录了修改原因,打上了时间戳和她的工号。

然后她回到那个优先级权重参数页面。

权重参数表有二十多个条目。每个条目是一个生理指标对优先级排序的贡献权重。体重对应0.15,基础代谢率对应0.25,活动强度对应0.20,恢复曲线偏差对应0.10。其余分配给年龄修正、岗位类型修正等。

恢复曲线偏差的权重是0.10。不大。但足以让她在偏离岗位中位数14秒的情况下被推入T2。

她可以改这个权重。0.10改成0.05。或者改成0。技术上没问题——恢复曲线偏差的预测效力在统计上确实弱于基础代谢率和体重。有理由降权。验证报告里也有支持降权的论据。她可以写一段技术说明,合理的,可审计的。

她也可以不改。0.10是她自己在三周前设定的。那时候她还没有跑调试日志里的个体级数据。那时候她设定0.10的理由是:恢复曲线偏差反映个体的心肺储备余量,在应急工况下心肺储备余量和持续作业能力正相关,纳入权重有生理学依据。

这个理由现在仍然成立。

她在0.10上停了一会儿。

然后她意识到她一直在想一个错误的问题。

不是0.10该不该改成0.05。就算她把恢复曲线偏差的权重清零,模型里仍然会有T1和T2。代谢负荷最高的那批人仍然会是第一批被转移的人,因为模型的目标函数说这样做最优,这在数学上仍然是对的。改0.10这个数字不会改变框架的结构。T1的人会换一批,但T1还在那里。

那个框架——把每个人的身体参数翻译成调度优先级的框架——是什么时候被决定成立的?

她往回翻项目需求书。找到了那一行:「考虑个体差异以提高分配精度。」

一行技术需求。

她记得讨论会上没有人在那行需求上停顿。因为它是技术语言写的,技术上成立,所以它通过了。它带着答案进入项目,在被问出来之前就已经替一个更早的问题占好了位置。

这个问题没有被问过。不是没有位置问——项目讨论会上有四个人,有往来邮件,有技术备注机制。是它没有以这个形状出现过。它被装进了技术语言里,穿着「分配精度」的外形通过了所有人的审查,包括她的。

她没有问,因为项目的语法里没有这个问题的槽位。


B班过半了。

走廊里能听到隔壁检修区传来的工具声——有人在拆什么东西。金属碰金属的声音在丰富海的窄走廊里传得很远。她的工位离走廊只隔一层隔板,声音穿过来时变闷了,但节奏还在。拆、停、拆、停。有人在按步骤做事。

她站起来去接了一杯循环水。饮水处在走廊加宽段,五步路。来回不到一分钟。

回来的时候经过B班同事孟浩的工位。他在看一份管道改造方案,屏幕上全是截面图。

「方越,C区回风主管的弯头阻力系数你还记得吗?」

「2.3。不对——2.3是旧版。改造后的实测是1.9。」

「1.9。谢了。」

她回到自己的位置。坐下。

走廊里那个拆东西的声音还在继续。拆、停、拆、停。某个人在某个检修口里做着和她完全不同的工作,用手和工具接触系统的物理表面。她在这一侧,用数字接触同一个系统的抽象模型。同一个大气循环系统。一个人在修它的管壁,一个人在调它的参数。

她想到了到岗第一周的接班训练。一个快退休的老工程师带她跑了七天现场。老工程师话不多——丰富海的人话都不多——但有一次他们蹲在一段回风管旁边,他突然说了一句没头没尾的话:「系统不知道你是谁。你得知道你是谁。」

她当时没懂。以为是那种老工人爱说的、没有精确含义的半句哲学。

现在她想了一下,仍然不确定他说的是工程还是别的什么。系统知道的是:中等代谢率分档,中高活动强度,恢复曲线偏差+14秒。1247。那不是她。但那也是她。

问题不是系统如何看她。问题是:1247号是她这件事,能不能和那个框架的前提放在同一条线上——她不确定。她用她自己知道的所有语言转了一圈,找不到一个能让它稳稳落地的方式。

她把这个念头放下。现在不能想。手里没有合适工具的时候,想这种问题往往更容易想偏。

屏幕上还是权重参数表。光标在0.10上面。


B班还有三个小时。

她在参数页的备注栏里新建了一条注释。打了第一句:

复核:恢复曲线偏差是否应纳入应急调度权重。相关文献对其预测效力支持不一致。建议项目组讨论。

她看了一遍。这句话是准确的。技术上成立。项目组会处理。会有一轮讨论,也许会改,也许不改,不管结果如何这个问题会进入评审记录。

她继续打第二句:

另:此框架以个体生理参数作为应急调度优先级的输入依据。建议评审时明确此假设的适用边界及设计依据。

她把两句话放在一起读了一遍。

第二句也是准确的。「适用边界及设计依据」是技术语言,可以进系统。但它问的不是第一句那种问题。第一句是在修补一个参数。第二句是在问框架的前提是否被审查过。

把两句话放在同一条技术备注里,第二句会显得是第一句的延伸,一种参数层面的连带问题。它不是。它是另一个问题。一个需要不同场合、不同语境才能被认真对待的问题。

也许根本没有那个场合。她不确定。

她把第二句删掉了。

光标离开了0.10。

她把第一句提交进了项目系统,抄送项目负责人和另外两个组员。没有特别说明,标注的是「技术备注」,和她今天其他几条代码修改记录并排在提交历史里。

她打开下一个边界条件检查。

走廊里的工具声还在。拆、停、拆、停。节奏没有变。隔壁检修口的人还没有换步骤,或者换了步骤但节奏恰好一样。灯光不变。永远不变。丰富海的灯光不假装有下午。


Previous
担保
Next
刮痕