Matlab|【分布鲁棒】数据驱动的多离散场景电热综合能源系统分布鲁棒优化算法

目录

主要内容

[1.1 主要难点-分布鲁棒优化](#1.1 主要难点-分布鲁棒优化)

[1.2 程序求解步骤-主子问题迭代](#1.2 程序求解步骤-主子问题迭代)

部分结果

下载链接


主要内容

本程序主要对《基于场景聚类的主动配电网分布鲁棒综合优化》-高海淑的方法复现,应用到综合能源电热微网方向,采用拉丁超立方抽样对不同场景进行处理,然后采用K-means聚类算法对场景聚类分析,应用该聚类分析数据采用分布鲁棒优化,场景分布的概率置信区间由1-范数和∞-范数约束,分两阶段对电热综合能源模型进行优化求解,得到不同场景下的优化结果。

下面对模型主要功能点进行分析。

1.1 主要难点- 分布鲁棒优化

该模型分布鲁棒模型目标的紧凑形式如下:

不同场景的概率分布满足如下集合(这里是经过推导得出来的,具体详见原文,这篇文章该部分分析还算分布鲁棒中比较清楚的,很多文献直接就不明不白得出结论,看的一头雾水):

但是该集合非线性,需要进行线性化处理,得到如下的线性化集合:

该部分对应的代码如下:

复制代码
%不确定约束
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];

1.2 程序求解步骤-主子问题迭代

将模型分解为主问题与子问题,采用C&CG 算法分阶段迭代求解,具体迭代求解示意图如下:

主程序MAIN代码列示主子问题两部分循环迭代,具体代码如下:

复制代码
ps0=[22.7; 15.6; 38.05; 23.65]'./100;%场景概率
ps=ps0;
alfa1=0.99;alfaw=0.99;N=5000;
theta1=4/N/2*log(2*4/(1-alfa1));%公式46-47
thetaw=1/N/2*log(2*4/(1-alfaw));
tn=24;%时序性参数
Pgmax=300;ru=50;rd=50;%微燃机最大出力,爬坡约束 原pgmax=100
Sch=400;Pchmax=0.2*Sch;ee0=0.5*Sch;socmax=0.9;socmin=0.1;
eta=0.95;%储能充放电效率
cg=1.7;%MTG运行成本
cq=0.62;%弃风弃光成本
ccn=0.3*7/100;%储能老化成本 原/1000
cqt=0.25;%启停成本
d2h=1.2;%电热比
yitagl=0.9;%电锅炉
UB=inf;
LB=-inf;
for k=1:4
% while UB-LB>1
    MP427;%主问题求解
    LB=obj_mp;%得到LB
    LB1(k)=LB;
    SP427;%子问题求解
    UB=min([UB,UB1]);%更新UB
    UB2(k)=UB;
end

部分结果

下载链接

相关推荐
freexyn11 小时前
Matlab自学笔记六十一:快速上手解方程
数据结构·笔记·matlab
ytttr87313 小时前
matlab通过Q学习算法解决房间路径规划问题
学习·算法·matlab
梦子要转行17 小时前
matlab/Simulink-全套50个汽车性能建模与仿真源码模型9
开发语言·matlab·汽车
Zevalin爱灰灰20 小时前
MATLAB GUI界面设计 第六章——常用库中的其它组件
开发语言·ui·matlab
曹勖之10 天前
simuilink和ROS2数据联通,Run后一直卡在Initializting
windows·matlab·simulink·ros2
Zevalin爱灰灰11 天前
MATLAB GUI界面设计 第三章——仪器组件
开发语言·ui·matlab
算法如诗11 天前
基于SOA(海鸥优化算法)的路径规划Matlab实现方案
开发语言·算法·matlab
项目申报小狂人11 天前
2025年中科院三区全新算法,恒星振荡优化器:受自然启发的元启发式优化,完整MATLAB代码免费获取
开发语言·算法·matlab
Zevalin爱灰灰12 天前
MATLAB GUI界面设计 第二章——APP Designer操作正式入门
开发语言·ui·matlab
季截12 天前
07、python调用matlab引擎
matlab