新手求助,关于多目标优化遗传算法的纯电动汽车动力系统参数匹配与优化

以下文件分别是我自己编写的代码,和原论文约束条件及目标函数,但是在运行的时候总是一直不停止,也不出结果,所以麻烦各位大佬看一看。

main.m

clear;
clc
options = gaoptimset('PopulationSize',200, 'Generations', 600); % 遗传算法相关配置
fun = @fitnessfun; % 设置适应度函数句柄
nonlcon = @con_fun; % 设置非线性约束函数句柄
nvars = 3; % 自变量个数
A = [0,170,0;% c(2)=170-0.377.*r.*Nmax./x(2);%线性约束最大车速
-11620.4,0,0]; % c(3)=680-(Wess.*Isoc.*ita.*Uc)./Pc;%线性约束60km/h等速续航里程目标函数
b = [1187.55 -680];
Aeq = [];  beq = [];
lb = [0;5;650];  ub = [];
[x_best, fval] = ga(fun, nvars, A,b,Aeq,beq,lb,ub,nonlcon,options);
 

fitnessfun.m

%%适应度函数,一般即为目标函数
function f=fitnessfun(x)
syms u;
singema=1.4;%旋转质量换算系数
m=2070;%汽车半载质量
Pc=8.03;%纯电动汽车等速行驶时消耗的功率
Uc=60;%等速行驶的车速
Isoc=0.8;%为放电深度
ita=0.9;%放电效率
N3=600;%单体电池的数量
Ub=3.6;%单体电池电压
Te=7.27;%优化之前的百公里加速时间
Le=702.8;%优化前的等速百公里续航里程
f=0.016;%滚动阻力系数
g=9.8;%重力加速度
Cd=0.236;%空气阻力系数
A=2.249;%汽车迎风面积
% u=0:1:100;%车速
n=4500;%驱动电机转速
nt=0.9;%传动系统效率
Ttq=x(3).*9550./n;%驱动电机扭矩
r=0.35;%车轮半径
Ft=Ttq.*x(2).*nt./r;%汽车驱动力
Ff=m*g*f;%汽车行驶的滚动阻力
Fw=Cd*A.*60^2./21.15;%0-100km/h加速过程中的空气阻力
Wess=N3*Ub.*x(1);%电池组总能量
% A=[0,170,0;
%     -11620.4,0,0];
% b=[1187.55;-680];
% Aeq=[];
% beq=[];
% [x_best,fval]=ga(fun,nvars,A,b,Aeq,beq,lb,ub,nonlcon,options);
%Wess=%电池组总能量
% x(1)=C%电容
% x(2)=i%主减速器传动比
% x(3)=Pmax%驱动电机峰值功率
%%%建立目标函数
fac=0.4;%为权重系数
f1=1/(3.6).*(int(singema.*m./(Ft-(Ff+Fw)),u,0,100));%百公里加速时间目标函数,x(2),x(3)
f2=(Wess.*Isoc.*ita.*Uc)./Pc;%60km/h等速续航里程目标函数,x(1)
f=(f1.*fac./Te)./(f2.*(1-fac)./Le);%总体的目标函数
end

 

con_fun.m

%%%非线性约束文件
function [c,ceq]=con_fun(x)
syms u;
f=0.016;%滚动阻力系数
g=9.8;%重力加速度
Cd=0.236;%空气阻力系数
A=2.249;%汽车迎风面积
% u=0:1:100;%车速
n=4500;%驱动电机转速
nt=0.9;%传动系统效率
Ttq=x(3).*9550./n;%驱动电机扭矩
r=0.35;%车轮半径
singema=1.4;%旋转质量换算系数
m=2070;%汽车半载质量
% Pc=8.03;%纯电动汽车等速行驶时消耗的功率
% Uc=60;%等速行驶的车速
% Isoc=0.8;%为放电深度
% ita=0.9;%放电效率
% N3=600;%单体电池的数量
% Ub=3.6;%单体电池电压
% Wess=N3.*Ub.*x(1);%电池组总能量
% Nmax=9000;%驱动电机最大转速
FN=m*g;%汽车的支持力
Tmax=2.36.*x(3).*9550./4500;%驱动电机的峰值扭矩
Ft=Ttq.*x(2).*nt./r;%汽车驱动力
Ff=m*g*f;%汽车行驶的滚动阻力
Fw=Cd*A.*60^2./21.15;%0-100km/h加速过程中的空气阻力
Fw1=Cd*A*20^2/21.15;%最大爬坡度时以20km/h的车速行驶时的空气阻力
c(1)=-7.5+1/(3.6).*(int(singema*m./(Ft-(Ff+Fw)),u,0,100));%非线性约束百公里加速时间小于7.5s
c(2)=0.3-tan(asin((Ft-Fw1)./(m*g*((f^2+1)^(1/2))))-atan(f));%非线性约束最大爬坡度约束
c(3)=Tmax.*x(2).*nt./r-FN.*0.95;%非线性约束中汽车行驶满足附着条件要求
ceq=[];
end
 

 

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。

​​​​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。