文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑新能源发电不确定性的含微电网群共享储能优化调度》

发布时间:2023年12月28日

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

这个标题涉及到一个复杂的能源系统优化问题,其中包括了多个概念和要素。下面对标题的各个部分进行解读:

  1. 新能源发电不确定性: 指的是来自可再生能源(例如太阳能和风能)的电力生成存在不确定性。这可能是由于天气条件的变化,如风速和日照强度的波动,导致新能源发电量的不确定性。

  2. 含微电网群: 指的是包含多个微电网的系统。微电网是一种小规模的、独立运行的电力系统,通常由可再生能源、储能设备和传统电力网络组成。含微电网群表示有多个这样的微电网并存。

  3. 共享储能: 暗示微电网群内部的储能设备是共享使用的,这可能意味着不同微电网之间可以相互共享储能资源,以更好地应对能源波动和需求变化。

  4. 优化调度: 表明这是一个优化问题,需要制定一种最佳调度策略。在这种上下文中,"调度"通常指的是在不同的时间点上对能源生成、储能、和负荷需求进行合理分配,以最小化系统成本或满足特定的性能指标。

综合而言,这个标题揭示了一个考虑了不确定性、多个微电网以及共享储能的复杂系统中的优化问题。解决这样的问题可能需要运用先进的优化算法、模型预测控制(Model Predictive Control, MPC)等技术,以在动态环境中实现经济高效的能源调度。此类研究对于提高含有多个微电网的系统的鲁棒性、可靠性和可持续性具有重要意义。

摘要:随着具有不确定性的可再生能源在微电网中渗透率日益提高,微电网新能源消纳所面临的挑战越来越大,而共享储能与微电网群的协同运行是提高其消纳能力的有效手段。为了解决不确定环境下微电网群与共享储能协同调度问题,提出了一种考虑新能源发电不确定性的优化调度模型:首先,利用基于马尔科夫链蒙特卡洛算法的日状态转移过程集合生成方法,和基于条件生成对抗网络的日场景生成方法,生成周净发电功率典型场景。进而使用生成的典型场景作为运行模拟场景,以共享储能运营商为主体,以各微电网为从体,构建一主多从博弈优化调度模型,其中主体调整共享储能容量租赁价格以追求最大利润,从体响应租赁价格,调整租赁容量方案及运行计划以最小化自身用电成本。然后,设计了一种基于启发式算法的分布式迭代求解方法来求解所提模型。最后通过算例验证了所提模型的有效性。

这段摘要描述了一项研究,该研究关注的是微电网中新能源不确定性对能源消纳的挑战,并提出了一种优化调度模型,以应对这一问题。以下是对摘要各部分的解读:

  1. 可再生能源渗透率的增加: 描述了可再生能源在微电网中的比例逐渐上升,这可能涉及太阳能和风能等可再生能源。这种渗透率的增加带来了新的挑战,主要是由于这些可再生能源的不确定性。

  2. 共享储能与微电网群的协同运行: 提到了共享储能和微电网群的协同运行,这是一种应对不确定性的有效手段。共享储能可以帮助平衡能源生成和消耗,提高微电网的自给自足能力。

  3. 优化调度模型: 介绍了提出的解决方案,即考虑了新能源发电不确定性的优化调度模型。该模型的目标是在不确定的环境下实现微电网群与共享储能的协同调度。

  4. 模型构建过程: 首先使用基于马尔科夫链蒙特卡洛算法和条件生成对抗网络的方法生成典型场景,这些场景用于模拟实际运行情况。然后,建立了一主多从博弈的优化调度模型,其中共享储能运营商是主体,微电网是从体。

  5. 主体和从体的博弈: 主体调整共享储能容量租赁价格以追求最大利润,而从体则响应租赁价格,调整租赁容量方案及运行计划以最小化自身用电成本。

  6. 分布式迭代求解方法: 设计了一种基于启发式算法的分布式迭代求解方法,用于解决所提出的模型。

  7. 算例验证: 最后通过算例验证了所提出的模型的有效性,这可能包括对实际数据或者模拟数据的应用,以证明该模型在实际应用中的可行性和性能。

综合而言,这项研究旨在提高微电网系统对新能源不确定性的适应能力,通过共享储能和优化调度模型的设计来实现协同运行,最终通过算例验证了提出模型的有效性。

关键词:共享储能; 微电网群;新能源发电不确定性;条件生成对抗网络;主从博弈;
?

  1. 共享储能 (Shared Energy Storage): 涉及多个系统或实体共同使用储能设施的概念。在这个上下文中,可能指的是多个微电网或能源系统分享同一储能资源的情况。

  2. 微电网群 (Microgrid Cluster): 一组相互连接或相关的微电网。微电网是一种小型、局部的电力系统,而微电网群可能表示多个这样的系统协同工作或共享资源。

  3. 新能源发电不确定性 (Uncertainty in New Energy Generation): 指的是可再生能源(如太阳能和风能)的发电存在不确定性。这可能源于天气变化、风速波动等因素,使得新能源的发电量在预测上具有挑战性。

  4. 条件生成对抗网络 (Conditional Generative Adversarial Network, cGAN): 这是一种机器学习技术,通常用于生成具有特定条件的数据。在这里,可能是指使用cGAN生成具有不同条件(可能是不同的天气或能源产生情境)的典型发电场景,用于模拟实际运行情况。

  5. 主从博弈 (Master-Slave Game): 这指的是博弈论中的一种情境,其中有一个主体(通常是主导者或决策者)与多个从体(通常是追随者或响应者)进行博弈。在这个背景下,主体可能是共享储能运营商,而从体可能是各个微电网。这种博弈可能涉及调整储能租赁价格、容量方案等,以最大化主体的利润,同时使得从体能够在最小化自身用电成本的情况下作出响应。

这些关键词共同揭示了一个复杂系统中的问题,该系统包括多个微电网,涉及新能源发电不确定性,共享储能以协同运行,并通过博弈论中的主从博弈来优化调度和资源分配。

仿真算例:

算例由 3 个微网与 1 个 SESO 组成,以我国某 区域微电网一年内风光发电功率及负荷功率实测 数据为历史场景数据集,数据集的采样间隔为 1 小 时。采用 TensorFlow 框架构建 CGAN,具体模型参 数设置参考文献[13]。 微电网 1~3 及共享储能与配网的联络线最大 传输功率均为 500 kW,共享储能配置的集中式储 能容量 QE,bat 为 4000 kW?h,功率容量 Qp,bat 为 800 kW,储能充放电效率 ? 为 95%,储能单位功率运 维成本 ? 为 0.1542 元/(kW?h),制定的单位功率充 放电服务价格 ? 为 0.1542 元/(kW?h),功率波动惩 罚因子 ? 取 0.15,每日分时电价见附录图 C2。

仿真程序复现思路

编写一个完整的CGAN仿真程序涉及许多方面,因此下面是一个更详细的Python代码示例。请注意,由于具体的模型结构和参数设置可能需要根据实际情况进行微调,以下代码仅作为基本框架,需要根据实际需求进行进一步优化。

import numpy as np
import tensorflow as tf
from tensorflow.keras import layers

# 定义微电网环境类
class MicrogridEnvironment:
    def __init__(self, initial_energy, max_energy, daily_energy_demand, renewable_energy):
        self.initial_energy = initial_energy
        self.max_energy = max_energy
        self.daily_energy_demand = daily_energy_demand
        self.renewable_energy = renewable_energy
        self.current_energy = initial_energy

    def reset(self):
        self.current_energy = self.initial_energy

    def step(self, action):
        # 根据动作更新微电网状态
        # ...

        # 计算奖励
        reward = self.calculate_reward()

        # 检查是否达到终止条件
        done = self.is_done()

        # 返回状态、奖励、终止标志等
        return state, reward, done, additional_info

    def calculate_reward(self):
        # 根据当前状态计算奖励
        # ...

    def is_done(self):
        # 检查是否达到终止条件
        # ...

# 定义深度强化学习(DRL)模型
class DRLModel(tf.keras.Model):
    def __init__(self, state_size, action_size):
        super(DRLModel, self).__init__()
        # 定义深度神经网络结构
        # ...

    def call(self, state):
        # 模型前向传播
        # ...

# 定义深度强化学习代理
class DRLAgent:
    def __init__(self, state_size, action_size):
        self.model = DRLModel(state_size, action_size)
        self.optimizer = tf.keras.optimizers.Adam(learning_rate=0.001)

    def train(self, states, actions, rewards):
        # 实现深度强化学习的训练过程
        # ...

    def select_action(self, state):
        # 使用训练好的模型选择动作
        # ...

# 定义训练函数
def train_drl_agent(agent, env, episodes):
    for episode in range(episodes):
        state = env.reset()
        episode_reward = 0

        while not env.is_done():
            action = agent.select_action(state)
            next_state, reward, done, _ = env.step(action)
            agent.train(state, action, reward)

            state = next_state
            episode_reward += reward

        print(f"Episode: {episode + 1}, Reward: {episode_reward}")

# 设置仿真参数
initial_energy = 1000
max_energy = 1500
daily_energy_demand = np.random.uniform(50, 100, size=(365,))
renewable_energy = np.random.uniform(30, 80, size=(365,))

# 创建微电网环境
microgrid_env = MicrogridEnvironment(initial_energy, max_energy, daily_energy_demand, renewable_energy)

# 创建深度强化学习代理
state_size = # 根据微电网状态定义
action_size = # 定义动作空间
drl_agent = DRLAgent(state_size, action_size)

# 训练深度强化学习代理
train_drl_agent(drl_agent, microgrid_env, episodes=100)

# 在仿真结束后,可以使用训练好的模型进行决策
# ...

# 分析仿真结果
# ...

在这个示例中,我们使用了一个简化的微电网环境类 (MicrogridEnvironment) 来模拟微电网的状态和动作。深度强化学习模型 (DRLModel) 和代理 (DRLAgent) 被用来学习在不同状态下选择合适的动作。在训练函数 (train_drl_agent) 中,代理与环境交互,通过深度强化学习算法来更新模型参数。

请注意,这只是一个基本的示例,实际情况中需要更复杂的模型、更精细的环境建模和更详细的参数调整。确保根据具体情况对代码进行修改和优化。

文章来源:https://blog.csdn.net/LIANG674027206/article/details/135165249
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。