文章解读与仿真程序复现思路——EI\CSCD\北大核心《考虑频率安全及调峰需求的风电高渗透系统两阶段优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》

论文与完整源程序_电网论文源程序的博客-优快云博客icon-default.png?t=O83Ahttps://blog.youkuaiyun.com/liang674027206/category_12531414.html

电网论文源程序-优快云博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python,机器学习,计算机视觉,深度学习,神经网络,数据挖掘领域.https://blog.youkuaiyun.com/LIANG674027206?type=download

这篇文章主要研究了在风电高渗透电力系统中,如何通过两阶段优化调度方法来考虑频率安全和调峰需求。以下是文章的核心内容:

  1. 研究背景:随着“双碳”目标的推进,风电并网比例逐渐提高,新型电力系统呈现低惯量特性,给系统安全稳定运行带来挑战。

  2. 两阶段优化调度方法:提出了一种考虑动态频率约束及调峰需求的风电高渗透系统两阶段优化调度方法。第一阶段优化可调节负荷的响应功率参与系统调峰,获得系统最优净负荷曲线;第二阶段以系统运行成本最小为目标,优化风-火-储-蓄调度计划和系统调频能力。

  3. 频率安全约束:分析了电池储能和风机的快速频率响应特性,建立了风-火-储-蓄互补调频的频率安全约束。

  4. 混合相似度指标:提出了一个混合相似度指标,考虑新能源-负荷匹配性和净负荷波动性,用于优化调度模型。

  5. 模型求解:第一阶段采用自适应粒子群算法(APSO)求解,第二阶段采用Gurobi求解器进行混合整数线性规划求解。

  6. 算例分析:通过改进的IEEE-39节点系统进行算例分析,验证了所提调度方法在兼顾调度经济性和频率安全方面的有效性。

  7. 结论:考虑动态频率约束的调度方案能有效保障系统频率安全,但会增加调度成本。综合考虑风-火-储-蓄的惯量支撑与一次调频能力能显著提高系统调频能力,并减少系统调度成本。所提两阶段优化调度方法能充分发挥系统调节资源的协调优势,减少系统调度成本,并提升系统调频能力。

文章的关键词包括风电高渗透、频率安全约束、两阶段优化和优化调度。

为了复现文章中的仿真算例,我们需要分两个阶段构建和求解优化调度模型。以下是复现仿真的步骤和伪代码:

# 步骤 1: 导入必要的库
import numpy as np
from scipy.optimize import minimize
from gurobipy import Model, GRB, quicksum

# 步骤 2: 定义第一阶段优化问题 - 调峰优化
def stage_one_optimization(wind_forecast, load_forecast, adjustable_load_params):
    # 创建模型
    m1 = Model("Stage-One-Optimization")
    
    # 定义决策变量 - 可调节负荷的响应功率
    adjustable_load = m1.addVars(wind_forecast.size, name="Adjustable_Load")
    
    # 定义目标函数 - 最大化新能源-负荷混合相似度指标
    m1.setObjective(
        quicksum((wind_forecast[t] - load_forecast[t] - adjustable_load[t]) ** 2 for t in range(wind_forecast.size)),
        GRB.MAXIMIZE
    )
    
    # 添加约束条件
    # 可调节负荷的响应功率约束
    for t in range(wind_forecast.size):
        m1.addConstr(-adjustable_load_params['max'] <= adjustable_load[t] <= adjustable_load_params['max'])
    
    # 求解第一阶段优化问题
    m1.optimize()
    
    # 获取优化后的可调节负荷响应功率
    optimal_adjustable_load = [adjustable_load[t].x for t in range(wind_forecast.size)]
    
    return optimal_adjustable_load

# 步骤 3: 定义第二阶段优化问题 - 频率安全和经济性优化
def stage_two_optimization(wind_forecast, load_forecast, optimal_adjustable_load, params):
    # 创建模型
    m2 = Model("Stage-Two-Optimization")
    
    # 定义决策变量 - 风电、火电、储能和抽水蓄能的出力计划
    wind_output = m2.addVars(wind_forecast.size, name="Wind_Output")
    thermal_output = m2.addVars(params['thermal_units'], name="Thermal_Output")
    storage_output = m2.addVars(params['storage_units'], name="Storage_Output")
    pumped_storage_output = m2.addVars(params['pumped_storage_units'], name="Pumped_Storage_Output")
    
    # 定义目标函数 - 最小化系统运行成本
    m2.setObjective(
        quicksum(thermal_output[t] * params['thermal_cost'] for t in params['thermal_units']) +
        quicksum(storage_output[t] * params['storage_cost'] for t in params['storage_units']),
        GRB.MINIMIZE
    )
    
    # 添加约束条件
    # 功率平衡约束、频率安全约束等
    for t in range(wind_forecast.size):
        m2.addConstr(
            quicksum(wind_output[t]) +
            quicksum(thermal_output[t]) +
            quicksum(storage_output[t]) +
            quicksum(pumped_storage_output[t]) -
            load_forecast[t] - 
            optimal_adjustable_load[t] == 0
        )
    
    # 求解第二阶段优化问题
    m2.optimize()
    
    # 获取优化结果
    optimal_outputs = {
        'Wind': [wind_output[t].x for t in range(wind_forecast.size)],
        'Thermal': [thermal_output[t].x for t in params['thermal_units']],
        'Storage': [storage_output[t].x for t in params['storage_units']],
        'Pumped_Storage': [pumped_storage_output[t].x for t in params['pumped_storage_units']]
    }
    
    return optimal_outputs

# 步骤 4: 主程序 - 运行仿真
def main_simulation(wind_forecast, load_forecast, adjustable_load_params, params):
    # 运行第一阶段优化
    optimal_adjustable_load = stage_one_optimization(wind_forecast, load_forecast, adjustable_load_params)
    
    # 运行第二阶段优化
    optimal_outputs = stage_two_optimization(wind_forecast, load_forecast, optimal_adjustable_load, params)
    
    # 输出优化结果
    print("Optimal Adjustable Load:", optimal_adjustable_load)
    print("Optimal Outputs:", optimal_outputs)

# 步骤 5: 初始化参数和数据
# 这里需要根据实际数据初始化风电预测、负荷预测、可调节负荷参数和系统参数
wind_forecast = np.array([...])
load_forecast = np.array([...])
adjustable_load_params = {'max': ...}
params = {
    'thermal_units': [...],
    'storage_units': [...],
    'pumped_storage_units': [...],
    'thermal_cost': ...,
    'storage_cost': ...
}

# 运行仿真
main_simulation(wind_forecast, load_forecast, adjustable_load_params, params)

注释解释:

  • 步骤 1:导入必要的Python库,包括用于优化的scipy.optimizegurobipy
  • 步骤 2:定义第一阶段优化问题,目标是最大化新能源-负荷混合相似度指标,同时考虑可调节负荷的响应功率约束。
  • 步骤 3:定义第二阶段优化问题,目标是最小化系统运行成本,同时考虑功率平衡约束和频率安全约束。
  • 步骤 4:主程序运行仿真,包括调用两个阶段的优化函数,并输出优化结果。
  • 步骤 5:初始化参数和数据,包括风电预测、负荷预测、可调节负荷参数和系统参数。

请注意,上述代码是一个伪代码示例,实际实现时需要根据具体的数据集结构和电网约束条件进行相应的调整。

 本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》

论文与完整源程序_电网论文源程序的博客-优快云博客icon-default.png?t=O83Ahttps://blog.youkuaiyun.com/liang674027206/category_12531414.html

电网论文源程序-优快云博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python,机器学习,计算机视觉,深度学习,神经网络,数据挖掘领域.https://blog.youkuaiyun.com/LIANG674027206?type=download

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电网论文源程序

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值