1 主要内容
之前发布了华电学报的复现程序《基于目标级联法的微网群多主体分布式优化调度》,具体链接为【防骗版】基于目标级联法的微网群多主体分布式优化调度,虽然对模型及结果进行了复现,但是部分模型细节和参数并没有完全实现,本次发布该程序的完整复现版本,主要实现的内容如下:
1.考虑多源异质分布式电源的出力随机性,增加风光出力的鲁棒约束;
2.完全复现基于目标级联法的分布式求解流程;
3.参数基本完全按照文献所列;
4.程序目标函数和约束条件和文献一致。
建立微网群系统的两级递阶优化调度模型: 上层是微网群能量调度中心优化调度模型,下层是子微网优化调度模型,然后对所建递阶优化调度模型耦合性和分布性进行分析,采用一种新型的协同优化方法———目标级联法,实现上下层模型的解耦独立优化,以3微网为算例进行验证,证明方法的可行性。
2 部分程序
%最终迭代后结果图 figure; wwz=max(gPpcc1,0); wwf=min(gPpcc1,0); yyf=[-x_P_ch1;wwf]'; bar(yyf,' stack '); hold on yyz=[x_P_dis1;x_P_g1;PV1;x_c_ld1;wwz]' ;bar(yyz,'stack'); plot(Pload1+Pkk1,'r','LineWidth',1.5) xlabel('时间/h'); ylabel('功率/MW'); title('微网1功率'); sy=legend('储能充电','接受微网群电功率','储能放电','柴油发电','光伏','负荷响应','供给其他微网','微网1负荷'); sy.NumColumns = 3; figure; wwz=max(gPpcc2,0); wwf=min(gPpcc2,0); yyf=[-x_P_ch2;wwf]'; bar(yyf,' stack '); hold on yyz=[x_P_dis2;x_P_g2;PW2;x_c_ld2;wwz]' ;bar(yyz,'stack'); plot(Pload2+Pkk2,'r','LineWidth',1.5) xlabel('时间/h'); ylabel('功率/MW'); title('微网2功率'); sy=legend('储能充电','接受微网群电功率','储能放电','柴油发电','风电','负荷响应','供给其他微网','微网2负荷'); sy.NumColumns = 3; figure; wwz=max(gPpcc3,0); wwf=min(gPpcc3,0); yyf=[-x_P_ch3;wwf]'; bar(yyf,' stack '); hold on yyz=[x_P_dis3;sum(x_P_g3);PW3;PV3;x_c_ld3;wwz]' ;bar(yyz,'stack'); plot(Pload3+Pkk3,'r','LineWidth',1.5) xlabel('时间/h'); ylabel('功率/MW'); title('微网3功率'); sy=legend('储能充电','接受微网群电功率','储能放电','柴油发电','风电','光伏','负荷响应','供给其他微网','微网3负荷'); sy.NumColumns = 3; figure; plot(pv13,'r-o','LineWidth',1) hold on plot(pw2,'b-*','LineWidth',1) plot(pw3,'m-s','LineWidth',1) legend('MG1/MG3光伏','MG2风电','MG3风电'); xlabel('预测时段/h'); ylabel('可再生能源预测出力/p.u.'); grid on figure; plot(ploadz,'r-o','LineWidth',1) hold on plot(pload1,'b-*','LineWidth',1) plot(pload2,'m-s','LineWidth',1) plot(pload3,'c-^','LineWidth',1) legend('微网群负荷','子微网1负荷','子微网2负荷','子微网3负荷'); xlabel('预测时段/h'); ylabel('预测负荷功率/p.u.'); grid on figure; title_name = '独立优化模型惩罚项'; title(title_name); %%关键 plot(faz,'b-o','LineWidth',1.5); hold on plot(fa1,'b-o','LineWidth',1.5); plot(fa2,'r-*','LineWidth',1.5); plot(fa3,'k-^','LineWidth',1.5); xlabel('迭代次数'); ylabel('独立优化模型惩罚项/元'); grid on figure; title_name = '最大连接变量偏差'; title(title_name); %%关键 plot(detamax,'m-o','LineWidth',1.5); xlabel('迭代次数'); ylabel('最大连接变量偏差/kW'); grid on figure; title_name = '整体经济性'; title(title_name); %%关键 plot(y4,'b-o','LineWidth',1.5); xlabel('迭代次数'); ylabel('整体经济性/元'); grid on figure; subplot(311) plot(gPpcc1c,'--','LineWidth',1.5) hold on plot(gPMGc(1,:),'-','LineWidth',1.5) grid on legend('下层连接变量值','上层连接变量值'); xlabel('迭代次数'); ylabel('子微网1联络功率'); % ylim([0 200]); subplot(312) plot(gPpcc2c,'--','LineWidth',1.5) hold on plot(gPMGc(2,:),'-','LineWidth',1.5) grid on xlabel('迭代次数'); ylabel('子微网2联络功率'); % ylim([0 500]); subplot(313) plot(gPpcc3c,'--','LineWidth',1.5) hold on plot(gPMGc(3,:),'-','LineWidth',1.5) grid on xlabel('迭代次数'); ylabel('子微网3联络功率');
3 程序结果