当前位置 : 主页 > 编程语言 > python >

【有序充电】基于遗传算法实现小区充电优化控制附Matlab代码

来源:互联网 收集:自由互联 发布时间:2022-09-29
1 内容介绍 为了保证小区电动汽车充电时变压器不过载,提出基于遗传算法的小区电动汽车有序充电控制方法.在综合考虑用户充电需求的基础上,以不改变变压器供电容量和"削峰填谷"为

1 内容介绍

为了保证小区电动汽车充电时变压器不过载,提出基于遗传算法的小区电动汽车有序充电控制方法.在综合考虑用户充电需求的基础上,以不改变变压器供电容量和"削峰填谷"为目标,采用蒙特卡洛法模拟负荷并采用遗传算法求解电动汽车的最优充电时间,以实现小区内电动汽车的有序充电.分析结果表明,相比无序充电,所提方法能够在不改变变压器供电容量下,满足用户充电需求,并有效地实现"削峰填谷".

2 部分代码

clc

clear all

close all

%% 参数设置


E=82;% 为电池容量

Pc=7; %为充电功率大小

nn=0.9;%充电效率

I_SOC1=zeros(1,24);

dianhe=zeros(1,24);

for m=1:M

dianhe_wuxu1(1,:)=interp1(T,dianhe_wuxu(1,:),x1,'spline');

dianhe_wuxu1(2,:)=interp1(T,dianhe_wuxu(2,:),x1,'spline');

dianhe_wuxu1(3,:)=interp1(T,dianhe_wuxu(3,:),x1,'spline');

dianhe_youxu1(1,:)=interp1(T,dianhe_youxu(1,:),x1,'spline');

dianhe_youxu1(2,:)=interp1(T,dianhe_youxu(2,:),x1,'spline');

dianhe_youxu1(3,:)=interp1(T,dianhe_youxu(3,:),x1,'spline');


fuhe1(1,:)=interp1(T,fuhe(1,:),x1,'spline');

fuhe1(2,:)=interp1(T,fuhe(2,:),x1,'spline');

fuhe1(3,:)=interp1(T,fuhe(3,:),x1,'spline');

fuhe2=fuhe1.*1.2;

fuhe3=fuhe1.*1.5;

          figure(3)

plot(dianhe_wuxu1(1,:),'k--')

hold on

plot(dianhe_youxu1(1,:),'k-')

legend('无序充电','有序充电')

xlabel('时间/h')

ylabel('负荷/kW')

title('有序控制前后充电负荷对比(渗透率16.7% )')

figure(4)

plot(dianhe_wuxu1(2,:),'k--')

hold on

plot(dianhe_youxu1(2,:),'k-')

legend('无序充电','有序充电')

xlabel('时间/h')

ylabel('负荷/kW')

title('有序控制前后充电负荷对比( 渗透率33.3% )')

figure(6)

plot(dianhe_wuxu1(3,:),'k--')

hold on

plot(dianhe_youxu1(3,:),'k-')

legend('无序充电','有序充电')

xlabel('时间/h')

ylabel('负荷/kW')

title('有序控制前后充电负荷对比(渗透率66.7% )')

figure(7)

plot(fuhe1(1,:),'k-')

hold on

plot(fuhe1(2,:),'k-*')

plot(fuhe1(3,:),'k--')

legend('有序充电','无序充电','基础电荷')

xlabel('时间/h')

ylabel('负荷/kW')

title('有序控制前后总负荷曲线(渗透率16.7% )')

figure(8)

plot(fuhe2(1,:),'k-')

hold on

plot(fuhe2(2,:),'k-*')

plot(fuhe2(3,:),'k--')

legend('有序充电','无序充电','基础电荷')

xlabel('时间/h')

ylabel('负荷/kW')

title('有序控制前后总负荷曲线(渗透率33.6% )')

figure(9)

plot(fuhe3(1,:),'k-')

hold on

plot(fuhe3(2,:),'k-*')

plot(fuhe3(3,:),'k--')

legend('有序充电','无序充电','基础电荷')

xlabel('时间/h')

ylabel('负荷/kW')

title('有序控制前后总负荷曲线(渗透率50% )')


    iter = iter+1;

    times=times+1;

end

disp(['上层优化目标函数最小值:',num2str(fym)]);

disp(['主站有序充电控制中心下发的功率指导曲线中的指导负荷:',num2str(ym)]);

figure(2)

plot(record)

xlabel('迭代次数');

ylabel('适应度值')

title('上层优化目标函数迭代曲线')


figure(1)

plot(dianhe)

hold on

plot(ym,'--')

legend('无序充电','有序充电')

xlabel('时间/h')

ylabel('负荷/kW')

3 运行结果

【有序充电】基于遗传算法实现小区充电优化控制附Matlab代码_迭代

【有序充电】基于遗传算法实现小区充电优化控制附Matlab代码_遗传算法_02

【有序充电】基于遗传算法实现小区充电优化控制附Matlab代码_迭代_03

【有序充电】基于遗传算法实现小区充电优化控制附Matlab代码_遗传算法_04

【有序充电】基于遗传算法实现小区充电优化控制附Matlab代码_迭代_05

4 参考文献

[1]王劲峰, 谢诗雨, 李君豪,等. 基于遗传算法的小区电动汽车有序充电策略[J]. 低压电器, 2019, 000(010):47-50.

部分理论引用网络文献,若有侵权联系博主删除。


网友评论