2024“电工杯”数学建模A题《园区微电网风光储协调优化配置》思路和代码分享

A 题:园区微电网风光储协调优化配置

        这个题目整体就是一个优化问题,可以采用Matlab+Yalmip+Gurobi求解器进行求解,持续更新中,敬请关注!!

        园区微电网由风光发电和主电网联合为负荷供电,为了尽量提高风光电量的负荷占比,需配置较高比例的风光发电装机容量,但由于园区负荷与风光发电功率时序不匹配,可能导致弃电问题。配置储能可缓解负荷与风光的时序不匹配问题,减少弃电。考虑到电化学储能成本不菲,配置储能需要考虑投资及其收益。
        设有三个园区微电网各自独立接入主电网,各园区风光装机容量、最大负荷参数如图 1 所示。
        简便起见,设各园区典型日负荷曲线如图 2 所示(数据见附件 1),风电光伏发电归一化数据见附件 2
        配置储能为磷酸铁锂电池,功率单价 800 /kW ,能量单价 1800 /kWh,SOC 允许范围 10%-90% ,充 / 放电效率 95% ,运行寿命按 10 年计。
        运行规则:各园区可再生能源发电优先供给本区域负荷,不足部分从主电网购电,网购电价格为 1 /kWh ;多余电量不允许向主电网出售(弃风、弃光)。
        分别考虑各园区独立运营配置储能、联合运营配置储能、风光储协调配置三种场景,试分析如下问题。

问题 1:各园区独立运营储能配置方案及其经济性分析

        系统结构如图 1 所示。以典型日风光发电功率为依据,设园区从风电、光伏的购电成本分别为 0.5 /kWh 0.4 /kWh
1)分析未配置储能时各园区运行的经济性,包括:购电量、弃风弃光电量、总供电成本和单位电量平均供电成本,并分析影响其经济性的关键因素;

问题1-1分析:

        这一问就是简单的数学计算,直接给出matlab代码:

%% 问题1-1
clc
clear
close all%% 1.读取数据
data1 = xlsread('附件1:各园区典型日负荷数据.xlsx');
data2 = xlsread('附件2:各园区典型日风光发电数据.xlsx');Pload = data1(:,2:4);                               % 各园区负荷数据
Ppv0 = [750,0,600];                                 % 各园区光伏装机容量
Pwt0 = [0,1000,500];                                % 各园区风电装机
Ppv = [data2(:,2),zeros(24,1),data2(:,4)].*Ppv0;    % 各园区光伏时序出力
Pwt = [zeros(24,1),data2(:,3),data2(:,5)].*Pwt0;    % 各园区风电时序出力
price_buy = 1;                                      % 主网购电价格为1元/kWh
price_pv = 0.4;                                     % 光伏购电价格为0.4元/kWh
price_wt = 0.5;                                     % 风电购电价格为0.5元/kWh%% 2.经济性分析
Pdiff = Pload - (Ppv + Pwt);                        % 各园区的功率差额
Pbuy = zeros(24,3);                                 % 各园区的购电量
Pbuy(Pdiff >= 0) = Pdiff(Pdiff >= 0);               % 负荷大于风光发电需要向主网购电
Ploss = zeros(24,3);                                % 各园区的弃风弃光
Ploss(Pdiff < 0) = -Pdiff(Pdiff < 0);               % 负荷小于风光发电则发生弃风弃光
C_buy = sum(Pbuy)*price_buy;                        % 向电网购电成本
C_pv = sum(Ppv)*price_pv;                           % 向光伏购电成本
C_wt = sum(Pwt)*price_wt;                           % 向风电购电成本
C_total = C_buy + C_pv + C_wt;                      % 各园区总供电成本
dC = C_total./sum(Pload);                           % 各园区单位电量平均供电成本%% 3.输出结果
disp(['A园区的总购电量为:',num2str(sum(Pbuy(:,1))), 'kW,总弃风弃光量为:',num2str(sum(Ploss(:,1))), 'kW,总供电成本为:',num2str(C_total(1)), '元,单位电量平均供电成本:',num2str(dC(1)), '元/kWh'])
disp(['B园区的总购电量为:',num2str(sum(Pbuy(:,2))), 'kW,总弃风弃光量为:',num2str(sum(Ploss(:,2))), 'kW,总供电成本为:',num2str(C_total(2)), '元,单位电量平均供电成本:',num2str(dC(2)), '元/kWh'])
disp(['C园区的总购电量为:',num2str(sum(Pbuy(:,3))), 'kW,总弃风弃光量为:',num2str(sum(Ploss(:,3))), 'kW,总供电成本为:',num2str(C_total(3)), '元,单位电量平均供电成本:',num2str(dC(3)), '元/kWh'])%% 4.画图分析
figure
bar(Pbuy(:,1))
hold on
bar(-Ploss(:,1))
plot(Pload(:,1),'k-','linewidth',2)
plot(Ppv(:,1),'k:','linewidth',2)
xlabel('时间/h')
ylabel('功率/kW')
legend('向电网购电量','弃光量','负荷曲线','光伏出力曲线')
title('A园区功率平衡分析')figure
bar(Pbuy(:,2))
hold on
bar(-Ploss(:,2))
plot(Pload(:,2),'k-','linewidth',2)
plot(Pwt(:,2),'k:','linewidth',2)
xlabel('时间/h')
ylabel('功率/kW')
legend('向电网购电量','弃风量','负荷曲线','风电出力曲线')
title('B园区功率平衡分析')figure
bar(Pbuy(:,3))
hold on
bar(-Ploss(:,3))
plot(Pload(:,3),'k--','linewidth',2)
plot(Ppv(:,3),'k:','linewidth',2)
plot(Pwt(:,3),'k-','linewidth',2)
xlabel('时间/h')
ylabel('功率/kW')
legend('向电网购电量','弃风量','负荷曲线','光伏出力曲线','风电出力曲线')
title('C园区功率平衡分析')

运行结果为:

2 )各园区分别配置 50kW/100kWh 储能,制定储能最优运行策略及购电计划,分析各园区运行经济性是否改善,并解释其原因;

问题1-2分析:

        这一问涉及到储能的运行策略优化,需要对其进行数学建模,得到优化结果,具体方法可以参考我之前的博客:
储能运行约束的Matlab建模方法-CSDN博客
需要注意,题中并未给出储能的初始容量,我们假设其初始SOC为0.5,还需要将储能的功率和容量费用从10年折算到典型日,假设折现率为0.1,总费用为C0,折算到典型日的费用为:
C=\frac{\gamma(1+\gamma)^T}{(1+\gamma)^T-1}C_0
这里直接给出经济性分析结果,代码可在博客最后获取。
显然,和1-1问相比,购电量,弃风弃光量,供电成本都有所下降,储能的作用明显。
3 )假设风光荷功率波动特性保持上述条件不变,你认为 50kW/100kWh 的方案是否最优?若是,请给出分析依据;若不是,请制定各园区最优的储能功率、容量配置方案,论证所制定方案的优越性。

问题1-3分析:

        这一问涉及到储能的运行策略优化和储能的最优配置策略,需要对其进行数学建模,得到优化结果。和1-2问主要的区别就是需要将储能的额定容量和额定功率从常量设置为变量。
        这里直接给出经济性分析结果,代码可在博客最后获取。

问题 2:联合园区储能配置方案及其经济性分析

        三个园区独立运营时,各园区独立实现发电(风光发电、网购电)与负荷均衡。若三个园区总发电与总负荷相均衡,形成联合运营园区,系统结构如图 3 所示。以典型日风光发电和负荷功率为依据,设园区从风电、光伏的购电成本分别为 0.5 /kWh 0.4 /kWh ,试分析以下问题。
1)若未配置储能,分析联合园区运行经济性,包括:联合园区的总购电量、总弃风弃光电量、总供电成本和单位电量平均供电成本;

问题2-1分析:

        这一问和问题1-1一样,就是简单的数学计算,直接给出matlab代码:

%% 问题2-1
clc
clear
close all%% 1.读取数据
data1 = xlsread('附件1:各园区典型日负荷数据.xlsx');
data2 = xlsread('附件2:各园区典型日风光发电数据.xlsx');Pload = data1(:,2:4);                               % 各园区负荷数据
Ppv0 = [750,0,600];                                 % 各园区光伏装机容量
Pwt0 = [0,1000,500];                                % 各园区风电装机
Ppv = [data2(:,2),zeros(24,1),data2(:,4)].*Ppv0;    % 各园区光伏时序出力
Pwt = [zeros(24,1),data2(:,3),data2(:,5)].*Pwt0;    % 各园区风电时序出力
Pload = sum(Pload,2);                               % 联合园区负荷数据
Ppv = sum(Ppv,2);                                   % 联合园区光伏时序出力
Pwt = sum(Pwt,2);                                   % 联合园区风电时序出力
price_buy = 1;                                      % 主网购电价格为1元/kWh
price_pv = 0.4;                                     % 光伏购电价格为0.4元/kWh
price_wt = 0.5;                                     % 风电购电价格为0.5元/kWh%% 2.经济性分析
Pdiff = Pload - (Ppv + Pwt);                        % 各园区的功率差额
Pbuy = zeros(24,1);                                 % 各园区的购电量
Pbuy(Pdiff >= 0) = Pdiff(Pdiff >= 0);               % 负荷大于风光发电需要向主网购电
Ploss = zeros(24,1);                                % 各园区的弃风弃光
Ploss(Pdiff < 0) = -Pdiff(Pdiff < 0);               % 负荷小于风光发电则发生弃风弃光
C_buy = sum(Pbuy)*price_buy;                        % 向电网购电成本
C_pv = sum(Ppv)*price_pv;                           % 向光伏购电成本
C_wt = sum(Pwt)*price_wt;                           % 向风电购电成本
C_total = C_buy + C_pv + C_wt;                      % 各园区总供电成本
dC = C_total./sum(Pload);                           % 各园区单位电量平均供电成本%% 3.输出结果
disp(['联合园区的总购电量为:',num2str(sum(Pbuy)), 'kW,总弃风弃光量为:',num2str(sum(Ploss)), 'kW,总供电成本为:',num2str(C_total), '元,单位电量平均供电成本:',num2str(dC), '元/kWh'])%% 4.画图分析
figure
bar(Pbuy)
hold on
bar(-Ploss)
plot(Pload,'k-','linewidth',2)
plot(Ppv,'k:','linewidth',2)
plot(Pwt,'k:','linewidth',2)
xlabel('时间/h')
ylabel('功率/kW')
legend('向电网购电量','弃光量','负荷曲线','光伏出力曲线','风电出力曲线')
title('联合园区功率平衡分析')

运行结果为:

2)假设风光荷功率波动特性保持上述条件不变,制定联合园区的总储能最优配置方案,给出储能运行策略及购电计划,分析其经济性;

问题2-2分析:

        这一问和问题1-3类似,涉及到储能的运行策略优化和储能的最优配置策略,需要对其进行数学建模,得到优化结果。
        这里直接给出经济性分析结果,代码可在博客最后获取。

3)与各园区独立运营相比,园区联合运营有何经济收益,试分析导致经济收益改变的主要因素。

问题2-3分析:

        这一问结合2-1与2-2的结果,进行定性和定量分析即可。

问题 3:园区风、光、储能的协调配置方案及其经济性分析

        如果园区经理委托你制定园区未来的风光储协调配置方案,并给出方案经济性分析论证报告。
        制定配置方案的条件:三个园区的最大负荷增长 50%,且负荷波动特性不变,风电、光伏电源的配置成本分别为 3000 /kW 2500 /kW ,投资回报期按 5 年考虑。
1 )分别按各园区独立运营、联合运营制定风光储协调配置方案;
2 )按附件 3 给出的全年 12 个月典型日风光发电功率数据,网购电采用如表 1 所示分时电价,制定各园区独立运营的风光储协调配置方案。

完整代码获取:

2024年电工杯A题:园区微电网风光储协调优化配置matlab代码-CSDN文库

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

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

相关文章

亚马逊测评自养号需要解决哪些问题?

我们首先了解一下测评是什么 测评就是类似于国内某宝和某多补销量一样&#xff0c;可以快速提升产品销量和优质的评价&#xff0c;从而让产品的权重上升&#xff0c;可以上升产品排名 也可以防范同行的恶意差评&#xff0c;可以用好评稀释差评&#xff0c;从而控评&#xff0…

Mybatis Cache(二)MybatisCache+Redis

前面提到了&#xff0c;使用mybatis cache&#xff0c;一般是结合redis使用。 一、demo 1、数据表 create table demo.t_address (id int auto_incrementprimary key,address_name varchar(200) null,address_code varchar(20) null,address_type int n…

七个很酷的GenAI LLM技术性面试问题

不同于互联网上随处可见的传统问题库&#xff0c;这些问题需要跳出常规思维。 大语言模型(LLM)在数据科学、生成式人工智能(GenAI)和人工智能领域越来越重要。这些复杂的算法提升了人类的技能&#xff0c;并在诸多行业中推动了效率和创新性的提升&#xff0c;成为企业保持竞争…

2024年山东省安全员C证证模拟考试题库及山东省安全员C证理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年山东省安全员C证证模拟考试题库及山东省安全员C证理论考试试题是由安全生产模拟考试一点通提供&#xff0c;山东省安全员C证证模拟考试题库是根据山东省安全员C证最新版教材&#xff0c;山东省安全员C证大纲整理…

营收净利双降、股东减持,大降价也救不了良品铺子

号称“高端零食第一股”的良品铺子(603719.SH)&#xff0c;正遭遇部分股东的“用脚投票”。 5月17日晚间&#xff0c;良品铺子连发两份减持公告&#xff0c;其控股股东宁波汉意创业投资合伙企业、持股5%以上股东达永有限公司&#xff0c;两者均计划减持。 其中&#xff0c;宁…

全栈安全 为云而生 | 亚信安全信舱ForCloud全新品牌重磅发布

5月18日&#xff0c;亚信安全云安全全新品牌ForCloud正式发布。基于“全栈安全 为云而生”的创新理念&#xff0c;亚信安全云安全完成全新、全面、全栈升级。ForCloud的发布仪式在C3安全大会“云领未来&#xff1a;全栈一体化”云安全论坛上隆重举办&#xff0c;同时亚信安全还…

深度学习之基于Tensorflow识别人脸表情及情绪

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 人脸表情及情绪识别是计算机视觉领域的一个重要研究方向&#xff0c;它在人机交互、情感计算、…

C++贪心算法(2)

最大子矩阵 #include<bits/stdc.h> using namespace std; int main() {int n;cin>>n;int a[110][110]{0};int b[110][110]{0};for(int i1;i<n;i){for(int j1;j<n;j){cin>>a[i][j];if(i1&&j1){b[i][j]b[i][j-1]a[i][j];}else{b[i][j]b[i][j-1]…

接口使用实例——数组排序

对于基本数据类型的大小比较&#xff0c;我们可以使用<,>,或者equals方法进行比较&#xff0c;但是对象之间如何进行比较呢&#xff1f;要对对象进行比较&#xff0c;我们必须对同一个成员变量进行比较&#xff0c;如我们可以通过比较name的大小来得出两个对象的大小&…

【一步一步了解Java系列】:何为数组,何为引用类型

看到这句话的时候证明&#xff1a;此刻你我都在努力加油陌生人个人主页&#xff1a;Gu Gu Study专栏&#xff1a;一步一步了解Java 喜欢的一句话&#xff1a; 常常会回顾努力的自己&#xff0c;所以要为自己的努力留下足迹 喜欢的话可以点个赞谢谢了。 数组 数组是一推相同数据…

数据迁移利器登场!Elasticdumpv6.110震撼发布,助你轻松搬迁大数据!

简介 Elasticdump 是一个用于导出和导入 Elasticsearch 数据的工具。它能够从一个 Elasticsearch 集群读取数据并写入到另一个 Elasticsearch 集群、文件系统或其他数据存储&#xff08;例如 S3&#xff09;。这个工具非常有用&#xff0c;特别是在进行数据迁移、备份和恢复操作…

2024年学浪视频怎么下载到手机相册

随着2024年的到来&#xff0c;学浪平台继续为广大学习者提供优质的在线教育资源。然而&#xff0c;如何将这些宝贵的视频内容下载到手机相册&#xff0c;方便随时离线观看呢&#xff1f;无论您是想在旅途中学习&#xff0c;还是希望在没有网络的情况下复习课程&#xff0c;本文…

1106 2019数列

solution 维护长度为4的数组&#xff0c;对于第四位之后的数字&#xff0c;为所维护数组的所有元素之和 的个位数 #include<iostream> using namespace std; int main(){int n, a[4] {2, 0, 1, 9}, cnt 0, d;scanf("%d", &n);for(int i 0; i < n; …

kettle从入门到精通 第六十三课 ETL之kettle kettle调用python脚本的两种方法

想真正学习或者提升自己的ETL领域知识的朋友欢迎进群&#xff0c;一起学习&#xff0c;共同进步。若二维码失效&#xff0c;公众号后台加我微信入群&#xff0c;备注kettle。 kettle中不能直接调用python脚本&#xff0c;可以通过shell脚本和http进行调用pyton服务。 一、shel…

Golang | Leetcode Golang题解之第97题交错字符串

题目&#xff1a; 题解&#xff1a; func isInterleave(s1 string, s2 string, s3 string) bool {n, m, t : len(s1), len(s2), len(s3)if (n m) ! t {return false}f : make([]bool, m 1)f[0] truefor i : 0; i < n; i {for j : 0; j < m; j {p : i j - 1if i >…

C++的数据结构(十八):并查集

并查集&#xff08;Union-Find&#xff09;是一种用于处理一些不交集&#xff08;Disjoint Sets&#xff09;问题的数据结构。它主要支持两种操作&#xff1a;合并集合&#xff08;Union&#xff09;和查找元素所属集合&#xff08;Find&#xff09;。在解决诸如连通性问题、网…

Ruoyi框架学习——权限管理

权限分类 菜单权限&#xff1a;用户登录系统之后能看到哪些菜单按钮权限&#xff1a;用户在一个页面上能看到哪些按钮&#xff0c;比如新增、删除等按钮接口权限&#xff1a;用户带着认证信息请求后端接口&#xff0c;是否有权限访问&#xff0c;该接口和前端页面上的按钮一一对…

AI生成内容检测|Fast-DetectGPT:通过条件概率曲率对机器生成文本进行有效的零样本检测

【摘要】大型语言模型 (LLM) 已显示出生成流畅且有说服力的内容的能力&#xff0c;这既带来了生产力机会&#xff0c;也带来了社会风险。要构建值得信赖的 AI 系统&#xff0c;必须区分机器生成的内容和人类创作的内容。领先的零样本检测器 DetectGPT 展示了值得称赞的性能&…

Github 2024-05-25 Rust开源项目日报Top10

根据Github Trendings的统计,今日(2024-05-25统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10Svelte项目1TypeScript项目1Python项目1Go项目1Dart项目1RustDesk: 用Rust编写的开源远程桌面软件 创建周期:1218 天开发语言:Rust…

如果有多个文件夹,怎么快速获得文件夹的名字呢

上一篇写到怎么批量建立文件夹&#xff0c;那么怎么获取批量文件夹的名字呢&#xff1f; 一、啊这&#xff0c;这真是一个好问题二、这个得用Python&#xff08;文本末尾有打包程序&#xff0c;点击链接运行就可以了&#xff09;&#xff08;1&#xff09;首先建立一个py文件&a…