开源代码分享(21)-两阶段鲁棒优化的主动配电网动态无功优化

本文主要是介绍开源代码分享(21)-两阶段鲁棒优化的主动配电网动态无功优化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.引言

        由于分布式电源接入配电网的比例不断升高,分布式电源出力和负荷难以准确预测,给配电网的无功优化带来了许多不确定性,使得传统的的确定性无功优化模型得到的控制策略不准确。考虑设备损耗,配电网的无功控制装置中的分组投切电容器组和有载调压分接头,这些装置不能频繁的操作,虽然这些装置能够有效的应对电压波动,但是针对快速的秒级到分钟级的较小电压波动
的,一方面受限于操作次数的限制,不能频繁的去操作;另一方面离散装置响应速度比较慢,无法有效应对电压波动。针对负荷和分布式电源的预测曲线,由于预测的误差较大,得出的控制策略可能导致电压可能越界,所以在制定控制策略的时候必须考虑不确定性。
        输电网中由于线路电阻 R 通常小于线路电抗 X,输电网中有功和无功通常能够解耦控制,而配电网 R/X 的比值较大,无法实现有功与无功的解耦控制,所以配电网的电压控制需要有功与无功协调控制。主动配电网中含储能和可控DG,这些装置能够快速地进行控制,如何协调快速设备和慢速设备(CB)的控制来应对主动配电网中的不确定性是一个值得深入研究的课题。

2. 鲁棒优化模型及求解方法

        鲁棒优化是用于解决不确性问题的一种方法,不同于随机规划对于不确定量假设满足某种不确定参数的分布,突破了过多依靠先验知识的服从概率分布的假定 [71] 。鲁棒优化的目的是:求的解满足所有约束条件,对于可能出现的所有情况,在最坏的情况下使得目标函数值最优的解。

2.1 鲁棒优化一般模型

        鲁棒优化模型一般如下所示:

        式中:x为决策变量;u为不确定参数; f(x,u)为目标函数; g(x,u)≤0为约束条件。u为不确定参数,根据不确定参数所在的集合不同,可以分为:盒式不确定集、椭球不确定集、多面体不确定集[72]。

        上述鲁棒优化模型中通常难以求解需要进行等价转化,其基本思路,是将不确定参数以集合和的形式加入到鲁棒模型中,这样以数学的形式从而将鲁棒模型的不确定量剔除掉,转化为鲁棒等价模型,通常使用soyster 提出的min-max模型,又称之为单阶段鲁棒模型,其形式如下:

2.2 两阶段鲁棒优化简介

2.3两阶段鲁棒优化模型求解方法

        两阶段鲁棒优化求解方法有:列约束生成法[73] ( column-and-con-straingeneration,C&CG)和 Benders分解法,C&CG算法的求解性能要优于Bender分解法。

        C&CG算法的求解是分为主问题和子问题来求解,主问题为目标函数确定的一个下界值,首先假设不确定场景为离散的形式,U= {u1,…,ur},这样对应的决策变量为{x1 , …,xr},由于不确定场景不是全部的场景,这样优化结果为目标函数的一个下界值,所枚举出的不确定场景与优化结果无关,这是因为子问题求解出的场景不断的添加到主问题中,使主问题中目标函数的下界值不断增大,通常而言,如果不确定场景占有的全部场景比较多,那么收敛速度会加快,其主问题模型如下:

        主问题得到的决策变量 y 带到子问题中来,会得到不确定场景 u 和决策变量 x,由于得到的场景是主问题中决策变量所对应的场景,那么子问题得到的值是目标函数的一个上界值,那么再将子问题中的场景加到主问题中,主问题的决策变量又可以得到目标函数的一个下界值,反复上一过程,直到上界值和确定值之差满足于收敛判据,此时迭代结束。

3.两阶段鲁棒优化的电压控制模型

        为了应对分布式电源和负荷的不确定性对配电网运行决策带来的影响,建立了两阶段的鲁棒优化模型,将离散变量作为第一阶段的控制变量,如储能的充放电标志的二进制变量,分组投切电容器组的投切组数,将连续变量作为第二阶段的控制变量,如储能的充放电功率,静止无功补偿器的补偿量。一方面由于含有离散控制变量的装置启动时间较长,启动周期为数十分钟到几个小时,
另一方面含有离散控制变量装置频繁操作会降低设备的使用寿命,控制策略是连续变量的装置,相对于含离散变量的装置的来说,其能够快速地进行控制,所以离算变量的控制策略在应对配电网的不确定性制定的控制策略中会显得尤其重要,从而将其作为第一阶段的控制变量,使得在第一阶段离散装置的控制策略,能够保证配电网在最恶劣的场景下,第二阶段的控制策略使得配电网安全、稳定、经济地运行。建立的两阶段鲁棒优化的模型主动管理装置中含有储能、分组投切电容器组、静止无功补偿器,DG,详细解释在第二章和第三章中介绍过了,其模型如下:

        为了表述方便,将式(5.9)~(5.25)用紧凑型的表达式如下:

4.代码运行结果

5.完整代码获取

两阶段鲁棒优化的主动配电网动态无功优化的matlab代码资源-CSDN文库

这篇关于开源代码分享(21)-两阶段鲁棒优化的主动配电网动态无功优化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/915273

相关文章

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

Java调用C#动态库的三种方法详解

《Java调用C#动态库的三种方法详解》在这个多语言编程的时代,Java和C#就像两位才华横溢的舞者,各自在不同的舞台上展现着独特的魅力,然而,当它们携手合作时,又会碰撞出怎样绚丽的火花呢?今天,我们... 目录方法1:C++/CLI搭建桥梁——Java ↔ C# 的“翻译官”步骤1:创建C#类库(.NET

MyBatis编写嵌套子查询的动态SQL实践详解

《MyBatis编写嵌套子查询的动态SQL实践详解》在Java生态中,MyBatis作为一款优秀的ORM框架,广泛应用于数据库操作,本文将深入探讨如何在MyBatis中编写嵌套子查询的动态SQL,并结... 目录一、Myhttp://www.chinasem.cnBATis动态SQL的核心优势1. 灵活性与可

Mybatis嵌套子查询动态SQL编写实践

《Mybatis嵌套子查询动态SQL编写实践》:本文主要介绍Mybatis嵌套子查询动态SQL编写方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、实体类1、主类2、子类二、Mapper三、XML四、详解总结前言MyBATis的xml文件编写动态SQL

Python处理大量Excel文件的十个技巧分享

《Python处理大量Excel文件的十个技巧分享》每天被大量Excel文件折磨的你看过来!这是一份Python程序员整理的实用技巧,不说废话,直接上干货,文章通过代码示例讲解的非常详细,需要的朋友可... 目录一、批量读取多个Excel文件二、选择性读取工作表和列三、自动调整格式和样式四、智能数据清洗五、

SpringBoot实现Kafka动态反序列化的完整代码

《SpringBoot实现Kafka动态反序列化的完整代码》在分布式系统中,Kafka作为高吞吐量的消息队列,常常需要处理来自不同主题(Topic)的异构数据,不同的业务场景可能要求对同一消费者组内的... 目录引言一、问题背景1.1 动态反序列化的需求1.2 常见问题二、动态反序列化的核心方案2.1 ht

golang实现动态路由的项目实践

《golang实现动态路由的项目实践》本文主要介绍了golang实现动态路由项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习... 目录一、动态路由1.结构体(数据库的定义)2.预加载preload3.添加关联的方法一、动态路由1

JDK9到JDK21中值得掌握的29个实用特性分享

《JDK9到JDK21中值得掌握的29个实用特性分享》Java的演进节奏从JDK9开始显著加快,每半年一个新版本的发布节奏为Java带来了大量的新特性,本文整理了29个JDK9到JDK21中值得掌握的... 目录JDK 9 模块化与API增强1. 集合工厂方法:一行代码创建不可变集合2. 私有接口方法:接口

电脑系统Hosts文件原理和应用分享

《电脑系统Hosts文件原理和应用分享》Hosts是一个没有扩展名的系统文件,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应... Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应