EI期刊论文复现:考虑电动汽车可调度潜力的充电站两阶段市场投标策略程序代码!

本程序代码参考EI期刊论文《考虑电动汽车可调度潜力的充电站两阶段市场投标策略》,程序中基于历史数据评估可调度潜力,由联合报价模型确定节点边际电价,作为报价的参考,包含个体竞价模式,纳什博弈竞价,算例丰富,注释清晰,干货满满!下面对程序代码和文章进行简要介绍!

运行平台:MATLAB+Cplex+Yalmip;或者:MATLAB+Gurobi+Yalmip

有很多公证号介绍了该程序代码,差别从运行平台开始,懂得都懂!

使用两种求解器对模型进行求解,均可以得到良好效果!

在电力市场环境下,充电站优化投标策略能降低电力成本,甚至通过售电获取收益。文中考虑了电动汽车成为柔性储荷资源的潜力,提出了日前电力市场和实时电力市场下充电站的投标策略。首先,基于闵可夫斯基加法提出了充电站内电动汽车集群模型的压缩方法,并建立了日前可调度潜力预测模型和实时可调度潜力评估模型。同时,考虑充电站间的非合作博弈,建立了电力零售市场下充电站的策略投标模型,并基于驻点法将其转化为一个广义Nash均衡问题。然后,提出了基于日前报价和实时报量的两阶段市场交易模式,并与合作投标模式、价格接受模式和集中调度模式进行对比。最后,基于一个38节点配电系统进行了仿真。仿真结果表明所提出的可调度潜力计算方法能够将电动汽车集群封装为广义储能设备,从而降低了模型的维度。基于可调度潜力的策略投标模型能够挖掘电动汽车的储荷潜力,实现电动汽车与电网的有序互动。

算例共分为7节,限于篇幅,介绍前3节内容。

第一节算例结果:

第二节算例结果:

第三节算例结果:

介绍到这里,您看出和其他相关介绍的区别了吗?

部分代码:

% %% 第七节,日前可调度潜力预测算法对比
% %算法1:个体
% clear
% clc
% close all
% load data_EV
% X_CS1=data_CS1.X;X_CS2=data_CS2.X;X_CS3=data_CS3.X;X_CS4=data_CS4.X;
% S0_CS1=data_CS1.S0;S0_CS2=data_CS2.S0;S0_CS3=data_CS3.S0;S0_CS4=data_CS4.S0;
% m1=length(S0_CS1);m2=length(S0_CS2);m3=length(S0_CS3);m4=length(S0_CS4);
% %充电站投标问题
% pch_CS1=sdpvar(m1,24);pdis_CS1=sdpvar(m1,24);%电动汽车个体的充放电功率
% pch_CS2=sdpvar(m2,24);pdis_CS2=sdpvar(m2,24);
% pch_CS3=sdpvar(m3,24);pdis_CS3=sdpvar(m3,24);
% pch_CS4=sdpvar(m4,24);pdis_CS4=sdpvar(m4,24);
% s_CS1=sdpvar(m1,24);s_CS2=sdpvar(m2,24);s_CS3=sdpvar(m3,24);s_CS4=sdpvar(m4,24);%电动汽车个体的SOC
% Pch=sdpvar(4,24);%充电站充电功率
% Pdis=sdpvar(4,24);%充电站放电功率
% Ccs=[Pch(1,:)==sum(pch_CS1),Pch(2,:)==sum(pch_CS2),Pch(3,:)==sum(pch_CS3),Pch(4,:)==sum(pch_CS4),
%     Pdis(1,:)==sum(pdis_CS1),Pdis(2,:)==sum(pdis_CS2),Pdis(3,:)==sum(pdis_CS3),Pdis(4,:)==sum(pdis_CS4),
%     0<=pch_CS1<=6.6*X_CS1,0<=pch_CS2<=6.6*X_CS2,0<=pch_CS3<=6.6*X_CS3,0<=pch_CS4<=6.6*X_CS4,
%     0<=pdis_CS1<=6.6*X_CS1,0<=pdis_CS2<=6.6*X_CS2,0<=pdis_CS3<=6.6*X_CS3,0<=pdis_CS4<=6.6*X_CS4,
%     s_CS1(:,1)==S0_CS1'+0.95*pch_CS1(:,1)-pdis_CS1(:,1)/0.95,
%     s_CS2(:,1)==S0_CS2'+0.95*pch_CS2(:,1)-pdis_CS2(:,1)/0.95,
%     s_CS3(:,1)==S0_CS3'+0.95*pch_CS3(:,1)-pdis_CS3(:,1)/0.95,
%     s_CS4(:,1)==S0_CS4'+0.95*pch_CS4(:,1)-pdis_CS4(:,1)/0.95,
%     s_CS1(:,2:24)==s_CS1(:,1:23)+0.95*pch_CS1(:,2:24)-pdis_CS1(:,2:24)/0.95,
%     s_CS2(:,2:24)==s_CS2(:,1:23)+0.95*pch_CS2(:,2:24)-pdis_CS2(:,2:24)/0.95,
%     s_CS3(:,2:24)==s_CS3(:,1:23)+0.95*pch_CS3(:,2:24)-pdis_CS3(:,2:24)/0.95,
%     s_CS4(:,2:24)==s_CS4(:,1:23)+0.95*pch_CS4(:,2:24)-pdis_CS4(:,2:24)/0.95,
%     32*0.15<=s_CS1<=32*0.9,32*0.15<=s_CS2<=32*0.9,32*0.15<=s_CS3<=32*0.9,32*0.15<=s_CS4<=32*0.9
%     sum(0.95*pch_CS1-pdis_CS1/0.95,2)==32*0.9-S0_CS1',
%     sum(0.95*pch_CS2-pdis_CS2/0.95,2)==32*0.9-S0_CS2',
%     sum(0.95*pch_CS3-pdis_CS3/0.95,2)==32*0.9-S0_CS3',
%     sum(0.95*pch_CS4-pdis_CS4/0.95,2)==32*0.9-S0_CS4'
%     ];%约束条件
% % %市场出清问题
% Loadcurve=[0.955391944564747,0.978345604157644,1,0.995019488956258,0.972932005197055,0.970333477695972,0.930489389346037,0.890428757037679,0.902771762667822,0.941966219142486,0.911000433087917,0.862061498484192,0.840190558683413,0.831095712429623,0.756604590731919,0.671719359029883,0.611520138588133,0.582936336076224,0.572542226071893,0.574707665656128,0.587267215244695,0.644218276310091,0.755521870939801,0.884798614118666];
% PL_base=[5.704;5.705;5.631;6.518;4.890;5.705;5.847]*1000;%负荷分布
% PL=PL_base*Loadcurve;%基础负荷
% Pf=sdpvar(7,24);%馈线功率
% Pf(1,:)=PL(1,:)+Pch(1,:)-Pdis(1,:);Pf(2,:)=PL(2,:);Pf(3,:)=PL(3,:);Pf(4,:)=PL(4,:)+Pch(2,:)-Pdis(2,:);Pf(5,:)=PL(5,:)+Pch(3,:)-Pdis(3,:);Pf(6,:)=PL(6,:);Pf(7,:)=PL(7,:)+Pch(4,:)-Pdis(4,:);%馈线功率组成
% Pf_limit=1000*[40,40,40,40,40,40,40]';%馈线功率限制
% Pg=sdpvar(10,24);%发电商分段电量
% Pg_step=1000*[20,5,3,2,2,2,2,2,2,100]';%报价区间
% Price_DSO=[3:12]'*0.1;%分段电价
% Lagrant_G_left=sdpvar(10,24);%发电商电量下界
% Lagrant_G_right=sdpvar(10,24);%发电商电量上界
% b_Lagrant_G_left=binvar(10,24);%发电商电量下界布尔变量
% b_Lagrant_G_right=binvar(10,24);%发电商电量上界布尔变量
% Lagrant_L_left=sdpvar(7,24);%线路功率下界
% Lagrant_L_right=sdpvar(7,24);%线路功率上界
% b_Lagrant_L_left=binvar(7,24);%线路功率上界布尔变量
% b_Lagrant_L_right=binvar(7,24);%线路功率下界布尔变量
% Lagrant_G=sdpvar(1,24);%平衡节点电价
% DLMP=sdpvar(7,24);%DLMP
% Ckkt=[sum(Pg)==sum(Pf),
%     0<=Pg<=Pg_step*ones(1,24),
%     Price_DSO*ones(1,24)-Lagrant_G_left+Lagrant_G_right-ones(10,1)*Lagrant_G==0,
%     DLMP==ones(7,1)*Lagrant_G+Lagrant_L_right-Lagrant_L_left,
%     Pg<=1E6*b_Lagrant_G_left,0<=Lagrant_G_left<=(1-b_Lagrant_G_left),
%     Pg_step*ones(1,24)-Pg<=1E6*b_Lagrant_G_right,0<=Lagrant_G_right<=(1-b_Lagrant_G_right),
%     -Pf_limit*ones(1,24)<=Pf<=Pf_limit*ones(1,24),
%     Pf+Pf_limit*ones(1,24)<=1E6*b_Lagrant_L_left,0<=Lagrant_L_left<=(1-b_Lagrant_L_left),
%     -Pf+Pf_limit*ones(1,24)<=1E6*b_Lagrant_L_right,0<=Lagrant_L_right<=(1-b_Lagrant_L_right)];%市场出清问题的KKT条件
% Obj=sum(sum((Price_DSO*ones(1,24)).*Pg))-sum(sum(DLMP.*PL))+sum(sum((Pg_step*ones(1,24)).*Lagrant_G_right))+sum(sum((Lagrant_L_left+Lagrant_L_right).*(Pf_limit*ones(1,24))));
% %求解问题
% C=[Ccs,Ckkt];%约束条件
% ops=sdpsettings('solver','cplex');
% result=solvesdp(C,Obj,ops);
% DLMP=double(DLMP);
% Lagrant_G=double(Lagrant_G);
% Pf=double(Pf);
% Pch=double(Pch);
% Pdis=double(Pdis);
% Pg=double(Pg);
% %实时调度
% load data_RT_potential
% load result_order
% Pch1=RT_CS1(96).Pch;Pdis1=RT_CS1(96).Pdis;Smin1=RT_CS1(96).Smin;Smax1=RT_CS1(96).Smax;dS1=RT_CS1(96).dS;%取最后一个时刻的可调度潜力
% Pch2=RT_CS2(96).Pch;Pdis2=RT_CS2(96).Pdis;Smin2=RT_CS2(96).Smin;Smax2=RT_CS2(96).Smax;dS2=RT_CS2(96).dS;
% Pch3=RT_CS3(96).Pch;Pdis3=RT_CS3(96).Pdis;Smin3=RT_CS3(96).Smin;Smax3=RT_CS3(96).Smax;dS3=RT_CS3(96).dS;
% Pch4=RT_CS4(96).Pch;Pdis4=RT_CS4(96).Pdis;Smin4=RT_CS4(96).Smin;Smax4=RT_CS4(96).Smax;dS4=RT_CS4(96).dS;
% Pchmax=[Pch1;Pch2;Pch3;Pch4];
% Pdismax=[Pdis1;Pdis2;Pdis3;Pdis4];
% Smin=[Smin1;Smin2;Smin3;Smin4];
% Smax=[Smax1;Smax2;Smax3;Smax4];
% dS=[dS1;dS2;dS3;dS4];
% Link=zeros(24,96);%时段换算矩阵(日前1h换算为实时15min)
% for i=1:24
%     Link(i,4*i-3:4*i)=1;
% end
% DA_Ps=Pch-Pdis;%日前调度数据
% DA_Ps=DA_Ps*Link;%时段换算
% DA_Pf=Pf*Link;%日前总功率
% %充电站投标问题
% Pch=sdpvar(4,96);%充电站充电功率
% Pdis=sdpvar(4,96);%充电站放电功率
% S=sdpvar(4,96);%充电站广义储能SOC
% Ccs=[0<=Pch<=Pchmax,0<=Pdis<=Pdismax,Smin<=S<=Smax,S(:,1)==0.95*0.25*Pch(:,1)-0.25*Pdis(:,1)/0.95+dS(:,1),S(:,2:96)==S(:,1:95)+0.25*0.95*Pch(:,2:96)-0.25*Pdis(:,2:96)/0.95+dS(:,2:96)];%约束条件
% % %市场出清问题
% Loadcurve=[0.955391944564747,0.978345604157644,1,0.995019488956258,0.972932005197055,0.970333477695972,0.930489389346037,0.890428757037679,0.902771762667822,0.941966219142486,0.911000433087917,0.862061498484192,0.840190558683413,0.831095712429623,0.756604590731919,0.671719359029883,0.611520138588133,0.582936336076224,0.572542226071893,0.574707665656128,0.587267215244695,0.644218276310091,0.755521870939801,0.884798614118666];
% Loadcurve=Loadcurve*Link;%换成96个时段
% PL_base=[5.704;5.705;5.631;6.518;4.890;5.705;5.847]*1000;%负荷分布
% PL=PL_base*Loadcurve;%基础负荷
% Pf=sdpvar(7,96);%馈线功率
% Pf(1,:)=PL(1,:)+Pch(1,:)-Pdis(1,:);Pf(2,:)=PL(2,:);Pf(3,:)=PL(3,:);Pf(4,:)=PL(4,:)+Pch(2,:)-Pdis(2,:);Pf(5,:)=PL(5,:)+Pch(3,:)-Pdis(3,:);Pf(6,:)=PL(6,:);Pf(7,:)=PL(7,:)+Pch(4,:)-Pdis(4,:);%馈线功率组成
% Pf_limit=1000*[40,40,40,40,40,40,40]';%馈线功率限制
% Pg=sdpvar(10,96);%发电商分段电量
% Pg_step=1000*[20,5,3,2,2,2,2,2,2,100]';%报价区间
% Price_DSO=[3:12]'*0.1;%分段电价
% Lagrant_G_left=sdpvar(10,96);%发电商电量下界
% Lagrant_G_right=sdpvar(10,96);%发电商电量上界
% b_Lagrant_G_left=binvar(10,96);%发电商电量下界布尔变量
% b_Lagrant_G_right=binvar(10,96);%发电商电量上界布尔变量
% Lagrant_L_left=sdpvar(7,96);%线路功率下界
% Lagrant_L_right=sdpvar(7,96);%线路功率上界
% b_Lagrant_L_left=binvar(7,96);%线路功率上界布尔变量
% b_Lagrant_L_right=binvar(7,96);%线路功率下界布尔变量
% Lagrant_G=sdpvar(1,96);%平衡节点电价
% DLMP=sdpvar(7,96);%DLMP
% Ckkt=[sum(Pg)==sum(Pf),
%     0<=Pg<=Pg_step*ones(1,96),
%     0.25*Price_DSO*ones(1,96)-Lagrant_G_left+Lagrant_G_right-ones(10,1)*Lagrant_G==0,
%     DLMP==ones(7,1)*Lagrant_G+Lagrant_L_right-Lagrant_L_left,
%     Pg<=1E6*b_Lagrant_G_left,0<=Lagrant_G_left<=(1-b_Lagrant_G_left),
%     Pg_step*ones(1,96)-Pg<=1E6*b_Lagrant_G_right,0<=Lagrant_G_right<=(1-b_Lagrant_G_right),
%     -Pf_limit*ones(1,96)<=Pf<=Pf_limit*ones(1,96),
%     Pf+Pf_limit*ones(1,96)<=1E6*b_Lagrant_L_left,0<=Lagrant_L_left<=(1-b_Lagrant_L_left),
%     -Pf+Pf_limit*ones(1,96)<=1E6*b_Lagrant_L_right,0<=Lagrant_L_right<=(1-b_Lagrant_L_right)];%市场出清问题的KKT条件
% Obj=0.25*sum(sum((Price_DSO*ones(1,96)).*Pg))-sum(sum(DLMP.*PL))+sum(sum((Pg_step*ones(1,96)).*Lagrant_G_right))+sum(sum((Lagrant_L_left+Lagrant_L_right).*(Pf_limit*ones(1,96))))+0.1*0.25*sum(sum(abs(Pch-Pdis-DA_Ps)));
% %求解问题
% C=[Ccs,Ckkt];%约束条件
% result=solvesdp(C,Obj);
% DLMP=double(DLMP);
% Lagrant_G=double(Lagrant_G);
% Pf=double(Pf);
% Pch=double(Pch);
% Pdis=double(Pdis);
% Pg=double(Pg);
% S=double(S);
% double(Obj)
% figure(1)%实时日前结果对比
% hold on
% plot(sum(Pf),'r.-')
% plot(sum(DA_Pf),'b--');
% Cost=sum(sum((Pf-PL).*DLMP));%总用电费用
% Cost_b=sum(sum(((Pf-PL)>0).*(Pf-PL).*DLMP))%总购电费用
% Cost_s=-sum(sum(((Pf-PL)<0).*(Pf-PL).*DLMP))%总售电收入
% Cost_r=0.1*0.25*sum(sum(abs(Pch-Pdis-DA_Ps)))%平衡费用
% MAPE=100*sum(abs((sum(DA_Pf)-sum(Pf))./sum(DA_Pf))/96);%平均百分误差
% %% 第七节,日前可调度潜力预测算法对比
% %算法2:群体
% clear
% clc
% close all
% load data_EV
% X_CS1=data_CS1.X;X_CS2=data_CS2.X;X_CS3=data_CS3.X;X_CS4=data_CS4.X;
% S0_CS1=data_CS1.S0;S0_CS2=data_CS2.S0;S0_CS3=data_CS3.S0;S0_CS4=data_CS4.S0;
% m1=length(S0_CS1);m2=length(S0_CS2);m3=length(S0_CS3);m4=length(S0_CS4);
% X=[sum(X_CS1);sum(X_CS2);sum(X_CS3);sum(X_CS4)];
% Energy=[32*0.9*m1-sum(S0_CS1);32*0.9*m2-sum(S0_CS2);32*0.9*m3-sum(S0_CS3);32*0.9*m4-sum(S0_CS4)];
% %充电站投标问题
% Pch=sdpvar(4,24);%充电站充电功率
% Pdis=sdpvar(4,24);%充电站放电功率
% Ccs=[0<=Pch<=6.6*X,
%     0<=Pdis<=6.6*X,
%     sum(Pch-Pdis,2)==Energy
%     ];%约束条件
% % %市场出清问题
% Loadcurve=[0.955391944564747,0.978345604157644,1,0.995019488956258,0.972932005197055,0.970333477695972,0.930489389346037,0.890428757037679,0.902771762667822,0.941966219142486,0.911000433087917,0.862061498484192,0.840190558683413,0.831095712429623,0.756604590731919,0.671719359029883,0.611520138588133,0.582936336076224,0.572542226071893,0.574707665656128,0.587267215244695,0.644218276310091,0.755521870939801,0.884798614118666];
% PL_base=[5.704;5.705;5.631;6.518;4.890;5.705;5.847]*1000;%负荷分布
% PL=PL_base*Loadcurve;%基础负荷
% Pf=sdpvar(7,24);%馈线功率
% Pf(1,:)=PL(1,:)+Pch(1,:)-Pdis(1,:);Pf(2,:)=PL(2,:);Pf(3,:)=PL(3,:);Pf(4,:)=PL(4,:)+Pch(2,:)-Pdis(2,:);Pf(5,:)=PL(5,:)+Pch(3,:)-Pdis(3,:);Pf(6,:)=PL(6,:);Pf(7,:)=PL(7,:)+Pch(4,:)-Pdis(4,:);%馈线功率组成
% Pf_limit=1000*[40,40,40,40,40,40,40]';%馈线功率限制
% Pg=sdpvar(10,24);%发电商分段电量
% Pg_step=1000*[20,5,3,2,2,2,2,2,2,100]';%报价区间
% Price_DSO=[3:12]'*0.1;%分段电价
% Lagrant_G_left=sdpvar(10,24);%发电商电量下界
% Lagrant_G_right=sdpvar(10,24);%发电商电量上界
% b_Lagrant_G_left=binvar(10,24);%发电商电量下界布尔变量
% b_Lagrant_G_right=binvar(10,24);%发电商电量上界布尔变量
% Lagrant_L_left=sdpvar(7,24);%线路功率下界
% Lagrant_L_right=sdpvar(7,24);%线路功率上界
% b_Lagrant_L_left=binvar(7,24);%线路功率上界布尔变量
% b_Lagrant_L_right=binvar(7,24);%线路功率下界布尔变量
% Lagrant_G=sdpvar(1,24);%平衡节点电价
% DLMP=sdpvar(7,24);%DLMP
% Ckkt=[sum(Pg)==sum(Pf),
%     0<=Pg<=Pg_step*ones(1,24),
%     Price_DSO*ones(1,24)-Lagrant_G_left+Lagrant_G_right-ones(10,1)*Lagrant_G==0,
%     DLMP==ones(7,1)*Lagrant_G+Lagrant_L_right-Lagrant_L_left,
%     Pg<=1E6*b_Lagrant_G_left,0<=Lagrant_G_left<=(1-b_Lagrant_G_left),
%     Pg_step*ones(1,24)-Pg<=1E6*b_Lagrant_G_right,0<=Lagrant_G_right<=(1-b_Lagrant_G_right),
%     -Pf_limit*ones(1,24)<=Pf<=Pf_limit*ones(1,24),
%     Pf+Pf_limit*ones(1,24)<=1E6*b_Lagrant_L_left,0<=Lagrant_L_left<=(1-b_Lagrant_L_left),
%     -Pf+Pf_limit*ones(1,24)<=1E6*b_Lagrant_L_right,0<=Lagrant_L_right<=(1-b_Lagrant_L_right)];%市场出清问题的KKT条件
% Obj=sum(sum((Price_DSO*ones(1,24)).*Pg))-sum(sum(DLMP.*PL))+sum(sum((Pg_step*ones(1,24)).*Lagrant_G_right))+sum(sum((Lagrant_L_left+Lagrant_L_right).*(Pf_limit*ones(1,24))));
% %求解问题
% C=[Ccs,Ckkt];%约束条件
% ops=sdpsettings('solver','cplex');
% result=solvesdp(C,Obj,ops);
% DLMP=double(DLMP);
% Lagrant_G=double(Lagrant_G);
% Pf=double(Pf);
% Pch=double(Pch);
% Pdis=double(Pdis);
% Pg=double(Pg);
% %实时调度
% load data_RT_potential
% load result_order
% Pch1=RT_CS1(96).Pch;Pdis1=RT_CS1(96).Pdis;Smin1=RT_CS1(96).Smin;Smax1=RT_CS1(96).Smax;dS1=RT_CS1(96).dS;%取最后一个时刻的可调度潜力
% Pch2=RT_CS2(96).Pch;Pdis2=RT_CS2(96).Pdis;Smin2=RT_CS2(96).Smin;Smax2=RT_CS2(96).Smax;dS2=RT_CS2(96).dS;
% Pch3=RT_CS3(96).Pch;Pdis3=RT_CS3(96).Pdis;Smin3=RT_CS3(96).Smin;Smax3=RT_CS3(96).Smax;dS3=RT_CS3(96).dS;
% Pch4=RT_CS4(96).Pch;Pdis4=RT_CS4(96).Pdis;Smin4=RT_CS4(96).Smin;Smax4=RT_CS4(96).Smax;dS4=RT_CS4(96).dS;
% Pchmax=[Pch1;Pch2;Pch3;Pch4];
% Pdismax=[Pdis1;Pdis2;Pdis3;Pdis4];
% Smin=[Smin1;Smin2;Smin3;Smin4];
% Smax=[Smax1;Smax2;Smax3;Smax4];
% dS=[dS1;dS2;dS3;dS4];
% Link=zeros(24,96);%时段换算矩阵(日前1h换算为实时15min)
% for i=1:24
%     Link(i,4*i-3:4*i)=1;
% end
% DA_Ps=Pch-Pdis;%日前调度数据
% DA_Ps=DA_Ps*Link;%时段换算
% DA_Pf=Pf*Link;%日前总功率
% %充电站投标问题
% Pch=sdpvar(4,96);%充电站充电功率
% Pdis=sdpvar(4,96);%充电站放电功率
% S=sdpvar(4,96);%充电站广义储能SOC
% Ccs=[0<=Pch<=Pchmax,0<=Pdis<=Pdismax,Smin<=S<=Smax,S(:,1)==0.95*0.25*Pch(:,1)-0.25*Pdis(:,1)/0.95+dS(:,1),S(:,2:96)==S(:,1:95)+0.25*0.95*Pch(:,2:96)-0.25*Pdis(:,2:96)/0.95+dS(:,2:96)];%约束条件
% % %市场出清问题
% Loadcurve=[0.955391944564747,0.978345604157644,1,0.995019488956258,0.972932005197055,0.970333477695972,0.930489389346037,0.890428757037679,0.902771762667822,0.941966219142486,0.911000433087917,0.862061498484192,0.840190558683413,0.831095712429623,0.756604590731919,0.671719359029883,0.611520138588133,0.582936336076224,0.572542226071893,0.574707665656128,0.587267215244695,0.644218276310091,0.755521870939801,0.884798614118666];
% Loadcurve=Loadcurve*Link;%换成96个时段
% PL_base=[5.704;5.705;5.631;6.518;4.890;5.705;5.847]*1000;%负荷分布
% PL=PL_base*Loadcurve;%基础负荷
% Pf=sdpvar(7,96);%馈线功率
% Pf(1,:)=PL(1,:)+Pch(1,:)-Pdis(1,:);Pf(2,:)=PL(2,:);Pf(3,:)=PL(3,:);Pf(4,:)=PL(4,:)+Pch(2,:)-Pdis(2,:);Pf(5,:)=PL(5,:)+Pch(3,:)-Pdis(3,:);Pf(6,:)=PL(6,:);Pf(7,:)=PL(7,:)+Pch(4,:)-Pdis(4,:);%馈线功率组成
% Pf_limit=1000*[40,40,40,40,40,40,40]';%馈线功率限制
% Pg=sdpvar(10,96);%发电商分段电量
% Pg_step=1000*[20,5,3,2,2,2,2,2,2,100]';%报价区间
% Price_DSO=[3:12]'*0.1;%分段电价
% Lagrant_G_left=sdpvar(10,96);%发电商电量下界
% Lagrant_G_right=sdpvar(10,96);%发电商电量上界
% b_Lagrant_G_left=binvar(10,96);%发电商电量下界布尔变量
% b_Lagrant_G_right=binvar(10,96);%发电商电量上界布尔变量
% Lagrant_L_left=sdpvar(7,96);%线路功率下界
% Lagrant_L_right=sdpvar(7,96);%线路功率上界
% b_Lagrant_L_left=binvar(7,96);%线路功率上界布尔变量
% b_Lagrant_L_right=binvar(7,96);%线路功率下界布尔变量
% Lagrant_G=sdpvar(1,96);%平衡节点电价
% DLMP=sdpvar(7,96);%DLMP
% Ckkt=[sum(Pg)==sum(Pf),
%     0<=Pg<=Pg_step*ones(1,96),
%     0.25*Price_DSO*ones(1,96)-Lagrant_G_left+Lagrant_G_right-ones(10,1)*Lagrant_G==0,
%     DLMP==ones(7,1)*Lagrant_G+Lagrant_L_right-Lagrant_L_left,
%     Pg<=1E6*b_Lagrant_G_left,0<=Lagrant_G_left<=(1-b_Lagrant_G_left),
%     Pg_step*ones(1,96)-Pg<=1E6*b_Lagrant_G_right,0<=Lagrant_G_right<=(1-b_Lagrant_G_right),
%     -Pf_limit*ones(1,96)<=Pf<=Pf_limit*ones(1,96),
%     Pf+Pf_limit*ones(1,96)<=1E6*b_Lagrant_L_left,0<=Lagrant_L_left<=(1-b_Lagrant_L_left),
%     -Pf+Pf_limit*ones(1,96)<=1E6*b_Lagrant_L_right,0<=Lagrant_L_right<=(1-b_Lagrant_L_right)];%市场出清问题的KKT条件
% Obj=0.25*sum(sum((Price_DSO*ones(1,96)).*Pg))-sum(sum(DLMP.*PL))+sum(sum((Pg_step*ones(1,96)).*Lagrant_G_right))+sum(sum((Lagrant_L_left+Lagrant_L_right).*(Pf_limit*ones(1,96))))+0.1*0.25*sum(sum(abs(Pch-Pdis-DA_Ps)));
% %求解问题
% C=[Ccs,Ckkt];%约束条件
% result=solvesdp(C,Obj);
% DLMP=double(DLMP);
% Lagrant_G=double(Lagrant_G);
% Pf=double(Pf);
% Pch=double(Pch);
% Pdis=double(Pdis);
% Pg=double(Pg);
% S=double(S);
% double(Obj)
% figure(1)%实时日前结果对比
% hold on
% plot(sum(Pf),'r.-')
% plot(sum(DA_Pf),'b--');
% Cost=sum(sum((Pf-PL).*DLMP));%总用电费用
% Cost_b=sum(sum(((Pf-PL)>0).*(Pf-PL).*DLMP))%总购电费用
% Cost_s=-sum(sum(((Pf-PL)<0).*(Pf-PL).*DLMP))%总售电收入
% Cost_r=0.1*0.25*sum(sum(abs(Pch-Pdis-DA_Ps)))%平衡费用
% MAPE=100*sum(abs((sum(DA_Pf)-sum(Pf))./sum(DA_Pf))/96);%平均百分误差

以上就是本次介绍的主要内容,欢迎关注下方公众号获取完整版代码,小编会继续推送更有质量的学习资料、文章和程序代码,为您的科研加油助力!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/173164.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker (简介、dcoker详细安装步骤)- day01

一、 为什么出现 Docker是基于Go语言实现的云开源项目。 Docker的主要目标是“Build&#xff0c;Ship and Run Any App,Anywhere”&#xff0c;也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理&#xff0c;使用户的APP&#xff08;可以是一个WEB应用或数据库应…

Git远程仓库常用开发命令和理解

远程仓库 创建与合并分支 每次提交&#xff0c;Git都把它们串成一条时间线&#xff0c;这条时间线就是一个分支。截止到目前&#xff0c;只有一条时间线&#xff0c;在Git里&#xff0c;这个分支叫主分支&#xff0c;即master分支。 HEAD严格来说不是指向提交&#xff0c;而…

01.vue3大事件——项目初始化、技术介绍

后台数据管理系统 - 项目架构设计 在线演示&#xff1a;https://fe-bigevent-web.itheima.net/login 接口文档: https://apifox.com/apidoc/shared-26c67aee-0233-4d23-aab7-08448fdf95ff/api-93850835 接口根路径&#xff1a; http://big-event-vue-api-t.itheima.net 本项…

工作流能实现自动化吗?应该用什么工具?

研究显示&#xff0c;CRM系统工作流自动化软件不仅能简化冗余的工作且不需要监控和指导就能提高员工的工作效率。企业需要工作流自动化软件吗&#xff1f;答案是肯定的&#xff0c;工作流自动化的好处有哪些&#xff1f; 为什么企业需要工作流自动化软件 每家企业都希望降本增…

企业营销管理能够实现自动化吗?怎么做?

当今企业面临着越来越多的营销难题&#xff1a;如何有效培育潜在客户、如何提高营销活动的效果、如何优化营销资源的分配......企业的营销管理怎么做&#xff1f;或许CRM系统营销自动化会起到作用。 客户细分&#xff1a; 企业可以通过CRM的客户细分功能&#xff0c;根据客户…

内衣洗衣机和手洗哪个干净?最好用的迷你洗衣机

随着大家工作的压力越来越大&#xff0c;下了班之后只能想躺平&#xff0c;在洗完澡之后看着还需要手洗的内衣裤真的很头疼。有些小伙伴还有会攒几天再丢进去洗衣机里面一起&#xff0c;而且这样子是非常不好的&#xff0c;用过的内衣裤长时间不清洗容易滋生细菌&#xff0c;而…

单片机学习3——数码管

数码管&#xff0c;根据内部结构&#xff0c;可分为共阴极数码管和共阳极数码管。七段发光管加上一个小数点&#xff0c;共计8段。因此&#xff0c;我们对它编程的时候&#xff0c;刚好是用一个字节。 数码管的显示方式&#xff1a; 1&#xff09;静态显示&#xff1b; 2&…

QT网络协议知识体系(一)

//获取主机的名称和ip地址 //获取主机的所有信息

终于等到你!常用的组织架构图模板,高清图片一键导出

组织架构图是一种用来展示一个组织内部人员和职责关系的图表。通过组织架构图&#xff0c;我们可以清晰地了解一个组织的层级架构和各个部门之间的关系。在本文中&#xff0c;我们将向大家推荐8个常用的组织架构图模板&#xff0c;帮助你快速制作出专业的组织架构图。 1. 市场营…

解决Linux Visual Studio Code显示字体有问题/Liunx下Visual Studio Code更换字体

01、具体问题 在Linux下VsCode控制台与代码区显示异常&#xff0c;如下图所示&#xff1a; 代码显示 终端显示 02、解决方案 下载字体 [rootlocalhost mhzzj]$ cd /usr/share/fonts # 进入目录 [rootlocalhost fonts]$ sudo yum install git # 下载字体 [rootlocalhost fo…

React入门使用 (官方文档向 Part1)

文章目录 React组件:万物皆组件 JSX: 将标签引入 JavaScriptJSX 规则1. 只能返回一个根元素2. 标签必须闭合3. 使用驼峰式命名法给 ~~所有~~ 大部分属性命名&#xff01;高级提示&#xff1a;使用 JSX 转化器 在 JSX 中通过大括号使用 JavaScript使用引号传递字符串使用大括号&…

招投标信息可以用CRM系统来查看吗?

对于B2B企业来说获客难、获客成本高是共识。做大客户的企业通过招投标获取商机是一个重要获客途径&#xff0c;然而传统方式管理招投标信息问题很多&#xff0c;例如资料丢失、手工录入出错、信息分散、信息查找费时费力。为了解决这些难题小编推荐CRM系统&#xff0c;CRM系统需…

Java基础之集合类

Java基础之集合类 一、集合的框架1.1、集合概述1.2、集合与数组区别1.3、数组的缺点&#xff1a;1.4、常用集合分类1.5、Collection常用方法 二、List集合2.1、ArrayList2.2、LinkedList2.3、Vector2.4、区别 三、Set集合3.1、HashSet集合3.2、LinkedHashSet集合3.3、TreeSet集…

Qt 网络通信

获取本机网络信息 &#xff08;1&#xff09;在 .pro 文件中加入 QT network&#xff08;2&#xff09; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug> #include <QLabel> #include <QLineEdit> #include <QPu…

C#中openFileDialog控件的使用方法

目录 一、OpenFileDialog基本属性 二、使用 OpenFile 从筛选的选择中打开文件 1.示例源码 2.生成效果 3. 其它示例 三、使用 StreamReader 以流的形式读取文件 1.示例源码 2.生成效果 四、一种新颖的Windows窗体应用文件设计方法 在C#中&#xff0c;OpenFileDialog控件…

vue3+tsx的使用

<template><div><xiaoman on-click"getItem" name"似懂非懂"></xiaoman></div> </template><script setup langts>import xiaoman from "./App"const getItem(item:any)>{console.log(item,it…

redis引发的一次生产事故,内存爆满

redis引发的一次生产事故 问题描述&#xff1a; 发版后回归测试&#xff0c;不定时出现token失效&#xff0c;导致自动退出到登录界面。如果操作的人员较多&#xff0c;token失效的就比较快&#xff0c;操作的人员较少token失效的相对较慢。 问题复现&#xff1a; 同一账号…

《C++PrimePlus》第10章 对象和类

10.1 过程性编程和面向对象编程 10.2 抽象和类 10.3 类的构造函数和析构函数 类的定义和使用&#xff08;买卖股票&#xff09; 头文件stock10.h #ifndef __STOCK00__H__ #define __STOCK00__H__#include <string>class Stock { // pravate的内容只能通过public访问 p…

js用到的算法

1.对象数组中&#xff0c;对象中有对象&#xff0c;数组根据对象中的对象打平 [{indexValueMap: { 68443: 0, 68457: 0 },rowName1: 固定收益类,rowName2: 交易类,rowName3: 次级},{indexValueMap: { 68443: 0, 68457: 0 },rowName1: 固定收益类,rowName2: 交易类,rowName3: 中…

虚幻学习笔记—点击场景3D物体的两种处理方式

一、前言 本文使用的虚幻引擎为5.3.2&#xff0c;两种方式分别为&#xff1a;点击根物体和精准点击目标物体。 二、实现 2.1、玩家控制器中勾选鼠标点击事件&#xff1a;这一步很重要&#xff0c;如图2.1.1所示&#xff1a;在自定义玩家控制器中勾 图2.1.1 选该项&#xff0c…