高比例清洁能源接入下计及需求响应的配电网重构(matlab代码)

目录

1 主要内容

目标函数

重要约束条件

2 部分代码

3 程序结果

4 下载链接


主要内容

该程序复现《高比例清洁能源接入下计及需求响应的配电网重构》,以考虑网损成本、弃风弃光成本和开关操作惩罚成本的综合成本最小为目标,针对配电网重构模型的非凸性,引入中间变量并对其进行二阶锥松弛,构建混合整数凸规划模型,采用改进的 IEEE33 节点配电网进行算例仿真,分析了需求响应措施和清洁能源渗透率对配电网重构结果的影响。该程序复现效果和出图较好(详见程序结果部分),注释清楚,方便学习!

注意:该程序运行环境为matlab+mosek,需要各位同学下载并安装mosek求解器,通过官网可以申请学术许可,可免费使用365天。

  • 目标函数

目标函数为配电网综合运行成本最小,其中考虑了网损成本、弃风弃光成本以及分段开关操作惩罚成本。

  • 重要约束条件

常规的功率平衡、节点电压电流等约束不再赘述,重点分析一下网络结构约束和需求响应约束。

网络结构约束:
配电网在重构过程中需满足连通性约束与辐射状约束,具体模型为:

该网络结构约束是采用虚拟潮流方式,之前有几个重构代码也是采用虚拟潮流形式,参考的是《A New Model for Resilient Distribution Systems by Microgrids Formation》,具体模型如下:

仔细观察不难发现,上面的模型是下面的简洁版,在不考虑分布式电源节点对网络切割情况下,两者是等价的。
经验证(见结果图最后一张),该种约束方式下能够保证网络的连通性和辐射性。
需求响应约束:
在配电网中采用需求响应策略,可以在降低负荷峰谷差的同时,减少配电网运行的综合成本,提高配电网运行的经济性和可靠性。

在该模型中,电价弹性系数为已知量,需求响应前后总负荷保持一致。

部分代码

%% 系统参数
mpc = IEEE33;
% 风光负荷曲线
P_wind0=[0.21 0.07 0.11 0.21 0.38 0.42 0.12 0.19 0.22 0.47 0.55 0.71 0.80 0.99 0.89 0.99 0.99 0.98 0.99 0.99 0.98 0.77 0.61 0.19];
P_pv0=[0 0 0 0 0.17 0.24 0.40 0.54 0.60 0.51 0.35 0.29 0.27 0.25 0.18 0.10 0.06 0 0 0 0 0 0 0];
P_L0=[0.37 0.33 0.31 0.28 0.27 0.28 0.28 0.27 0.26 0.24 0.30 0.76 0.82 0.86 0.76 0.54 0.43 0.65 0.81 0.95 0.99 0.91 0.65 0.19];
nb=33;                                      % 节点数
ns=1;                                       % 电源节点数
nl=37;                                      % 支路数
n_pv=2;                                     % 光伏数
n_wind=3;                                   % 风机数
n_ess=2;                                    % 储能数
T=24;                                       % 调度时段总数
F=0.6;                                      % 渗透率
P_DG=sum(mpc.bus(:,3))*F/mpc.baseMVA/5;     % DG额定容量
P_wind_max=P_DG*P_wind0;                    % 风机最大有功
P_pv_max=P_DG*P_pv0;                        % 光伏最大有功
P_load=mpc.bus(:,3)/mpc.baseMVA*P_L0;     % 有功负荷
Q_load=mpc.bus(:,4)/mpc.baseMVA*P_L0;       % 无功负荷
Sij_max=15/mpc.baseMVA;                     % 支路功率最大值
r_ij=mpc.branch(:,3)*ones(1,T);             % 线路电阻
x_ij=mpc.branch(:,4)*ones(1,T);             % 线路电抗
wind=[9 25 32];                             % 风机接入位置
pv=[17 22];                                 % 光伏接入位置
ess=[7 25];                                 % 储能接入位置
Umax=[1;1.06*1.06*ones(32,1)];              % 电压上限的平方
Umin=[1;0.94*0.94*ones(32,1)];              % 电压下限的平方
I_max=10;                                   % 电流上限值
P_ch_max=0.2/mpc.baseMVA;                   % 充电功率上限0.2MW
P_dis_max=0.2/mpc.baseMVA;                  % 放电功率上限0.2MW
E_min=0.15/mpc.baseMVA;                     % 储能容量下限0.15MWh
E_max=0.8/mpc.baseMVA;                      % 储能容量上限0.8MWh
n_ch=0.9;                                   % 充电效率为0.9
n_dis=0.85;                                 % 放电效率为0.85
E0=0.3/mpc.baseMVA;                         % 初始荷电状态为0.3MWh
Q_CB_st=0.15/mpc.baseMVA;                   % 单个电容器无功补偿容量0.15Mvar
N_CB_max=5;                                 % 最大可投切电容器数目
ksai=0.5;                                   % 弹性系数
c1=3;                                       % 网络损耗成本系数3元/kWh
c2=1.2;                                     % 弃风弃光惩罚系数1.2元/kWh
c3=15;                                      % 分段开关操作惩罚成本系数15元/次
rho=zeros(1,24);                            % 分时电价
rho([12:15,19:23])=1.026;                   % 峰时电价
rho([7:11,16:18])=0.691;                    % 平时电价
rho([1:6,24])=0.2561;                       % 谷时电价
rho0=0.35;                                  % 初始节点电价为0.35元/kWh
M=1.1*1.1 - 0.9*0.9;                        % 中间变量                   
P_g_max=10/mpc.baseMVA;                     % 电源有功功率最大值
Q_g_max=10/mpc.baseMVA;                     % 电源无功功率最大值
branch_to_node=zeros(nb,nl);                % 流入节点的支路
branch_from_node=zeros(nb,nl);              % 流出节点的支路
for k=1:nlbranch_to_node(mpc.branch(k,2),k)=1;     %举例说明,k=1,流入节点2是支路1;同时流出节点1的是支路1;同理,k=2,流入节点3且流出节点2的是支路2;这一步建立支路和节点的连接关系branch_from_node(mpc.branch(k,1),k)=1;
end
​
%% 优化变量
alpha_ij=binvar(nl,1);                      % 支路开断情况
U_i=sdpvar(nb,T);                           % 电压的平方
I_ij=sdpvar(nl,T);                          % 电流的平方
P_ij=sdpvar(nl,T);                          % 线路有功功率
Q_ij=sdpvar(nl,T);                          % 线路无功功率
P_wind=sdpvar(n_wind,T);                    % 风机输出功率
P_pv=sdpvar(n_pv,T);                        % 光伏输出功率
Q_wind=sdpvar(n_wind,T);                    % 风机输出功率
Q_pv=sdpvar(n_pv,T);                        % 光伏输出功率
P_ch=sdpvar(n_ess,T);                       % 储能充电功率
P_dis=sdpvar(n_ess,T);                      % 储能充电功率
y_ch=binvar(n_ess,T);                       % 储能充电状态
y_dis=binvar(n_ess,T);                      % 储能放电状态
E_ESS=sdpvar(n_ess,T);                      % 储能荷电状态
N_CB=intvar(1);                             % 投切的电容器数量
P_cur=sdpvar(nb,T);                         % 需求响应后的负荷量
P_g=sdpvar(nb,T);                           % 节点注入有功
Q_g=sdpvar(nb,T);                           % 节点注入无功
P_g_dot=sdpvar(nb,1);                       % 虚拟电源
P_L_dot=ones(nb,1);                         % 虚拟负荷
P_ij_dot=sdpvar(nl,1);                      % 虚拟功率
​
%% 约束条件
Constraints = [];
%% 1.潮流约束
m_ij=(1-alpha_ij)*M*ones(1,T); 
Constraints = [Constraints, P_g-P_cur+branch_to_node*P_ij-branch_to_node*(I_ij.*r_ij)-branch_from_node*P_ij == 0];
Constraints = [Constraints, Q_g-Q_load+branch_to_node*Q_ij-branch_to_node*(I_ij.*x_ij)-branch_from_node*Q_ij == 0];
Constraints = [Constraints,U_i(mpc.branch(:,1),:)-U_i(mpc.branch(:,2),:)<= m_ij + 2*r_ij.*P_ij + 2*x_ij.*Q_ij - ((r_ij.^2 + x_ij.^2)).*I_ij];
Constraints = [Constraints,U_i(mpc.branch(:,1),:)-U_i(mpc.branch(:,2),:)>= -m_ij + 2*r_ij.*P_ij + 2*x_ij.*Q_ij - ((r_ij.^2 + x_ij.^2)).*I_ij];
for k=1:nlfor t=1:TConstraints = [Constraints, cone([2*P_ij(k,t) 2*Q_ij(k,t) I_ij(k,t)-U_i(mpc.branch(k,1),t)],I_ij(k,t)+U_i(mpc.branch(k,1),t))];end
end
Constraints = [Constraints, Sij_max^2*alpha_ij*ones(1,T) >= P_ij.^2+Q_ij.^2];
Constraints = [Constraints, I_max.^2.*alpha_ij*ones(1,T) >= I_ij , I_ij >= 0];
Constraints = [Constraints, Umin*ones(1,T) <= U_i,U_i <= Umax*ones(1,T)];
​
%% 2.拓扑约束
Constraints = [Constraints , sum(alpha_ij) == nb-ns];
Constraints = [Constraints , P_g_dot(2:33) == 0 , P_g_dot(1) <= nb];
Constraints = [Constraints , P_g_dot-P_L_dot+branch_to_node*P_ij_dot-branch_from_node*P_ij_dot == 0];
​
%% 3.DG功率约束
Constraints = [Constraints , P_pv >= 0 , P_wind >= 0];
Constraints = [Constraints , P_pv <= ones(n_pv,1)*P_pv_max , P_wind <= ones(n_wind,1)*P_wind_max];
​
%% 4.储能约束
Constraints = [Constraints , P_ch >= 0 , P_dis >= 0 , y_ch+y_dis <= 1];
Constraints = [Constraints , P_ch <= y_ch*P_ch_max , P_dis <= y_dis*P_dis_max];
Constraints = [Constraints , E_ESS(:,1) ==n_ch*P_ch(:,1)-1/n_dis*P_dis(:,1)+E0];
Constraints = [Constraints , E_ESS >= E_min , E_ESS <= E_max];
for t=2:TConstraints = [Constraints , E_ESS(:,t) ==n_ch*P_ch(:,t)-1/n_dis*P_dis(:,t)+E_ESS(:,t-1)];
end
​

程序结果

4 下载链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/712423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3694-51-7,3,5-Dinitro-1,2-phenylenediamine,合成其他化合物的重要中间体

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;3694-51-7&#xff0c;3,5-Dinitro-1,2-phenylenediamine&#xff0c;3,5-二硝基-1,2-苯二胺;3,5-二硝基苯-1,2-二胺 一、基本信息 【产品简介】&#xff1a;3,5-Dinitro-1,2-phenylenediamine, with the molecular…

SpringBoot启动扩展应用:干预优化+加快启动时间(干货典藏版)

一、SpringBoot启动过程干预 Spring Boot启动过程中我们可以实现以下干预工作&#xff1a; 修改Spring Boot默认的配置属性。使用ConfigurationProperties和EnableConfigurationProperties注解&#xff0c;可以获取和修改Spring Boot的配置属性。 加载配置文件。Spring Boot会…

c++_leetcode_寻找峰值

目录 一、寻找峰值的示例 二、官方实现代码及解释 1、官方测试结果&#xff1a; 2、代码解释&#xff1a; 3、解题思路&#xff1a; 三、我的暴力解决 1、测试一&#xff1a; 2、测试二&#xff1a; 3、最终“暴力求解”代码&#xff1a; 4、官网提交测试通过&#xf…

【JavaScript】面试手撕节流

引入 上篇我们讲了防抖&#xff0c;这篇我们就谈谈防抖的好兄弟 – 节流。这里在老生常谈般的提一下他们两者之间的区别,顺带给读者巩固下。 PS: 开源节流中节流与这个技术上的节流&#xff0c;个人认为本质上是一样的。 开源节流的节流指的是节省公司的金钱开支。前端技术上的…

databinding双向绑定原理,Android程序员最新职业规划

1. Android架构设计模式 MVC架构设计模式&#xff1a;MVC全名是Model View Controller&#xff0c;是模型(model)-视图(view)-控制器(controller)的缩写。MVP架构设计模式&#xff1a;MVC全名是Model View Persenter&#xff0c;MVP由MVC演变而来&#xff0c;是现在主流的开发…

小工具——抖音短视频评论自动同步

很多时候喜欢看抖音的评论&#xff0c;有时候评论也是一个查疑解惑的好地方&#xff0c;很多人也喜欢把抖音的评论集中起来做分析。 因为一个朋友问过我这回事&#xff0c;闲着的时候也研究了下抖音&#xff0c;所以自己做了个小工具&#xff0c;自动同步你观看的抖音短视频的…

Gophish+EwoMail 自建钓鱼服务器

GophishEwoMail 自建钓鱼服务器 文章目录 GophishEwoMail 自建钓鱼服务器1.前提准备2.搭建EwoMail邮件服务器1&#xff09;Centos7 防火墙操作2&#xff09;设置主机名3&#xff09;host配置4&#xff09;安装EwoMail5&#xff09;获取DKIM6&#xff09;端口服务介绍7&#xff…

黑马JavaWeb课程中安装vue脚手架出现的问题

1 安装node.js 要想前端工程化&#xff0c;必须安装node.js&#xff0c;前端工程化的环境。 在成功安装node.js后&#xff0c; 修改全局包安装路径为Node.js安装目录&#xff0c; 修改npm镜像源为淘宝镜像源&#xff0c;这里出现第一个问题&#xff0c;视频中给的淘宝镜像为&…

Maven-私服(黑马学习笔记)

前面我们在讲解多模块开发的时候&#xff0c;我们讲到我们所拆分的模块是可以在同一个公司各个项目组之间进行资源共享的。这个模块的资源共享&#xff0c;就需要通过我们接下来所讲解的Maven的私服来实现。 首先我们先介绍一下什么是私服&#xff0c;以及它的作用是什么。再来…

力扣180 连续出现的数字

如何有效地识别在数据库中至少连续出现三次的数字&#xff1f; 目录 题目描述 解题思路 完整代码 进一步探索 题目描述 表&#xff1a;Logs ---------------------- | Column Name | Type | ---------------------- | id | int | | num | varch…

2024最新EasyRecovery磁盘数据恢复软件功能全面介绍

一、软件概述 EasyRecovery磁盘数据恢复软件是一款专业的数据恢复工具&#xff0c;旨在帮助用户从各种存储设备中恢复因各种原因丢失的数据。该软件凭借其强大的恢复能力、操作简便和高效稳定的性能&#xff0c;得到了广大用户的认可。 EasyRecovery-mac最新版本下载:https://…

Fabric V2.5 通用溯源系统——应用后端GIN框架部分设计

本节对Fabric V2.5 通用溯源系统的应用后端部分做一个简单的介绍,包括目录结构、文件作用、用户注册登录与农产品信息上链过程介绍。此节内容免费发布在TrueTechLabs Fabric学习交流QQ群。 购买专栏前请认真阅读:《Fabric项目学习笔记》专栏介绍 TrueTechLabs Fabric学习交流…

transformer--编码器1(掩码张量、注意力机制、多头注意力机制)

编码器部分: 由N个编码器层堆叠而成每个编码器层由两个子层连接结构组成第一个子层连接结构包括一个多头自注意力子层和规范化层以及一个残差连接。第二个子层连接结构包括一个前馈全连接子层和规范化层以及一个残差连接 掩码张量 什么是掩码张量 掩代表遮掩&#xff0c;码…

Ansible的playbook的编写和解析

目录 什么是playbook Ansible 的脚本 --- playbook 剧本 实例部署&#xff08;使用playbook安装启动httpd服务&#xff09; 1.编写一个.yaml文件 在主机下载安装http&#xff0c;将配置文件复制到opt目录下 运行playbook 在192.168.17.77主机上查看httpd服务是否成功开启…

DolphinScheduler——蔚来汽车数据治理开发平台的应用改造

目录 一、业务痛点 二、应用现状 三、技术改造 3.1 稳定性 3.1.1 滚动重启黑名单机制精准路由 3.2 易用性 依赖节点优化 补数任务优化 多 SQL 执行 原文大佬的这篇基于调度系统的数据治理案例有借鉴意义&#xff0c;这里摘抄下来用作学习和知识沉淀。 一、业务痛点 蔚…

Dell R730 2U服务器实践2:VMWare ESXi安装

缘起 刚到手边的一台Dell R730是三块硬盘raid0 &#xff0c;把我惊出一身冷汗&#xff0c;准备把它们改组成raid1 或者raid5 。 但是舍不得里面的ESXi 8 &#xff0c;寻找能否把raid0改成raid1 还不掉WSXi的方法&#xff0c;很遗憾没有找到。那样只能重装ESXi了。 ESXi软件下…

基于串流技术的p2p共享桌面共享方案

研究远控有一定时间了&#xff0c;但真正落地运用的不多&#xff0c;所以也不太上心&#xff0c;平时也只是自己diy玩玩&#xff0c;远程共享看看电视剧。 最近生成式ai大火&#xff0c;直接带动了gpu应用的相关场景&#xff0c;相关场景&#xff0c;但gpu卡又贵&#xff0c;对…

每日一题——LeetCode1556.千位分隔符

方法一 个人方法&#xff1a; 把n转为字符串&#xff0c;逆序遍历n&#xff0c;把n的每个元素加入res&#xff0c;每三次加入.&#xff0c;最后将res翻转再转为字符串即为符合题目要求的结果 var thousandSeparator function(n) {nlet res[],lenn.length-1for(let ilen;i>…

202435读书笔记|《半小时漫画中国史》——读点经济学与历史,生活更美好,趣味烧脑土地制度、商鞅变法、华丽丽的丝绸之路这里都有

202435读书笔记|《半小时漫画中国史》——读点经济学与历史&#xff0c;生活更美好&#xff0c;趣味烧脑土地制度、商鞅变法、华丽丽的丝绸之路这里都有 1. 土地政策、度量衡及税收2. 商鞅变法3. 西汉经济4. 西汉盐铁大辩论5. 西汉丝绸之路 《半小时漫画中国史&#xff1a;经济…

Typora快捷键设置详细教程(内附每个步骤详细截图)

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号&#xff1a;程序员洲洲。 &#x1f388; 本文专栏&#xff1a;本文…