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

Lesson 03 · 文件

它吃什么、吐什么:IDF / IDD / EPW / 输出

看懂这几种文件,你就拿到了和 EnergyPlus 打交道的"语法"。

第 2 课讲了 EnergyPlus 内部怎么算。但作为工程师,你日常打交道的是文件——喂给它什么、它吐回什么。这一课把这几类文件讲清楚,其中最重要的是 IDFEPW,它们是方案 §2.2.3 那张"建筑模型从哪来"图的全部主角。

输入侧:三件套

IDF —— 建筑的"简历"

IDF(Input Data File)是纯文本文件,描述这栋楼的一切:几何、围护结构、空调系统、时间表、要输出哪些变量。你可以把它想成一栋楼的简历。它的长这样:

Building,
  A-Office,              !- 名称
  30,                   !- 朝向(度,北向起)
  ...;

Zone,
  Floor1-Core,           !- 区域名
  0,                    !- 方向
  0,                    !- X 原点
  0,                    !- Y 原点
  0,                    !- Z 原点
  ...;

HVACTemplate:Plant:Chiller,
  MainChiller,           !- 名称
  500000,               !- 制冷量 (W)
  ...;

Output:Variable,
  *,                     !- 对象(*=全部)
  Zone Air Temperature,  !- 想要的变量
  timestep;              !- 频率

每行以逗号分隔,!- 后是注释。一个对象(如 BuildingZoneHVACTemplate:Plant:Chiller)占一段,以 ; 结尾。

IDD —— IDF 的"字典"

IDD(Input Data Dictionary)定义某个 EnergyPlus 版本里所有合法对象、每个对象有哪些字段、默认值是什么。随安装包附带(Energy+.idd)。你的 IDF 写错了(字段顺序、缺项),EnergyPlus 就是拿 IDD 来校验并报错的。换 EnergyPlus 版本时,IDD 也换——这就是"版本升级可能让旧 IDF 报错"的根因。

除 IDF 外,新版还支持 EpJSON(JSON 形式的同等内容),对脚本化更友好。PoC 阶段用 IDF 即可,知道 EpJSON 存在就行。

EPW —— 一年的天气

EPW(EnergyPlus Weather)是天气文件,本质是一整年逐时的"典型气象年"(TMY):每小时的温湿度、太阳辐射、风速、气压。第 2 课说的"读输入",室外环境数据就从这里来。

这套文件谁生产?

这是新人最困惑的点。直接给结论——IDF 不是手写的,它有四条来路,方案 [§2.2.3] 全都用到了:

IDF 的四条生产路径(方案里都有)
路径工具精度/成本
图形化建模OpenStudio(最主流)精度高、人工成本中
内置示例改EnergyPlus 自带示例 IDF + eppy 批改精度中、快
BIM 转换Revit/IFC → IfcOpenShell → eppy精度高、链条长
纯手写/模板文本编辑器 + 模板只适合小模型

输出侧:它吐回什么

一次仿真跑完,EnergyPlus 会吐一堆文件,由 OutputControl:Files 对象控制开哪些。RL 训练里我们真正关心的是这几类:

输出是什么谁消费
SQL(sqlite) 结构化时序数据库,最好解析 Sinergym / 数据分析脚本(首选)
.eso.csv 逐时变量输出,常转 csv 给人看 人工核查 / 校准对比
.mtr 计量表(meter)输出,类比 .eso 能耗汇总
TABLE.HTML 月度/分箱的报表 HTML 一眼看全年能耗概览
EIO / RDD / MDD 额外结果 / 可用变量清单 / 可用计量清单 调试时查"我能取哪些变量"

对 RL 来说最关键的是:RL 智能体并不靠读这些文件拿数据——它通过第 4 课的 Python API,在仿真运行时实时拿到每步的变量值。这些文件更多是离线校准、人工核查、调试用。

这一课的小收获

EnergyPlus 吃三样:IDF(楼的简历,纯文本)、IDD(字典,校验用)、EPW(一整年典型天气)。IDF 有四条生产路径(OpenStudio / 示例改 / BIM / 手写),方案四条都列了。输出侧 RL 训练主要用 SQL,但实时数据走第 4 课的 Python API,不读文件。

自测一下

RL 训练时,智能体每一步拿到的"房间温度"主要来自哪里?

卡住了就问我:如果你搞不清 IDF 对象那一堆字段怎么填,别纠结——那是暖通工程师/OpenStudio 的活。你只要"看得懂"即可。问我"我作为后端工程师,IDF 这块到底要做到哪一步",我会按方案 §7 的分工回答你。

参考来源 EnergyPlus Essentials(输入/输出章节) · Output Files (v26.1) · EnergyPlus Weather 下载 · 方案文档 §2.2.3