房屋温度控制

案例背景与目标

本案例是一个简洁实用的示例模型库,旨在提供一个可复用、易于理解的参考范例,涵盖以下应用场景:

  • 房间自然温度响应分析
  • 降阶 RC(热阻-热容)房屋热模型建模
  • 简化的制冷执行器性能评估
  • 基于 PID 逻辑的闭环室温控制
  • 可直接在 Sysplorer 中运行的整洁仿真图表

在实现方式上,本案例更注重模型的稳健性与可重复性,而非制冷循环的详细物理细节。可以在 Sysplorer 中使用 Buildings 库工作流直接运行这些模型,无需依赖 EnergyPlus 联合仿真。



目录结构说明

HouseThermalControl/
|-- resources/                      # 资源文件
|   |-- weather/                    # 气象数据
|   |   `-- USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.mos
|   `-- figures/                    # 图表导出目录
|       `-- README.txt
`-- model/                          # 模型源代码(Modelica 包目录)
    |-- package.mo                  # 包定义文件
    |-- package.order               # 包内文件顺序
    |-- HouseThermalRC.mo           # 房屋热模型
    |-- CondensingCoolingSubsystem.mo # 制冷子系统
    |-- HouseCoolingPIDSystem.mo    # PID 闭环控制系统
    `-- Experiments.mo              # 实验案例集合

包名说明
源文件目录名为 model(小写),但在 Modelica 语言中 model 是保留关键字,因此内部包的正式名称为 HouseThermalControl。在 Sysplorer 中打开时,您将看到如下类结构:

  • HouseThermalControl.HouseThermalRC
  • HouseThermalControl.CondensingCoolingSubsystem
  • HouseThermalControl.HouseCoolingPIDSystem
  • HouseThermalControl.Experiments.Experiment_NaturalResponse
  • HouseThermalControl.Experiments.Experiment_RCComparison
  • HouseThermalControl.Experiments.Experiment_CoolingSubsystemPerformance
  • HouseThermalControl.Experiments.Experiment_PIDClosedLoop

各模型功能说明

1. HouseThermalRC — 单区域房屋热模型

基于 Buildings.ThermalZones.ReducedOrder.RC.OneElement 构建的降阶房屋热模型,配合 Modelica.Blocks.Sources.CombiTimeTable 提供内热源随时间变化的剖面。

主要用途:

  • 分析房间自然温度响应(无主动供冷)
  • 研究 RC 参数对热动态的敏感性
  • 为后续控制集成预留外部显热负荷接口

关键输出变量:

  • TRoom – 室内空气温度
  • TOut – 室外空气温度
  • QEnvelope_flow – 通过围护结构传递的热流量
  • QInternal_flow – 内部得热量(人员、设备、照明等)
  • QHeatGain – 总得热量
  • QHeatLoss – 总散热量

2. CondensingCoolingSubsystem — 简化制冷执行器模型

该模型保留了制冷系统与控制分析相关的核心特性,但不包含详细的制冷循环物理过程。

主要组件:

  • Buildings.Fluid.Sources.Boundary_pT – 空气边界条件
  • Buildings.Fluid.Movers.FlowControlled_m_flow – 可调流量风机
  • Buildings.Fluid.HeatExchangers.HeaterCooler_u – 理想冷/热盘管
  • Buildings.Fluid.Sensors.TemperatureTwoPort – 温度传感器
  • Modelica.Blocks.Sources.CombiTimeTable – 室外温度驱动信号

关键输入/输出:

  • 输入 u – 制冷指令(0~1)
  • 输出 QCooling – 实际提供的冷量(负值表示从空气中移除热量)
  • 输出 PEle – 估算的电功率
  • 输出 TSupply – 送风温度
  • 输出 TReturn – 回风温度
  • 输入/输出 TOutdoor – 室外空气温度

3. HouseCoolingPIDSystem — PID 闭环室温控制系统

这是将房屋热模型与制冷子系统集成在一起的完整闭环控制示例,并加入 PID 控制器。

主要组件:

  • 单区域房屋热模型(HouseThermalRC
  • 简化制冷子系统(CondensingCoolingSubsystem
  • PID 控制器(Buildings.Controls.Continuous.LimPID

关键输出变量:

  • TRoom – 室内温度
  • TSet – 设定温度
  • TOut – 室外温度
  • y – PID 控制器输出(制冷指令)
  • QCooling – 冷量
  • PEle – 电功率
  • controlError – 控制误差(设定值 - 测量值)
  • TSupplyTReturn – 送/回风温度

4. Experiments — 可直接运行的实验案例集

该包内包含三个预配置好的仿真案例,您可以立即运行并观察结果。

实验名称 说明
Experiment_NaturalResponse 房间自然温度响应(无制冷)
Experiment_RCComparison RC 参数(热阻/热容)敏感性对比研究
Experiment_CoolingSubsystemPerformance 制冷子系统在不同指令下的性能表现

依赖库说明

本模型库依赖于 Modelica Buildings 库(版本 9.0.0 或更高)。请确保在 Sysplorer 中已正确加载 Buildings 库(通常为 Buildings 包)。若您尚未安装,可从 https://simulationresearch.lbl.gov/modelica/ 下载并加载。

案例中包含了 Buildings 库使用的芝加哥 TMY3 典型气象年文件(位于 resources/weather/),以备未来扩展使用。但在当前 Sysplorer 兼容的实现中,我们使用了一个周期性的室外温度曲线来代替直接读取 TMY3 数据,原因是当前 Sysplorer 加载的 Buildings 快照版本缺少内部 ReaderTMY3 限制类。


在 Sysplorer 中打开模型库的步骤

  1. 启动 Sysplorer 软件。
  2. 加载 Modelica Buildings 库(若尚未加载)。
  3. 加载本示例库:
    通过菜单 File > Open Model/Library File(s) 选择 HouseThermalControl/model/package.mo
  4. 在包浏览器中展开 HouseThermalControl 包。
  5. 双击 HouseThermalControl.Experiments 下的任一实验案例即可打开并运行。

推荐的运行顺序

为了由浅入深地理解模型行为,建议按以下顺序依次运行实验:

  1. Experiment_NaturalResponse — 观察无制冷情况下的自然室温波动。
  2. Experiment_RCComparison — 对比不同热阻/热容参数对温度波动的影响。
  3. Experiment_CoolingSubsystemPerformance — 理解制冷指令与冷量、电功率的关系。
  4. Experiment_PIDClosedLoop — 查看 PID 控制器如何将室温稳定在设定值附近。

关键可调参数说明

房屋热模型参数(HouseThermalRC

参数名 含义与作用
resistanceScale 围护结构热阻缩放因子(越大保温性能越好,室内外热交换越弱)
capacityScale 围护结构热容缩放因子(越大温度变化越慢,热惯性越大)
QInternalGain_nominal 内部显热得热量的名义值(用于缩放内热源时间表)
initialRoomTemperature 仿真起始时刻的室内温度

制冷子系统参数(CondensingCoolingSubsystem

参数名 含义与作用
QCooling_nominal 名义最大制冷量(内部为负值,表示移除热量)
COP_nominal 名义性能系数,用于估算电功率
mAir_flow_nominal 名义送风质量流量
minAirFraction 最小风量比例(防止盘管风量过低)

PID 控制器参数(HouseCoolingPIDSystem

参数名 含义与作用
pidGain 比例增益(决定控制器响应强弱)
Ti 积分时间常数(消除稳态误差)
TSetHigh / TSetLow 初始设定温度值(可分别用于制冷/供热模式)
setpointShiftTime 设定值变更发生的时间点(用于阶跃响应测试)

典型仿真场景与结果解读

1. 房间自然温度响应(Experiment_NaturalResponse

您将观察到:

  • 室温跟随室外气温和内热源的变化而波动;
  • 在白天高温时段,室内温度有明显上升;
  • 无任何主动制冷作用。

建议关注的曲线组合:

  • TRoomTOut — 对比室内外温度趋势
  • QEnvelope_flowQInternal_flow — 理解得热/失热的主要来源

2. RC 参数敏感性对比(Experiment_RCComparison

您将观察到:

  • 增大 capacityScale 会明显减小室温波动幅度,峰值时间后移;
  • 增大 resistanceScale 会减弱室外温度对室温的直接影响;
  • “改善后”的房屋模型对扰动的响应更平缓、更滞后。

建议关注的曲线组合:

  • TRoomBase vs. TRoomImproved — 直观对比改进前后的室温变化

3. 制冷子系统性能评估(Experiment_CoolingSubsystemPerformance

您将观察到:

  • 制冷指令 u 分别为 0.3、0.6、1.0 时,输出的冷量 QCooling 基本呈线性增长(负值更负);
  • 估算电功率 PEle 大致遵循 |QCooling| / COP_nominal 的规律;
  • 送风温度 TSupply 随制冷指令增加而降低。

4. PID 闭环控制响应(Experiment_PIDClosedLoop

您将观察到:

  • 室温在 PID 作用下逐渐趋近初始设定值;
  • 当室温超过设定值时,制冷指令 y 升高,冷量增加;
  • 在设定值阶跃变化后(例如升高设定温度),控制器会减小制冷量,使室温跟踪到新的目标值;
  • QCoolingPEle 的变化趋势与控制器输出一致。

建议关注的曲线组合:

  • TRoomTSetTOut — 评估控制效果与扰动影响
  • yQCoolingPEle — 观察执行器响应

已知假设与简化说明

为了让模型轻量化且易于运行,本案例采用了以下简化处理:

  • 不使用 EnergyPlus 联合仿真。
  • 制冷子系统不是完整的蒸气压缩循环模型,仅为简化工程模型。
  • 制冷电功率通过固定的名义 COP 估算,未考虑部分负荷效率变化。
  • 简化执行器模型中未考虑湿空气动力学和潜热除湿过程。
  • 房屋模型采用单区域降阶 RC 近似,不考虑多个房间之间的传热。
  • 室外气象扰动主要考虑干球温度,未包含太阳辐射、长波辐射等细节。
  • 当前 Sysplorer 兼容版本使用周期性室外温度曲线替代 TMY3 文件直接解析。

版本说明

V0.0.1,2026-04-21 20:14

  • 初始版本

使用许可

本模型库版权由MoHub版权所有,未经许可,不得用于商业用途。