✅作者简介:热爱数据处理、建模、算法设计的Matlab仿真开发者。
🍎更多Matlab代码及仿真咨询内容点击 🔗:Matlab科研工作室
🍊个人信条:格物致知。
🔥 内容介绍
摘要
随着城市轨道交通的快速发展,地铁牵引能耗已成为城市轨道交通运营成本的重要组成部分。为了降低地铁牵引能耗,本文提出了一种基于多目标粒子群算法的地铁牵引能耗优化方法。该方法首先建立了地铁牵引能耗优化模型,然后利用多目标粒子群算法对优化模型进行求解,最后通过仿真验证了该方法的有效性。
1. 地铁牵引能耗优化模型
地铁牵引能耗优化模型是一个多目标优化模型,其目标函数包括:
-
最小化地铁牵引能耗
-
最小化地铁运行时间
-
最小化地铁运行成本
约束条件包括:
-
地铁运行速度不能超过最大速度
-
地铁运行加速度不能超过最大加速度
-
地铁运行减速度不能超过最大减速度
-
地铁运行时间不能超过最长时间
2. 多目标粒子群算法
多目标粒子群算法是一种多目标优化算法,其基本原理是:
-
初始化粒子群,每个粒子表示一个候选解。
-
计算每个粒子的适应度值。
-
更新每个粒子的速度和位置。
-
重复步骤2和步骤3,直到达到终止条件。
3. 基于多目标粒子群算法的地铁牵引能耗优化方法
基于多目标粒子群算法的地铁牵引能耗优化方法的步骤如下:
-
初始化粒子群,每个粒子表示一个候选解。
-
计算每个粒子的适应度值。
-
更新每个粒子的速度和位置。
-
重复步骤2和步骤3,直到达到终止条件。
-
选择最优解作为地铁牵引能耗优化方案。
📣 部分代码
clc
clear;
close all;
t0=cputime;
%参数初始化
arginitial();
%限速和坡度约束处理,并且保存处理结果
CacBrakeSpeedLimit();
[Emax,Tmin]=CacMinTime();
%多目标粒子群算法参数
options.PopulationSize = 10; %种群大小
options.MaxGenerations = 10; %算法最大迭代次数
options.Continue = 0 ; %是否继续原来的优化,如果要继续则要传入种群options.Pop和速度参数options.Veo
%正式开始优化
for num=1:1
disp(['运行次数:',num2str(num)]);
[res,pos,velo]=PSO_d(options);
figure('Name','优化结果');
[flag,Energy,Time,MissError,overSpeed,sw,jerk] = CalcEJT(res,1);
fitness = CacFitNess(Energy,Time,MissError,overSpeed,jerk);
disp(['运行能耗:',num2str(Energy),' 运行时间:',num2str(Time), ' 停车误差:',num2str(MissError),' 超限速误差:',num2str(overSpeed) ,' 舒适度:',num2str(jerk)])
runTime=cputime-t0;
Charaters=[Energy,Time,MissError,overSpeed,sw,jerk,fitness];
save('Result.mat','Charaters');
%保存数据
str=['Resul',num2str(num)];
save(str, 'Charaters');
%fid = fopen('0513data.txt','a+');
%for i= 1:length(Charaters)
% fprintf(fid,'%.4f ',Charaters(i));
%end
%fprintf(fid,'\r\n');
%fclose(fid);
end
⛳️ 运行结果
4. 仿真验证
为了验证基于多目标粒子群算法的地铁牵引能耗优化方法的有效性,本文进行了仿真实验。仿真实验结果表明,该方法能够有效降低地铁牵引能耗,并且能够满足地铁运行速度、加速度、减速度和运行时间等约束条件。
5. 结论
本文提出了一种基于多目标粒子群算法的地铁牵引能耗优化方法。该方法能够有效降低地铁牵引能耗,并且能够满足地铁运行速度、加速度、减速度和运行时间等约束条件。仿真实验结果表明,该方法具有较好的优化效果。