当前位置: 首页 > 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节点,结构如下: 这里我们会在同一台虚…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络&#xf…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

基于 TAPD 进行项目管理

起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...

Kafka入门-生产者

生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...

flow_controllers

关键点: 流控制器类型: 同步(Sync):发布操作会阻塞,直到数据被确认发送。异步(Async):发布操作非阻塞,数据发送由后台线程处理。纯同步(PureSync…...