当前位置: 首页 > news >正文

【MPC|云储能】基于模型预测控制(MPC)的微电网调度优化的研究(matlab代码)

目录

1 主要内容

2 程序难点及问题说明

3 部分程序

4 下载链接


主要内容

该程序分为两部分,日前优化部分——该程序首先根据《电力系统云储能研究框架与基础模型》上面方法,根据每个居民的实际需要得到响应储能充放电功率,优化得到整体的储能充放电功率情况。日内滚动mpc跟踪部分——采用《基于MPC的微电网并网优化调度》P31-36页相关内容,通过预测模型、滚动优化、反馈校正得到soc跟踪情况。

程序难点及问题说明

  • 代码修正

for i=1:96    C=[C;P_C1(i) == P_G1(i)+P_PV1(i);%储能功率=电网供电+光伏储能P_PV1(i)<=P_C1(i)<=P_cap;%储能值约束0<=P_G1(i)<=P_cap;%电网供电约束E1(1)+sum(P_C1)*nc*t==E_cap;%soc约束,到储能结束soc=1];
end

该程序含有这段代码,最后一句代码和i不相关,却重复循环96次,这句代码和下面的代码功能重复,在学习和修改代码的时候增加了复杂度。此外,还有几处类似问题已经修正。

原文献有储能充放电功率模型如下,该部分约束能够保证充放电功率不能同时不为0,但是在代码里面却存在这方面问题,已经进行了修正。

  • 部分问题

代码原来的出图效果如下:

该部分是第一阶段优化结果,对于云储能用户,考虑最简单的调度策略,即根据电价详细分清楚每个时间段的充放电状态,所以soc曲线也较为规律​(该图应该为5段,即充-放-充-放-充,但是考虑到前四段已经能够说明问题,就只分析前四段)。

得到两个阶段的soc跟踪效果图,但是为什么只是充电阶段的跟踪图呢​?为什么第一个图效果那么好呢​?第一个问题留给大家思考,第二个问题一会揭晓​。

  • 修正后的代码运行结果

修正代码实现了全过程的soc跟踪控制。

本模型的跟踪控制主要是由于光伏波动引起的,在不存在光伏波动的时间段就会出现soc完美的跟踪效果,也就回答了上面第二个问题​。

部分程序

clc;clear all;
%% 数据准备
data = xlsread('预测数据.xlsx');
​
p_pv = data;%正值代表负荷。负值代表用户光伏发电量高于负荷的部分
p_pv(data<0) = 0;    %用户的剩余光伏数据
prepv=sum(p_pv,2);
data_d = data;
data_d(data>0) = 0;   %用户放电负荷数据
data_d = -1.*data_d;
preload=sum(data_d,2);
%% 参数设置
e_cap = xlsread('各用户租赁容量.xlsx');  %各用户租赁的能量容量
p_cap = 0.5.*e_cap;                                %各用户租赁的功率容量
E_cap = 175;                                       %CES储能容量
P_cap = 90;                                        %CES功率容量
​
e0 = 0.2.*e_cap;                                   %各用户初始电量
E0 = 0.2*E_cap;                                    %CES初始电量
emin = 0.1.*e_cap; 
Emin = 0.1*E_cap;
​
nc = 0.96;  %充电效率
nd = 0.96;  %放电效率
​
r1 = 0.32;   %低谷电价
r2 = 0.66;   %平谷电价
r3 = 1.1;    %高峰电价
r = zeros(288,1);  %各时段电价
r(1:96) = r1;
r(97:144) = r3;
r(145:204) = r2;
r(205:252) = r3;
r(253:288) = r2;
​
t = 5/60;  %时间间隔
%% 定义变量
E1 = sdpvar(96,1);%储能容量变量
E1(1) = E0;
P_PV1 = sum(p_pv(1:96,:),2);%充电时段0-8:00整体光伏出力
P_C1 = sdpvar(96,1);%储能出力变量
P_G1 = sdpvar(96,1);%电网供电变量
C=[];%初始化约束
for i=1:96    C=[C;P_C1(i) == P_G1(i)+P_PV1(i);%储能功率=电网供电+光伏储能P_PV1(i)<=P_C1(i)<=P_cap;%储能值约束0<=P_G1(i)<=P_cap;%电网供电约束
%        E1(1)+sum(P_C1)*nc*t==E_cap;%soc约束,到储能结束soc=1];
end

4 下载链接

点击直达!

http://www.lryc.cn/news/65083.html

相关文章:

  • 796. 子矩阵的和(C++和Python3)——2023.5.6打卡
  • docker打包部署spring boot应用(mysql+jar+Nginx)
  • Golang-常见数据结构Slice
  • 操作系统——设备管理
  • 图片分类:精细化分类,(Fine-Grained Categorization) 基于人的行为的精细化分类
  • Matlab2012a的图像处理工具箱的imshow函数
  • Linux_红帽8学习笔记分享_10(SELinux管理与防火墙)
  • 【资料分享】
  • NewBing 还无法访问的几个问题
  • 将 Segment Anything 扩展到医学图像领域
  • 毕业5年,技术越来越好,混的却越来越差...
  • C#实现把txt文本数据快速读取到excel中
  • Office转换需要用到的SDK(建议)
  • python语法入门到面向过程编程(二)
  • Java常用类
  • 4.30下周美联储携非农来袭黄金多空该如何布局?
  • 利用python查找指定目录下大于300M的文件
  • 浅尝ChatGPT使用之Python字典嵌套排序
  • 最大网络流算法之dinic算法详解
  • 051、面试必刷TOP101--链表(230503)
  • 开源中国面试准备
  • 基于J2EE的B2C电子商务系统开发与实现
  • 三分钟教你看懂 spring 官方文档
  • 基于simulink使用射频模块集天线块对天线阵列的射频系统进行建模
  • 从小学习编程的路线与编程进阶
  • [实训] 实验1-SPI数据传输基础实验(上)
  • 微软骚操作恶心Win10用户,上网得先看广告
  • 为了做低代码平台,这些年我们对.NET的DataGridView做的那些扩展
  • 洛谷 子集积 题解
  • Boost笔记 1:下载、编译、安装、测试