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

本文主要是介绍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文库

这篇关于2024“电工杯”数学建模A题《园区微电网风光储协调优化配置》思路和代码分享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

MySQL 安装配置超完整教程

《MySQL安装配置超完整教程》MySQL是一款广泛使用的开源关系型数据库管理系统(RDBMS),由瑞典MySQLAB公司开发,目前属于Oracle公司旗下产品,:本文主要介绍MySQL安装配置... 目录一、mysql 简介二、下载 MySQL三、安装 MySQL四、配置环境变量五、配置 MySQL5.1

MySQL 添加索引5种方式示例详解(实用sql代码)

《MySQL添加索引5种方式示例详解(实用sql代码)》在MySQL数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中,下面给大家分享MySQL添加索引5种方式示例详解(实用sql代码),... 在mysql数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中。索引可以在创建表时定义,也可

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

mybatis的mapper对应的xml写法及配置详解

《mybatis的mapper对应的xml写法及配置详解》这篇文章给大家介绍mybatis的mapper对应的xml写法及配置详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录前置mapper 对应 XML 基础配置mapper 对应 xml 复杂配置Mapper 中的相

Python实现一键PDF转Word(附完整代码及详细步骤)

《Python实现一键PDF转Word(附完整代码及详细步骤)》pdf2docx是一个基于Python的第三方库,专门用于将PDF文件转换为可编辑的Word文档,下面我们就来看看如何通过pdf2doc... 目录引言:为什么需要PDF转Word一、pdf2docx介绍1. pdf2docx 是什么2. by

Spring Security介绍及配置实现代码

《SpringSecurity介绍及配置实现代码》SpringSecurity是一个功能强大的Java安全框架,它提供了全面的安全认证(Authentication)和授权(Authorizatio... 目录简介Spring Security配置配置实现代码简介Spring Security是一个功能强

SpringCloud使用Nacos 配置中心实现配置自动刷新功能使用

《SpringCloud使用Nacos配置中心实现配置自动刷新功能使用》SpringCloud项目中使用Nacos作为配置中心可以方便开发及运维人员随时查看配置信息,及配置共享,并且Nacos支持配... 目录前言一、Nacos中集中配置方式?二、使用步骤1.使用$Value 注解2.使用@Configur

Python处理大量Excel文件的十个技巧分享

《Python处理大量Excel文件的十个技巧分享》每天被大量Excel文件折磨的你看过来!这是一份Python程序员整理的实用技巧,不说废话,直接上干货,文章通过代码示例讲解的非常详细,需要的朋友可... 目录一、批量读取多个Excel文件二、选择性读取工作表和列三、自动调整格式和样式四、智能数据清洗五、

通过cmd获取网卡速率的代码

《通过cmd获取网卡速率的代码》今天从群里看到通过bat获取网卡速率两段代码,感觉还不错,学习bat的朋友可以参考一下... 1、本机有线网卡支持的最高速度:%v%@echo off & setlocal enabledelayedexpansionecho 代码开始echo 65001编码获取: >

Java集成Onlyoffice的示例代码及场景分析

《Java集成Onlyoffice的示例代码及场景分析》:本文主要介绍Java集成Onlyoffice的示例代码及场景分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 需求场景:实现文档的在线编辑,团队协作总结:两个接口 + 前端页面 + 配置项接口1:一个接口,将o