电力市场中考虑CVaR风险约束的发电企业投标优化模型

需积分: 9 0 下载量 128 浏览量 更新于2024-08-12 收藏 1.01MB PDF 举报
"带条件风险约束的发电商最优投标模型及计算 (2010年)" 这篇2010年的论文探讨了电力市场中发电公司的投标策略,尤其关注如何在考虑风险的情况下实现最优投标。论文的核心是引入条件风险值(Conditional Value-at-Risk, CVaR)作为衡量风险的指标,这比传统的风险度量如Value-at-Risk (VaR) 更具优势,因为它能更全面地捕捉潜在损失。 论文构建了一个双层优化模型来解决发电公司的投标问题。上层模型的目标是最大化社会福利同时最小化风险,这反映了电力市场的宏观调控需求。下层模型则专注于发电公司的微观决策,旨在最大化其利润。这种双层结构反映出市场竞争与监管之间的平衡。 为了处理这个复杂的双层优化问题,研究者采用了启发式粒子群优化算法(Particle Swarm Optimization, PSO)。PSO是一种全局优化算法,能够有效地搜索多维度的解决方案空间,对于此类非线性和复杂的问题尤为适用。 在实际应用中,研究者在4节点2机系统和9节点3机系统上进行了实验,结果显示该模型和PSO算法在计算效率和结果准确性上都有良好的表现。通过对实验数据的比较分析,论文得出结论:CVaR比VaR更能准确地评估发电商面临的市场风险。 该研究对于电力市场的运营者、政策制定者以及发电公司具有重要的理论和实践意义,它提供了在考虑风险因素下的投标策略优化方法,并验证了使用PSO算法的有效性。此外,这种风险约束的投标模型对于其他类似需要在风险控制下优化决策的领域也具有一定的参考价值。

请解释分析下面这段程序:%%%通过合作方式最优竞标%%% %%%目的是得到参考节点边际电价,以作为参考报价%%% clear clc load data_potential_DA %决策变量 pi_DA=sdpvar(4,96);%投标决策 S=sdpvar(4,96);%广义储能设备电量 Pg=sdpvar(10,96);%发电商分段电量 Pf=sdpvar(7,96);%馈线功率 Pch=sdpvar(4,96);%各充电站出清充电电量 Pdis=sdpvar(4,96);%各充电站出清放电电量 Lagrant_balance=sdpvar(7,96);%功率平衡约束的拉格朗日乘子 DLMP=Lagrant_balance/0.25;%配电网节点边际电价 Lagrant_G=sdpvar(1,96);%平衡节点拉格朗日乘子 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_ch_left=sdpvar(4,96);%充电站充电功率下界 Lagrant_ch_right=sdpvar(4,96);%充电站充电功率上界 b_Lagrant_ch_left=binvar(4,96);%充电站充电功率下界布尔变量 b_Lagrant_ch_right=binvar(4,96);%充电站充电功率上界布尔变量 Lagrant_dis_left=sdpvar(4,96);%充电站放电功率下界 Lagrant_dis_right=sdpvar(4,96);%充电站放电功率上界 b_Lagrant_dis_left=binvar(4,96);%充电站放电功率下界布尔变量 b_Lagrant_dis_right=binvar(4,96);%充电站放电功率上界布尔变量 %基本参数 Link=zeros(24,96);%时段换算矩阵(日前1h换算为实时15min) for i=1:24 Link(i,4*i-3:4*i)=1; end 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;%基础负荷(负荷曲线从08:00开始算起,即第9个时段) Pf_limit=1000*[40,40,40,40,40,40,40]';%馈线功率限制 Pg_step=1000*[20,5,3,2,2,2,2,2,2,100]';%报价区间 Price_DSO=[3:12]'*0.1;%分段电价 Pchmax=[Forecast_CS1(1,1:96);Forecast_CS2(1,1:96);Forecast_CS3(1,1:96);Forecast_CS4(1,1:96)];%充电站充电报量上限 Pdismax=[Forecast_CS1(2,1:96);Forecast_CS2(2,1:96);Forecast_CS3(2,1:96);Forecast_CS4

2023-06-14 上传

请解释分析下面这段程序:%%%无序充电投标 clear clc load data_disorder Pch=[Pch_CS1_disorder;Pch_CS2_disorder;Pch_CS3_disorder;Pch_CS4_disorder];%充电站充电功率 %市场出清问题 Link=zeros(24,96);%时段换算矩阵(日前1h换算为实时15min) for i=1:24 Link(i,4*i-3:4*i)=1; end 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;%基础负荷(负荷曲线从08:00开始算起,即第9个时段) Pf=sdpvar(7,96);%馈线功率 Pf(1,:)=PL(1,:)+Pch(1,:);Pf(2,:)=PL(2,:);Pf(3,:)=PL(3,:);Pf(4,:)=PL(4,:)+Pch(2,:);Pf(5,:)=PL(5,:)+Pch(3,:);Pf(6,:)=PL(6,:);Pf(7,:)=PL(7,:)+Pch(4,:);%馈线功率组成 Pg=sdpvar(10,96);%发电商分段电量 Pg_step=1000*[20,5,3,2,2,2,2,2,2,inf]';%报价区间 Price_DSO=[3:12]'*0.1;%分段电价 Obj=0.25*sum(sum((Price_DSO*ones(1,96)).*Pg));%目标为用电费用最小 Constraint=[0<=Pg<=Pg_step*ones(1,96),sum(Pg)==sum(Pf)];%约束条件 optimize(Constraint,Obj);%求解线性规划问题 Pg=double(Pg);%发电机功率 Pf=double(Pf);%馈线功率 isPg=(Pg>0);%为了计算出清电价,计算发电机分段选择情况 DLMP=sum(isPg)/10+0.2;%出清电价计算 %绘图 figure(1)%节点边际电价 stairs(DLMP); xlabel 时间 ylabel 电价(元/kWh) ylim([0.3,1.3]) figure(2)%负荷曲线 hold on plot(sum(PL)/1000); plot(sum(Pf)/1000,'r.-'); xlabel 时间 ylabel 负荷(MW) legend('基础负荷','无序充电负荷') Cost=sum(sum(Pch).*DLMP);%总用电费用 result_disorder.Cost=Cost;result_disorder.DLMP=DLMP;result_disorder.Pf=Pf;result_disorder.Pg=Pg;%结果保存 save('result_disorder','result_disorder');

2023-06-14 上传