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

相关文章

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

windos server2022里的DFS配置的实现

《windosserver2022里的DFS配置的实现》DFS是WindowsServer操作系统提供的一种功能,用于在多台服务器上集中管理共享文件夹和文件的分布式存储解决方案,本文就来介绍一下wi... 目录什么是DFS?优势:应用场景:DFS配置步骤什么是DFS?DFS指的是分布式文件系统(Distr

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨