多场景两阶段分布式鲁棒优化模型、数据驱动的综合能源系统

基于数据驱动的综合能源系统多场景两阶段分布式鲁棒优化模型

鲁棒优化是应对数据不确定性的一种优化方法,但单阶段鲁棒优化过于保守。为了解决这一问题,引入了两阶段鲁棒优化(Two-stage Robust Optimization)以及更一般的多阶段鲁棒优化,其核心思想是将决策问题分为两个阶段。第一阶段是进行初步决策,第二阶段是根据第一阶段的决策结果制定更好的决策策略,应对数据不确定性的影响。这种方法可以降低保守性,提高鲁棒性。

两阶段鲁棒优化模型在含有风电、光伏、储能的综合能源系统以及主动配电网中均得到了很多应用。本文采用基于数据驱动的分布鲁棒方法处理了 DG 和负荷的不确定性。

优化模型:

一、程序目标函数:

第一阶段

Cs是启停成本系数,一阶段目标是微燃机启停成本,u代表发电机状态变量。

第二阶段

分别是电网购电成本、发电机运行成本、蓄电池老化成本(或者运维)、弃风和弃光成本。

模型包含以下约束:

约束1:微燃机出力约束

约束2:爬坡约束。

约束3:储能充放电约束

约束4:储能初始能量和最终能量一致

约束5:储能soc范围约束

约束6.电功率平衡约束

约束7.热功率平衡

二、部分程序实例:

%function [p_wt,p_pv,p_load,x,UB,p_ch,p_dis,p_g,p_buy,p_sell]=SP2(ee_bat_int, p_wt_int,p_pv_int,p_g_int,LB,yita)%决策变量% p_ch=sdpvar(24,4);p_dis=sdpvar(24,4);p_gl=sdpvar(24,4);%uu_ch=binvar(24,4);uu_dis=binvar(24,4);uu_m=binvar(24,4);%充放电状态、发电机状态% p_buy=sdpvar(24,4);%购电变量% p_wt=sdpvar(24,4);p_pv=sdpvar(24,4);%实际参与风、光% p_g=sdpvar(24,4);%不确定性变量psp=sdpvar(1,4);psd=sdpvar(1,4);sigmap=binvar(1,4);sigmad=binvar(1,4);ps=sdpvar(1,4);u_g=[uu_m(:,1)' uu_m(:,2)' uu_m(:,3)' uu_m(:,4)'];u_ch=[uu_ch(:,1)' uu_ch(:,2)' uu_ch(:,3)' uu_ch(:,4)'];u_dis=[uu_dis(:,1)' uu_dis(:,2)' uu_dis(:,3)' uu_dis(:,4)'];%风光出力和电价(以春季典型日为例)ps0=[22.7; 15.6; 38.05; 23.65]./100;%场景概率price=[0.48 0.48 0.48 0.48 0.48 0.48 0.48 0.9 1.35 1.35 1.35 0.9 0.9 0.9 0.9 0.9 0.9 0.9 1.35 1.35 1.35 1.35 1.35 0.48];%电价constraints=[];%约束开始load=p_l';%不确定约束constraints=[constraints,sum(psp+psd)<=theta1];constraints=[constraints,psp+psd<=thetaw];constraints=[constraints,sigmap+sigmad<=1];constraints=[constraints,0<=psp<=sigmap*theta1];constraints=[constraints,0<=psd<=sigmad*theta1];constraints=[constraints,ps==ps0'+psd+psp];lam1=sdpvar(96,1);lam11=sdpvar(96,1);lam12=sdpvar(96,1);lam120=sdpvar(96,1);lam2=sdpvar(192,1);lam21=sdpvar(192,1);lam3=sdpvar(4,1);lam4=sdpvar(96,1);lam41=sdpvar(96,1);lam5=sdpvar(96,1);lam51=sdpvar(96,1);lam6=sdpvar(96,1);%设定对偶变量beta1=sdpvar(96,1);beta11=sdpvar(96,1);beta12=sdpvar(96,1);beta120=sdpvar(96,1);beta2=sdpvar(192,1);beta21=sdpvar(192,1);beta3=sdpvar(4,1);beta4=sdpvar(96,1);beta41=sdpvar(96,1);beta5=sdpvar(96,1);beta51=sdpvar(96,1);beta6=sdpvar(96,1);beta7=binvar(672,1);beta8=binvar(288,1);%大m条件中的01变量x=[];P=[];pw=[];pv=[];for i=1:4x=[x,p_buy(:,i)' p_g(:,i)' p_ch(:,i)' p_dis(:,i)' p_gl(:,i)' p_wt(:,i)' p_pv(:,i)'];%x变量% P=[P,ps(i).*price ps(i)*cg.*ones(1,24) ps(i)*ccn.*ones(1,48) zeros(1,24) -ps(i)*cq.*ones(1,48)];P=[P,price cg.*ones(1,24) ccn.*ones(1,48) zeros(1,24) -cq.*ones(1,48)];pw=[pw,ps(i).*p0_wt(:,i)'];pv=[pv,ps(i).*p0_pv(:,i)'];endx=x';%下面相关的计算参数和参考资料一致%B=repmat([c_wt_om.*ones(1,24) c_pv_om.*ones(1,24) zeros(1,24)]',1,4);Q1=[zeros(24,24) eye(24) zeros(24,120) zeros(24,504);zeros(24,168) zeros(24,24) eye(24) zeros(24,120) zeros(24,336);zeros(24,336) zeros(24,24) eye(24) zeros(24,120) zeros(24,168);zeros(24,504) zeros(24,24) eye(24) zeros(24,120)];lint=zeros(tn);for i=1:tn-1lint(i,i)=-1;lint(i,i+1)=1;endlint(tn,tn)=-1;lint(tn,1)=1;obj_sp=-sum(Cz'.*ps);ops=sdpsettings('solver','gurobi');reuslt=optimize(constraints,obj_sp,ops);%ops.cplex.exportmodel='abcd.lp';%obj_o=double(obj_o);%p_ch=double(p_ch);p_dis=double(p_dis);p_buy=double(p_buy);;p_g=double(p_g);ps=value(ps);Q=value(obj_sp);UB1=LB-yita-Q;

运行结果:

两阶段分布式优化模型代码详情见原文:

https://mp.weixin.qq.com/s/WLhU1032VCM-YYJtQClurw

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/94757.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/94757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python实现点云PCA配准——粗配准

本节我们来介绍PCA&#xff08;主成分分析&#xff09;算法进行点云配准&#xff0c;这是一种经典的统计降维与特征提取工具&#xff0c;在三维点云处理中常被用来完成“粗配准”。其核心思想是&#xff1a;先把两个待对齐的点云各自进行主成分分解&#xff0c;获得各自的“主轴…

零基础深度学习规划路线:从数学公式到AI大模型的系统进阶指南

引言在人工智能革命席卷全球的2025年&#xff0c;深度学习已成为改变行业格局的核心技术。本规划路线整合最新教育资源与实践方法&#xff0c;为完全零基础的学习者构建一条从数学基础到AI大模型的系统学习路径。通过清华大佬的实战课程、吴恩达的经典理论、Kaggle竞赛的实战锤…

基于Vue.js和Golang构建高效在线客服系统:前端实现与后端交互详解

在当今互联网时代&#xff0c;在线客服系统已成为企业与用户沟通的重要桥梁。本文将详细介绍如何使用Vue.js作为前端框架&#xff0c;Gin作为后端框架&#xff0c;构建一个高效的在线客服系统。一、项目背景与技术选型项目背景随着电子商务的迅猛发展&#xff0c;用户对即时咨询…

虚幻GAS底层原理解剖九 (内存管理)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、整体内存管理思路概览二、核心对象的生命周期与托管逻辑UGameplayAbility 的管理GameplayEffect 的内存管理ActiveGameplayEffect 生命周期三、属性&#xf…

Rust 通用库新增 WebAssembly

1 先判断&#xff1a;也许你的 crate 已经能跑 Wasm&#xff01;排查阻碍因素 直接文件/网络 I/O块式&#xff08;同步&#xff09;I/Ostd::thread 线程创建并不受支持的 C 系统库绑定快速验证rustup target add wasm32-unknown-unknown cargo build --target wasm32-unknown-…

java分布式定时任务

一、分布式锁的底层实现细节&#xff08;以 Redis 为例&#xff09;分布式锁是解决任务重复执行的核心&#xff0c;需保证原子性、超时释放和可重入性。以下是生产级 Redis 锁实现&#xff1a;public class RedisDistributedLock {private final RedisTemplate<String, Stri…

Kafka 的基本操作(1)

Kafka 是一个分布式流处理平台&#xff0c;核心功能是高吞吐量的消息发布与订阅。以下是 Kafka 最常用的基本操作&#xff0c;涵盖环境启动、主题管理、消息生产与消费等核心场景&#xff08;基于 Kafka 2.x 版本&#xff0c;使用命令行工具&#xff09;。 一、环境准备与启动 …

React 为什么要自定义 Hooks?

历史相关文章2024年&#xff1a; React 为什么引入 Hooks &#xff1f; React 中&#xff0c;Hook 是一个特定的概念 自定义 Hook&#xff08;Custom Hook&#xff09;在 React 中相当于&#xff1a; ✅ 一个可以复用的逻辑片段&#xff0c;封装了多个内置 Hooks 的组合和行为 …

[激光原理与应用-181]:测量仪器 - 频谱型 - 干涉仪,OCT(光学相干断层扫描技术)

OCT&#xff08;光学相干断层扫描技术&#xff09;的核心工作原理基于低相干光干涉&#xff0c;通过测量生物组织或材料内部不同深度结构的背向散射光信号差异&#xff0c;构建高分辨率的二维或三维图像。以下是其工作原理的详细解析&#xff1a;一、基础原理&#xff1a;低相干…

python学智能算法(三十五)|SVM-软边界拉格朗日方程乘子非负性理解

【1】引言 前序学习进程中&#xff0c;已经学习了构建SVM软边界拉格朗日方程&#xff0c;具体方程形式为&#xff1a; L(w,b,ξ,α,μ)12∣∣w∣∣2C∑i1nξi−∑i1nαi[yi(w⋅xib)−1ξi]−∑i1nμiξiL(w,b,\xi,\alpha,\mu)\frac{1}{2}||w||^2C\sum_{i1}^{n}\xi_{i}-\sum_{i…

LeetCode 刷题【34. 在排序数组中查找元素的第一个和最后一个位置、35. 搜索插入位置】

34. 在排序数组中查找元素的第一个和最后一个位置 自己做 解&#xff1a;二分查找 class Solution { public://二分查找int halfFind(vector<int> nums, int begin, int end, int target){if(begin > end) //找不到的情况return -1;int mid (begin end) / …

Vue3 计算属性与监听器

文章目录计算属性配置项 computedHTML 结构Vue 实例数据方法计算属性绑定数据和方法完整代码vue3商品加减案例监听器配置项 watch简单类型写法深度监听写法计算属性配置项 computed 使用 Vue 实现一个商品价格计算器&#xff0c;设置一个初始单价&#xff0c;初始数量为 1&…

Mysql如何迁移数据库数据

文章目录一、使用 mysqldump 工具&#xff08;最常用&#xff09;&#xff08;一&#xff09;导出数据&#xff08;二&#xff09;导出数据库&#xff08;不含数据&#xff09;&#xff08;三&#xff09;导出指定表&#xff08;四&#xff09;导入数据二、直接拷贝文件三、使用…

为什么输入 URL 后会显示页面?HTTP 协议的 “幕后操作”

&#x1f680; 浏览器输入URL后&#xff0c;到底发生了什么&#xff1f;前端面试HTTP协议深度解析 今天咱们不聊八卦&#xff0c;来点硬核的——前端面试中绕不开的HTTP协议。是不是一提到“浏览器输入URL后发生了什么”&#xff0c;你就开始头大&#xff1f;别担心&#xff0c…

内网穿透原理和部署教程

前言&#xff1a;本文介绍了内网穿透技术原理及frp工具的部署方法。由于NAT映射表是临时且单向的&#xff0c;外网无法直接访问内网服务。通过部署公网服务器作为中转&#xff0c;frp实现了内网服务的穿透访问。具体步骤包括&#xff1a;下载frp软件包&#xff0c;详细说明了配…

Ping32:为企业数据安全筑起铜墙铁壁​

Ping32&#xff1a;为企业数据安全筑起铜墙铁壁在数字经济飞速发展的今天&#xff0c;企业数据已成为核心竞争力的重要组成部分。然而&#xff0c;数据泄露事件频发&#xff0c;给企业带来的损失难以估量。从商业机密外泄到客户信息曝光&#xff0c;每一次数据安全事故都可能让…

2025年国内iPaaS平台精选

在过去几年里&#xff0c;许多企业在业务系统中面临了诸多有关集成的难题&#xff1a;系统建好了&#xff0c;数据流不动&#xff1b;接口打通了&#xff0c;流程仍卡顿&#xff1b;工具堆叠越来越多&#xff0c;但协同效率反而走低。 这并不是架构设计的问题&#xff0c;也不是…

AD绘制PCB之-板外形设计

1、通过机械层1 【Mechanical 1】绘制出板子轮廓2、选中上面绘制得轮廓先选中一条边&#xff0c;然后按tab键&#xff0c;可以自动选择这条边闭合得线条3、按照选择对象定义设计--->板子形状------>按照选择对象定义执行后得效果&#xff1a;4、根据需要设置板子四角为半…

《汇编语言:基于X86处理器》第12章 浮点数处理与指令编码(2)

Intel X86架构数据的运算主要由通用寄存器处理&#xff0c;但浮点数例外&#xff0c;浮点数的运算由专门的FPU寄存器处理。二进制浮点数由三部分组成&#xff1a;符号&#xff0c;有效数字和阶码。这些格式都出自由IEEE组织制定的标准754-1985&#xff1a;以下是三种浮点数的格…

vue3通过按钮实现横向滚动、鼠标滚动横坐标滚动

效果图&#xff1a;可点击左右文字进行滚动、或通过滚动鼠标 内容左右滚动<template><div class"Home"><div style"display: flex;height: 100%;align-items: center;"><div click"scrollLeft()" style"width: 80px;t…