Trans论文复现:考虑源荷不平衡性的微电网鲁棒定价方法程序代码!

本文主要是介绍Trans论文复现:考虑源荷不平衡性的微电网鲁棒定价方法程序代码!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

适用平台:Matlab+Yalmip+Cplex/Gurobi

程序针对目前微电网中高比例新能源发电的波动性和间歇性,提出了考虑源荷不平衡特性的微电网鲁棒定价方法,综合考虑电力市场边际收益和边际成本,利用价格波动来平衡电源和负荷。程序算例丰富、注释清晰、干货满满,可扩展性和创新性很高!下面对文章和程序做简要介绍!

程序创新点:

1)所建立的模型更具通用性和鲁棒性,考虑了系统扰动和RES的不确定性,模型更具有普适性,可扩展到更复杂的电力市场系统。

2)所提方法在平抑新能源波动和源荷之间的不平衡特性有很大作用,所提方法优于目前传统的定价方法。

主要工作:

本程序从电力市场的角度研究了微电网的能量不平衡问题。与传统电网不同,微电网接入了大量等可再生能源(RES)。然而,可再生能源的不确定性给电能供需带来了困难。因此,提出了一种新考虑源荷不平衡性的微电网鲁棒定价方法,该方法利用鲁棒优化方法来处理新能源出力不确定性,所提方法考虑了电力市场边际收益和边际成本中可能存在的不确定性,使用了所有可用的电力供应、电力需求和不平衡能源的信息。使用性能指标来评估该方案的参数。仿真结果表明,参数可以通过求解一个线性矩阵不等式问题来获得,该问题由于其凸性而是有效可解的。通过仿真实例说明了该方法的优越性。

价格变动对供需的影响:

能源价格的变动可以平衡能源资源的供需。在电力市场中,电力的供需与市场价格有关:从消费者的角度来看,需求的增加/减少是因为边际成本高于/低于市场价格;从供应商的角度来看,当边际成本低于/高于价格时,供应量会增加/减少。现阶段微电网中高比例新能源的接入,给微电网运行稳定性带来了挑战;从优化调度的角度来看,它导致电力需求和电力供应不平衡。传统上,定价方案、控制价格的变化率,使其与不平衡能量的大小成正比。

复现结果:

文中结果:

程序结果:

部分程序:

%% 电力市场建模
% 电力市场模型是一个线性系统模型,更多细节请参见式(7)和式(20)
A = [-cg/tg 0 -k/tg;0 cd/td 0;​1 -1 0];
B = [-1/tg 0 0;0  1/td 0;0   0   1];C = [0 0 1;0 0 0];​
%% 随机生成不确定度样本
% 在这个项目中,我们考虑了三种类型的不确定性—电源,生成电力需求和可再生电力注入L个样本,以计算等式(10)中的模糊规则矩阵Am
L = 1500; % 生成的样本​​xl(:, i) = (rng(i, 2) - rng(i, 1)).*rand(L, 1) + rng(i, 1);
yl = (A*xl' + b)'; % 公式(9)​
%% 建立模糊逻辑方程,计算Fm1、Fm2和Fm3​
%% 设置y=XB进行最小二乘拟合,详细信息请参阅论文的“数值示例”部分
% 通过将xl和yl代入方程(11),我们得到了3L方程,其中Am,m=1,2,。。。,M作为待确定的变量
% 矩阵Am可以通过使用最小二乘法来估计​
X((i-1)*3+j, (m-1)*9+(j-1)*3+1: (m-1)*9+(j-1)*3+3) = xl(i, :)' * hm(m, i);        end​​Am(:, :, i) = [beta((i-1)*9+1: (i-1)*9+3)';​ beta((i-1)*9+4: (i-1)*9+6)';beta((i-1)*9+7: (i-1)*9+9)'];
%% 求解线性矩阵不等式得到Km.Eq(25)-Eq(29)
Ym = zeros(1, 3, 64);​Km = zeros(1, 3, 64);
gamma_list = zeros([1, 64]);t_list = zeros([1. 64]);​
​options = zeros(1,5);      % LMI解算器的默认参数 

部分内容源自网络,侵权联系删除!

欢迎感兴趣的小伙伴关注并私信获取完整版代码,小编会不定期更新高质量的学习资料、文章和程序代码,为您的科研加油助力!

这篇关于Trans论文复现:考虑源荷不平衡性的微电网鲁棒定价方法程序代码!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

Mybatis Plus Join使用方法示例详解

《MybatisPlusJoin使用方法示例详解》:本文主要介绍MybatisPlusJoin使用方法示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录1、pom文件2、yaml配置文件3、分页插件4、示例代码:5、测试代码6、和PageHelper结合6

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据

SpringBoot读取ZooKeeper(ZK)属性的方法实现

《SpringBoot读取ZooKeeper(ZK)属性的方法实现》本文主要介绍了SpringBoot读取ZooKeeper(ZK)属性的方法实现,强调使用@ConfigurationProperti... 目录1. 在配置文件中定义 ZK 属性application.propertiesapplicati

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI