【分布鲁棒】多源动态最优潮流的分布鲁棒优化方法

目录

1 主要内容

2 部分代码

3 程序效果

4 下载链接


主要内容

程序主要复现的是《多源动态最优潮流的分布鲁棒优化方法》,针对大规模清洁能源接入电网引起的系统鲁棒性和经济性协调问题,提出含风–光–水–火多种能源的分布鲁棒动态最优潮流模型。采用分布鲁棒优化方法将风光不确定性描述为包含概率分布信息的模糊不确定集。将模糊不确定集构造为一个以风光预测误差经验分布为中心,以 Wasserstein距离为半径的 Wasserstein 球。在满足风光预测误差服从模糊不确定集中极端概率分布情况下最小化运行费用。由于梯级水电厂模型为混合整数模型,为了提高计算效率,将交流潮流近似为解耦线性潮流,以118节点系统为例验证了方法的可行性。

在研究过程中,有些地方描述不是很清楚,然后参考同作者英文文献获得启发《Wasserstein Metric Based Distributionally Robust Approximate Framework for Unit Commitment》,两个文章公式部分基本一致,表达方式有所差别,所以单一个文献看不明白的话可以找到作者其他文献就更容易了解作者的意图,尤其是有些期刊论文说的比较简约,但是在硕博论文中就解释的非常仔细,一点小心得分享给大家。

代码

%% 决策变量
x_theta = sdpvar(nbus, Horizon,'full');%网络角度
V = sdpvar(nbus, Horizon,'full');%网络节点电压
x_P_h = sdpvar(ngen, Horizon,'full');%风光调整前火电
x_P_s = sdpvar(ns, Horizon,'full');%风光调整前水电
% x_P_hz = sdpvar(ngen, Horizon,'full');
% x_P_sz = sdpvar(ns, Horizon,'full');
x_P_w = sdpvar(nw, Horizon,'full');
x_P_v = sdpvar(nv, Horizon,'full');
ww = sdpvar(1,Horizon,'full');%风力偏差
wp = sdpvar(1,Horizon,'full');%光伏偏差
wwp = sdpvar(1,Horizon,'full');%风光总偏差
​
alfah = sdpvar(ngen,Horizon,'full');%火电机组参与因子
alfas = sdpvar(ns,Horizon,'full');%水电机组参与因子
rgmax = 50.*ones(ngen, Horizon);%火电旋转备用容量
rgmin = 10.*ones(ngen, Horizon);%火电旋转备用容量
rsmax = 50.*ones(ns, Horizon);%水电旋转备用容量
rsmin = 10.*ones(ns, Horizon);%水电旋转备用容量
rhog = 2.*ones(ngen, Horizon);
rhos = 3.*ones(ns, Horizon);
k1 = sdpvar(1);%对偶变量
k2 = sdpvar(1);%对偶变量
tk1 = sdpvar(1,K,'full');%辅助变量
tk2 = sdpvar(1,K,'full');%辅助变量
%平方分段线性化参数
gn=5;%分段数
x_pf=sdpvar(ngen, Horizon,'full');%p的平方
x=sdpvar(ngen, Horizon,'full');
gw1=sdpvar(gn+1,Horizon,'full');%辅助参数,下同
gw2=sdpvar(gn+1,Horizon,'full');
gw3=sdpvar(gn+1,Horizon,'full');
gw4=sdpvar(gn+1,Horizon,'full');
gw5=sdpvar(gn+1,Horizon,'full');
gw6=sdpvar(gn+1,Horizon,'full');
gw7=sdpvar(gn+1,Horizon,'full');
gw8=sdpvar(gn+1,Horizon,'full');
gw9=sdpvar(gn+1,Horizon,'full');
gw10=sdpvar(gn+1,Horizon,'full');
gw11=sdpvar(gn+1,Horizon,'full');
gw12=sdpvar(gn+1,Horizon,'full');
gw13=sdpvar(gn+1,Horizon,'full');
gw14=sdpvar(gn+1,Horizon,'full');
gz1=binvar(gn, Horizon,'full');gz2=binvar(gn, Horizon,'full');gz3=binvar(gn, Horizon,'full');gz4=binvar(gn, Horizon,'full');gz5=binvar(gn, Horizon,'full');
gz6=binvar(gn, Horizon,'full');gz7=binvar(gn, Horizon,'full');gz8=binvar(gn, Horizon,'full');gz9=binvar(gn, Horizon,'full');gz10=binvar(gn, Horizon,'full');
gz11=binvar(gn, Horizon,'full');gz12=binvar(gn, Horizon,'full');gz13=binvar(gn, Horizon,'full');gz14=binvar(gn, Horizon,'full');
%% 约束条件生成
cons = [];
cons = [cons,wwp == ww + wp];
% 火电
Phmax = 10.*[460;300;443;320;330;460;300;443;320;330;460;300;443;320];%火电机组上限
Phmin = [90;58;110;30;50;90;58;110;30;50;90;58;110;30];%火电机组下线
ru=50;rd=40;%爬坡和滑坡
%水电
Psmax = [1060;820;1243];
Psmin = [90;58;110];
rsu=0.1;rsd=0.1;
cons_sgen = getConssGen(x_P_s,Psmax,Psmin,rsu,rsd,rsmax,rsmin,wwp,alfas,Horizon);
 cons_gen = getConsGen2(x_P_h,Phmax,Phmin,ru,rd,rgmax,rgmin,wwp,alfah,Horizon);
 cons = [cons, cons_gen];
 cons = [cons, cons_sgen];
 %风电
 cons = [cons, x_P_w==muw+ww,-0.3.*muw<=ww<=0.3.*muw];
  %光伏
 cons = [cons, x_P_v==muv+wp,-0.3.*muv<=wp<=0.3.*muv];
% 仿射约束
x_P_hz = x_P_h-alfah.*repmat(wwp,ngen,1);
x_P_sz = x_P_s-alfas.*repmat(wwp,ns,1);
cons = [cons,0<= alfah <=1,0<= alfas <=1,sum(alfah)+sum(alfas) == ones(1,Horizon)];

程序效果

程序采用118节点系统

以上是程序优化结果图,下面为原文对照图。

以上是程序优化结果图,下面为原文对照图。4

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电力程序小学童

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值