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

目录

 主要内容   

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

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

   部分结果   

下载链接

  • 24
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分布优化(DRO)是一种优化方法,旨在在不确定性环境中设计的决策。在Matlab中,可以使用以下步骤实现分布优化: 1. 定义不确定性分布 假设你有一个目标函数 $f(x)$,其中 $x$ 是决策变量,但是 $f(x)$ 受到不确定性因素的影响。你需要定义这些不确定性因素的分布。例如,如果你认为这些不确定性因素是正态分布的,则可以使用 Matlab 中的 normrnd 函数来生成随机样本。 2. 定义约束 在 DRO 中,你需要定义一个约束,该约束保证目标函数在不确定性因素发生变化时仍能满足要求。例如,如果你希望目标函数对于不确定性因素的变化不超过 $p$,则可以定义一个约束为 $P(f(x) \leq f(x^*) + p) \geq \alpha$,其中 $x^*$ 是一个参考点,$P$ 是概率函数,$\alpha$ 是置信度。 3. 定义最优化问题 在上述约束下,你可以定义一个最优化问题,以在不确定性环境中设计的决策。在 Matlab 中,可以使用 cvx 工具箱来解决这个问题。例如,以下代码演示了如何使用 cvx 进行 DRO: ```matlab cvx_begin variable x(n) minimize(f(x)) subject to for i = 1:N normrnd(mu(i), sigma(i)) <= f(x) + p; end norm(x) <= R; % additional constraints if needed cvx_end ``` 其中,$n$ 是决策变量的数量,$N$ 是不确定性因素的数量,$mu$ 和 $sigma$ 是不确定性因素的均值和标准差,$p$ 是约束中的容忍度,$R$ 是其他约束(如果有)。 通过以上步骤,你可以在 Matlab 中实现分布优化,并设计出的决策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值