当前位置:首页>python>Python|风电、光伏与储能(含电池和废弃矿井小型抽水蓄能)互补调度运行研究

Python|风电、光伏与储能(含电池和废弃矿井小型抽水蓄能)互补调度运行研究

  • 2026-09-07 23:18:04
Python|风电、光伏与储能(含电池和废弃矿井小型抽水蓄能)互补调度运行研究

赠与读者

做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

或许,雨过云收,神驰的天地更清朗.......

01

概述

基于粒子群优化的多能源协同调度优化研究

摘要

针对含风电、光伏、抽水蓄能和电化学储能的多能源系统调度问题,提出基于粒子群优化(PSO)算法的求解方案。首先构建考虑分时电价、设备效率、容量约束和惩罚机制的多目标优化模型,以系统总收益最大化为目标函数,涵盖能源收益、运行成本、缺电/弃电惩罚等关键要素;其次设计粒子群优化算法的参数体系和约束惩罚机制,将约束优化问题转化为无约束优化问题;最后通过24小时时序仿真验证模型有效性。结果表明,该算法能够有效平衡各能源单元的出力分配,实现系统经济运行。

1 问题描述与数学模型

1.1 系统边界与核心要素

研究对象为24小时时间尺度下的多能源协同调度系统,包含以下核心单元:

  • 可再生能源:风电()、光伏()
  • 储能单元:抽水蓄能(含抽水/放水过程)、电化学储能(含充电/放电过程)
  • 负荷侧:固定负荷需求()
  • 经济要素:分时电价、运行成本、缺电/弃电惩罚

1.2 基础参数定义

参数符号
物理意义
取值
调度时段数(小时)
24
时间步长
1h
抽水效率
0.87
放水发电效率
0.85
储能充电效率
0.9
储能放电效率
0.9
储能初始荷电状态
0.5
储能SOC上下限
0.2/0.8
储能容量上限
100 MWh
水库容量上限
300 MWh
水库初始容量
150 MWh
储能自放电率
缺电惩罚系数
100 元/MWh
弃电惩罚系数
30 元/MWh
抽水蓄能发电成本
46 元/MWh
储能放电成本
28.7 元/MWh

1.3 分时电价模型

分时电价函数按时段分段定义:

抽水电价和储能充电电价为基础电价的比例系数:

1.4 目标函数

以系统24小时总收益最大化为优化目标,目标函数表达式为:

其中:

  • 收益项:各类能源上网收益
  • 成本项:抽水/充电成本+运行成本
  • 惩罚项:缺电+弃电惩罚

1.5 约束条件体系

1.5.1 功率平衡约束

网荷平衡:各类电源出力+缺电功率需满足负荷需求

弃电平衡:可再生能源出力+抽水/充电功率+弃电=最大可发电量

1.5.2 设备出力约束

  • 风电出力:
  • 光伏出力:
  • 抽水功率:
  • 放水功率:
  • 储能充电:
  • 储能放电:

1.5.3 储能状态约束

抽水蓄能水库容量动态:

边界约束:,初始条件

电化学储能SOC动态:

边界约束:,初始条件

1.5.4 互斥约束

抽水/放水互斥:储能充放电互斥:

2 粒子群优化算法设计

2.1 算法原理

粒子群优化算法通过模拟鸟群觅食行为,将每个可行解视为"粒子",通过粒子的位置和速度更新实现全局寻优。粒子更新公式为:

其中:

  • :惯性权重(线性递减:)
  • :个体/群体学习因子
  • :[0,1]随机数
  • :粒子的历史最优位置
  • :全局最优位置

2.2 粒子编码与边界

粒子位置向量维度为,对应10类变量×24小时:

每个维度设置物理边界(如,)。

2.3 约束惩罚机制

将约束优化问题转化为无约束优化问题,适应度函数设计为:

其中:

  • :原目标函数(总收益)
  • :惩罚系数(取)
  • :第类约束的惩罚项

惩罚项具体形式:

  1. 等式约束惩罚:(为等式约束)
  2. 不等式约束惩罚:(为不等式约束)
  3. 互斥约束惩罚:(当且时)

2.4 算法参数配置

参数
取值
说明
粒子规模
100
平衡寻优能力与计算效率
最大迭代次数
500
保证收敛性
惯性权重
0.8→0.2
线性递减,平衡全局/局部搜索
学习因子
经典PSO参数
最大速度
0.5
防止粒子发散
惩罚系数
确保约束满足

3 求解流程与结果分析

3.1 算法求解流程

3.2 结果分析维度

  1. 经济指标:总收益、单位时间平均收益、惩罚成本占比
  2. 运行指标:
    • 储能状态:SOC时序曲线、水库容量变化
    • 功率分配:各单元出力时序、弃电/缺电功率
    • 约束满足度:约束违反量、互斥约束执行情况
  3. 收敛特性:迭代曲线、收敛速度、最优值稳定性

4 模型特点与创新点

4.1 模型优势

  1. 通用性:PSO算法无需目标函数凸性假设,适用于非线性、非凸的多能源调度问题
  2. 灵活性:通过惩罚项可灵活处理各类等式/不等式/互斥约束
  3. 实用性:考虑分时电价、设备效率、自放电等实际运行特性,贴近工程场景

4.2 关键创新

  1. 约束处理机制:将互斥约束转化为数值惩罚,解决离散约束的连续优化问题
  2. 动态权重策略:线性递减惯性权重平衡算法前期全局探索和后期局部开发能力
  3. 多维度编码:240维粒子编码完整覆盖24小时内所有调度变量,保证解的完整性

5 结论与展望

基于粒子群优化的多能源调度模型能够有效求解含抽水蓄能和电化学储能的综合能源系统优化问题,通过合理的约束惩罚机制和算法参数设计,可在满足所有物理约束的前提下实现系统收益最大化。后续可进一步研究:

  1. 考虑碳排放成本、设备寿命损耗的多目标优化
  2. 引入混沌映射、变异操作改进PSO算法性能
  3. 扩展至多区域、多时间尺度的调度场景

符号说明

符号
含义
单位
t时段风电出力
MW
t时段光伏出力
MW
t时段抽水功率
MW
t时段放水发电功率
MW
t时段储能充电功率
MW
t时段储能放电功率
MW
t时段水库容量
MWh
t时段储能荷电状态
-
t时段弃电功率
MW
t时段缺电功率
MW
t时段分时电价
元/MWh
系统总收益
元
PSO惯性权重
-
PSO学习因子
-
惩罚系数
元/MWh

文档说明

文档用途

本文档可作为学术论文初稿、技术报告或算法说明文档,涵盖模型构建、算法设计、结果分析全流程,公式体系完整,符号定义规范,符合学术写作标准。

应用场景

  1. 学术发表:可补充算例结果、对比分析后投稿能源类期刊
  2. 项目报告:可增加工程应用背景、参数敏感性分析
  3. 教学材料:可简化公式推导,增加算法原理讲解

扩展建议

  1. 补充算例对比:与CVXPY凸优化、遗传算法等求解结果对比
  2. 细化参数分析:研究粒子规模、迭代次数、惩罚系数对结果的影响
  3. 完善理论证明:补充PSO算法收敛性分析、约束惩罚机制的合理性证明。

02

运行结果

03

部分代码

SOC_0 = 0.5  # 储能初始SOCeta_p = 0.87  # 抽水效率eta_h = 0.85  # 放水发电效率eta_c = 0.9  # 储能充电效率eta_d = 0.9  # 储能放电效率Emax_0 = 100Emin = 0  # 储能容量上下限(MWh)P_cmax = 100P_cmin = 0  # 储能充电功率上下限(MW)P_dmax = 100P_dmin = 0  # 储能放电功率上下限(MW)SOCmin = 0.2SOCmax = 0.8  # SOC上下限xgma = 0.25 / (30 * 24)  # 储能自放电率yibuxil_lack = 100  # 缺电惩罚系数(元/MWh)yibuxil_DL = 30  # 弃电惩罚系数(元/MWh)M_co2 = 0.877  # 碳排放系数(tco2/MWh)k_ps_h = 46  # 抽水蓄能发电成本(元/MWh)k_ba_d = 28.7  # 储能放电成本(元/MWh)P_hmax = 150P_hmin = 0  # 放水发电功率上下限(MW)P_pmax = 150P_pmin = 0  # 抽水功率上下限(MW)P_pps_r = 150  # 抽水蓄能额定功率E_max_0 = 300E_min = 0  # 水库容量上下限(MWh)E_0 = 150  # 水库初始容量(MWh)# ===================== 3. PSO算法参数设置 =====================pop_size = 100  # 粒子群规模max_iter = 3000  # 最大迭代次数c1 = 2.0  # 个体学习因子c2 = 2.0  # 群体学习因子w = 0.8  # 惯性权重(线性递减)w_min = 0.2  # 最小惯性权重v_max = 0.5  # 最大速度penalty_factor = 1e6  # 约束违反惩罚系数
# ===================== 5. 适应度函数(目标函数+约束惩罚) =====================def fitness_function(x):    """    计算粒子的适应度值    x: 粒子位置向量(一维数组,长度240)    返回:目标函数值(最大化收益,返回负值用于最小化)+ 约束惩罚    """    # 拆分变量    P_w = x[0:n]  # 0-23: 风电出力    P_p = x[n:2 * n]  # 24-47: 抽水功率    P_h = x[2 * n:3 * n]  # 48-71: 放水发电功率    E = x[3 * n:4 * n]  # 72-95: 水库容量    P_DL = x[4 * n:5 * n]  # 96-119: 弃电功率    P_c = x[5 * n:6 * n]  # 120-143: 储能充电功率    P_d = x[6 * n:7 * n]  # 144-167: 储能放电功率    SOC = x[7 * n:8 * n]  # 168-191: 储能SOC    P_lack = x[8 * n:9 * n]  # 192-215: 缺电功率    P_pv = x[9 * n:10 * n]  # 216-239: 光伏出力    # -------------------------- 计算目标函数(收益) --------------------------    revenue = (            np.sum(C * P_w) + np.sum(C * P_h) + np.sum(C * P_d) + np.sum(C * P_pv)            - np.sum(C_p * P_p) - np.sum(C_c * P_c)            - np.sum(yibuxil_lack * P_lack) - np.sum(yibuxil_DL * P_DL)            - np.sum(k_ps_h * P_h) - np.sum(k_ba_d * P_d)    )    # -------------------------- 计算约束违反惩罚 --------------------------    penalty = 0.0    # 1. 网荷平衡约束: P_w + P_pv + P_h + P_d + P_lack = P_load    power_balance = P_w + P_pv + P_h + P_d + P_lack - P_load    penalty += penalty_factor * np.sum(np.abs(power_balance))    # 2. 水库容量动态约束    E_calc = np.zeros(n)    E_calc[0] = E_0for i in range(n - 1):        E_calc[i + 1] = E_calc[i] + t * (eta_p * P_p[i] - P_h[i] / eta_h)    # 水库容量等式约束    penalty += penalty_factor * np.sum(np.abs(E - E_calc))    # 水库容量上下限    penalty += penalty_factor * np.sum(np.maximum(0, E_min - E))    penalty += penalty_factor * np.sum(np.maximum(0, E - E_max_0))    # 3. 储能SOC动态约束    SOC_calc = np.zeros(n)

04

参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]潘文霞,范永威,杨威.风-水电联合优化运行分析[J].太阳能学报,2008,(01):80-84.

[2]梁喆,李梅,周孟然,等.面向光伏消纳的光伏-废弃矿井抽蓄-蓄电池联合发电系统优化调度策略[J].科技导报,2021,39(13):52-58.

05

Python代码下载

最新文章

随机文章