课程首页· 术语表· 第 6 课 / 共 6 课

Lesson 06 · 落地

集成进 Pivot:照着方案落地(含版本坑)

把前五课串起来,逐行对照方案 §2.2,并点破 2026 年真实的版本兼容风险。

这是最后一课,也是最实战的一课。我们把方案 world-model-hvac-implementation.md附录 A 技术选型表§2.2 仿真环境摊开,用前五课学到的语言逐条解读,最后专门讲一组方案写定时合理、但今天已经不成立的版本兼容问题——动手装环境前必须先读这一段。

先看方案怎么定的(附录 A 节选)

方案附录 A 中与 EnergyPlus 相关的选型(原样引用)
决策项选型版本/Commit
仿真引擎EnergyPlusv25.2.0(方案写"官方最新稳定版")
仿真环境封装Sinergym4bb1b3f (main)
IDF 生成工具eppy"最新 PyPI"
PythonCPython3.11.x
PyTorchPyTorch2.4.1+cu121

方案的理由(§2.1.3):Python 3.11 是"PyTorch 2.4 + EnergyPlus Python API 的兼容交集"。这句话在写方案的 2025 年底是成立的。但今天是 2026 年 7 月,下面这段你必须先读。

逐行对照方案 §2.2:每一步对应前五课哪一环

现在用学过的语言,把方案的落地路径翻译一遍。方案 [§2.2.3] 给了 IDF 来源的三条路径,下面把它们对到工具链上:

方案 §2.2.3 的 IDF 来源路径 ↔ 工具链(第 5 课)
方案路径链条精度/成本谁主导
路径 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 章,不再被名词卡住。

若想现在就动手:一个最小验证清单

不追求一步到位,先验证"工具链通"即可。这是比方案阶段表更轻的第一步:

  1. 选 Python 版本:先按上面告警框确认 3.11 还是 3.12,建一个干净虚拟环境。
  2. 装 EnergyPlus:从 energyplus.net 下安装包;或试 pip install pyenergyplus-lbnl(LBNL 打包的 pyenergyplus,省去手动配 PYTHONPATH)。确认 import pyenergyplus 不报错。
  3. 跑一个自带示例:用 EnergyPlus 自带的 RefBldgLargeOfficeNew... IDF + 一个 EPW,energyplus -w weather.epw -r example.idf 跑通一年,看到 eplusout.sql 产出。
  4. 装 eppy 改一个参数:读 IDF,把某台冷机容量 ×1.1,存盘,再跑,对比能耗变化(方案路径 B 的雏形)。
  5. 装 Sinergym 跑内置环境pip install sinergymenv = 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 那段到底归谁做、我要不要学"。这本是一份起点教程,真正动手时的具体问题,我随时陪你往下走。

参考来源 Sinergym (PyPI, requires_python ≥3.12) · pyenergyplus-lbnl (PyPI) · EnergyPlus v26.1.0 Release · OpenStudio 版本兼容矩阵 · 方案文档 §1.3 / §2.1.4 / §2.2 / 附录 A