You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于能耗优化的商场通风系统MPC实现技术问询

商场MPC能耗优化建模问题

背景与目标

我们是特罗姆瑟的三名本科生,正在撰写学士学位论文,主题是在本地商场实现MPC(模型预测控制),核心目标是通过能耗优化维持室内温度。目前卡在输入变量与目标函数的正确定义上。

输入数据来源

  • 实时传感器数据:来自Bechoff IPC的pyads服务器
  • 预测数据:未来12小时的室外温度数组
  • 待整合数据:24小时电价数组、建筑内人数数据(暂未加入模型,优先搭建基础框架)

系统方程

通风系统温度约束方程

T5_max = T1 + n1*(T3-T1)
T6_max = T5_max + n2*((V*rho*C_water)*n2*(T8-T7))/V_flow
T2_max = T5_max + T6_max + (n3 * V*rho*C_air*(T5-T1))/(V_flow * rho * C)
T5_min = T6_min = T2_min = T1

其中:

  • n1、n2、n3为效率常数
  • 所有T类变量为实时传感器数据
  • V_flow为常数

商场室内温度动态方程

sum(T3)dT/dt = (T3 - (UA*(T3-T1))/V*rho*C_air + ((T2-T3) * V_flow/Volume) dt
T_room = T3 + (sum(T3)dT/dt)

其中UA与Volume为已知常数。

需求说明

我们需要设置t5、t6、t2的最优温度,满足:

  1. 室内温度T_room维持在18-24℃范围内
  2. 实现成本最优(系统按E1→E2→E3顺序消耗能源,需结合12个时段的电价数组)

当前尝试的问题代码

以下代码仅用常量模拟,变量定义与上述方程不符,参考了APMonitor示例:

#Væskebatteri
NomEff_E2 = m.Param(value=50)   

#Gjenvinner 
n1 = 0.8
#E1 = VolumFlow*rho_luft*Cv_luft*(T5-uteTemp)

# Parameters
Volum = m.Const(value=39000) #m^3
VolumFlow = m.Const(value=5) #m^3/s
rho_luft = m.Const(value=1.2) #kg/m^3
rho_vann = m.Const(value=1000) #kg/m^3
Cv_vann = m.Const(value=4.18) #kJ/kgK
Cv_luft = m.Const(value=1.006) #kJ/kgK
NomEff_El = m.Const(value=100) #KW
T1 = m.Const(value=-10)#C
UA_verdi = m.Const(value=100) #W/C

t5 = m.Var() 
t6 = m.Var() 
t3 = m.Var() 
t2 = m.Var()


t5.value = T1
t6.value = T1
t2.value = T1
t3.VALUE = 18

#lower 
t3.lb = 18
t5.lb = T1
t6.lb = T1
t2.lb = T1

#upper
t5.ub = T1 + n1*(t3-T1)
t6.ub = T1 + n1*(t3-T1) + NomEff_E2/(VolumFlow*rho_luft*Cv_luft)
t2.ub = T1 + n1*(t3-T1) + NomEff_E2/(VolumFlow*rho_luft*Cv_luft)
                        + NomEff_El/(VolumFlow*rho_luft*Cv_luft)
t3.ub = 25

m.Equation(t3.dt == (t3-(UA_verdi*(t3-T1)))/
    (Volum*rho_luft*Cv_luft)+((t2-t3)*(VolumFlow/Volum)))

E1 = m.Param(VolumFlow*rho_luft*Cv_luft*(t5-T1))
E2 = m.Param(VolumFlow*rho_luft*Cv_luft*(t6-t5))
E3 = m.Param(VolumFlow*rho_luft*Cv_luft*(t2-t6))

n2 = m.Const(value = 0.2)
n3 = m.Const(value = 1)
spottpris = m.Const(value = 0.7)
effektledd = m.Const(value=15)

m.Obj((-E1 + E2*n2 + E3*n3)*(spottpris+effektledd))

m.options.IMODE = 3
m.solve(disp=False)
print(t3.VALUE, t5.VALUE, t6.VALUE, t2.VALUE)

请求指导

恳请提供简易实现指导,帮助我们正确定义输入变量、约束方程与目标函数,完成基础MPC模型搭建。


内容的提问来源于stack exchange,提问作者Kneven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 16:32:55