当前位置: 首页 > news >正文

【机会约束、鲁棒优化】具有排放感知型经济调度中机会约束和鲁棒优化研究【IEEE6节点、IEEE118节点算例】(Matlab代码实现)

 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

2.1 风能

2.2 IEEE6和IEEE118

 2.3 IEEE6

2.4 IEEE118 

🎉3 参考文献

🌈4 Matlab代码及数据实现


💥1 概述

机会约束规划(chance constrained programming简称CCP)也称为概率约束规划,最初由Charnes和 Cooper[1在1958年提出,是针对约束条件中含有随机参数并在一定概率条件满足下的最优化问题.近几十年,机会约束广泛应用于参数不确定的优化和决策问题中.比如,网络优化2]、供应链管理3、生产计划[4和水流箱管理5等.关于CCP的发展情形,感兴趣的读者可参见综述文献[6].机会约束规划的一般形式为:

常规机会约束假设已知随机变量概率分布Р的准确信息.然而,在许多实际应用中随机变量∈ 难以精确预测,仅能够获得其部分信息(如矩和样本信息等).满足这些概率信息的分布构从伏)方法结合.建立在分布不确定集合最环情优L好分布鲁棒优化问题优化思想和随机优化方法结合,建立在分布不确定
鲁棒优化(distributionally robust optimization,简称结合机会约束即为分布鲁棒机会约束优化问题(distributionally robust chance constrainedoptimization program,简称DRCC).
分布鲁棒机会约束优化的一般形式为:
 

调度者存在多元化的风险偏好,导致对“最恶劣场景”的评估产生差异。如图 3 所示,日前预测

总偏差由偏离时长和对应时刻的偏离度决定。也就是说,控制调度周期内不确定变量的总体偏离度,就能够度量调度者风险偏好。但是,在给定的总偏离度条件下,学界普遍认为“最恶劣场景”发生在不确定域边界,这在线性系统中必然成立,但是在非线性系统中,“最恶劣场景”可能发生在不确定域内。

为此,本文通过有限离散化不确定域,生成梯次偏离的不确定域边界,扩充“恶劣场景集”。在此基础上,控制不确定变量的总体偏离值,表征调度者的保守程度。

 考虑风电不确定性的电力系统调度模型中的部分输入量(Pw和Pg)具有不确定性,通过传统数学规划方法得到的优化调度方案可能无法实现系统的经济性最优,甚至可能违反系统的安全运行约束。针对传统的数学规划方法难以消除不确定参量对优化模型的负面影响,Soyster提出了鲁棒优化方法。RO在优化模型建立之初就对其中的不确定参量进行分析,明确不确定参量的波动区间。RO旨在得到这样一个优化方案:在不确定参量可能的取值范围内,优化模型的所有约束条件都能被满足,且使得优化模型目标函数能取得最恶劣情况下的最优值。因此,RO所得的优化结果对不确定参量的波动具有免疫能力,并且不失良好性能。

对包含不确定参量的优化问题而言,RO提出了一种“劣甲选优的处理刀八,关注点在于最恶劣情况下模型的最优解,仅需知道不确定参量波动的边界信息即可进行决策,计算效率高,需要了解的不确定参量信息少,优化方案的抗干扰能力强,因此具有很高的实用价值。RO的提出和发展弥补了传统优化方法的不足,己成为处理含有不确定参量优化问题的重要工具。

传统的数学优化模型一般形式如下:

📚2 运行结果

2.1 风能

 

 

 

部分代码:

figure
yyaxis left
bar(x,y,'FaceColor','[0.3010 0.7450 0.9330]','EdgeColor','[0 0.4470 0.7410]');box off 
xlim([mu-3*sigma,mu+3*sigma])
xlabel('Error','FontSize',13.2,'FontName','Times New Roman','FontWeight','Bold')
ylabel('Number of samples','FontSize',13.2,'FontName','Times New Roman','FontWeight','Bold')
% a2=axes;  
yyaxis right
fp=fplot(@(x)normpdf(x,mu,sigma),[mu-3*sigma,mu+3*sigma]);
xlim([mu-3*sigma,mu+3*sigma])
fp.LineStyle = '-.';
fp.LineWidth =2;
fp.Color =[0.9290 0.6940 0.1250];
%set(a2,'box','off','yaxislocation','right','color','none')  
% set(gca,'xticklabel',[]);
ylabel('Probability density','FontSize',13.2,'FontName','Times New Roman','FontWeight','Bold')
set(gcf,'Position',[100 100 400 500]);
set(gca,'FontSize',12,'FontName','Times New Roman')
ax = gca;
ax.YAxis(1).Exponent = 4; 

2.2 IEEE6和IEEE118

x=[1,2,3,4];
b=BarPlotBreak(x,y_time_record',15,20,'Line',0.99);
 x_label={'CC (Gaussian)','DRO (Binomial)','Clairvoyant','SO (Scenario)'};
 set(gca,'XTickLabel', x_label)
 legend('6 bus','118 bus')
 ylabel('time (s)','FontSize',13.2,'FontName','Times New Roman','FontWeight','Bold')
 set(gca,'FontSize',12,'FontName','Times New Roman')
 b(1).FaceColor=[0.9290, 0.6940, 0.1250];
 b(2).FaceColor=[0.4660, 0.6740, 0.1880];

 2.3 IEEE6

 

 

 

 

 

 

2.4 IEEE118 

 

 

部分代码:

function[fval_avg,x_avg]=gen_SSO_average_performance(c_level,epsilon,T,N,M,bb,d_f,p,q,H,fmax,gmin,gmax,w_loc,w_num,error_data,ramp_rate,DR,UR)  
    % scenarios to be generated to meet the probability guarantee
    n_dv=4*N*T;
    Num=ceil(n_dv/(epsilon*c_level))-1;
    % generating wind scenario
    index=ceil(T*Num*(1-epsilon));
    d_real=d_f;
    virtual_bb=bb;

    [gm] = gen_samples(error_data);
    
    for k=1:w_num
        loc=w_loc(k);
%         random_num=zeros(T*Num,1);
%         for i=1:Num
%             rng('default');
%             [random_T,~]=random(gm,T);
%             random_num((i-1)*T+1:i*T)=random_T;
%         end
        rng('default');
        random_num=random(gm,T*Num);
        random_num=sort(random_num);
        virtual_bb(loc)=max([bb(loc)-random_num(index),0]);
    end
            
    [standard_delta,real_bb]= gen_standard_delta(bb,virtual_bb,w_loc);

    umin=-real_bb*ramp_rate;
    umax=real_bb*ramp_rate;  
    [x_avg,fval_avg]=MinC(T,N,M,real_bb,d_real,p,q,H,fmax,gmin,gmax,umin,umax,DR,UR);
end

function[wind_error]= gen_wind_data(real_capacity_scale,filename)
    %filename='.\data\WindGenTotalLoadYTD_2020.xls';
    input_data= xlsread(filename, 1, 'B25:C52428');
    input_scale=mean(input_data(:,1));
    wind_data=input_data./input_scale*real_capacity_scale;
    wind_error=wind_data(:,2)-wind_data(:,1);
%     error_norm=normalize(error_data,'scale');
%     wind_error=error_norm*ratio;
end

function[wind_error]= gen_wind_data(real_capacity_scale,filename)
    %filename='.\data\WindGenTotalLoadYTD_2020.xls';
    input_data= xlsread(filename, 1, 'B25:C52428');
    input_scale=mean(input_data(:,1));
    wind_data=input_data./input_scale*real_capacity_scale;
    wind_error=wind_data(:,2)-wind_data(:,1);
%     error_norm=normalize(error_data,'scale');
%     wind_error=error_norm*ratio;
end

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]耿晓路,童小娇.分布鲁棒机会约束优化问题的研究[J].运筹学学报,2020,24(01):115-130.DOI:10.15960/j.cnki.issn.1007-6093.2020.01.009. 

[2]随权,林湘宁,童宁,李雪松,汪致洵,胡志豪,李正天,孙士茼.基于改进两阶段鲁棒优化的主动配电网经济调度[J].中国电机工程学报,2020,40(07):2166-2179+2396.DOI:10.13334/j.0258-8013.pcsee.182259.

[3]程凤璐. 在线经济调度的鲁棒优化方法研究[D].山东大学,2015.

[4]王晨曦. 含大规模风电的电力系统鲁棒优化调度研究[D].华南理工大学,2019.DOI:10.27151/d.cnki.ghnlu.2019.002201.

[5]许书伟,吴文传,朱涛,王珍意.机会约束随机动态经济调度的凸松弛迭代求解法[J].电力系统自动化,2020,44(17):43-51.

🌈4 Matlab代码及数据实现

相关文章:

【机会约束、鲁棒优化】具有排放感知型经济调度中机会约束和鲁棒优化研究【IEEE6节点、IEEE118节点算例】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

用Python帮老叔选出好基金,大赚一笔,老叔专门提着茅台登门道谢

我有个老叔很喜欢买基金,因为不想被割韭菜,所以啥群都没进,全部自己精挑细选。 看着他的一个本子密密麻麻地写了一大堆东西,全是基金的数据分析,一大把年纪了挺不容易的,于是就决定帮他一把。 在跟他详谈…...

ZeroTier实现内网穿透详细教程,无需公网IP,实现异地组网

ZeroTier实现内网穿透详细教程,无需公网IP,实现异地组网ZeroTier1.官网注册账号,创建自己的局域网段2.点击创建好的网络,进入设置界面进行设置3.下载客户端,安装客户端,然后连接到网络中4.加入网络成功后&a…...

电商 SaaS 全渠道实时数据中台最佳实践

摘要:本文整理自聚水潭数据专家张成玉,聚水潭高级数据工程师应圣楚,在 FFA 2022 行业案例专场的分享。本篇内容主要分为四个部分:实时数仓的建设和发展数据中台的产品体系及架构实时计算的实践和优化对实时计算的未来展望Tips&…...

macos ncnn 安装踩坑记录···

安装真麻烦踩了无数坑,官方给的安装教程:macos安装ncnn, 安装过程老是报错,记录一下卡的比较久的,网上也不好找资料的错. 我的电脑: 1. 使用homebrew 的时候失败fatal: not in a git directory Error: Command failed…...

ESP32设备驱动-AM2301(DHT21)温度湿度传感器驱动

AM2301(DHT21)温度湿度传感器驱动 文章目录 AM2301(DHT21)温度湿度传感器驱动1、AM2301(DHT21)介绍2、硬件准备3、软件准备4、驱动实现1、AM2301(DHT21)介绍 AM2301 湿敏电容数字温湿度模块是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温…...

[数据结构]:16-归并排序(顺序表指针实现形式)(C语言实现)

目录 前言 已完成内容 归并排序实现 01-开发环境 02-文件布局 03-代码 01-主函数 02-头文件 03-PSeqListFunction.cpp 04-SortFunction.cpp 结语 前言 此专栏包含408考研数据结构全部内容,除其中使用到C引用外,全为C语言代码。使用C引用主要是…...

React(七):Router基本使用、嵌套路由、编程式导航、路由传参、懒加载

React(七)一、React-Router的基本使用1.安装和介绍2.路由的配置和跳转3.Navigate的使用4.如果找不到对应的路由路径?二、嵌套路由的用法三、编程式路由导航1.类组件中使用useNavigate2.函数式组件中使用useNavigate四、路由跳转传参1.设置好路…...

Java基础面试题(一)

Java基础面试题 一、面向对象和集合专题 1. 面向对象和面向过程的区别 面向过程:是分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,然后在使用的时候一一调用则可。性能较高,所以单片机、嵌入式开发等一般采用面向过程…...

代码命名规范是一种责任也是一种精神(工匠精神)

代码命名规范之美规范概述命名规范管理类命名BootstrapProcessorManagerHolderFactoryProviderRegistrarEngineServiceTask传播类命名ContextPropagator回调类命名Handler ,Callback,Trigger,ListenerAware监控类命名MetricsEstimatorAccumul…...

奇淫技巧:阅读源码时基于一组快捷键,让我们知道身在何方!

一个十分蛋疼的问题 在我们阅读框架底层源码的时候,我们往往会一个方法一个方法的往下翻,翻了很久很快就会有这样的灵魂拷问:我从那个类(方法)来,我要到哪个(类)方法中去。这个时候…...

你真的弄懂this指向了吗

前言 在说 this 指向之前,请观察以下代码,并说出它们的输出结果: 第 1 组:标准函数 window.color "red"; let o {color: "blue", }; function sayColor() {console.log(this.color); }sayColor(); // 输…...

阿里云服务器使用教程:使用xshell、xFtp工具连接阿里云服务器(Centos7)并修改Centos7的yum源为阿里镜像源

目录 1、下载并安装xshell、xFtp 2、远程连接阿里云服务器 3、 修改Centos7的yum源为阿里镜像源 1、下载并安装xshell、xFtp XShell可以在Windows界面下来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。它支持 RLOGIN、SFTP、SERIAL、TELNET、…...

一文快速入门 HTML 网页基础

专栏简介: 前端从入门到进阶 题目来源: leetcode,牛客,剑指offer. 创作目标: 记录学习JavaEE学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 1.HTML 结构 1.1. 认识 HTML 标签 1.2 HTML 文件结构…...

DEJA_VU3D - Cesium功能集 之 100-任意多边形(标绘)

前言 编写这个专栏主要目的是对工作之中基于Cesium实现过的功能进行整合,有自己琢磨实现的,也有参考其他大神后整理实现的,初步算了算现在有差不多实现小140个左右的功能,后续也会不断的追加,所以暂时打算一周2-3更的样子来更新本专栏(每篇博文都会奉上完整demo的源代码,…...

Cadence OrCAD Capture全局修改原理图的非本地库符号的方法图文教程Repalce Catch功能

⏪《上一篇》   🏡《总目录》   ⏩《下一篇》 目录 1,概述2,修改方法2.1,新建本地库2.2,待修改搬入本地库2.3,修改原理图符号2.4,全局更新原理图符号3,总结B站关注“硬小二”浏览更多演示视频 1,概述 在完成原理图设计...

npm包版本号详解

npm包在发布时,需要按照包版本语义化中的约定去更新设置,例如我们常见的1.0.0,1.0.1,0.0.1等这样的版本号,那么这些数字分别代表什么意思呢?下面我们将详细介绍。 npm版本号的组成 一个完整的版本号&…...

ubuntu 系统安装docker——使用docker打包python项目,整个流程介绍

目录 1 安装docker和配置镜像源 2 下载基础镜像 3 通过镜像创建容器 4 制作项目所需的容器 5 容器制作好后打包为镜像 6 镜像备份为.tar文件 7 从其他服务器上恢复镜像 8 docker的其他常用指令 首先科普一下镜像、容器和实例; 镜像:相当于安装包&…...

MySQL事务篇

MySQL事务篇 一、一条Insert语句 为了故事的顺利发展,我们需要创建一个表: CREATE TABLE t (id INT PRIMARY KEY,c VARCHAR(100) ) EngineInnoDB CHARSETutf8;然后向这个表里插入一条数据: INSERT INTO t VALUES(1, 刘备); 现在表里的数据就…...

【Redis】搭建分片集群

目录 集群结构 准备实例和配置 启动 创建集群 测试 集群结构 分片集群需要的节点数量较多,这里我们搭建一个最小的分片集群,包含3个master节点,每个 master包含一个slave节点,结构如下: 这里我们会在同一台虚…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...

C++使用 new 来创建动态数组

问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...

【C++进阶篇】智能指针

C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...