文章解读与仿真步伐复现思路——EI\CSCD\北大焦点《考虑频率安全及调峰需求 ...

铁佛  金牌会员 | 2024-12-27 06:47:10 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 877|帖子 877|积分 2631

本专栏栏目提供文章与步伐复现思路,详细已有的论文与论文源步伐可翻阅本博主免费的专栏栏目《论文与完备步伐》
论文与完备源步伐_电网论文源步伐的博客-CSDN博客
https://blog.csdn.net/liang674027206/category_12531414.html
电网论文源步伐-CSDN博客电网论文源步伐擅长文章解读,论文与完备源步伐,等方面的知识,电网论文源步伐关注python,机器学习,计算机视觉,深度学习,神经网络,数据挖掘领域.
https://blog.csdn.net/LIANG674027206?type=download
这篇文章主要研究了在风电高渗出电力体系中,如何通过两阶段优化调度方法来考虑频率安全和调峰需求。以下是文章的焦点内容:

  • 研究配景:随着“双碳”目标的推进,风电并网比例逐渐提高,新型电力体系出现低惯量特性,给体系安全稳定运行带来挑战。
  • 两阶段优化调度方法:提出了一种考虑动态频率束缚及调峰需求的风电高渗出体系两阶段优化调度方法。第一阶段优化可调治负荷的相应功率参与体系调峰,获得体系最优净负荷曲线;第二阶段以体系运行成本最小为目标,优化风-火-储-蓄调度计划和体系调频能力。
  • 频率安全束缚:分析了电池储能和风机的快速频率相应特性,创建了风-火-储-蓄互补调频的频率安全束缚。
  • 混淆相似度指标:提出了一个混淆相似度指标,考虑新能源-负荷匹配性和净负荷波动性,用于优化调度模子。
  • 模子求解:第一阶段采用自顺应粒子群算法(APSO)求解,第二阶段采用Gurobi求解器举行混淆整数线性规划求解。
  • 算例分析:通过改进的IEEE-39节点体系举行算例分析,验证了所提调度方法在兼顾调度经济性和频率安全方面的有用性。
  • 结论:考虑动态频率束缚的调度方案能有用保障体系频率安全,但会增长调度成本。综合考虑风-火-储-蓄的惯量支持与一次调频能力能显著提高体系调频能力,并减少体系调度成本。所提两阶段优化调度方法能充分发挥体系调治资源的协调优势,减少体系调度成本,并提升体系调频能力。
文章的关键词包括风电高渗出、频率安全束缚、两阶段优化和优化调度。

为了复现文章中的仿真算例,我们需要分两个阶段构建和求解优化调度模子。以下是复现仿真的步骤和伪代码:
  1. # 步骤 1: 导入必要的库
  2. import numpy as np
  3. from scipy.optimize import minimize
  4. from gurobipy import Model, GRB, quicksum
  5. # 步骤 2: 定义第一阶段优化问题 - 调峰优化
  6. def stage_one_optimization(wind_forecast, load_forecast, adjustable_load_params):
  7.     # 创建模型
  8.     m1 = Model("Stage-One-Optimization")
  9.    
  10.     # 定义决策变量 - 可调节负荷的响应功率
  11.     adjustable_load = m1.addVars(wind_forecast.size, name="Adjustable_Load")
  12.    
  13.     # 定义目标函数 - 最大化新能源-负荷混合相似度指标
  14.     m1.setObjective(
  15.         quicksum((wind_forecast[t] - load_forecast[t] - adjustable_load[t]) ** 2 for t in range(wind_forecast.size)),
  16.         GRB.MAXIMIZE
  17.     )
  18.    
  19.     # 添加约束条件
  20.     # 可调节负荷的响应功率约束
  21.     for t in range(wind_forecast.size):
  22.         m1.addConstr(-adjustable_load_params['max'] <= adjustable_load[t] <= adjustable_load_params['max'])
  23.    
  24.     # 求解第一阶段优化问题
  25.     m1.optimize()
  26.    
  27.     # 获取优化后的可调节负荷响应功率
  28.     optimal_adjustable_load = [adjustable_load[t].x for t in range(wind_forecast.size)]
  29.    
  30.     return optimal_adjustable_load
  31. # 步骤 3: 定义第二阶段优化问题 - 频率安全和经济性优化
  32. def stage_two_optimization(wind_forecast, load_forecast, optimal_adjustable_load, params):
  33.     # 创建模型
  34.     m2 = Model("Stage-Two-Optimization")
  35.    
  36.     # 定义决策变量 - 风电、火电、储能和抽水蓄能的出力计划
  37.     wind_output = m2.addVars(wind_forecast.size, name="Wind_Output")
  38.     thermal_output = m2.addVars(params['thermal_units'], name="Thermal_Output")
  39.     storage_output = m2.addVars(params['storage_units'], name="Storage_Output")
  40.     pumped_storage_output = m2.addVars(params['pumped_storage_units'], name="Pumped_Storage_Output")
  41.    
  42.     # 定义目标函数 - 最小化系统运行成本
  43.     m2.setObjective(
  44.         quicksum(thermal_output[t] * params['thermal_cost'] for t in params['thermal_units']) +
  45.         quicksum(storage_output[t] * params['storage_cost'] for t in params['storage_units']),
  46.         GRB.MINIMIZE
  47.     )
  48.    
  49.     # 添加约束条件
  50.     # 功率平衡约束、频率安全约束等
  51.     for t in range(wind_forecast.size):
  52.         m2.addConstr(
  53.             quicksum(wind_output[t]) +
  54.             quicksum(thermal_output[t]) +
  55.             quicksum(storage_output[t]) +
  56.             quicksum(pumped_storage_output[t]) -
  57.             load_forecast[t] -
  58.             optimal_adjustable_load[t] == 0
  59.         )
  60.    
  61.     # 求解第二阶段优化问题
  62.     m2.optimize()
  63.    
  64.     # 获取优化结果
  65.     optimal_outputs = {
  66.         'Wind': [wind_output[t].x for t in range(wind_forecast.size)],
  67.         'Thermal': [thermal_output[t].x for t in params['thermal_units']],
  68.         'Storage': [storage_output[t].x for t in params['storage_units']],
  69.         'Pumped_Storage': [pumped_storage_output[t].x for t in params['pumped_storage_units']]
  70.     }
  71.    
  72.     return optimal_outputs
  73. # 步骤 4: 主程序 - 运行仿真
  74. def main_simulation(wind_forecast, load_forecast, adjustable_load_params, params):
  75.     # 运行第一阶段优化
  76.     optimal_adjustable_load = stage_one_optimization(wind_forecast, load_forecast, adjustable_load_params)
  77.    
  78.     # 运行第二阶段优化
  79.     optimal_outputs = stage_two_optimization(wind_forecast, load_forecast, optimal_adjustable_load, params)
  80.    
  81.     # 输出优化结果
  82.     print("Optimal Adjustable Load:", optimal_adjustable_load)
  83.     print("Optimal Outputs:", optimal_outputs)
  84. # 步骤 5: 初始化参数和数据
  85. # 这里需要根据实际数据初始化风电预测、负荷预测、可调节负荷参数和系统参数
  86. wind_forecast = np.array([...])
  87. load_forecast = np.array([...])
  88. adjustable_load_params = {'max': ...}
  89. params = {
  90.     'thermal_units': [...],
  91.     'storage_units': [...],
  92.     'pumped_storage_units': [...],
  93.     'thermal_cost': ...,
  94.     'storage_cost': ...
  95. }
  96. # 运行仿真
  97. main_simulation(wind_forecast, load_forecast, adjustable_load_params, params)
复制代码
注释解释:


  • 步骤 1:导入必要的Python库,包括用于优化的scipy.optimize和gurobipy。
  • 步骤 2:界说第一阶段优化题目,目标是最大化新能源-负荷混淆相似度指标,同时考虑可调治负荷的相应功率束缚。
  • 步骤 3:界说第二阶段优化题目,目标是最小化体系运行成本,同时考虑功率平衡束缚和频率安全束缚。
  • 步骤 4:主步伐运行仿真,包括调用两个阶段的优化函数,并输出优化结果。
  • 步骤 5:初始化参数和数据,包括风电推测、负荷推测、可调治负荷参数和体系参数。
请留意,上述代码是一个伪代码示例,实际实现时需要根据详细的数据集布局和电网束缚条件举行相应的调整。
 本专栏栏目提供文章与步伐复现思路,详细已有的论文与论文源步伐可翻阅本博主免费的专栏栏目《论文与完备步伐》
论文与完备源步伐_电网论文源步伐的博客-CSDN博客
https://blog.csdn.net/liang674027206/category_12531414.html
电网论文源步伐-CSDN博客电网论文源步伐擅长文章解读,论文与完备源步伐,等方面的知识,电网论文源步伐关注python,机器学习,计算机视觉,深度学习,神经网络,数据挖掘领域.
https://blog.csdn.net/LIANG674027206?type=download

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

铁佛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表