污泥厌氧产沼 · 物料 / 能量平衡图 · 生成器
把「一堆设计参数」变成「一张能直接发给别人看的平衡图」。
成果是单个 HTML 文件(无外链、无 CDN、无依赖),双击用 Edge / Chrome 打开即可看图,
也可直接发到微信里让对方在对话内打开;页面顶部自带三个按钮:导出 PDF(A4 横向、自动分页)、
导出 4 张图高清 PNG、导出 Word。
一、工作流(按顺序执行)
第 1 步 · 亮输入项
先跑 python scripts/build_html.py --list,把输入清单(分区 / 键名 / 单位 / 范围 / 默认值 / 联动)
呈现给用户;并明确告诉对方一句话:
> 只需要给关心的项,没提到的项一律按默认值走,不影响出图。
第 2 步 · 收集输入
把用户口述 / 表格里的参数整理成一个小 JSON(见下方「输入写法」)。
用户如果只说「就按默认」,那就什么 JSON 都不用给,直接生成即可。
拿不准的项不要反复追问,按默认值走,并在交付时把「哪些项用了默认值」列出来。
第 3 步 · 生成
python scripts/build_html.py --inputs inputs.json -o "污泥厌氧产沼物料能量平衡图.html" \
--case "某污水厂 40 tDS/d · 中温厌氧 · 带热水解"
--case可选:工况名会写进页面顶部的工况按钮,并出现在 Word 导出的标题栏里;--dry-run:只校验与预览,不落盘;-o缺省时可用--dry-run先看注入结果;- 输入也可以走 stdin:
cat inputs.json | python scripts/build_html.py -o out.html。
第 4 步 · 自检并交付
python scripts/check_output.py "污泥厌氧产沼物料能量平衡图.html"
五项全绿(零依赖 / 页面结构 / 注入标记 / 脱敏残留 / 移动端与导出能力)后再交付,
并把结果文件用 present_files 推给用户。
二、输入写法
键名可以直接用英文字段名,也可以直接用页面上的中文输入项名称(脚本自动识别)。
以 _ 开头的键被视为注释,自动忽略。
{
"_note": "只给关心的项即可",
"进泥干固量(模式1)": 32, // 中文输入项名
"DS": 32, // 等价的英文字段名
"进泥含水率(模式1)": 0.965,
"沼渣干化形式": "热泵干化", // 下拉项:写显示文字或取值都行
"热水解 THP": "启用",
"STEAM_LV": 2, // 全厂蒸汽等级:0→1.0 / 1→1.3 / 2→1.6 / 3→1.8 MPa(a)
"SW_CT": 0 // 停用冷却塔(冷却改用外部水源)
}
完整的输入项清单(含每项的中文名、单位、取值范围、默认值与说明)见
references/INPUTS.md;机器可读版本在 assets/inputs.schema.json。
输入校验行为:数值超范围、下拉项写了不存在的选项,都会逐条报错并停止(退出码 2);
写了无法识别的键名只警告并忽略,不会中断。
三、页面上有 8 个一键工况按钮
生成的页面顶部自带 8 个预设按钮,点一下即整页重算。对应的 JSON 写法:
| 按钮 | 等价的 JSON 写法 |
|---|---|
| 默认工况 | (不给输入) |
| 部分热水解(仅剩余污泥) | {"MODE": 2} 并在泥种分列里指定哪些股进热水解 |
| 全量不热水解 | {"SW_THP": 0} |
| 冬季工况 | {"SEASON": 2} |
| 蒸汽间接干化 | {"DRY_TYPE": 1} |
| 热泵干化 | {"DRY_TYPE": 3} |
| 1.6 MPa 蒸汽等级 | {"STEAM_LV": 2} |
| 不设冷却塔(外部水源) | {"SW_CT": 0} |
四、成果说明
| 页签 | 内容 |
|---|---|
| ① 带工艺流程的平衡图(泥 · 汽 · 水 · 气) | 主流程 PFD:污泥 / 蒸汽 / 稀释水从哪进,沼气 / 沼液 / 外运泥往哪去;含热水解、闪蒸降温、干化、CHP、余热锅炉、蒸汽锅炉、补燃、冷却塔等设备框与能量去向 |
| ② 物料平衡(Sankey) | 输入 = 输出的质量流,闭合差恒为 0 |
| ③ 能量平衡(Sankey) | 左右两列闭合(左列 = 右列 = 输入合计),沼气之外单列「外部补入」 |
| ④ 校核表 | 固相平衡、产气互校、热平衡闭合判据、脱硝药剂、外运泥量等 |
| ⑤ 带实景的工艺平衡图(动态流向) | 厂房化表达,SVG + SMIL 动态流向 |
页面左侧是参数面板(在页面最下方,手机上可滑动查看),改动即刻全图重算。
联动与条件绘制(★ 生成器与页面已自动处理)
- 总开关:是否设热水解 / 沼液脱水 / 沼渣干化 / 沼气发电 / 沼气锅炉 / 冷却塔。
关掉哪个,对应设备框与它的进料箭头就不再出现,不会留下误导性的空框。 - 干化形式:可以指定 1~4 种形式之一,也可以选「自动」——
由程序在「热缺口为零且净发电最大」的目标下挑一种。 - 锅炉形式:蒸汽锅炉与热水锅炉只上其一,选型会连带改变热水与蒸汽的供给方式。
- 水量与热量不足时:会单列「补天然气」设备框与外部补入能量,不会静默掩盖缺口。
- 冷却塔停用时:厂区废热仍照常统计并显示,只是不再归到设备侧(冷却改用外部水源)。
五、常见问法
| 用户说 | 建议做法 |
|---|---|
| 「就按默认给我出一张」 | 不给输入,直接生成 + 自检 |
| 「我这个厂 40 吨干固,含水 96.5%」 | {"DS": 40, "win": 0.965} |
| 「不做热水解」 | {"SW_THP": 0} |
| 「沼气全去发电」 | {"ALLOC": 3} |
| 「用热水锅炉」 | {"BLR_TYPE": 2} |
| 「不设冷却塔」 | {"SW_CT": 0} |
| 「干化后做到 90% 含固」 | {"SW_DRY": 1, "ds_dried": 0.90} |
六、边界与注意
- 不要手改生成的 HTML:要改就在 JSON 里改,重新生成。手改会破坏页面内部的闭合关系。
- 生成器只做「参数 → 图 + 表」的确定性计算,不判断工艺是否合理。若出现
「热缺口明显为正」「有机负荷率偏高」这类结果,属于输入本身的问题,
应提示用户复核参数,而不是去改模型。 - 成果文件中所有引用已做中性化处理(见
references/SANITIZE.md),可直接对外分发。 - 场景中的全部数值均为工程参考算例,不是任何具体项目的实测数据;
用于正式设计时须替换为项目实测值并另行校核。 - 本技能不提供任何表格文件,也不提供计算过程与公式说明(见
references/SANITIZE.md第五节)。
页面上的可见文字、注释、说明列、参数标签均已中性化,读者在界面上看不到任何公式与推导。 - 需要把本技能包发布到 SkillHub 时,按
references/SKILLHUB.md的指引操作
(技能名称 / Slug / 描述 / 标签 / 图标 / 审核与上架步骤、打包命令)。