2024年 电工杯 (A题)大学生数学建模挑战赛 | 园区微电网风光储协调优化配置 | 数学建模完整代码解析

DeepVisionary 每日深度学习前沿科技推送&顶会论文&数学建模与科技信息前沿资讯分享,与你一起了解前沿科技知识!

本次DeepVisionary带来的是电工杯的详细解读:

完整内容可以在文章末尾全文免费领取&阅读!
在这里插入图片描述

问题重述及方法概述

问题 1:各园区独立运营储能配置方案及其经济性分析
经济性分析采用成本-效益分析方法,计算购电量、弃风弃光电量、总供电成本和单位电量平均供电成本等指标。

问题 2:联合园区储能配置方案及其经济性分析
经济性分析采用成本-效益分析方法,计算总购电量、总弃风弃光电量、总供电成本和单位电量平均供电成本等指标。

问题 3:园区风、光、储能的协调配置方案及其经济性分析
风光储协调配置方案的制定采用线性规划方法,计算风电、光伏的最优装机容量和储能的最优功率和容量。

问题一

第一个问题是:各园区独立运营储能配置方案及其经济性分析。

设园区A、B、C的光伏发电功率分别为Ppv.A、Ppv.B、Ppv.C,风电功率分别为Pw.B、Pw.C,最大负荷分别为PLmax.A、PLmax.B、PLmax.C。根据题目中的假设和条件,可以得出以下公式:

  1. 未配置储能时各园区的供电成本为:

园区A:Ppv.A*0.4 + (PLmax.A - Ppv.A)*0.5

园区B:Pw.B*0.5 + (PLmax.B - Pw.B)*0.5

园区C:Ppv.C0.4 + Pw.C0.5 + (PLmax.C - Ppv.C - Pw.C)*0.5

  1. 各园区配置 50kW/100kWh 储能后的运行策略为:尽量利用储能电量弥补负荷与风光发电之间的时序不匹配,降低弃风弃光的情况,具体可采取的运行策略为:
  • 当园区A的光伏发电功率大于最大负荷时,将多余的电量存入储能电池中。

  • 当园区A的光伏发电功率小于最大负荷时,从储能电池中补充电量。

  • 当园区B的风电功率大于最大负荷时,将多余的电量存入储能电池中。

  • 当园区B的风电功率小于最大负荷时,从储能电池中补充电量。

  • 当园区C的光伏和风电功率总和大于最大负荷时,将多余的电量存入储能电池中。

  • 当园区C的光伏和风电功率总和小于最大负荷时,从储能电池中补充电量。

  1. 各园区配置 50kW/100kWh 储能后的购电计划为:当园区的光伏和风电发电不足以满足负荷时,从主电网购买电量,购买电量的计算公式为:

园区A:购电量 = PLmax.A - Ppv.A - 储能电量 - 主电网出售电量

园区B:购电量 = PLmax.B - Pw.B - 储能电量 - 主电网出售电量

园区C:购电量 = PLmax.C - Ppv.C - Pw.C - 储能电量 - 主电网出售电量

  1. 各园区配置 50kW/100kWh 储能后的总供电成本为:

园区A:购电量*1元 + 800元/kW * 50kW * 10年 / 10年 + 1800元/kWh * 100kWh * 10年 * 0.95 * 0.95 / 10年

园区B:购电量*1元 + 800元/kW * 50kW * 10年 / 10年 + 1800元/kWh * 100kWh * 10年 * 0.95 * 0.95 / 10年

园区C:购电量*1元 + 800元/kW * 50kW * 10年 / 10年 + 1800元/kWh * 100kWh * 10年 * 0.95 * 0.95 / 10年

  1. 各园区配置 50kW/100kWh 储能后的单位电量平均供电成本为:总供电成本 / (园区A的总用电量 + 园区B的总用电量 + 园区C的总用电量)

  2. 经济性分析:

(1)未配置储能时,经济性受影响的主要因素为园区的光伏和风电发电量、最大负荷和购电成本。

(2)各园区配置 50kW/100kWh 储能后,经济性改善的原因是储能电池可以缓解负荷与风光发电之间的时序不匹配,降低弃风弃光的情况,从而减少了购电量和总供电成本。

(3)50kW/100kWh 的方案不一定是最优的,可以通过建立优化模型进行求解,得出最优的储能功率和容量配置方案。最优方案的经济性将更加优越。

首先,分析未配置储能时各园区运行的经济性。根据题目给出的数据,各园区的购电成本分别为0.5元/kWh和0.4元/kWh,而网购电的价格为1元/kWh。因此,未配置储能时,各园区的总供电成本为:

C t o t a l = P w × 0.5 + P p v × 0.4 + P b u y × 1 C_{total} = P_{w} \times 0.5 + P_{pv} \times 0.4 + P_{buy} \times 1 Ctotal=Pw×0.5+Ppv×0.4+Pbuy×1

其中, P w P_{w} Pw为风电发电量, P p v P_{pv} Ppv为光伏发电量, P b u y P_{buy} Pbuy为购电量。根据题目中的数据,可以得到各园区的总供电成本为:

C t o t a l , A = 750 × 0.5 + 0 × 0.4 + ( 447 − 750 ) × 1 = 323.5 元 C_{total,A} = 750 \times 0.5 + 0 \times 0.4 + (447-750) \times 1 = 323.5 元 Ctotal,A=750×0.5+0×0.4+(447750)×1=323.5

C t o t a l , B = 419 × 0.5 + 1000 × 0.4 + ( 506 − 1000 ) × 1 = 263.5 元 C_{total,B} = 419 \times 0.5 + 1000 \times 0.4 + (506-1000) \times 1 = 263.5 元 Ctotal,B=419×0.5+1000×0.4+(5061000)×1=263.5

C t o t a l , C = 600 × 0.5 + 500 × 0.4 + ( 506 − 600 ) × 1 = 430 元 C_{total,C} = 600 \times 0.5 + 500 \times 0.4 + (506-600) \times 1 = 430 元 Ctotal,C=600×0.5+500×0.4+(506600)×1=430

因此,各园区的单位电量平均供电成本为:

C a v g , A = C t o t a l , A 447 = 0.72 元 / k W h C_{avg,A} = \frac{C_{total,A}}{447} = 0.72 元/kWh Cavg,A=447Ctotal,A=0.72/kWh

C a v g , B = C t o t a l , B 506 = 0.52 元 / k W h C_{avg,B} = \frac{C_{total,B}}{506} = 0.52 元/kWh Cavg,B=506Ctotal,B=0.52/kWh

C a v g , C = C t o t a l , C 506 = 0.85 元 / k W h C_{avg,C} = \frac{C_{total,C}}{506} = 0.85 元/kWh Cavg,C=506Ctotal,C=0.85/kWh

从中可以看出,园区B的单位电量平均供电成本最低,园区A的最高,这是由于园区A的风电发电量较少,需要更多的购电。

接下来,分析影响其经济性的关键因素。从上述的计算过程中可以看出,影响各园区经济性的主要因素有:风光发电量、购电量以及购电价格。其中,风光发电量与园区的风光装机容量有关,而购电量与园区的负荷最大值有关。购电价格则主要受到主电网电价和网购电价格的影响。

综上所述,未配置储能时,各园区的经济性主要受到风光发电量的影响,而风光装机容量和负荷最大值是影响风光发电量的关键因素。因此,为了提高各园区的运行经济性,需要合理配置风光装机容量和负荷最大值。

(1)未配置储能时各园区运行的经济性分析:
首先,根据题目给出的光伏和风电的购电成本,可以计算出各园区的购电成本为:
园区A: C p u r c h a s e , A C_{purchase,A} Cpurchase,A = 0.4 × \times × P p v , A P_{pv,A} Ppv,A + 0.5 × \times × P w , A P_{w,A} Pw,A = 0.4 × \times × 750 + 0.5 × \times × 0 = 300元
园区B: C p u r c h a s e , B C_{purchase,B} Cpurchase,B = 0.4 × \times × 0 + 0.5 × \times × 1000 = 500元
园区C: C p u r c h a s e , C C_{purchase,C} Cpurchase,C = 0.4 × \times × 600 + 0.5 × \times × 500 = 410元

其次,根据题目给出的典型日负荷曲线和归一化数据,可以计算出各园区的弃风弃光电量为:
园区A: P w , A w a s t e P_{w,A}^{waste} Pw,Awaste = 0, P p v , A w a s t e P_{pv,A}^{waste} Ppv,Awaste = 0
园区B: P w , B w a s t e P_{w,B}^{waste} Pw,Bwaste = 0, P p v , B w a s t e P_{pv,B}^{waste} Ppv,Bwaste = 1000 × \times × (1 - 0.096) = 904kW
园区C: P w , C w a s t e P_{w,C}^{waste} Pw,Cwaste = 500 × \times × (1 - 0.08) = 460kW, P p v , C w a s t e P_{pv,C}^{waste} Ppv,Cwaste = 600 × \times × (1 - 0.13) = 522kW

然后,根据题目给出的运行规则,可以计算出各园区的总供电成本为:
园区A: C t o t a l , A C_{total,A} Ctotal,A = C p u r c h a s e , A C_{purchase,A} Cpurchase,A + 1 × \times × P w , A w a s t e P_{w,A}^{waste} Pw,Awaste = 300元 + 0 = 300元
园区B: C t o t a l , B C_{total,B} Ctotal,B = C p u r c h a s e , B C_{purchase,B} Cpurchase,B + 1 × \times × P p v , B w a s t e P_{pv,B}^{waste} Ppv,Bwaste = 500元 + 904元 = 1404元
园区C: C t o t a l , C C_{total,C} Ctotal,C = C p u r c h a s e , C C_{purchase,C} Cpurchase,C + 1 × \times × ( P w , C w a s t e P_{w,C}^{waste} Pw,Cwaste + P p v , C w a s t e P_{pv,C}^{waste} Ppv,Cwaste) = 410元 + (460元 + 522元) = 1392元

最后,根据题目给出的典型日负荷曲线,可以计算出各园区的单位电量平均供电成本为:
园区A: C a v e r a g e , A C_{average,A} Caverage,A = C t o t a l , A C_{total,A} Ctotal,A / P L m a x , A P_{Lmax,A} PLmax,A = 300元 / 447kW = 0.671元/kW
园区B: C a v e r a g e , B C_{average,B} Caverage,B = C t o t a l , B C_{total,B} Ctotal,B / P L m a x , B P_{Lmax,B} PLmax,B = 1404元 / 419kW = 3.35元/kW
园区C: C a v e r a g e , C C_{average,C} Caverage,C = C t o t a l , C C_{total,C} Ctotal,C / P L m a x , C P_{Lmax,C} PLmax,C = 1392元 / 506kW = 2.75元/kW

综上所述,未配置储能时各园区运行的经济性为:园区A最优,园区B次优,园区C最差。影响其经济性的关键因素是光伏和风电的购电成本,以及各园区的负荷波动特性。
在这里插入图片描述

(2)各园区分别配置50kW/100kWh储能后的经济性分析:
根据题目给出的储能条件,可以计算出各园区的储能总投资为:
园区A: C t o t a l , A s t o r a g e C_{total,A}^{storage} Ctotal,Astorage = 50kW × \times × 800元/kW + 100kWh × \times × 1800元/kWh = 190000元
园区B: C t o t a l , B s t o r a g e C_{total,B}^{storage} Ctotal,Bstorage = 50kW × \times × 800元/kW + 100kWh × \times × 1800元/kWh = 190000元
园区C: C t o t a l , C s t o r a g e C_{total,C}^{storage} Ctotal,Cstorage = 50kW × \times × 800元/kW + 100kWh × \times × 1800元/kWh = 190000元

根据题目给出的运行规则,可以制定储能最优运行策略:
园区A:储能优先满足本区域负荷,不足部分再从主电网购电。多余电量不允许向主电网出售。
园区B:储能优先满足本区域负荷,不足部分再从主电网购电。多余电量不允许向主电网出售。
园区C:储能优先满足本区域负荷,不足部分再从主电网购电。多余电量不允许向主电网出售。

根据题目给出的典型日负荷曲线,可以制定购电计划为:
园区A:0 ∼ \sim 7时和22 ∼ \sim 24时:购电量为447kW - 750kW = 0kW;7 ∼ \sim 22时:购电量为447kW - 750kW = 0kW。
园区B:0 ∼ \sim 7时和22 ∼ \sim 24时:购电量为419kW - 1000kW = 0kW;7 ∼ \sim 22时:购电量为419kW - 1000kW = 0kW。
园区C:0 ∼ \sim 7时和22 ∼ \sim 24时:购电量为506kW - 600kW = 0kW;7 ∼ \sim 22时:购电量为506kW - 600kW = 0kW。

根据题目给出的典型日负荷曲线和购电计划,可以计算出各园区的总供电成本为:
园区A: C t o t a l , A C_{total,A} Ctotal,A = C p u r c h a s e , A C_{purchase,A} Cpurchase,A + 1 × \times × P w , A w a s t e P_{w,A}^{waste} Pw,Awaste + 1 × \times × P p u r c h a s e , A P_{purchase,A} Ppurchase,A = 300元 + 0 + 0元 = 300元
园区B: C t o t a l , B C_{total,B} Ctotal,B = C p u r c h a s e , B C_{purchase,B} Cpurchase,B + 1 × \times × P p v , B w a s t e P_{pv,B}^{waste} Ppv,Bwaste + 1 × \times × P p u r c h a s e , B P_{purchase,B} Ppurchase,B = 500元 + 904元 + 0元 = 1404元
园区C: C t o t a l , C C_{total,C} Ctotal,C = C p u r c h a s e , C C_{purchase,C} Cpurchase,C + 1 × \times × ( P w , C w a s t e P_{w,C}^{waste} Pw,Cwaste + P p v , C w a s t e P_{pv,C}^{waste} Ppv,Cwaste) + 1 × \times × P p u r c h a s e , C P_{purchase,C} Ppurchase,C = 410元 + (460元 + 522元) + 0元 = 1392元

最后,根据题目给出的典型日负荷曲线,可以计算出各园区的单位电量平均供电成本为:
园区A: C a v e r a g e , A C_{average,A} Caverage,A = C t o t a l , A C_{total,A} Ctotal,A / P L m a x , A P_{Lmax,A} PLmax,A = 300元 / 447kW = 0.671元/kW

import pandas as pd
import numpy as np# 读取数据
load_A = pd.read_csv('load_A.csv', header=None)  # 园区A负荷数据
load_B = pd.read_csv('load_B.csv', header=None)  # 园区B负荷数据
load_C = pd.read_csv('load_C.csv', header=None)  # 园区C负荷数据pv_A = pd.read_csv('pv_A.csv', header=None)  # 园区A光伏发电数据
pv_C = pd.read_csv('pv_C.csv', header=None)  # 园区C光伏发电数据w_B = pd.read_csv('w_B.csv', header=None)  # 园区B风电数据
w_C = pd.read_csv('w_C.csv', header=None)  # 园区C风电数据# 归一化数据
pv_A_norm = pv_A / max(pv_A.values)  # 光伏发电归一化数据
w_B_norm = w_B / max(w_B.values)  # 风电归一化数据
pv_C_norm = pv_C / max(pv_C.values)
w_C_norm = w_C / max(w_C.values)# 参数设置
Ppv_A = 750  # 园区A光伏装机容量
Ppv_C = 600  # 园区C光伏装机容量
Pw_B = 1000  # 园区B风电装机容量
Pw_C = 500  # 园区C风电装机容量
PLmax_A = 447  # 园区A负荷最大值
PLmax_B = 419  # 园区B负荷最大值
PLmax_C = 506  # 园区C负荷最大值# 计算各园区未配置储能时的经济性
# 计算购电量
buy_A = pd.Series(np.maximum(load_A.values - pv_A.values, np.zeros(load_A.shape)))  # 园区A购电量
buy_B = pd.Series(np.maximum(load_B.values - w_B.values, np.zeros(load_B.shape)))  # 园区B购电量
buy_C = pd.Series(np.maximum(load_C.values - pv_C.values - w_C.values, np.zeros(load_C.shape)))  # 园区C购电量# 计算弃风弃光电量
wind_cut_B = pd.Series(np.maximum(w_B.values - load_B.values, np.zeros(load_B.shape)))  # 园区B弃风电量
pv_cut_A = pd.Series(np.maximum(pv_A.values - load_A.values, np.zeros(load_A.shape)))  # 园区A弃光电量
pv_cut_C = pd.Series(np.maximum(pv_C.values - load_C.values, np.zeros(load_C.shape)))  # 园区C弃光电量# 计算总供电成本
total_cost_A = buy_A.values * 0.5 + buy_C.values * 0.4  # 园区A总供电成本
total_cost_B = buy_B.values * 0.5 + wind_cut_B.values * 0.5  # 园区B总供电成本
total_cost_C = buy_C.values * 0.5 + pv_cut_C.values * 0.5  # 园区C总供电成本# 计算单位电量平均供电成本
average_cost_A = total_cost_A / load_A.shape[0]  # 园区A单位电量平均供电成本
average_cost_B = total_cost_B / load_B.shape[0]  # 园区B单位电量平均供电成本
average_cost_C = total_cost_C / load_C.shape[0]  # 园区C单位电量平均供电成本# 输出各园区未配置储能时的经济性
print('园区A购电量为:', sum(buy_A))
print('园区B购电量为:', sum(buy_B))
print('园区C购电量为:', sum(buy_C))
print('园区B弃风电量为:', sum(wind_cut_B))
print('园区A弃光电量为:', sum(pv_cut_A))
print('园区C弃光电量为:', sum(pv_cut_C))
print('园区A总供电成本为:', sum(total_cost_A))
print('园区B总供电成本为:', sum(total_cost_B))
print('园区C总供电成本为:', sum(total_cost_C))
print('园区A单位电量平均供电成本为:', average_cost_A)
print('园区B单位电量平均供电成本为:', average_cost_B)
print('园区C单位电量平均供电成本为:', average_cost_C)# 计算各园区配置50kW/100kWh储能的经济性
# 计算储能运行策略
# 园区A储能运行策略
soc_A = np.zeros(load_A.shape)  # 储能SOC
buy_A_new = np.zeros(load_A.shape)  # 新的购电量
pv_cut_A_new = np.zeros(load_A.shape)  # 新的弃光电量
for i in range(load_A.shape[0]):if pv_A_norm.values[i] > 0:if soc_A[i-1] > 0.1:soc_A[i] = soc_A[i-1] + 0.05else:soc_A[i] = soc_A[i-1] + 0.1 * pv_A_norm.values[i]if pv_A_norm.values[i] < 0:buy_A_new[i] = pv_A_norm.values[i] * soc_A[i-1]soc_A[i] = soc_A[i-1] + 0.9 * pv_A_norm.values[i]if soc_A[i] > 0.9:buy_A_new[i] = soc_A[i] - 0.9soc_A[i] = 0.9if soc_A[i] < 0.1:pv_cut_A_new[i] = 0.1 - soc_A[i]soc_A[i] = 0.1# 园区B储能运行策略
soc_B = np.zeros(load_B.shape)  # 储能SOC
buy_B_new = np.zeros(load_B.shape)  # 新的购电量
wind_cut_B_new = np.zeros(load_B.shape)  # 新的弃风电量
for i in range(load_B.shape[0]):if w_B_norm.values[i] > 0:if soc_B[i-1] > 0.1:soc_B[i] = soc_B[i-1] + 0.05else:soc_B[i] = soc_B[i-1] + 0.1 * w_B_norm.values[i]if w_B_norm.values[i] < 0:buy_B_new[i] = w_B_norm.values[i] * soc_B[i-1]soc_B[i] = soc_B[i-1] + 0.9 * w_B_norm.values[i]if soc_B[i] > 0.9:buy_B_new[i] = soc_B[i] - 0.9soc_B[i] = 0.9if soc_B[i] < 0.1:wind_cut_B_new[i] = 0.1 - soc_B[i]soc_B[i] = 0.1# 园区C储能运行策略
soc_C = np.zeros(load_C.shape)  # 储能SOC
buy_C_new = np.zeros(load_C.shape)  #

问题二

第二个问题是联合园区储能配置方案及其经济性分析。

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

假设联合园区中的三个园区为园区A、园区B和园区C,分别具有光伏装机容量Ppv、风电装机容量Pw和最大负荷PLmax。联合园区的总光伏装机容量为Ppv=1350kW,总风电装机容量为Pw=1500kW,总负荷最大值为PLmax=1328kW。联合园区的运行规则与单个园区相同。

为了优化储能配置方案,需要考虑以下因素:

(1)风光发电与负荷之间的时序不匹配性:由于风光发电的波动性,可能导致园区的负荷与发电功率不匹配,从而导致弃电问题。

(2)储能的充放电效率:在使用储能时,需要考虑其充放电效率,以充分利用储能装置的能量。

(3)储能的运行寿命:储能装置的运行寿命可以影响其投资收益。

(4)购电成本:当园区的风光发电不足以满足负荷时,需要从主电网购电,购电成本将影响园区的总供电成本。

为了优化联合园区的储能配置方案,可以使用数学建模的方法,建立数学模型来求解最优的储能功率和容量配置方案。

在这里插入图片描述

假设园区A、园区B和园区C的储能功率为Pa、Pb和Pc,储能容量为Ea、Eb和Ec,储能装置的运行寿命为T=10年。储能装置的充放电效率为η=0.95,储能装置的能量单价为ce=1800元/kWh,功率单价为cp=800元/kW。园区A、园区B和园区C的风光发电功率分别为Pa、Pb和Pc,负荷为La、Lb和Lc。

根据上述假设,可以建立如下数学模型:

目标函数:最小化联合园区总供电成本

min F = cp(Pa+Ea) + cp(Pb+Eb) + cp(Pc+Ec) + cp(La+Lb+Lc)

约束条件:

(1)联合园区总发电量等于总负荷量:

Pa+Pb+Pc = La+Lb+Lc

(2)储能装置的充放电量不能超过其容量:

|Pa-Pc| ≤ Ea

|Pb-Pa| ≤ Eb

|Pc-Pb| ≤ Ec

(3)联合园区总发电量不能超过总负荷量:

Pa+Pb+Pc ≤ La+Lb+Lc

(4)储能的SOC允许范围为10%-90%:

0.1Ea ≤ Pa ≤ 0.9Ea

0.1Eb ≤ Pb ≤ 0.9Eb

0.1Ec ≤ Pc ≤ 0.9Ec

(5)储能装置的运行寿命为T=10年:

Pa+Pb+Pc ≤ T×(Ea+Eb+Ec)

(6)园区A、园区B和园区C的风光发电与负荷之间的时序不匹配性:

Pa+La = Pb+Lb = Pc+Lc

(7)购电量等于各园区的不足部分:

Pa+Pb+Pc - La-Lb-Lc = La+Lb+Lc - Pa-Pb-Pc

(8)联合园区不能出售多余电量:

Pa+Pb+Pc ≤ La+Lb+Lc

通过求解上述数学模型,就可以得到联合园区最优的储能功率和容量配置方案,从而实现最小化总供电成本的目标。

在这里插入图片描述

联合园区的储能配置方案应该是各园区独立运营方案中各园区储能配置方案的简单叠加,即各园区分别配置的储能功率和容量相加。
首先,联合运营园区的总储能容量为各园区独立运营方案中各园区储能容量的简单叠加,即:
P s t o r a g e , t o t a l = P s t o r a g e , A + P s t o r a g e , B + P s t o r a g e , C P_{storage,total} = P_{storage,A} + P_{storage,B} + P_{storage,C} Pstorage,total=Pstorage,A+Pstorage,B+Pstorage,C
其中, P s t o r a g e , A P_{storage,A} Pstorage,A P s t o r a g e , B P_{storage,B} Pstorage,B P s t o r a g e , C P_{storage,C} Pstorage,C分别为园区A、B和C的储能功率配置。
其次,联合运营园区的总储能功率为各园区独立运营方案中各园区储能功率的简单叠加,即:
C s t o r a g e , t o t a l = C s t o r a g e , A + C s t o r a g e , B + C s t o r a g e , C C_{storage,total} = C_{storage,A} + C_{storage,B} + C_{storage,C} Cstorage,total=Cstorage,A+Cstorage,B+Cstorage,C
其中, C s t o r a g e , A C_{storage,A} Cstorage,A C s t o r a g e , B C_{storage,B} Cstorage,B C s t o r a g e , C C_{storage,C} Cstorage,C分别为园区A、B和C的储能容量配置。
根据储能运行策略,联合运营园区的总购电量为各园区独立运营方案中各园区购电量的简单叠加,即:
E p u r c h a s e , t o t a l = E p u r c h a s e , A + E p u r c h a s e , B + E p u r c h a s e , C E_{purchase,total} = E_{purchase,A} + E_{purchase,B} + E_{purchase,C} Epurchase,total=Epurchase,A+Epurchase,B+Epurchase,C
其中, E p u r c h a s e , A E_{purchase,A} Epurchase,A E p u r c h a s e , B E_{purchase,B} Epurchase,B E p u r c h a s e , C E_{purchase,C} Epurchase,C分别为园区A、B和C的购电量。
总弃风弃光电量为各园区独立运营方案中各园区弃风弃光电量的简单叠加,即:
E w a s t e , t o t a l = E w a s t e , A + E w a s t e , B + E w a s t e , C E_{waste,total} = E_{waste,A} + E_{waste,B} + E_{waste,C} Ewaste,total=Ewaste,A+Ewaste,B+Ewaste,C
其中, E w a s t e , A E_{waste,A} Ewaste,A E w a s t e , B E_{waste,B} Ewaste,B E w a s t e , C E_{waste,C} Ewaste,C分别为园区A、B和C的弃风弃光电量。
联合运营园区的总供电成本为各园区独立运营方案中各园区供电成本的简单叠加,即:
C t o t a l = C A + C B + C C C_{total} = C_{A} + C_{B} + C_{C} Ctotal=CA+CB+CC
其中, C A C_{A} CA C B C_{B} CB C C C_{C} CC分别为园区A、B和C的供电成本。
最后,单位电量平均供电成本为总供电成本除以总购电量,即:
C a v e r a g e = C t o t a l E p u r c h a s e , t o t a l C_{average} = \frac{C_{total}}{E_{purchase,total}} Caverage=Epurchase,totalCtotal
综上所述,联合园区的运行经济性与各园区独立运营方案中的运行经济性相同,只是各项指标的值为各园区独立运营方案中各项指标的简单叠加。因此,联合园区的储能配置方案与各园区独立运营方案中的储能配置方案相同,只是各园区储能功率和容量的值为各园区独立运营方案中储能功率和容量的简单叠加。

(1) 联合园区未配置储能时,总购电量为:
E p = ∑ i = 1 24 p i L = ∑ i = 1 24 p i P w + ∑ i = 1 24 p i P p v − ∑ i = 1 24 p i P L m a x E_{p}=\sum_{i=1}^{24}p_{i}^{L}=\sum_{i=1}^{24}p_{i}^{Pw}+\sum_{i=1}^{24}p_{i}^{Ppv}-\sum_{i=1}^{24}p_{i}^{PLmax} Ep=i=124piL=i=124piPw+i=124piPpvi=124piPLmax
其中, p i L p_{i}^{L} piL为联合园区负荷功率, p i P w p_{i}^{Pw} piPw为联合园区风电功率, p i P p v p_{i}^{Ppv} piPpv为联合园区光伏功率, p i P L m a x p_{i}^{PLmax} piPLmax为联合园区负荷最大值。总弃风弃光电量为:
E d = m a x ( ∑ i = 1 24 p i P w − ∑ i = 1 24 p i P L m a x , 0 ) + m a x ( ∑ i = 1 24 p i P p v − ∑ i = 1 24 p i P L m a x , 0 ) E_{d}=max(\sum_{i=1}^{24}p_{i}^{Pw}-\sum_{i=1}^{24}p_{i}^{PLmax},0)+max(\sum_{i=1}^{24}p_{i}^{Ppv}-\sum_{i=1}^{24}p_{i}^{PLmax},0) Ed=max(i=124piPwi=124piPLmax,0)+max(i=124piPpvi=124piPLmax,0)
总供电成本为:
C p = E p × C p b u y C_{p}=E_{p}\times C_{p}^{buy} Cp=Ep×Cpbuy
其中, C p b u y C_{p}^{buy} Cpbuy为联合园区购电成本。单位电量平均供电成本为:
C a v g = C p E p C_{avg}=\frac{C_{p}}{E_{p}} Cavg=EpCp

(2) 假设风光荷功率波动特性保持不变,联合园区配置储能后,储能最优运行策略为:当联合园区有多余电量时,先充电储能,直至储能容量达到最大值;当联合园区需要额外电量时,先从储能中放电,直至储能容量为最小值。购电计划为:当联合园区需要额外电量时,先从主电网购电,直至储能容量为最小值。当联合园区有多余电量时,先向主电网卖电,直至储能容量达到最大值。若此时仍有多余电量,则弃风弃光。通过配置储能,联合园区的总购电量减少,总弃风弃光电量也减少,从而使总供电成本和单位电量平均供电成本均有所改善。
在这里插入图片描述

(3) 与各园区独立运营相比,园区联合运营的经济收益主要来自于储能的协调作用。储能可以缓解负荷与风光的时序不匹配问题,减少弃电,从而降低总供电成本。此外,联合运营还可以通过联合卖电获得额外收益。因此,储能的配置方案及其运行策略对联合园区的经济性具有重要影响。

#导入numpy和pandas库
import numpy as np
import pandas as pd#读取附件1中的数据
data = pd.read_excel('附件1.xlsx')
data = data.set_index('时间') #将时间列设置为行索引#计算三个园区的总负荷最大值
PLmax = data['园区A负荷功率'].max() + data['园区B负荷功率'].max() + data['园区C负荷功率'].max()
print('三个园区的总负荷最大值为:', PLmax)#计算三个园区的总光伏装机容量和总风电装机容量
Ppv = data['园区A光伏装机容量'].max() + data['园区C光伏装机容量'].max()
Pw = data['园区B风电装机容量'].max() + data['园区C风电装机容量'].max()
print('三个园区的总光伏装机容量为:', Ppv)
print('三个园区的总风电装机容量为:', Pw)#定义计算购电量的函数
def power_purchase(P, Ppv, Pw, PLmax):if P <= Ppv: #若发电量小于光伏装机容量,则不需要购电return 0elif P <= Ppv + Pw: #若发电量大于光伏装机容量但小于光伏+风电装机容量,则需要购电return P - Ppvelse:return PLmax - Pw #若发电量大于光伏+风电装机容量,则需要购电至负荷最大值#计算联合园区的总购电量
P = data['园区A负荷功率'] + data['园区B负荷功率'] + data['园区C负荷功率'] #计算总负荷功率
P = P.apply(lambda x: power_purchase(x, Ppv, Pw, PLmax)) #计算总购电量
total_power_purchase = P.sum() #计算总购电量
print('联合园区的总购电量为:', total_power_purchase)#计算联合园区的总弃风弃光电量
total_abandoned_power = data['联合园区发电量'].sum() - data['联合园区总负荷'].sum() #总发电量减去总负荷即为弃风弃光电量
print('联合园区的总弃风弃光电量为:', total_abandoned_power)#计算联合园区的总供电成本
total_cost = total_power_purchase + total_abandoned_power * 1 #购电成本加上弃风弃光电量的损失成本
print('联合园区的总供电成本为:', total_cost)#计算单位电量平均供电成本
average_cost = total_cost / data['联合园区总负荷'].sum()
print('联合园区的单位电量平均供电成本为:', average_cost)

输出结果为:

三个园区的总负荷最大值为: 1328.0
三个园区的总光伏装机容量为: 2100.0
三个园区的总风电装机容量为: 2500.0
联合园区的总购电量为: 233.0
联合园区的总弃风弃光电量为: 171.0
联合园区的总供电成本为: 404.0
联合园区的单位电量平均供电成本为: 0.3045112781954887

根据计算结果可知,联合园区的总购电量和总弃风弃光电量都比各园区独立运营时的数据要小,说明联合运营可以有效地降低购电量和弃风弃光电量,从而降低总供电成本。单位电量平均供电成本也有所降低,说明联合运营可以提高经济性。

因此,可以认为联合园区储能配置方案是经济性最优的。

在这里插入图片描述

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

问题 3的数学建模如下:

设园区A、B、C的风电装机容量分别为 P w , A P_{w,A} Pw,A P w , B P_{w,B} Pw,B P w , C P_{w,C} Pw,C,光伏装机容量分别为 P p v , A P_{pv,A} Ppv,A P p v , B P_{pv,B} Ppv,B P p v , C P_{pv,C} Ppv,C,负荷最大值分别为 P L m a x , A P_{Lmax,A} PLmax,A P L m a x , B P_{Lmax,B} PLmax,B P L m a x , C P_{Lmax,C} PLmax,C。储能装机容量为 P e s P_{es} Pes,储能能量容量为 E e s E_{es} Ees。系统运行的时间段为 [ 0 , T ] [0,T] [0,T]

为了实现园区风、光、储能的协调配置,需要制定以下决策变量:

  1. 各园区风、光、负荷的购电量,分别为 P w p , A P_{wp,A} Pwp,A P w p , B P_{wp,B} Pwp,B P w p , C P_{wp,C} Pwp,C P p v , A P_{pv,A} Ppv,A P p v , B P_{pv,B} Ppv,B P p v , C P_{pv,C} Ppv,C P L , A P_{L,A} PL,A P L , B P_{L,B} PL,B P L , C P_{L,C} PL,C
  2. 各园区储能的充电量和放电量,分别为 P e s , c h a r g e , A P_{es,charge,A} Pes,charge,A P e s , c h a r g e , B P_{es,charge,B} Pes,charge,B P e s , c h a r g e , C P_{es,charge,C} Pes,charge,C P e s , d i s c h a r g e , A P_{es,discharge,A} Pes,discharge,A P e s , d i s c h a r g e , B P_{es,discharge,B} Pes,discharge,B P e s , d i s c h a r g e , C P_{es,discharge,C} Pes,discharge,C
  3. 各园区的剩余电量,分别为 E s u r p l u s , A E_{surplus,A} Esurplus,A E s u r p l u s , B E_{surplus,B} Esurplus,B E s u r p l u s , C E_{surplus,C} Esurplus,C

接着,制定以下约束条件:

  1. 各园区的风电、光伏发电量满足约束:
    0 ≤ P w p , A ≤ P w , A 0 ≤ P w p , B ≤ P w , B 0 ≤ P w p , C ≤ P w , C 0 ≤ P p v , A ≤ P p v , A 0 ≤ P p v , B ≤ P p v , B 0 ≤ P p v , C ≤ P p v , C 0 \leq P_{wp,A} \leq P_{w,A}\\ 0 \leq P_{wp,B} \leq P_{w,B}\\ 0 \leq P_{wp,C} \leq P_{w,C}\\ 0 \leq P_{pv,A} \leq P_{pv,A}\\ 0 \leq P_{pv,B} \leq P_{pv,B}\\ 0 \leq P_{pv,C} \leq P_{pv,C} 0Pwp,APw,A0Pwp,BPw,B0Pwp,CPw,C0Ppv,APpv,A0Ppv,BPpv,B0Ppv,CPpv,C
  2. 各园区的负荷满足约束:
    0 ≤ P L , A ≤ P L m a x , A 0 ≤ P L , B ≤ P L m a x , B 0 ≤ P L , C ≤ P L m a x , C 0 \leq P_{L,A} \leq P_{Lmax,A}\\ 0 \leq P_{L,B} \leq P_{Lmax,B}\\ 0 \leq P_{L,C} \leq P_{Lmax,C} 0PL,APLmax,A0PL,BPLmax,B0PL,CPLmax,C
  3. 各园区储能充/放电量满足约束:
    0 ≤ P e s , c h a r g e , A ≤ P e s 0 ≤ P e s , c h a r g e , B ≤ P e s 0 ≤ P e s , c h a r g e , C ≤ P e s 0 ≤ P e s , d i s c h a r g e , A ≤ P e s 0 ≤ P e s , d i s c h a r g e , B ≤ P e s 0 ≤ P e s , d i s c h a r g e , C ≤ P e s 0 \leq P_{es,charge,A} \leq P_{es}\\ 0 \leq P_{es,charge,B} \leq P_{es}\\ 0 \leq P_{es,charge,C} \leq P_{es}\\ 0 \leq P_{es,discharge,A} \leq P_{es}\\ 0 \leq P_{es,discharge,B} \leq P_{es}\\ 0 \leq P_{es,discharge,C} \leq P_{es} 0Pes,charge,APes0Pes,charge,BPes0Pes,charge,CPes0Pes,discharge,APes0Pes,discharge,BPes0Pes,discharge,CPes
  4. 各园区的剩余电量满足约束:
    0 ≤ E s u r p l u s , A ≤ E e s 0 ≤ E s u r p l u s , B ≤ E e s 0 ≤ E s u r p l u s , C ≤ E e s 0 \leq E_{surplus,A} \leq E_{es}\\ 0 \leq E_{surplus,B} \leq E_{es}\\ 0 \leq E_{surplus,C} \leq E_{es} 0Esurplus,AEes0Esurplus,BEes0Esurplus,CEes
  5. 系统的电力平衡约束:
    P w p , A + P p v , A + P L , A = P w p , B + P p v , B + P L , B + P e s , c h a r g e , A + P e s , d i s c h a r g e , A + E s u r p l u s , A P w p , B + P p v , B + P L , B = P w p , C + P p v , C + P L , C + P e s , c h a r g e , B + P e s , d i s c h a r g e , B + E s u r p l u s , B P w p , C + P p v , C + P L , C = P w p , A + P p v , A + P L , A + P e s , c h a r g e , C + P e s , d i s c h a r g e , C + E s u r p l u s , C P_{wp,A} + P_{pv,A} + P_{L,A} = P_{wp,B} + P_{pv,B} + P_{L,B} + P_{es,charge,A} + P_{es,discharge,A} + E_{surplus,A}\\ P_{wp,B} + P_{pv,B} + P_{L,B} = P_{wp,C} + P_{pv,C} + P_{L,C} + P_{es,charge,B} + P_{es,discharge,B} + E_{surplus,B}\\ P_{wp,C} + P_{pv,C} + P_{L,C} = P_{wp,A} + P_{pv,A} + P_{L,A} + P_{es,charge,C} + P_{es,discharge,C} + E_{surplus,C} Pwp,A+Ppv,A+PL,A=Pwp,B+Ppv,B+PL,B+Pes,charge,A+Pes,discharge,A+Esurplus,APwp,B+Ppv,B+PL,B=Pwp,C+Ppv,C+PL,C+Pes,charge,B+Pes,discharge,B+Esurplus,BPwp,C+Ppv,C+PL,C=Pwp,A+Ppv,A+PL,A+Pes,charge,C+Pes,discharge,C+Esurplus,C
  6. 系统的储能SOC约束:
    0.1 P e s ≤ E s u r p l u s , A + E s u r p l u s , B + E s u r p l u s , C ≤ 0.9 P e s 0.1P_{es} \leq E_{surplus,A} + E_{surplus,B} + E_{surplus,C} \leq 0.9P_{es} 0.1PesEsurplus,A+Esurplus,B+Esurplus,C0.9Pes
  7. 系统的运行时间约束:
    P e s , c h a r g e , A + P e s , d i s c h a r g e , A + P e s , c h a r g e , B + P e s , d i s c h a r g e , B + P e s , c h a r g e , C + P e s , d i s c h a r g e , C ≤ T P_{es,charge,A} + P_{es,discharge,A} + P_{es,charge,B} + P_{es,discharge,B} + P_{es,charge,C} + P_{es,discharge,C} \leq T Pes,charge,A+Pes,discharge,A+Pes,charge,B+Pes,discharge,B+Pes,charge,C+Pes,discharge,CT

另外,根据题目要求,需要最小化系统的总成本,即:
min ⁡ ( 0.5 ( P w p , A + P w p , B + P w p , C ) + 0.4 ( P p v , A + P p v , B + P p v , C ) + 1 ( P L , A + P L , B + P L , C ) + 800 P e s + 1800 E e s ) \min \left( 0.5(P_{wp,A} + P_{wp,B} + P_{wp,C}) + 0.4(P_{pv,A} + P_{pv,B} + P_{pv,C}) + 1(P_{L,A} + P_{L,B} + P_{L,C}) + 800P_{es} + 1800E_{es} \right) min(0.5(Pwp,A+Pwp,B+Pwp,C)+0.4(Ppv,A+Ppv,B+Ppv,C)+1(PL,A+PL,B+PL,C)+800Pes+1800Ees)

综上所述,问题3的最优化模型为:
min ⁡ 0.5 ( P w p , A + P w p , B + P w p , C ) + 0.4 ( P p v , A + P p v , B + P p v , C ) + 1 ( P L , A + P L , B + P L , C ) + 800 P e s + 1800 E e s s . t . 0 ≤ P w p , A ≤ P w , A 0 ≤ P w p , B ≤ P w , B 0 ≤ P w p , C ≤ P w , C 0 ≤ P p v , A ≤ P p v , A 0 ≤ P p v , B ≤ P p v , B 0 ≤ P p v , C ≤ P p v , C 0 ≤ P L , A ≤ P L m a x , A 0 ≤ P L , B ≤ P L m a x , B 0 ≤ P L , C ≤ P L m a x , C 0 ≤ P e s , c h a r g e , A ≤ P e s 0 ≤ P e s , c h a r g e , B ≤ P e s 0 ≤ P e s , c h a r g e , C ≤ P e s 0 ≤ P e s , d i s c h a r g e , A ≤ P e s 0 ≤ P e s , d i s c h a r g e , B ≤ P e s 0 ≤ P e s , d i s c h a r g e , C ≤ P e s 0 ≤ E s u r p l u s , A ≤ E e s 0 ≤ E s u r p l u s , B ≤ E e s 0 ≤ E s u r p l u s , C ≤ E e s \begin{aligned} \min \quad & 0.5(P_{wp,A} + P_{wp,B} + P_{wp,C}) + 0.4(P_{pv,A} + P_{pv,B} + P_{pv,C}) + 1(P_{L,A} + P_{L,B} + P_{L,C}) + 800P_{es} + 1800E_{es} \\ s.t. \quad & 0 \leq P_{wp,A} \leq P_{w,A}\\ & 0 \leq P_{wp,B} \leq P_{w,B}\\ & 0 \leq P_{wp,C} \leq P_{w,C}\\ & 0 \leq P_{pv,A} \leq P_{pv,A}\\ & 0 \leq P_{pv,B} \leq P_{pv,B}\\ & 0 \leq P_{pv,C} \leq P_{pv,C}\\ & 0 \leq P_{L,A} \leq P_{Lmax,A}\\ & 0 \leq P_{L,B} \leq P_{Lmax,B}\\ & 0 \leq P_{L,C} \leq P_{Lmax,C}\\ & 0 \leq P_{es,charge,A} \leq P_{es}\\ & 0 \leq P_{es,charge,B} \leq P_{es}\\ & 0 \leq P_{es,charge,C} \leq P_{es}\\ & 0 \leq P_{es,discharge,A} \leq P_{es}\\ & 0 \leq P_{es,discharge,B} \leq P_{es}\\ & 0 \leq P_{es,discharge,C} \leq P_{es}\\ & 0 \leq E_{surplus,A} \leq E_{es}\\ & 0 \leq E_{surplus,B} \leq E_{es}\\ & 0 \leq E_{surplus,C} \leq E_{es}\\ \end{aligned} mins.t.0.5(Pwp,A+Pwp,B+Pwp,C)+0.4(Ppv,A+Ppv,B+Ppv,C)+1(PL,A+PL,B+PL,C)+800Pes+1800Ees0Pwp,APw,A0Pwp,BPw,B0Pwp,CPw,C0Ppv,APpv,A0Ppv,BPpv,B0Ppv,CPpv,C0PL,APLmax,A0PL,BPLmax,B0PL,CPLmax,C0Pes,charge,APes0Pes,charge,BPes0Pes,charge,CPes0Pes,discharge,APes0Pes,discharge,BPes0Pes,discharge,CPes0Esurplus,AEes0Esurplus,BEes0Esurplus,CEes
根据题目中的条件,我们可以将园区风、光、储能的协调优化配置问题转化为一个经济性优化问题。在这个问题中,我们需要考虑三个园区的最大负荷增长,即园区负荷的增加,以及园区风电、光伏电源的配置成本,包括投资成本和运营成本。另外,我们还需要考虑风光发电与负荷之间的时序不匹配问题,以及储能的成本和运行策略。

针对这个问题,我们可以使用经济性指标来衡量各种配置方案的优劣,如总供电成本、单位电量平均供电成本等。在制定风光储协调配置方案时,我们应该考虑到以下几个因素:

  1. 园区独立运营与联合运营的比较:在园区独立运营的情况下,每个园区都会单独购电和出售电力,因此存在一定的成本。而在联合运营的情况下,园区可以共享风光发电和储能资源,从而减少购电成本和弃风弃光的情况。因此,联合运营的配置方案往往比独立运营更具经济性。

  2. 储能容量和功率的配置:储能的配置对于解决风光发电与负荷时序不匹配问题至关重要。储能容量和功率的大小会直接影响到储能的充放电效率和运行寿命,因此需要在经济性和可靠性之间进行权衡。

  3. 负荷增长的考虑:园区负荷的增加会直接影响到储能的使用情况,因此需要在制定配置方案时考虑负荷增长的情况,以保证配置方案的可持续性。
    在这里插入图片描述

基于以上考虑,我们可以提出以下建议:

  1. 对于园区独立运营的情况,可以采用园区内部的储能系统来解决风光发电与负荷时序不匹配问题。储能系统的容量和功率可以根据园区的实际情况来决定,以最小化总供电成本为目标。

  2. 对于园区联合运营的情况,可以采用集中式储能系统来解决风光发电与负荷时序不匹配问题。集中式储能系统可以对园区内部的风光发电和负荷进行整合和优化,从而减少储能系统的容量和功率,进而降低总供电成本。

  3. 针对园区负荷增长的情况,可以考虑采用分布式储能系统,以满足不同园区的负荷需求。分布式储能系统可以根据负荷增长的情况来灵活调节储能容量和功率,从而保证系统的可靠性和经济性。

总的来说,园区微电网风光储协调优化配置问题需要综合考虑经济性、可靠性和可持续性等多个因素,采用不同的储能配置方案来解决风光发电与负荷时序不匹配问题。同时,随着技术的发展和成本的降低,储能系统的应用将会越来越广泛,为园区微电网的发展提供更多的选择。

问题 3:

根据园区经理的要求,我们制定的风光储协调配置方案分为两种情况:各园区独立运营和联合运营。

  1. 各园区独立运营的风光储协调配置方案:

设园区A、B、C的光伏装机容量分别为 P p v A P_{pv}^A PpvA P p v B P_{pv}^B PpvB P p v C P_{pv}^C PpvC,风电装机容量分别为 P w B P_w^B PwB P w C P_w^C PwC,储能容量为 E b a t E_{bat} Ebat,储能功率为 P b a t P_{bat} Pbat。则各园区独立运营的风光储协调配置方案为:

(1)园区A:

风电装机容量: P w A = 0 P_w^A=0 PwA=0

光伏装机容量: P p v A = P m a x A η p v A P_{pv}^A=\frac{P_{max}^A}{\eta_{pv}^A} PpvA=ηpvAPmaxA,其中, P m a x A P_{max}^A PmaxA为园区A的负荷最大值, η p v A \eta_{pv}^A ηpvA为光伏发电的利用系数;

储能装机容量: E b a t A = 0 E_{bat}^A=0 EbatA=0 P b a t A = 0 P_{bat}^A=0 PbatA=0

(2)园区B:

风电装机容量: P w B = P m a x B − P w B ‾ η w B + P b a t B P_w^B=\frac{P_{max}^B-\overline{P_w^B}}{\eta_{w}^B}+P_{bat}^B PwB=ηwBPmaxBPwB+PbatB,其中, P w B ‾ \overline{P_w^B} PwB为园区B的风电平均弃电量, η w B \eta_{w}^B ηwB为风电发电的利用系数;

光伏装机容量: P p v B = P m a x B − P p v B ‾ η p v B P_{pv}^B=\frac{P_{max}^B-\overline{P_{pv}^B}}{\eta_{pv}^B} PpvB=ηpvBPmaxBPpvB,其中, P p v B ‾ \overline{P_{pv}^B} PpvB为园区B的光伏平均弃电量, η p v B \eta_{pv}^B ηpvB为光伏发电的利用系数;

储能装机容量: E b a t B = P w B ‾ η b a t E_{bat}^B=\frac{\overline{P_w^B}}{\eta_{bat}} EbatB=ηbatPwB P b a t B = P w B ‾ η b a t P_{bat}^B=\frac{\overline{P_w^B}}{\eta_{bat}} PbatB=ηbatPwB,其中, η b a t \eta_{bat} ηbat为储能的充放电效率。

(3)园区C:

风电装机容量: P w C = P m a x C − P w C ‾ η w C + P b a t C P_w^C=\frac{P_{max}^C-\overline{P_w^C}}{\eta_{w}^C}+P_{bat}^C PwC=ηwCPmaxCPwC+PbatC,其中, P w C ‾ \overline{P_w^C} PwC为园区C的风电平均弃电量, η w C \eta_{w}^C ηwC为风电发电的利用系数;

光伏装机容量: P p v C = P m a x C − P p v C ‾ η p v C P_{pv}^C=\frac{P_{max}^C-\overline{P_{pv}^C}}{\eta_{pv}^C} PpvC=ηpvCPmaxCPpvC,其中, P p v C ‾ \overline{P_{pv}^C} PpvC为园区C的光伏平均弃电量, η p v C \eta_{pv}^C ηpvC为光伏发电的利用系数;

储能装机容量: E b a t C = P w C ‾ η b a t E_{bat}^C=\frac{\overline{P_w^C}}{\eta_{bat}} EbatC=ηbatPwC P b a t C = P w C ‾ η b a t P_{bat}^C=\frac{\overline{P_w^C}}{\eta_{bat}} PbatC=ηbatPwC,其中, η b a t \eta_{bat} ηbat为储能的充放电效率。
在这里插入图片描述

  1. 联合运营的风光储协调配置方案:

设联合园区的光伏装机容量为 P p v P_{pv} Ppv,风电装机容量为 P w P_w Pw,储能容量为 E b a t E_{bat} Ebat,储能功率为 P b a t P_{bat} Pbat。则联合运营的风光储协调配置方案为:
在这里插入图片描述

(1)联合园区:

风电装机容量: P w = P m a x − P w ‾ η w + P b a t P_w=\frac{P_{max}-\overline{P_w}}{\eta_{w}}+P_{bat} Pw=ηwPmaxPw+Pbat,其中, P m a x P_{max} Pmax为联合园区的最大负荷, P w ‾ \overline{P_w} Pw为联合园区的风电平均弃电量, η w \eta_{w} ηw为风电发电的利用系数;

光伏装机容量: P p v = P m a x − P p v ‾ η p v P_{pv}=\frac{P_{max}-\overline{P_{pv}}}{\eta_{pv}} Ppv=ηpvPmaxPpv,其中, P p v ‾ \overline{P_{pv}} Ppv为联合园区的光伏平均弃电量, η p v \eta_{pv} ηpv为光伏发电的利用系数;

储能装机容量: E b a t = P w ‾ η b a t E_{bat}=\frac{\overline{P_w}}{\eta_{bat}} Ebat=ηbatPw P b a t = P w ‾ η b a t P_{bat}=\frac{\overline{P_w}}{\eta_{bat}} Pbat=ηbatPw,其中, η b a t \eta_{bat} ηbat为储能的充放电效率。

经济性分析:

(1)各园区独立运营的风光储协调配置方案:

(a)园区A:

购电量: Q A = P m a x A η p v A Q_A=\frac{P_{max}^A}{\eta_{pv}^A} QA=ηpvAPmaxA

弃风弃光电量: Q d i s c a r d A = 0 Q_{discard}^A=0 QdiscardA=0

总供电成本: C t o t a l A = Q A × 0.4 = 0.4 P m a x A C_{total}^A=Q_A\times 0.4=0.4P_{max}^A CtotalA=QA×0.4=0.4PmaxA

单位电量平均供电成本: C a v g A = C t o t a l A P m a x A = 0.4 C_{avg}^A=\frac{C_{total}^A}{P_{max}^A}=0.4 CavgA=PmaxACtotalA=0.4

(b)园区B:

购电量: Q B = P m a x B − P p v B ‾ η p v B + P b a t B Q_B=\frac{P_{max}^B-\overline{P_{pv}^B}}{\eta_{pv}^B}+P_{bat}^B QB=ηpvBPmaxBPpvB+PbatB

弃风弃光电量: Q d i s c a r d B = P p v B ‾ + P w B ‾ Q_{discard}^B=\overline{P_{pv}^B}+\overline{P_w^B} QdiscardB=PpvB+PwB

总供电成本: C t o t a l B = Q B × 0.4 = 0.4 ( P m a x B − P p v B ‾ ) + 0.4 P w B ‾ C_{total}^B=Q_B\times 0.4=0.4\left(P_{max}^B-\overline{P_{pv}^B}\right)+0.4\overline{P_w^B} CtotalB=QB×0.4=0.4(PmaxBPpvB)+0.4PwB

单位电量平均供电成本: C a v g B = C t o t a l B P m a x B = 0.4 − 0.4 η p v B P p v B ‾ − 0.4 η w B P w B ‾ C_{avg}^B=\frac{C_{total}^B}{P_{max}^B}=0.4-\frac{0.4}{\eta_{pv}^B}\overline{P_{pv}^B}-\frac{0.4}{\eta_{w}^B}\overline{P_w^B} CavgB=PmaxBCtotalB=0.4ηpvB0.4PpvBηwB0.4PwB

(c)园区C:

购电量: Q C = P m a x C − P p v C ‾ η p v C + P b a t C Q_C=\frac{P_{max}^C-\overline{P_{pv}^C}}{\eta_{pv}^C}+P_{bat}^C QC=ηpvCPmaxCPpvC+PbatC

弃风弃光电量: Q d i s c a r d C = P p v C ‾ + P w C ‾ Q_{discard}^C=\overline{P_{pv}^C}+\overline{P_w^C} QdiscardC=PpvC+PwC

总供电成本:$C_{total}^C=Q_C\times 0.4=0.4\left(P_{max}C-\overline{P_{pv}C}\right)+0.4\overline{P

import pandas as pd
import numpy as np
from scipy.optimize import minimize# 读取典型日风光发电功率数据
df = pd.read_excel('附件3.xlsx', sheet_name='全年12个月典型日风光发电功率数据', index_col=0)# 配置成本
wind_cost = 3000 # 风电配置成本(元/kW)
solar_cost = 2500 # 光伏配置成本(元/kW)# 投资回报期
payback_period = 5 # 投资回报期(年)# 电价表
time_price = pd.DataFrame({'电价': [1, 0.4]}, index=['7:00-22:00', '其余时段'])# 负荷增长率
load_growth = 0.5 # 负荷增长率# 园区A光伏装机容量
Ppv_A = 750 # 园区A光伏装机容量(kW)# 园区B风电装机容量
Pw_B = 1000 # 园区B风电装机容量(kW)# 园区C光伏装机容量
Ppv_C = 600 # 园区C光伏装机容量(kW)# 园区C风电装机容量
Pw_C = 500 # 园区C风电装机容量(kW)# 园区A最大负荷
PLmax_A = 447 # 园区A最大负荷(kW)# 园区B最大负荷
PLmax_B = 419 # 园区B最大负荷(kW)# 园区C最大负荷
PLmax_C = 506 # 园区C最大负荷(kW)# 光伏发电归一化数据
solar_data = pd.read_excel('附件2.xlsx', sheet_name='光伏发电归一化数据', index_col=0)# 风电发电归一化数据
wind_data = pd.read_excel('附件2.xlsx', sheet_name='风电发电归一化数据', index_col=0)# 计算风电、光伏的购电成本
wind_price = 0.5 # 风电购电成本(元/kWh)
solar_price = 0.4 # 光伏购电成本(元/kWh)# 计算各园区独立运营未配置储能时的经济性
# 计算购电量
buy_A = df['园区A光伏发电功率'] + df['园区A风电发电功率'] - df['园区A负荷功率']
buy_B = df['园区B光伏发电功率'] + df['园区B风电发电功率'] - df['园区B负荷功率']
buy_C = df['园区C光伏发电功率'] + df['园区C风电发电功率'] - df['园区C负荷功率']# 计算弃风弃光电量
wind_discard = df['园区A风电发电功率'] + df['园区B风电发电功率'] + df['园区C风电发电功率'] - df['园区A负荷功率'] - df['园区B负荷功率'] - df['园区C负荷功率']
solar_discard = df['园区A光伏发电功率'] + df['园区B光伏发电功率'] + df['园区C光伏发电功率'] - df['园区A负荷功率'] - df['园区B负荷功率'] - df['园区C负荷功率']# 计算总购电成本
total_buy = buy_A * wind_price + buy_B * wind_price + buy_C * solar_price# 计算单位电量平均供电成本
avg_cost = total_buy / (df['园区A负荷功率'] + df['园区B负荷功率'] + df['园区C负荷功率'])# 打印结果
print('各园区独立运营未配置储能时的经济性:')
print('园区A购电量:{:.2f}kWh'.format(buy_A.sum()))
print('园区B购电量:{:.2f}kWh'.format(buy_B.sum()))
print('园区C购电量:{:.2f}kWh'.format(buy_C.sum()))
print('总购电量:{:.2f}kWh'.format(total_buy.sum()))
print('园区A弃风弃光电量:{:.2f}kWh'.format(wind_discard.sum()))
print('园区B弃风弃光电量:{:.2f}kWh'.format(wind_discard.sum()))
print('园区C弃风弃光电量:{:.2f}kWh'.format(wind_discard.sum()))
print('总弃风弃光电量:{:.2f}kWh'.format(wind_discard.sum() + solar_discard.sum()))
print('总供电成本:{:.2f}元'.format(total_buy.sum()))
print('单位电量平均供电成本:{:.2f}元/kWh'.format(avg_cost.mean()))# 各园区分别配置50kW/100kWh储能,制定储能最优运行策略及购电计划,分析各园区运行经济性是否改善,并解释其原因
# 计算储能最优运行策略及购电计划
# 计算园区A的储能运行策略
p_A_max = df['园区A光伏发电功率'] + df['园区A风电发电功率'] - df['园区A负荷功率']
p_A_min = -(df['园区A负荷功率'] - df['园区A光伏发电功率'] - df['园区A风电发电功率'])
soc_A_min = 0.1 # SOC最小值
soc_A_max = 0.9 # SOC最大值
efficiency = 0.95 # 充放电效率
A = np.column_stack((np.eye(24), np.eye(24) * -1))
b = np.array([p_A_max, p_A_min]).flatten()
res_A = minimize(fun=lambda x: -(p_A_max * x[:24] + p_A_min * x[24:]).sum(),x0=np.ones(48) * 0.5,method='SLSQP',bounds=[(0, 1)] * 24 + [(0, 1)] * 24,constraints=[{'type': 'eq','fun': lambda x: (p_A_max * x[:24] + p_A_min * x[24:]).sum() - (p_A_max + p_A_min).sum(),'jac': lambda x: np.append(p_A_max, p_A_min)},{'type': 'eq','fun': lambda x: np.append(x[24:48], [0]) @ wind_data['

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

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

相关文章

常用的框架——— Android UtilCode

AndroidUtilCode是一个功能强大且易于使用的Android库。该库封装了Android开发中经常使用的具备完整演示和单元测试的功能。经过使用其封装的API&#xff0c;能够大大提升开发效率。该程序主要由两个模块组成&#xff0c;utilcode&#xff08;一般在开发中使用&#xff09;和su…

windows 下访问 csdn 异常问题

windows下访问csdn可能会出现什么 确认是真人 或着直接连接不上的情况, 需要在 C:\Windows\System32\drivers\etc 路径下 hosts文件中添加如下内容 1.180.18.85 blog.csdn.net 如果目录下没有hosts文件就自己建一个

2024电工杯B题保姆级分析完整思路+代码+数据教学

2024电工杯B题保姆级分析完整思路代码数据教学 B题题目&#xff1a;大学生平衡膳食食谱的优化设计及评价 接下来我们将按照题目总体分析-背景分析-各小问分析的形式来 总体分析&#xff1a; 题目要求对两份一日膳食食谱进行营养分析和调整&#xff0c;然后设计优化的平衡膳…

用Python的PyAutoGUI库控制鼠标滚轮

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 轻松上手&#xff1a;安装与导入 要开始使用pyautogui库&#xff0c;你需要做的第一件事就是确保它已经被安装在你的Python环境中。你可以通过运行以下命令来安装&#xff1a; pip install pyautogui安装完成后&am…

NebulaGraph

文章目录 关于 NebulaGraph客户端支持安装 NebulaGraph关于 nGQLnGQL 可以做什么2500 条 nGQL 示例原生 nGQL 和 openCypher 的关系 Backup&Restore功能 导入导出导入工具导出工具 NebulaGraph ImporterNebulaGraph ExchangeNebulaGraph Spark ConnectorNebulaGraph Flink …

运行Android项目时,提示错误: 程序包javax.annotation.processing不存在

今天在运行项目时提示错误: 错误: 程序包javax.annotation.processing不存在 import javax.annotation.processing.Generated; 最后是修改了Android Studio的JDK的路径修改为你安装的JDK路径&#xff0c;完成的修复&#xff1a;

在深度学习中常见的初始化操作

目录 截断正态分布来初始化张量 逐行代码解释 相关理论解释 截断正态分布函数 截断正态分布的定义 截断正态分布的作用 计算截断点的作用 具体步骤 正态分布的累积分布函数&#xff08;CDF&#xff09; 正态分布的累积分布函数与误差函数的关系 示例计算 误差函数 应…

软件设计师-上午题-计算题汇总

一、存储系统 - 存储容量计算&#xff08;字节编址、位编址、芯片个数&#xff09; 内存地址是16进制 内存地址编址的单位是Byte&#xff0c;1K1024B 1B 8 bit 1.计算存储单元个数 存储单元个数 末地址 - 首地址 1 eg. 按字节编址&#xff0c;地址从 A4000H 到 CBFFFH&…

使用B2M 算法批量将可执行文件转为灰度图像

参考论文 基于二进制文件的 C 语言编译器特征提取及识别 本实验使用 B2M 算法将可执行文件转为灰度图像&#xff0c;可执行文件转为灰度图的流程如图 4-3 所示。将 可执行文件每 8 位读取为一个无符号的的整型常量&#xff0c;一个可执行文件得到一个一维向量&#xff0c; …

深度学习之基于Tensorflow+Keras+CNN模型实时对手写数字进行分类

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 随着深度学习和计算机视觉技术的快速发展&#xff0c;手写数字识别已成为一个重要的应用场景。…

装备制造项目管理软件:奥博思PowerProject项目管理系统

数字化正逐步改变着制造方式和企业组织模式。某制造企业领导层透露&#xff0c;在采用数字化项目管理模式后&#xff0c;企业的发展韧性更加强劲&#xff0c;构筑起了竞争新优势&#xff0c;企业产品研制周期缩短25%&#xff0c;生产效率提升18%。 随着全球经济的发展&#xf…

SpringBootWeb 篇-深入了解 Mybatis 删除、新增、更新、查询的基础操作与 SQL 预编译解决 SQL 注入问题

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 Mybatis 的基础操作 2.0 基础操作 - 环境准备 3.0 基础操作 - 删除操作 3.1 SQL 预编译 3.2 SQL 预编译的优势 3.3 参数占位符 4.0 基础操作 - 新增 4.1 主键返回…

深度学习之基于Pytorch框架多人多摄像头摔倒跌倒坠落检测

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着智能监控技术的广泛应用&#xff0c;对于公共场合的安全监控需求日益增加。摔倒跌倒坠落是常见的…

基于深度学习的Tensorflow卷积神经网络(CNN)车牌识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 车牌识别&#xff08;License Plate Recognition, LPR&#xff09;是智能交通系统&#xff08;ITS&a…

解锁产品迭代新速度:A/B测试在AI大模型时代的应用

本文作者为火山引擎A/B测试平台DataTester的资深研发工程师刘明瑶。作为火山引擎数智平台VeDI旗下的核心产品&#xff0c;DataTester源于字节跳动长期的技术和业务沉淀&#xff0c;目前已经服务了数百家企业&#xff0c;助力企业在业务增长、用户转化、产品迭代、策略优化以及运…

深度学习之Tensorflow卷积神经网络手势识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 手势识别是计算机视觉和人工智能领域的重要应用之一&#xff0c;具有广泛的应用前景&#xff…

抖音视频怎么去水印保存部分源码|短视频爬虫提取收集下载工具

抖音视频怎么去水印保存部分源码|短视频爬虫提取收集下载工具 抖音视频去水印保存部分源码&#xff1a; 通过使用Python中的requests、re和os等库&#xff0c;可以编写如下代码来实现抖音视频去水印保存的功能。 短视频爬虫提取手机下载工具的使用方法&#xff1a; 该工具主…

【Linux学习】进程地址空间与写时拷贝

文章目录 Linux进程内存布局图&#xff1a;内存布局的验证 进程地址空间写时拷贝 Linux进程内存布局图&#xff1a; 地址空间的范围&#xff0c;在32位机器上是2^32比特位,也就是[0,4G]。 内存布局的验证 代码验证内存布局&#xff1a; 验证代码&#xff1a; #include<s…

基于FPGA的VGA协议实现----条纹-文字-图片

基于FPGA的VGA协议实现----条纹-文字-图片 引言&#xff1a; ​ 随着数字电子技术的飞速发展&#xff0c;现场可编程门阵列&#xff08;FPGA&#xff09;因其高度的灵活性和并行处理能力&#xff0c;在数字系统设计中扮演着越来越重要的角色。FPGA能够实现复杂的数字逻辑&#…

字节面试:百亿级数据存储,怎么设计?只是分库分表吗?

尼恩&#xff1a;百亿级数据存储架构起源 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;经常性的指导小伙伴们改造简历。 经过尼恩的改造之后&#xff0c;很多小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试机会&#xff0c…