%论文复现
%双层博弈,KKT条件
%魏韡, 陈玥, 刘锋, et al. 基于主从博弈的智能小区代理商定价策略及电动汽车充电管理[J]. 电网技术, 2015(4).
clear
clc
price_day_ahead=[0.35;0.33;0.3;0.33;0.36;0.4;0.44;0.46;0.52;0.58;0.66;0.75;0.81;0.76;0.8;0.83;0.81;0.75;0.64;0.55;0.53;0.47;0.40;0.37];
price_b=1.2*price_day_ahead;
price_s=1.2*price_day_ahead;
lb=0.8*price_day_ahead;
ub=1.2*price_day_ahead;
T_1=[1;1;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;1;1];
T_2=[1;1;1;1;1;1;1;1;0;0;0;0;1;1;1;0;0;0;0;1;1;1;1;1];
T_3=[0;0;0;0;0;0;0;1;1;1;1;1;1;1;1;1;1;1;1;1;0;0;0;0];
index1=find(T_1==0);index2=find(T_2==0);index3=find(T_3==0);
Ce=sdpvar(24,1);%电价
z=binvar(24,1);%购售电状态
u=binvar(24,1);%储能状态
Pb=sdpvar(24,1);%日前购电
Pb_day=sdpvar(24,1);%实时购电
Ps_day=sdpvar(24,1);%实时售电
Pdis=sdpvar(24,1);%储能放电
Pch=sdpvar(24,1);%储能充电
Pc1=sdpvar(24,1);%一类车充电功率
Pc2=sdpvar(24,1);%二类车充电功率
Pc3=sdpvar(24,1);%三类车充电功率
S=sdpvar(24,1);%储荷容量
for t=2:24
S(t)=S(t-1)+0.9*Pch(t)-Pdis(t)/0.9;
end
C=[lb<=Ce<=ub,mean(Ce)==0.5,Pb>=0,Ps_day<=Pdis,Pb_day>=0,Pb_day<=1000*z,Ps_day>=0,Ps_day<=1000*(1-z),Pch>=0,Pch<=1000*u,Pdis>=0,Pdis<=1000*(1-u)];%边界约束
C=[C,Pc1+Pc2+Pc3+Pch-Pdis==Pb+Pb_day-Ps_day];%能量平衡
C=[C,sum(0.9*Pch-Pdis/0.9)==0,S(24)==2500,S>=0,S<=5000];%SOC约束
L_u=sdpvar(1,3);%电量需求等式约束的拉格朗日函数
L_lb=sdpvar(24,3);%充电功率下限约束的拉格朗日函数
L_ub=sdpvar(24,3);%充电功率上限约束的拉格朗日函数
L_T=sdpvar(24,3);%充电可用时间约束的拉格朗日函数
f=50*L_u(1)*(0.9*24-9.6)+20*L_u(2)*(0.9*24-9.6)+10*L_u(3)*(0.9*24-9.6)+sum(sum(L_ub).*[50*3,20*3,10*3])+sum(price_s.*Ps_day-price_day_ahead.*Pb-price_b.*Pb_day);%目标函数
C=[C,Ce-L_u(1)*ones(24,1)-L_lb(:,1)-L_ub(:,1)-L_T(:,1)==0,Ce-L_u(2)*ones(24,1)-L_lb(:,2)-L_ub(:,2)-L_T(:,2)==0,Ce-L_u(3)*ones(24,1)-L_lb(:,3)-L_ub(:,3)-L_T(:,3)==0];%KKT条件
C=[C,sum(Pc1)==50*(0.9*24-9.6),sum(Pc2)==20*(0.9*24-9.6),sum(Pc3)==10*(0.9*24-9.6)];%电量需求约束
for t=1:24
if T_1(t)==0
C=[C,Pc1(t)==0];
else
C=[C,L_T(t,1)==0];
end
if T_2(t)==0
C=[C,Pc2(t)==0];
else
C=[C,L_T(t,2)==0];
end
if T_3(t)==0
C=[C,Pc3(t)==0];
else
C=[C,L_T(t,3)==0];
end
end
b_lb=binvar(24,3);%充电功率下限约束的松弛变量
b_ub=binvar(24,3);%充电功率上限约束的松弛变量
M=1000;
for t=1:24
if T_1(t)==0
C=[C,L_ub(t,1)==0,b_ub(t,1)==1,b_lb(t,1)==1];
else
C=[C,L_lb(t,1)>=0,L_lb(t,1)<=M*b_lb(t,1),Pc1(t)>=0,Pc1(t)<=M*(1-b_lb(t,1)),Pc1(t)<=50*3,50*3-Pc1(t)<=M*b_ub(t,1),L_ub(t,1)<=0,L_ub(t,1)>=M*(b_ub(t,1)-1)];
end
if T_2(t)==0
C=[C,L_ub(t,2)==0,b_ub(t,2)==1,b_lb(t,2)==1];
else
C=[C,L_lb(t,2)>=0,L_lb(t,2)<=M*b_lb(t,2),Pc2(t)>=0,Pc2(t)<=M*(1-b_lb(t,2)),Pc2(t)<=20*3,20*3-Pc2(t)<=M*b_ub(t,2),L_ub(t,2)<=0,L_ub(t,2)>=M*(b_ub(t,2)-1)];
end
if T_3(t)==0
C=[C,L_ub(t,3)==0,b_ub(t,3)==1,b_lb(t,3)==1];
else
C=[C,L_lb(t,3)>=0,L_lb(t,3)<=M*b_lb(t,3),Pc3(t)>=0,Pc3(t)<=M*(1-b_lb(t,3)),Pc3(t)<=10*3,10*3-Pc3(t)<=M*b_ub(t,3),L_ub(t,3)<=0,L_ub(t,3)>=M*(b_ub(t,3)-1)];
end
end
ops=sdpsettings('solver','cplex');
solvesdp(C,-f,ops);
Pc=[double(Pc1),double(Pc2),double(Pc3)];
Pb=double(Pb);
Ps_day=double(Ps_day);
Pb_day=double(Pb_day);
S=double(S);
Pch=double(Pch);
Pdis=double(Pdis);
Cost_total=double(f)
Price_Charge=double(Ce);
Ce=sdpvar(24,1);%电价
z=binvar(24,1);%购售电状态
u=binvar(24,1);%储能状态
Pb=sdpvar(24,1);%日前购电
Pb_day=sdpvar(24,1);%实时购电
Ps_day=sdpvar(24,1);%实时售电
Pdis=sdpvar(24,1);%储能放电
Pch=sdpvar(24,1);%储能充电
Pc1=sdpvar(24,1);%一类车充电功率
Pc2=sdpvar(24,1);%二类车充电功率
Pc3=sdpvar(24,1);%三类车充电功率
S=sdpvar(24,1);%储荷容量
for t=2:24
S(t)=S(t-1)+0.9*Pch(t)-Pdis(t)/0.9;
end
%内层
CI=[sum(Pc1)==50*(0.9*24-9.6),sum(Pc2)==20*(0.9*24-9.6),sum(Pc3)==10*(0.9*24-9.6),Pc1>=0,Pc2>=0,Pc3>=0,Pc1<=50*3,Pc2<=20*3,Pc3<=10*3,Pc1(index1)==0,Pc2(index2)==0,Pc3(index3)==0];%电量需求约束
OI=sum(Ce.*(Pc1+Pc2+Pc3));
ops=sdpsettings('solver','gurobi','kkt.dualbounds',0);
[K,details] = kkt(CI,OI,Ce,ops);%建立KKT系统,Ce为参量
%外层
CO=[lb<=Ce<=ub,mean(Ce)==0.5,Pb>=0,Ps_day<=Pdis,Pb_day>=0,Pb_day<=1000*z,Ps_day>=0,Ps_day<=1000*(1-z),Pch>=0,Pch<=1000*u,Pdis>=0,Pdis<=1000*(1-u)];%边界约束
CO=[CO,Pc1+Pc2+Pc3+Pch-Pdis==Pb+Pb_day-Ps_day];%能量平衡
CO=[CO,sum(0.9*Pch-Pdis/0.9)==0,S(24)==2500,S>=0,S<=5000];%SOC约束
OO=-(details.b'*details.dual+details.f'*details.dualeq)+sum(price_s.*Ps_day-price_day_ahead.*Pb-price_b.*Pb_day);%目标函数
optimize([K,CI,CO,boundingbox([CI,CO]),details.dual<=1],-OO)
Ce=value(Ce);%电价
Pb=value(Pb);%日前购电
Pb_day=value(Pb_day);%实时购电
Ps_day=value(Ps_day);%实时购电
Pdis=value(Pdis);%储能放电
Pch=value( Pch);%储能充电
Pb_day=value(Pb_day);%实时购电
Pb_day=value(Pb_day);%实时购电
Pc1=value(Pc1);%一类车充电功率
Pc2=value(Pc2);%二类车充电功率
Pc3=value(Pc3);%三类车充电功率
S=value(S);%储荷容量
figure(1)
plot(Pc1,'-*','linewidth',1.5)
grid
hold on
plot(Pc2,'-*','linewidth',1.5)
hold on
plot(Pc3,'-*','linewidth',1.5)
title('三类电动汽车充电功率')
legend('类型1','类型2','类型3')
xlabel('时间')
ylabel('功率')
figure(2)
bar(Pdis,0.5,'linewidth',0.01)
grid
hold on
bar(Pch,0.5,'linewidth',0.01)
hold on
plot(S,'-*','linewidth',1.5)
axis([0.5 24.5 0 5000]);
title('储能充电功率')
legend('充电功率','放电功率','蓄电量')
xlabel('时间')
ylabel('功率')
figure(3)
yyaxis left;
bar(Pb_day,0.5,'linewidth',0.01)
hold on
bar(Ps_day,0.5,'linewidth',0.01)
axis([0.5 24.5 0 1200])
xlabel('时间')
ylabel('功率')
yyaxis right;
plot(Ce,'-*','linewidth',1.5)
% legend('电价结果')
xlabel('时间')
ylabel('电价')
legend('日前购电','日前售电','电价优化');
figure(4)
plot(Ce,'-*','linewidth',1.5)
grid
hold on
plot(price_b,'-*','linewidth',1.5)
hold on
plot(price_s,'-*','linewidth',1.5)
title('电价优化结果')
legend('优化电价','购电电价','售电电价')
xlabel('时间')
ylabel('电价')
% clear ans b_lb b_ub C Ce f L_lb L_ub L_T L_u lb M ops Pc1 Pc2 Pc3 price_b price_day_ahead price_s t T_1 T_2 T_3 u ub z
没有合适的资源?快使用搜索试试~ 我知道了~
15.基于主从博弈的智能小区代理商定价策略及电动汽车充电管理.zip
共4个文件
m:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 4 下载量 197 浏览量
2023-07-14
20:20:39
上传
评论
收藏 7KB ZIP 举报
温馨提示
MATLAB代码:基于主从博弈的智能小区代理商定价策略及电动汽车充电管理 关键词:电动汽车 主从博弈 动态定价 智能小区 充放电优化 参考文档:《基于主从博弈的智能小区代理商定价策略及电动汽车充电管理》基本复现 仿真平台:MATLAB+CPLEX/gurobi平台 优势:代码具有一定的深度和创新性,注释清晰,非烂大街的代码,非常精品! 主要内容:代码主要做的是一个电动汽车充电管理和智能小区代理商动态定价的问题,将代理商和车主各自追求利益最大化建模为主从博弈,上层以代理商的充电电价作为优化变量,下层以电动汽车的充电策略作为优化变量,通过优化得出最优电价策略以及动态充电策略,代码出图效果非常好,店主已经对代码进行了深入的加工和处理,出图效果非常好,代码质量非常高,保姆级的注释以及人性化的模块子程序,所有数据均有可靠来源,下单后会直接发您资料,保证您学得会,用的起来,简直是萌新福利!
资源推荐
资源详情
资源评论
收起资源包目录
15.基于主从博弈的智能小区代理商定价策略及电动汽车充电管理.zip (4个子文件)
15.基于主从博弈的智能小区代理商定价策略及电动汽车充电管理
solve_NLP.m 3KB
Leadship_Game_PST.m 6KB
solve.m 5KB
stackelberg.m 3KB
共 4 条
- 1
资源评论
- 5514_6G2024-01-22资源中能够借鉴的内容很多,值得学习的地方也很多,大家一起进步!
- qq_448000952023-11-23感谢资源主分享的资源解决了我当下的问题,非常有用的资源。
- 猴小白呀2023-10-24资源内容总结的很到位,内容详实,很受用,学到了~
- m0_652513342023-10-28资源和描述一致,质量不错,解决了我的问题,感谢资源主。
程高兴
- 粉丝: 520
- 资源: 463
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功