两阶段鲁棒优化—微电网两阶段鲁棒优化经济调度方法_刘一欣(完美复现)matlab-yalmip-cplex/gurobi

程序名称:两阶段鲁棒优化—微电网两阶段鲁棒优化经济调度方法_刘一欣

实现平台:matlab-yalmip-cplex/gurobi

简介:针对微电网内可再生能源和负荷的不确定性,建立了 min-max-min 结构的两阶段鲁棒优化模型,可得到最恶劣场 景下运行成本最低的调度方案。模型中考虑了储能、需求侧 负荷及可控分布式电源等的运行约束和协调控制,并引入了 不确定性调节参数,可灵活调整调度方案的保守性。基于列 约束生成算法和强对偶理论,可将原问题分解为具有混合整 数线性特征的主问题和子问题进行交替求解,从而得到原问 题的最优解。最终通过仿真分析验证了所建模型和求解算法 的有效性,同时给出了分时电价机制下微电网对储能进行调 度的边界条件,可为微电网投资商规划储能及配电网运营商 设计激励机制提供参考。

具体细节可参考电机工程学报论文《微电网两阶段鲁棒优化经济调度方法》

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LyK6LGG55qE5q2m5aWz,size_20,color_FFFFFF,t_70,g_se,x_16

代码创新点:原创代码,非烂大家的版本!!!注释十分详细,且将目标函数与约束写成紧凑形式,简洁工整,易于拓展修改。引入鲁棒调节系数,根据需要可以修改两阶段鲁棒模型的保守程度。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LyK6LGG55qE5q2m5aWz,size_20,color_FFFFFF,t_70,g_se,x_16

模型收敛良好 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LyK6LGG55qE5q2m5aWz,size_20,color_FFFFFF,t_70,g_se,x_16

寻找负荷最恶劣场景 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LyK6LGG55qE5q2m5aWz,size_20,color_FFFFFF,t_70,g_se,x_16

寻找光伏最恶劣场景 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LyK6LGG55qE5q2m5aWz,size_20,color_FFFFFF,t_70,g_se,x_16

可转移负荷调度情况 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LyK6LGG55qE5q2m5aWz,size_20,color_FFFFFF,t_70,g_se,x_16

储能设施充放电情况 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LyK6LGG55qE5q2m5aWz,size_20,color_FFFFFF,t_70,g_se,x_16

汽轮机发电功率与微网购售电功率 

 

%%设置对偶变量
W1=sdpvar(288,1,'full');
W2=sdpvar(26,1,'full');
W3=sdpvar(96,1,'full');
W4=sdpvar(24,1,'full');

%二元变量B设置
%B=binvar(48,1);           %B为子问题初始二元变量,取到1即为最坏情况 
%BB=sdpvar(48,1);        %引入的辅助变量B’,记为BB
%%KKT
%max-min问题,将内层min转换成max,并与外层max合并

%约束条件
C=[D'*W1+K'*W2+G'*W3+L'*W4<=c'];
C=C+[W1>=0,W3>=0,W4>=0];
BB_1=sdpvar(24,1);        %引入的辅助变量B’,记为BB
BB_2=sdpvar(24,1);        %引入的辅助变量B’,记为BB

%不确定集合
BPV=binvar(24,1,'full');
BL=binvar(24,1,'full');



%p_pv=p_pvpre-BPV.*Dp_pv_max;
%PL=PLpre+BL.*DPL_max;

upre=[p_pvpre,PLpre]';

%设置不确定调节参数
C=C+[sum(BPV)<=6,sum(BL)<=12];


Du=[Dp_pv_max,DPL_max]';
%引入连续的辅助变量转换双线性项,将其线性化

%BBPV=sdpvar(1,24,'full');
%BBL=sdpvar(1,24,'full');

MM=99;
C=C+[0<=BB_1,BB_1<=MM*BPV];
C=C+[W4-MM*(1-BPV)<=BB_1,BB_1<=W4];

C=C+[0<=BB_2,BB_2<=MM*BL];
C=C+[W4-MM*(1-BL)<=BB_2,BB_2<=W4];

  • 3
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

玉子(代码分享版)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值