垃圾焚烧物料 / 能量平衡图 · 生成器
把「一堆设计参数」变成「一张能直接发给别人看的平衡图」。
成果是单个 HTML 文件(无外链、无 CDN、无依赖),双击用 Edge/Chrome 打开即可看图,
也可直接发到微信里让对方在对话内打开;页面顶部自带三个按钮:导出 PDF(A4 横向、自动分页)、
导出 5 张图高清 PNG、导出 Word。
一、工作流(按顺序执行)
第 1 步 · 亮输入项
先跑 python scripts/build_html.py --list,把输入清单(分区 / 键名 / 单位 / 范围 / 默认值 / 备注)
呈现给用户;并明确告诉对方一句话:
> 只需要给关心的项,没提到的项一律按默认值走,不影响出图。
第 2 步 · 收集输入
把用户口述/表格里的参数整理成一个小 JSON(见下方「输入写法」)。
用户如果只说「就按默认」,那就什么 JSON 都不用给,直接生成即可。
拿不准的项不要问,按默认值走,并在交付时把「哪些项用了默认值」列出来。
第 3 步 · 生成
python scripts/build_html.py --inputs inputs.json -o "垃圾焚烧物料能量平衡图.html" \
--case "某生活垃圾焚烧厂 800 t/d · 6.4MPa/455℃"
--case可选:工况名会写进页面顶部的工况按钮,并出现在 Word 导出的「工况」栏里;--dry-run:只校验与预览,不落盘;--kpi:生成后额外用无头浏览器渲染一遍并打印 KPI(本机有 Edge/Chrome 时可用);- 输入也可以走 stdin:
cat inputs.json | python scripts/build_html.py -o out.html。
第 4 步 · 自检并交付
python scripts/check_output.py "垃圾焚烧物料能量平衡图.html"
五项全绿(零依赖 / 页面结构 / 注入标记 / 脱敏残留 / 打印导出能力)后再交付,
并把结果文件用 present_files 推给用户。
二、输入写法
键名可以直接用英文字段名,也可以直接用页面上的中文输入项名称(脚本会自动识别)。
以 _ 开头的键被视为注释,自动忽略。
{
"_preset": "hp", // 可选:先套用预设 default/low/high/hp/air/scr
"mFuel": 30, // 英文字段名
"燃料消耗量": 30, // 中文输入项名,等效
"el": { "C": 21.0, "M": 43.0 }, // 元素分析可嵌套
"el.C": 21.0, // 也可点号写法
"水分": 43.0, // 常用别名:碳氢氧氮硫氯 / 水分 / 灰分 / Car..Mar
"level": 9, // 蒸汽等级档位 0~10
"scrOn": true, // 勾选项写 true / false 或 是 / 否
"std": "GB18485-2014", // 下拉项写取值或显示名都行
"stab": "方案二"
}
完整的输入项清单(含每项的中文名、单位、取值范围、默认值与逐条备注)见
references/INPUTS.md;机器可读版本在 assets/inputs.schema.json。
三、面板联动规则(★ 生成器已自动处理)
页面上这几个控件一改就会连带覆盖从属项;生成器会按同一套规则把联动值一并算出来,
所以不会出现「选了方案二、配比却还是方案一」这类自相矛盾:
| 主项 | 联动覆盖 |
|---|---|
level 蒸汽等级 |
h1 / h2 / h3 三段抽汽焓 |
std 排放标准 |
pmLim / so2Lim / hclLim / noxLim / o2Ref |
stab 稳定化配比方案 |
chelate / cement / humid |
cooling 乏汽冷却方式 |
backP / hExh |
显式写了某个从项时,以显式值为准(不会被联动覆盖)。
四、成果说明
| 页签 | 内容 |
|---|---|
| ① 带工艺流程的平衡图 | 主流程 PFD:物料流、烟气温度节点、能量去向、渣灰支路与稳定化 |
| ② 物料平衡(Sankey) | 输入 = 输出的质量流,闭合差恒为 0 |
| ③ 能量平衡(Sankey) | 双图并列:③-A 绝对焓口径(0 ℃ 基准,含给水带入焓)· ③-B 汽水系统吸热口径(不给水焓入图,输出为净吸热) |
| ④ 排放校核 | 颗粒物 / SO₂ / HCl / NOx 与限值对照,O₂ 基准折算 |
| ⑤ 带实景的工艺平衡图 | SVG + SMIL 动态流向的厂房化表达 |
页面左侧是参数面板,改动即刻全图重算;顶部 6 个工况按钮可一键切换预设工况。
⚠ ③ 图两口径不可互推(很关键,交付时最好主动说明)
- ③-A 绝对焓口径:分母 = 燃料 + 空气侧 + 给水带入焓,右列三股是
m×h焓流。
给水焓在分子与分母各计一次,所以合计占比会高于锅炉热效率(本例 83.85 % vs 81.1 %),
这是口径定义使然((a+x)/(b+x) > a/b),不是算错。 - ③-B 吸热口径:分母 = 燃料 + 空气侧(不给水焓入图),右列三股是净吸热,
合计占比恰好等于锅炉热效率。 - 对照热效率请用 ③-B;③-A 用来看「哪一股进汽机、各股带出系统多少热量」。
锅炉热效率的口径
etaBoiler 填 0 = 按热损失法反算(推荐、也是默认口径);填 >0 则按效率法直接给定,
此时「回收 + 热损失」与输入热量会有口径差,页面会自行标注。
五、常见工况配方
| 需求 | 只需给几个键 |
|---|---|
| 低热值垃圾(水分 60 %) | _preset: "low" |
| 高热值垃圾(水分 36 %) | _preset: "high" |
| 次高压机组 6.4 MPa / 455 ℃ | _preset: "hp" |
| 空冷机组 | _preset: "air" |
| 投运 SCR | _preset: "scr" |
| 垃圾量改成 800 t/d(≈33.3 t/h) | mFuel: 33.3 |
| 换排放标准 | std: "欧盟2010/75/EU" |
| 飞灰稳定化换配比 | stab: "方案二" |
预设与显式输入可以叠加:{"_preset":"hp","mFuel":33.3}。
六、边界与注意
- 不要手改生成的 HTML:要改就在 JSON 里改,重新生成。手改会破坏内部的闭合关系。
- 生成器只做「参数 → 图」的确定性计算,不判断工艺是否合理。若出现
「排烟温度 < 酸露点」「过热蒸汽产量 > 输入热量」这类反常结果,属于输入本身的问题,
应提示用户复核参数,而不是改模型。 - 成果文件中所有引用已做中性化处理(见
references/SANITIZE.md),可直接对外分发。 - 场景中的全部示例数值均为工程参考算例,不是任何具体项目的实测数据;
用于正式设计时须替换为项目实测值并另行校核。