污水生物模型与 Peterson 速率矩阵:完整教程 2026-03-17

污水生物模型与 Peterson 速率矩阵:完整教程

面向对象:环境工程师、水处理研究者、相关专业研究生 学习周期:12-16 周(每周 8-10 小时) 前置要求:大学化学、微生物学、高等数学基础 版本日期:2026-03-16


目录

本教程由微风轻语规划设计,Claude Code 制作
污水生物模型与 Peterson 速率矩阵:完整教程 2026-03-17

第 1 章:为什么需要污水生物模型?

学习目标

  1. 理解污水处理从经验设计到数学建模的历史演进
  2. 了解 ASM 系列模型的诞生背景与 IWA 工作组的贡献
  3. 认识生物模型在工程设计、运行优化与故障诊断中的应用价值
  4. 掌握本教程的结构与学习路线图

前置要求:无

1.1 从经验设计到数学建模

活性污泥法(Activated Sludge Process)自 1914 年由 Ardern 和 Lockett 在英国曼彻斯特发明以来,已有超过一个世纪的历史。在很长一段时间里,活性污泥系统的设计和运行主要依赖于经验公式和安全系数

时代设计方法核心参数局限性
1920s-1960s容积负荷法(Volumetric Loading)BOD 容积负荷 (kg BOD/m³·d)无法预测出水水质,安全系数大
1960s-1970s食微比法(F/M Ratio)F/M = Q·S₀/(V·X)未考虑污泥龄对系统性能的影响
1970s-1980s污泥龄法(SRT-based)最小 SRT 保证硝化静态设计,无法模拟动态响应
1987 至今数学模型法ASM 系列 + Peterson 矩阵动态、多过程、多组分

随着排放标准日趋严格(特别是氮、磷去除要求)、工艺越来越复杂(A²/O、UCT、SBR、MBR、氧化沟等变体涌现),工程师迫切需要一套能够定量预测以下行为的数学工具:

1.2 ASM 系列模型的诞生

1983 年,国际水协会(IWA,当时为 IAWPRC)成立了"活性污泥模型数学建模"专家组(Task Group on Mathematical Modelling for Design and Operation of Biological Wastewater Treatment),由以下学者领衔:

该工作组的里程碑成果如下:

年份模型核心贡献
1987ASM1首个标准化活性污泥模型;13 个组分,8 个过程;统一了碳氧化、硝化和反硝化
1995ASM2加入生物除磷(EBPR);19 个组分,19 个过程
1999ASM2dASM2 的改进;增加反硝化除磷能力
1999ASM3ASM1 的概念重构;引入胞内储存物,改善污泥产量预测
2000IWA STR No.9集大成之作,四个模型的完整文献集

所有这些模型都使用同一个数学框架来表达——Peterson 速率矩阵(又称 Gujer 矩阵)。这正是本教程的核心主题。

1.3 模型在工程中的作用

生物模型在现代污水处理中发挥着三大核心作用:

1.3.1 工程设计

1.3.2 运行优化

1.3.3 故障诊断

1.4 本教程的使用指南

1.4.1 教程结构

本教程共 12 章,按渐进式难度组织:

本教程结构一览
基础篇(第 1–4 章)
建立前置知识:微生物代谢、COD 分馏、Monod 动力学、CSTR 稳态分析
核心篇(第 5–8 章)
掌握模型核心:Peterson 矩阵框架、ASM1 完全解读、ASM2d 生物除磷、ASM3 胞内储存
进阶篇(第 9–12 章)
实践与前沿:Python 数值实现、模型校准方法论、新兴模型(Anammox/ADM1/AGS/CFD-ASM)、学习资源

1.4.2 学习路线图

学习阶段章节建议时间核心能力
打地基第 1-4 章3-4 周理解 Monod 动力学,能手算 CSTR 稳态
核心突破第 5-6 章3-4 周完全理解 ASM1 的 Peterson 矩阵
模型扩展第 7-8 章2-3 周掌握 ASM2d/ASM3 与 ASM1 的差异
实战应用第 9-12 章4-5 周能编程实现模型并进行校准

1.4.3 符号约定


目录 | 下一章:第 2 章:前置知识——微生物代谢基础

本教程由微风轻语规划设计,Claude Code 制作
污水生物模型与 Peterson 速率矩阵:完整教程 2026-03-17

第 2 章:前置知识——微生物代谢基础

学习目标

  1. 理解分解代谢与合成代谢的能量关系
  2. 掌握电子供体-受体框架与氧化还原电位
  3. 区分好氧、缺氧、厌氧三种环境
  4. 比较异养菌与自养菌的代谢差异
  5. 认识活性污泥中的关键菌群

前置要求:大学化学基础(氧化还原反应、热力学基本概念)

2.1 微生物代谢的两大分支

微生物的生命活动由两类互相耦合的代谢过程驱动:

分解代谢(Catabolism)

合成代谢(Anabolism)

两者的耦合关系可以用一个简化的方程表达:

底物(电子供体)+ 电子受体 → 能量(ΔG < 0)→ ATP → 新细胞 + 代谢终产物

关键概念:在 ASM 模型中,产率系数 Y(Yield Coefficient) 正是这一耦合关系的定量表达——它描述了每消耗单位底物(以 COD 计)能产生多少新的生物量(同样以 COD 计)。

2.2 电子供体-受体框架

微生物代谢的本质是氧化还原反应。理解这一点需要掌握电子供体-受体框架:

电子供体(Electron Donor, ED)

被氧化的物质——失去电子:

电子受体(Electron Acceptor, EA)

被还原的物质——接受电子:

电子受体还原产物自由能释放量对应环境
O₂H₂O最高好氧(Aerobic)
NO₃⁻N₂(经 NO₂⁻→NO→N₂O)较高缺氧(Anoxic)
SO₄²⁻H₂S较低厌氧(Anaerobic)
CO₂CH₄最低厌氧(Anaerobic)

氧化还原电位(ORP)

氧化还原电位(Oxidation-Reduction Potential, ORP)是衡量体系"电子压力"的指标:

热力学规则:微生物优先利用能产生最大自由能变化(ΔG 最负)的电子受体。因此在有 O₂ 存在时,反硝化和硫酸盐还原被抑制——这是 ASM 模型中开关函数(Switching Function)的热力学基础。

2.3 好氧、缺氧与厌氧

在 ASM 模型中,这三种环境有严格的定义:

环境英文定义DO 范围NO₃⁻ 状态主要过程
好氧Aerobic有溶解氧存在> 0.5 mg/L不限碳氧化、硝化
缺氧Anoxic无溶解氧,有硝态氮≈ 0 mg/L反硝化(NO₃⁻→N₂)
厌氧Anaerobic无溶解氧,无硝态氮≈ 0 mg/LPAO 释磷、发酵

注意:"缺氧"和"厌氧"在中文日常用语中常混淆,但在 ASM 模型中含义截然不同。缺氧(Anoxic)特指 NO₃⁻ 可作为电子受体的环境;厌氧(Anaerobic)特指既无 O₂ 也无 NO₃⁻ 的环境。

2.4 异养菌 vs 自养菌

异养菌(Heterotrophs)

自养菌(Autotrophs)

工程意义:自养硝化菌生长缓慢是活性污泥系统设计中的控制性约束——要实现硝化,污泥龄(SRT)必须足够长(通常 > 5-8 d,低温时需更长),否则硝化菌会被"洗出"系统。这一约束在 ASM1 中通过 μA 和 bA 的相对大小来体现。

2.5 活性污泥中的关键菌群

活性污泥是一个复杂的微生物群落。ASM 模型将其简化为以下功能群(functional groups):

氨氧化菌(AOB, Ammonia-Oxidizing Bacteria)

亚硝酸盐氧化菌(NOB, Nitrite-Oxidizing Bacteria)

聚磷菌(PAO, Phosphorus-Accumulating Organisms)

聚糖菌(GAO, Glycogen-Accumulating Organisms)

厌氧氨氧化菌(Anammox, Anaerobic Ammonium Oxidation)

2.6 本章练习

⭐ 基础题

  1. 解释分解代谢与合成代谢的区别,并说明产率系数 Y 如何连接两者。
  2. 为什么微生物优先利用 O₂ 而不是 NO₃⁻ 作为电子受体?从热力学角度解释。
  3. 区分"缺氧"和"厌氧"在 ASM 模型中的定义,并解释为什么这种区分对生物除磷很重要。

⭐⭐ 进阶题

  1. 异养菌的典型 μ_max 约为 3-6 d⁻¹,自养硝化菌约为 0.3-0.8 d⁻¹。如果一个活性污泥系统的 SRT 为 3 天,能否实现硝化?定性分析原因。
  2. 画出活性污泥系统中碳(COD)的转化路径图,标明异养菌和自养菌的角色。

⭐⭐⭐ 挑战题

  1. 在 A²/O 工艺中,厌氧段、缺氧段和好氧段分别为哪些菌群提供了生态位?用电子供体-受体框架分析各段的主导反应。

推荐阅读


目录 | 上一章:第 1 章:为什么需要污水生物模型? | 下一章:第 3 章:COD 分馏与水质特征化

本教程由微风轻语规划设计,Claude Code 制作
污水生物模型与 Peterson 速率矩阵:完整教程 2026-03-17

第 3 章:COD 分馏与水质特征化

学习目标

  1. 理解 COD 作为"电子当量"的物理意义
  2. 掌握 COD 分馏体系(SS、SI、XS、XI)
  3. 了解 COD 分馏的实验测定方法
  4. 理解氮的形态与转化路径
  5. 认识进水特征化对模型准确性的决定性影响

前置要求:第 2 章(微生物代谢基础)

3.1 COD:不只是一个水质指标

3.1.1 COD 的传统定义

化学需氧量(Chemical Oxygen Demand, COD)是指在强酸性条件下,用强氧化剂(K₂Cr₂O₇)将水中有机物和还原性无机物完全氧化所消耗的氧量(mg O₂/L)。

3.1.2 COD 作为"电子当量"

在 ASM 模型中,COD 的意义远超一个简单的水质指标。COD 是有机物中所含电子数量的度量——它代表了有机物被完全氧化时所需的氧当量,本质上是一种能量货币

为什么 ASM 模型选择 COD 而非 BOD 或 TOC 作为基准单位?

指标优势局限
COD直接反映电子当量;COD 守恒(不灭,只转化);测定方法标准化不区分可降解与不可降解组分
BOD反映可生物降解性测定耗时(5 天);受菌种和温度影响;不守恒
TOC测定快速不同有机物的 COD/TOC 比不同;不守恒于生物反应

核心思想:在 ASM 模型的世界里,一切物质都用 COD 来"计价"。底物有 COD 值,生物量有 COD 值(通常约 1.42 gCOD/gVSS),甚至氧气也有 COD 值(-1 gCOD/gO₂,负值表示消耗 COD)。这使得整个系统的 COD 守恒成为可能——这是 Peterson 矩阵自洽性的基石。

3.1.3 COD 守恒方程

对于任意活性污泥系统,在稳态条件下:

进水 COD = 出水溶解性 COD + 排泥中的 COD + 被氧化的 COD(以氧消耗量计)

即:

CODin = CODeff + CODsludge + O₂consumed

这个守恒关系是 ASM 模型校准中"对不上"时首先应检查的——如果输入输出 COD 不平衡,模型结果必然不可靠。

3.2 COD 分馏体系

3.2.1 四组分分馏

ASM 模型要求将进水总 COD 分解为以下四个组分:

总 COD 可降解 COD 不可降解 COD S_S 溶解性可降解 X_S 颗粒性可降解 S_I 溶解性惰性 X_I 颗粒性惰性

各组分详解:

组分全称物理意义典型比例在系统中的命运
S_SReadily biodegradable substrate小分子有机物(VFA、单糖、氨基酸等),可被微生物直接吸收利用10-30% 总 COD快速被异养菌消耗(数分钟至数小时)
X_SSlowly biodegradable substrate大分子有机物(蛋白质、脂肪、多糖、腐殖质等),需先经胞外酶水解40-60% 总 COD先水解为 S_S,再被利用(数小时至数天)
S_ISoluble inert organic matter不可生物降解的溶解性有机物5-10% 总 COD直接穿透系统,出现在出水中
X_IParticulate inert organic matter不可生物降解的颗粒性有机物10-20% 总 COD随污泥排出系统

3.2.2 为什么分馏如此重要?

SS/XS 比值决定系统的动态响应特性

S_I 直接决定出水 COD 的下限

X_I 影响污泥产量的预测

⚠️ 核心警示:进水 COD 分馏是模型准确性的第一要务。错误的分馏输入比错误的动力学参数对模型结果的影响大得多——这就是所谓的 "Garbage In, Garbage Out"

3.3 COD 分馏的实验测定方法

3.3.1 BOD 曲线法

原理:对过滤和未过滤的水样分别进行长期 BOD 测试(20-28 天),根据 BOD 曲线的形状推算各组分。

BOD(t) = BODultimate × (1 − e−k·t)

BODultimate ≈ SS + XS(可降解 COD 总量)
k 与 BOD 速率常数
短期快速上升部分 ≈ SS 的贡献
长期缓慢上升部分 ≈ XS 的水解贡献

3.3.2 OUR 法(好氧呼吸速率法)

原理:在批式实验中,向含有活性污泥的反应器中加入进水,监测耗氧速率(Oxygen Uptake Rate, OUR)的变化。

时间 OUR S_S 阶段(快速) X_S 阶段(缓慢水解) S_S耗尽

3.3.3 物化分离法

利用过滤(0.45 μm)和絮凝将 COD 分为溶解态和颗粒态:

总 COD 过滤 0.45 μm 溶解性 COD = S_S + S_I 颗粒性 COD = X_S + X_I 长期 BOD → S_S S_I = 溶解性COD − S_S 长期 BOD → X_S X_I = 颗粒性COD − X_S

3.4 氮的形态与转化

3.4.1 氮组分

在 ASM1 中,氮被分为以下组分:

组分符号说明
氨氮S_NHNH₄⁺ + NH₃,包含进水中的和有机氮氨化产生的
硝态氮S_NONO₃⁻(ASM1 将 NO₂⁻ 和 NO₃⁻ 合并)
溶解性有机氮S_ND可水解为 S_NH 的溶解性有机氮
颗粒性有机氮X_ND与 XS 结合的有机氮,水解后释放为 SND

3.4.2 氮的转化路径

进水有机氮 (X_ND, S_ND) 水解 / 氨化 氨氮 (S_NH) 硝化(好氧,自养菌) 硝态氮 (S_NO) NH₄⁺ → NO₂⁻ → NO₃⁻ (AOB)     (NOB) 反硝化(缺氧,异养菌) 氮气 (N₂) ↑ 逸出 NO₃⁻ → NO₂⁻ → NO → N₂O → N₂

3.4.3 氮含量系数 i_XB

生物量中含有一定比例的氮(主要存在于蛋白质中)。在 ASM1 中,这用氮含量系数表示:

这些系数在 Peterson 矩阵中出现于与氮相关的化学计量系数中。

3.5 碱度与 pH

3.5.1 碱度的作用

碱度(Alkalinity, S_ALK)在 ASM1 中作为一个跟踪变量,单位为 mol HCO₃⁻/L(或等价的 mg CaCO₃/L ÷ 50)。

碱度变化的主要来源:

过程碱度变化原因
硝化消耗碱度(-2 mol H⁺/mol NH₄⁺)NH₄⁺ → NO₃⁻ 释放 H⁺
反硝化产生碱度(+1 mol OH⁻/mol NO₃⁻)NO₃⁻ → N₂ 消耗 H⁺
异养好氧几乎不变
厌氧释磷产生少量碱度

3.5.2 碱度对系统的影响

当碱度不足时(< 50 mg CaCO₃/L),系统 pH 会降至 6.5 以下,导致:

ASM1 中碱度的建模意义:虽然 ASM1 不直接计算 pH,但通过跟踪碱度可以预警 pH 问题。碱度变为负值或接近零,意味着系统可能出现 pH 抑制。

3.6 本章练习

⭐ 基础题

  1. 解释为什么 ASM 模型选择 COD(而非 BOD 或 TOC)作为有机物的基准度量单位。
  2. 某污水厂进水总 COD 为 400 mg/L,其中 SS = 80 mg/L,XS = 200 mg/L,SI = 30 mg/L,XI = 90 mg/L。验证总和是否正确,并计算可降解 COD 占总 COD 的百分比。
  3. 硝化反应为什么会消耗碱度?写出硝化反应的简化化学方程式。

⭐⭐ 进阶题

  1. 某污水厂进水 S_I = 40 mg/L,出水 COD 排放标准为 50 mg/L。讨论:仅凭生物处理能否达标?如果不能,还需要什么措施?
  2. 用 OUR 法测定 COD 分馏时,如果向反应器中加入 ATU(丙烯基硫脲,一种硝化抑制剂),对 OUR 曲线会有什么影响?为什么这样做?

⭐⭐⭐ 挑战题

  1. 某市政污水的 COD 分馏数据如下:SS=20%, XS=50%, SI=8%, XI=22%。进水 TKN=45 mg/L,NH₄⁺-N=30 mg/L。请估算有机氮(XND + SND)的总量,并讨论这些有机氮在系统中的转化路径。

推荐阅读


目录 | 上一章:第 2 章:前置知识——微生物代谢基础 | 下一章:第 4 章:反应动力学基础——Monod 方程与 CSTR

本教程由微风轻语规划设计,Claude Code 制作
污水生物模型与 Peterson 速率矩阵:完整教程 2026-03-17

第 4 章:反应动力学基础——Monod 方程与 CSTR

学习目标

  1. 推导并理解 Monod 方程的物理意义
  2. 掌握 μmax、KS、Y、b_d 四个核心参数
  3. 能够推导 CSTR 质量平衡方程
  4. 理解 SRT(污泥龄)的控制作用
  5. 完成稳态 CSTR 的手算练习

前置要求:第 2-3 章;高等数学(微分方程基础)

4.1 Monod 方程

4.1.1 微生物生长的观察现象

Jacques Monod(1949)通过细菌纯培养实验观察到:

  1. 在底物充足时,微生物呈指数生长:dX/dt = μ·X
  2. 比增长速率 μ 不是常数,而是随底物浓度变化
  3. μ 与 S 的关系呈"饱和曲线"——低浓度时近似线性,高浓度时趋于饱和

4.1.2 Monod 方程

μ = μmax · S / (KS + S)

其中:

4.1.3 Monod 方程的图形解释

μₘₐₓ μₘₐₓ/2 KS S μ μ = μmax · S / (KS + S)

关键特征

4.1.4 与 Michaelis-Menten 方程的关系

Monod 方程在数学形式上与酶动力学的 Michaelis-Menten 方程完全相同,但物理基础不同

在 ASM 模型中,Monod 方程被用作一种方便的经验关联式,而非严格的机理模型。

4.2 四个核心参数

4.2.1 μ_max:最大比增长速率

菌群典型 μ_max (20°C)说明
异养菌3-6 d⁻¹快速生长
AOB0.6-0.8 d⁻¹较慢
NOB0.5-1.0 d⁻¹与 AOB 接近
PAO0.8-1.2 d⁻¹中等
Anammox0.05-0.08 d⁻¹极慢

4.2.2 K_S:半饱和常数

K_S 反映微生物对底物的亲和力

菌群底物典型 K_S说明
异养菌S_S10-20 mgCOD/L对有机底物亲和力高
AOBNH₄⁺0.5-1.0 mgN/L对氨氮亲和力高
异养菌O₂0.1-0.2 mgO₂/LK_OH 值
AOBO₂0.4-1.0 mgO₂/L硝化菌对氧需求更高

4.2.3 Y:产率系数(Yield Coefficient)

产率系数 Y 是分解代谢与合成代谢耦合的定量表达:

Y = 生成的生物量 (gCOD) / 消耗的底物 (gCOD)
参数典型值物理意义
Y_H0.67 gCOD/gCOD消耗 1g COD 底物产生 0.67g COD 生物量
Y_A0.24 gCOD/gCOD自养菌产率较低(从无机反应获取能量有限)

Y_H = 0.67 的直觉理解

4.2.4 b_d:衰减系数(Decay Coefficient)

微生物不仅在生长,也在不断衰减(维持代谢、死亡、被捕食):

净生长速率 = 生长速率 − 衰减速率
dX/dt = μ · X − bd · X = (μ − bd) · X
参数典型值 (20°C)说明
b_H0.3-0.6 d⁻¹异养菌衰减系数
b_A0.05-0.15 d⁻¹自养菌衰减系数

工程意义:净增长速率 (μ - b_d) 必须 > 0 才能维持菌群,对应一个最小 SRT

4.3 CSTR 质量平衡方程

4.3.1 完全混合反应器(CSTR)

CSTR(Continuous-flow Stirred Tank Reactor,连续流完全混合反应器)是 ASM 模型的基本反应器单元。在 CSTR 中:

4.3.2 底物 S 的质量平衡

对 CSTR 中的底物 S 进行质量平衡:

积累速率 = 进入速率 − 流出速率 − 消耗速率
V · dS/dt = Q · S₀ − Q · S − rsu · V

其中消耗速率 r_su(底物利用速率)与生物量增长的关系为:

rsu = μ · X / Y = (μmax · S / (KS + S)) · X / Y

4.3.3 生物量 X 的质量平衡

对于带有污泥回流的活性污泥系统,生物量的质量平衡需要引入 SRT 的概念:

V · dX/dt = −Qw · X + μ · X · V − bd · X · V

其中 Q_w 是排泥流量。SRT(Solids Retention Time, 污泥龄) 定义为:

SRT = V · X / (Qw · X) = V / Qw (简化情况)

因此生物量平衡可以改写为:

dX/dt = μ · X − bd · X − X / SRT

4.4 SRT 的控制作用

SRT 是活性污泥系统最核心的设计和运行参数,其意义在于:

4.4.1 SRT 与出水底物浓度

在稳态条件下(dX/dt = 0):

μ − bd − 1/SRT = 0
μ = bd + 1/SRT
μmax · S / (KS + S) = bd + 1/SRT
S = KS · (bd + 1/SRT) / (μmax − bd − 1/SRT)

关键洞察:稳态出水底物浓度 S 仅取决于动力学参数(μmax, KS, bd)和 SRT,与进水浓度 S₀ 无关!(前提是底物不是限制因素且 SRT > SRTmin)

4.4.2 最小 SRT

当 μ - b_d = 1/SRT 时,系统恰好维持生物量不被洗出。当 SRT 更短,微生物来不及生长就被排出:

SRTmin = 1 / (μmax − bd)
菌群μ_max (20°C)b_d (20°C)SRT_min安全系数后
异养菌6 d⁻¹0.4 d⁻¹0.18 d~0.5 d
硝化菌0.8 d⁻¹0.1 d⁻¹1.43 d~4-5 d

工程意义:硝化菌的 SRT_min 远大于异养菌,因此系统设计以硝化需求来确定 SRT——这是为什么硝化常常是活性污泥系统的控制性约束

4.4.3 SRT 对系统性能的综合影响

SRT 短(< 5 d)
SRT 长(> 10 d)
  • 出水 S 高
  • 污泥产量高(年轻污泥)
  • 氧消耗低
  • 硝化不稳定
  • 污泥沉降性好
  • 出水 S 低
  • 污泥产量低(老化污泥)
  • 氧消耗高(更多内源呼吸)
  • 硝化稳定
  • 污泥可能膨胀

4.5 稳态 CSTR 手算示例

题目

一个完全混合的活性污泥系统处理市政污水,条件如下:

求解步骤

步 1:计算出水底物浓度 S

S = KS · (bd + 1/SRT) / (μmax − bd − 1/SRT)
= 20 × (0.4 + 1/10) / (6 − 0.4 − 1/10)
= 20 × 0.5 / 5.5
= 1.82 mgCOD/L

步 2:计算 HRT

HRT = V / Q = 5000 / 10000 = 0.5 d = 12 h

步 3:计算生物量浓度 X

在稳态下,底物的质量平衡:

稳态底物平衡:0 = Q/V · (S₀ − S) − μ · X / Y
μ = bd + 1/SRT = 0.4 + 0.1 = 0.5 d⁻¹
X = Y · (Q/V) · (S₀ − S) / μ
= 0.67 × (10000/5000) × (200 − 1.82) / 0.5
= 0.67 × 2 × 198.18 / 0.5
= 531.1 mgCOD/L

转换为 VSS(取 1.42 gCOD/gVSS):

XVSS = 531.1 / 1.42 = 374 mgVSS/L

步 4:计算氧消耗量

粗算(COD 守恒):O₂ 消耗 = Q · (S₀ − S) · (1 − Y) + bd · X · V · (1 − fp)
简化:氧当量 = (S₀ − S) × (1 − YH) + bH · X · HRT
≈ 198.18 × 0.33 + 0.4 × 531.1 × 0.5
= 65.4 + 106.2 = 171.6 mgO₂/L
总氧需求 = 171.6 × 10000 / 1000 = 1716 kgO₂/d

步 5:计算污泥产量

观测产率 Yobs = Y / (1 + bd · SRT)
= 0.67 / (1 + 0.4 × 10) = 0.67 / 5 = 0.134 gCOD/gCOD
污泥产量 = Yobs × Q × (S₀ − S)
= 0.134 × 10000 × 198.18 / 1000 = 265.6 kgCOD/d
= 265.6 / 1.42 = 187 kgVSS/d

4.6 温度对动力学参数的影响

微生物的动力学参数强烈依赖温度。ASM 模型通常使用 Arrhenius 修正:

p(T) = p(20°C) · θ(T−20)

其中 θ 为温度系数,典型值:

参数θ 值说明
μ_max,H1.07异养菌最大比增长速率
μ_max,A1.10-1.12硝化菌对温度更敏感
b_H1.04衰减系数
b_A1.04
K_S1.0通常假设不随温度变化
K_NH1.0通常假设不随温度变化

工程意义:在北方寒冷地区(冬季水温 8-12°C),硝化菌的 μ_max 可能下降到 20°C 时的 30-40%,所需 SRT 大幅增加。这就是为什么寒冷地区的污水厂设计 SRT 通常在 15-25 天。

4.7 本章练习

⭐ 基础题

  1. 解释 KS 的物理意义。为什么 KS 小意味着微生物对底物的亲和力高?
  2. 在稳态 CSTR 中,为什么出水底物浓度不取决于进水浓度?给出数学解释。
  3. 某系统 SRT = 3 d,水温 10°C。已知硝化菌 μmax(20°C) = 0.8 d⁻¹,θ = 1.11,bA = 0.1 d⁻¹。计算 SRT_min,判断能否实现硝化。

⭐⭐ 进阶题

  1. 重复第 4.5 节的手算示例,但将水温改为 10°C(使用 θ = 1.07)。比较出水 COD、生物量浓度和污泥产量的变化。
  2. 推导观测产率系数 Yobs = Y / (1 + bd · SRT) 的公式。提示:从稳态质量平衡出发。

⭐⭐⭐ 挑战题

  1. 考虑一个 CSTR 系统同时包含异养菌好氧生长和自养菌硝化。写出底物 SS、生物量 XBH 和 XBA、氨氮 SNH 的四个稳态质量平衡方程(假设 DO 充足,忽略水解和衰减)。

推荐阅读


目录 | 上一章:第 3 章:COD 分馏与水质特征化 | 下一章:第 5 章:Peterson 速率矩阵——数学结构与物理意义

本教程由微风轻语规划设计,Claude Code 制作
污水生物模型与 Peterson 速率矩阵:完整教程 2026-03-17

第 5 章:Peterson 速率矩阵——数学结构与物理意义

学习目标

  1. 理解 Peterson 矩阵(Gujer 矩阵)的历史来源与核心思想
  2. 掌握矩阵的三要素:过程行、组分列、速率向量
  3. 能够书写系统的通用控制方程
  4. 理解化学计量系数与动力学表达式的正交分离设计
  5. 运用 COD 守恒逐行验证矩阵的自洽性
  6. 独立构建一个简单的 2 过程 × 4 组分矩阵

前置要求:第 2-4 章(微生物代谢、COD 分馏、Monod 动力学)

5.1 历史来源:一种为复杂生物系统而生的数学语言

在 ASM1 诞生之前(1987 年以前),研究者各自以不同方式表达活性污泥模型——方程组形式各异,组分定义不统一,化学计量关系与动力学关系混杂书写,使不同模型之间几乎无法比较与交流。

Rene Petersen(1965) 最初将矩阵符号引入化学反应工程,用于描述多反应体系的物料平衡。Willi Gujer(瑞士联邦理工学院 Eawag)将这一工具引入水处理领域,并在 IWA 工作组的共同努力下,将其作为 ASM 系列模型的统一表达框架。

今天,这个矩阵在文献中同时被称为 "Peterson 矩阵"(Petersen Matrix)和 "Gujer 矩阵"(Gujer Matrix)。两个名称指同一事物。

Peterson 矩阵的核心价值在于它实现了两个维度的正交分离

  1. 化学计量维度(矩阵本体):描述各组分之间的转化比例关系——基于质量守恒和元素守恒,是静态约束
  2. 动力学维度(速率向量):描述每个过程进行的快慢——基于 Monod 方程和环境条件,是动态变量

这种分离使得模型的构建、验证和修改变得模块化可独立检验

5.2 矩阵的三要素

一个完整的 Peterson 矩阵由三个要素组成:

5.2.1 组分(Columns,列)

模型中需要追踪的所有物质浓度,用 Cⱼ 表示第 j 个组分。

类型前缀含义示例
溶解性S_存在于液相中SS(底物)、SO(溶氧)、S_NH(氨氮)
颗粒性X_与颗粒物结合,随污泥XBH(异养菌)、XS(慢速底物)

每个组分的单位统一为 gCOD/m³(有机物)或 gN/m³(氮组分)、gP/m³(磷组分)。

5.2.2 过程(Rows,行)

模型描述的所有生物/化学转化过程,用 ρᵢ 表示第 i 个过程的速率(g/m³/d)。每个过程对各组分具有明确的化学计量系数。

5.2.3 化学计量系数(Matrix Elements)

矩阵元素 νᵢⱼ 表示过程 i 中,每产生 1 单位参考组分,组分 j 的变化量

过程 组分1组分2组分3 速率
过程1 ν₁₁ν₁₂ν₁₃ ρ₁
过程2 ν₂₁ν₂₂ν₂₃ ρ₂
过程3 ν₃₁ν₃₂ν₃₃ ρ₃

5.3 核心控制方程

有了 Peterson 矩阵,可以系统地写出任意组分在 CSTR 中的动态方程。

5.3.1 通用质量平衡方程

对于 CSTR 中的第 j 个溶解性组分:

V · dCj/dt = Q · (Cj,in − Cj) + V · Σiij · ρi)

整理为:

dCj/dt = (1/HRT) · (Cj,in − Cj) + Σiij · ρi)

其中:

三个项的物理意义

5.3.2 颗粒性组分的处理

颗粒性组分随污泥回流,其有效停留时间为 SRT,需增加排泥损失项:

dXj/dt = (1/HRT) · (Xj,in − Xj) − Xj/SRT + Σiij · ρi)

稳态时(dX/dt = 0),生物反应项等于排泥项,这正是系统维持稳定生物量的条件。

5.3.3 矢量形式(便于编程实现)

dC/dt = (Cin − C)/HRT + νT · ρ

其中 𝝂 为化学计量矩阵(m×n,m=过程数,n=组分数),𝝆 为速率向量(m×1),𝐂 为浓度向量(n×1)。

这种矢量形式直接对应于 Python/MATLAB 的 ODE 求解框架(见第 9 章)。

5.4 COD 守恒——矩阵自洽性的黄金检验

Peterson 矩阵最重要的内部一致性检验是 COD 守恒。由于 COD 是守恒量(不灭,只从一种形式转化为另一种形式),每个生物过程消耗的 COD 必须等于生成的 COD(包括以氧当量计的消耗)。

5.4.1 各组分的 COD 当量

组分COD 当量说明
有机物(SS, XBH, X_S 等)+1 gCOD/gCODCOD 的直接载体
溶解氧 S_O−1 gCOD/gO₂每消耗 1 g O₂,等效于处理掉 1 gCOD 的氧化能力
硝酸盐 S_NO−2.86 gCOD/gN2.86 gO₂-eq/gN(由 NO₃⁻→N₂ 的氧化当量计算)
氨氮 SNH、碱度 SALK0氮/碱度组分本身不携带 COD

2.86 的来源:NO₃⁻ 作为缺氧电子受体时,1 mol NO₃⁻-N(14 g)接受 5 个电子,等效于 5×16/4 = 20 g O₂ 的氧化能力,即 20/14 × 14 = 2.86 gO₂/gNO₃-N。

5.4.2 COD 守恒检验步骤

对过程 i,COD 守恒要求:

Σj ( νij × COD_equiv(j) ) = 0

示例:异养菌好氧生长(Y_H = 0.67)

组分ν(化学计量系数)COD 当量ν × COD 当量
S_S(底物)−1/Y_H = −1.493+1−1.493
X_BH(生物量)+1+1+1.000
S_O(溶氧)−(1−YH)/YH = −0.493−1+0.493
SNH、SALK各有非零系数0(COD当量)0
合计0.000

计算验证:−1.493 + 1.000 + 0.493 = 0 ✓

凡是通过 COD 守恒检验的过程,模型就具备内在自洽性。

5.4.3 逐列 COD 守恒的工程意义

全厂稳态的 COD 守恒(大守恒方程):

进水 COD = 出水溶解性 COD + 排泥 COD + 曝气消耗 O₂
(gO₂ 转换为 COD 当量)

在模型校准中,若进出 COD 不守恒,首先应检查:

  1. 进水 COD 分馏(S_I 是否准确?)
  2. 有无遗漏的 COD 组分(如沉淀污泥带走的 COD)
  3. 矩阵系数是否存在错误

5.5 化学计量与动力学的正交分离

系统行为 = 化学计量("转化比例",矩阵) × 动力学("转化速率",速率向量)

正交分离的实践价值

操作影响说明
修改 μ_max(动力学参数)不影响 化学计量COD守恒依然成立
添加新过程(新行)只需验证新行 COD 守恒不影响已有过程
换用不同动力学表达式矩阵本体不变Haldane、Contois 等均可配合

5.6 完整示例:从零构建 2 过程 × 4 组分矩阵

最简异养菌模型为例,构建过程如下。

设定

步骤 1:定性描述过程

过程 1(好氧生长):底物 + 氧气 新细胞
过程 2(内源衰减):细胞 惰性残余物 + 内源呼吸(消耗 O₂)

步骤 2:确定化学计量系数(利用 COD 守恒推导)

过程 1(以"生成 1 gCOD X_B"为参考量):

组分系数推导
S_S−1/Y_H = −1.493每生成 1 gCOD 细胞需消耗 1/Y_H gCOD 底物
X_B+1.000参考量
S_O−(1−YH)/YH = −0.493由 COD 守恒推导:−1.493 + 1 + 0.493×(−1)×(−1) = 0
X_P0不参与

COD 守恒验证过程 1:(-1.493)×1 + (1.0)×1 + (-0.493)×(-1) = -1.493+1+0.493 = 0 ✓

过程 2(以"消耗 1 gCOD X_B"为参考量):

组分系数推导
S_S0不参与
X_B−1.000参考量(消耗)
S_O−(1−f_P) = −0.920由 COD 守恒:−1+0.08+0.920=0→S_O系数用COD当量=−0.920×(−1)=+0.92
X_P+f_P = +0.080惰性衰减产物

COD 守恒验证过程 2:(-1.0)×1 + (-0.92)×(-1) + (+0.08)×1 = -1+0.92+0.08 = 0 ✓

步骤 3:确定速率表达式

PYTHON
# 过程 1:好氧异养生长(Monod 动力学 + 溶氧限制)
rho_1 = mu_max * (S_S / (K_S + S_S)) * (S_O / (K_O + S_O)) * X_B

# 过程 2:内源衰减(一阶衰减)
rho_2 = b_d * X_B

步骤 4:完整 Peterson 矩阵

过程 S_S X_B S_O X_P 速率表达式
1. 好氧生长 −1/YH +1 −(1−YH)/YH 0 μ_max·(S_S/(K_S+S_S))·(S_O/(K_O+S_O))·X_B
2. 内源衰减 0 −1 −(1−fP) +fP b_d · X_B

步骤 5:写出完整控制方程(稳态 CSTR)

dSS/dt = (SS,in − SS)/HRT + (−1/YH)·ρ₁

dXB/dt = −XB/SRT + (+1)·ρ₁ + (−1)·ρ₂

dSO/dt = (SO,in − SO)/HRT + (−(1−YH)/YH)·ρ₁ + (−(1−fP))·ρ₂
          + KLa·(SO,sat − SO)    ← 曝气项(另加,不在矩阵中)

dXP/dt = −XP/SRT + fP·ρ₂

这就是用 Peterson 矩阵系统表达的最简异养菌模型。ASM1 是在此基础上扩展到 13 个组分、8 个过程的完整版本。

5.7 开关函数:无需 if-else 的环境切换

速率表达式中的开关函数(Switching Functions)使模型能在单一方程集中自动处理好氧/缺氧/厌氧切换,而无需任何条件判断:

类型表达式行为典型应用
正向激活C / (K + C)C 大→≈1(充足,不限速),C 小→≈0(匮乏,限速)底物/溶氧 Monod 限制
负向抑制K / (K + C)C 大→≈0(被抑制),C 小→≈1(不抑制)O₂ 对缺氧反应的抑制

缺氧生长速率表达式示例

ρ_anoxic = μ_max
  · (S_S / (K_S + S_S))   ← 底物 Monod 激活项
  · (K_OH / (K_OH + S_O))   ← O₂ 抑制(无 O₂ 时才缺氧生长)
  · (S_NO / (K_NO + S_NO))   ← NO₃⁻ Monod 激活项
  · η_g   ← 缺氧效率系数(< 1)
  · X_BH

当 SO > 0.5 mg/L 时,KOH/(KOH + SO) 趋近 0,缺氧生长自动被压制为接近零。

5.8 本章练习

⭐ 基础题

  1. Peterson 矩阵的行、列、矩阵元素分别代表什么含义?
  2. 通用控制方程 dCⱼ/dt = ... + Σᵢ(νᵢⱼ·ρᵢ) 中,第二项的物理意义是什么?
  3. 为什么溶解氧 S_O 在 COD 守恒中的当量是 −1 gCOD/gO₂,而不是 +1?

⭐⭐ 进阶题

  1. 在 5.6 节的矩阵中,验证过程 2(内源衰减)的 COD 守恒(写出计算过程)。
  2. 为只含自养硝化的系统构建 Peterson 矩阵:

⭐⭐⭐ 挑战题

  1. 在 5.6 节矩阵基础上,增加缺氧异养生长过程(以 NO₃⁻ 替代 O₂ 为电子受体):

推荐阅读


目录 | 上一章:第 4 章:反应动力学基础——Monod 方程与 CSTR | 下一章:第 6 章:ASM1 模型完全解读

本教程由微风轻语规划设计,Claude Code 制作
污水生物模型与 Peterson 速率矩阵:完整教程 2026-03-17

第 6 章:ASM1 模型完全解读

学习目标

  1. 记住并理解 ASM1 的 13 个组分
  2. 逐一解读 ASM1 的 8 个生物过程
  3. 理解开关函数在 ASM1 速率表达式中的具体应用
  4. 能够读懂并使用完整的 ASM1 Peterson 矩阵
  5. 掌握 ASM1 默认参数集并理解各参数的物理意义
  6. 独立推导异养菌好氧生长的全部化学计量系数

前置要求:第 2-5 章全部内容

6.1 ASM1 概览

ASM1(Activated Sludge Model No. 1)是 IWA 工作组于 1987 年发布的第一个标准化活性污泥模型,由 Henze、Grady、Gujer、Marais 和 Matsuo 联合提出。尽管已有 ASM2d、ASM3 等后续模型,ASM1 至今仍是国际上应用最广泛的活性污泥模型,是理解整个 ASM 系列的基础。

ASM1 的覆盖范围

ASM1 的规模

要素数量
组分13
过程8
化学计量系数(含零)104
非零化学计量系数~30
动力学参数14

6.2 ASM1 的 13 个组分

6.2.1 组分分类

ASM1 的 13 个组分按物理性质和化学性质分为四类:

溶解性有机物(S 前缀):

符号全称单位物理意义
SISoluble inert organic mattergCOD/m³不可生物降解的溶解性有机物,直接穿透系统
SSReadily biodegradable substrategCOD/m³易降解底物(VFA、小分子有机物),直接被异养菌利用

颗粒性有机物(X 前缀):

符号全称单位物理意义
XIParticulate inert organic mattergCOD/m³不可生物降解的颗粒性有机物,随污泥排出
XSSlowly biodegradable substrategCOD/m³慢速降解底物(大分子有机物),需先水解
XBHActive heterotrophic biomassgCOD/m³活性异养菌生物量
XBAActive autotrophic biomassgCOD/m³活性自养(硝化)菌生物量
XPProducts from biomass decaygCOD/m³生物衰减产生的惰性残余物(内源残余物)

溶解性无机物(S 前缀):

符号全称单位物理意义
SODissolved oxygengO₂/m³溶解氧,好氧过程的电子受体
SNONitrate + nitrite nitrogengN/m³硝态氮(ASM1 合并 NO₃⁻ 和 NO₂⁻)
SNHNH₄⁺ + NH₃ nitrogengN/m³氨态氮(主要来源:进水 + 有机氮氨化)
SNDSoluble biodegradable organic NgN/m³溶解性可降解有机氮(氨化的来源)
SALKAlkalinitymol HCO₃⁻/m³碱度,用于追踪 pH 风险

颗粒性有机氮

符号全称单位物理意义
XNDParticulate biodegradable organic NgN/m³颗粒性可降解有机氮(与 XS 伴生)

6.2.2 组分在系统中的"命运"

进水 COD_in · N_in 活性污泥 反应器 8 个生化过程 出水(溶解性组分) S_I · S_S · S_NH · S_NO · S_ALK 排泥(颗粒性组分) X_BH · X_BA · X_P · X_I · X_S · X_ND S_I 直接穿透→出水 X_I 沉淀→排泥 X_S →水解→S_S →异养菌消耗 S_NH →硝化→S_NO(自养菌)

6.3 ASM1 的 8 个过程

过程概览

编号过程名称电子受体主体菌群核心功能
1异养菌好氧生长O₂X_BH碳氧化(好氧)
2异养菌缺氧生长NO₃⁻X_BH反硝化
3自养菌好氧生长O₂X_BA硝化
4异养菌衰减X_BH污泥内循环
5自养菌衰减X_BA污泥内循环
6有机氮氨化X_BH(催化)SND → SNH
7有机物水解O₂/NO₃⁻X_BH(产酶)XS → SS
8有机氮水解XND → SND

6.3.1 过程 1:异养菌好氧生长

文字描述:在好氧条件下,异养菌以 SS 为碳源和能源,以 O₂ 为电子受体,生长并合成新细胞(XBH)。同时消耗氨氮(SNH)用于细胞氮合成,消耗碱度(SALK)。

速率表达式

ρ₁ = μH · (SS / (KS + SS)) · (SO / (KOH + SO)) · XBH

化学计量系数推导(以"生成 1 gCOD X_BH"为参考):

SS 系数:每生成 1 gCOD 细胞,消耗 1/YH gCOD 底物 → −1/Y_H

SO 系数:底物中有 YH 部分用于合成细胞,其余 (1−YH) 部分被氧化释放能量,需消耗 (1−YH)/YH gO₂ → −(1−YH)/Y_H

SNH 系数:每 gCOD 细胞含氮量为 iXB gN/gCOD,这些氮来自 SNH 的消耗 → −iXB

SALK 系数:SNH 中每消耗 1 mol NH₄⁺-N(14 gN),碱度减少 1/14 mol(因 NH₄⁺ 被同化时释放 H⁺) → −i_XB/14

COD 守恒验证

COD 守恒验算(过程 1):
(−1/YH)×1 + (+1)×1 + (−(1−YH)/YH)×(−1)
  = −1/YH + 1 + (1−YH)/YH
  = −1/YH + 1/YH + 1 − 1 = 0 ✓

6.3.2 过程 2:异养菌缺氧生长(反硝化)

文字描述:在缺氧(无 O₂,有 NO₃⁻)条件下,异养菌以 SS 为碳源,以 NO₃⁻ 为电子受体进行反硝化(NO₃⁻→N₂),同时生长。缺氧生长比好氧生长效率稍低(以ηg < 1 体现)。

速率表达式

ρ₂ = μH · (SS/(KS+SS)) · (KOH/(KOH+SO)) · (SNO/(KNO+SNO)) · ηg · XBH

化学计量系数

组分系数推导说明
S_S−1/Y_H同好氧(底物消耗取决于合成代谢,与电子受体无关)
X_BH+1参考量
S_NO−(1−YH)/(2.86·YH)替代 O₂:(1−YH)/YH gCOD 能量需求 ÷ 2.86 gCOD/gN = gN 的 NO₃⁻ 消耗
S_NH−i_XB同好氧
S_ALK+(1−YH)/(14·2.86·YH) − i_XB/14反硝化产生碱度(正),同化消耗碱度(负)

注意:在过程 2 中,SO 系数为 0(无 O₂ 参与),而 SNO 系数为负(消耗 NO₃⁻)。

COD 守恒验证

COD 守恒验算(过程 2):
(−1/YH)×1 + (+1)×1 + (−(1−YH)/(2.86·YH))×(−2.86)
  = −1/YH + 1 + (1−YH)/YH
  = 0 ✓

(SNO 的 COD 当量为 −2.86,系数为 −(1−YH)/(2.86·YH),乘积 = +(1−YH)/Y_H)


6.3.3 过程 3:自养菌好氧生长(硝化)

文字描述:在好氧条件下,自养硝化菌以 NH₄⁺ 为能源(将其氧化为 NO₃⁻),以 CO₂ 为碳源,消耗大量 O₂,生长并合成新细胞(X_BA)。每 gN NH₄⁺ 氧化为 NO₃⁻ 消耗约 4.57 gO₂(理论值)。

速率表达式

ρ₃ = μA · (SNH/(KNH+SNH)) · (SO/(KOA+SO)) · XBA

化学计量系数(推导见附注):

组分系数推导说明
X_BA+1参考量
S_NH−iXB − 1/YA细胞合成消耗 iXB gN,能量代谢氧化 1/YA gN(转为 S_NO)
S_NO+1/Y_A每 gCOD 细胞生成,1/Y_A gN NH₄⁺ 被氧化为 NO₃⁻
S_O−(4.57−YA)/YA氧化 1/YA gN 消耗 4.57/YA gO₂,细胞自身相当于 YA gO₂,净 = (4.57−YA)/Y_A
S_ALK−iXB/14 − 1/(7·YA)同化:−iXB/14;硝化产 H⁺:−2H⁺/mol N = −1/(7·YA)

COD 守恒验证(仅 COD 组分)

COD 守恒初步检验(仅看 XBA 与 SO):
(+1)×1 + (−(4.57−YA)/YA)×(−1)
  = 1 + (4.57−YA)/YA ≠ 0
(注:自养菌以 CO₂ 为碳源,需考虑 CO₂ 固定修正项,见下文)

等等——注意 SNH 和 SNO 的 COD 当量均为 0(氮组分不携带 COD),所以只需:

仅 XBA 与 SO 的 COD 项之和:
(+1) + (−(4.57−YA)/YA)×(−1) = 1 + (4.57−YA)/YA

这不等于 0!这是因为自养菌从 CO₂ 固定碳——碳源(CO₂)有 COD 当量。

更正的 COD 守恒

自养菌利用 CO₂ 作为碳源(CO₂ 中碳的氧化态为 +4,固定到细胞中的碳氧化态约为 0)。在 ASM1 中,CO₂/碳酸盐碱度通过 S_ALK 追踪,但 CO₂ 固定带来的 COD 变化已经包含在整体守恒中。对于自养菌:

CO₂ 固定提供 COD(细胞)+ O₂ 消耗 COD(氧化 NH₄⁺)= 0(能量守恒)

简化的 COD 验证(包含 S_O 的 −1 当量):

简化 COD 验证(含 CO₂ 固定):
(+1)×1 + (−(4.57−YA)/YA)×(−1)
  = 1 + 4.57/YA − 1 = 4.57/YA
(此差值即 CO₂ 固定带来的 COD 贡献,ASM1 已在全厂守恒中纳入)

这不为零,因为 YA 取自能量学(14 gCOD/4.57 gO₂×YA),自养菌的 COD 确实来自 CO₂ 固定。这在 ASM1 框架中是已知的"CO₂ 固定"修正项。

实践注意:对自养过程 COD 守恒的验证需考虑碳源(CO₂),在实际的 ASM1 实现中,全厂 COD 守恒方程已经将此项纳入考量。


6.3.4 过程 4:异养菌衰减(死亡-再生)

文字描述:异养菌的衰减采用 ASM1 特有的"死亡-再生"概念(Death-Regeneration Concept):衰减的生物量不直接被氧化,而是部分转化为惰性残余物(XP),其余转化为慢速可降解底物(XS),供系统内其他菌群再利用。

重要提示:这与 ASM3 的"内源呼吸"概念完全不同,是 ASM1/ASM2d 的一个理论简化。"死亡-再生"在模型中实质上是一种内源呼吸的等价表达,但通过 XS 的再生,间接产生了 OUR(后续异养菌消耗 XS 时消耗 O₂)。

速率表达式

ρ₄ = bH · XBH

化学计量系数

组分系数说明
X_BH−1衰减消耗
X_P+f_P惰性残余物(f_P 典型值 0.08 gCOD/gCOD)
X_S+(1−f_P)慢速降解底物(再生供给)
X_ND+(iXB − fP·i_XP)有机氮从细胞转移到颗粒性有机氮

COD 守恒验证

COD 守恒验算(过程 4):
(−1)×1 + fP×1 + (1−fP)×1
  = −1 + fP + 1 − fP = 0 ✓
(XP 与 XS 均为有机物,COD 当量均为 +1)

6.3.5 过程 5:自养菌衰减

结构与过程 4 完全相同,只是主体为 X_BA。

速率表达式

ρ₅ = bA · XBA

化学计量系数:(与过程 4 结构相同,以 XBA 替代 XBH)

组分系数
X_BA−1
X_P+f_P
X_S+(1−f_P)
X_ND+(iXB − fP·i_XP)

6.3.6 过程 6:有机氮氨化(Ammonification)

文字描述:溶解性可降解有机氮(SND)在异养菌(XBH)的催化作用下转化为氨氮(S_NH)。这模拟了蛋白质类溶解性有机氮的氨化过程。

速率表达式(一阶,以 X_BH 为催化剂):

ρ₆ = ka · SND · XBH

化学计量系数

组分系数说明
S_ND−1溶解性有机氮消耗
S_NH+1氨氮生成(gN/gN = 1)
S_ALK+1/14产生碱度(NH₄⁺ 形成中 OH⁻ 释放?)

6.3.7 过程 7:有机物水解

文字描述:颗粒性慢速可降解底物(XS)在异养菌(XBH)产生的胞外酶作用下水解为溶解性易降解底物(SS)。水解速率由 XS/XBH 比值(比底物浓度)控制,在好氧和缺氧条件下均可发生,但缺氧时效率较低(以 ηh 修正)。

速率表达式(表面积限制的 Monod 型):

ρ₇ = kh · (XS/XBH) / (KX + XS/XBH)
      · [ SO/(KOH+SO) + ηh · KOH/(KOH+SO) · SNO/(KNO+SNO) ]
      · XBH

其中:

化学计量系数

组分系数
X_S−1
S_S+1

6.3.8 过程 8:有机氮水解

文字描述:颗粒性有机氮(XND)随 XS 的水解而同步转化为溶解性有机氮(S_ND)。

速率表达式(比例于过程 7):

ρ₈ = ρ₇ · XND / XS

化学计量系数

组分系数
X_ND−1
S_ND+1

6.4 ASM1 完整 Peterson 矩阵

下表列出 ASM1 的完整化学计量矩阵(空白处系数为 0):

符号约定:

  • Y_H = 异养菌产率系数(0.67 gCOD/gCOD)
  • Y_A = 自养菌产率系数(0.24 gCOD/gCOD)
  • f_P = 内源残余物比例(0.08)
  • i_XB = 生物量含氮量(0.086 gN/gCOD)
  • i_XP = 内源残余物含氮量(0.06 gN/gCOD)
过程 j SI SS XI XS XBH XBA XP SO SNO SNH SND XND SALK 速率 ρi
1 好氧异养生长 −1/YH +1 −(1−YH)/YH −iXB −iXB/14 μH·SS/(KS+SS)·SO/(KOH+SO)·XBH
2 缺氧异养生长 −1/YH +1 −(1−YH)/(2.86·YH) −iXB (1−YH)/(14·2.86·YH) − iXB/14 μH·SS/(KS+SS)·KOH/(KOH+SO)·SNO/(KNO+SNO)·ηg·XBH
3 好氧自养生长 +1 −(4.57−YA)/YA +1/YA −iXB−1/YA −iXB/14 − 1/(7·YA) μA·SNH/(KNH+SNH)·SO/(KOA+SO)·XBA
4 异养菌衰减 +(1−fP) −1 +fP +(iXB−fP·iXP) bH·XBH
5 自养菌衰减 +(1−fP) −1 +fP +(iXB−fP·iXP) bA·XBA
6 氨化 +1 −1 +1/14 ka·SND·XBH
7 XS 水解 +1 −1 kh·(XS/XBH)/(KX+XS/XBH)·[SO/(KOH+SO)+ηh·KOH/(KOH+SO)·SNO/(KNO+SNO)]·XBH
8 XND 水解 +1 −1 ρ₇ · XND/XS

速率表达式(右列)

过程速率 ρᵢ
ρ₁μH · SS/(KS+SS) · SO/(KOH+SO) · XBH
ρ₂μH · SS/(KS+SS) · KOH/(KOH+SO) · SNO/(KNO+SNO) · ηg · XBH
ρ₃μA · SNH/(KNH+SNH) · SO/(KOA+SO) · XBA
ρ₄bH · XBH
ρ₅bA · XBA
ρ₆ka · SND · XBH
ρ₇kh · (XS/XBH)/(KX+XS/XBH) · [SO/(KOH+SO) + ηh·KOH/(KOH+SO)·SNO/(KNO+SNO)] · XBH
ρ₈ρ₇ · XND/XS

6.5 ASM1 默认参数集

以下是 Henze et al. (2000) 给出的 ASM1 默认参数,分别对应 10°C 和 20°C:

化学计量参数(与温度无关)

参数符号单位说明
产率系数(异养菌)Y_H0.67gCOD/gCOD每消耗 1 gCOD 底物产生 0.67 gCOD 细胞
产率系数(自养菌)Y_A0.24gCOD/gCOD每消耗 1 gN NH₄⁺ 产生 0.24 gCOD 细胞
内源残余物比例f_P0.08gCOD/gCOD衰减中转化为惰性残余物的比例
生物量含氮量i_XB0.086gN/gCOD活性生物量的氮含量(约 12.3 % VSS 计)
内源残余物含氮量i_XP0.06gN/gCODX_P 的氮含量

动力学参数

参数符号20°C10°C单位θ
异养菌最大比增长速率μ_H6.03.0d⁻¹1.07
异养菌 S_S 半饱和常数K_S2020gCOD/m³1.0
异养菌 O₂ 半饱和常数K_OH0.200.20gO₂/m³1.0
异养菌 NO₃⁻ 半饱和常数K_NO0.500.50gN/m³1.0
异养菌衰减系数b_H0.620.20d⁻¹1.07
缺氧生长修正系数η_g0.800.80
自养菌最大比增长速率μ_A0.800.30d⁻¹1.11
自养菌 NH₄⁺ 半饱和常数K_NH1.01.0gN/m³1.0
自养菌 O₂ 半饱和常数K_OA0.400.40gO₂/m³1.0
自养菌衰减系数b_A0.200.10d⁻¹1.07
水解速率系数k_h3.01.5d⁻¹1.04
水解半饱和常数K_X0.030.03gCOD/gCOD1.0
缺氧水解修正系数η_h0.400.40
氨化速率系数k_a0.080.04m³/gCOD/d1.07

关键参数的工程直觉

6.6 控制方程的完整推导示例

S_NH(氨氮) 为例,在一个 CSTR 中:

dSNH/dt = (SNH,in − SNH)/HRT
    + (−iXB)·ρ₁   ← 过程1:好氧异养生长消耗 NH₄⁺ 用于合成
    + (−iXB)·ρ₂   ← 过程2:缺氧异养生长消耗 NH₄⁺ 用于合成
    + (−iXB − 1/YA)·ρ₃   ← 过程3:自养硝化消耗 NH₄⁺(合成+能源)
    + 0·ρ₄   ← 过程4:衰减不直接产生 NH₄⁺(产 XND
    + 0·ρ₅   ← 过程5:同上
    + (+1)·ρ₆   ← 过程6:氨化产生 NH₄⁺
    + 0·ρ₇   ← 过程7:水解不涉及 NH₄⁺
    + 0·ρ₈   ← 过程8:产 SND,不直接产 NH₄⁺

整理:

dSNH/dt = (SNH,in − SNH)/HRT
    − iXB·(ρ₁ + ρ₂)   ← 异养生长消耗 NH₄⁺
    − (iXB + 1/YA)·ρ₃   ← 自养硝化消耗 NH₄⁺
    + ρ₆   ← 氨化释放 NH₄⁺

这就是系统中氨氮动态的完整控制方程,清晰体现了 NH₄⁺ 的四条去向:对流出水、异养合成消耗、硝化消耗、有机氮氨化补充。

6.7 ASM1 的局限性

ASM1 是里程碑式的模型,但也有明确的设计边界:

局限性说明在哪个模型中解决
不包含生物除磷(EBPR)无 PAO、无 X_PAO 组分ASM2/ASM2d
两步硝化合并为一步NO₂⁻ 不单独追踪两步硝化扩展模型
"死亡-再生"的机理争议不符合真实的内源呼吸机制ASM3(内源呼吸)
不追踪磷(P)无法预测 TPASM2d
胞内储存物无法追踪忽略 PHA、Poly-PASM3、ASM2d
pH 影响隐式处理仅追踪碱度,无法模拟低 pH 抑制需扩展 pH 模块
N₂O 不建模温室气体无法预测ASMG1/ASMG2d

6.8 本章练习

⭐ 基础题

  1. ASM1 有哪 13 个组分?按溶解性/颗粒性、有机/无机分类列出。
  2. 解释"死亡-再生"概念:当 X_BH 衰减时,产生了哪些组分?各比例如何?
  3. 在过程 1(好氧异养生长)中,为什么 SNH 系数为 −iXB?

⭐⭐ 进阶题

  1. 独立推导过程 2(缺氧异养生长)中 S_NO 的化学计量系数,写出推导过程(从 COD 守恒出发)。
  2. 对于一个 SRT=10d、HRT=6h、20°C 的 CSTR,已知 ρ₁=50 gCOD/m³/d、ρ₃=2 gN/m³/d、ρ₆=0.5 gN/m³/d,进水 SNH=35 gN/m³,写出 SNH 的稳态方程并计算稳态 S_NH(假设 ρ₂=0)。
  3. 验证过程 4(异养菌衰减)的 COD 守恒(参数:f_P=0.08)。

⭐⭐⭐ 挑战题

  1. 在 ASM1 中,系统的氧消耗速率(OUR,Oxygen Uptake Rate)由哪几个过程贡献?写出 OUR 的完整表达式。
  2. 推导 ASM1 中系统的净污泥产量(Net Sludge Production, NSP)公式:从各过程对 XBH、XBA、XP、XI 的贡献出发,整合稳态排泥量。

推荐阅读


目录 | 上一章:第 5 章:Peterson 速率矩阵——数学结构与物理意义 | 下一章:第 7 章:ASM2d——生物除磷模型

本教程由微风轻语规划设计,Claude Code 制作
污水生物模型与 Peterson 速率矩阵:完整教程 2026-03-17

第 7 章:ASM2d——生物除磷模型

学习目标

  1. 理解强化生物除磷(EBPR)的代谢生理学机制
  2. 掌握 PAO 的厌氧-好氧/缺氧代谢循环
  3. 了解 ASM2d 相对于 ASM1 新增的组分与过程
  4. 理解反硝化 PAO(DPAO)的意义
  5. 掌握 PAO 与 GAO 之间的竞争关系
  6. 能够描述 ASM2d 与 ASM1 的主要差异

前置要求:第 5-6 章(Peterson 矩阵、ASM1 完整解读)

7.1 为什么 ASM1 无法描述生物除磷?

ASM1 发布后(1987 年),污水处理行业逐渐广泛应用强化生物除磷(Enhanced Biological Phosphorus Removal, EBPR)工艺(如 A²/O、UCT、SBR)。然而,ASM1 完全没有磷的组分——它无法预测磷的去除效果,更无法优化除磷工艺的运行。

EBPR 的核心微生物是聚磷菌(Phosphorus-Accumulating Organisms, PAO),其代谢行为高度独特:

这种"先释磷后超量摄磷"的循环使得整体系统能够从污水中去除磷——但这套机理 ASM1 完全无法捕捉。

ASM2(1995)和 ASM2d(1999)正是为解决这一问题而开发的。其中 ASM2d 是 ASM2 的改进版,增加了反硝化 PAO 的能力,是目前工程应用中更常用的版本。

7.2 PAO 的代谢生理学

理解 ASM2d 的关键是理解 PAO 的代谢循环,这是模型所有新增组分和过程的物理基础。

7.2.1 厌氧阶段(PAO 释磷 + VFA 吸收)

厌氧段(无 O₂,无 NO₃⁻) VFA (S_A) 被 PAO 吸收 X_PHA(储存) X_PP(聚磷) 水解 S_PO4(释磷) 能量供给(X_PP 水解 → ATP) 净效果:VFA 吸收 → PHA 积累,同时释放 PO₄³⁻ 至水中

关键点

  1. VFA(S_A)必须以乙酸为主——复杂有机物需要先发酵产生 VFA
  2. 能量来自 Poly-P(X_PP)的水解(ATP 生成),同时释放 PO₄³⁻ 到溶液中→进水磷浓度升高是正常现象
  3. PHA(X_PHA)作为碳和能量的储备,是后续好氧/缺氧摄磷的"燃料"

7.2.2 好氧/缺氧阶段(PAO 摄磷 + PHA 氧化)

好氧/缺氧段(有 O₂ 或 NO₃⁻) X_PHA(消耗) 氧化获能 CO₂ + H₂O + 能量(ATP) S_PO4(摄取) 超量合成 X_PP(聚磷) X_PAO 细胞增殖 净效果:PHA 氧化获能 → 超量摄磷 + X_PAO 增殖

关键点

7.2.3 PAO 代谢的整体循环图

厌氧段
好氧/缺氧段
  • VFA (S_A) 被 PAO 吸收
  • 利用 X_PP 水解产生的 ATP 驱动合成
  • PHA (X_PHA) 在胞内积累
  • X_PP → S_PO4(释磷,磷入水)
  • X_PHA 氧化获取能量(ATP)
  • S_PO4 → X_PP(超量摄磷,磷从水移出)
  • X_PAO 细胞增殖(生物量增加)
  • 净效果:VFA 消耗 + 磷转入 X_PAO/X_PP,随排泥去除

7.3 胞内储存物:PHA、Poly-P 与糖原

ASM2d 显式追踪三类 PAO 的胞内储存物,这是与 ASM1 最大的概念差异之一:

储存物符号功能在哪个阶段积累在哪个阶段消耗
聚羟基烷酸酯X_PHA碳和能量储备厌氧段(吸收 VFA)好氧/缺氧段(氧化供能)
多聚磷酸盐X_PP磷储备 + 能量来源好氧/缺氧段厌氧段(水解为能量 + 释放 PO₄³⁻)
糖原X_GAO(ASM2d 中部分隐含)碳储备好氧/缺氧段厌氧段(合成 PHA 的能量来源之一)

注意:在 ASM2d 标准版本中,糖原(Glycogen)被合并到 X_PAO 的整体代谢中处理,而不是作为单独组分追踪。在更复杂的扩展版(如含 GAO 的模型)中,糖原才被显式建模。

7.4 ASM2d 的组分体系

7.4.1 总组分数:19 个

ASM2d 在 ASM1 的基础上增加了磷组分和 PAO 相关组分:

新增溶解性组分(相对于 ASM1):

符号全称说明
SAFermentation products(VFA)挥发性脂肪酸(主要是乙酸),PAO 的直接碳源
SFFermentable biodegradable substrates可发酵底物(相当于 ASM1 中 SS 的一部分)
SPO4Inorganic soluble phosphorus溶解性磷酸盐(PO₄³⁻),可吸收或释放
SALKAlkalinity(同 ASM1,此处单位为 mol/m³)

新增颗粒性组分

符号全称说明
XPAOPhosphorus-accumulating organisms聚磷菌活性生物量
XPPStored polyphosphate(of PAO)XPAO 胞内多聚磷酸盐
XPHAStored polyhydroxyalkanoates(of PAO)XPAO 胞内 PHA

修改说明

7.4.2 ASM2d 与 ASM1 组分对比

ASM1ASM2d变化说明
S_SSF + SAS_S 拆分为可发酵底物和 VFA
S_PO4新增磷组分
XPAO, XPP, X_PHA新增 PAO 相关组分
S_A(VFA)PAO 的直接底物

7.5 ASM2d 的 21 个过程

相比 ASM1 的 8 个过程,ASM2d 共有 21 个过程,新增的主要是 PAO 相关过程。

7.5.1 过程分组

异养菌过程(与 ASM1 类似,但底物从 SS 改为 SF 和 S_A):

PAO 过程(全新):

编号过程条件描述
11PAO 的 X_PHA 储存(厌氧)厌氧,有 S_ASA + XPP→ XPHA,释放 SPO4
12PAO 好氧生长(以 X_PHA 为碳源)好氧XPHA → XPAO + S_PO4 摄取
13PAO 缺氧生长(DPAO)缺氧同上,以 NO₃⁻ 为电子受体
14PAO 好氧 X_PP 储存(摄磷)好氧消耗 XPHA 吸收 SPO4 合成 X_PP
15PAO 缺氧 X_PP 储存(DPAO 摄磷)缺氧同上,以 NO₃⁻ 为电子受体
16PAO 衰减死亡-再生概念,与 ASM1 相同
17X_PP 水解(厌氧自发)XPP → SPO4(维持碱度/pH)
18X_PHA 水解(降解)XPHA → SA(内源代谢)

自养硝化(与 ASM1 相同):

磷沉淀(ASM2d 特有):

7.5.2 核心 PAO 过程速率表达式

过程 11(厌氧 X_PHA 储存)——最关键的 PAO 过程

ρ₁₁ = qPHA · SA/(KA + SA)
            · SALK/(KALK + SALK)
            · (XPP/XPAO)/(KPP + XPP/XPAO)  ← X_PP 驱动力(Poly-P 水解提供能量)
            · KO/(KO + SO)  ← O₂ 抑制(严格厌氧)
            · KNO/(KNO + SNO)  ← NO₃⁻ 抑制
            · XPAO

过程 12(好氧 PAO 生长)

ρ₁₂ = μPAO · (XPHA/XPAO)/(KPHA + XPHA/XPAO)  ← PHA 驱动(胞内碳源)
             · SO/(KO + SO)  ← 好氧激活
             · SPO4/(KP + SPO4)  ← 磷可用
             · SNH/(KNH + SNH)  ← 氮可用
             · SALK/(KALK + SALK)
             · XPAO

7.6 ASM2d 的新概念:反硝化 PAO(DPAO)

ASM2(1995)的局限:原 ASM2 假设 PAO 只能在好氧条件下摄磷,而缺氧条件下无法利用 NO₃⁻ 作为电子受体。

实践观察:工程中发现约 50% 的 PAO 可以在缺氧条件下利用 NO₃⁻(甚至 NO₂⁻)进行摄磷,这被称为反硝化 PAO(Denitrifying PAO, DPAO)

ASM2d(1999)的改进:在 ASM2 基础上为 PAO 增加了缺氧代谢途径(过程 13、15),用修正系数 η_NO₃,PAO(< 1)描述 PAO 的缺氧代谢效率。

工程意义

7.7 PAO vs GAO:影响除磷效率的竞争

聚糖菌(Glycogen-Accumulating Organisms, GAO) 是与 PAO 竞争的微生物:

特征PAOGAO
厌氧段吸收 VFA(竞争!)
厌氧段能量来源Poly-P 水解糖原(Glycogen)水解
好氧/缺氧段摄磷(超量)(不积累 Poly-P)
好氧段糖原再合成
对除磷的贡献正面负面(消耗 VFA 却不除磷)

GAO 增殖的不利工况

标准 ASM2d 的局限:不包含 GAO 子模型,无法预测 GAO 增殖导致的除磷效率下降。含 GAO 的扩展模型(如 Zeng 等,2003;Filipe 等,2001)已有发表,但尚未被纳入 IWA 标准模型。

7.8 ASM2d Peterson 矩阵概览

以下是 ASM2d 核心 PAO 相关过程的矩阵片段(仅展示 PAO 特有组分,以便理解):

过程 S_A S_PO4 X_PAO X_PP X_PHA S_O S_NO 速率表达式
过程11(厌氧摄 PHA) −1/YH +… 0 −1 +1 0 0 qPHA·(S_A/K_A)·(X_PP/X_PAO)/KPP·(KO/(KO+SO))·(KNO/(KNO+SNO))·X_PAO
过程12(好氧 PAO 生长) 0 −… +1 0 −1 −(1−YH)/YH 0 μPAO·(X_PHA/X_PAO)/KPHA·SO/(KO+SO)·SPO4/(KP+SPO4)·X_PAO
过程13(缺氧 DPAO 生长) 0 −… +1 0 −1 0 −… μPAO·ηNO·(X_PHA/X_PAO)/KPHA·KO/(KO+SO)·SNO/(KNO+SNO)·X_PAO
过程14(好氧摄磷 / X_PP 储存) 0 −1 0 +YPP −1 −(1−YPP)/YPP 0 qPP·SPO4/(KP+SPO4)·(X_PHA/X_PAO)/KPHA·SO/(KO+SO)·X_PAO

注意 COD 守恒:

7.9 ASM2d 与 ASM1 的关键差异总结

维度ASM1ASM2d
组分数1319
过程数821
磷追踪SPO4、XPP
PAO 建模XPAO、XPP、X_PHA
有机底物分馏S_S(一个)SF + SA(两个)
DPAO(缺氧除磷)有(过程 13、15)
化学除磷有(过程 21)
适用工艺碳氮去除(A/O、MLE 等)碳氮磷去除(A²/O、UCT、SBR 等)

7.10 何时选择 ASM2d 而非 ASM1?

选择 ASM2d 的情形

坚持 ASM1 的情形

7.11 本章练习

⭐ 基础题

  1. 描述 PAO 在厌氧段和好氧段各自发生什么?各消耗/生成什么物质?
  2. 为什么厌氧段进水磷浓度反而会升高?这是正常现象吗?
  3. ASM2d 中 SF 和 SA 的区别是什么?为什么要将 ASM1 的 S_S 拆分?

⭐⭐ 进阶题

  1. 在 A²/O 工艺中,碳源(VFA)的分配是 EBPR 效率的关键。如果进水 VFA 不足,PAO 和 GAO 哪个会被优先选择?为什么?
  2. 解释为什么 ASM2d 的缺氧摄磷过程(过程 13)中,SPO4 系数为负(摄磷),而厌氧释磷过程(过程 11)中 SPO4 系数为正?
  3. 在 ASM2d 中,如果不区分 PAO 的好氧摄磷和 DPAO 的缺氧摄磷,使用 ASM2(非 ASM2d)建模会导致什么预测误差?

⭐⭐⭐ 挑战题

  1. 为一个 UCT 工艺(厌氧-缺氧-好氧,带特殊回流)绘制碳、氮、磷三种元素在各段的流向图,并标注涉及的 ASM2d 主要过程编号。
  2. 如果某污水厂的进水 C/P 比异常高(C:P > 100),根据 ASM2d 模型推断:EBPR 效率如何?需要采取什么措施?从建模角度如何预测改善效果?

推荐阅读


目录 | 上一章:第 6 章:ASM1 模型完全解读 | 下一章:第 8 章:ASM3——概念范式修正

本教程由微风轻语规划设计,Claude Code 制作
污水生物模型与 Peterson 速率矩阵:完整教程 2026-03-17

第 8 章:ASM3——概念范式修正

学习目标

  1. 理解 ASM1"死亡-再生"概念的局限与争议
  2. 掌握 ASM3 引入"内源呼吸"(Endogenous Respiration)的动机
  3. 理解胞内储存物 X_STO 在 ASM3 中的核心作用
  4. 能够比较 ASM1 和 ASM3 对 OUR 与污泥产量的不同预测机制
  5. 掌握在实际工程中选择 ASM1 vs ASM3 的判断依据

前置要求:第 6 章(ASM1 完整解读)

8.1 ASM1 的"死亡-再生":一个必要的但有争议的简化

8.1.1 ASM1 的衰减概念

在 ASM1(以及 ASM2d)中,微生物的衰减采用"死亡-再生"(Death-Regeneration)概念:

X_BH f_P × X_P (惰性内源残余物) (1−f_P) × X_S (慢速可降解底物,供再生利用) 衰减

这意味着:

8.1.2 "死亡-再生"的问题

问题 1:与真实内源呼吸不符

真实情况是,微生物维持自身(Maintenance Energy)通过直接氧化胞内物质实现,而不是先"死亡"再被"再生"。实验观测到的内源呼吸(Endogenous OUR)是持续发生的,即使在没有外部底物时。

问题 2:OUR 预测偏差

在批式实验(Batch Test)中,将底物(S_S)加入含有活性污泥的反应器后,监测 OUR 变化:

实测 OUR(典型行为)vs ASM1 预测 OUR 时间 (h) 底物耗尽 实测 OUR(有内源基线) 内源基线 ASM1(死亡-再生 X_S 尾) 实测 OUR ASM1 预测

ASM1 有时会高估或低估 OUR 的时序分布,特别是在动态条件下。

问题 3:污泥产量预测的偏差

在高 SRT 系统(> 15 d)或低负荷系统中,ASM1 使用死亡-再生概念会导致对污泥产量的预测系统偏差,特别是当进水中含有大量慢速降解底物时。

8.2 ASM3 的根本性改进:胞内储存物与内源呼吸

ASM3(1999)由 Gujer、Henze、Mino 和 van Loosdrecht 提出,相比 ASM1 进行了两个根本性概念修正:

8.2.1 引入胞内储存物(Intracellular Storage,X_STO)

ASM3 的核心新组分是 X_STO(胞内储存有机物),代表微生物在底物充足时临时储存的有机物(如 PHA、糖原等的通称)。

底物充足时(Feast 阶段)
底物匮乏时(Famine 阶段 / 内源)
  • S_S → X_STO(快速吸收储存,耗氧少)
  • X_STO → X_BH(慢速利用,消耗 O₂,真正生长)
  • X_STO → CO₂ + H₂O + 能量(内源呼吸,消耗 O₂)
  • X_BH → X_P + CO₂(内源衰减,直接氧化)

关键洞见:在 ASM3 中,底物的快速吸收(SS → XSTO)与细胞生长(XSTO → XBH)被分为两个独立过程,而在 ASM1 中它们被合并为一步(SS → XBH)。这种分离更符合微生物在"盛宴-饥荒"(Feast-Famine)环境中的真实行为。

8.2.2 "内源呼吸"替代"死亡-再生"

ASM3 用内源呼吸(Endogenous Respiration)概念替代 ASM1 的死亡-再生:

特征ASM1(死亡-再生)ASM3(内源呼吸)
衰减产物XP + XS(其中 X_S 再被利用)X_P + CO₂(直接氧化,不再生)
衰减时 O₂ 消耗无(O₂ 在后续 X_S 利用时消耗)(直接消耗 O₂)
X_STO 内源呼吸无(ASM1 无 X_STO 概念)(X_STO 的好氧/缺氧氧化)
机理合理性争议较大更符合实验观测

8.3 ASM3 的结构

8.3.1 组分(13 个,与 ASM1 相同数量)

ASM3 保留了与 ASM1 相近的 13 个组分,但引入了 XSTO 并去掉了 XND 和 S_ND(氮水解过程简化):

符号说明相比 ASM1
S_O溶解氧相同
S_I溶解性惰性有机物相同
S_S易降解底物相同
S_NH氨态氮相同
S_N₂氮气(反硝化产物)新增(ASM1 未追踪 N₂)
S_NOX硝酸盐 + 亚硝酸盐类似 ASM1 的 S_NO
S_ALK碱度相同
X_I颗粒性惰性有机物相同
X_S慢速降解底物相同
X_H活性异养菌类似 ASM1 的 X_BH
X_STO胞内储存有机物ASM3 新增,核心组分
X_A活性自养菌类似 ASM1 的 X_BA
X_SS悬浮固体(总 VSS)新增(用于直接预测 MLSS)

8.3.2 过程(12 个)

ASM3 的 12 个过程:

编号过程描述
1水解(好氧)XS → SS
2水解(缺氧)XS → SS(缺氧,η 修正)
3异养菌好氧储存(X_STO 积累)SS + XH → X_STO(好氧,快速)
4异养菌缺氧储存(X_STO 积累)SS + XH → X_STO(缺氧,η 修正)
5异养菌好氧生长(利用 X_STO)XSTO → XH(好氧)
6异养菌缺氧生长(利用 X_STO)XSTO → XH(缺氧,反硝化)
7X_STO 的好氧内源呼吸X_STO → CO₂(好氧分解)
8X_STO 的缺氧内源呼吸X_STO → CO₂(缺氧分解)
9X_H 的好氧内源衰减XH → XP + CO₂(好氧)
10X_H 的缺氧内源衰减XH → XP + CO₂(缺氧)
11自养菌好氧生长(硝化)NH₄⁺ → NO₃⁻ + X_A
12自养菌好氧内源衰减XA → XP(好氧)

核心差异对比(ASM1 vs ASM3)

ASM1(死亡-再生) X_BH b_H f_P × X_P (1-f_P)×X_S → 再生利用(无 O₂ 消耗) ASM3 — X_H 内源衰减 X_H b_H f_P × X_P (1-f_P) × CO₂+H₂O 消耗 O₂! ASM3 — X_STO 内源呼吸 X_STO b_STO CO₂ + H₂O(直接氧化) 消耗 O₂!

8.4 ASM3 对 OUR 和污泥产量预测的改善

8.4.1 批式实验 OUR 的预测改善

在标准批式 OUR 测试中,ASM3 能更准确地再现 OUR 的时序分布:

ASM3 的预测机制

  1. 底物存在阶段(Feast)
  1. 底物耗尽阶段(Famine)

这与实验观测吻合更好,特别是对于 SBR(序批式反应器)系统。

8.4.2 污泥产量预测的改善

ASM3 通过分离储存和生长过程,能更准确地预测以下场景下的污泥产量:

场景ASM1 的问题ASM3 的改善
高 SRT(>15d)死亡-再生循环高估了污泥产量内源呼吸直接减少生物量,预测更准确
SBR 系统盛宴-饥荒切换的 OUR 预测偏差X_STO 两步储存-生长更符合 SBR 实际
高 X_S 比例进水水解率影响死亡-再生循环影响相对较小

8.5 ASM1 vs ASM3 vs ASM2d:综合对比

维度ASM1ASM3ASM2d
发布年份198719991999
组分数131319
过程数81221
衰减概念死亡-再生内源呼吸死亡-再生
胞内储存X_STO(通用)XPHA、XPP(PAO 专用)
磷建模有(完整 EBPR)
反硝化除磷有(DPAO)
OUR 预测较好(稳态)更好(动态)较好(稳态)
参数数量1422~35
校准难度
适用工艺C/N 去除,稳态设计SBR、动态分析C/N/P 去除
工程应用广泛度最广中等广(EBPR 工厂)

8.6 ASM1 vs ASM3 的选择指南

在以下情况优先选择 ASM3

  1. SBR 系统:盛宴-饥荒循环是 SBR 的特征,X_STO 的动态行为不可忽视
  2. 动态模拟精度要求高:如在线控制(MPC)、动态设计验证
  3. 低 F/M 比系统(高 SRT):内源呼吸占主导,死亡-再生的误差更显著
  4. 好氧颗粒污泥(AGS):储存行为是 AGS 的核心代谢特征
  5. 精确 OUR 测定与模拟:如基于 OUR 的在线软测量

在以下情况优先选择 ASM1

  1. 首次建模、资源有限:ASM1 更简单,校准参数更少
  2. 稳态设计计算:对于稳态工况,ASM1 的预测精度通常足够
  3. 数据有限:ASM3 需要更多实验数据(特别是 X_STO 相关参数)
  4. 与历史数据对比:历史模型基于 ASM1,保持一致性
  5. 教学目的:ASM1 更适合理解生物模型的基础概念

实践建议(BIOMATH/GMP 协议推荐)

8.7 ASM3 的实践挑战

8.7.1 参数增多问题

ASM3 引入了 X_STO 相关的新参数:

参数符号含义典型值
最大储存速率q_STOX_STO 的最大积累速率5-10 d⁻¹
X_STO 利用的产率Y_STO每 gCOD X_STO 消耗产生的细胞0.63 gCOD/gCOD
X_STO 内源衰减系数b_STOX_STO 的内源氧化速率0.15-0.25 d⁻¹
X_H 内源衰减系数b_H细胞直接内源衰减0.2-0.4 d⁻¹

这些参数需要通过批式呼吸测定(Respirometry)实验单独标定,增加了校准工作量。

8.7.2 软件支持

目前主流模拟软件(BioWin、GPS-X、SUMO、WEST)均支持 ASM3,但用户需要注意各软件对 ASM3 的具体实现可能略有差异(如 X_SS 的定义方式、默认参数集来源等)。

8.8 ASM 系列模型演进总览

ASM 系列演进时间轴
核心新增能力
  • 1987 — ASM1:统一框架,C/N 去除标准模型
  • 1995 — ASM2:加入 EBPR(生物除磷)
  • 1999 — ASM2d:加入 DPAO(反硝化除磷)← 当前最广泛
  • 1999 — ASM3:内源呼吸 + 胞内储存物(概念修正)
  • 200x — ASM3+EBPR:ASM3 与 EBPR 结合扩展版
  • 2010+ — ASMG1/G2d/ADM1:两步硝化、厌氧消化等前沿模型
  • ASM1 → 异养/自养基础动力学,死亡-再生概念
  • ASM2 → X_PAO、X_PP、X_PHA、S_PO4 组分
  • ASM2d → DPAO 缺氧摄磷(过程 13、15)
  • ASM3 → X_STO 胞内储存,内源呼吸替代死亡-再生
  • 前沿模型 → 亚硝化、厌氧氨氧化(Anammox)、全厂模型

8.9 本章练习

⭐ 基础题

  1. 解释 ASM1"死亡-再生"与 ASM3"内源呼吸"的主要区别。在这两种概念下,微生物衰减时 O₂ 的消耗分别发生在什么时候?
  2. ASM3 中的 X_STO 代表什么?它在哪种环境条件下积累,在哪种条件下消耗?
  3. 为什么 ASM3 对 SBR 系统的 OUR 预测比 ASM1 更准确?

⭐⭐ 进阶题

  1. 对比 ASM1 的过程 4(异养菌衰减)和 ASM3 的过程 9(X_H 好氧内源衰减):
  1. 在一个 SRT = 20d 的系统中,ASM1 预测的净污泥产量(Y_obs)= 0.2 gVSS/gCOD。如果改用 ASM3,预测值是偏高还是偏低?解释原因。

⭐⭐⭐ 挑战题

  1. 设计一个批式实验方案,用于区分 ASM1(死亡-再生)和 ASM3(内源呼吸)对 OUR 的不同预测:
  1. 某工程师要用 ASM3 模拟一个 A/O 系统(好氧-厌氧),进水 SS = 200 mgCOD/L。在好氧段开始的前 30 分钟(SBR 盛宴阶段),XSTO 的积累速率如何与 X_H 的生长速率相比较?哪个过程主导?(定性分析)

推荐阅读


目录 | 上一章:第 7 章:ASM2d——生物除磷模型 | 下一章:第 9 章:模型实现——Python 编程实战

本教程由微风轻语规划设计,Claude Code 制作
污水生物模型与 Peterson 速率矩阵:完整教程 2026-03-17

第 9 章:模型实现——Python 编程实战

学习目标

  1. 用 Python + SciPy 实现 ASM1 的完整 ODE 系统
  2. 将 Peterson 矩阵以代码形式规范表达
  3. 实现单反应器 CSTR 的动态模拟并可视化结果
  4. 了解主流开源工具(WaterTAP、QSDsan)的使用方式
  5. 掌握参数灵敏度实验的编程方法

前置要求:第 5-6 章(Peterson 矩阵、ASM1);Python 基础(numpy、scipy、matplotlib)

9.1 编程环境准备

9.1.1 所需依赖

BASH
pip install numpy scipy matplotlib

ASM1 实现无需任何专业水处理库——标准科学计算栈即可。

9.1.2 文件结构建议

asm1_simulation/
├── asm1_params.py      # 参数定义
├── asm1_model.py       # 化学计量矩阵 + 速率函数
├── asm1_reactor.py     # CSTR 控制方程
└── run_simulation.py   # 运行脚本 + 可视化

9.2 核心设计思路:Peterson 矩阵的代码化

Peterson 矩阵的数学结构天然适合矩阵运算:

dC/dt  =  流量项  +  νT · ρ

用 numpy 的矩阵乘法可以直接表达这个公式,而不需要手写 13 个独立方程。这正是 Peterson 矩阵在编程上的优雅之处。

9.3 ASM1 参数定义

PYTHON
# asm1_params.py

def default_params_20C():
    """ASM1 默认参数(20°C,来自 Henze et al. 2000)"""
    return {
        # ── 化学计量参数(与温度无关)──
        'Y_H':   0.67,   # 异养菌产率系数           gCOD/gCOD
        'Y_A':   0.24,   # 自养菌产率系数           gCOD/gCOD
        'f_P':   0.08,   # 衰减产物中惰性比例       gCOD/gCOD
        'i_XB':  0.086,  # 生物量含氮量             gN/gCOD
        'i_XP':  0.06,   # 内源残余物含氮量         gN/gCOD

        # ── 异养菌动力学参数 ──
        'mu_H':  6.0,    # 最大比增长速率           d⁻¹
        'K_S':   20.0,   # S_S 半饱和常数           gCOD/m³
        'K_OH':  0.20,   # O₂ 半饱和常数(异养)    gO₂/m³
        'K_NO':  0.50,   # NO₃⁻ 半饱和常数          gN/m³
        'b_H':   0.62,   # 衰减系数                 d⁻¹
        'eta_g': 0.80,   # 缺氧生长修正系数         —

        # ── 自养菌动力学参数 ──
        'mu_A':  0.80,   # 最大比增长速率           d⁻¹
        'K_NH':  1.00,   # NH₄⁺ 半饱和常数          gN/m³
        'K_OA':  0.40,   # O₂ 半饱和常数(自养)    gO₂/m³
        'b_A':   0.20,   # 衰减系数                 d⁻¹

        # ── 水解参数 ──
        'k_h':   3.00,   # 最大水解速率             gCOD/gCOD/d
        'K_X':   0.03,   # 水解半饱和常数           gCOD/gCOD
        'eta_h': 0.40,   # 缺氧水解修正系数         —

        # ── 氨化参数 ──
        'k_a':   0.08,   # 氨化速率系数             m³/gCOD/d
    }


def scale_to_temperature(params, T, base_T=20):
    """
    使用 Arrhenius 方程将参数缩放至目标温度
    theta 值来自 Henze et al. (2000)
    """
    theta = {
        'mu_H': 1.072, 'b_H': 1.072,
        'mu_A': 1.103, 'b_A': 1.072,
        'k_h':  1.041, 'k_a': 1.072,
    }
    scaled = params.copy()
    for key, th in theta.items():
        if key in scaled:
            scaled[key] = scaled[key] * th ** (T - base_T)
    return scaled

9.4 化学计量矩阵与速率函数

PYTHON
# asm1_model.py
import numpy as np

# 组分索引(便于可读性)
S_I  = 0   # 溶解性惰性有机物
S_S  = 1   # 易降解底物
X_I  = 2   # 颗粒性惰性有机物
X_S  = 3   # 慢速降解底物
X_BH = 4   # 活性异养菌
X_BA = 5   # 活性自养菌
X_P  = 6   # 衰减产物(惰性)
S_O  = 7   # 溶解氧
S_NO = 8   # 硝态氮
S_NH = 9   # 氨态氮
S_ND = 10  # 溶解性有机氮
X_ND = 11  # 颗粒性有机氮
S_ALK = 12 # 碱度

N_COMP = 13  # 组分总数
N_PROC = 8   # 过程总数


def build_stoichiometry(p):
    """
    构建 ASM1 化学计量矩阵 ν (8×13)
    行 = 过程,列 = 组分
    正值 = 生成,负值 = 消耗
    """
    Y_H, Y_A = p['Y_H'], p['Y_A']
    f_P = p['f_P']
    i_XB, i_XP = p['i_XB'], p['i_XP']

    nu = np.zeros((N_PROC, N_COMP))

    # ── 过程 1:异养菌好氧生长 ──────────────────────────────
    nu[0, S_S]  = -1 / Y_H
    nu[0, X_BH] = +1
    nu[0, S_O]  = -(1 - Y_H) / Y_H
    nu[0, S_NH] = -i_XB
    nu[0, S_ALK]= -i_XB / 14

    # ── 过程 2:异养菌缺氧生长(反硝化)────────────────────
    nu[1, S_S]  = -1 / Y_H
    nu[1, X_BH] = +1
    nu[1, S_NO] = -(1 - Y_H) / (2.86 * Y_H)
    nu[1, S_NH] = -i_XB
    nu[1, S_ALK]= (1 - Y_H) / (14 * 2.86 * Y_H) - i_XB / 14

    # ── 过程 3:自养菌好氧生长(硝化)──────────────────────
    nu[2, X_BA] = +1
    nu[2, S_O]  = -(4.57 - Y_A) / Y_A
    nu[2, S_NO] = +1 / Y_A
    nu[2, S_NH] = -i_XB - 1 / Y_A
    nu[2, S_ALK]= -i_XB / 14 - 1 / (7 * Y_A)

    # ── 过程 4:异养菌衰减 ───────────────────────────────
    nu[3, X_S]  = +(1 - f_P)
    nu[3, X_BH] = -1
    nu[3, X_P]  = +f_P
    nu[3, X_ND] = +(i_XB - f_P * i_XP)

    # ── 过程 5:自养菌衰减 ───────────────────────────────
    nu[4, X_S]  = +(1 - f_P)
    nu[4, X_BA] = -1
    nu[4, X_P]  = +f_P
    nu[4, X_ND] = +(i_XB - f_P * i_XP)

    # ── 过程 6:有机氮氨化 ───────────────────────────────
    nu[5, S_NH] = +1
    nu[5, S_ND] = -1
    nu[5, S_ALK]= +1 / 14

    # ── 过程 7:有机物水解 ───────────────────────────────
    nu[6, S_S]  = +1
    nu[6, X_S]  = -1

    # ── 过程 8:有机氮水解 ───────────────────────────────
    nu[7, S_ND] = +1
    nu[7, X_ND] = -1

    return nu


def calc_rates(C, p):
    """
    计算 ASM1 的 8 个过程速率 ρ(单位:g/m³/d)
    C: 浓度向量(13 个组分)
    p: 参数字典
    """
    rho = np.zeros(N_PROC)

    # 从向量中取出各组分(防止负值造成数值问题)
    s_s  = max(C[S_S],  0.0)
    x_s  = max(C[X_S],  1e-10)   # 防止除以零
    x_bh = max(C[X_BH], 1e-10)
    x_ba = max(C[X_BA], 1e-10)
    s_o  = max(C[S_O],  0.0)
    s_no = max(C[S_NO], 0.0)
    s_nh = max(C[S_NH], 0.0)
    s_nd = max(C[S_ND], 0.0)
    x_nd = max(C[X_ND], 0.0)

    mu_H  = p['mu_H'];  K_S  = p['K_S']
    K_OH  = p['K_OH'];  K_NO = p['K_NO']
    b_H   = p['b_H'];   eta_g= p['eta_g']
    mu_A  = p['mu_A'];  K_NH = p['K_NH']
    K_OA  = p['K_OA'];  b_A  = p['b_A']
    k_h   = p['k_h'];   K_X  = p['K_X']
    eta_h = p['eta_h']; k_a  = p['k_a']

    # 过程 1:异养菌好氧生长
    rho[0] = mu_H * (s_s / (K_S + s_s)) \
                  * (s_o / (K_OH + s_o)) \
                  * x_bh

    # 过程 2:异养菌缺氧生长
    rho[1] = mu_H * (s_s / (K_S + s_s)) \
                  * (K_OH / (K_OH + s_o)) \
                  * (s_no / (K_NO + s_no)) \
                  * p['eta_g'] * x_bh

    # 过程 3:自养菌好氧生长
    rho[2] = mu_A * (s_nh / (K_NH + s_nh)) \
                  * (s_o / (K_OA + s_o)) \
                  * x_ba

    # 过程 4:异养菌衰减
    rho[3] = b_H * x_bh

    # 过程 5:自养菌衰减
    rho[4] = b_A * x_ba

    # 过程 6:有机氮氨化
    rho[5] = k_a * s_nd * x_bh

    # 过程 7:有机物水解(好氧 + 缺氧)
    f_xs = (x_s / x_bh) / (K_X + x_s / x_bh)
    aerobic_switch = s_o / (K_OH + s_o)
    anoxic_switch  = eta_h * (K_OH / (K_OH + s_o)) * (s_no / (K_NO + s_no))
    rho[6] = k_h * f_xs * (aerobic_switch + anoxic_switch) * x_bh

    # 过程 8:有机氮水解(与过程 7 等比例)
    rho[7] = rho[6] * (x_nd / x_s) if x_s > 1e-10 else 0.0

    return rho

9.5 CSTR 控制方程

PYTHON
# asm1_reactor.py
import numpy as np
from asm1_model import build_stoichiometry, calc_rates, N_COMP

# 颗粒性组分索引(受 SRT 控制)
PARTICULATE = [2, 3, 4, 5, 6, 11]  # X_I, X_S, X_BH, X_BA, X_P, X_ND


def cstr_ode(t, C, C_in, HRT, SRT, KLa, SO_sat, params, nu):
    """
    ASM1 单 CSTR 的 ODE 右端函数。

    参数:
        t     : 时间(d),scipy 需要但未直接使用
        C     : 当前浓度向量(13 个组分)
        C_in  : 进水浓度向量(13 个组分)
        HRT   : 水力停留时间(d)
        SRT   : 污泥龄(d)
        KLa   : 曝气传质系数(d⁻¹)
        SO_sat: 溶氧饱和浓度(g/m³,默认 8.0)
        params: 参数字典
        nu    : 化学计量矩阵(8×13)

    返回:
        dC/dt 向量(13 个组分)
    """
    C = np.maximum(C, 0.0)   # 防止负浓度

    # 计算过程速率
    rho = calc_rates(C, params)

    # 生物反应项:ν^T · ρ(13 维向量)
    reaction = nu.T @ rho

    # 对流项:(C_in - C) / HRT
    convection = (C_in - C) / HRT

    # 颗粒性组分的 SRT 排泥项:- C / SRT(仅对颗粒性组分)
    sludge_loss = np.zeros(N_COMP)
    for i in PARTICULATE:
        sludge_loss[i] = -C[i] / SRT

    # 曝气项(仅对 S_O)
    aeration = np.zeros(N_COMP)
    aeration[7] = KLa * (SO_sat - C[7])   # S_O 索引 = 7

    dCdt = convection + reaction + sludge_loss + aeration
    return dCdt

9.6 完整动态模拟示例

PYTHON
# run_simulation.py
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import solve_ivp

from asm1_params import default_params_20C
from asm1_model import build_stoichiometry, S_S, X_BH, X_BA, S_O, S_NO, S_NH, N_COMP
from asm1_reactor import cstr_ode

# ─── 1. 参数设置 ───────────────────────────────────────────
params = default_params_20C()
nu = build_stoichiometry(params)

# ─── 2. 反应器设计参数 ──────────────────────────────────────
HRT  = 0.5    # 水力停留时间(d = 12 h)
SRT  = 10.0   # 污泥龄(d)
KLa  = 200.0  # 曝气传质系数(d⁻¹),对应较强曝气
SO_sat = 8.0  # 溶氧饱和浓度(g/m³,20°C)

# ─── 3. 进水水质设置 ─────────────────────────────────────────
# [S_I, S_S, X_I, X_S, X_BH, X_BA, X_P, S_O, S_NO, S_NH, S_ND, X_ND, S_ALK]
C_in = np.zeros(N_COMP)
C_in[0]  = 30.0   # S_I   gCOD/m³(惰性溶解 COD)
C_in[1]  = 70.0   # S_S   gCOD/m³(易降解底物)
C_in[2]  = 55.0   # X_I   gCOD/m³(惰性颗粒 COD)
C_in[3]  = 200.0  # X_S   gCOD/m³(慢速降解底物)
C_in[7]  = 0.0    # S_O   进水无溶氧
C_in[8]  = 0.0    # S_NO  进水硝态氮为零
C_in[9]  = 35.0   # S_NH  gN/m³(进水氨氮)
C_in[10] = 3.0    # S_ND  gN/m³(溶解性有机氮)
C_in[11] = 10.0   # X_ND  gN/m³(颗粒性有机氮)
C_in[12] = 5.0    # S_ALK mol HCO₃⁻/m³

# ─── 4. 初始条件(冷启动:基本与进水相同)──────────────────
C0 = C_in.copy()
C0[4] = 500.0   # X_BH 初始生物量(gCOD/m³,假设有接种)
C0[5] = 50.0    # X_BA 初始自养菌
C0[7] = 2.0     # S_O  初始溶氧

# ─── 5. 运行 ODE 求解器 ──────────────────────────────────────
t_span = (0, 60)          # 模拟 60 天
t_eval = np.linspace(0, 60, 1000)  # 输出时间点

sol = solve_ivp(
    fun=cstr_ode,
    t_span=t_span,
    y0=C0,
    t_eval=t_eval,
    args=(C_in, HRT, SRT, KLa, SO_sat, params, nu),
    method='LSODA',       # 适用于刚性 ODE(Stiff ODE)
    rtol=1e-6,
    atol=1e-8,
    max_step=0.01,
)

print(f"ODE 求解状态:{'成功' if sol.success else '失败 - ' + sol.message}")

# ─── 6. 结果可视化 ───────────────────────────────────────────
t = sol.t
C = sol.y   # shape: (13, len(t_eval))

fig, axes = plt.subplots(2, 3, figsize=(14, 8))
fig.suptitle('ASM1 单 CSTR 动态模拟(SRT=10d, HRT=12h, T=20°C)', fontsize=13)

# 图 1:底物 COD
axes[0, 0].plot(t, C[S_S], label='S_S(易降解)', color='tab:orange')
axes[0, 0].set_title('底物 COD');  axes[0, 0].set_ylabel('gCOD/m³')
axes[0, 0].legend(); axes[0, 0].set_xlabel('时间 (d)')

# 图 2:生物量
axes[0, 1].plot(t, C[X_BH], label='X_BH(异养菌)', color='tab:blue')
axes[0, 1].plot(t, C[X_BA], label='X_BA(自养菌)', color='tab:red')
axes[0, 1].set_title('活性生物量'); axes[0, 1].set_ylabel('gCOD/m³')
axes[0, 1].legend(); axes[0, 1].set_xlabel('时间 (d)')

# 图 3:溶解氧
axes[0, 2].plot(t, C[S_O], label='S_O', color='tab:cyan')
axes[0, 2].axhline(2.0, ls='--', color='gray', label='DO 控制目标 2 mg/L')
axes[0, 2].set_title('溶解氧'); axes[0, 2].set_ylabel('gO₂/m³')
axes[0, 2].legend(); axes[0, 2].set_xlabel('时间 (d)')

# 图 4:氨氮 & 硝态氮
axes[1, 0].plot(t, C[S_NH], label='S_NH(氨氮)', color='tab:green')
axes[1, 0].plot(t, C[S_NO], label='S_NO(硝态氮)', color='tab:purple')
axes[1, 0].set_title('氮形态'); axes[1, 0].set_ylabel('gN/m³')
axes[1, 0].legend(); axes[1, 0].set_xlabel('时间 (d)')

# 图 5:污泥总量(X_BH + X_BA + X_P + X_I + X_S)
X_total = C[2] + C[3] + C[4] + C[5] + C[6]
axes[1, 1].plot(t, X_total, label='总 VSS(估算)', color='tab:brown')
axes[1, 1].set_title('混合液悬浮固体'); axes[1, 1].set_ylabel('gCOD/m³')
axes[1, 1].legend(); axes[1, 1].set_xlabel('时间 (d)')

# 图 6:TN 去除
TN_in  = C_in[S_NH] + C_in[S_NO] + C_in[10] + C_in[11]
TN_eff = C[S_NH] + C[S_NO] + C[10]   # 出水 TN(无颗粒性)
axes[1, 2].plot(t, TN_eff, label='出水 TN(估算)', color='tab:olive')
axes[1, 2].axhline(TN_in, ls=':', color='gray', label=f'进水 TN={TN_in:.0f} gN/m³')
axes[1, 2].set_title('总氮去除'); axes[1, 2].set_ylabel('gN/m³')
axes[1, 2].legend(); axes[1, 2].set_xlabel('时间 (d)')

plt.tight_layout()
plt.savefig('asm1_simulation.png', dpi=150, bbox_inches='tight')
plt.show()

# ─── 7. 稳态结果输出 ─────────────────────────────────────────
print("\n── 稳态结果(t = 60d)──")
C_ss = C[:, -1]
print(f"  S_S  (出水COD)  : {C_ss[S_S]:.2f} gCOD/m³")
print(f"  S_NH (出水氨氮) : {C_ss[S_NH]:.2f} gN/m³")
print(f"  S_NO (出水硝氮) : {C_ss[S_NO]:.2f} gN/m³")
print(f"  S_O  (溶解氧)   : {C_ss[S_O]:.2f} gO₂/m³")
print(f"  X_BH (异养菌)   : {C_ss[X_BH]:.1f} gCOD/m³")
print(f"  X_BA (自养菌)   : {C_ss[X_BA]:.1f} gCOD/m³")

9.6.1 典型输出结果

运行上述代码后,预期稳态结果约为:

指标进水稳态出水
S_S(底物 COD)70 gCOD/m³< 2 gCOD/m³
S_NH(氨氮)35 gN/m³< 2 gN/m³(完全硝化)
S_NO(硝态氮)0 gN/m³~28 gN/m³(硝化产物)
S_O(溶解氧)0 mg/L~6-7 mg/L(大量曝气)
X_BH(异养菌)~1600-1800 gCOD/m³
X_BA(自养菌)~130-160 gCOD/m³

注意:本例中仅有好氧段,无缺氧段,故无反硝化。出水 S_NO 即为硝化产物。

9.7 参数灵敏度实验

了解哪些参数对模型输出影响最大,是模型校准的基础。

PYTHON
# 参数灵敏度实验:改变 SRT,观察稳态出水氨氮
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import solve_ivp

# ... (省略 import 和公共参数设置,与 9.6 相同)

SRT_values = [3, 5, 7, 10, 15, 20, 30]
NH4_steady = []
NO3_steady = []

for srt in SRT_values:
    sol = solve_ivp(
        fun=cstr_ode, t_span=(0, 100), y0=C0,
        args=(C_in, HRT, srt, KLa, SO_sat, params, nu),
        method='LSODA', rtol=1e-6, atol=1e-8,
        t_eval=[100],   # 只取最终时间点
    )
    NH4_steady.append(sol.y[S_NH, -1])
    NO3_steady.append(sol.y[S_NO, -1])

plt.figure(figsize=(8, 5))
plt.plot(SRT_values, NH4_steady, 'o-', label='S_NH(氨氮)', color='tab:green')
plt.plot(SRT_values, NO3_steady, 's-', label='S_NO(硝态氮)', color='tab:purple')
plt.xlabel('SRT(污泥龄,d)')
plt.ylabel('稳态出水浓度(gN/m³)')
plt.title('SRT 对硝化效果的影响(ASM1 单 CSTR)')
plt.legend(); plt.grid(True, alpha=0.3)
plt.axvline(x=5, ls='--', color='red', alpha=0.5, label='硝化临界 SRT ≈ 5d(20°C)')
plt.tight_layout()
plt.savefig('srt_sensitivity.png', dpi=150)

9.8 开源工具介绍

9.8.1 WaterTAP(美国 DOE/NAWI)

简介:由美国能源部国家先进水技术创新中心(NAWI)资助开发,基于 IDAES 框架的开源水处理优化平台。

BASH
pip install watertap

特点

PYTHON
# WaterTAP ASM1 使用示意(需安装 watertap)
from watertap.property_models.unit_specific.activated_sludge.asm1_properties import ASM1ParameterBlock
from watertap.unit_models.cstr_injection import CSTR_Injection

GitHubhttps://github.com/watertap-org/watertap

9.8.2 QSDsan(美国 UIUC)

简介:由伊利诺伊大学香槟分校开发的卫生系统全生命周期分析框架,内置 ASM1、ASM2d、ADM1 实现。

BASH
pip install qsdsan

特点

PYTHON
# QSDsan ASM1 使用示意
import qsdsan as qs
from qsdsan.processes import ASM1

asm1 = ASM1()
asm1.show()   # 显示完整的组分和过程列表

GitHubhttps://github.com/QSD-Group/QSDsan

9.8.3 其他 GitHub 资源

9.9 常见数值问题与调试技巧

问题症状解决方法
刚性 ODE(Stiff ODE)solve_ivp 运行极慢或报警改用 method='LSODA''Radau';设置 max_step
负浓度组分出现负值,引发 ODE 不稳定在速率函数中用 max(C[i], 0) 截断
系统不收敛模拟 100d 后仍未稳态检查 SRT 是否 > SRT_min;检查 KLa 是否足够
硝化菌被洗出XBA → 0,SNH 不下降SRT 太短,需 > 5d(20°C)
除以零XS/XBH 项报错对 XS 和 XBH 设置最小值(如 1e-10)

9.10 本章练习

⭐ 基础题

  1. 运行 9.6 节的模拟代码,将 SRT 从 10d 改为 3d,观察 XBA 和 SNH 的变化。解释观察到的现象。
  2. buildstoichiometry 函数中,找到过程 2(缺氧生长)的 SNO 系数行,结合第 6 章的推导验证其正确性。

⭐⭐ 进阶题

  1. 修改代码,将 KLa 从 200 d⁻¹ 改为 50 d⁻¹,模拟 DO 不足时的系统行为。
  1. 实现一个函数 calcOUR(C, nu, rho),计算系统的瞬时耗氧速率(OUR = −Σ(νi,SO × ρi))并绘制 OUR 随时间的变化曲线。

⭐⭐⭐ 挑战题

  1. 将单 CSTR 扩展为串联两个 CSTR:第一个为缺氧段(KLa=0),第二个为好氧段(KLa=200)。实现两个反应器的 ODE 系统并模拟 A/O 工艺的稳态行为(需设置内回流)。
  2. 对以下参数分别做 ±20% 的灵敏度分析,绘制出水 SNH 对各参数的灵敏度柱状图:muA, KNH, bA, K_OA。哪个参数对硝化效果影响最大?

推荐阅读


目录 | 上一章:第 8 章:ASM3——概念范式修正 | 下一章:第 10 章:模型校准方法论

本教程由微风轻语规划设计,Claude Code 制作
污水生物模型与 Peterson 速率矩阵:完整教程 2026-03-17

第 10 章:模型校准方法论

学习目标

  1. 理解"模型校准"与"调参数"的本质区别
  2. 掌握 BIOMATH、STOWA、GMP 三大主流校准协议的核心步骤
  3. 能够规划并执行一个完整的 ASM1/ASM2d 校准流程
  4. 了解灵敏度分析在校准中的关键作用
  5. 熟悉主流商业模拟软件的功能与适用场景

前置要求:第 6-9 章(ASM1、ASM2d、ASM3、Python 实现)

10.1 校准的本质:不是"调参",是"诊断"

10.1.1 常见误区

许多工程师第一次接触模型校准时,会陷入一个典型误区:

"模型出水 NH₄⁺ 比实测高 3 mg/L,那就把 μ_A 调大一点。"

这种做法——在不理解原因的情况下直接修改动力学参数——在 GMP(Good Modelling Practice)体系中被明确批评,称之为"参数拨号盘调校"(parameter knob-turning)。其危害在于:

10.1.2 科学的校准框架

模型校准(Model Calibration)的正确定义:

在严格的数据质量控制下,通过系统化的步骤,使模型输出与观测数据相符,同时保证所有参数在其物理合理范围内,且模型能够对独立数据集进行验证。

校准的核心目标:

1
拟合优度:最小化模型预测与实测数据的偏差
2
参数合理性:保持参数的物理可解释性
3
验证通过:确保模型对独立数据集的泛化能力

数据驱动 vs 机理驱动

10.2 三大主流校准协议

10.2.1 BIOMATH 协议(Ghent 大学,Vanrolleghem 等)

比利时根特大学 BIOMATH 研究组提出的 8 步系统化协议,是最早规范化的 ASM 校准框架:

步骤名称核心活动
步骤 1校准目标定义明确模型用途(设计?优化?在线控制?);确定精度要求
步骤 2数据收集与核对收集历史运行数据;质量检查;COD/N/P 质量守恒验证
步骤 3水力模型校准示踪剂测试(RTD);确定反应器混合模式(CSTR/PFR/死区)
步骤 4沉淀模型校准沉淀柱测试;Vesilind 参数标定(v₀、K 值)
步骤 5进水特征化COD 分馏(SS、XS、SI、XI 的比例);呼吸法测定
步骤 6灵敏度分析确定对目标输出影响最大的参数子集
步骤 7稳态校准以稳态数据调整关键参数;顺序:COD→N→P
步骤 8动态校准与验证用动态数据精调;用独立数据集验证

10.2.2 STOWA 协议(荷兰水研究基金会)

由荷兰 STOWA(应用水研究基金会)发布,在荷兰工程实践中广泛使用,风格更注重工程实用性

STOWA 协议八步流程
步骤 1:定义建模目标
步骤 2:数据收集
运行记录、水质监测、设备参数
步骤 3:数据质量控制
质量平衡检查、异常值剔除
步骤 4:模型结构设置
工艺流程图、回流配置、反应器数量
步骤 5:稳态校准
进水分馏 → COD 守恒 → N/P 守恒
步骤 6:动态校准
使用代表性动态数据集
步骤 7:模型验证
独立数据集,不允许重新调参
步骤 8:情景分析
模型应用于设计目标

STOWA 与 BIOMATH 的主要差异

10.2.3 GMP 统一协议(IWA 良好建模实践,2013)

参考文献:Rieger, L., Gillot, S., Langergraber, G., Ohtsuki, T., Shaw, A., Takács, I., & Winkler, S. (2013). Guidelines for Using Activated Sludge Models. IWA Scientific and Technical Report No. 22.

GMP(Good Modelling Practice)协议是对 BIOMATH、STOWA、HSG Sim(德国)、WERF(美国)等多个协议的统一融合,是目前最权威的 ASM 校准指南。

GMP 五阶段框架

1
项目定义(Project Definition):建模目标(设计/优化/培训/研究);精度要求(可接受误差范围);数据需求清单
2
数据收集与核对(Data Collection & Reconciliation):质量检查(排除传感器错误、采样误差);质量守恒验证(COD、N、P 守恒方程);进水变异性分析(平均值 vs 峰值负荷)
3
模型设置(Model Set-up):工艺流程建模(反应器数量、配置);水力模型(CSTR 串联 vs PFR 近似);初始参数设置(默认值或文献值)
4
校准(Calibration):进水特征化(COD 分馏,N/P 形态);稳态校准(顺序迭代);动态校准(关键参数精调)
5
验证与应用(Validation & Application):独立数据集验证(不允许修改参数);不确定性分析(可选);情景分析

GMP 的关键创新:引入了校准层级(Calibration Hierarchy)概念:

0
层级 0:使用文献默认参数(不校准)
1
层级 1:仅调整进水分馏(最常用)
2
层级 2:调整进水分馏 + 少数关键动力学参数
3
层级 3:全参数优化(需要大量实验数据支撑)

大多数工程项目采用层级 1-2 即可达到足够精度。

10.3 校准全流程详解

10.3.1 步骤一:进水特征化(最关键步骤)

进水 COD 分馏决定了模型 60-70% 的预测准确性。

实验方法(推荐组合):

A
OUR 呼吸测定法(最推荐):向活性污泥中加入过滤进水,记录 OUR vs 时间曲线;快速 OUR 峰 = S_S 贡献;缓慢下降段 = X_S 水解贡献;确保使用 ATU(丙烯基硫脲)抑制硝化,避免自养菌 OUR 干扰
B
物理化学分离法:0.45 μm 过滤 → 溶解态 COD = S_S + S_I;长期 BOD(20–28d)→ BOD_ultimate 分离可降解 vs 惰性;S_I = 溶解 COD − 溶解可降解 COD(= S_S)
C
质量守恒反推(最简便但精度最低):从稳态质量守恒反推 X_I 和 S_I;仅适用于数据充足的稳态系统

典型市政污水分馏范围

组分占总 COD 比例典型值
S_S10–25%15%
S_I5–15%8%
X_S35–55%45%
X_I15–30%32%

警告:SI 占比虽然较小,但直接决定出水溶解性 COD 的下限。如果 SI = 30 mg/L,出水 COD 永远不可能低于 30 mg/L,无论工艺如何优化。

10.3.2 步骤二:水力模型校准

活性污泥反应器的真实混合模式通常介于 CSTR 和 PFR 之间,水力模型的误差会直接传递到生物模型。

示踪剂测试(Tracer Test)

单个 CSTR(N=1):平推流性差,混合过强
4 个 CSTR 串联(N=4):接近大多数氧化沟/多点进水工艺
PFR(N→∞):推流式曝气池的极限近似

N 的工程估算(无示踪剂时)

10.3.3 步骤三:稳态校准顺序

稳态校准遵循严格的顺序(不可打乱),原因是各层次参数之间存在依赖关系:

COD 守恒校准(最优先)
污泥产量校准:Y_H、f_P、X_I
氧消耗(OUR)校准:b_H、Y_H
硝化性能校准:μ_A、b_A、K_NH、SRT 设计值
反硝化性能校准(若有缺氧段):η_g、X_S 水解速率 k_h
除磷性能校准(若有 EBPR,使用 ASM2d):PAO 参数

步骤 ① COD 守恒检查(必须首先通过):

进水 COD = 出水溶解性 COD + 排泥 COD × 1.42 + 氧消耗量
误差 < 5%:可以继续
误差 5–15%:检查数据质量(流量计精度、采样代表性)
误差 > 15%:停止!找到数据问题才能继续

10.3.4 步骤四:灵敏度分析

灵敏度分析回答:"哪些参数最值得花精力校准?"

局部灵敏度指数(Local Sensitivity Index)

Sij = (∂yi / yi) / (∂θj / θj) = (θj / yi) · (∂yi / ∂θj)

其中:

数值估算(有限差分法):

PYTHON
def local_sensitivity(params, key, output_fn, delta=0.01):
    """计算单个参数的局部灵敏度(中心差分)"""
    p_plus = params.copy()
    p_minus = params.copy()
    p_plus[key]  *= (1 + delta)
    p_minus[key] *= (1 - delta)

    y_plus  = output_fn(p_plus)
    y_minus = output_fn(p_minus)
    y_base  = output_fn(params)

    dy_dp = (y_plus - y_minus) / (2 * delta * params[key])
    return dy_dp * params[key] / y_base   # 无量纲灵敏度

ASM1 对出水 S_NH 的关键参数灵敏度(典型结论)

参数对 S_NH 的灵敏度工程解读
μ_A高负μA 增大 → 硝化增强 → SNH 降低
K_NH高正KNH 增大 → 硝化在低氨氮时受限 → SNH 升高
b_A中正衰减增大 → 硝化菌减少 → S_NH 升高
K_OA中正对 DO 需求提高 → 低 DO 时硝化受限
μ_H异养菌对硝化的间接影响很小

10.3.5 步骤五:动态校准与验证

动态校准数据要求

验证准则(来自 GMP 协议建议值)

指标可接受误差(稳态)可接受误差(动态)
出水 COD±10%±20%
出水 NH₄⁺-N±1 mgN/L 或 ±10%±2 mgN/L 或 ±20%
出水 NO₃⁻-N±2 mgN/L 或 ±10%±3 mgN/L 或 ±25%
MLSS±10%±15%
OUR±15%±25%

10.4 商业模拟软件概览

10.4.1 主流软件对比

软件开发商内置模型优势适用场景
BioWinEnviroSim(加拿大)ASM1/2d/3, ADM1, 沉淀, 厌消界面友好、工程案例最丰富工程设计,市政污水厂
GPS-XHydromantis(加拿大)ASM1/2d/3, ADM1, 全厂模型功能最全、脚本接口强研究与工程双用
SUMODynamita(法国)ASM1/2d/3, 扩展版, 两步硝化最新模型集成度高、界面美观研究型应用,新工艺
WESTDHI(丹麦)ASM1/2d/3, ADM1, CFD 耦合与 CFD/水力模型集成复杂工艺,数字孪生
SIMBA#ifak(德国)ASM1/2d/3, 控制系统Matlab/Simulink 集成最佳过程控制研究

10.4.2 软件选择建议

场景
推荐软件
  • 工程设计(市政污水厂)
  • 研究型应用(新工艺、新模型)
  • 过程控制、MPC 研究
  • 预算受限、教学
  • 全生命周期分析(LCA)
  • BioWin 或 GPS-X
  • SUMO 或 WEST
  • SIMBA# 或 GPS-X
  • GPS-X(学术版)或 Python 自行实现
  • QSDsan(开源)

10.4.3 软件的局限性

重要提醒:所有商业软件都是"黑盒",同一套 ASM1 模型在不同软件中可能因:

  • 沉淀模型实现不同
  • 数值求解方法不同
  • 界面参数定义微妙差异

导致相同输入产生不同输出。建议在项目开始前验证软件默认设置与文献的一致性。

10.5 校准的常见误区与陷阱

误区 1:数据不好就调参

症状:质量守恒差异 > 15%,仍强行校准 正确做法:先修复数据质量问题(流量计核查、采样方案改进)

误区 2:只用稳态数据校准,用动态验证

症状:稳态完美匹配,动态模拟完全失效 原因:稳态可以用多种参数组合拟合,但只有一种组合能同时匹配动态行为 正确做法:至少用部分动态数据校准

误区 3:过度校准(Overfitting)

症状:模型完美匹配校准数据,但无法预测独立数据集 原因:参数自由度过多,模型"记忆"了噪声 正确做法:遵循"最小参数集原则"——只修改灵敏度分析识别出的关键参数

误区 4:忽略水力模型

症状:对完全混合系统(N=1 CSTR)效果好,但对推流系统误差大 正确做法:始终先完成水力模型校准,再进行生物模型校准

误区 5:修改化学计量参数

症状:将 YH 从 0.67 调整为 0.55 来匹配污泥产量 问题:YH 的物理意义明确(由细胞能量学决定),不应大幅偏离文献范围 正确做法:先检查是否 XI 分馏不准确(XI 影响污泥产量);或 b_H 偏低

10.6 本章练习

⭐ 基础题

  1. 解释"死亡-再生"和"内源呼吸"概念在模型校准中的影响:如果用 ASM1 校准一个 SRT=20d 的系统,为什么可能会低估实际的 OUR?
  2. 列出 COD 守恒方程,并说明在什么情况下 COD 守恒误差 > 15% 时应停止校准而检查数据。
  3. 什么是"校准层级"?一个普通的市政污水厂一般需要达到哪个层级?

⭐⭐ 进阶题

  1. 设计一个 OUR 呼吸测定实验,用于测定某市政污水厂进水的 SS 和 XS 分馏。
  1. 对一个出水 NH₄⁺-N 偏高(实测 8 mg/L,模型预测 2 mg/L)的系统,按 GMP 协议写出诊断步骤(至少 5 步),先检查什么,后检查什么?

⭐⭐⭐ 挑战题

  1. 使用第 9 章的 Python ASM1 实现,编写一个局部灵敏度分析脚本:
  1. 假设你是某污水厂的技术顾问,厂方希望提高出水 TN 去除率(当前 TN_eff = 15 mg/L,目标 < 10 mg/L)。设计一个两阶段的模型研究方案:第一阶段(现状校准),第二阶段(工艺优化情景分析)。

推荐阅读


目录 | 上一章:第 9 章:模型实现——Python 编程实战 | 下一章:第 11 章:前沿发展与新兴模型

本教程由微风轻语规划设计,Claude Code 制作
污水生物模型与 Peterson 速率矩阵:完整教程 2026-03-17

第 11 章:前沿发展与新兴模型

学习目标

  1. 了解 ASM 系列向两步硝化、Anammox、N₂O 排放方向的扩展
  2. 掌握厌氧消化模型 ADM1 的结构与位置
  3. 了解好氧颗粒污泥(AGS)建模的独特挑战
  4. 理解全厂基准测试模型 BSM1/BSM2 的意义
  5. 把握数字孪生与机器学习混合建模的最新进展(2024-2025)

前置要求:第 5-10 章(ASM 系列模型、校准方法论)

11.1 ASM 扩展:突破一步硝化的简化

11.1.1 两步硝化模型

ASM1 中,硝化被简化为一步:NH₄⁺ → NO₃⁻(AOB+NOB 合并为 X_BA)。然而,在许多实际系统中,这一简化带来显著误差:

一步简化的问题

两步硝化扩展(Two-step Nitrification)

NH₄⁺ AOB +1.5 O₂ NO₂⁻ NOB +0.5 O₂ NO₃⁻
步骤 1(亚硝化,AOB):NH₄⁺ + 1.5 O₂ → NO₂⁻ + H₂O + 2H⁺
ρAOB = μAOB · (SNH/(KNH,AOB+SNH)) · (SO/(KO,AOB+SO)) · XAOB
步骤 2(硒化,NOB):NO₂⁻ + 0.5 O₂ → NO₃⁻
ρNOB = μNOB · (SNO2/(KNO2,NOB+SNO2)) · (SO/(KO,NOB+SO)) · XNOB

新增组分:XAOB、XNOB(分别建模);S_NO₂(亚硝态氮)

工程应用

11.1.2 Anammox 模型

厌氧氨氧化(Anaerobic Ammonium Oxidation, Anammox)是近年来最重要的污水脱氮技术之一,其反应:

NH₄⁺ + NO₂⁻ → N₂ + 2H₂O    (Anammox 菌法化,完全厌氧)

优势

Anammox 模型特点

特征数值/描述
典型底物NH₄⁺(电子供体)+ NO₂⁻(电子受体)
产物N₂(主要)+ NO₃⁻(少量副产物)
μ_max(35°C)0.08-0.11 d⁻¹(极低,SRT 需 > 20d)
K_NH,ANX0.07 gN/m³(对 NH₄⁺ 亲和力极高)
K_NO2,ANX0.05 gN/m³(对 NO₂⁻ 亲和力极高)
DO 抑制极敏感(> 0.5 mg/L 即受抑制)

主流实现

11.1.3 N₂O 排放模型

为什么重要:N₂O(一氧化二氮)是一种强温室气体(GWP 是 CO₂ 的 265 倍),污水处理系统是 N₂O 的重要排放源,可占污水厂总碳足迹的 40-80%。

N₂O 产生的两条主要途径

N₂O 产生途径 途径 1:AOB 亚硝化过程 途径 2:异养反硝化过程 NH₂OH → N₂O(代谢副产物) NO₂⁻→NO→N₂O→N₂(中间产物) 主控:DO 波动、NO₂⁻ 积累 主控:C/N 比、DO 波动 N₂O 排放

主流 N₂O 模型

模型开发机构特点
ASMG1Ghent 大学单路径(AOB途径),5 步硝化
ASMG2dDTU+Ghent双路径,含反硝化途径
Mampaey 模型根特基于代谢通量,更机理化
IWA N₂O 任务组模型IWA 2016统一框架,两路径

IWA N₂O 模型关键方程(途径 1,AOB 羟胺路径)

ρN₂O = kN₂O · XAOB · (SNH₂OH/(KNH₂OH+SNH₂OH)) · f(DO, NO₂)

其中 S_NH₂OH(羟胺)是需要额外追踪的中间体。

11.2 厌氧消化模型:ADM1

11.2.1 ADM1 概述

厌氧消化模型 No. 1(Anaerobic Digestion Model No. 1, ADM1) 于 2002 年由 IWA 发布,是厌氧消化过程的第一个标准化模型,与 ASM1 并列为 IWA 模型体系的两大支柱。

ADM1 的规模

要素数量
组分26
过程19
参数~50

ADM1 描述的四个主要降解阶段

复杂有机物 水解 糖类、氨基酸、LCFA 发酵 VFA(丙酸/丁酸等) 产氢产乙酸(OHPA) 乙酸 + H₂ + CO₂ 产甲烷 CH₄ + CO₂(沼气)

11.2.2 ASM1 与 ADM1 的接口

在全厂模型中,二沉池污泥(含 XBH、XBA、XP、XI 等 ASM1 组分)进入厌氧消化单元,需要从 ASM 组分转换为 ADM1 组分,这称为ASM-ADM1 接口(Interface Transformer):

ASM 排泥 gCOD, gN, gP 元素守恒 ADM1 进料 碳水/蛋白质/脂肪

关键接口变量

ASM 组分ADM1 组分转换依据
XBH + XBA蛋白质 + 脂肪活性生物量按元素组成分配
X_P惰性颗粒 X_I,ADM1不可降解
X_S碳水化合物 + 蛋白质按 VSS 元素组成分配

11.2.3 ADM1 的工程应用

11.3 好氧颗粒污泥(AGS)模型

11.3.1 AGS 的特殊性

好氧颗粒污泥(Aerobic Granular Sludge, AGS) 是近年最重要的活性污泥技术革新之一,以 Nereda® 工艺为代表。其建模挑战远超传统絮状活性污泥:

传统活性污泥假设

AGS 的实际情况

11.3.2 AGS 的多尺度建模框架

三个尺度

尺度 1:颗粒内部(μm-mm)
尺度 2:单颗粒(mm)
尺度 3:反应器(m)
  • 反应-扩散方程(PDE)
  • O₂/底物浓度剖面
  • 功能菌群径向分布
  • PDE 积分为等效 CSTR 速率
  • 颗粒大小分布(PBM)
  • 颗粒群与液相交互
  • 沉降选择压
  • SBR 循环控制

扩散-反应方程(以球形颗粒内部的 S_O 为例):

∂SO/∂t = DO · (1/r²) · ∂/∂r(r² · ∂SO/∂r) + Σii,S_O · ρi)
[扩散项][反应项(ASM1 过程)]

边界条件:颗粒表面 SO = 液相 SO;颗粒中心 ∂S_O/∂r = 0

11.3.3 机器学习在 AGS 建模中的应用

2024-2025 年,混合建模(Hybrid Modeling)在 AGS 领域成为热点:

11.4 全厂基准测试模型:BSM1 与 BSM2

11.4.1 BSM1(Benchmark Simulation Model No. 1)

BSM1 是 IWA/COST 工作组开发的全厂基准测试平台,提供一个标准化的参照系,使不同研究者、不同控制策略可以在完全相同的模型框架下进行公平比较。

BSM1 构成

BSM1 的使用场景

11.4.2 BSM2(扩展版)

BSM2 在 BSM1 基础上增加了:

BSM2 的开源资源:Matlab/Simulink 完整代码可免费从 IWA 网站获取,是学习全厂建模的最佳实践材料。

11.5 数字孪生:ASM 与机器学习的融合

11.5.1 什么是污水处理的数字孪生?

数字孪生(Digital Twin) 是物理系统的实时数字镜像:

物理污水厂
数字孪生
  • 传感器(在线数据)
  • 执行器(更气、回流泵)
  • 运行状态(DO、NH₄⁺、SS)
  • 实时模型(ASM + ML)
  • 优化引擎(MPC)
  • 虚拟实验室(情景分析)
物理污水厂 数据 指令 ASM + ML 模型 实时更新 优化 MPC

关键要素

  1. 实时数据同化(Data Assimilation):传感器数据不断更新模型状态
  2. 软测量(Soft Sensing):用模型预测难以直接测量的变量(如各组分浓度、污泥活性)
  3. 预测性控制(MPC):模型预测未来 N 步,在线优化控制策略

11.5.2 混合建模框架(Hybrid Modelling)

纯机理模型(ASM)和纯数据驱动模型(ML)各有缺陷:

方法优势劣势
纯 ASM 机理模型可解释、外推能力强、参数有物理意义校准繁琐、计算量大、难以处理未知动力学
纯 ML(神经网络等)拟合复杂非线性、训练快黑盒、外推不可靠、需大量标注数据
混合模型(Hybrid)兼取两者优点设计复杂、接口需精心设计

主流混合架构

架构 1:串联型(Series Hybrid)

在线传感器 数据输入 ML 预测 进水 COD 分馈 ASM 机理计算 生物过程 出水预测

架构 2:残差型(Residual/Correction Hybrid)

ASM 基础预测 “大趋势” ML 残差预测 修正非线性偏差 修正后输出 ASM + 残差

架构 3:PINN(物理信息神经网络)

神经网络 输入:t, 操作参数 输出 C(t) 组分浓度 代入 ASM ODE 计算物理残差 Loss 反向传播(物理约束 + 数据拟合)

11.5.3 自动校准技术

传统校准:手动调参(工程师经验),耗时数周 自动校准(Auto-Calibration)

方法 1:全局优化(Global Optimization)

PYTHON
# 概念代码
from scipy.optimize import differential_evolution

def objective(params_to_calibrate):
    # 用给定参数运行 ASM1 模拟
    # 计算与实测数据的误差(RMSE)
    ...

result = differential_evolution(
    func=objective,
    bounds=parameter_bounds,    # 参数物理约束范围
    maxiter=1000,
    popsize=15,
    seed=42,
)

方法 2:贝叶斯优化(Bayesian Optimization)

方法 3:ensemble Kalman Filter(EnKF)

11.5.4 实时控制与优化(2024-2025 进展)

案例:Nereda® 工艺的数字孪生(Royal HaskoningDHV)

案例:GPS-X + ML(Hydromantis,2024)

新兴方向(2025年活跃研究)

方向描述代表机构
Transformer 时间序列模型用于污水厂长程运行预测清华、Ghent
图神经网络(GNN)建模污水管网的空间关联性TU Delft
强化学习(RL)自主学习最优曝气控制策略帝国理工、中国科学院
知识图谱 + LLM辅助工程师解读模型结果初创公司
联邦学习(FL)多厂协同训练而不共享原始数据数据隐私研究

11.6 CFD 与生物模型耦合

为什么要 CFD-生物耦合

耦合框架

CFD 模块(流体力学)
ASM 模块(生物动力学)
  • 速度场 u(x,y,z,t)
  • 湍流混合(k-ε 模型)
  • KLa 分布(氧传质系数)
  • 组分浓度 C(x,y,z,t)
  • 反应速率 ρ(C, params)
  • 微生物生长与衰减
∂C/∂t + u·∇C = ∇·(D·∇C) + νT·ρ(C)
[对流项][湍流扩散项][ASM 反应项]

计算挑战:CFD-ASM 耦合的计算量比单纯 ASM 高 100-10000 倍,通常需要 GPU 计算或高性能集群。

11.7 本章练习

⭐ 基础题

  1. ASM1 将 NH₄⁺→NO₂⁻→NO₃⁻ 合并为一步。在什么样的工艺或运行条件下,这种简化会导致显著误差?
  2. Anammox 菌的最大比增长速率 μmax ≈ 0.08 d⁻¹(35°C)。计算 Anammox 系统所需的最小 SRT(假设 bANX = 0.01 d⁻¹)。
  3. 解释什么是"数字孪生"。对于一座日处理量 10 万吨的污水厂,数字孪生能提供哪三个核心价值?

⭐⭐ 进阶题

  1. N₂O 是一种强温室气体(GWP₁₀₀ = 265)。若某污水厂每年处理 TN = 1000 吨,其中 1% 以 N₂O 形式排放,计算折算为 CO₂ 当量的年排放量,并讨论减少 N₂O 排放的工程措施。
  2. 比较串联型混合模型(ASM+ML)和 PINN 方法的优缺点。对于一个数据量有限(仅 6 个月运行数据)的新建污水厂,哪种方法更适合?解释原因。

⭐⭐⭐ 挑战题

  1. 设计一个简化的 1D 颗粒污泥扩散-反应模型(球形颗粒,半径 R = 1 mm):
  1. 调研 Nereda® 工艺(好氧颗粒污泥 SBR),从数字孪生角度分析:

推荐阅读


目录 | 上一章:第 10 章:模型校准方法论 | 下一章:第 12 章:资源汇总与持续学习指南

本教程由微风轻语规划设计,Claude Code 制作
污水生物模型与 Peterson 速率矩阵:完整教程 2026-03-17

第 12 章:资源汇总与持续学习指南

学习目标

  1. 系统整理本教程涵盖的所有核心资源
  2. 掌握经典教材与前沿文献的阅读路径
  3. 了解中文资源、开源工具、在线课程的具体获取方式
  4. 制定一份切实可行的 12-16 周个人学习计划

前置要求:完成第 1-11 章的学习

12.1 必读核心教材(5 本)

第一梯队:模型原著(必读)


《Activated Sludge Models ASM1, ASM2, ASM2d and ASM3》


《Biological Wastewater Treatment: Principles, Modelling and Design》


第二梯队:工程应用(必读)


《Wastewater Engineering: Treatment and Resource Recovery》(第 5 版)


《Guidelines for Using Activated Sludge Models》


《Systems Analysis for Water Technology》


12.2 进阶参考文献

12.2.1 按主题分类

模型校准与验证

生物除磷(EBPR)

N₂O 排放

好氧颗粒污泥

机器学习与数字孪生

12.2.2 关键学术期刊

期刊出版商聚焦方向
Water ResearchElsevier水处理技术综合(ASM 高频引用期刊)
Water Science and TechnologyIWAIWA 官方期刊,模型论文集中地
Bioresource TechnologyElsevier厌氧消化、资源回收
Environmental Science & TechnologyACS广谱,高影响因子
Chemical Engineering JournalElsevier工程过程,含 AGS、膜生物反应器
Water Environment ResearchWiley/WEF美国水环境联合会官方期刊
中国给水排水中国国内工程应用为主
环境科学学报中国国内 ASM 研究成果

12.3 中文学习资源

12.3.1 中文教材

《污水生物处理:原理、设计与模拟(原著第 2 版)》

《活性污泥数学模型》

《污水生物处理的数学模型与应用》

12.3.2 在线中文资源

知乎zhihu.com):

Bilibilibilibili.com):

中国大学 MOOCicourse163.org):

CSDN / 博客园

12.3.3 微信公众号 & 社群

12.4 开源软件与代码库

12.4.1 Python 生态

工具地址功能难度
WaterTAPgithub.com/watertap-org/watertapASM1/2d + 优化★★★
QSDsangithub.com/QSD-Group/QSDsanASM1/2d/ADM1 + LCA★★★
pyASMGitHub 搜索 pyASM轻量级 ASM 实现★★
BSM1-PythonGitHub 搜索 BSM1 python全厂基准模型★★★★
AutoWaterSimugithub.com/endearqb/AutoWaterSimu全栈开源应用

自学起点代码(本教程第 9 章提供):

12.4.2 Matlab/Simulink 资源

12.4.3 商业软件试用

软件试用方式
BioWinEnviroSim 官网申请教育版试用(30 天)
GPS-XHydromantis 官网申请学术版
SUMODynamita 官网申请 30 天试用
WESTDHI 官网,含免费 WEST Demo 版

12.5 12-16 周系统学习计划

第一阶段:打地基(第 1-4 周)

周次学习内容任务
第 1 周第 1-2 章:历史背景 + 微生物代谢完成第 2 章全部练习题
第 2 周第 3 章:COD 分馏与水质特征化查阅所在城市污水厂进水 COD 分馏数据
第 3 周第 4 章:Monod 方程 + CSTR完成 4.5 节手算示例,验证计算
第 4 周复习 + 自测完成第 1-4 章全部⭐⭐进阶题;阅读 Henze 2008 第 1-3 章

第一阶段里程碑:能手算单底物 CSTR 稳态(出水 COD、MLSS、OUR、污泥产量)


第二阶段:核心突破(第 5-8 周)

周次学习内容任务
第 5 周第 5 章:Peterson 矩阵构建 2×4 矩阵(含 COD 守恒验证)
第 6 周第 6 章(前半):ASM1 组分与过程 1-5逐行推导矩阵系数,验证 COD 守恒
第 7 周第 6 章(后半):ASM1 过程 6-8 + 参数集完成第 6 章全部⭐⭐进阶题
第 8 周第 7-8 章:ASM2d + ASM3绘制 ASM1/ASM2d/ASM3 差异对比表

第二阶段里程碑:能从零构建 ASM1 Peterson 矩阵并写出任意组分的控制方程


第三阶段:编程实战(第 9-12 周)

周次学习内容任务
第 9 周第 9 章(前半):ASM1 Python 实现运行 9.6 节代码,成功输出模拟结果
第 10 周第 9 章(后半):灵敏度分析完成练习 4(OUR 计算)+ 练习 5(串联两 CSTR)
第 11 周第 10 章:模型校准方法论阅读 GMP 协议文本(Rieger 2013)第 1-4 章
第 12 周综合实战用 Python 实现一个简化的 A/O 工艺(缺氧+好氧两 CSTR)

第三阶段里程碑:独立完成 Python ASM1 单反应器动态模拟,产出图表


第四阶段:进阶与前沿(第 13-16 周)

周次学习内容任务
第 13 周第 11 章:前沿发展精读 2 篇关于数字孪生/ML+ASM 的 2024 年论文
第 14 周商业软件入门安装 GPS-X 或 BioWin 试用版,运行 BSM1 默认算例
第 15 周深度阅读:选择一个专题深入选项:N₂O 模型 / AGS 建模 / ASM2d 校准案例
第 16 周总结与项目选择一个真实或假设的污水厂,完成从进水分馏到稳态模拟的完整流程

最终里程碑:能够设计和执行一个完整的污水厂生物模型应用项目(从数据收集到结果输出)


12.5.1 学习时间分配建议

每周 8-10 小时,建议分配如下:

12.5.2 学习效率提升技巧

  1. 主动回顾(Active Recall):每章学完后,不看书,在白纸上重新推导 Peterson 矩阵的 COD 守恒
  2. 对照软件验证:用 Python 模拟结果与 GPS-X 或 BioWin 的结果对照,发现差异时深入排查
  3. 建立概念图谱:用思维导图记录 ASM1/ASM2d/ASM3 的关联与差异
  4. 找真实数据练习:从文献或污水厂年报中找真实的进出水数据,尝试手动分馏并建立模型
  5. 加入学习社群:与同学/同事一起学习,定期分享和讨论问题

12.6 常用缩略词与符号速查表

缩略词/符号全称说明
ASMActivated Sludge Model活性污泥模型
CSTRContinuous-flow Stirred Tank Reactor连续流完全混合反应器
SRTSolids Retention Time污泥龄(泥龄)
HRTHydraulic Retention Time水力停留时间
MLSSMixed Liquor Suspended Solids混合液悬浮固体
VSSVolatile Suspended Solids挥发性悬浮固体(近似于活性生物量+有机物)
CODChemical Oxygen Demand化学需氧量
BODBiochemical Oxygen Demand生化需氧量
TNTotal Nitrogen总氮
TPTotal Phosphorus总磷
OUROxygen Uptake Rate耗氧速率
EBPREnhanced Biological Phosphorus Removal强化生物除磷
PAOPhosphorus-Accumulating Organisms聚磷菌
GAOGlycogen-Accumulating Organisms聚糖菌
AOBAmmonia-Oxidizing Bacteria氨氧化菌
NOBNitrite-Oxidizing Bacteria亚硝酸盐氧化菌
AnammoxAnaerobic Ammonium Oxidation厌氧氨氧化
AGSAerobic Granular Sludge好氧颗粒污泥
ADM1Anaerobic Digestion Model No. 1厌氧消化模型 1 号
GMPGood Modelling Practice良好建模实践
MPCModel Predictive Control模型预测控制
IWAInternational Water Association国际水协会
μ_maxMaximum specific growth rate最大比增长速率
K_SHalf-saturation constant半饱和常数
YYield coefficient产率系数
b_dDecay coefficient衰减系数(本教程通称)
ν_ijStoichiometric coefficient化学计量系数(Peterson矩阵元素)
ρ_iProcess rate过程速率

12.7 致谢与说明

12.7.1 本教程的局限性

本教程旨在提供从入门到进阶的系统性学习框架,但以下方面需要读者通过其他资源深化:

12.7.2 版本信息


12.8 结语:建模是工程师的"第二语言"

活性污泥模型从 1987 年的 ASM1 发展到今天融合机器学习的数字孪生,走过了近 40 年。这段历程揭示了一个核心规律:

模型是理解的工具,而不是目的本身。

对于环境工程师而言,掌握 ASM 系列模型和 Peterson 矩阵的真正价值,不在于能用软件输出漂亮的图表,而在于:

当你能够独立构建一个 Peterson 矩阵、验证 COD 守恒、并用 Python 模拟动态响应时,你就已经从"使用者"成长为"理解者"。这是所有后续进阶——数字孪生、ML 混合建模、N₂O 减排——的共同基础。

学无止境,但方向明确。祝学习顺利。


本教程为开放学习材料,欢迎反馈与改进建议。


目录 | 上一章:第 11 章:前沿发展与新兴模型 |