注:该内容由“数模加油站”原创,无偿分享,可以领取参考但不要利用该内容倒卖,谢谢!
B 题 空气源热泵供暖的温度预测
问题1 统计所给不同建筑的室内温度波动规律;绘制室内外温度相关性曲线, 分析热泵能耗与温差的定量关系;分析影响室内温度的影响因素。
问题 1 分析
本题第一问旨在:揭示室内温度波动规律,定量建立能耗(热泵功率)与温差之间的数学关系。其中“能耗建模”部分是核心任务,需在真实数据基础上完成参数拟合与公式构建,而该建模任务具有如下特性:
- 多因素输入(供温、回温、内外温差);
- 非线性结构(平方项、绝对值等);
- 无法显式解析求解最优系数;
- 训练数据包含噪声波动与非高斯扰动。
传统的最小二乘法在此类问题中存在收敛性差、局部极小值困扰的缺陷。因此,引入粒子群优化算法(PSO),作为一种无需梯度信息、具备全局搜索能力的黑箱优化工具,是解决该问题的合适选择
解题思路:
1. 建模目标结合:热泵能耗建模为何需要优化算法?
在热泵系统中,功率消耗 P(t) 由水泵输出热量、温差驱动程度、建筑散热损耗等因素共同决定。
我们试图建立如下经验回归模型:
这个表达式体现以下物理逻辑:
:表示供回水温度差导致的热力输送功率;
:表示建筑围护结构上的热传导压力;
:基础设备运行损耗或常数扰动。
上述模型结构在变量空间中呈现非线性、非凸结构,且公式中含有平方和绝对值函数,难以通过解析回归求出最优的 a, b, c 参数。
2. PSO解的本质意义:构造优化目标函数
我们把“使模型预测功率最接近实际功率”的目标形式化为最小均方误差(MSE):
:水回路供回水温差;
:室内外温差;
:实际测得的功率;
:模型预测功率。
该函数是 PSO 的“适应度函数”,即每个粒子的适应度由其对应 (a, b, c) 所生成的预测误差来衡量。
3. PSO在本题的应用过程(按热泵供暖任务组织)
(1)变量选取与归一化处理
将输入数据集中提取以下字段:
实际供水温度
实际回水温度
室内测点温度(取多个传感器平均)
环境温度
实际功率 P(t)
归一化处理这些变量,使搜索过程稳定不受量纲影响。
(2)粒子初始化与搜索空间设定
我们为每个粒子分配一个三元组 (a, b, c),搜索空间建议设置为:
:反映单位温差对功率的影响;
:室外寒冷程度对能耗的直接影响;
:系统常值扰动(如泵的待机能耗)。
粒子数量设定为 30–50,迭代次数设定为 100–200,平衡全局探索与局部收敛。
(3)迭代搜索与参数拟合
粒子群在上述空间中搜索最优参数组合,使损失函数最小。每一轮迭代中:
粒子根据自身历史最优位置与全局最优位置调整速度;
更新参数 (a, b, c);
重新计算预测值与损失,更新最优记录;
最终收敛到一组全局最优拟合参数。
(4)模型输出与评估
得到最优参数后,将其代入模型进行回代预测,生成:
拟合曲线 ;
与 的对比图;
计算误差指标(RMSE, MAE, )评估拟合精度。
Python代码:
import numpy as np
import pandas as pd
from pyswarm import pso
# 加载数据
df = pd.read_excel("Data")
# 提取变量
T_in = df['室内温度'].values
T_out = df['室外温度'].values
Q_in = df['功率'].values # 假设功率代表供热输入
T_real = T_in[1:] # 预测目标
T_in = T_in[:-1]
T_out = T_out[:-1]
Q_in = Q_in[:-1]
# 模型函数
def heat_model(x, T_in, T_out, Q_in):
alpha, beta = x
return (1 - beta) * T_in + beta * T_out + alpha * Q_in
# 损失函数
def loss(x, T_in, T_out, Q_in, T_real):
T_pred = heat_model(x, T_in, T_out, Q_in)
return np.mean((T_pred - T_real)**2)
# 运行PSO优化
lb = [0.001, 0.001]
ub = [1.0, 1.0]
best_params, fval = pso(loss, lb, ub, args=(T_in, T_out, Q_in, T_real))
print("最优参数 α, β:", best_params)
后续都在“数模加油站”......