3. 生物反应器数据预处理
生物反应器的在线与离线数据在进入建模流程之前,几乎不可能直接使用。pH、溶氧(DO)、温度、搅拌转速、补料质量、尾气 CO₂/O₂ 等信号来自不同采样频率的仪表,离线取样测得的活细胞密度(VCD)、葡萄糖、乳酸、效价又带有各自的取样延迟与化验误差。若不做预处理,后续软测量、动力学参数辨识或批次间比较都会被系统性偏差污染。本节围绕六件事展开:缺失值处理、异常值检测、滤波与平滑、时间对齐、批次轨迹标准化、数据质量评估指标。
缺失值:先判断机制,再决定策略
缺失通常分三类:完全随机缺失(如网络丢包)、随机缺失(如某探头在特定 pH 区间漂移导致无效)、非随机缺失(如高黏度时取样失败)。处理前先给每个变量打标签,记录缺失比例与连续缺失长度。示例:某 2000 L 批次 DO 信号采样周期 5 s,共 17280 点,缺失 312 点(1.8%),最长连续缺失 9 点。对短缺口(≤3 点)用线性插值;对中等缺口(4~20 点)用三次样条或 Savitzky-Golay 局部拟合;对长缺口(>20 点)不插值,标记为 NaN 并在建模时用掩码排除。切勿用全局均值填补时间序列,那会抹平补料、诱导等关键动态。
异常值:物理边界 + 统计 + 过程一致性三重校验
异常值检测不能只靠 3σ。推荐三层:第一层物理边界,如 pH 合理区间 6.5~7.4、温度 36.5~37.5 ℃、DO 0~100%;第二层统计检测,对滑动窗口用 Hampel 滤波(中位数 ± 3×MAD)或 IQR 法;第三层过程一致性,如补料速率突增但 DO 未下降、pH 未变化,则怀疑流量计跳变。示例:某批次 pH 在 120 h 出现单点 9.2,物理边界直接判为无效;某批次搅拌功率在 80 h 连续 5 点偏离中位数 4 倍 MAD,标记为异常段。异常值不直接删除,而是置为 NaN 后按缺失值策略处理,保留可追溯标记。
滤波与平滑:按信号带宽选方法
在线信号常含高频噪声。pH 与 DO 噪声幅度小但频率高,可用一阶低通或移动平均;温度惯性大,宜用指数加权移动平均(EWMA);尾气 CO₂ 有脉冲噪声,宜用中值滤波。示例:对 DO 采用窗口 7 的 Savitzky-Golay 二次多项式平滑,既降噪又保留补料引起的下降沿;对 pH 采用 α=0.15 的 EWMA。注意滤波会引入相位滞后,若用于闭环控制,滞后应小于过程时间常数的 1/10。平滑后应保留原始列,便于回溯。
时间对齐:把多源数据放到同一时间轴
在线数据时间戳通常准确,离线化验时间戳对应“取样时刻”,但化验结果在数小时后才返回。对齐时以在线时间轴为基准,将离线值按取样时刻对齐,并显式记录“化验延迟”。若离线值代表取样到化验之间的平均状态,可将其视为该时间窗的中点。示例:在 96 h 取样测得葡萄糖 12.3 g/L,化验延迟 4 h,则将该值对齐到 96 h,并在建模时把 96~100 h 的在线特征与之关联。对频率不同的在线信号,统一重采样到 1 min 网格,用前向填充加时间加权插值。
批次轨迹标准化:让不同批次可比
批次间时长、接种密度、补料策略不同,直接比较原始曲线会失真。常用两种标准化:一是时间归一化,将批次时间映射到 [0,1] 或统一到“发酵小时”;二是幅度标准化,对每个变量按批次内均值和标准差做 z-score,或按参考批次的稳态值做比例缩放。示例:将 5 个批次的 VCD 曲线按发酵时长归一化到 0~100%,再对每条曲线做 z-score,得到可叠加的轨迹带。标准化参数必须只用训练批次估计,避免信息泄漏。
数据质量评估指标:用数字决定是否可用
建议为每个批次计算一组质量指标:缺失率、异常率、信噪比(SNR)、时间对齐偏差、轨迹标准化后的批次间离散度(如平均标准差)。示例阈值:缺失率 <5%、异常率 <2%、SNR >20 dB、对齐偏差 <2 个采样周期、批次间离散度 <0.3。任一指标越界则标记为“需复核”,不直接进入建模。下表给出一个可填写的质量评估示例。
| 指标 | 计算方式 | 示例值 | 阈值 | 判定 |
|---|---|---|---|---|
| 缺失率 | 缺失点数 / 总点数 | 1.8% | <5% | 通过 |
| 异常率 | 异常点数 / 总点数 | 0.6% | <2% | 通过 |
| SNR | 10·log10(信号功率/噪声功率) | 24 dB | >20 dB | 通过 |
| 对齐偏差 | 离线与在线时间戳差 | 1.2 min | <2 min | 通过 |
| 批次间离散度 | 标准化后轨迹平均标准差 | 0.27 | <0.3 | 通过 |
把上述流程固化为脚本后,每个批次进入建模前都会得到一份质量报告。若某批次缺失率 6.2%、异常率 3.1%,则先复核探头与取样记录,而不是强行插值。只有质量指标全部通过的批次,才进入后续的软测量与动力学建模。预处理不是一次性动作,而是随数据积累不断迭代的工程习惯。