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

发布于:2024-05-24 ⋅ 阅读:(467) ⋅ 点赞:(0)

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。

CS团队倾注了大量时间和心血,深入挖掘解决方案。通过多目标规划,偏微分方程等算法,设计了明晰的项目,团队努力体现在每个步骤,确保方案既创新又可行,为大家提供了全面而深入的洞见噢~

在这里插入图片描述

让我们来看看电工杯(A题)

完整内容可以在文章末尾领取!

问题1:各园区独立运营储能配置方案及其经济性分析
(1)分析未配置储能时各园区运行的经济性,包括:购电量、弃风弃光电量、总供电成本和单位电量平均供电成本,并分析影响其经济性的关键因素。

解:设园区A、B、C未配置储能时的总购电量分别为Qa、Qb、Qc,弃风弃光电量分别为Da、Db、Dc,总供电成本分别为Ca、Cb、Cc,单位电量平均供电成本分别为Ca/Qa、Cb/Qb、Cc/Qc。

则有

Q a = P g a + Q a ∗ Q_{a}=P_{g a}+Q_{a}^{*} Qa=Pga+Qa

D a = Q a − P g a − L a D_{a}=Q_{a}-P_{g a}-L_{a} Da=QaPgaLa

D b = Q b − P g b − L b D_{b}=Q_{b}-P_{g b}-L_{b} Db=QbPgbLb

D c = Q c − P g c − L c D_{c}=Q_{c}-P_{g c}-L_{c} Dc=QcPgcLc

C a + C b + C c = P p v a + P p v b + P p v c + P w a + P w b + P w c + Q a ∗ + Q b ∗ + Q c ∗ C_{a}+C_{b}+C_{c}=P_{pv a}+P_{pv b}+P_{pv c}+P_{w a}+P_{w b}+P_{w c}+Q_{a}^{*}+Q_{b}^{*}+Q_{c}^{*} Ca+Cb+Cc=Ppva+Ppvb+Ppvc+Pwa+Pwb+Pwc+Qa+Qb+Qc

其中

P p v a = P g a P p v a P p v a ∗ P_{pv a}=\frac{P_{g a}}{P_{pv a}} P_{pv a}^{*} Ppva=PpvaPgaPpva

P p v b = P g b P p v b P p v b ∗ P_{pv b}=\frac{P_{g b}}{P_{pv b}} P_{pv b}^{*} Ppvb=PpvbPgbPpvb

Q a ∗ Q_{a}^{*} Qa Q b ∗ Q_{b}^{*} Qb Q c ∗ Q_{c}^{*} Qc不同时,对 C a + C b + C c C_{a}+C_{b}+C_{c} Ca+Cb+Cc求导,有

∂ ( C a + C b + C c ) ∂ Q a ∗ = 1 \frac{\partial \left(C_{a}+C_{b}+C_{c}\right)}{\partial Q_{a}^{*}}=1 Qa(Ca+Cb+Cc)=1

Q a ∗ + Q b ∗ + Q c ∗ Q_{a}^{*}+Q_{b}^{*}+Q_{c}^{*} Qa+Qb+Qc一定时,有

∂ ( C a + C b + C c ) ∂ Q a ∗ = ∂ ( C a + C b + C c ) ∂ Q b ∗ = ∂ ( C a + C b + C c ) ∂ Q c ∗ = 1 3 \frac{\partial \left(C_{a}+C_{b}+C_{c}\right)}{\partial Q_{a}^{*}}=\frac{\partial \left(C_{a}+C_{b}+C_{c}\right)}{\partial Q_{b}^{*}}=\frac{\partial \left(C_{a}+C_{b}+C_{c}\right)}{\partial Q_{c}^{*}}=\frac{1}{3} Qa(Ca+Cb+Cc)=Qb(Ca+Cb+Cc)=Qc(Ca+Cb+Cc)=31

Q a ∗ Q_{a}^{*} Qa Q b ∗ Q_{b}^{*} Qb Q c ∗ Q_{c}^{*} Qc不同时,对 C a + C b + C c C_{a}+C_{b}+C_{c} Ca+Cb+Cc求导,有

∂ ( C a + C b + C c ) ∂ P p g a = 1 \frac{\partial \left(C_{a}+C_{b}+C_{c}\right)}{\partial P_{pg a}}=1 Ppga(Ca+Cb+Cc)=1

P g a + P g b + P g c P_{g a}+P_{g b}+P_{g c} Pga+Pgb+Pgc一定时,有

∂ ( C a + C b + C c ) ∂ P p g a = ∂ ( C a + C b + C c ) ∂ P p g b = ∂ ( C a + C b + C c ) ∂ P p g c = 1 3 \frac{\partial \left(C_{a}+C_{b}+C_{c}\right)}{\partial P_{pg a}}=\frac{\partial \left(C_{a}+C_{b}+C_{c}\right)}{\partial P_{pg b}}=\frac{\partial \left(C_{a}+C_{b}+C_{c}\right)}{\partial P_{pg c}}=\frac{1}{3} Ppga(Ca+Cb+Cc)=Ppgb(Ca+Cb+Cc)=Ppgc(Ca+Cb+Cc)=31

P p v a ∗ = P p v b ∗ = P p v c ∗ P_{pv a}^{*}=P_{pv b}^{*}=P_{pv c}^{*} Ppva=Ppvb=Ppvc P w a ∗ = P w b ∗ = P w c ∗ P_{w a}^{*}=P_{w b}^{*}=P_{w c}^{*} Pwa=Pwb=Pwc时,有

∂ ( C a + C b + C c ) ∂ P p v a ∗ = ∂ ( C a + C b + C c ) ∂ P p v b ∗ = ∂ ( C a + C b + C c ) ∂ P p v c ∗ = ∂ ( C a + C b + C c ) ∂ P w a ∗ = ∂ ( C a + C b + C c ) ∂ P w b ∗ = ∂ ( C a + C b + C c ) ∂ P w c ∗ = 1 6 \frac{\partial \left(C_{a}+C_{b}+C_{c}\right)}{\partial P_{pv a}^{*}}=\frac{\partial \left(C_{a}+C_{b}+C_{c}\right)}{\partial P_{pv b}^{*}}=\frac{\partial \left(C_{a}+C_{b}+C_{c}\right)}{\partial P_{pv c}^{*}}=\frac{\partial \left(C_{a}+C_{b}+C_{c}\right)}{\partial P_{w a}^{*}}=\frac{\partial \left(C_{a}+C_{b}+C_{c}\right)}{\partial P_{w b}^{*}}=\frac{\partial \left(C_{a}+C_{b}+C_{c}\right)}{\partial P_{w c}^{*}}=\frac{1}{6} Ppva(Ca+Cb+Cc)=Ppvb(Ca+Cb+Cc)=Ppvc(Ca+Cb+Cc)=Pwa(Ca+Cb+Cc)=Pwb(Ca+Cb+Cc)=Pwc(Ca+Cb+Cc)=61

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 a ∗ P_{w a}^{*} Pwa P w b ∗ P_{w b}^{*} Pwb P w c ∗ P_{w c}^{*} Pwc分别求导,有

∂ Q a ∗ ∂ P p v a ∗ = 1 \frac{\partial Q_{a}^{*}}{\partial P_{pv a}^{*}}=1 PpvaQa=1

∂ Q b ∗ ∂ P p v b ∗ = 1 \frac{\partial Q_{b}^{*}}{\partial P_{pv b}^{*}}=1 PpvbQb=1

在这里插入图片描述
根据题目要求,我们需要分析未配置储能时各园区运行的经济性,包括购电量、弃风弃光电量、总供电成本和单位电量平均供电成本,并分析影响其经济性的关键因素。我们可以利用以下公式来计算以上指标:购电量: P b u y = ∑ t = 1 T P b u y , t P_{buy}=\sum_{t=1}^{T}P_{buy,t} Pbuy=t=1TPbuy,t弃风弃光电量: P d i s c a r d = ∑ t = 1 T P d i s c a r d , t P_{discard}=\sum_{t=1}^{T}P_{discard,t} Pdiscard=t=1TPdiscard,t总供电成本: C t o t a l = C b u y + C d i s c a r d C_{total}=C_{buy}+C_{discard} Ctotal=Cbuy+Cdiscard单位电量平均供电成本: C a v g = C t o t a l P s u p p l y C_{avg}=\frac{C_{total}}{P_{supply}} Cavg=PsupplyCtotal其中, P b u y , t P_{buy,t} Pbuy,t为t时刻各园区从主电网购电量, P d i s c a r d , t P_{discard,t} Pdiscard,t为t时刻各园区弃风弃光电量,C_{buy}为购电成本,C_{discard}为弃风弃光成本,P_{supply}为总供电量。

影响经济性的关键因素有:风光发电量、最大负荷、购电成本和弃风弃光成本等。在未配置储能的情况下,由于园区负荷与风光发电功率时序不匹配,可能导致弃电问题,因此会有弃风弃光电量产生。

import numpy as np
import matplotlib.pyplot as plt

# 园区最大负荷参数
PLmax_A = 447  # kW
PLmax_B = 419  # kW
PLmax_C = 506  # kW

# 风电、光伏购电成本
wind_cost = 0.5  # 元/kWh
solar_cost = 0.4  # 元/kWh

# 典型日负荷曲线数据
load_data = np.loadtxt('典型日负荷曲线数据.txt')
time = load_data[:, 0]  # 时间
load_A = load_data[:, 1]  # 园区A负荷
load_B = load_data[:, 2]  # 园区B负荷
load_C = load_data[:, 3]  # 园区C负荷

# 光伏发电归一化数据
pv_data = np.loadtxt('光伏发电归一化数据.txt')
pv_A = pv_data[:, 0] * PLmax_A  # 园区A光伏发电
pv_B = pv_data[:, 1] * PLmax_B  # 园区B光伏发电
pv_C = pv_data[:, 2] * PLmax_C  # 园区C光伏发电

# 风电发电归一化数据
wind_data = np.loadtxt('风电发电归一化数据.txt')
wind_A = wind_data[:, 0] * PLmax_A  # 园区A风电发电
wind_B = wind_data[:, 1] * PLmax_B  # 园区B风电发电
wind_C = wind_data[:, 2] * PLmax_C  # 园区C风电发电

# 未配置储能时各园区运行的经济性分析
# 购电量
buy_A = np.maximum(load_A - pv_A, 0)  # 园区A购电量
buy_B = np.maximum(load_B - wind_B, 0)  # 园区B购电量
buy_C = np.maximum(load_C - wind_C, 0)  # 园区C购电量
# 弃风弃光电量
discard_wind_A = np.maximum(wind_A - load_A, 0)  # 园区A弃风电量
discard_solar_A = np.maximum(pv_A - load_A, 0)  # 园区A弃光电量
discard_wind_B = np.maximum(wind_B - load_B, 0)  # 园区B弃风电量
discard_solar_B = np.maximum(pv_B - load_B, 0)  # 园区B弃光电量
discard_wind_C = np.maximum(wind_C - load_C, 0)  # 园区C弃风电量
discard_solar_C = np.maximum(pv_C - load_C, 0)  # 园区C弃光电量
# 总供电成本
total_cost_A = buy_A * wind_cost + buy_B * solar_cost  # 园区A总供电成本
total_cost_B = buy_B * wind_cost + buy_B * solar_cost  # 园区B总供电成本
total_cost_C = buy_C * wind_cost + buy_C * solar_cost  # 园区C总供电成本
# 单位电量平均供电成本
average_cost_A = total_cost_A / np.sum(load_A)  # 园区A单位电量平均供电成本
average_cost_B = total_cost_B / np.sum(load_B)  # 园区B单位电量平均供电成本
average_cost_C = total_cost_C / np.sum(load_C)  # 园区C单位电量平均供电成本

# 可视化分析
# 购电量
plt.figure()
plt.plot(time, buy_A, label='园区A购电量')
plt.plot(time, buy_B, label='园区B购电量')
plt.plot(time, buy_C, label='园区C购电量')
plt.xlabel('时间')
plt.ylabel('购电量(kW)')
plt.legend()
plt.show()
# 弃风弃光电量
plt.figure()
plt.plot(time, discard_wind_A, label='园区A弃风电量')
plt.plot(time, discard_solar_A, label='园区A弃光电量')
plt.plot(time, discard_wind_B, label='园区B弃风电量')
plt.plot(time, discard_solar_B, label='园区B弃光电量')
plt.plot(time, discard_wind_C, label='园区C弃风电量')
plt.plot(time, discard_solar_C, label='园区C弃光电量')
plt.xlabel('时间')
plt.ylabel('弃电量(kW)')
plt.legend()
plt.show()

# 各园区分别配置50kW/100kWh储能,制定储能最优运行策略及购电计划
# 储能功率
P_ES_A = 50  # kW
P_ES_B = 50  # kW
P_ES_C = 50  # kW
# 储能容量
E_ES_A = 100  # kWh
E_ES_B = 100  # kWh
E_ES_C = 100  # kWh
# 储能运行策略
# 对于园区A,储能优先从光伏发电中充电,然后再从主电网购电充电,最后从储能放电;对于园区B和园区C,储能优先从风电中充电,然后再从主电网购电充电,最后从储能放电。
# 储能购电计划
buy_ES_A = np.maximum(load_A - pv_A, 0)  # 园区A购电量
buy_ES_B = np.maximum(load_B - wind_B, 0)  # 园区B购电量
buy_ES_C = np.maximum(load_C - wind_C, 0)  # 园区C购电量
# 储能放电计划
discharge_ES_A = np.minimum(load_A - pv_A + buy_ES_A, P_ES_A)  # 园区A储能放电量
discharge_ES_B = np.minimum(load_B - wind_B + buy_ES_B, P_ES_B)  # 园区B储能放电量
discharge_ES_C = np.minimum(load_C - wind_C + buy_ES_C, P_ES_C)  # 园区C储能放电量
# 总购电量
total_buy_A = buy_ES_A * wind_cost + buy_B * solar_cost  # 园区A总购电量
total_buy_B = buy_ES_B * wind_cost + buy_B * solar_cost  # 园区B总购电量
total_buy_C = buy_ES_C * wind_cost + buy_C * solar_cost  # 园区C总购电量
# 总储能充电量
total_charge_ES_A = P_ES_A * np.sum(load_A - pv_A) / np.sum(discharge_ES_A)  # 园区A总储能充电量
total_charge_ES_B = P_ES_B * np.sum(load_B - wind_B) / np.sum(discharge_ES_B)  # 园区B总储能充电量
total_charge_ES_C = P_ES_C * np.sum(load_C - wind_C) / np.sum(discharge_ES_C)  # 园区C总储能充电量
# 总储能放电量
total_discharge_ES_A = np.sum(discharge_ES_A)  # 园区A总储能放电量
total_discharge_ES_B = np.sum(discharge_ES_B)  # 园区B总储能放电量
total_discharge_ES_C = np.sum(discharge_ES_C)  # 园区C总储能放电量
# 总储能运行成本
total_cost_ES_A = total_charge_ES_A * 800 + total_discharge_ES_A * 1800  # 园区A总储能运行成本
total_cost_ES_B = total_charge_ES_B * 800 + total_discharge_ES_B * 1800  # 园区B总储能运行成本
total_cost_ES_C = total_charge_ES_C * 800 + total_discharge_ES_C * 1800  # 园区C总储能运行成本

该段文字的第二个问题的第一小问是:若未配置储能,分析联合园区运行经济性。

假设园区A、B、C的最大负荷分别为PLmax.A、PLmax.B、PLmax.C,从风电、光伏的购电成本分别为Cpv、Cwind,储能的功率单价为Cp,能量单价为Ce,SOC允许范围为[10%, 90%],充/放电效率为η,运行寿命为T。设园区A、B、C的光伏发电、风电发电和负荷曲线分别为Ppv.A、Ppv.B、Ppv.C、Pwind.B、Pwind.C和Pload.A、Pload.B、Pload.C。购电量为Pbuy.A、Pbuy.B、Pbuy.C,弃风电量为Pwindloss.B、Pwindloss.C,弃光电量为Ppvloss.A、Ppvloss.C,总供电成本为TCost。单位电量平均供电成本为ACost。

则未配置储能时,各园区运行经济性为:

购电量:

P b u y . A = m a x ( 0 , P l o a d . A − P p v . A ) + m a x ( 0 , P l o a d . A − P w i n d . A ) P_{buy.A} = max(0, Pload.A - Ppv.A) + max(0, Pload.A - Pwind.A) Pbuy.A=max(0,Pload.APpv.A)+max(0,Pload.APwind.A)

P b u y . B = m a x ( 0 , P l o a d . B − P p v . B ) + m a x ( 0 , P l o a d . B − P w i n d . B ) P_{buy.B} = max(0, Pload.B - Ppv.B) + max(0, Pload.B - Pwind.B) Pbuy.B=max(0,Pload.BPpv.B)+max(0,Pload.BPwind.B)

P b u y . C = m a x ( 0 , P l o a d . C − P p v . C ) + m a x ( 0 , P l o a d . C − P w i n d . C ) P_{buy.C} = max(0, Pload.C - Ppv.C) + max(0, Pload.C - Pwind.C) Pbuy.C=max(0,Pload.CPpv.C)+max(0,Pload.CPwind.C)

弃风电量: P w i n d l o s s . B = m a x ( 0 , P w i n d . B − P l o a d . B ) P_{windloss.B} = max(0, P_{wind.B} - P_{load.B}) Pwindloss.B=max(0,Pwind.BPload.B)

P w i n d l o s s . C = m a x ( 0 , P w i n d . C − P l o a d . C ) P_{windloss.C} = max(0, P_{wind.C} - P_{load.C}) Pwindloss.C=max(0,Pwind.CPload.C)

总供电成本:

T C o s t = C p v ∗ ( P b u y . A + P b u y . B + P b u y . C ) + C w i n d ∗ ( P b u y . B + P b u y . C ) T_{Cost} = C_{pv} * (P_{buy.A} + P_{buy.B} + P_{buy.C}) + C_{wind} * (P_{buy.B} + P_{buy.C}) TCost=Cpv(Pbuy.A+Pbuy.B+Pbuy.C)+Cwind(Pbuy.B+Pbuy.C)

单位电量平均供电成本:

A C o s t = T C o s t / ( P l o a d . A + P l o a d . B + P l o a d . C ) ACost = TCost / (Pload.A + Pload.B + Pload.C) ACost=TCost/(Pload.A+Pload.B+Pload.C)

影响经济性的主要因素为光伏发电量、风电发电量和负荷,以及购电成本和储能的功率单价和能量单价。当光伏发电量和风电发电量增加,或者负荷减少,会导致购电量和弃风弃光电量减少,从而降低总供电成本和单位电量平均供电成本。而购电成本和储能的功率单价和能量单价越低,经济性越好。

假设园区A、B、C分别为三个独立运行的园区,其购电成本分别为E_A、E_B、E_C,发电功率分别为P_A、P_B、P_C,负荷功率分别为PL_A、PL_B、PL_C,储能功率为P_E,储能容量为E,SOC为x,则联合园区的总购电量为:
E t o t a l = E A + E B + E C E_{total} = E_A + E_B + E_C Etotal=EA+EB+EC
总弃风弃光电量为:
E d i s c a r d = P A − P L A P A × P A + P B − P L B P B × P B + P C − P L C P C × P C E_{discard} = \frac{P_A - PL_A}{P_A} \times P_A + \frac{P_B - PL_B}{P_B} \times P_B + \frac{P_C - PL_C}{P_C} \times P_C Ediscard=PAPAPLA×PA+PBPBPLB×PB+PCPCPLC×PC
总供电成本为:
C t o t a l = E t o t a l + E d i s c a r d C_{total} = E_{total} + E_{discard} Ctotal=Etotal+Ediscard
单位电量平均供电成本为:
C a v g = C t o t a l P L A + P L B + P L C C_{avg} = \frac{C_{total}}{PL_A + PL_B + PL_C} Cavg=PLA+PLB+PLCCtotal

通过分析联合园区的总供电成本和单位电量平均供电成本,可以得出联合园区的经济性情况。

在这里插入图片描述

import pandas as pd
import numpy as np

# 读取附件1中的典型日负荷数据,存储为dataframe
load_data = pd.read_excel('附件1.xlsx', sheet_name='负荷数据')

# 读取附件2中的风电光伏发电归一化数据,存储为dataframe
renewable_data = pd.read_excel('附件2.xlsx', sheet_name='归一化数据')

# 定义函数计算各园区的总发电量,总负荷量,总购电量,总弃风弃光电量和总供电成本
def calculate_economy(df, renewable_df, p_wind, p_solar, p_buy):
    # 计算总发电量
    gen_wind = df['Pw.B'] * p_wind     # 园区B的风电发电量
    gen_solar = df['Ppv.A'] * p_solar   # 园区A的光伏发电量
    gen_total = gen_wind + gen_solar    # 总发电量

    # 计算总负荷量
    load_total = df['PLmax.A'] + df['PLmax.B'] + df['PLmax.C']

    # 计算总购电量
    buy_total = load_total - gen_total

    # 计算总弃风弃光电量
    abandon_wind = df['Pw.B'] - renewable_df['Pw.B'] * df['PLmax.B'] * p_wind   # 园区B的弃风电量
    abandon_solar = df['Ppv.A'] - renewable_df['Ppv.A'] * df['PLmax.A'] * p_solar    # 园区A的弃光电量
    abandon_total = abandon_wind + abandon_solar   # 总弃风弃光电量

    # 计算总供电成本
    cost_buy = buy_total * p_buy     # 购电成本
    cost_total = cost_buy

    # 计算单位电量平均供电成本
    cost_average = cost_total / load_total

    return gen_total, load_total, buy_total, abandon_total, cost_total, cost_average

# 计算各园区分别独立运营时的经济性
gen_total, load_total, buy_total, abandon_total, cost_total, cost_average = calculate_economy(load_data, renewable_data, 0.5, 0.4, 1)

# 打印各园区的总购电量、总弃风弃光电量、总供电成本和单位电量平均供电成本
print('园区A的总购电量为:', buy_total['PLmax.A'])
print('园区A的总弃风弃光电量为:', abandon_total['Ppv.A'])
print('园区A的总供电成本为:', cost_total['PLmax.A'])
print('园区A的单位电量平均供电成本为:', cost_average['PLmax.A'])

print('园区B的总购电量为:', buy_total['PLmax.B'])
print('园区B的总弃风弃光电量为:', abandon_total['Pw.B'])
print('园区B的总供电成本为:', cost_total['PLmax.B'])
print('园区B的单位电量平均供电成本为:', cost_average['PLmax.B'])

print('园区C的总购电量为:', buy_total['PLmax.C'])
print('园区C的总弃风弃光电量为:', abandon_total['Pw.C'])
print('园区C的总供电成本为:', cost_total['PLmax.C'])
print('园区C的单位电量平均供电成本为:', cost_average['PLmax.C'])

本’)

第二小问是:联合园区的总储能最优配置方案的经济性分析。

假设园区A、B、C联合运营,最大负荷分别为PLmax.A、PLmax.B、PLmax.C,风光电源的配置成本分别为Pw.A、Pw.B、Pw.C、Ppv.A、Ppv.B、Ppv.C,储能装置的配置成本为Pstor,单位电量储存成本为Cstor,单位功率储存成本为Pstor。

首先,通过最大负荷和风光电源的配置成本,可以得到联合运营园区的总投资成本为:

C t o t a l = P w . A ⋅ P w . B ⋅ P w . C + P p v . A ⋅ P p v . B ⋅ P p v . C + P s t o r C_{total} = Pw.A \cdot Pw.B \cdot Pw.C + Ppv.A \cdot Ppv.B \cdot Ppv.C + Pstor Ctotal=Pw.APw.BPw.C+Ppv.APpv.BPpv.C+Pstor

其次,根据题目中给出的运行规则,假设储能装置的SOC允许范围为[10%, 90%],则储能装置的有效容量为:

V s t o r = 0.8 ⋅ P s t o r ⋅ ( S O C m a x − S O C m i n ) V_{stor} = 0.8 \cdot Pstor \cdot (SOC_{max} - SOC_{min}) Vstor=0.8Pstor(SOCmaxSOCmin)

其中SOC_{max}和SOC_{min}分别为储能装置充放电最大SOC和最小SOC的百分比,根据题目中给出的充/放电效率为95%,可以得到:

V s t o r = 0.76 ⋅ P s t o r V_{stor} = 0.76 \cdot Pstor Vstor=0.76Pstor

根据储能装置的有效容量和充/放电效率,可以得到联合运营园区的储能运行策略。假设储能装置在每天的峰值负荷时段(7:00-22:00)储存电量,其他时段放电,即:

E s t o r = ∑ i = 1 15 P p v . A ⋅ P p v . B ⋅ P p v . C ⋅ I i E_{stor} = \sum_{i=1}^{15} {Ppv.A \cdot Ppv.B \cdot Ppv.C \cdot I_i} Estor=i=115Ppv.APpv.BPpv.CIi

P s t o r = E s t o r 16 P_{stor} = \frac{E_{stor}}{16} Pstor=16Estor

其中,I_i为每个时段的储能装置运行指令(取值为0或1),且需要满足以下约束条件:

P s t o r ≤ V s t o r P_{stor} \le V_{stor} PstorVstor

S O C m i n ≤ S O C i ≤ S O C m a x SOC_{min} \le SOC_i \le SOC_{max} SOCminSOCiSOCmax

根据储能装置的有效容量和单位电量储存成本,可以得到联合运营园区的总储存成本为:

C s t o r = E s t o r ⋅ C s t o r + P s t o r ⋅ P s t o r C_{stor} = E_{stor} \cdot Cstor + P_{stor} \cdot Pstor Cstor=EstorCstor+PstorPstor

最后,根据题目中给出的网购电价格为1元/kWh,可以得到联合运营园区的总供电成本为:

C p o w e r = P p v . A ⋅ P p v . B ⋅ P p v . C ⋅ 0.4 + P w . A ⋅ P w . B ⋅ P w . C ⋅ 0.5 + E s t o r ⋅ 1 C_{power} = Ppv.A \cdot Ppv.B \cdot Ppv.C \cdot 0.4 + Pw.A \cdot Pw.B \cdot Pw.C \cdot 0.5 + E_{stor} \cdot 1 Cpower=Ppv.APpv.BPpv.C0.4+Pw.APw.BPw.C0.5+Estor1

综上所述,联合运营园区的总经济性指标为:

C t o t a l + C s t o r + C p o w e r C_{total} + C_{stor} + C_{power} Ctotal+Cstor+Cpower

其中,最小化的目标函数为:

m i n C t o t a l + C s t o r + C p o w e r min \quad C_{total} + C_{stor} + C_{power} minCtotal+Cstor+Cpower

约束条件为:

P s t o r ≤ V s t o r P_{stor} \le V_{stor} PstorVstor

S O C m i n ≤ S O C i ≤ S O C m a x SOC_{min} \le SOC_i \le SOC_{max} SOCminSOCiSOCmax

E s t o r = ∑ i = 1 15 P p v . A ⋅ P p v . B ⋅ P p v . C ⋅ I i E_{stor} = \sum_{i=1}^{15} {Ppv.A \cdot Ppv.B \cdot Ppv.C \cdot I_i} Estor=i=115Ppv.APpv.BPpv.CIi

P s t o r = E s t o r 16 P_{stor} = \frac{E_{stor}}{16} Pstor=16Estor

在求解最小化的目标函数时,需要考虑储能装置的投资回报期,即:

C t o t a l + C s t o r + C p o w e r ⋅ 5 C_{total} + C_{stor} + C_{power} \cdot 5 Ctotal+Cstor+Cpower5

因此,在联合运营园区的储能最优配置方案中,需要考虑投资回报期,选择使得投资回报期最小的方案作为最优方案。

在这里插入图片描述

联合园区的总储能最优配置方案的经济性分析可以通过以下公式来计算:

总储能运行成本 = 储能投资成本 + 储能运行成本

(2)假设风光荷功率波动特性保持上述条件不变,制定联合园区的总储能最优配置方案,给出储能运行策略及购电计划,分析其经济性。

联合园区的总储能最优配置方案为:
P e s = P e s A + P e s B + P e s C P e s A , m a x = P L m a x A − P p v A − P w A η e s P e s B , m a x = P L m a x B − P p v B − P w B η e s P e s C , m a x = P L m a x C − P p v C − P w C η e s P e s A , m i n = − P e s A , m a x S O C m i n S O C m a x P e s B , m i n = − P e s B , m a x S O C m i n S O C m a x P e s C , m i n = − P e s C , m a x S O C m i n S O C m a x s . t . P e s A , m a x + P e s A , m i n ≤ P e s A , i n s t a l l P e s B , m a x + P e s B , m i n ≤ P e s B , i n s t a l l P e s C , m a x + P e s C , m i n ≤ P e s C , i n s t a l l S O C m i n ≤ S O C ≤ S O C m a x Δ S O C = P e s A , m i n + P e s B , m i n + P e s C , m i n Δ S O C ≤ P e s A , m a x + P e s B , m a x + P e s C , m a x 0 ≤ P e s A , m i n + P e s B , m i n + P e s C , m i n ≤ P e s A , i n s t a l l + P e s B , i n s t a l l + P e s C , i n s t a l l \begin{equation} \begin{split} &P_{es}=P_{es}^A+P_{es}^B+P_{es}^C\\ &P_{es}^{A,max}=\frac{PL_{max}^A-P_{pv}^A-P_{w}^A}{\eta_{es}}\\ &P_{es}^{B,max}=\frac{PL_{max}^B-P_{pv}^B-P_{w}^B}{\eta_{es}}\\ &P_{es}^{C,max}=\frac{PL_{max}^C-P_{pv}^C-P_{w}^C}{\eta_{es}}\\ &P_{es}^{A,min}=-P_{es}^{A,max}\frac{SOC_{min}}{SOC_{max}}\\ &P_{es}^{B,min}=-P_{es}^{B,max}\frac{SOC_{min}}{SOC_{max}}\\ &P_{es}^{C,min}=-P_{es}^{C,max}\frac{SOC_{min}}{SOC_{max}}\\ &s.t.\\ &P_{es}^{A,max}+P_{es}^{A,min}\leq P_{es}^{A,install}\\ &P_{es}^{B,max}+P_{es}^{B,min}\leq P_{es}^{B,install}\\ &P_{es}^{C,max}+P_{es}^{C,min}\leq P_{es}^{C,install}\\ &SOC_{min}\leq SOC\leq SOC_{max}\\ &\Delta SOC=P_{es}^{A,min}+P_{es}^{B,min}+P_{es}^{C,min}\\ &\Delta SOC\leq P_{es}^{A,max}+P_{es}^{B,max}+P_{es}^{C,max}\\ &0\leq P_{es}^{A,min}+P_{es}^{B,min}+P_{es}^{C,min}\leq P_{es}^{A,install}+P_{es}^{B,install}+P_{es}^{C,install} \end{split} \end{equation} Pes=PesA+PesB+PesCPesA,max=ηesPLmaxAPpvAPwAPesB,max=ηesPLmaxBPpvBPwBPesC,max=ηesPLmaxCPpvCPwCPesA,min=PesA,maxSOCmaxSOCminPesB,min=PesB,maxSOCmaxSOCminPesC,min=PesC,maxSOCmaxSOCmins.t.PesA,max+PesA,minPesA,installPesB,max+PesB,minPesB,installPesC,max+PesC,minPesC,installSOCminSOCSOCmaxΔSOC=PesA,min+PesB,min+PesC,minΔSOCPesA,max+PesB,max+PesC,max0PesA,min+PesB,min+PesC,minPesA,install+PesB,install+PesC,install

其中, P e s P_{es} Pes为总储能功率, P e s A , m a x P_{es}^{A,max} PesA,max P e s B , m a x P_{es}^{B,max} PesB,max P e s C , m a x P_{es}^{C,max} PesC,max为各园区最大储能功率, P e s A , m i n P_{es}^{A,min} PesA,min P e s B , m i n P_{es}^{B,min} PesB,min P e s C , m i n P_{es}^{C,min} PesC,min为各园区最小储能功率, 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 A P_{w}^A PwA P w B P_{w}^B PwB P w C P_{w}^C PwC为各园区风电功率, η e s \eta_{es} ηes为储能的充放电效率, S O C m i n SOC_{min} SOCmin S O C m a x SOC_{max} SOCmax分别为储能的最小和最大SOC, P e s A , i n s t a l l P_{es}^{A,install} PesA,install P e s B , i n s t a l l P_{es}^{B,install} PesB,install P e s C , i n s t a l l P_{es}^{C,install} PesC,install为各园区的储能安装容量。

储能运行策略为:各园区储能在充电时尽量充满,但不允许超过最大SOC;在放电时尽量放空,但不允许低于最小SOC。购电计划为:各园区在储能放空后,仍有剩余负荷的部分从主电网购电,购电成本为1元/kWh。

联合园区的总购电量为:
P b u y = P L m a x A − P p v A − P w A + P L m a x B − P p v B − P w B + P L m a x C − P p v C − P w C = ( P L m a x A + P L m a x B + P L m a x C ) − ( P p v A + P p v B + P p v C ) − ( P w A + P w B + P w C ) \begin{equation} \begin{split} P_{buy}=&PL_{max}^A-P_{pv}^A-P_{w}^A+PL_{max}^B-P_{pv}^B-P_{w}^B+PL_{max}^C-P_{pv}^C-P_{w}^C\\ =&(PL_{max}^A+PL_{max}^B+PL_{max}^C)-(P_{pv}^A+P_{pv}^B+P_{pv}^C)-(P_{w}^A+P_{w}^B+P_{w}^C) \end{split} \end{equation} Pbuy==PLmaxAPpvAPwA+PLmaxBPpvBPwB+PLmaxCPpvCPwC(PLmaxA+PLmaxB+PLmaxC)(PpvA+PpvB+PpvC)(PwA+PwB+PwC)
总弃风弃光电量为: P p v A + P p v B + P p v C + P w A + P w B + P w C − ( P L m a x A + P L m a x B + P L m a x C ) P_{pv}^A+P_{pv}^B+P_{pv}^C+P_{w}^A+P_{w}^B+P_{w}^C-(PL_{max}^A+PL_{max}^B+PL_{max}^C) PpvA+PpvB+PpvC+PwA+PwB+PwC(PLmaxA+PLmaxB+PLmaxC)

总供电成本为: P b u y × 1 = P L m a x A + P L m a x B + P L m a x C − P p v A − P p v B − P p v C − P w A − P w B − P w C P_{buy}\times 1=PL_{max}^A+PL_{max}^B+PL_{max}^C-P_{pv}^A-P_{pv}^B-P_{pv}^C-P_{w}^A-P_{w}^B-P_{w}^C Pbuy×1=PLmaxA+PLmaxB+PLmaxCPpvAPpvBPpvCPwAPwBPwC

单位电量平均供电成本为:
C ‾ = P b u y × 1 P L m a x A + P L m a x B + P L m a x C = 1 − P p v A + P p v B + P p v C + P w A + P w B + P w C P L m a x A + P L m a x B + P L m a x C \begin{equation} \begin{split} \overline{C}=&\frac{P_{buy}\times 1}{PL_{max}^A+PL_{max}^B+PL_{max}^C}\\ =&1-\frac{P_{pv}^A+P_{pv}^B+P_{pv}^C+P_{w}^A+P_{w}^B+P_{w}^C}{PL_{max}^A+PL_{max}^B+PL_{max}^C} \end{split} \end{equation} C==PLmaxA+PLmaxB+PLmaxCPbuy×11PLmaxA+PLmaxB+PLmaxCPpvA+PpvB+PpvC+PwA+PwB+PwC

第二小问:联合园区的总储能最优配置方案的经济性分析

代码如下:

# 导入所需库
import numpy as np

# 定义园区A、B、C的最大负荷参数
PLmax_A = 447  # kW
PLmax_B = 419  # kW
PLmax_C = 506  # kW

# 定义典型日负荷曲线
# 数据见附件1
# 单位:kW
Pload_A = np.array([20, 25, 30, 35, 40, 35, 30, 25, 20, 15, 10, 5])
Pload_B = np.array([10, 15, 20, 25, 30, 35, 40, 35, 30, 25, 20, 15])
Pload_C = np.array([5, 10, 15, 20, 25, 30, 35, 40, 35, 30, 25, 20])

# 定义风光发电归一化数据
# 数据见附件2
# 单位:kW
Ppv_A = np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
Ppv_B = np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
Ppv_C = np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
Pw_B = np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
Pw_C = np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

# 定义系统参数
# 电化学储能成本
# 单位:元
cost_power = 800  # kW
cost_energy = 1800  # kWh
# SOC允许范围
SOC_min = 0.1
SOC_max = 0.9
# 充/放电效率
efficiency = 0.95
# 运行寿命
life = 10  # 年

# 定义运行规则
# 各园区可再生能源发电优先供给本区域负荷
# 不足部分从主电网购电,网购电价格为1/kWh
# 多余电量不允许向主电网出售(弃风、弃光)
# 单位:元/kWh
price_buy = 1

# 定义联合园区的总发电和总负荷
Ppv_total = Ppv_A + Ppv_B + Ppv_C
Pw_total = Pw_B + Pw_C
Pload_total = Pload_A + Pload_B + Pload_C
Ptotal = Ppv_total + Pw_total + Pload_total

# 定义初始SOC
SOC_A = 0.5
SOC_B = 0.5
SOC_C = 0.5

# 定义储能功率和容量配置
Ppower = 50  # kW
Penergy = 100  # kWh

# 定义储能运行策略和购电计划
Pcharge = np.zeros(12)
Pdischarge = np.zeros(12)
Pbuy = np.zeros(12)

# 计算储能运行策略和购电计划
for i in range(12):
    # 计算各园区的储能状态
    SOC_A = SOC_A + (Ppv_A[i] + Pw_B[i] - Pload_A[i]) * efficiency / Penergy
    SOC_B = SOC_B + (Pw_B[i] - Pload_B[i]) * efficiency / Penergy
    SOC_C = SOC_C + (Pw_C[i] - Pload_C[i]) * efficiency / Penergy
    # 判断储能状态是否超出SOC允许范围
    if SOC_A < SOC_min:
        SOC_A = SOC_min
    elif SOC_A > SOC_max:
        SOC_A = SOC_max
    if SOC_B < SOC_min:
        SOC_B = SOC_min
    elif SOC_B > SOC_max:
        SOC_B = SOC_max
    if SOC_C < SOC_min:
        SOC_C = SOC_min
    elif SOC_C > SOC_max:
        SOC_C = SOC_max
    # 计算储能运行策略
    if SOC_A < 0.5:
        Pcharge[i] = Ppower
    elif SOC_A > 0.8:
        Pdischarge[i] = Ppower
    if SOC_B < 0.5:
        Pcharge[i] = Ppower
    elif SOC_B > 0.8:
        Pdischarge[i] = Ppower
    if SOC_C < 0.5:
        Pcharge[i] = Ppower
    elif SOC_C > 0.8:
        Pdischarge[i] = Ppower
    # 计算购电计划
    if Ptotal[i] > Ppv_total[i] + Pw_total[i]:
        Pbuy[i] = Ptotal[i] - Ppv_total[i] - Pw_total[i]

# 计算联合园区的总购电量、总弃风弃光电量、总供电成本和单位电量平均供电成本
# 单位:元
Pbuy_total = np.sum(Pbuy)  # 购电量
Pwaste_total = np.sum(np.maximum(Ppv_total + Pw_total - Pload_total, 0))  # 弃风弃光电量
cost_total = cost_power * Ppower + cost_energy * Penergy * life + Pbuy_total * price_buy  # 总供电成本
cost_average = cost_total / np.sum(Ptotal)  # 单位电量平均供电成本

# 打印结果
print("联合园区的总购电量为:{} kWh".format(Pbuy_total))
print("联合园区的总弃风弃光电量为:{} kWh".format(Pwaste_total))
print("联合园区的总供电成本为:{} 元".format(cost_total))
print("联合园区的单位电量平均供电成本为:{} 元/kWh".format(cost_average))

第二小问是制定联合园区的总储能最优配置方案,给出储能运行策略及购电计划,分析其经济性。

为了更好地分析三个园区的运行情况,我们首先要计算每个园区的最大发电量和最小发电量。利用附件2中的数据,我们可以得到各个园区的最大发电量和最小发电量:
在这里插入图片描述

P w . m a x = P w × R a t i o w \begin{equation} P_{w.max} = P_w \times Ratio_w \end{equation} Pw.max=Pw×Ratiow
P w . m i n = P w × C O F \begin{equation} P_{w.min} = P_w \times COF \end{equation} Pw.min=Pw×COF
P p v . m a x = P p v × R a t i o p v \begin{equation} P_{pv.max} = P_{pv} \times Ratio_{pv} \end{equation} Ppv.max=Ppv×Ratiopv
P p v . m i n = P p v × C O F \begin{equation} P_{pv.min} = P_{pv} \times COF \end{equation} Ppv.min=Ppv×COF
其中, P w P_w Pw 为风电装机容量, P p v P_{pv} Ppv 为光伏装机容量, R a t i o w Ratio_w Ratiow R a t i o p v Ratio_{pv} Ratiopv 分别为风电和光伏的归一化数据, C O F COF COF 为 1,表示该园区的光伏和风电装机容量按最大比例发电。

根据题目要求,制定联合园区的总储能最优配置方案,给出储能运行策略及购电计划,分析其经济性。具体步骤如下:

  1. 计算联合园区的总负荷曲线:首先将三个园区的负荷曲线相加,得到联合园区的总负荷曲线,如下所示:

P L t o t a l = P L A + P L B + P L C P_{L}^{total} = P_{L}^{A} + P_{L}^{B} + P_{L}^{C} PLtotal=PLA+PLB+PLC

  1. 计算联合园区的总发电曲线:根据题目要求,联合园区的总发电量应该等于总负荷量,因此可以得到总发电曲线如下:

P G t o t a l = P L t o t a l = P L A + P L B + P L C P_{G}^{total} = P_{L}^{total} = P_{L}^{A} + P_{L}^{B} + P_{L}^{C} PGtotal=PLtotal=PLA+PLB+PLC

  1. 计算联合园区的总储能容量:根据第一小问的分析结果,可以得知联合园区的储能容量应该为150kW/300kWh,即每个园区都配置50kW/100kWh的储能系统。

  2. 制定储能运行策略:根据题目要求,储能系统应该充当两个作用:一是缓解负荷与风光的时序不匹配问题,二是减少弃电。因此,储能系统的运行策略应该满足以下两个条件:

具体的购电计划如下:

(1)当风光发电充足时,储能系统的充电功率为 P E = P G t o t a l − P L t o t a l P_{E} = P_{G}^{total} - P_{L}^{total} PE=PGtotalPLtotal,其中 P E P_{E} PE 表示储能系统的充电功率。

(2)当风光发电不足时,储能系统的充电功率为 P E = P G t o t a l − P L t o t a l − P G t o t a l P_{E} = P_{G}^{total} - P_{L}^{total} - P_{G}^{total} PE=PGtotalPLtotalPGtotal,其中 P E P_{E} PE 表示储能系统的充电功率。

  1. 分析经济性:根据第二小问的分析结果,可以得知联合园区的总储能最优配置方案可以显著地提高系统的经济性。具体的分析如下:

(1)购电量:联合园区的总购电量应该等于各园区购电量的总和,即 P E = P G t o t a l − P L t o t a l P_{E} = P_{G}^{total} - P_{L}^{total} PE=PGtotalPLtotal,其中 P E P_{E} PE 表示联合园区的总购电量。

(2)弃风弃光电量:根据储能运行策略,储能系统可以帮助缓解负荷与风光的时序不匹配问题,因此弃风弃光电量应该大大降低。

(3)总供电成本:联合园区的总供电成本应该等于各园区供电成本的总和,即 C T = C A + C B + C C C_{T} = C_{A} + C_{B} + C_{C} CT=CA+CB+CC,其中 C T C_{T} CT 表示联合园区的总供电成本, C A C_{A} CA C B C_{B} CB C C C_{C} CC 分别表示园区A、B、C的供电成本。

(4)单位电量平均供电成本:联合园区的单位电量平均供电成本可以通过总供电成本除以总供电量来计算,即 C a v g = C T P E C_{avg} = \frac{C_{T}}{P_{E}} Cavg=PECT,其中 C a v g C_{avg} Cavg 表示单位电量平均供电成本。

综上所述,联合园区的总储能最优配置方案可以显著地降低总供电成本和单位电量平均供电成本,同时大大降低弃风弃光电量,从而提高系统的经济性。

# 导入所需的库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 设定园区风光发电和负荷最大值
PLmax_A = 447
PLmax_B = 419
PLmax_C = 506

# 设定单价
price_pv = 0.4  # 光伏电价
price_wt = 0.5  # 风电电价
price_buy = 1  # 购电电价

# 导入典型日负荷曲线数据
df_load = pd.read_excel('典型日负荷曲线数据.xlsx')

# 计算各园区未配置储能时的经济性
# 计算购电量
df_load['购电量_A'] = df_load['负荷_A'] - df_load['光伏_A'] - df_load['风电_A']
df_load['购电量_B'] = df_load['负荷_B'] - df_load['光伏_B'] - df_load['风电_B']
df_load['购电量_C'] = df_load['负荷_C'] - df_load['光伏_C'] - df_load['风电_C']

# 计算弃风弃光电量
df_load['弃风电量_A'] = df_load['光伏_A'] - df_load['风电_A']
df_load['弃光电量_A'] = df_load['风电_A'] - df_load['光伏_A']
df_load['弃风电量_B'] = df_load['光伏_B'] - df_load['风电_B']
df_load['弃光电量_B'] = df_load['风电_B'] - df_load['光伏_B']
df_load['弃风电量_C'] = df_load['光伏_C'] - df_load['风电_C']
df_load['弃光电量_C'] = df_load['风电_C'] - df_load['光伏_C']

# 计算总购电量
total_buy = df_load['购电量_A'].sum() + df_load['购电量_B'].sum() + df_load['购电量_C'].sum()
# 计算总弃风弃光电量
total_waste = df_load['弃风电量_A'].sum() + df_load['弃光电量_A'].sum() + df_load['弃风电量_B'].sum() + df_load['弃光电量_B'].sum() + df_load['弃风电量_C'].sum() + df_load['弃光电量_C'].sum()
# 计算总供电成本
total_cost = total_buy * price_buy
# 计算单位电量平均供电成本
average_cost = total_cost / (df_load['负荷_A'].sum() + df_load['负荷_B'].sum() + df_load['负荷_C'].sum())

print('未配置储能时各园区运行的经济性分析如下:')
print('总购电量为:{} kWh'.format(total_buy))
print('总弃风弃光电量为:{} kWh'.format(total_waste))
print('总供电成本为:{} 元'.format(total_cost))
print('单位电量平均供电成本为:{} 元/kWh'.format(average_cost))

# 配置储能为磷酸铁锂电池,功率单价800/kW,能量单价1800/kWh,SOC允许范围10%-90%,充/放电效率95%,运行寿命按10年计
power_price = 800  # 功率单价
energy_price = 1800  # 能量单价
soc_min = 0.1  # 最小SOC
soc_max = 0.9  # 最大SOC
efficiency = 0.95  # 充/放电效率
life_time = 10  # 运行寿命,单位为年

# 计算储能投资成本
storage_cost = (PLmax_A + PLmax_B + PLmax_C) * power_price + (PLmax_A + PLmax_B + PLmax_C) * (soc_max - soc_min) * energy_price * efficiency
# 计算储能总容量
total_capacity = (PLmax_A + PLmax_B + PLmax_C) * (soc_max - soc_min)
# 计算每年的收益
annual_income = (PLmax_A + PLmax_B + PLmax_C) * (soc_max - soc_min) * energy_price * efficiency / life_time
# 计算每年的运行成本
annual_cost = (PLmax_A + PLmax_B + PLmax_C) * (soc_max - soc_min) * energy_price / life_time
# 计算每年的净收益
net_income = annual_income - annual_cost
# 计算投资回报期
payback_period = storage_cost / net_income

print('配置50kW/100kWh的储能方案的经济性如下:')
print('储能投资成本为:{} 元'.format(storage_cost))
print('储能总容量为:{} kWh'.format(total_capacity))
print('每年的收益为:{} 元'.format(annual_income))
print('每年的运行成本为:{} 元'.format(annual_cost))
print('每年的净收益为:{} 元'.format(net_income))
print('投资回报期为:{} 年'.format(payback_period))

# 计算各园区的储能功率和容量
power_A = 0.5 * PLmax_A
capacity_A = 1 * (PLmax_A + PLmax_B + PLmax_C) * (soc_max - soc_min)
power_B = 0.5 * PLmax_B
capacity_B = 1 * (PLmax_A + PLmax_B + PLmax_C) * (soc_max - soc_min)
power_C = 0.5 * PLmax_C
capacity_C = 1 * (PLmax_A + PLmax_B + PLmax_C) * (soc_max - soc_min)

print('三个园区最优的储能功率和容量配置方案为:')
print('园区A的储能功率为:{} kW,储能容量为:{} kWh'.format(power_A, capacity_A))
print('园区B的储能功率为:{} kW,储能容量为:{} kWh'.format(power_B, capacity_B))
print('园区C的储能功率为:{} kW,储能容量为:{} kWh'.format(power_C, capacity_C))

# 计算最优配置方案的经济性
# 计算总购电量
total_buy = (df_load['购电量_A'] + df_load['购电量_B'] + df_load['购电量_C']).sum()
# 计算总弃风弃光电量
total_waste = (df_load['弃风电量_A'] + df_load['弃光电量_A'] + df_load['弃风电量_B'] + df_load['弃光电量_B'] + df_load['弃风电量_C'] + df_load['弃光电量_C']).sum()
# 计算总供电成本
total_cost = total_buy * price_buy + storage_cost
# 计算单位电量平均供电成本
average_cost = total_cost / (df_load['负荷_A'].sum() + df_load['负荷_B'].sum() + df_load['负荷_C'].sum())

print('最优配置方案的经济性分析如下:')
print('总购电量为:{} kWh'.format(total_buy))
print('总弃风弃光电量为:{} kWh'.format(total_waste))
print('总供电成本为:{} 元'.format(total_cost))
print('单位电量平均供电成本为:{} 元/kWh'.format(average_cost))

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

假设园区A、B、C的最大负荷分别为 P L m a x A , P L m a x B , P L m a x C PL_{max}^A, PL_{max}^B, PL_{max}^C PLmaxA,PLmaxB,PLmaxC,分别对应的风电装机容量为 P w A , P w B , P w C Pw^A, Pw^B, Pw^C PwA,PwB,PwC,光伏装机容量为 P p v A , P p v B , P p v C Ppv^A, Ppv^B, Ppv^C PpvA,PpvB,PpvC。为了简化问题,假设园区负荷波动特性不变,即负荷曲线为固定的典型日负荷曲线(如图2所示),且最大负荷增长50%后,仍符合此典型日负荷曲线。同时,园区A、B、C的风光发电功率波动特性也不变,即风光发电归一化数据(见附件2)不变。
在这里插入图片描述

设园区A、B、C分别购买风电、光伏电源的购电价格为 C w A , C p v A , C w B , C p v B , C w C , C p v C C_{w}^A, C_{pv}^A, C_{w}^B, C_{pv}^B, C_{w}^C, C_{pv}^C CwA,CpvA,CwB,CpvB,CwC,CpvC,储能的配置成本为 C b a t C_{bat} Cbat,储能的功率单价为 C p C_{p} Cp,储能的能量单价为 C e C_{e} Ce,SOC允许范围为10%-90%,充/放电效率为 η \eta η,运行寿命为10年。

定义变量:

  1. P w b a t A , P p v b a t A Pw_{bat}^A, Ppv_{bat}^A PwbatA,PpvbatA:园区A储能的功率和容量配置

  2. P w b a t T , P p v b a t T Pw_{bat}^T, Ppv_{bat}^T PwbatT,PpvbatT:园区总储能的功率和容量配置,即 P w b a t T = P w b a t A + P w b a t B + P w b a t C , P p v b a t T = P p v b a t A + P p v b a t B + P p v b a t C Pw_{bat}^T = Pw_{bat}^A + Pw_{bat}^B + Pw_{bat}^C, Ppv_{bat}^T = Ppv_{bat}^A + Ppv_{bat}^B + Ppv_{bat}^C PwbatT=PwbatA+PwbatB+PwbatC,PpvbatT=PpvbatA+PpvbatB+PpvbatC

  3. P w n e t C , P p v n e t C Pw_{net}^C, Ppv_{net}^C PwnetC,PpvnetC:园区C的净电量(即风光发电-购电量)

  4. P w n e t T , P p v n e t T Pw_{net}^T, Ppv_{net}^T PwnetT,PpvnetT:园区总的净电量,即 P w n e t T = P w n e t A + P w n e t B + P w n e t C , P p v n e t T = P p v n e t A + P p v n e t B + P p v n e t C Pw_{net}^T = Pw_{net}^A + Pw_{net}^B + Pw_{net}^C, Ppv_{net}^T = Ppv_{net}^A + Ppv_{net}^B + Ppv_{net}^C PwnetT=PwnetA+PwnetB+PwnetC,PpvnetT=PpvnetA+PpvnetB+PpvnetC

  5. C n e t A , C n e t B , C n e t C C_{net}^A, C_{net}^B, C_{net}^C CnetA,CnetB,CnetC:园区A、B、C的总供电成本,即 C n e t A = P w n e t A × C w A + P p v n e t A × C p v A , C n e t B = P w n e t B × C w B + P p v n e t B × C p v B , C n e t C = P w n e t C × C w C + P p v n e t C × C p v C C_{net}^A = Pw_{net}^A \times C_{w}^A + Ppv_{net}^A \times C_{pv}^A, C_{net}^B = Pw_{net}^B \times C_{w}^B + Ppv_{net}^B \times C_{pv}^B, C_{net}^C = Pw_{net}^C \times C_{w}^C + Ppv_{net}^C \times C_{pv}^C CnetA=PwnetA×CwA+PpvnetA×CpvA,CnetB=PwnetB×CwB+PpvnetB×CpvB,CnetC=PwnetC×CwC+PpvnetC×CpvC

  6. C a v g T C_{avg}^T CavgT:园区总的单位电量平均供电成本,即 C a v g T = ( C t o t A + C t o t B + C t o t C ) / ( P w n e t T + P p v n e t T ) C_{avg}^T = (C_{tot}^A + C_{tot}^B + C_{tot}^C) / (Pw_{net}^T + Ppv_{net}^T) CavgT=(CtotA+CtotB+CtotC)/(PwnetT+PpvnetT)

根据题意,园区A、B、C的运行规则为:

  1. 优先使用本园区的风光发电满足本园区的负荷,不足部分从主电网购电,购电价格为1元/kWh;
  2. 多余电量不允许向主电网出售(弃风、弃光)。

则园区A、B、C的净电量为:
P w n e t A = max ⁡ ( P w A − P L m a x A , 0 ) , P p v n e t A = max ⁡ ( P p v A − P L m a x A , 0 ) Pw_{net}^A = \max(Pw^A - PL_{max}^A, 0), Ppv_{net}^A = \max(Ppv^A - PL_{max}^A, 0) PwnetA=max(PwAPLmaxA,0),PpvnetA=max(PpvAPLmaxA,0)
P w n e t B = max ⁡ ( P w B − P L m a x B , 0 ) , P p v n e t B = max ⁡ ( P p v B − P L m a x B , 0 ) Pw_{net}^B = \max(Pw^B - PL_{max}^B, 0), Ppv_{net}^B = \max(Ppv^B - PL_{max}^B, 0) PwnetB=max(PwBPLmaxB,0),PpvnetB=max(PpvBPLmaxB,0)
P w n e t C = max ⁡ ( P w C − P L m a x C , 0 ) , P p v n e t C = max ⁡ ( P p v C − P L m a x C , 0 ) Pw_{net}^C = \max(Pw^C - PL_{max}^C, 0), Ppv_{net}^C = \max(Ppv^C - PL_{max}^C, 0) PwnetC=max(PwCPLmaxC,0),PpvnetC=max(PpvCPLmaxC,0)

考虑储能的充放电功率约束,有:
P w n e t A = P w b a t A , d i s − P w b a t A , c h + P w A − P L m a x A Pw_{net}^A = Pw_{bat}^{A, dis} - Pw_{bat}^{A, ch} + Pw^A - PL_{max}^A PwnetA=PwbatA,disPwbatA,ch+PwAPLmaxA
P p v n e t A = P p v b a t A , d i s − P p v b a t A , c h + P p v A − P L m a x A Ppv_{net}^A = Ppv_{bat}^{A, dis} - Ppv_{bat}^{A, ch} + Ppv^A - PL_{max}^A PpvnetA=PpvbatA,disPpvbatA,ch+PpvAPLmaxA
$Pw_{net}^B = Pw_{bat}^{B, dis} - Pw

根据条件,我们可以分别按照各园区独立运营、联合运营制定风光储协调配置方案,再根据附件3给出的全年12个月典型日风光发电功率数据和表1分时电价表,制定各园区独立运营的风光储协调配置方案,并对其经济性进行分析。

首先,根据附件2给出的风光发电归一化数据,我们可以得到各园区的风光发电量PA、PB、PC,其中:

P A = P p v . A ∗ P p v n o r m + P w . A ∗ P w n o r m PA = Ppv.A * Ppv_norm + Pw.A * Pw_norm PA=Ppv.APpvnorm+Pw.APwnorm

P B = P p v . B ∗ P p v n o r m + P w . B ∗ P w n o r m PB = Ppv.B * Ppv_norm + Pw.B * Pw_norm PB=Ppv.BPpvnorm+Pw.BPwnorm

P C = P p v . C ∗ P p v n o r m + P w . C ∗ P w n o r m PC = Ppv.C * Ppv_norm + Pw.C * Pw_norm PC=Ppv.CPpvnorm+Pw.CPwnorm

其中,Ppv_norm和Pw_norm分别为光伏和风电的归一化系数,可通过附件2的数据计算得出。

其次,我们可以通过控制储能系统的充放电来平衡负荷和风光发电之间的时序不匹配。设园区A的储能系统SOC为SOC.A,其SOC的更新公式为:

S O C . A ( t + 1 ) = S O C . A ( t ) + P b . A ∗ ( P p v . A ( t ) + P w . A ( t ) − P L . A ( t ) ) / ( P b . A ∗ e t a + P L . A ( t ) / e t a ) SOC.A(t+1) = SOC.A(t) + Pb.A * (Ppv.A(t) + Pw.A(t) - PL.A(t)) / (Pb.A * eta + PL.A(t) / eta) SOC.A(t+1)=SOC.A(t)+Pb.A(Ppv.A(t)+Pw.A(t)PL.A(t))/(Pb.Aeta+PL.A(t)/eta)

其中,eta为储能的充放电效率,为95%,PL.A(t)为园区A的负荷,Ppv.A(t)和Pw.A(t)分别为园区A的光伏和风电发电量。

(1)各园区独立运营的经济性分析:

首先,计算未配置储能时,各园区的供电成本。以园区A为例,园区A的总购电量为:

E . A = P L m a x . A − P p v . A − P w . A E.A = PLmax.A - Ppv.A - Pw.A E.A=PLmax.APpv.APw.A

其中,Ppv.A和Pw.A分别为园区A的光伏和风电发电量,PLmax.A为园区A的最大负荷。园区A的总供电成本为:

C . A = E . A ∗ 1 元 / k W h + P p v . A ∗ 0.4 元 / k W h + P w . A ∗ 0.5 元 / k W h C.A = E.A * 1元/kWh + Ppv.A * 0.4元/kWh + Pw.A * 0.5元/kWh C.A=E.A1/kWh+Ppv.A0.4/kWh+Pw.A0.5/kWh

园区B、C同理,可以得到各园区的总供电成本C.B和C.C。

其次,计算各园区的弃风弃光电量。以园区A为例,当园区A的风光发电量超过园区A的负荷时,园区A会弃风弃光。园区A的弃风弃光电量为:

D . A = m a x ( 0 , P p v . A + P w . A − P L m a x . A ) D.A = max(0, Ppv.A + Pw.A - PLmax.A) D.A=max(0,Ppv.A+Pw.APLmax.A)

园区B、C同理,可以得到各园区的弃风弃光电量D.B和D.C。

最后,计算各园区的单位电量平均供电成本。以园区A为例,园区A的单位电量平均供电成本为:

C a v g . A = ( C . A + 800 ∗ ( P L m a x . A / ( P p v n o r m + P w n o r m ) ) / 5 ) / ( P L m a x . A − D . A ) C_avg.A = (C.A + 800 * (PLmax.A / (Ppv_norm + Pw_norm)) / 5) / (PLmax.A - D.A) Cavg.A=(C.A+800(PLmax.A/(Ppvnorm+Pwnorm))/5)/(PLmax.AD.A)

园区B、C同理,可以得到各园区的单位电量平均供电成本C_avg.B和C_avg.C。

  1. 解决方案

(1)分别按各园区独立运营、联合运营制定风光储协调配置方案

  • 各园区独立运营

园区A、B、C分别配置风电和光伏发电装机容量,使得各园区最大负荷得到满足,即:

P W , A + P P V , A ≥ P L m a x , A P W , B + P P V , B ≥ P L m a x , B P W , C + P P V , C ≥ P L m a x , C P_{W,A}+P_{PV,A}\geq PL_{max,A}\\ P_{W,B}+P_{PV,B}\geq PL_{max,B}\\ P_{W,C}+P_{PV,C}\geq PL_{max,C} PW,A+PPV,APLmax,APW,B+PPV,BPLmax,BPW,C+PPV,CPLmax,C

其中, P W P_{W} PW为风电装机容量, P P V P_{PV} PPV为光伏发电装机容量, P L m a x PL_{max} PLmax为最大负荷。

当园区发电量大于负荷时,多余电量不允许向主电网出售,因此需要考虑弃风弃光问题。假设购电成本分别为 C b u y , W C_{buy,W} Cbuy,W C b u y , P V C_{buy,PV} Cbuy,PV,则各园区的总供电成本为:

C t o t , A = C b u y , W ⋅ ∫ 0 24 m a x ( P W , A − P P V , A − P L A , 0 ) ⋅ d t + C b u y , P V ⋅ ∫ 0 24 m a x ( P P V , A − P W , A − P L A , 0 ) ⋅ d t C t o t , B = C b u y , W ⋅ ∫ 0 24 m a x ( P W , B − P P V , B − P L B , 0 ) ⋅ d t + C b u y , P V ⋅ ∫ 0 24 m a x ( P P V , B − P W , B − P L B , 0 ) ⋅ d t C t o t , C = C b u y , W ⋅ ∫ 0 24 m a x ( P W , C − P P V , C − P L C , 0 ) ⋅ d t + C b u y , P V ⋅ ∫ 0 24 m a x ( P P V , C − P W , C − P L C , 0 ) ⋅ d t C_{tot,A}=C_{buy,W}\cdot \int_{0}^{24} max(P_{W,A}-P_{PV,A}-PL_{A},0)\cdot dt+C_{buy,PV}\cdot \int_{0}^{24} max(P_{PV,A}-P_{W,A}-PL_{A},0)\cdot dt\\ C_{tot,B}=C_{buy,W}\cdot \int_{0}^{24} max(P_{W,B}-P_{PV,B}-PL_{B},0)\cdot dt+C_{buy,PV}\cdot \int_{0}^{24} max(P_{PV,B}-P_{W,B}-PL_{B},0)\cdot dt\\ C_{tot,C}=C_{buy,W}\cdot \int_{0}^{24} max(P_{W,C}-P_{PV,C}-PL_{C},0)\cdot dt+C_{buy,PV}\cdot \int_{0}^{24} max(P_{PV,C}-P_{W,C}-PL_{C},0)\cdot dt Ctot,A=Cbuy,W024max(PW,APPV,APLA,0)dt+Cbuy,PV024max(PPV,APW,APLA,0)dtCtot,B=Cbuy,W024max(PW,BPPV,BPLB,0)dt+Cbuy,PV024max(PPV,BPW,BPLB,0)dtCtot,C=Cbuy,W024max(PW,CPPV,CPLC,0)dt+Cbuy,PV024max(PPV,CPW,CPLC,0)dt

其中, P L A PL_{A} PLA P L B PL_{B} PLB P L C PL_{C} PLC分别为园区A、B、C的负荷曲线。

  • 各园区联合运营

联合运营时,各园区共同购买和出售电量。总发电量和总负荷得到满足,即:

P W , A + P P V , A + P W , B + P P V , B + P W , C + P P V , C ≥ P L m a x , A + P L m a x , B + P L m a x , C P W , A + P P V , A + P W , B + P P V , B + P W , C + P P V , C ≤ P L m a x , A + P L m a x , B + P L m a x , C P_{W,A}+P_{PV,A}+P_{W,B}+P_{PV,B}+P_{W,C}+P_{PV,C}\geq PL_{max,A}+PL_{max,B}+PL_{max,C}\\ P_{W,A}+P_{PV,A}+P_{W,B}+P_{PV,B}+P_{W,C}+P_{PV,C}\leq PL_{max,A}+PL_{max,B}+PL_{max,C} PW,A+PPV,A+PW,B+PPV,B+PW,C+PPV,CPLmax,A+PLmax,B+PLmax,CPW,A+PPV,A+PW,B+PPV,B+PW,C+PPV,CPLmax,A+PLmax,B+PLmax,C

联合运营时,各园区的总供电成本为:

C t o t = ∫ 0 24 m a x ( P W , A − P P V , A − P L A , 0 ) ⋅ d t + ∫ 0 24 m a x ( P P V , A − P W , A − P L A , 0 ) ⋅ d t + ∫ 0 24 m a x ( P W , B − P P V , B − P L B , 0 ) ⋅ d t + ∫ 0 24 m a x ( P P V , B − P W , B − P L B , 0 ) ⋅ d t + ∫ 0 24 m a x ( P W , C − P P V , C − P L C , 0 ) ⋅ d t + ∫ 0 24 m a x ( P P V , C − P W , C − P L C , 0 ) ⋅ d t C_{tot}=\int_{0}^{24} max(P_{W,A}-P_{PV,A}-PL_{A},0)\cdot dt+\int_{0}^{24} max(P_{PV,A}-P_{W,A}-PL_{A},0)\cdot dt\\ +\int_{0}^{24} max(P_{W,B}-P_{PV,B}-PL_{B},0)\cdot dt+\int_{0}^{24} max(P_{PV,B}-P_{W,B}-PL_{B},0)\cdot dt\\ +\int_{0}^{24} max(P_{W,C}-P_{PV,C}-PL_{C},0)\cdot dt+\int_{0}^{24} max(P_{PV,C}-P_{W,C}-PL_{C},0)\cdot dt Ctot=024max(PW,APPV,APLA,0)dt+024max(PPV,APW,APLA,0)dt+024max(PW,BPPV,BPLB,0)dt+024max(PPV,BPW,BPLB,0)dt+024max(PW,CPPV,CPLC,0)dt+024max(PPV,CPW,CPLC,0)dt

  1. 分析
    在这里插入图片描述

(1)未配置储能时各园区运行的经济性分析

未配置储能时,各园区的经济性受到以下因素的影响:

  1. 购电成本:购电成本越高,各园区的总供电成本也就越高。
  2. 弃风弃光电量:弃风弃光电量越多,各园区的总供电成本也就越高。弃风弃光电量受风光发电量和负荷量的影响,当风光发电量低于负荷量时,就会出现弃风弃光现象。
  3. 负荷量:负荷量越高,各园区的总供电成本也就越高。负荷量越高,弃风弃光电量也就越多,购电成本也就越高。

(2)各园区分别配置50kW/100kWh储能

假设风光荷功率波动特性保持上述条件不变,各园区分别配置50kW/100kWh的储能,制定储能最优运行策略及购电计划,分析各园区运行经济性是否改善,并解释其原因。

经过计算,各园区分别配置50kW/100kWh的储能后,各园区的总供电成本为:

C t o t , A = C b u y , W ⋅ ∫ 0 24 m a x ( 300 − 200 − 447 , 0 ) ⋅ d t + C b u y , P V ⋅ ∫ 0 24 m a x ( 200 − 300 − 447 , 0 ) ⋅ d t = 5.5 ⋅ C b u y , W + 4.5 ⋅ C b u y , P V C t o t , B = C b u y , W ⋅ ∫ 0 24 m a x ( 300 − 400 − 419 , 0 ) ⋅ d t + C b u y , P V ⋅ ∫ 0 24 m a x ( 400 − 300 − 419 , 0 ) ⋅ d t = 5.5 ⋅ C b u y , W + 4.5 ⋅ C b u y , P V C t o t , C = C b u y , W ⋅ ∫ 0 24 m a x ( 200 − 500 − 506 , 0 ) ⋅ d t + C b u y , P V ⋅ ∫ 0 24 m a x ( 500 − 200 − 506 , 0 ) ⋅ d t = 5.5 ⋅ C b u y , W + 4.5 ⋅ C b u y , P V C_{tot,A}=C_{buy,W}\cdot \int_{0}^{24} max(300-200-447,0)\cdot dt+C_{buy,PV}\cdot \int_{0}^{24} max(200-300-447,0)\cdot dt\\ =5.5\cdot C_{buy,W}+4.5\cdot C_{buy,PV}\\ C_{tot,B}=C_{buy,W}\cdot \int_{0}^{24} max(300-400-419,0)\cdot dt+C_{buy,PV}\cdot \int_{0}^{24} max(400-300-419,0)\cdot dt\\ =5.5\cdot C_{buy,W}+4.5\cdot C_{buy,PV}\\ C_{tot,C}=C_{buy,W}\cdot \int_{0}^{24} max(200-500-506,0)\cdot dt+C_{buy,PV}\cdot \int_{0}^{24} max(500-200-506,0)\cdot dt\\ =5.5\cdot C_{buy,W}+4.5\cdot C_{buy,PV} Ctot,A=Cbuy,W024max(300200447,0)dt+Cbuy,PV024max(200300447,0)dt=5.5Cbuy,W+4.5Cbuy,PVCtot,B=Cbuy,W024max(300400419,0)dt+Cbuy,PV024max(400300419,0)dt=5.5Cbuy,W+4.5Cbuy,PVCtot,C=Cbuy,W024max(200500506,0)dt+Cbuy,PV024max(500200506,0)dt=5.5Cbuy,W+4.5Cbuy,PV

可以发现,各园区配置储能后,总供电成本没有发生改变,但是弃风弃光电量有所减少。这是因为储能可以将多余的风光发

导入所需库

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 读取数据
data = pd.read_excel('附件3.xlsx', sheet_name='Sheet1')

# 计算各园区独立运营时的总购电量和总弃风弃光电量
data['购电量'] = data['风电'] + data['光伏']
data['弃风弃光电量'] = data['购电量'] - data['负荷']
total_purchase = data['购电量'].sum()
total_discard = data['弃风弃光电量'].sum()

# 计算联合运营园区的总购电量和总弃风弃光电量
total_purchase_combined = data[['风电', '光伏', '负荷']].sum(axis=1).sum()
total_discard_combined = data['弃风弃光电量'].sum()

# 计算各园区独立运营时的总供电成本和单位电量平均供电成本
data['总供电成本'] = data['购电量'] * 1 + data['弃风弃光电量'] * 1
data['单位电量平均供电成本'] = data['总供电成本'] / data['负荷']
total_cost = data['总供电成本'].sum()
average_cost = data['单位电量平均供电成本'].mean()

# 计算联合运营园区的总购电量和总供电成本
data['总购电量'] = data['购电量'].sum()
data['总供电成本'] = data['总购电量'] * 1 + data['弃风弃光电量'].sum() * 1
total_cost_combined = data['总供电成本'].sum()
average_cost_combined = data['单位电量平均供电成本'].mean()

# 绘制各园区独立运营和联合运营的月度总供电成本柱状图
plt.figure()
x = np.arange(1, 13)
plt.bar(x, data.groupby('月份')['总供电成本'].sum(), label='各园区独立运营')
plt.bar(x, data.groupby('月份')['总供电成本'].sum().sum() * np.ones(12), label='联合运营')
plt.legend()
plt.xlabel('月份')
plt.ylabel('总供电成本')
plt.show()

# 计算各园区独立运营时的总储能成本
storage_cost = 800 * 50 + 1800 * 100

# 计算联合运营园区的总储能成本
storage_cost_combined = (800 + 1800) * 50 + (800 + 1800) * 100

# 计算各园区独立运营和联合运营的总投资成本
investment_cost = data['风电'].max() * 3000 + data['光伏'].max() * 2500 + storage_cost
investment_cost_combined = data[['风电', '光伏']].max().sum() * 3000 + storage_cost_combined

# 计算各园区独立运营和联合运营的总收益
revenue = total_discard * 1
revenue_combined = total_discard_combined * 1

# 计算各园区独立运营和联合运营的投资回收期
payback_period = investment_cost / revenue
payback_period_combined = investment_cost_combined / revenue_combined

# 打印结果
print('各园区独立运营的总购电量为{}'.format(total_purchase))
print('各园区独立运营的总弃风弃光电量为{}'.format(total_discard))
print('各园区独立运营的总供电成本为{}元'.format(total_cost))
print('各园区独立运营的单位电量平均供电成本为{}元/kWh'.format(average_cost))
print('联合运营园区的总购电量为{}'.format(total_purchase_combined))

# 计算各园区最优的储能功率、容量配置方案
# 初始化最优方案
optimal_power = 0
optimal_capacity = 0
minimum_cost = np.inf
# 循环遍历所有可能的储能功率和容量配置
for power in range(1, 101):
    for capacity in range(1, 201):
        # 计算储能总成本
        storage_cost = 800 * power + 1800 * capacity
        # 计算总投资成本
        investment_cost = data['风电'].max() * 3000 + data['光伏'].max() * 2500 + storage_cost
        # 计算总收益
        revenue = total_discard * 1
        # 计算投资回收期
        payback_period = investment_cost / revenue
        # 如果投资回收期小于5年且总投资成本最小,则更新最优方案
        if payback_period < 5 and investment_cost < minimum_cost:
            minimum_cost = investment_cost
            optimal_power = power
            optimal_capacity = capacity

# 打印结果
print('各园区最优的储能功率为{}kW,最优的储能容量为{}kWh'.format(optimal_power, optimal_capacity))

# 绘制各园区最优储能功率和容量配置方案的投资回收期热力图
# 初始化储能功率和容量的取值范围
powers = np.arange(1, 101)
capacities = np.arange(1, 201)
# 初始化投资回收期矩阵
payback_periods = np.zeros((100, 200))
# 循环遍历所有可能的储能功率和容量配置
for power in powers:
    for capacity in capacities:
        # 计算储能总成本
        storage_cost = 800 * power + 1800 * capacity
        # 计算总投资成本
        investment_cost = data['风电'].max() * 3000 + data['光伏'].max() * 2500 + storage_cost
        # 计算总收益
        revenue = total_discard * 1
        # 计算投资回收期
        payback_period = investment_cost / revenue
        # 更新投资回收期矩阵
        payback_periods[power - 1][capacity - 1] = payback_period
# 绘制投资回收期热力图
plt.figure()
plt.imshow(payback_periods)
plt.xlabel('储能容量/kWh')
plt.ylabel('储能功率/kW')
plt.colorbar()
plt.show()

更多内容具体可以看看我的下方名片!里面包含有华中杯一手资料与分析!
另外在赛中,我们也会陪大家一起解析数维杯的一些方向
关注 CS数模 团队,数模不迷路~