本程序参考了3篇电力系统TOP-EI期刊,将目前的热点研究数据驱动结合综合综合能源系统,利用分布鲁棒处理不确定性问题,程序中算例丰富,注释清晰,干货满满,小编非常推荐这个程序,下面对程序代码详细介绍!
参考文献
1. 中国电机工程学报:计及需求响应柔性调节的分布鲁棒 DG 优化配置
2. 电力系统自动化:基于场景聚类的主动配电网分布鲁棒综合优化
3. 电网技术:基于数据驱动的交直流配电网分布鲁棒优化调度
论文亮点
1. 通过基于多面体的线性化技巧和McCormick方法,将原始混合整数非线性模型线性化,建立混合整数线性规划模型;然后,充分利用需求响应和新能源出力的历史数据,构建数据驱动的两阶段分布鲁棒新能源优化配置模型,其中第一阶段确定新能源的投资方案,第二阶段模拟投入新能源后的系统运行, 并同时考虑不确定性概率分布置信集合的1-范数和∞-范数约束;
2. 在考虑新能源间相关性的基础上,基于原始数据采用拉丁超立方采样得到初始场景,利用手肘法确定K-means算法的聚类数,从而得到典型场景,场景分布的概率置信区间由1-范数和∞-范数约束。
3. 通过二阶锥松弛和McCormick线性化方法,将原始混合整数非线性模型(MINLP)转化为混合整数二阶锥凸优化模型(MISOCP);然后,结合风光和负荷的典型历史数据以及决策变量的调节特性,构建数据驱动的两阶段分布鲁棒优化调度模型,并综合1-范数和∞-范数同时约束不确定性概率分布置信集合;
第一阶段目标函数:一阶段目标是微燃机启停成本
第二阶段目标函数:分别是电网购电成本、发电机运行成本、蓄电池老化成本(或者运维)、弃风和弃光成本。
程序结果
部分程序
%决策变量
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);%充放电状态01变量
uu_m=binvar(24,4);%发电机状态01变量
p_buy=sdpvar(24,4);%购电变量
p_sell=sdpvar(24,4);%售电变量
p_wt=sdpvar(24,4);p_pv=sdpvar(24,4);%实际参与风、光
p_g=sdpvar(24,4);%发电机出力
yita=sdpvar(1,1);%两阶段鲁棒优化中的主问题中目标+yita
%热储能
h_ch=sdpvar(24,4);h_dis=sdpvar(24,4);
uh_ch=binvar(24,4);
uh_dis=binvar(24,4);%充放热状态01变量
%负荷需求响应变量
pdz=sdpvar(24,4);%可转移电负荷
pdd=sdpvar(24,4);%可中断电负荷
phd=sdpvar(24,4);%可消减热负荷
%不确定性变量
psp=sdpvar(1,4);%ps+,参见高海淑文献公式54,下同
psd=sdpvar(1,4);%ps-
sigmap=binvar(1,4);%54公式第三个sigmas+
sigmad=binvar(1,4);%54公式第三个sigmas-
u_g=[uu_m(:,1)' uu_m(:,2)' uu_m(:,3)' uu_m(:,4)'];
hchmax=50;sh=300;yitahch=0.85;yitahdis=0.9; %储热
atse=0.1;aie=0.1;bie=0.1; %调整幅度
constraints=[];%约束开始
%约束constraints=[constraints,u_ch+u_dis<=1];
x=[x,p_buy(:,i)' p_g(:,i)' p_ch(:,i)' p_dis(:,i)' p_gl(:,i)' p_wt(:,i)' p_pv(:,i)'];%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);
T5=[p_l(:,1)'+pdz(:,1)'-pdd(:,1)'+p_sell(:,1)' p_l(:,2)'+pdz(:,2)'-pdd(:,2)'+p_sell(:,2)' p_l(:,3)'+pdz(:,3)'-pdd(:,3)'+p_sell(:,3)' p_l(:,4)'+pdz(:,3)'-pdd(:,4)'+p_sell(:,4)']';
T6=[p_h(:,1)'-phd(:,1)'+h_ch(:,1)'-h_dis(:,1)' p_h(:,2)'-phd(:,2)'+h_ch(:,2)'-h_dis(:,2)' p_h(:,3)'-phd(:,3)'+h_ch(:,3)'-h_dis(:,3)' p_h(:,4)'-phd(:,4)'+h_ch(:,4)'-h_dis(:,4)']';
%增加原始约束
constraints=[constraints,Q1*x<=Pgmax];
%负荷需求响应
constraints=[constraints,-atse.*p_l<=pdz<=atse.*p_l,sum(pdz)==0];
constraints=[constraints,yita>=sum(Cz'.*ps)];
部分内容源自网络,侵权联系删除!
欢迎感兴趣的小伙伴点击文末阅读原文获取完整版代码,小编会不定期更新高质量的学习资料、文章和程序代码,为您的科研加油助力!
更多创新性预测及优化程序请点击公众号首页:《预测优化》|《综合能源》链接!