简介
本程序代码参考EI期刊论文《考虑电动汽车可调度潜力的充电站两阶段市场投标策略》,程序中基于历史数据评估可调度潜力,由联合报价模型确定节点边际电价,作为报价的参考,包含个体竞价模式,纳什博弈竞价,算例丰富,注释清晰,干货满满!下面对程序代码和文章进行简要介绍!
运行平台:MATLAB+Cplex+Yalmip;或者:MATLAB+Gurobi+Yalmip;
有很多公证号介绍了该程序代码,差别从运行平台开始,懂得都懂!
使用两种求解器对模型进行求解,均可以得到良好效果!
在电力市场环境下,充电站优化投标策略能降低电力成本,甚至通过售电获取收益。文中考虑了电动汽车成为柔性储荷资源的潜力,提出了日前电力市场和实时电力市场下充电站的投标策略。首先,基于闵可夫斯基加法提出了充电站内电动汽车集群模型的压缩方法,并建立了日前可调度潜力预测模型和实时可调度潜力评估模型。同时,考虑充电站间的非合作博弈,建立了电力零售市场下充电站的策略投标模型,并基于驻点法将其转化为一个广义Nash均衡问题。然后,提出了基于日前报价和实时报量的两阶段市场交易模式,并与合作投标模式、价格接受模式和集中调度模式进行对比。最后,基于一个38节点配电系统进行了仿真。仿真结果表明所提出的可调度潜力计算方法能够将电动汽车集群封装为广义储能设备,从而降低了模型的维度。基于可调度潜力的策略投标模型能够挖掘电动汽车的储荷潜力,实现电动汽车与电网的有序互动。
文中结果
程序结果
算例共分为7节,限于篇幅,介绍前3节内容。
第一节算例结果
第二节算例结果
第三节算例结果
介绍到这里,您看出和其他相关介绍的区别了吗?
部分程序
%% 第七节,日前可调度潜力预测算法对比
%算法2:群体
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);%充电站放电功率
];%约束条件
% %市场出清问题
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]';%报价区间
'*0.1;%分段电价 Price_DSO=[3:12]
b_Lagrant_L_left=binvar(7,24);%线路功率上界布尔变量
b_Lagrant_L_right=binvar(7,24);%线路功率下界布尔变量
Lagrant_G=sdpvar(1,24);%平衡节点电价
%求解问题
C=[Ccs,Ckkt];%约束条件
ops=sdpsettings('solver','cplex');
%实时调度
Link=zeros(24,96);%时段换算矩阵(日前1h换算为实时15min)
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);%平衡节点电价
%求解问题
C=[Ccs,Ckkt];%约束条件
figure(1)%实时日前结果对比
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);%平均百分误差
部分内容源自网络,侵权联系删除!
欢迎感兴趣的小伙伴点击文末阅读原文获取完整版代码,小编会不定期更新高质量的学习资料、文章和程序代码,为您的科研加油助力!
更多创新性预测及优化程序请点击公众号首页:《预测优化》|《综合能源》链接!