首页 > 编程语言 >风电随机性动态经济调度模型(Python&Matlab代码)

风电随机性动态经济调度模型(Python&Matlab代码)

时间:2022-12-18 21:34:25浏览次数:71  
标签:随机性 情景 CVX Python 模型 调度 约束 Matlab 风电


目录

​​0 写在前面​​

​​1 引言​​

​​1.1 机会约束规划​​

​​1.2 基于场景的方法​​

​​1.3 模糊模型​​

​​ 2 六种处理风电随机性动态经济调度模型描述​​

​​2.1 考虑正负旋转储备约束的确定性模型​​

​​2.2 机会约束的随机模型【机会】​​

​​2.3 基于概率最优功率流的随机模型(POPF)【机会】​​

​​2.4 基于场景法的确定性模型【场景】​​

​​2.5 考虑极限情景约束的确定性模型【场景】​​

​​2.6 基于样本平均法的确定性模型​​

​​3 总结与展望​​

​​4 随机经济调度(Matlab实现)​​

​​4.1 代码前的准备​​

​​4.2 代码​​

​​5 可再生能源系统场景建模(包括岸对船电力和电动汽车​​


0 写在前面

大规模风电并网给经济调度模型带来的主要挑战是如何处理风电的随机性,如何降低其对电力系统优化调度的影响。建模是大规模风电并网电力系统优化调度的核心步骤,因此,我们回顾了风电并网经济调度的几种典型建模方法。  此外,还用了随机经济调度程序。


1 引言

风电并网对经济调度的影响主要在于如何处理随机风电出力,以减少其不确定性对调度结果的影响。因此,在相关模型中,现有研究的研究重点主要集中在处理风电随机性方法的差异上。根据风电随机性处理方式的不同,目前涉及风电经济调度问题的常用建模方法主要分为机会约束规划方法、基于场景的方法和模糊模式.

1.1 机会约束规划

偶然约束编程 在经济调度问题中,由于风力发电的不确定性,对约束条件进行确定性处理后,计算结果肯定是保守的。随机机会的约束编程是随机编程的一个重要分支,它主要是针对含有随机变量的约束条件的优化问题,其决策必须在观察到随机变量的实现之前做出。考虑到在不利条件下做出的决策可能不满足约束条件,允许决策在一定程度上不满足约束条件。 但是,决策应保证约束条件出现的概率不低于一定的置信度。 机会约束编程的一般形式是:

                             

风电随机性动态经济调度模型(Python&Matlab代码)_python

  在公式(1)中,f(x)是目标函数;X是决策向量;ξ是参数向量;g(x,ξ) ≤0是约束条件;α是置信度;Pr{~}是概率。


1.2 基于场景的方法

基于场景的方法是解决随机过程问题的一个重要工具。 德国柏林洪堡大学的Heitsch H、Romisch W等人在证明情景树及其使用方法方面进行了许多研究,他们讨论了情景树方法在多阶段随机过程中的应用、详细介绍了情景树的生成、缩减和重建方法。

1)目前,传统的思路是在保证一定精度的前提下缩减情景,分为情景生成、情景缩减和情景树重建三个步骤。

(1)相关文章提出的安全约束单元组合方法考虑了风电机组的无功特性,通过引入发电机功率分配系数以及将基于蒙特卡洛仿真的情景法替换为基于极值情景集的情景法,提高了计算时间和计算精度。

(2)基于情景的方法基础上提出了动态减少多切割方法也被提出。 首先,风电场一体化的随机机组承诺是分解为主问题和子问题。 主问题用于确定发电机组的开/关状态以及与预测的风电情况相对应的输出调度,而子问题则用于确定与采样情况相对应的发电量。 然后,主问题和子问题通过最优切割联系起来,交替解决。

2)第二种思路是利用分解加速算法和高性能计算设备直接求解包括大规模风电场景的优化模型。 美国阿贡国家实验室基于第二种思路的一些研究成果走在了前列。 他们将抽样平均近似法应用于伊利诺伊州电网的随机编程问题

首先,他们用SAA方法将随机问题转化为确定性的最优问题;然后,用内点法来解决这个确定性的模型。在迭代过程中,根据预测情景和偏离情景的顺序,修正方程的系数矩阵被重新排列为块边对角线形式(BBDF)。采用含有Schur补数的高斯消除法来加速修正方程的求解。 特别是在一些研究中,计算涉及19.5亿个变量和16384个场景,算法在超级计算机Titan Cray XK7中编译和运行。含有Schur补数的高斯消除法可以使内点法具有并行计算的效果,在商业软件包OOPS和中的IPOPT都采用了这种方法。


1.3 模糊模型

模糊建模的基本思想是将不确定的风电输出作为一个模糊数,通过成员函数对风电场输出进行模糊处理,建立风电场输出成员函数

风电随机性动态经济调度模型(Python&Matlab代码)_成员函数_02

。该值越大,意味着决策者对风电场输出的满意度越高。同时,建立目标函数和约束条件的成员函数,包括总成本的成员函数

风电随机性动态经济调度模型(Python&Matlab代码)_成员函数_03

,负荷平衡的成员函数

风电随机性动态经济调度模型(Python&Matlab代码)_matlab_04

,以及旋转储备的成员函数

风电随机性动态经济调度模型(Python&Matlab代码)_成员函数_05

。然后,根据模糊集理论的最大和最小定律,将全局成员定义为整个模型的模糊满足指数:                   

风电随机性动态经济调度模型(Python&Matlab代码)_matlab_06

这样,寻求模型的解就转化为寻求满足约束条件的满足指数ω0的最大值。 Ω0的值反映了调度员对整个优化结果的总体满意度,包括总购电成本、负荷平衡和旋转储备。 当Ω0的值接近或等于1时,说明优化后的调度结果满足了调度员的要求。 


 2 六种处理风电随机性动态经济调度模型描述

2.1 考虑正负旋转储备约束的确定性模型

模型 I 是考虑风电场输出的确定性模型。它将预测的风电场出力作为已知因素,通过预留足够的系统旋转备用容量来应对风电出力不确定性和负荷预测误差的影响。正旋转备用容量用于补偿高估风电出力或低估系统负荷造成的影响,负旋转备用容量用于补偿低估风电出力或高估系统负荷造成的影响。这样,通过优化得到的发电调度方案就有足够的系统旋转备用容量来应对次日风电场实际出力或负荷功率与预测值的偏差。数学模型如下:

                   

风电随机性动态经济调度模型(Python&Matlab代码)_python_07

其中,公式(1a)是目标函数,定义为购电成本。 约束条件(1b)-(1g)与约束条件(4b)-(4g)相同,对于常规动力装置的输出变量和风机输出变量,去掉与方案有关的上标,相当于对单一预测方案的优化。约束条件(1h)是系统的正负旋转储备约束。在目前的优化模型中,利用纺纱储备应对风电并网带来的系统调度的不确定性是一种广泛使用的方法。 为了保证几个模型比较的标准,我们只考虑风电预测的误差,不考虑负荷预测的误差。 其中,第一和第二式为系统的正、负旋转储备约束,Sut 和,Sdt 为系统在时间间隔t的正、负旋转储备容量;

风电随机性动态经济调度模型(Python&Matlab代码)_matlab_08

为风电场w的集成功率,Pwt为风电场w的实际调度输出功率;wu%和wd%分别为正、负旋转储备的风电集成需求系数,本文选择30%。 每个单元在响应时间内提供的旋转备用约束,

风电随机性动态经济调度模型(Python&Matlab代码)_成员函数_09

 和 ,

风电随机性动态经济调度模型(Python&Matlab代码)_成员函数_10

分别是单元 g 在时间间隔 t 的正和负旋转备用容量,T10 是任意两个相邻时间间隔之间的周期,即 10 分钟。

2.2 机会约束的随机模型【机会】

模型二采用机会约束模型来反映风力发电的随机性,认为风力发电量的预测误差被视为服从正态分布的随机变量,采用机会约束规划处理风电出力约束。具体如下:

                       

风电随机性动态经济调度模型(Python&Matlab代码)_matlab_11

 其中,c为置信度。采用参数估计的方法,将随机产生的S个误差样本代入Matlab的正态分布参数估计函数中,估计出样本的均值,即期望值。取这个平均值作为风电出力的上限,代入模型,于是机会约束模型转化为确定性模型:


                   

风电随机性动态经济调度模型(Python&Matlab代码)_python_12

其中,

风电随机性动态经济调度模型(Python&Matlab代码)_python_13

样本平均值。模型二不包括旋转储备约束,目标函数和其他约束与模型一相同。

2.3 基于概率最优功率流的随机模型(POPF)【机会】

第三个模型仍然使用机会约束模型。  受[16]中概率最优功率流约束的启发,采用考虑风电不确定性的概率最优功率流来建立机会约束的编程模型。 基于风力输出预测误差有上下限的假设,机会约束编程模型被转换为确定性模型。 具体如下: 

                           

风电随机性动态经济调度模型(Python&Matlab代码)_python_14

其中,Pwt,maxlimit和Pwt,minlimit值等于模型2.5中的两个极限误差情况,用Matlab正态分布函数的反函数来解决上述不等式,并将上述约束条件转化为。


                     

风电随机性动态经济调度模型(Python&Matlab代码)_成员函数_15

其中,σ为标准差; αc 是该置信水平下对应的变量值。模型2.3不包括旋转储备约束,目标函数和其他约束与模型2.1相同。


2.4 基于场景法的确定性模型【场景】

第四个模型采用情景法, 由于情景转移约束的存在,预测的情景输出可以转化为不同的误差情景输出,以及对应于不同风电场输出情景的、满足电力系统有功约束的常规动力装置的最优输出。

                    

风电随机性动态经济调度模型(Python&Matlab代码)_建模_16

其中,ag 是常规单位的上网电价; awind 是风电上网电价。 NG、NL、ND、NW和NPS分别是常规机组、输电线路、负荷、风电场和抽水蓄能电站的集合。 N 是场景集,NS={0,1,2,..., S },s=0 是预测情景; T为调度间隔集合,T={1, 2,... , 96}; T15为机组正常用电调度的时间间隔,本文选取15min。 ΔT 为场景转移重调度的时间间隔;

风电随机性动态经济调度模型(Python&Matlab代码)_matlab_17

 为时间间隔 t 对应第 s 场景的单位 g 的有功输出,其他与有功功率相关的变量按此定律命名; rd,g 和 ru,g 分别为单位 g 的滑坡和斜坡速率(MW/min)。

式(4b)为功率平衡约束;公式(4c)和(4e)是常规机组和风力发电机的输出下限和下限约束。式(4d)为常规单元滑坡/坡道约束;式(4f)为抽水蓄能电站的上下限约束和抽水平衡约束[15],ξ为抽水平衡的相关系数,取75%。公式(4g)为线路输电约束,本文采用直流潮流模型[17]对其进行描述。式(4h)为误差情景与预测情景之间的转移约束,表示常规机组应能在规定时间内将预测情景下的产出调整为误差情景下的产出。

2.5 考虑极限情景约束的确定性模型【场景】

模型采用极限误差情景模型,并考虑情景转移约束。 该模型与模型2.4相似,不同的是情景集NS' ,NS'={0,1,2} 的情景数,s=0 是预测情景,s=1 是最大正误差情景,s=2 是最大负误差情景。下 图是极限误差情景生成图。

风电随机性动态经济调度模型(Python&Matlab代码)_python_18

                                                           最大正/负误差情景

如图所示,两个极限误差情景是S误差样本的上下限边界,模型V的目标函数和约束条件与模型IV相同。


2.6 基于样本平均法的确定性模型

模型六采用六种样本平均法(SAA),即分别求解每种误差情况,最后得到不同情况下购电成本的平均值,即预期购电成本。具体如下:

风电随机性动态经济调度模型(Python&Matlab代码)_成员函数_19

其中,式(6b)-6g)同式(4b)-(4g),NS' ={1,2,...,S};公式(6h是不可预测性抑制约束,其物理意义是假设t=1是已经过去的时间,所以所有场景的输出是相同的。根据伯努利大数定律,将(6h)代入(6a-1),模型VI的目标函数转化为: 

                       

风电随机性动态经济调度模型(Python&Matlab代码)_成员函数_20

 

必然规律往往表现为大量的随机事件,而这种现象就是大数定律。通俗地讲,定理就是在不变的条件下进行大量的测试,随机事件的频率接近于它的概率。模型2.2的变量个数与模型2.3相同,为V=T·(NG+NW+2·NPS)。模型2.1的变量个数与模型2.3相同,均为3V;模型IV的变量个数与模型VI相同,为(S+1)·V。计算规模由变量个数和约束个数决定,计算规模会影响计算时间。

3 总结与展望

建模是包含风电并网的电力系统优化调度问题的最重要部分。本文采用机会约束规划法和随机情景法进行建模,将确定性模型的计算结果与SAA模型的计算结果进行了对比,并对各模型的计算规模、速度和优化效果进行了评述。

各级调度机构的职能不同,对优化调度精度的要求不同,各个调度中心的编译环境也不同。如果能快速有效地找到一个好的次优解(例如对风电随机性的适应性较强的解),在实际工程应用中可能更有价值。此类问题的建模方法主要集中在机会约束规划场景法和模糊建模上。目前尚无兼顾目标函数精度、计算速度和常规机组出力对风电随机性的适应性的建模方法。

因此,未来需要对建模方法进行进一步的研究,使其能够很好地适应风电的随机性,同时平衡计算模型的准确性和计算速度。

4 随机经济调度(Matlab实现)

4.1 代码前的准备

安装:CVX包,方法如下:

首先去CVX工具包官方网站:​​CVX: Matlab Software for Disciplined Convex Programming | CVX Research, Inc.​

工具包安装说明在 ​​Installation — CVX Users' Guide​

  1. Unpack the file anywhere you like; a directory called cvx will be created. There are two important exceptions: (1)Do not place CVX in Matlab’s own toolbox directory, Octave’s built-in scripts directory.(2)Do not unpack a new version of CVX on top of an old one. We recommend moving the old version out of the way, but do not delete it until you are sure the new version is working as you expect.
  2. Start Matlab or Octave. Do not add CVX to your path by hand.
  3. Change directories to the top of the CVX distribution, and run the cvx_setup command. For example, if you installed CVX into C\personal\cvx on Windows, type these commands: 


cd C:\personal\cvx
cvx_setup


我翻译成中国话就是:

1.将文件解压到你喜欢的任何地方;一个名为cvx的目录将被创建。有两个重要的例外。
(1)不要把CVX放在Matlab自己的工具箱目录下,也就是Octave的内置脚本目录下。(2)不要把新版本的CVX解压在旧版本的上面。我们建议把旧版本移开,但在确定新版本能按你的期望工作之前,不要删除它。
2.启动Matlab或Octave。  不要手工添加CVX到你的路径中。
3.改变目录到CVX发行版的顶部,然后运行cvx_setup命令。例如,如果你在Windows上把CVX安装到C\personal\cvx中,键入这些命令:


cd C:\personal\cvx
cvx_setup


4.2 代码


5 巴巴多斯100%可再生能源系统场景建模(包括岸对船电力和电动汽车)

风电随机性动态经济调度模型(Python&Matlab代码)_matlab_21

风电随机性动态经济调度模型(Python&Matlab代码)_python_22

风电随机性动态经济调度模型(Python&Matlab代码)_python_23

 

风电随机性动态经济调度模型(Python&Matlab代码)_约束条件_24

 

风电随机性动态经济调度模型(Python&Matlab代码)_matlab_25

代码仿真结果: 

风电随机性动态经济调度模型(Python&Matlab代码)_python_26

 

风电随机性动态经济调度模型(Python&Matlab代码)_matlab_27


 

标签:随机性,情景,CVX,Python,模型,调度,约束,Matlab,风电
From: https://blog.51cto.com/u_15739983/5951148

相关文章

  • Python和Matlab系统比较
    目录​​1概述​​​​2Python和Matlab比较​​​​2.1编程习惯​​​​2.2符号表示对比​​​​2.3基本数据类型 ​​​​2.3.1 Python的Dictionary和Matlab的struc......
  • Python安装time库失败?不是吧阿sir你还不知道内置模块不用下载吧
    嗨嗨,今天给python安装time库,一直报错,换源等办法都试过了直到我看到Python中有以下常用模块不用单独安装random模块sys模块time模块os系统操作re正则操作json模块......
  • 年度榜单,我整理了2020年优质的Python实战、热点与可视化文章。
    不知不觉,发现自己已经在发布了这么多文章了,这次为大家做一个总结,方便大家学习和查询。Python实战​​20000字的深度分析,让你彻底搞懂《电信用户流失预测模型》!​​​​数据......
  • Python速查
    1.Python速览官方文档一定要注意使用的是哪个版本有些效果会不同1.1安装教程官网安装使用IDLE自带软件编辑2.基础内容2.1用作计算器通过python可以实现大......
  • 45册 + 325集 + 31套,Python学习资源【2021精华版本】
    给大家准备了如下资料黄同学经过千挑万选,为大家准备好的资源。45本Python电子书325集Python全栈视频【最新版】Python项目开发实战Python数据分析与机器学习实战【最新视频......
  • Python中String模块
    目录Python中String模块详解一、字符串常量二、类1、格式化1.1介绍1.2简单应用1.3格式化输出2、模板化三、函数Python中String模块详解一、字符串常量String库......
  • python2项目打包rpm笔记
    python2项目打包成rpm包项目目录结构和说明#其中demo的是项目的根目录#pkg是代码逻辑目录#config是配置文件目录#main.py是项目的开始目录#Makefile是打包文件......
  • Python-核心编程-学习笔记
    >下划线标示符_xxx不用'frommoduleimport*'导入__xxx___系统定义名字__xxx类中的私有变量名>模块结构和布局(1)起始行(Unix)(2)模块......
  • m基于matlab的OQPSK载波同步通信系统仿真,载波同步采用costas环
    1.算法概述OQPSK调制技术是一种恒包络调制技术,受系统非线性影响小,具有较高的带宽利用率和功率利用率,在卫星环境、无线环境下得到广泛应用。因此,在通信信号侦收设备所处理的......
  • m基于matlab的OQPSK载波同步通信系统仿真,载波同步采用costas环
    1.算法概述       OQPSK调制技术是一种恒包络调制技术,受系统非线性影响小,具有较高的带宽利用率和功率利用率,在卫星环境、无线环境下得到广泛应用。因此,在通信信号......