【优化求解】罚函数的粒子群算法之函数寻优【Matlab 187期】

一、简介

1 概述
自20世纪50年代中期创立了仿生学,许多学者开始从生物中挖掘新的算法来用于复杂的优化问题。一些学者通过研究生物进化的机理,分别提出了适合于现实世界复杂优化问题的模拟进化算法(Simulated evolutionary algorithms),例如SA、SOA、ACO、PSO、GA等。例如美国Michigan大学的J.H.Holland教授等创立的遗传算法GA,Rechenberg等创立的进化策略及Fogel等创立的进化规划。遗传算法GA、进化策略、进化规划有一定的相似性,它们均来自于达尔文的进化论,其中遗传算法GA的研究最为深入,理论最为成熟,并且应用面也最广。粒子群算法(PSO)也是一个多学科交叉的领域,同样吸引着众多的学者运用不同的技术手段对之进行改进研究,具体包括数学、计算机科学、生物以及物理等许多学科的科研人员,并且粒子群优化算法PSO在工业、交通、化工、能源、农业、国防、工程、通信等许多领域有着广阔的应用前景。因此,对粒子群优化算法进行研究具有很重要的意义。
2 粒子群算法模型
【优化求解】罚函数的粒子群算法之函数寻优【Matlab 187期】_第1张图片

二、源代码

% 改进的快速粒子群优化算法 (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

三、运行结果

【优化求解】罚函数的粒子群算法之函数寻优【Matlab 187期】_第2张图片

四、备注

完整代码或者代写添加QQ912100926
往期回顾>>>>>>
【优化求解】粒子群算法之充电站最优布局【Matlab 061期】
【优化求解】遗传算法之多旅行商问题【Matlab 062期】
【优化求解】遗传和模拟退火之三维装箱问题【Matlab 063期】
【优化求解】遗传算法之求最短路径【Matlab 064期】
【优化求解】粒子群之优化灰狼算法【Matlab 065期】
【优化求解】多目标之灰狼优化算法MOGWO 【Matlab 066期】
【优化求解】遗传算法之求解优化车辆发车间隔【Matlab 067期】
【优化求解】磷虾群算法简介【Matlab 068期】
【优化求解】差分进化算法简介【Matlab 069期】
【优化求解】约束优化之惩罚函数法简介【Matlab 070期】
【优化求解】改进灰狼算法之求解重油热解模型【Matlab 072期】
【优化求解】蚁群算法之配电网故障定位【Matlab 073期】
【优化求解】遗传算法之求解岛屿物资补给优化问题【Matlab 137期】
【优化求解】基于matlab冠状病毒群体免疫优化算法(CHIO)【Matlab 138期】
【优化求解】基于matlab之金鹰优化求解算法(GEO)【Matlab 139期】
【优化求解】基于GUI界面之BP神经网络优化求解【Matlab 179期】
【优化求解】基于GUI界面之遗传算法优化求解【Matlab 180期】
【优化求解】基于GUI界面之蚁群算法优化求解【Matlab 181期】
【优化求解】 免疫算法之数值逼近优化分析【Matlab 182期】
【优化求解】 启发式算法之函数优化分析【Matlab 183期】
【优化求解】改进的遗传算法(GA+IGA)之城市交通信号优化【Matlab 184期】
【优化求解】改进的遗传算法GA之城市交通信号优化【Matlab 185期】
【优化求解】改进的遗传算法IGA之城市交通信号优化【Matlab 186期】

你可能感兴趣的:(matlab,优化求解)