当前位置: 首页 > 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 下载链接

点击直达!

相关文章:

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

目录 1 主要内容 2 程序难点及问题说明 3 部分程序 4 下载链接 1 主要内容 该程序分为两部分&#xff0c;日前优化部分——该程序首先根据《电力系统云储能研究框架与基础模型》上面方法&#xff0c;根据每个居民的实际需要得到响应储能充放电功率&#xff0c;优化得到整体…...

796. 子矩阵的和(C++和Python3)——2023.5.6打卡

文章目录 QuestionIdeasCode Question 输入一个 n 行 m 列的整数矩阵&#xff0c;再输入 q 个询问&#xff0c;每个询问包含四个整数 x1,y1,x2,y2 &#xff0c;表示一个子矩阵的左上角坐标和右下角坐标。 对于每个询问输出子矩阵中所有数的和。 输入格式 第一行包含三个整数…...

docker打包部署spring boot应用(mysql+jar+Nginx)

文章目录 一、基本准备二、mysql部署二、jar部署三、Nginx部署 一、基本准备 小唐拿的就是之前放置在我们服务器上的应用进行部署&#xff0c;主要就是mysql和jar还有Vue的部署。 目前已经有的是jar、已经打包好的vue 项目参考&#xff1a;小破站数据大屏可视化&#xff08;…...

Golang-常见数据结构Slice

Slice slice 翻译成中文就是切片&#xff0c;它和数组&#xff08;array&#xff09;很类似&#xff0c;可以用下标的方式进行访问&#xff0c;如果越界&#xff0c;就会产生 panic。但是它比数组更灵活&#xff0c;可以自动地进行扩容。 了解 slice 的本质, 最简单的方法就是…...

操作系统——设备管理

0.关注博主有更多知识 操作系统入门知识合集 目录 1.设备管理概念 2.SPOOLing技术 1.设备管理概念 在计算中&#xff0c;除CPU、内存以外的所有设备统称为外设&#xff0c;即外部设备&#xff0c;例如鼠标、键盘、打印机、摄像头、磁盘、硬盘......那么这些只需要连接到计…...

图片分类:精细化分类,(Fine-Grained Categorization) 基于人的行为的精细化分类

文字大纲 简介数据集常用数据集方法1 : 强监督方法2 : 弱监督传统 ResNet EfficientNet 等Two Level Attention Model双线性网络 Bilinear CNN model参考文献和学习路径简介 细粒度图像识别 (fine-grained image recognition),即 精细化分类。 细粒度图像分类(Fine-Graine…...

Matlab2012a的图像处理工具箱的imshow函数

在处理图片文件时&#xff0c;除了使用matlab自带的image函数&#xff0c;还可以考虑用matlab的图像处理工具箱。这个工具箱提供了imshow和imtool两个函数&#xff0c;可实现图片的显示。 这两个函数都支持Handle Graphics体系结构&#xff0c;它们可创建图像对象&#xff0c;…...

Linux_红帽8学习笔记分享_10(SELinux管理与防火墙)

Linux_红帽8学习笔记分享_10(SELinux管理与防火墙) 文章目录 Linux_红帽8学习笔记分享_10(**SELinux管理与防火墙**)1.Linux系统的安全机制1.1 Filesystem1.2 Service1.3 Firewall1.4 SELinux 2.SElinux理论概述3.SElinux的配置文件3.1 SELINUX参数3.2 SELINUXTYPE参数 4.查看和…...

【资料分享】

文章目录 前言《408统考&#xff0c;真题&解析(2009-2021)》《Android 移动应用基础教程&#xff08;Android Studio&#xff09;&#xff08;第2版&#xff09;》黑马程序员 源代码《Hackers & Painters》--Paul Graham《数字电路与逻辑设计&#xff08;第3版&#xf…...

NewBing 还无法访问的几个问题

大部分的AI自媒体都在说&#xff0c;Bing new已经向全世界开放了&#xff0c;我也凑一下这个热闹&#xff0c;用Edge浏览器打开&#xff0c;访问https://www.bing.com/new?ccus 想体验一下Bing new的效果&#xff0c;结果如下&#xff1a; 相信很多人都碰到了这个问题 此体验…...

将 Segment Anything 扩展到医学图像领域

文章目录 前言技术交流SAM 拆解分析从医学角度理解 SAM 的效用MedSAM实验总结 前言 SAM 是一种在自然图像分割方面取得成功的模型&#xff0c;但在医学图像分割方面表现不佳。MedSAM 首次尝试将 SAM 的成功扩展到医学图像&#xff0c;并成为用于分割各种医学图像的通用工具。为…...

毕业5年,技术越来越好,混的却越来越差...

别人都是越来越好&#xff0c;而我是越来越差&#xff01; 17年&#xff0c;从一个普通的本科毕业&#xff0c;那个时候的我&#xff0c;很迷茫&#xff0c;简历上的求职岗位都不知道写什么&#xff0c;因为家里是农村的&#xff0c;朴实的父母也帮不上什么忙&#xff0c;关于…...

C#实现把txt文本数据快速读取到excel中

主要介绍了C#实现把txt文本数据快速读取到excel中,本文直接给出示例代码,需要的朋友可以参考下 今天预实现一功能,将txt中的数据转到excel表中,做为matlab的数据源。搜集一些c#操作excel的程序。步骤如下: 下载一个Microsoft.Office.Interop.Excel.dll 在项目中引用。 编…...

Office转换需要用到的SDK(建议)

PDF相关SDK1. PDFBox&#xff1a;一个基于Java的开源库&#xff0c;可以读取、创建和操作PDF文件。2. iText&#xff1a;一个用于Java和.NET的开源库&#xff0c;可以创建、编辑和操作PDF文件。3. MuPDF&#xff1a;一个轻量级的开源PDF阅读器和渲染器&#xff0c;可用于创建和…...

python语法入门到面向过程编程(二)

类型总结 一&#xff1a;整形基本使用&#xff08;int&#xff09; 1 int用途:年龄 号码 等级… 2 定义方式 age10 ageint(10) xint(‘1111’) int只能将纯数字的字符串转成十进制的整型 print(type(x)) 3 整形常用操作内置的方法 算数运算&#xff08;、—、*、/&#xff0…...

Java常用类

基本数据类型包装类 Java是一种纯面向对象语言&#xff0c;但是java中有8种基本数据类型&#xff0c;破坏了java为纯面向对象的特征。为了承诺在java中一切皆对象&#xff0c;java又给每种基本数据类型分别匹配了一个类&#xff0c;这个类我们称之为包装类/封装类。每个基本数据…...

4.30下周美联储携非农来袭黄金多空该如何布局?

近期有哪些消息面影响黄金走势&#xff1f;下周黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;周五(4月28日)当周金价维持震荡交投&#xff0c;金价基本持稳于2000美元下方。支撑和打压金价的因素参半。经济衰退的担忧&#xff0c;以及避险情绪支持金价&#x…...

利用python查找指定目录下大于300M的文件

直接上代码&#xff0c;欢迎小伙伴们交流 import os def getBigFile(path, filesize): # 遍历指定目录及其子目录 for dirpath, dirnames, filenames in os.walk(path): for filename in filenames: target_file os.path.join(dirpath, filename…...

浅尝ChatGPT使用之Python字典嵌套排序

一、背景 所负责的项目从v1.0升级到v2.0之后&#xff0c;发送到kafka的Json数据字段顺序和内容有所改变&#xff0c; v1.0版本推送数据样例&#xff1a; {"name": "小王子","author": "安托万德圣-埃克苏佩里&#xff08;1900-1944&#…...

最大网络流算法之dinic算法详解

1、题目描述 On the Internet, machines (nodes) are richly interconnected, and many paths may exist between a given pair of nodes. The total message-carrying capacity (bandwidth) between two given nodes is the maximal amount of data per unit time that can b…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...