首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Pyomo或cvxpy预测建筑物的功率(模型预测控制)

使用Pyomo或cvxpy预测建筑物的功率(模型预测控制)
EN

Stack Overflow用户
提问于 2019-07-31 10:03:20
回答 1查看 1.2K关注 0票数 2

我有外部温度的数据8,2,10,13 ..我有我的建筑的热惯性(8h)。其中一个限制是把我的大楼的内部温度保持在20度以内。

我们从平衡开始,我们说T_in = 20,T_o = 20,但T_o在一小时内= 18,所以Delta_T_o = 18,损失以度=2/惯性= 0.22K /h为单位。

因此,我们有一个T_in = 20-19.78,所以功率必须通过应用以下函数来使T_in保持在20,即功率= Delta_T (输入-输出)*U (W / m2.K) *建筑面积(m2) U是传热。假设U=3,建筑面积= 1900次方= 10146 W。

我的功能的目的将是最小化我的锅炉的功率,根据T_o的变化和保持T_in在20。

查看图表,以更好地可视化目标。

我想使用Pyomo或cvxpy,但我不知道如何做这个MPC (模型预测控制)

EN

回答 1

Stack Overflow用户

发布于 2019-08-27 17:26:19

洛根·比尔在Python (以及机器学习、优化)中从热切的NSF赠款开发了GEKKO包,这可能对您的问题很有用。

pip install gekko

下面是一个温控实验室,它教我们如何进行建模、估计和控制。应用程序的第一步可能是执行系统标识以获得动态关系的时间序列模型:

  1. 外界温度和内部温度(扰动模型)
  2. 功率输入和内部温度(控制模型)

下面是一个具有两个加热器和两个温度的Python脚本示例:

代码语言:javascript
运行
复制
from gekko import GEKKO
import pandas as pd
import matplotlib.pyplot as plt

# load data and parse into columns
url = 'http://apmonitor.com/do/uploads/Main/tclab_dyn_data2.txt'
data = pd.read_csv(url)
t = data['Time']
u = data[['H1','H2']]
y = data[['T1','T2']]

# generate time-series model
m = GEKKO(remote=False) # remote=True for MacOS

# system identification
na = 2 # output coefficients
nb = 2 # input coefficients
yp,p,K = m.sysid(t,u,y,na,nb,diaglevel=1)

plt.figure()
plt.subplot(2,1,1)
plt.plot(t,u)
plt.legend([r'$u_0$',r'$u_1$'])
plt.ylabel('MVs')
plt.subplot(2,1,2)
plt.plot(t,y)
plt.plot(t,yp)
plt.legend([r'$y_0$',r'$y_1$',r'$z_0$',r'$z_1$'])
plt.ylabel('CVs')
plt.xlabel('Time')
plt.savefig('sysid.png')
plt.show()

您可以替换输入数据u和输出数据y以标识应用程序的模型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57288193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档