MATLAB|【免费】高比例可再生能源电力系统的调峰成本量化与分摊模型

news2024/11/29 22:43:35

   

目录

   

主要内容   

  部分代码   

  结果一览   

下载链接


主要内容   

程序复现文献《高比例可再生能源电力系统的调峰成本量化与分摊模型》,从净负荷波动的角度出发,建立了调峰成本的量化与分摊模型,构造了无调峰需求的替代场景,将负荷和可再生能源出力曲线分别转换为无波动的均值线。其次,建立了含深度调峰和抽水蓄能的调度优化模型,用于计算不同场景下的调峰成本,并将有无调峰需求两种场景下的系统调峰成本之差作为单一主体导致的边际调峰成本,然后采用 Shapley值计算不同主体导致的调峰成本。最后,根据成本的引发程度分摊调峰成本。程序采用matlab+cplex编写,程序已经深度优化,求解速度很快,注释清晰,代码免费分享给大家学习参考!

  部分代码   

for t=1:24
    C=[C, sum(sum(P300_Diot(:,:,t)))+sum(sum(P600_Diot(:,:,t)))+sum(P200_it(:,t))+P_PV(t)+P_Wind(t)+sum(P_PuG(:,t)-P_PuS(:,t))+P_guding == L_jun(t)+D_Eload_FW(t)+D_Eload_JM(t)+D_Eload_ZZ(t),
        P_Wind(t) == 0;     
        P_PV(t) == 0;    
        ];                       
end                                 
%%  公式(8-9)系统正负旋转备用约束
u200Git = binvar(20,24,'full');   %uit 表示机组运行状态的0-1变量,1开机,0关机
u300Git = binvar(18,24,'full');  
u600Git = binvar(18,24,'full');  
R_Ureq = (Eload*0.05+E_Wind*0.05+E_PV*0.05);    %正旋转备用
R_Dreq = (Eload*0.05+E_Wind*0.05+E_PV*0.05);    %负旋转备用
for t=1:24         
    C=[C,   200*sum(u200Git(:,t))+300*sum(u300Git(:,t))+600*sum(u600Git(:,t))-sum(sum(P300_Diot(:,:,t)))-sum(sum(P600_Diot(:,:,t)))-sum(P200_it(:,t)) >= R_Ureq(t),   %正旋转备用约束
            sum(sum(P300_Diot(:,:,t)))+sum(sum(P600_Diot(:,:,t)))+sum(P200_it(:,t))-200*0.5*sum(u200Git(:,t))-300*0.35*sum(u300Git(:,t))-600*0.35*sum(u600Git(:,t)) >= R_Dreq(t),  %负旋转备用约束     
         ];      
end   
%%  公式(10-12)火电机组功率大小约束,这里换一种方法去写
uP300_Diot = binvar(18,4,24,'full');
uP600_Diot = binvar(18,4,24,'full');
for t= 1:24   
    for i = 1:18 
            C = [C,  
                     sum(uP300_Diot(i,:,t))<= u300Git(i,t),  
                     sum(uP600_Diot(i,:,t))<= u600Git(i,t),  
                     u200Git(i,t)*200*0.5<=P200_it(i,t),P200_it(i,t)<=u200Git(i,t)*200, 
                     uP300_Diot(i,1,t)*300*0.5<=P300_Diot(i,1,t),P300_Diot(i,1,t)<=uP300_Diot(i,1,t)*300,
                     uP300_Diot(i,2,t)*300*0.45<=P300_Diot(i,2,t),P300_Diot(i,2,t)<=uP300_Diot(i,2,t)*300*0.5,
                     uP300_Diot(i,3,t)*300*0.4<=P300_Diot(i,3,t),P300_Diot(i,3,t)<=uP300_Diot(i,3,t)*300*0.45,
                     uP300_Diot(i,4,t)*300*0.35<=P300_Diot(i,4,t),P300_Diot(i,4,t)<=uP300_Diot(i,4,t)*300*0.4,
                     uP600_Diot(i,1,t)*600*0.5<=P600_Diot(i,1,t),P600_Diot(i,1,t)<=uP600_Diot(i,1,t)*600,
                     uP600_Diot(i,2,t)*600*0.45<=P600_Diot(i,2,t),P600_Diot(i,2,t)<=uP600_Diot(i,2,t)*600*0.5,
                     uP600_Diot(i,3,t)*600*0.4<=P600_Diot(i,3,t),P600_Diot(i,3,t)<=uP600_Diot(i,3,t)*600*0.45,
                     uP600_Diot(i,4,t)*600*0.35<=P600_Diot(i,4,t),P600_Diot(i,4,t)<=uP600_Diot(i,4,t)*600*0.4,
                     ];
    end
    for i = 19:20
            C = [C,  u200Git(i,t)*200*0.5<=P200_it(i,t),P200_it(i,t)<=u200Git(i,t)*200, 
                     ];
    end
end
%公式(11-12)不用再写了,已经隐含在上式(10)里了。
%%   公式(13-14)
%约束的含义是,持续运行需要受到上下爬坡约束,但启停不受爬坡约束。火电机组爬坡率为2%/min,小时调度体现不出来
for  i= 1:18
    for t = 2:24  
        C = [C,
               sum(P300_Diot(i,:,t))-sum(P300_Diot(i,:,t-1)) <= 0.3*300+(1-u300Git(i,t-1))*300,
               sum(P300_Diot(i,:,t-1))-sum(P300_Diot(i,:,t)) <= 0.3*300+(1-u300Git(i,t))*300,
               sum(P600_Diot(i,:,t))-sum(P600_Diot(i,:,t-1)) <= 0.3*600+(1-u600Git(i,t-1))*600,
               sum(P600_Diot(i,:,t-1))-sum(P600_Diot(i,:,t)) <= 0.3*600+(1-u600Git(i,t))*600,               
               P200_it(i,t)-P200_it(i,t-1) <= 0.3*200+(1-u200Git(i,t-1))*200,
               P200_it(i,t-1)-P200_it(i,t) <= 0.3*200+(1-u200Git(i,t))*200,
              ];
    end       
    for i = 19:20
            C = [C, P200_it(i,t)-P200_it(i,t-1) <= 0.3*200+(1-u200Git(i,t-1))*200,
                    P200_it(i,t-1)-P200_it(i,t) <= 0.3*200+(1-u200Git(i,t))*200,
                     ];
    end
end       
%%   公式(15-16)   火电机组的启停状态标识位置
C = [C,
      y200_it(:,2:24)-z200_it(:,2:24)==u200Git(:,2:24)-u200Git(:,1:23),  %公式(15)
      y300_it(:,2:24)-z300_it(:,2:24)==u300Git(:,2:24)-u300Git(:,1:23),  
      y600_it(:,2:24)-z600_it(:,2:24)==u600Git(:,2:24)-u600Git(:,1:23),  
      y200_it(:,1)==0,y300_it(:,1)==0,y600_it(:,1)==0,
      z200_it(:,1)==0,z300_it(:,1)==0,z600_it(:,1)==0,
      y200_it+z200_it<=1,%公式(16)
      y300_it+z300_it<=1,
      y600_it+z600_it<=1,
    ];   
%%   公式(17-18)   最短运行时间,最短停机时间限值,取20h和10h
%需要注意的是,调度的维度只有24,因此,编写代码的时候,需要避免调用越界24
Ton = 20;%最短开机时间          
Toff = 10;%最短关机时间          
for t=1:(25-Ton)   %公式(17)
    for i=1:18
         C = [C,sum(u200Git(i,t:(t+Ton-1))) >= Ton*y200_it(i,t)];
         C = [C,sum(u300Git(i,t:(t+Ton-1))) >= Ton*y300_it(i,t)];
         C = [C,sum(u600Git(i,t:(t+Ton-1))) >= Ton*y600_it(i,t)];
    end
    for i=19:20   
        C = [C,sum(u200Git(i,t:(t+Ton-1))) >=Ton*y200_it(i,t)];
    end
end
for t=1:(25-Toff)    %公式(18)
    for i=1:18   
         C = [C,sum(1-u200Git(i,t:(t+Toff-1))) >= Toff*z200_it(i,t),
              sum(1-u300Git(i,t:(t+Toff-1))) >= Toff*z300_it(i,t),
              sum(1-u600Git(i,t:(t+Toff-1))) >= Toff*z600_it(i,t)];
    end
    for i=19:20    
        C = [C,sum(1-u200Git(i,t:(t+Toff-1))) >=Toff*z200_it(i,t)];
    end  
end   
%%  公式(19)  可再生能源出力约束
C = [C, 0<=P_PV,P_PV<=E_PV,
        0<=P_PVcur,P_PVcur<=E_PV,
        P_PV+P_PVcur==E_PV,
        0<=P_Wind,P_Wind<=E_Wind,
        0<=P_Windcur,P_Windcur<=E_Wind,
        P_Wind+P_Windcur==E_Wind,
        ];    
%%  公式(20-24)  抽水蓄能电站功率约束
U_PuG = binvar(4,24,'full');
U_PuS = binvar(4,24,'full');
u_PuG = binvar(1,24,'full');
u_PuS = binvar(1,24,'full');
C = [C, 
         U_PuG*300*0.3<=P_PuG,P_PuG<=U_PuG*300,   %公式(20)
         U_PuS*300*0.3<=P_PuS,P_PuS<=U_PuS*300,   %公式(21)
         u_PuG+u_PuS<=1,   %公式(22)
        ];  
for t=1:24
    C = [C, 
         U_PuG(:,t)<=u_PuG(1,t),   %公式(23)
         U_PuS(:,t)<=u_PuS(1,t),   %公式(24)
        ];  
end    
​

  结果一览   

下载链接

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

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

相关文章

阿里云游戏服务器一年费用多少?

阿里云游戏服务器租用价格表&#xff1a;4核16G服务器26元1个月、146元半年&#xff0c;游戏专业服务器8核32G配置90元一个月、271元3个月&#xff0c;阿里云服务器网aliyunfuwuqi.com分享阿里云游戏专用服务器详细配置和精准报价&#xff1a; 阿里云游戏服务器租用价格表 阿…

【JavaEE进阶】 图书管理系统开发日记——陆

文章目录 &#x1f38b;前言&#x1f343;删除图书&#x1f6a9;约定前后端交互接口&#x1f6a9;完善前端代码&#x1f6a9;接口测试 &#x1f38d;批量删除&#x1f6a9;约定前后端交互接口&#x1f6a9;实现后端服务器代码&#x1f388;控制层&#x1f388;业务层&#x1f3…

Uipath 调用Python 脚本程序详解

Python 活动概述 UiPath.Python.Activities 是一个新的活动包&#xff0c;创建它是为了支持直接从工作流运行 Python 脚本和方法。 其包含以下活动&#xff1a; Python 作用域(Python Scope) - 为 Python 活动提供作用域的容器。 加载 Python 脚本(Load Python Script) - 将 P…

Servlet JSP-Eclipse安装配置Maven插件

Maven 是一款比较常用的 Java 开发拓展包&#xff0c;它相当于一个全自动 jar 包管理器&#xff0c;会导入用户开发时需要使用的相应 jar 包。使用 Maven 开发 Java 程序&#xff0c;可以极大提升开发者的开发效率。下面我就跟大家介绍一下如何在 Eclipse 里安装和配置 Maven 插…

(一)【Jmeter】JDK及Jmeter的安装部署及简单配置

JDK的安装和环境变量配置 对于Linux、Mac和Windows系统&#xff0c;JDK的安装和环境变量配置方法略有不同。以下是针对这三种系统的详细步骤&#xff1a; 对于Linux系统&#xff1a; 下载适合Linux系统的JDK安装包&#xff0c;可以选择32位或64位的版本。 将JDK的安装包放置…

ubuntu服务器部署gitlab docker并配置nginx反向代理https访问

拉取镜像 docker pull gitlab/gitlab-ce运行容器 docker run --detach \--publish 9080:80 --publish 9022:22 --publish 9443:443\--namegitlab \--restartalways \--volume /home/docker/gitlab/config:/etc/gitlab \--volume /home/docker/gitlab/logs:/var/log/gitlab \-…

今天:旧时是这样“破五迎福”

昨&#xff08;正月初四&#xff09;天&#xff0c;笔者——“ 人民体验官 ”&#xff0c; 为了推广人民日报官方微博文化产品所发表在10余个网站自媒体平台上的文章《今天&#xff1a;大年初四迎灶神爷》&#xff0c;不知何故被笔者寄居养老城市的自媒体论坛反复拒之门外&…

Spring Boot3自定义异常及全局异常捕获

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 &#x1f30a;山高路远&#xff0c;行路漫漫&#xff0c;终有归途。 目录 前置条件 目的 主要步骤 定义自定义异常类 创建全局异常处理器 手动抛出自定义异常 前置条件 已经初始化好一个…

使用一根网线,让Ubuntu和正点原子I.MX6ULL开发板互相ping通

1.硬件准备 准备一根网线即可 2. 让windows和I.MX6ULLping通 2.1 找根网线将I.MX6ULL和电脑连起来 2.2 让I.MX6ULL通电运行起来&#xff0c;我这里使用的是正点原子版本的内核、 2.3 进入电脑的网络连接后&#xff0c;按照如下步骤操作 2.4 将ip地址、子网掩码、默认网关…

情人节html代码

一、一个带有心形和祝福消息的页面 如果想在网页上创建一个简单的情人节祝福&#xff0c;可以使用HTML和CSS。以下是一个简单的例子&#xff0c;它创建了一个带有心形和祝福消息的页面&#xff1a; <!DOCTYPE html> <html> <head> <title>情人节…

林浩然与杨凌芸的Java奇趣冒险:System与Runtime的大挑战

林浩然与杨凌芸的Java奇趣冒险&#xff1a;System与Runtime的大挑战 Lin Haoran and Yang Lingyun’s Java Adventure: The Grand Challenge of System and Runtime 在一个阳光明媚的日子&#xff0c;程序员大侠林浩然和智慧女神杨凌芸携手闯荡Java江湖。他们的故事并非刀光剑影…

[缓存] 1. 缓存共性问题

1. 缓存的作用 为什么需要缓存呢&#xff1f;缓存主要解决两个问题&#xff0c;一个是提高应用程序的性能&#xff0c;降低请求响应的延时&#xff1b;一个是提高应用程序的并发性。 2. 缓存的分类 本地缓存&#xff0c;分布式缓存 3. 缓存数据分类 3.1 数据缓存 程序数据直接…

Vue核心基础5:数据监测、收集表单数据、过滤器

1 数据监测 【代码】 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>总结</title><scrip…

LeetCode、435. 无重叠区间【中等,贪心 区间问题】

文章目录 前言LeetCode、435. 无重叠区间【中等&#xff0c;贪心 区间问题】题目链接及分类思路贪心、区间问题 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注于Java后端技…

力扣 第 384 场周赛 解题报告 | 珂学家 | 贪心构造 + KMP板子

前言 整体评价 因为是新春过年&#xff0c;所以题目出的相对简单一些&#xff0c;T4和上周一样&#xff0c;是字符串匹配模板题。 T1. 修改矩阵 思路: 模拟 按要求模拟即可 class Solution {public int[][] modifiedMatrix(int[][] matrix) {int h matrix.length;int w m…

如何一键启动、停止或重启运行在服务器内的幻兽帕鲁游戏服务进程?

如果你是用腾讯云轻量应用服务器一键部署的幻兽帕鲁服务器&#xff0c;那么可以在面板一键启动、停止或重启运行在服务器内的幻兽帕鲁游戏服务进程&#xff08;注意并非对服务器整机进行操作&#xff09;&#xff0c;无需手动在服务器内部运行命令。 详细教程地址&#xff1a;h…

2024年幻兽帕鲁服务器搭建方法_图文保姆级教程

幻兽帕鲁官方服务器不稳定&#xff1f;自己搭建幻兽帕鲁服务器&#xff0c;低延迟、稳定不卡&#xff0c;目前阿里云和腾讯云均推出幻兽帕鲁专用服务器&#xff0c;腾讯云直接提供幻兽帕鲁镜像系统&#xff0c;阿里云通过计算巢服务&#xff0c;均可以一键部署&#xff0c;鼠标…

2024幻兽帕鲁服务器创建教程_阿里PK腾讯超简单

幻兽帕鲁官方服务器不稳定&#xff1f;自己搭建幻兽帕鲁服务器&#xff0c;低延迟、稳定不卡&#xff0c;目前阿里云和腾讯云均推出幻兽帕鲁专用服务器&#xff0c;腾讯云直接提供幻兽帕鲁镜像系统&#xff0c;阿里云通过计算巢服务&#xff0c;均可以一键部署&#xff0c;鼠标…

智能汽车行业产业研究报告:毫米波雷达优势明显,核心壁垒是芯片、天线阵列、波形设计

今天分享的是智能汽车系列深度研究报告&#xff1a;《智能汽车行业产业研究报告&#xff1a;毫米波雷达优势明显&#xff0c;核心壁垒是芯片、天线阵列、波形设计》。 &#xff08;报告出品方&#xff1a;国泰君安证券&#xff09; 报告共计&#xff1a;67页 毫米波雷达被广泛…

mmdetection使用自己的voc数据集训练模型实战

一.自己数据集整理 将labelimg格式数据集进行整理 1.1. 更换图片后缀为jpg import os import shutilroot_path/media/ai-developer/imgfileos.listdir(root_path)for img in file:if img.endswith(jpeg) or img.endswith(JPG) or img.endswith(png):img_pathos.path.join(root…