本文主要是介绍2024“电工杯”数学建模A题《园区微电网风光储协调优化配置》思路和代码分享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
A 题:园区微电网风光储协调优化配置
这个题目整体就是一个优化问题,可以采用Matlab+Yalmip+Gurobi求解器进行求解,持续更新中,敬请关注!!
问题 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园区功率平衡分析')
运行结果为:
问题1-2分析:
问题1-3分析:
问题 2:联合园区储能配置方案及其经济性分析
问题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分析:
(3)与各园区独立运营相比,园区联合运营有何经济收益,试分析导致经济收益改变的主要因素。
问题2-3分析:
问题 3:园区风、光、储能的协调配置方案及其经济性分析
完整代码获取:
这篇关于2024“电工杯”数学建模A题《园区微电网风光储协调优化配置》思路和代码分享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!