资源地址:
主要内容:
研究多辆电动汽车的充电调度问题,考虑某时段区域范围内有M 辆电动汽车发出充电请求时,周围有N 个充电桩可以提供充电位的调度情况。把当前调度时段电动汽车和充电桩的基本数据加载到调度中心,调度中心根据电动汽车的当前位置、电量剩余情况和周围充电桩的充电情况进行调度,电动汽车按照最优调度方案到充电桩充电。
本文的车辆充电调度问题是一个多目标优化非线性问题,可以用群智能优化算法来解决。因为每种调度方案都是一个M 行N 列的矩阵,为了解决智能体的构造问题,本文采用基于精英选择的遗传算法和非支配排序遗传算法求解问题,相比其他群智能优化算法,可以更方便的结合问题。
充电调度模型考虑优化4个性能指标,分别为:
电动汽车充电时长:包括驾驶时间、充电时间和等待时间;
电动汽车充电费用:包括停车费用和充电费用。
充电桩利用率偏差:避免多辆电动汽车挤占某些充电桩,使其余充电站空闲。造成资源浪费和过渡损耗。
电网平均负载: 避免加重电网负载,维护电网安全。
充电调度模型:
部分程序:
function [m,n,p,q] = genetic_algorithm_a(popsize,M,N,generation_size,cross_rate,mutate_rate, elitism)
global pop; %种群
global G ; % 当前迭代次数
global fitvalue_a; % 当前代适应度矩阵
global best_fitness; % 历代最佳适应值
global fitness_average; % 历代平均适应值矩阵
global Best_individual; % 历代最佳个体
global best_generation; % 最佳个体出现代
global best_index;
global best_f;
global best_Wait;
global best_fit1;
global best_fit2;
global best_fit3;
global best_fit4;
fitvalue2(popsize) = 0;
best_fitness=2;
best_f=zeros(generation_size,1);
best_generation = 0;
initpop(popsize,M,N); % 初始化
%% for G=1:generation_size
index_1(popsize,M,N);%对个体的行驶时间和充电时间排序
wait(popsize,M,N);
fitness(popsize, M,N);
fitness2(popsize, M,N);
fitness3(popsize, M,N);
fitness4(popsize, M,N);
fitness_a(popsize,M,N); % 计算适应度
rank_a(popsize,M,N); % 对个体按适应度大小进行排序
selection(popsize, M,N, elitism); % 选择操作
crossover(popsize,M,N, cross_rate);% 交叉操作
mutation(popsize,M,N, mutate_rate);% 变异操作
end
plotGA(generation_size);% 打印算法迭代过程
m = Best_individual % 获得最佳个体
n = best_fitness % 获得最佳适应度
p = best_generation % 获得最佳个体出现时的迭代次数
q = best_Wait
r = best_fit1
s = best_fit2
t = best_fit3
u = best_fit4
% 获得最佳个体变量值,对不同的优化目标,这里需要修改