目录
1 概述
2 数学模型
3 运行结果
4 Matlab代码实现
5 结论
6 全文阅读
在当前阶段,电动汽车通常被视为即插即充的常规负荷,这浪费了其可观的储荷能力"。研究表明,非快充需求的电动汽车停靠时间远大于其充电时间[2,因此可通过充电站管理电动汽车的充放
电功率,使电动汽车能作为灵活负荷参与电力零售市场投标l3'。而评估电动汽车集群的可调度潜力,直接影响了投标决策的可行性和灵活性4。因此,研究电动汽车集群可调度潜力的计算方法及相应的市场投标策略具有重要的意义。电动汽车的可调度潜力尚未有明确的定义。
一些学者将其定义为电动汽车参与电力系统运行调控时的动态能量平衡能力[5~7],另有学者则将其定义为电动汽车在价格激励下的充放电功率响应特性。例如文献[9]提出电动汽车是一种移动储能资源,并考虑其时空分布特性建立了有序充电模型。然而在当前预测水平下,电动汽车的空间分布难以准确估计,因此本文仅研究充电站内电动汽车的可调度潜力。可调度潜力的计算方法主要分为模型驱动方法[10-11l和数据驱动方法[12-13]。其中,模型驱动方法主要基于数学建模思想推演在多种因素影响下电动汽车的用能行为,但由于异质性问题的存在,模型驱动方法容易产生先验错误。数据驱动方法主要利用数据挖掘和统计学方法预测充放电功率曲线。然而电动汽车的可调度潜力并非是一组确定的充放电功率向量,而是所有可能的充放电决策构成的包络空间,现有的数据驱动方法未能考虑变量间隐含的约束关系,由此得到的调度计划可能难以实现。
详细数学模型及求解见全文阅读。
%%%完全竞争市场%%%
%%%价格接受者%%%
%%%日前调度,价格采用联合(独立)报价模式下的出清价格%%%
clear
clc
%决策变量
Pch=sdpvar(4,96);%各充电站充电电量
Pdis=sdpvar(4,96);%各充电站放电电量
S=sdpvar(4,96);%广义储能设备电量
%基本参数
load data_potential_DA
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(2,1:96)];%充电站放电报量上限
Smin=[Forecast_CS1(3,1:96);Forecast_CS2(3,1:96);Forecast_CS3(3,1:96);Forecast_CS4(3,1:96)];%充电站电量下限;
Smax=[Forecast_CS1(4,1:96);Forecast_CS2(4,1:96);Forecast_CS3(4,1:96);Forecast_CS4(4,1:96)];%充电站电量上限;
deltaS=[Forecast_CS1(5,1:96);Forecast_CS2(5,1:96);Forecast_CS3(5,1:96);Forecast_CS4(5,1:96)];%充电站电量变化量;
lastS=[Forecast_CS1(5,97);Forecast_CS2(5,97);Forecast_CS3(5,97);Forecast_CS4(5,97)];%第96个时段必须完成的充电量
price=[1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1,1,1,1,0.900000000000000,1,0.900000000000000,0.900000000000000,1,1,1,1,1,1,1,1,1,1,1,1,0.900000000000000,0.900000000000000,0.900000000000000,0.900000000000000,0.800000000000000,0.800000000000000,0.800000000000000,0.800000000000000,0.800000000000000,0.800000000000000,0.800000000000000,0.800000000000000,0.700000000000000,0.700000000000000,0.700000000000000,0.700000000000000,0.500000000000000,0.500000000000000,0.500000000000000,0.500000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.500000000000000,0.500000000000000,0.500000000000000,0.500000000000000,0.700000000000000,0.700000000000000,0.700000000000000,0.700000000000000,0.900000000000000,0.900000000000000,0.900000000000000,0.900000000000000];
%约束条件
Constraints=[0<=Pch<=Pchmax,0<=Pdis<=Pdismax,Smin<=S<=Smax,S(:,1)==0.25*0.95*Pch(:,1)-0.25*Pdis(:,1)/0.95+deltaS(:,1),
S(:,2:96)==S(:,1:95)+0.25*0.95*Pch(:,2:96)-0.25*Pdis(:,2:96)/0.95+deltaS(:,2:96),
0==S(:,96)+lastS];%充电站约束
%目标函数
Obj=sum(0.25*(Pch-Pdis)*price');%充电站各自目标
%求解模型
ops=sdpsettings('solver','gurobi','gurobi.OptimalityTol',1e-8,'gurobi.FeasibilityTol',1e-8,'gurobi.IntFeasTol',1e-8);
ops.gurobi.MIPGap=1e-8;
solvesdp(Constraints,Obj,ops);
result_DA_pricetaken.Pch=double(Pch);
result_DA_pricetaken.Pdis=double(Pdis);
result_DA_pricetaken.S=double(S);
save('result_DA_pricetaken','result_DA_pricetaken');
%%%完全竞争市场%%%
%%%价格接受者%%%
%%%日前调度,价格采用联合(独立)报价模式下的出清价格%%%
clear
clc
%决策变量
Pch=sdpvar(4,96);%各充电站充电电量
Pdis=sdpvar(4,96);%各充电站放电电量
S=sdpvar(4,96);%广义储能设备电量
%基本参数
load data_potential_DA
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(2,1:96)];%充电站放电报量上限
Smin=[Forecast_CS1(3,1:96);Forecast_CS2(3,1:96);Forecast_CS3(3,1:96);Forecast_CS4(3,1:96)];%充电站电量下限;
Smax=[Forecast_CS1(4,1:96);Forecast_CS2(4,1:96);Forecast_CS3(4,1:96);Forecast_CS4(4,1:96)];%充电站电量上限;
deltaS=[Forecast_CS1(5,1:96);Forecast_CS2(5,1:96);Forecast_CS3(5,1:96);Forecast_CS4(5,1:96)];%充电站电量变化量;
lastS=[Forecast_CS1(5,97);Forecast_CS2(5,97);Forecast_CS3(5,97);Forecast_CS4(5,97)];%第96个时段必须完成的充电量
price=[1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1,1,1,1,0.900000000000000,1,0.900000000000000,0.900000000000000,1,1,1,1,1,1,1,1,1,1,1,1,0.900000000000000,0.900000000000000,0.900000000000000,0.900000000000000,0.800000000000000,0.800000000000000,0.800000000000000,0.800000000000000,0.800000000000000,0.800000000000000,0.800000000000000,0.800000000000000,0.700000000000000,0.700000000000000,0.700000000000000,0.700000000000000,0.500000000000000,0.500000000000000,0.500000000000000,0.500000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.500000000000000,0.500000000000000,0.500000000000000,0.500000000000000,0.700000000000000,0.700000000000000,0.700000000000000,0.700000000000000,0.900000000000000,0.900000000000000,0.900000000000000,0.900000000000000];
%约束条件
Constraints=[0<=Pch<=Pchmax,0<=Pdis<=Pdismax,Smin<=S<=Smax,S(:,1)==0.25*0.95*Pch(:,1)-0.25*Pdis(:,1)/0.95+deltaS(:,1),
S(:,2:96)==S(:,1:95)+0.25*0.95*Pch(:,2:96)-0.25*Pdis(:,2:96)/0.95+deltaS(:,2:96),
0==S(:,96)+lastS];%充电站约束
%目标函数
Obj=sum(0.25*(Pch-Pdis)*price');%充电站各自目标
%求解模型
ops=sdpsettings('solver','gurobi','gurobi.OptimalityTol',1e-8,'gurobi.FeasibilityTol',1e-8,'gurobi.IntFeasTol',1e-8);
ops.gurobi.MIPGap=1e-8;
solvesdp(Constraints,Obj,ops);
result_DA_pricetaken.Pch=double(Pch);
result_DA_pricetaken.Pdis=double(Pdis);
result_DA_pricetaken.S=double(S);
save('result_DA_pricetaken','result_DA_pricetaken');
%%%完全竞争市场%%%
%%%价格接受者%%%
%%%日前调度,价格采用联合(独立)报价模式下的出清价格%%%
clear
clc
%决策变量
Pch=sdpvar(4,96);%各充电站充电电量
Pdis=sdpvar(4,96);%各充电站放电电量
S=sdpvar(4,96);%广义储能设备电量
%基本参数
load data_potential_DA
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(2,1:96)];%充电站放电报量上限
Smin=[Forecast_CS1(3,1:96);Forecast_CS2(3,1:96);Forecast_CS3(3,1:96);Forecast_CS4(3,1:96)];%充电站电量下限;
Smax=[Forecast_CS1(4,1:96);Forecast_CS2(4,1:96);Forecast_CS3(4,1:96);Forecast_CS4(4,1:96)];%充电站电量上限;
deltaS=[Forecast_CS1(5,1:96);Forecast_CS2(5,1:96);Forecast_CS3(5,1:96);Forecast_CS4(5,1:96)];%充电站电量变化量;
lastS=[Forecast_CS1(5,97);Forecast_CS2(5,97);Forecast_CS3(5,97);Forecast_CS4(5,97)];%第96个时段必须完成的充电量
price=[1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1.10000000000000,1,1,1,1,0.900000000000000,1,0.900000000000000,0.900000000000000,1,1,1,1,1,1,1,1,1,1,1,1,0.900000000000000,0.900000000000000,0.900000000000000,0.900000000000000,0.800000000000000,0.800000000000000,0.800000000000000,0.800000000000000,0.800000000000000,0.800000000000000,0.800000000000000,0.800000000000000,0.700000000000000,0.700000000000000,0.700000000000000,0.700000000000000,0.500000000000000,0.500000000000000,0.500000000000000,0.500000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.400000000000000,0.500000000000000,0.500000000000000,0.500000000000000,0.500000000000000,0.700000000000000,0.700000000000000,0.700000000000000,0.700000000000000,0.900000000000000,0.900000000000000,0.900000000000000,0.900000000000000];
%约束条件
Constraints=[0<=Pch<=Pchmax,0<=Pdis<=Pdismax,Smin<=S<=Smax,S(:,1)==0.25*0.95*Pch(:,1)-0.25*Pdis(:,1)/0.95+deltaS(:,1),
S(:,2:96)==S(:,1:95)+0.25*0.95*Pch(:,2:96)-0.25*Pdis(:,2:96)/0.95+deltaS(:,2:96),
0==S(:,96)+lastS];%充电站约束
%目标函数
Obj=sum(0.25*(Pch-Pdis)*price');%充电站各自目标
%求解模型
ops=sdpsettings('solver','gurobi','gurobi.OptimalityTol',1e-8,'gurobi.FeasibilityTol',1e-8,'gurobi.IntFeasTol',1e-8);
ops.gurobi.MIPGap=1e-8;
solvesdp(Constraints,Obj,ops);
result_DA_pricetaken.Pch=double(Pch);
result_DA_pricetaken.Pdis=double(Pdis);
result_DA_pricetaken.S=double(S);
save('result_DA_pricetaken','result_DA_pricetaken');
完整代码:电动汽车两阶段优化调度策略
本文基于闵可夫斯基求和提出J电M个A多叶可调度潜力的计算万法以及允电消)义H能以声比建模方法。同时比较」独辽投仍候八队B由J六式、价格接受模式和集中调度模式在两阶段电力零
售市场中的表现,得到了以下结论。
1)闵可夫斯基求和能够将电刭汽十养t心凤河广义储能设备,降低了模型的维度但1休田J文量 的约束关系,能保证充电站允以电划Hy1E 可靠性。
2)两阶段市场投标模式能够在保证充电站电能需求的同时发挥充电站的市场力,同时能通过价
格信号实现不同充电站之间的协调互济,实现市场主体的共赢。
3)独立投标模式缺乏协调性,导致了额外的电能费用。联合投标模式虽然能够进一步提高充电站整体的收益,但需要设计公平的利益分配机制以确保各主体的均衡,避免联盟关系的破裂。
今后的研究将会进一步考虑日前市场与实时市场的联动,在日前电力市场投标中考虑实时现货电价的不确定性,建立更具鲁棒性的两阶段市场策略投标模型。