一、简介
1 概述
自20世纪50年代中期创立了仿生学,许多学者开始从生物中挖掘新的算法来用于复杂的优化问题。一些学者通过研究生物进化的机理,分别提出了适合于现实世界复杂优化问题的模拟进化算法(Simulated evolutionary algorithms),例如SA、SOA、ACO、PSO、GA等。例如美国Michigan大学的J.H.Holland教授等创立的遗传算法GA,Rechenberg等创立的进化策略及Fogel等创立的进化规划。遗传算法GA、进化策略、进化规划有一定的相似性,它们均来自于达尔文的进化论,其中遗传算法GA的研究最为深入,理论最为成熟,并且应用面也最广。粒子群算法(PSO)也是一个多学科交叉的领域,同样吸引着众多的学者运用不同的技术手段对之进行改进研究,具体包括数学、计算机科学、生物以及物理等许多学科的科研人员,并且粒子群优化算法PSO在工业、交通、化工、能源、农业、国防、工程、通信等许多领域有着广阔的应用前景。因此,对粒子群优化算法进行研究具有很重要的意义。
2 粒子群算法模型
二、源代码
% 改进的快速粒子群优化算法 (APSO):
function apso
% 参数设置
global lamda1 lamda2 m ua_max eta_T r G f alpha Cd A rou K Ttq_max Fz fai ge_ne_pe du
lamda1 = 0.2; % 动力性发挥程度加权因子;
lamda2 = 0.8; % 经济性加权因子;
m = 1092; % 整车质量(kg);
ua_max = 50; % 最大车速(km/h);
eta_T = 0.9; % 传动系的传动效率;
r = 0.3; % 车轮半径(m);
g = 9.8; % 重力加速度(g*m/s^2)
G = m*g; % 汽车重力G=mg,(N);
f = 0.015; % 汽车的滚动阻力系数;
alpha = 25*pi/180; % 道路坡度角-->弧度;
Cd = 0.32; % 空气阻力系数;
A = 1.5; % 迎风面积,即汽车行驶方向的投影面积(m^2);
rou = 7.0; % 燃油重度,N/L;
K = 1.05; % 考虑连续加速,加权系数;
Ttq_max = 132; % 发动机的最大转矩(N.m);
Fz = G/4; % 驱动轮上的法向反作用力(N);
fai = 0.7; % 地面附着系数;
ge_ne_pe = 205; % 发动机的燃油消耗率 (g/kW.h);
du = 0.1; % 步长
% 变量
Lb=[ 1 1 0.5 0.5 0.3 2]; %下边界
Ub=[5.0 4.0 3.0 2.0 1.0 6]; %上边界
% 默认参数
para=[25 150 0.95]; %[粒子数,迭代次数,gama参数]
% APSO 优化求解函数
[gbest,fmin]=pso_mincon(@cost,@constraint,Lb,Ub,para);
% 输出结果
Bestsolution=gbest % 全局最优个体
fmin
%% 目标函数
function fy=cost(x)
% ig1 = x(1); %变速器第1挡的传动比
% ig2 = x(2); %变速器第2挡的传动比
% ig3 = x(3); %变速器第3挡的传动比
% ig4 = x(4); %变速器第4挡的传动比
% ig5 = x(5); %变速器第5挡的传动比
% ig0 = x(6); %主减速器传动比
global lamda1 lamda2 m ua_max eta_T r G f alpha Cd A rou K Ttq_max Fz fai ge_ne_pe du
% 发动机功率(Pe)
T = 0; % 时间
Q = 0; % 耗油量
for ua = 0.1:0.1:ua_max
if ua<=10
delta = 1.06+0.04*x(1).^2; % 汽车旋转质量换算系数
ne = ua*x(6)*x(1)/0.377/r; % 转速(r/min)
Pe = ( G*f*ua/3600 + Cd*A*ua.^3/76140 + delta*m*ua*du/3600)/eta_T;
Me = 9549*Pe./ne; % 发动机转矩(N.m)
Ft = Me*x(1)*x(6)*eta_T/r; % 汽车的驱动力
elseif ua>10 && ua<=20
delta = 1.06+0.04*x(2).^2; % 汽车旋转质量换算系数
ne = ua*x(6)*x(2)/0.377/r; % 转速(r/min)
Pe = ( G*f*ua/3600 + Cd*A*ua.^3/76140 + delta*m*ua*du/3600)/eta_T;
Me = 9549*Pe./ne; % 发动机转矩(N.m)
Ft = Me*x(2)*x(6)*eta_T/r; % 汽车的驱动力
elseif ua>20 && ua<=30
delta = 1.06+0.04*x(3).^2; % 汽车旋转质量换算系数
ne = ua*x(6)*x(3)/0.377/r; % 转速(r/min)
Pe = ( G*f*ua/3600 + Cd*A*ua.^3/76140 + delta*m*ua*du/3600)/eta_T;
Me = 9549*Pe./ne; % 发动机转矩(N.m)
Ft = Me*x(3)*x(6)*eta_T/r; % 汽车的驱动力
elseif ua>30 && ua<=40
delta = 1.06+0.04*x(4).^2; % 汽车旋转质量换算系数
ne = ua*x(6)*x(4)/0.377/r; % 转速(r/min)
Pe = ( G*f*ua/3600 + Cd*A*ua.^3/76140 + delta*m*ua*du/3600)/eta_T;
Me = 9549*Pe./ne; % 发动机转矩(N.m)
Ft = Me*x(4)*x(6)*eta_T/r; % 汽车的驱动力
elseif ua>40 && ua<=ua_max
delta = 1.06+0.04*x(4).^2; % 汽车旋转质量换算系数
ne = ua*x(6)*x(5)/0.377/r; % 转速(r/min)
Pe = ( G*f*ua/3600 + Cd*A*ua.^3/76140 + delta*m*ua*du/3600)/eta_T;
Me = 9549*Pe./ne; % 发动机转矩(N.m)
Ft = Me*x(5)*x(6)*eta_T/r; % 汽车的驱动力
end
三、运行结果
四、备注
版本:2014a