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

27.EI文章复现《高比例清洁能源接入下计及需求响应的配电网重构》

下载地址:高比例清洁能源接入下计及需求响应的配电网重构

1主要内容

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

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

图片

  • 目标函数

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

图片

  • 重要约束条件

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

网络结构约束:

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

图片

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

图片

仔细观察不难发现,上面的模型是下面的简洁版,在不考虑分布式电源节点对网络切割情况下,两者是等价的。

经验证(见结果图最后一张),该种约束方式下能够保证网络的连通性和辐射性。

需求响应约束:

在配电网中采用需求响应策略,可以在降低负荷峰谷差的同时,减少配电网运行的综合成本,提高配电网运行的经济性和可靠性。

图片

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

2部分代码

%% 系统参数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.2MWP_dis_max=0.2/mpc.baseMVA;                  % 放电功率上限0.2MWE_min=0.15/mpc.baseMVA;                     % 储能容量下限0.15MWhE_max=0.8/mpc.baseMVA;                      % 储能容量上限0.8MWhn_ch=0.9;                                   % 充电效率为0.9n_dis=0.85;                                 % 放电效率为0.85E0=0.3/mpc.baseMVA;                         % 初始荷电状态为0.3MWhQ_CB_st=0.15/mpc.baseMVA;                   % 单个电容器无功补偿容量0.15MvarN_CB_max=5;                                 % 最大可投切电容器数目ksai=0.5;                                   % 弹性系数c1=3;                                       % 网络损耗成本系数3元/kWhc2=1.2;                                     % 弃风弃光惩罚系数1.2元/kWhc3=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元/kWhM=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:nl    branch_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:nl    for t=1:T        Constraints = [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))];    endendConstraints = [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:T    Constraints = [Constraints , E_ESS(:,t) ==n_ch*P_ch(:,t)-1/n_dis*P_dis(:,t)+E_ESS(:,t-1)];

3程序结果

图片

图片

图片

图片

图片

图片

图片

相关文章:

27.EI文章复现《高比例清洁能源接入下计及需求响应的配电网重构》

下载地址&#xff1a;高比例清洁能源接入下计及需求响应的配电网重构 1主要内容 该程序复现《高比例清洁能源接入下计及需求响应的配电网重构》&#xff0c;以考虑网损成本、弃风弃光成本和开关操作惩罚成本的综合成本最小为目标&#xff0c;针对配电网重构模型的非凸性&…...

mysql的索引结构

索引概述 索引&#xff08; index &#xff09;是帮助 MySQL 高效获取数据的数据结构 ( 有序 ) 。在数据之外&#xff0c;数据库系统还维护着满足特定查找算法的数据结构&#xff0c;这些数据结构以某种方式引用&#xff08;指向&#xff09;数据&#xff0c; 这样就可以在这些…...

SMT生产中基板的机械清洁处理法有哪些

在S MT贴片加工 过程中&#xff0c;锡育和助焊剂会产生残留物质&#xff0c;残留物中包含有有机酸和可分解的电离子&#xff0c;某中有机酸狊 有腐蚀作用&#xff0c;电高子难留在焊盘还会引(起短路&#xff0c;而且这些残留物在PCBA板上是非常脏的&#xff0c;而旦不符合顾客…...

微服务面试题

一、什么是微服务 二、微服务之间是如何通讯的&#xff1f; 2.1、同步 优点&#xff1a;实时性 缺点&#xff1a;降低了可用性&#xff0c;因为客户端和服务端在请求过程中必须都是可用的 2.1.1、REST 优点&#xff1a;开发成本低&#xff0c;适应异构语言 2.1.2、RPC …...

LeetCode 1132.申请的报告2

数据准备 Create table If Not Exists Actions (user_id int, post_id int, action_date date, action ENUM(view, like, reaction, comment, report, share), extra varchar(10)); create table if not exists Removals (post_id int, remove_date date); Truncate table Act…...

室内探索无人机,解决复杂环境下的任务挑战!

前言 室内探索无人机是一种专为在室内环境中进行任务的无人机系统。相比传统的人员部署&#xff0c;室内探索无人机具有更高的灵活性和机动性&#xff0c;能够在复杂的室内环境中执行任务&#xff0c;用于未知环境的探索和特定目标的搜索。 为完成无人机室内搜索与识别等复杂…...

操作指南 | 如何参与Moonbeam投票委托

投票委托允许没有时间或者专业度一般的用户能够在治理中拥有话语权。该功能加强了决策流程&#xff0c;并且确保更大范围地代表社区利益。 通过Moonbeam委托平台&#xff0c;你需要 $GLMR 和一个相兼容的钱包。此教程使用MetaMask示范。 如何参与投票委托 前往http://delega…...

xxl-job中多节点分片的时候如何在linux服务器开启多个执行器实例?

在 xxl-job 中&#xff0c;可以通过在 Linux 服务器上启动多个执行器实例来实现分布式的分片任务处理。以下是在 Linux 服务器上开启多个执行器实例的步骤&#xff1a; 1.复制并配置多个执行器项目模块&#xff1a; 复制原始的执行器项目模块&#xff0c;并重命名为不同的名称…...

springboot三种注入方式

在Spring Boot中&#xff0c;您可以使用三种主要的方式来进行依赖注入&#xff1a; 构造函数注入&#xff08;Constructor Injection&#xff09;&#xff1a;您可以在类的构造函数中声明依赖项&#xff0c;然后Spring容器会在创建Bean实例时自动注入这些依赖项。这种方式通常用…...

信息化发展38

组织模型一信息系统战略 1 、信息系统战略是组织用来提供信息服务的计划。 2 、信息系统支撑组织实施其业务战略。业务战略是关于竞争&#xff08;服务对象想要什么&#xff0c; 竞争做什么&#xff09; &#xff0c; 定位&#xff08;组织想以什么方式竞争&#xff09;和能力…...

PMP含金量再升级!北京上海等地可评职称!

最近PMP证书又“升级”了&#xff0c;不过不是证书上的改变&#xff0c;而是含金量在原有基础上又上升了一个档次。 9月4日&#xff0c;北京市人力资源和社会保障局联合北京市人才工作局发布关于印发《北京市境外职业资格认可目录(3.0版)》的通知&#xff0c;PMP项目管理证书也…...

动态调用微服务

主要由三个文件组成 DynamicService.java DynamicFeignClientFactory.java DynamicClient.java 代码 package org.jeecg.modules.cloud.feign;import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.GetMapping; im…...

什么是字符集什么是字符编码

什么是字符集&#xff0c;什么是字符编码&#xff0c; unicode 和 utf8的区别 字符集&#xff08;Character Set&#xff09;&#xff1a; 字符集是一组字符的集合&#xff0c;通常按照某种规则组织和分类。例如&#xff0c;ASCII&#xff08;美国信息交换标准码&#xff09;是…...

Python小项目之Tkinter应用】随机点名/抽奖工具大优化:新增查看历史记录窗口!语音播报功能!修复预览文件按钮等之前版本的bug!

文章目录 前言一、实现思路二、关键代码查看历史记录按钮语音播报按钮三、完整代码总结前言 老生常谈,先看效果:(订阅专栏可获取完整代码) 初始状态下,我们为除了【设置】外的按钮添加弹窗,提示用户在使用工具之前要先【设置】。在设置界面,我们主要修改了【预览文件】…...

mysql drop table 死锁

1.场景 mysql出现大量的drop table阻塞操作 2.从会话表 processlist 里面和事务表INNODB_TRX里面并找不到正在占用锁的会话和事务 3.分析锁信息&#xff1a; INNODB_LOCKs 和INNODB_LOCK_waits 4.有问题的查询&#xff1a;可能会导致整个db的阻塞吗&#xff1f; | 2576901 | …...

Git零基础入门(Linux版)

1.安装git wget http://fishros.com/install -O fishros && . fishros 使用博主人小鱼的一键安装&#xff08;选项2&#xff09; 安装完成在任意终端输入git将会显示git帮助选项 安装完成后进行以下基本的配置 $ git config --global user.name "Your Name"…...

二维多孔介质图像的粒度分布研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

文盘Rust——子命令提示,提高用户体验 | 京东云技术团队

上次我们聊到 CLI 的领域交互模式。在领域交互模式中&#xff0c;可能存在多层次的子命令。在使用过程中如果全评记忆的话&#xff0c;命令少还好&#xff0c;多了真心记不住。频繁 --help 也是个很麻烦的事情。如果每次按 ‘tab’ 键就可以提示或补齐命令是不是很方便呢。这一…...

同源策略简介

什么是同源策略 同源策略/SOP&#xff08;Same origin policy&#xff09;是一种约定&#xff0c;由 Netscape 公司 1995 年引入浏览器&#xff0c;它是浏览器最核心也最基本的安全功能&#xff0c;现在所有支持 JavaScript 的浏览器都会使用这个策略。如果缺少了同源策…...

数据量大,分析困难?试试pandas随机抽样

前言 在数据分析和机器学习领域&#xff0c;随机抽样是一个非常重要的技术。它可以帮助我们从大量的数据中获取一部分样本&#xff0c;以进行统计分析、建模和预测。而在Python中&#xff0c;pandas是一个非常强大的数据分析库&#xff0c;它提供了许多方便的函数和方法来处理…...

stm32---外部中断

一、EXTI STM32F10x外部中断/事件控制器&#xff08;EXTI&#xff09;包含多达20个用于产生事件/中断请求的边沿检测器。EXTI的每根输入线都可单独进行配置&#xff0c;以选择类型&#xff08;中断或事件&#xff09;和相应的触发事件&#xff08;上升沿触发、下降沿触发…...

电子企业MES管理系统实施的功能和流程有哪些

MES生产管理系统是一种应用于电子企业的管理系统&#xff0c;旨在提高生产效率、降低浪费、优化资源利用&#xff0c;并实时监控和改善生产过程。在电子企业中&#xff0c;实施MES管理系统对于实现精细化管理、增强信息互联、提高产品质量和交货期等方面具有重要作用。 一、MES…...

代码随想录二刷day24

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、回溯法模板二、力扣77. 组合 前言 一、回溯法模板 void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择&#xff1a;本层集合中元素&…...

谷粒商城篇章6 ---- P193-P210 ---- 异步线程池商品详情【分布式高级篇三】

目录 1. 异步 1.1 初始化线程的 4 种方式 1.1.1 继承 Thread 1.1.2 实现 Runnable 接口 1.1.3 实现 Callable 接口 FutureTask 1.1.4 线程池 1.1.5 以上 4 种方式总结&#xff1a; 1.2 线程池详解 1.2.1 初始化线程池的 2 种方式 1.2.1.1 使用 Executors 创建 1.2…...

gcc中的cc1 collect2

当运行gcc命令编译一个C程序时&#xff0c;我们可能认为这是一个简单的操作&#xff0c;但实际上&#xff0c;编译过程包含了多个步骤和子工具的调用。gcc通常作为一个前端&#xff0c;管理这些步骤并调用其他工具来完成特定的工作。其中&#xff0c;cc1和collect2是这些子工具…...

学习day59

昨天学了插槽&#xff0c;但是没有即笔记了 今天的是vuex 总体来说&#xff0c;vuex就是一个共享单车&#xff0c;每个人都可以使用他&#xff0c;也可也对他进行反馈。即把一个数据列为vuex&#xff0c;然后每个组件可以使用这个对象&#xff0c;也可也反过来反馈他 这一个设…...

Go Tip02 指针类型 、值类型和引用类型 、标识符的命名规范

文章目录 一、指针类型二、值类型和引用类型三、标识符的命名规范 一、指针类型 package mainimport "fmt"func main() {saylocation()}func saylocation() {// 指针类型// 基本数据类型&#xff0c;变量存的是值// 用&获取变量的地址// 基本数据类型在内存的布…...

CSS中如何实现文字跑马灯效果?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 跑马灯⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋…...

《昆明海晏村:修缮后的新生,历史与现代的完美交融》

在昆明市的东南角&#xff0c;有一处名为海晏村的地方&#xff0c;这里曾是滇池北岸的重要码头&#xff0c;也是滇池文化的发源地之一。近年来&#xff0c;海晏村经过精心修缮&#xff0c;焕发出新的生机&#xff0c;成为了一个集历史、文化、艺术于一体的旅游胜地。那么&#…...

C++ --- Day02 封装

stack栈类 stack.h #ifndef STACK_H #define STACK_H #include <iostream> #include<string> using namespace std; //自行封装一个栈的类&#xff0c;包含私有成员属性:栈的数组、记录栈顶的变量 //成员函数完成: //构造函数、析构函数、拷贝构造函数 //入栈、出…...

迅捷流程图在线制作网站/百度一下官方网站

1、判断列表(list)中所有元素是否在集合(set)中list_string [big, letters] string_set set([hello, hi, big, cccc, letters, anotherword]) result all([word in string_set for word in list_string]) #结果是True 2、判断列表中的每个字符串元素是否含另一个列表的所有字…...

手表大全网站/温州最好的seo

注&#xff1a;本文基于V2019编辑器实现。 1.基本的功能实现参考自&#xff1a; C面试题&#xff08;二&#xff09;——自己实现一个String类_普通网友的博客-CSDN博客 2.重载流函数及getline函数参考自&#xff1a; 关于C 友元函数重载cin,cout,和运算符的方法_j…...

市住房住房城乡建设委官方网站/百度站长工具验证

std::ios_base::fmtflags orig std::streamsize prec posted on 2018-11-02 14:16 秦瑞It行程实录 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/ruiy/p/9895984.html...

龙岩做网站公司/男生最喜欢的浏览器

单例模式&#xff08;Singleton Pattern&#xff09;是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类&#xff0c;该类负责创建自己的对象&#xff0c;同时确保只有单个对象被创建…...

怎么做类似清风dj网站/外包推广公司

2019独角兽企业重金招聘Python工程师标准>>> Activity 基类定义了一系列用于管理活动生命周期的事件。它定义了如下事件&#xff1a; ● onCreate()—当活动首次加载时调用 ● onStart()—当活动对用户可见时调用 ● onResume()—当活动开始与用户交互时调用 ● onP…...

学校网站 源码/设计模板网站

---------------------------------备考概括---------------------------------问&#xff1a;备考过程中最重要的是什么&#xff1f;答&#xff1a;要说最重要的&#xff0c;无非是态度&#xff0c;尤其是学会自省&#xff0c;它是一成不变的&#xff0c;对每个人都有效果的。…...