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

相关文章

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的