Lesson 03 · 基线
物理基线:建筑的"真实方程"与规则控制
在追 BrainBox 的 Neural ODE 之前,先问一句——这栋楼的热演化,物理上到底服从什么方程?
BrainBox 反复强调"physics-based principles"。这句话不是营销词——它指向一个事实:建筑的温度演化本质上是一个常微分方程(ODE)。Neural ODE 之所以在 HVAC 上好用,正是因为它的结构和这个物理 ODE 同形。
这一课给你两件东西:① 这个物理 ODE 的具体形式(热 RC 网络模型),它是第 5 课 PINN 正则化的"物理项"来源;② 一个规则 / PID 基线控制器,作为后面 Neural ODE 预测和 RL 控制的对标基准——没有基准,你不知道自己进步了多少。
一、建筑热演化是一个 ODE
把一个房间想成一个"热容"(电容 C)接一堵墙(电阻 R)到室外。这就是电阻-电容类比:电压 ↔ 温度,电流 ↔ 热流,电荷 ↔ 热能。最简单的单区域模型叫 1R1C:
Q_solar (太阳辐射热) Q_int (人员/设备内热) Q_hvac (空调供冷/热)
│ │ │
▼ ▼ ▼
┌──────────────────────────────────────────────┐
│ T_z (区域空气温度) 电容 C_z (热容) │
└──────────────────────────────────────────────┘
│
R_env (墙体/窗户/渗风的等效热阻)
│
▼
T_out (室外温度)
对区域空气列能量守恒,得到:
C_z · dT_z/dt = (T_out − T_z)/R_env + Q_solar + Q_int + Q_hvac
读法:区域温度的变化率,等于"从室外渗进来的热 + 太阳晒进来的热 + 人员设备发的热 + 空调供的热"之和,再除以热容。这就是 dz/dt = f(z, t) 的形态——和 Neural ODE 一模一样。
二、动手做:用这个 ODE 自己仿真一个房间
不依赖 EnergyPlus,先用几十行代码把这个 ODE 数值积分一遍——建立"我对物理有手感"。用 scipy.integrate.solve_ivp。
动手做 3.1 · 用 1R1C 仿真一个房间的温度演化(约 15 分钟)
import numpy as np from scipy.integrate import solve_ivp import matplotlib.pyplot as plt # —— 物理参数(一间隔热一般的办公室,量级参考)—— C_z = 1.0e6 # 区域热容 J/K R_env = 5.0e-3 # 围护结构等效热阻 K/W def zone_rhs(t, T_z, T_out, Q_solar, Q_int, Q_hvac): # 1R1C 右端:dT_z/dt return ((T_out(t) - T_z) / R_env + Q_solar(t) + Q_int(t) + Q_hvac(t)) / C_z # —— 外部扰动(室外温度 + 热源),随时间变 —— T_out = lambda t: 20.0 + 10.0 * np.sin(2*np.pi*t/24) # 日变化 10~30°C Q_solar = lambda t: 2000.0 * max(0.0, np.sin(2*np.pi*(t-6)/24)) # 白天有日照 Q_int = lambda t: 1000.0 if 9 <= (t % 24) < 18 else 200.0 # 工作时间有人 # —— 基线控制:简单制冷规则(温度>24°C 就供冷)—— T_set, Q_cool_max = 24.0, -5000.0 # 设定 24°C,最大制冷 -5000W def Q_hvac(t, T_z=24.0): if T_z > T_set + 0.5: return Q_cool_max # 过热→满冷 if T_z < T_set - 0.5: return 0.0 # 过冷→停 return 0.0 # 注意:Q_hvac 依赖 T_z(反馈控制),用闭包把当前温度喂进去 def rhs_closed(t, y): T_z = y[0] qh = Q_hvac(t, T_z) return [zone_rhs(t, T_z, T_out, Q_solar, Q_int, lambda t: qh)] sol = solve_ivp(rhs_closed, [0, 48], [22.0], t_eval=np.linspace(0,48,200)) # 画图 plt.plot(sol.t, sol.y[0], label="T_zone") plt.axhline(24.0, ls="--", color="r", label="设定 24°C") plt.xlabel("时间 (h)"); plt.ylabel("温度 (°C)"); plt.legend(); plt.show()
这个 ODE 就是第 5 课 PINN 损失里 zone_rhs(...) 那一项的来源。先在这儿把它摸熟。
三、规则 / PID 基线:你必须打过的"假想敌"
BrainBox 自称比传统控制节能 25%。那"传统控制"是什么?就是今天 90% 楼宇在跑的东西:规则控制(死区 / 时间表)和 PID 控制。你要复刻 BrainBox,就得先有一个可量化对比的基线,否则"节能 25%"无从谈起。
规则控制(上一步已经写了)
上面动手做里的 Q_hvac(t, T_z) 就是一个最简规则控制器:温度高于设定+死区就满功率制冷,低于设定-死区就停。业内叫砰-砰控制(bang-bang)或带死区的开关控制。简单、鲁棒,但没有前瞻——它只在温度已经越界后才反应。
PID 控制:行业事实标准
PID = 比例 + 积分 + 微分。它根据"当前偏差 + 累积偏差 + 偏差变化率"算一个连续控制量,比砰-砰平滑得多,是 BMS 里 AHU / 冷冻水回路的事实标准。
class PID: def __init__(self, kp=2000.0, ki=200.0, kd=50.0, setpoint=24.0): self.kp, self.ki, self.kd = kp, ki, kd self.setpoint = setpoint self._i, self._prev_err = 0.0, 0.0 def step(self, T_z, dt=900.0): # dt=900s = 15min 控制周期 err = self.setpoint - T_z # 负=太热,需要制冷 self._i += err * dt d_err = (err - self._prev_err) / dt self._prev_err = err u = self.kp*err + self.ki*self._i + self.kd*d_err return np.clip(u, -5000.0, 0.0) # 限到制冷区间 [-5000,0] W
四、白箱 vs 黑箱 vs BrainBox 的灰箱
这三者不是非此即彼,而是光谱。BrainBox 的聪明之处在于站在中间:
| 路线 | 模型形态 | 优点 | 缺点 |
|---|---|---|---|
| 白箱(传统 MPC) | 全物理方程 + 实测参数 | 可解释、外推稳 | 需暖通专家,每栋楼重建模 |
| 黑箱(纯深度学习) | LSTM/MLP,只啃数据 | 无需物理,部署快 | 要海量数据,物理上可能"胡说" |
| 灰箱(BrainBox) | Neural ODE 结构对齐物理 + 物理损失正则 | 数据少、物理一致 | 实现复杂、训练慢 |
关键点:Neural ODE 的结构本身就是一种物理先验——它假设状态演化服从某个连续时间 ODE,这正好匹配热力学。再加 PINN 把已知的热方程当损失项,就进一步压缩了"需要数据来学的部分"。这就是 BrainBox "integrating physics-based principles with black box deep learning" 的真正含义,也是它自称"少数据、更准"的机制根源。
1. 建筑温度演化服从一个热 ODE(1R1C:C_z·dT/dt = (T_out−T_z)/R + Q_solar + Q_int + Q_hvac),形态上和 Neural ODE 同构——这是后者好用的物理根基。
2. 你有了一个可跑的物理仿真(几十行 scipy),和两个可量化基线(规则控制 + PID)。后面所有方法的节能率,都对标这俩。
3. BrainBox 是灰箱:结构对齐物理(Neural ODE)+ 损失注入物理(PINN)。这正是第 4、5 课的主线。
BrainBox 自称"少数据、更准",机制上最可能的来源是什么?
对了。模型大小不是关键;关键是归纳偏置。Neural ODE 假设状态演化是连续 ODE(匹配热力学),PINN 再把已知热方程当软约束——这两层物理先验大大压缩了"需要数据来学的空间",所以更少数据也能学准。DreamerV3 是 MBRL,和 BrainBox 无关(第 1 课已定调)。
- 建筑热 RC 网络综述(Ramallo-González 2013):sciencedirect.com/…/S0378778813000315
- RC 模型算例(Bagheri 2015):sfu.ca/~mbahrami/…
- Neural ODE 论文(Chen 2018):arxiv.org/abs/1806.07366
- 研究材料对标:world-model-research.md §6.4.3 / §6.5