Lesson 06 · 落地
集成进 Pivot:照着方案落地(含版本坑)
把前五课串起来,逐行对照方案 §2.2,并点破 2026 年真实的版本兼容风险。
这是最后一课,也是最实战的一课。我们把方案 world-model-hvac-implementation.md 的附录 A 技术选型表和 §2.2 仿真环境摊开,用前五课学到的语言逐条解读,最后专门讲一组方案写定时合理、但今天已经不成立的版本兼容问题——动手装环境前必须先读这一段。
先看方案怎么定的(附录 A 节选)
| 决策项 | 选型 | 版本/Commit |
|---|---|---|
| 仿真引擎 | EnergyPlus | v25.2.0(方案写"官方最新稳定版") |
| 仿真环境封装 | Sinergym | 4bb1b3f (main) |
| IDF 生成工具 | eppy | "最新 PyPI" |
| Python | CPython | 3.11.x |
| PyTorch | PyTorch | 2.4.1+cu121 |
方案的理由(§2.1.3):Python 3.11 是"PyTorch 2.4 + EnergyPlus Python API 的兼容交集"。这句话在写方案的 2025 年底是成立的。但今天是 2026 年 7 月,下面这段你必须先读。
逐行对照方案 §2.2:每一步对应前五课哪一环
现在用学过的语言,把方案的落地路径翻译一遍。方案 [§2.2.3] 给了 IDF 来源的三条路径,下面把它们对到工具链上:
| 方案路径 | 链条 | 精度/成本 | 谁主导 |
|---|---|---|---|
| 路径 A(推荐,高精度) | 施工图/BIM → IFC → IfcOpenShell → eppy 生成 IDF → 人工校准 | 高 / 慢 | 暖通工程师 + ML |
| 路径 B(快,中精度) | EnergyPlus 示例 IDF → eppy 批改参数 → 人工校准 | 中 / 较快 | ML |
| 路径 C(最快,低精度) | CityLearn 内置数据集,不修改直接训练 | 低 / 最快 | 仅算法验证 |
方案明确:PoC 用路径 A 或 B。对应到人:IDF 建模由暖通工程师(内部或顾问)主导出第一版,后端/ML 工程师用 eppy 做批改和域随机化,再用 Sinergym 封装成环境(方案阶段表 W5–W8)。
端到端:从 IDF 到 DreamerV3 训练
把方案里分散在 §1.3、§2.1.4、§2.2 的片段拼成一张完整图,这是这门课的总图:
[暖通] OpenStudio/BIM → building.idf + 武汉.epw
│ eppy 域随机化 → N 个扰动 IDF(方案 §2.2.4)
▼
[ML] envs/hvac.py ──▶ 薄封装,把 Sinergym 环境适配进 DreamerV3-torch 的 envs/
│
▼
Sinergym env = gym.make(...) ← 内部用 pyenergyplus + EMS(第 4 课)
│
▼
env.step(action) 在每个仿真步:
读 Sensor(室温/水温/CO₂/室外温…) = 观测
写 Actuator(冷机功率/水泵频率…) = 动作
读 meter(能耗/COP) = 奖励
│
▼
[ML] DreamerV3 训练循环(RSSM → Actor-Critic → 想象 rollout)
│ 训练完 → MLflow 注册 → FastAPI 推理服务
▼
[部署] os-server(Java) HTTP 调推理 → Action Gateway → 安全门控 → MQTT → 真楼
这张图里每一个环节你都已经在前五课见过。到这一步,你应该能独立读懂方案第 1、2 章,不再被名词卡住。
若想现在就动手:一个最小验证清单
不追求一步到位,先验证"工具链通"即可。这是比方案阶段表更轻的第一步:
- 选 Python 版本:先按上面告警框确认 3.11 还是 3.12,建一个干净虚拟环境。
- 装 EnergyPlus:从 energyplus.net 下安装包;或试
pip install pyenergyplus-lbnl(LBNL 打包的 pyenergyplus,省去手动配PYTHONPATH)。确认import pyenergyplus不报错。 - 跑一个自带示例:用 EnergyPlus 自带的
RefBldgLargeOfficeNew...IDF + 一个 EPW,energyplus -w weather.epw -r example.idf跑通一年,看到eplusout.sql产出。 - 装 eppy 改一个参数:读 IDF,把某台冷机容量 ×1.1,存盘,再跑,对比能耗变化(方案路径 B 的雏形)。
- 装 Sinergym 跑内置环境:
pip install sinergym,env = gym.make("Eplus-...-v1"),跑一个随机策略几步,确认step()正常返回。这一步通了,第 4 课那套 EMS 通信就算验证通过。
这五步走完,你就拿到了方案阶段 2(W4–W10)的"能跑通"前提,后面才是建模精度和校准的硬仗。
方案 §2.2 的 EnergyPlus 链条,用前五课的语言就是:OpenStudio/BIM 造 IDF → eppy 域随机化与校准 → Sinergym 用 pyenergyplus+EMS 封装成 Gymnasium 环境 → DreamerV3 在其中训练。但动手前要警惕:方案钉的 Sinergym 4bb1b3f + Python 3.11 与现行 Sinergym 3.12.2(需 Python ≥3.12)已不兼容,第一周装环境要把 Python/Sinergym/EnergyPlus 三者的版本先对齐。
2026 年 7 月,照方案直接 pip install sinergym,最可能撞上的问题是?
学完整门课了,欢迎继续问我:比如"我想直接选 Python 3.12,方案里其他地方会不会也跟着出问题",或者"路径 A 的 BIM→IFC→IDF 那段到底归谁做、我要不要学"。这本是一份起点教程,真正动手时的具体问题,我随时陪你往下走。