为建筑物的供暖系统实施MPC控制器的小型项目(Matlab代码实现)

这篇具有很好参考价值的文章主要介绍了为建筑物的供暖系统实施MPC控制器的小型项目(Matlab代码实现)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

​目前,我国较为先进的供热系统对二级管网进行平衡调节,并通过安装在散热器上的手动调节阀、温控阀调节水流量,从而改变室温。但供暖期间大多数用户不能合理、及时调节温控装置,导致部分建筑室温分布不均甚至出现开窗散热的现象,供暖能耗浪费严重。因此,通过采用室温控制技术维持室温稳定,可保证房间的热舒适性,减少开窗散热等无效热损失,从而实现高效费比节能。 

这个项目为一栋建筑的供暖系统实现了MPC控制器。本文设计了一个MPC控制器,以最大限度地降低运行的总成本,同时考虑到天气的预测,并研究了额外储热的影响。

本项目需要多次模拟(3次以内)。可以减少问题的范围(但在合理的范围内)或采样时间。大多数情况下,计算器的性能比较重要。

📚2 运行结果

为建筑物的供暖系统实施MPC控制器的小型项目(Matlab代码实现)

为建筑物的供暖系统实施MPC控制器的小型项目(Matlab代码实现)

为建筑物的供暖系统实施MPC控制器的小型项目(Matlab代码实现)

为建筑物的供暖系统实施MPC控制器的小型项目(Matlab代码实现)

为建筑物的供暖系统实施MPC控制器的小型项目(Matlab代码实现)

为建筑物的供暖系统实施MPC控制器的小型项目(Matlab代码实现)

为建筑物的供暖系统实施MPC控制器的小型项目(Matlab代码实现)

为建筑物的供暖系统实施MPC控制器的小型项目(Matlab代码实现)

主函数部分代码:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%              MPC -- Mini Project             %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
​
clc;
close all;
​
yalmip('clear');
clear all;
​
%% Model data
​
load building.mat;
load battery.mat;
​
%
 Parameters of the Building ModelA = ssM.A;
Bu = ssM.Bu;
Bd = ssM.Bd;
C = ssM.C;
Ts = ssM.timestep;
​
% Parameters of the Storage Model
a = ssModel.A;
b = ssModel.Bu;   
​
% Installation Test
yalmip('version')
sprintf('The Project files are successfully installed')
​
% Other parameters
nx = length(A); %number of states
ny = size(C,1); %number of outputs
nu = size(Bu,2); %number of inputs
nd = size(Bd,2); %number of disturbances
​
umax = 15*ones(nu,1); umin = 0*ones(nu,1); %input constraints
ymax = 26*ones(ny,1); ymin = 22*ones(ny,1); %output constraints
​
vmax = 20; vmin = -20;
xbmax = 20; xbmin = 0;
​
%% Controller Design (Setting-up MPC optimizer)
​
figure,
subplot(1,2,1),
stairs(refDist(2:3,:)'); %
plot two of disturbance inputslegend(ssM.disturbance(2:3));
xlabel('Step-Time: 20min');
ylabel('Disturbances (kW)');
subplot(1,2,2),
stairs(refDist(1,:)'); %plot one of disturbance inputs
legend(ssM.disturbance(1));
xlabel('
Step-
Time:
20
min
');
ylabel('
Disturbances (C)
');
​
savefig('
disturbances.fig
'); %save figure
disp('
Click on Enter to continue with the Section 
1
.
'); pause;
%% Section 1: tracking MPC
​
%define objective parameters
param_objective.R = eye(ny); %cost weight
param_objective.yref = [24 24 24]'
; %reference outputs​
%define constraints matrix
param_constraints.Mu = [eye(nu); -eye(nu)];
param_constraints.My = [eye(ny); -eye(ny)];
param_constraints.mu = [umax; -umin];
param_constraints.my = [ymax; -ymin];
​
%Determine the influence of the horizon length on the MPC scheme
param_simulation.horizon_lengths = [4, 15, 30, 50, 72, 90]; %arbitrary values of horizon length
tuning_horizon_length(ssM, param_constraints, param_objective, param_simulation, refDist);
​
%define simulation parameters
param_simulation.N = 72; %prediction horizon chosen - 1 day = 72*20min
param_simulation.T = size(refDist,2)-param_simulation.N; %simulation length in time-steps
​
%run tracking MPC with no night-setbacks and no variable cost
[xt, yt, ut, t] = trackingMPC(ssM, param_constraints, param_objective, param_simulation);
​
%display total economic cost
total_cost = 0.2*sum(ut(:));
sprintf('Total economic cost: $%d', total_cost)
​
disp('Click on Enter to continue with the Section 2.'); pause;
%% Section 2: economic MPC and soft constraints
​
%
define other objective parametersparam_objective.c = 0.2; %fixed electricity price
param_objective.S = 50*eye(ny); %economic cost weight
​
%run economic MPC with no night-setbacks and no variable cost
[xt, yt, ut, t, total_cost] = economicMPC_sc(ssM, param_constraints, param_objective, param_simulation);
​
%display total economic cost
sprintf('Total economic cost: $%d', total_cost)
​
disp('Click on Enter to continue with the Section 3.'); pause;
%% Section 3: economic, soft constraints, and variable cost
​
%
run economic MPC with variable cost, but no night-setbacks[xt, yt, ut, t, total_cost] = economicMPC_sc_vc(ssM, param_constraints, param_objective, param_simulation);
​
%display total economic cost
sprintf('Total economic cost: $%d', total_cost)
​
disp('Click on Enter to continue with the Section 4.'); pause;
%% Section 4 : Night setbacks
​
%
run economic MPC with variable cost 
and
 night-setbacks[xt, yt, ut, t, total_cost] = economicMPC_sc_vc_sb(ssM, param_constraints, param_objective, param_simulation);
​
%display total economic cost
sprintf('Total economic cost: $%d', total_cost)
​
disp('Click on Enter to continue with the Section 5.'); pause;

🎉3 参考文献

[1]张冬冬,王淳,代伟,罗策恒,刘梓宁,武新章.居民区多能源管理模型与优化调度策略分析[J/OL].电力系统及其自动化学报:1-13[2023-05-27].

部分理论引用网络文献,若有侵权联系博主删除。文章来源地址https://www.toymoban.com/news/detail-471609.html

🌈4 Matlab代码实现

到了这里,关于为建筑物的供暖系统实施MPC控制器的小型项目(Matlab代码实现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 建筑物面片分割实验之RANSAC(实验一)

    在关于建筑物点云处理方面,一般流程都是: 1、从原始点云中分类得到完整建筑物点云 2、依次对单个建筑物进行面片分割 3、提取建筑物的特征点和特征线 4、建筑物进行三维建模 在建筑物的面片分割方面,常用的方法有区域生长和RANSAC,二者都是基于建筑物通常都是由多

    2023年04月08日
    浏览(7)
  • AI:128-基于机器学习的建筑物能源消耗预测

    AI:128-基于机器学习的建筑物能源消耗预测

    🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲

    2024年02月20日
    浏览(13)
  • PCL 建筑物点云立面和平面分割提取

      在建筑物点云中,立面点和平面点的法向量存在明显的差异,根据法向量在Z方向的分量设置相应得阈值即可实现立面点与平面点的分割。

    2024年02月06日
    浏览(14)
  • 【ArcGIS微课1000例】0088:计算城市建筑物朝向(矩形角度)

    【ArcGIS微课1000例】0088:计算城市建筑物朝向(矩形角度)

    矩形要素具有长轴和短轴,其长轴方向也称为矩形面的主角度,可用于确定面要素的走向趋势。根据该方向参数,可以对具有矩形特征的地理对象进行方向分析,且适用于很多应用场景,如城市建筑的朝向等。本实验讲述使用ARCGIS软件计算矩形的长轴方向。 加载配套实验数据

    2024年01月19日
    浏览(17)
  • AI:101-基于深度学习的航空影像中建筑物识别

    🚀 本文选自专栏:人工智能领域200例教程专栏 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的核心代码,详细讲解供大家学习,希望可以帮到大家。欢迎订阅支持,

    2024年02月04日
    浏览(11)
  • Cesium-建筑物模型shp数据转3dtile数据

    Cesium-建筑物模型shp数据转3dtile数据

            记录一下 cesium 加载3dtile格式的建筑物模型文件,数据由shp数据通过官方工具 CesiumLab 转换3dtile数据 ,文章末附链接  直接记录操作-         工具用的CesiumLab v3.0.7 1-shp数据文件       2-工具操作    数据有高度字段的可选⬇  pak为地形高程文件   3- 完成上述操作

    2024年02月07日
    浏览(15)
  • vue html 百度地图3D楼 建筑物上颜色 修改颜色

    vue html 百度地图3D楼 建筑物上颜色 修改颜色

    先看效果图: 引入GL版 JS部分: 用mapvgl.ShapeLayer给3D楼上颜色,实际上就是创建一个3D物体 覆盖原来的物体 coordinates参数为多边形物体的经纬度,比如: 这个建筑, 6个经纬度 按顺序 链接成一个图形,再设置图形的高度 就完成了

    2024年02月16日
    浏览(30)
  • 利用ArcGISPro/GeoScenePro从激光雷达数据中提取 3D 建筑物

    利用ArcGISPro/GeoScenePro从激光雷达数据中提取 3D 建筑物

            在本课程中,您将从激光雷达数据中提取信息。 激光雷达(激光探测及测距)是一项遥感技术,它利用激光对地球表面进行密集采样,以产生高精度的 x, y, z 点测量。 这些点的集合称为点云。         要从激光雷达数据中提取 3D 建筑物形状,您首先需要对点

    2024年04月26日
    浏览(9)
  • 建筑物矢量shp转3Dtiles介绍--CesiumLab3

    建筑物矢量shp转3Dtiles介绍--CesiumLab3

    它主要有以下功能: 数据切片 地形切片,DEM 点云切片 实例模型切片 倾斜摄影模型切片 通用模型切片,Ma、Max、Skp、Blend等 数据转换 三维模型转换 BIM模型转换 倾斜模型转换 服务发布 影像服务发布 地形服务发布 3DTiles服务发布 模型库 在线展示调试 在线预览 实时改变参数

    2024年02月07日
    浏览(12)
  • 论文阅读:基于深度学习的大尺度遥感图像建筑物分割研究

    论文阅读:基于深度学习的大尺度遥感图像建筑物分割研究

    一、该网络中采用了上下文信息捕获模块。通过扩大感受野,在保留细节信息的同时,在中心部分进行多尺度特征的融合,缓解了传统算法中细节信息丢失的问题;通过自适应地融合局部语义特征,该网络在空间特征和通道特征之间建立长距离的依赖关系; 二、分割网络:边

    2024年02月15日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包