Contents — find the section you need
Change parameters and verify
Open the panel, then press Run to load Python. You can stop execution and reset parameters. Results are computed on this device. No Python installation is required.
Local execution steps below are optional for reproducing the source results; they are not required for the browser experiment.
The experiment controls are in English.
三个浏览器实验
上方的面板运行的是热平衡模型。可以更改 LED 负荷、制冷散热能力、室外平均温度、通风量和制冷设定值。湿度和二氧化碳作为独立模型在下方的面板中运行。无需安装 Python;本文后面给出的本地运行说明为可选内容。
三者都保留了原始的合成输入,并从午夜起以 60 秒为显式步长运行 24 小时。灯光从 08:00 开到 24:00。上方图表连接的是每小时的初始采样点,而非完整的切换过程或极值历史;最小值/最大值指标使用每一分钟的数据。热力学模型中每小时的室外采样点沿用原始代码的取值方式,即取整点前一分钟的数值。下方柱状图显示每日累计量。通风为正值表示净向外传输;为负值表示向内传输。请使用 A/B 对比、表格和共同条件来检查结果。
热力学常数:热容 12 MJ/K,围护结构 UA 值 450 W/K,其他发热 800 W,初始温度 22°C,室外温度振幅 6°C,峰值出现在 15:00。制冷在设定值 ±0.5°C 处切换。所有 LED 功率都会转化为热量。制冷的热量千瓦时不是耗电量。
湿度常数:300 m³,24°C,初始相对湿度 65%,除湿机在 75% 时开启、65% 时关闭。超出饱和的多余水分被单独计为凝结水。蒸腾量为给定值,而非由相对湿度推算而来。潜热负荷不是耗电量。同时假设室外空气也处于 24°C。
二氧化碳常数:300 m³,24°C,101325 Pa,初始浓度 600 ppm,补充在 700 ppm 时开启、900 ppm 时关闭。原始简化模型假定吸收仅发生在光照期间、呼吸仅发生在黑暗期间。浏览器版限制通风量 ≥0.03 m³/s、吸收量 ≤0.08 kg/h,以在所展示的范围内保持二氧化碳浓度非负。这些是教学用的限制条件,不是作物、通风或安全标准。
这些模型彼此并未耦合:湿度/二氧化碳模型使用的温度并不来自热力学模型。它们不预测设备适用性、真实设施性能或作物产量。原始 ZIP 文件和预期结果保持不变。请将每个浏览器入口点、内核和配置文件一起保存,以便在本地复现默认结果。
thermal: experiment.py · thermal_kernel.py · config.json
moisture: experiment.py · moisture_kernel.py · config.json
co2: experiment.py · co2_kernel.py · config.json
种植室热平衡实验室——分开处理 LED、通风、围护结构和制冷
从结果开始
在合成的 24 小时内,室温范围为 18.884–24.547°C。LED 为室内边界增加了 192.0 kWh 的热量,制冷则移除了 184.333 kWh 的热能。这些既不是测量值,也不是从真实室内农场识别出的参数,而是用于检验热量输入、输出和累积是否遵循同一套一致能量台账的教学输入。
| 变更 | 预期效果 | 保持不变的条件 |
|---|---|---|
| LED 功率减半 | 照明发热减半;制冷负荷降低 | 天气与围护结构 |
| 热容加倍 | 温度变化变慢 | 稳态平衡 |
| 增加通风量 | 根据室内外温差增加交换量 | 围护结构 UA 值 |
| 将制冷能力设为零 | 没有设备抑制温度上升 | LED 发热 |
CEA 概述定义了植物-环境-设备边界,VPD/DLI 实验室则从观测值中推算出相关量。这一步则构建了将设备与室温连接起来的最小动态模型。
图示:Duskcoil。一个集总参数单区模型的示意计算边界。植物、湿度、二氧化碳、潜热和空间温度梯度均不在此模型内。
先加总热流速率,再更新温度
假设一个完全混合的分区,有效热容为 C [J/K],室温为 T [°C]。将每一项热流速率都用瓦特(J/s)表示:
使用 K=UA+\rho c_p\dot V [W/K]。围护结构被汇总为 UA,而 \rho c_p\dot V 代表来自室外通风的显热交换。当室外更暖时,T-T_{out} 为负值,此项会向室内增加热量。它的方向取决于温差,并不总是热量损失。
俄克拉荷马州立大学推广部的温室指南同样将供暖能力与暴露面积、隔热性能以及室内外温差联系起来,并解释了通风在温度和湿度控制中的作用。美国能源部关于建筑能耗模拟的概述描述了围护结构、照明、暖通空调、时间表和天气基于物理原理的组合方式,包括它们之间的相互作用。
确定教学边界
| 量 | 合成值 | 在本模型中的含义 |
|---|---|---|
| 热容 C | 12 MJ/K | 空气和室内质量的虚构汇总值 |
| 围护结构 UA | 450 W/K | 墙壁和天花板合并为一个值 |
| 通风量 \dot V | 0.08 m³/s | 与室外温度空气的显热交换 |
| LED 功率 | 12 kW,08:00–24:00 | 最终在此边界内转化为热量 |
| 其他发热 | 0.8 kW | 水泵、风机和设备的恒定汇总值 |
| 制冷能力 | 14 kW | 开启时移除的热量,而非耗电功率 |
| 室外温度 | 21±6°C | 正弦波动,峰值在 15:00 |
光首先到达叶片和表面,然后才降解为热量。由于该模型不区分辐射、对流或植物质量,基线假设将电照明在室内边界内的发热比例设为 1.0。美国能源部的照明指南同样将照明视为影响制冷负荷的室内得热来源。真实边界还需考虑离开房间的辐射、远程驱动器以及用于蒸发的潜热。
14 kW 的制冷值是热量移除量,而非压缩机耗电量。此处未假设任何能效比(COP),因此该结果不能直接换算成电费。
以一分钟为步长进行积分
显式欧拉法将状态从 n 推进到 n+1:
制冷使用 24°C 设定值和 0.5°C 滞环:达到或超过 24.5°C 时开启,降到或低于 23.5°C 时关闭。这只是一个最简单的切换规则,不是 PID 或 MPC。更大的时间步长会改变切换时间和温度波动幅度,因此在信任数值结果之前应先比较不同步长。
运行代码并输入
解压实验 ZIP 文件,并在该目录内运行以下命令。它需要 Python 3.10+ 及标准库;不使用网络访问。
python3 experiment.py config.json > result.json
python3 -m unittest -v
参见 config.json、expected.json,以及完整的 experiment.py。manifest.json 记录了输入约定和 SHA-256 哈希值。
conductance = envelope_ua + air_density * air_cp * ventilation
net_heat = led_heat + other_heat - conductance * (indoor - outside) - cooling
indoor_next = indoor + net_heat * dt / thermal_capacitance
更改、破坏并验证
- 将
led_power_w设为 6000。LED 发热变为 96 kWh,制冷移除量应随之下降。 - 将
thermal_capacitance_j_per_k加倍。短期温度变化变慢,而以 kWh 计的源能量保持不变。 - 将室内外温度都设为 20°C,并将所有得热、制冷、通风和 UA 值设为零。一小时后室温必须仍保持在 20°C。
- 增大
time_step_seconds并比较极值。当结果强烈依赖于数值步长时,不要声称这是控制性能。 - 删除某个键,添加一个未知键,或输入 NaN 或负的容量值。程序应当拒绝,而不是自行猜测。
十项测试涵盖了基线、零通量守恒、一阶解析解、比例式 LED 加热、能量残差和格式错误的输入。通过这些测试并不能验证某个真实设施。
该模型无法回答的问题
- 叶片温度、蒸腾、除湿潜热、湿度或 VPD
- 二氧化碳浓度和通风的物质平衡
- 层架间梯度、气流短路或传感器布置
- 暖通空调部分负荷效率、除霜、风机或水泵耗电
- 作物生长、品质、产量或最适温度
后续的湿度扩展模型应在保留热能残差检验的同时,加入水汽守恒和潜热。在比较控制器之前,须明确哪些系数是实测得到的,哪些输出被用于辨识。
参考资料
- About Building Energy Modeling (U.S. Department of Energy)
- Chapter 5: Lighting, HVAC, and Plumbing (U.S. Department of Energy)
- The Hobby Greenhouse (Oklahoma State University Extension)
种植室湿度平衡实验室——守恒的是水汽质量,而不是相对湿度
从结果开始
对于一个固定在 24°C 的合成 300 m³ 房间,24 小时的计算结果为 64.817–75.269% 相对湿度、34.8 kg 给定的植物蒸腾水汽、12.793 kg 净通风移除量以及 21.542 kg 除湿机移除量。水量平衡残差保持在 10^{-12} kg 以下。这些是教学输入,不是实测的作物蒸腾量或设施性能数据。
图示:Duskcoil。合成、充分混合且温度固定;相对湿度本身并未作为一个守恒状态量被积分。
不要直接对百分比做加减
相对湿度是相对于当前温度下饱和值的比率。因此,同样的水汽质量在温度变化时会产生不同的相对湿度。应改为储存水汽质量 m_v [kg]:
使用 \rho_v=e/(R_vT_K) 及 e=RH\,e_s(T)/100,其中饱和关系采用 FAO-56 公式 11。超出饱和的水汽会被显式转移为凝结水,而不是静默地对相对湿度做截断处理。
合成边界
| 输入 | 数值 | 适用范围 |
|---|---|---|
| 室内/室外温度 | 固定 24°C | 无动态热耦合 |
| 初始/室外相对湿度 | 65% / 60% | 换算为 24°C 下的密度 |
| 通风量 | 0.08 m³/s | 充分混合的净交换 |
| 水汽来源 | 光照期 2.0,黑暗期 0.35 kg/h | 给定值,非作物模型 |
| 除湿量 | 2.5 kg/h | 水分移除量,非耗电量 |
| 开/关阈值 | 75% / 65% | 简单滞环 |
宾夕法尼亚州立大学推广部将凝结、湿度、通风和空气流通视为相互关联的温室管理事项。本实验室并不预测病害。
从水质量读取潜热负荷
使用 20°C 附近的 FAO 近似值 \lambda=2.45 MJ/kg,合成的 34.8 kg 水汽来源对应 23.683 kWh 的相变能量。这一潜热负荷与 LED 发热和显冷不同。由移除水量推算出的潜热负荷不是压缩机耗电量;能效比和除湿机排热均不计入其中。
运行并验证
解压 ZIP 文件,用 Python 3.10+ 运行:
python3 experiment.py config.json > result.json
python3 -m unittest -v
该软件包提供 config.json、expected.json 和 experiment.py。十项测试涵盖相对湿度-密度互换、密闭房间守恒、已知水汽来源、潜热换算以及被拒绝的输入。
逐一更改通风、除湿和蒸腾。也可以在保持水汽质量不变的情况下改变温度,观察相对湿度的变化。该模型无法回答叶片凝结、局部气流、响应式蒸腾、病害、生长或二氧化碳等问题。传感器布置以及对蒸腾量和收集凝结水的独立测量,是进行真实辨识的前提条件。
参考资料
种植室二氧化碳平衡实验室——追踪通风、吸收、呼吸和补给
从结果开始
对于一个固定在 24°C、101325 Pa 的合成 300 m³ 房间,二氧化碳浓度在 24 小时内的范围为 600–906.209 ppm。给定的吸收量为 1.28 kg,呼吸增加 0.16 kg,补给增加 2.967 kg,通风净移除 1.756 kg。摩尔平衡残差保持在 10^{-10} mol 以下。这些不是作物或设备性能的测量数据。
图示:Duskcoil。一个在固定温度和压力下、充分混合的理想气体模型。
守恒的是量,而不是 ppm
设整个房间的空气量为 n_{air}=PV/(RT) mol,储存的二氧化碳为 n mol,则 ppm=10^6n/n_{air}:
通风量取决于室内外浓度差和摩尔气流量。改变温度、压力或体积会改变同样的二氧化碳量所对应的 ppm 数值。
俄克拉荷马州立大学推广部将白天的光合利用、夜间呼吸、通风和补给联系了起来。一项美国农业部农业研究局的计算同样用温室体积和假定吸收量来估算浓度消耗。本实验室的通量为合成值,并不能重现产量效应或推荐设置。
运行并验证
解压 ZIP 文件,然后使用 Python 3.10+:
python3 experiment.py config.json > result.json
python3 -m unittest -v
该软件包包含 config.json、expected.json 和 experiment.py。补给在 700 ppm 时开启,900 ppm 时关闭。八项测试涵盖密闭房间守恒、已知的单摩尔来源、平衡残差和无效输入。
逐一将通风、吸收和补给设为零。真实的辨识工作需要冠层气体交换、泄漏、传感器布置/校准以及补给流量测量。该模型无法确定安全限值、作物响应、燃烧污染物、二氧化碳成本或温湿度联合控制。

评论
请先登录。
暂无数据。