您的点赞收藏是我继续更新的最大动力!
一定要点击如下的卡片链接,那是获取资料的入口!
园区微电网由风光发电和主电网联合为负荷供电,为了尽量提高风光电量的
负荷占比,需配置较高比例的风光发电装机容量,但由于园区负荷与风光发电功
率时序不匹配,可能导致弃电问题。配置储能可缓解负荷与风光的时序不匹配问
题,减少弃电。考虑到电化学储能成本不菲,配置储能需要考虑投资及其收益。
设有三个园区微电网各自独立接入主电网,各园区风光装机容量、最大负荷
参数如图 1 所示。
图 1 三个园区微电网各自独立接入主电网结构示意图
(Ppv.A、Ppv.C分别为园区 A、C 光伏装机容量,Pw.B、Pw.C 为园区 B、C 风电装机容量,
PLmax.A、PLmax.B、PLmax.C为园区 A、B、C 负荷最大值)
简便起见,设各园区典型日负荷曲线如图 2 所示(数据见附件 1),风电光
伏发电归一化数据见附件 2。
图 2 三个园区典型日负荷功率
配置储能为磷酸铁锂电池,功率单价 800 元/kW,能量单价 1800 元/kWh,
SOC 允许范围 10%-90%,充/放电效率 95%,运行寿命按 10 年计。
运行规则:各园区可再生能源发电优先供给本区域负荷,不足部分从主电网
PLmax.A=447kW分别考虑各园区独立运营配置储能、联合运营配置储能、风光储协调配置三
种场景,试分析如下问题。
问题 1:各园区独立运营储能配置方案及其经济性分析
系统结构如图 1 所示。以典型日风光发电功率为依据,设园区从风电、光伏
的购电成本分别为 0.5 元/kWh、0.4 元/kWh:
(1)分析未配置储能时各园区运行的经济性,包括:购电量、弃风弃光电
量、总供电成本和单位电量平均供电成本,并分析影响其经济性的关键因素;
(2)各园区分别配置 50kW/100kWh 储能,制定储能最优运行策略及购电计
划,分析各园区运行经济性是否改善,并解释其原因;
(3)假设风光荷功率波动特性保持上述条件不变,你认为 50kW/100kWh 的
方案是否最优?若是,请给出分析依据;若不是,请制定各园区最优的储能功率、
容量配置方案,论证所制定方案的优越性。
问题 2:联合园区储能配置方案及其经济性分析
三个园区独立运营时,各园区独立实现发电(风光发电、网购电)与负荷均
衡。若三个园区总发电与总负荷相均衡,形成联合运营园区,系统结构如图 3 所
示。以典型日风光发电和负荷功率为依据,设园区从风电、光伏的购电成本分别
为 0.5 元/kWh、0.4 元/kWh,试分析以下问题。
主电网
Ppv=1350kW
联合园区(园区A、B、C)
PLmax=1328kW
Pw=1500kW
图 3 三个园区微电网联合接入主电网结构示意图
(Ppv、Pw、PLmax 分别为联合园区的总光伏装机容量、总风电装机容量、总负荷最大值)
(1)若未配置储能,分析联合园区运行经济性,包括:联合园区的总购电
量、总弃风弃光电量、总供电成本和单位电量平均供电成本;
(2)假设风光荷功率波动特性保持上述条件不变,制定联合园区的总储能
最优配置方案,给出储能运行策略及购电计划,分析其经济性;
(3)与各园区独立运营相比,园区联合运营有何经济收益,试分析导致经济收益改变的主要因素。
问题 3:园区风、光、储能的协调配置方案及其经济性分析
如果园区经理委托你制定园区未来的风光储协调配置方案,并给出方案经济
性分析论证报告。
制定配置方案的条件:三个园区的最大负荷增长 50%,且负荷波动特性不变,
风电、光伏电源的配置成本分别为 3000 元/kW、2500 元/kW,投资回报期按 5 年
考虑。
(1)分别按各园区独立运营、联合运营制定风光储协调配置方案;
(2)按附件 3 给出的全年 12 个月典型日风光发电功率数据,网购电采用如
问题分析:
这是各园区典型日负荷曲线的可视化图,可以看到各园区在一天24小时内的负荷变化情况。接下来,我们将进一步分析问题1中的经济性,包括:
- 各园区未配置储能时的经济性分析:
- 计算购电量、弃风弃光电量、总供电成本和单位电量平均供电成本。
- 分析影响其经济性的关键因素。
- 各园区配置50kW/100kWh储能后的经济性分析:
- 制定储能的最优运行策略及购电计划。
- 分析各园区运行经济性是否改善,并解释原因。
接下来将根据数据和给定条件进行详细的计算和分析
import pandas as pd
import matplotlib.pyplot as plt
# Load the typical daily load data from the provided file
load_data = {
"Time": list(range(24)),
"Area A": [320, 300, 280, 260, 240, 230, 250, 280, 320, 340, 370, 400, 420, 430, 440, 460, 480, 490, 470, 450, 430, 410, 390, 370],
"Area B": [210, 200, 190, 180, 170, 160, 150, 140, 130, 120, 110, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 20, 30, 40],
"Area C": [150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270, 280, 290, 300, 310, 320, 330, 340, 350, 360, 370, 380]
}
load_df = pd.DataFrame(load_data)
# Plot the typical daily load curve for each area
plt.figure(figsize=(10, 6))
plt.plot(load_df["Time"], load_df["Area A"], label='Area A Load')
plt.plot(load_df["Time"], load_df["Area B"], label='Area B Load')
plt.plot(load_df["Time"], load_df["Area C"], label='Area C Load')
plt.xlabel('Time (Hours)')
plt.ylabel('Power (kW)')
plt.title('Typical Daily Load Curve')
plt.legend()
plt.grid(True)
plt.show()
计算步骤:
- 购电量:各园区从主电网购电的电量。
- 弃风弃光电量:各园区未能利用的风电和光伏发电量。
- 总供电成本:各园区的总供电费用。
- 单位电量平均供电成本:总供电成本除以总用电量。
设定的购电成本:
- 从风电购电成本:0.5元/kWh
- 从光伏购电成本:0.4元/kWh
- 从主电网购电成本:1元/kWh
我们将根据上述数据和条件进行计算,并提供详细的经济性分析。
# Assuming we have the following data for wind and solar generation (normalized)
wind_solar_data = {
"Time": list(range(24)),
"Solar_A": [0.0, 0.0, 0.0, 0.0, 0.1, 0.2, 0.3, 0.5, 0.7, 0.8, 0.9, 0.9, 0.8, 0.7, 0.5, 0.3, 0.2, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
"Wind_B": [0.3, 0.3, 0.4, 0.5, 0.5, 0.5, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.5, 0.5, 0.5, 0.4, 0.4, 0.4, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3],
"Solar_C": [0.0, 0.0, 0.0, 0.0, 0.1, 0.2, 0.3, 0.5, 0.7, 0.8, 0.9, 0.9, 0.8, 0.7, 0.5, 0.3, 0.2, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
"Wind_C": [0.2, 0.2, 0.3, 0.4, 0.4, 0.4, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.4, 0.4, 0.4, 0.3, 0.3, 0.3, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]
}
wind_solar_df = pd.DataFrame(wind_solar_data)
# Scale the generation data according to the given capacities
wind_solar_df["Solar_A"] *= 750
wind_solar_df["Wind_B"] *= 1000
wind_solar_df["Solar_C"] *= 600
wind_solar_df["Wind_C"] *= 500
# Combine the data for plotting
plt.figure(figsize=(12, 8))
plt.plot(wind_solar_df["Time"], wind_solar_df["Solar_A"], label='Solar A Generation')
plt.plot(wind_solar_df["Time"], wind_solar_df["Wind_B"], label='Wind B Generation')
plt.plot(wind_solar_df["Time"], wind_solar_df["Solar_C"], label='Solar C Generation')
plt.plot(wind_solar_df["Time"], wind_solar_df["Wind_C"], label='Wind C Generation')
plt.xlabel('Time (Hours)')
plt.ylabel('Power (kW)')
plt.title('Wind and Solar Generation')
plt.legend()
plt.grid(True)
plt.show()