遗传算法多目标函数优化

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

多目标遗传算法优化

铣削正交试验结果

v c

(m/min)

f z

(mm/z)

a e

(mm)

a p

(mm)

F

(N)

Ra

(μm)

1 40 0.0

2 0.25 4 46.

3 0.174

2 40 0.04 0.5 6 59.7 0.211

3 40 0.06 0.75 8 106.5 0.288

4 40 0.08 1.0 10 123.0 0.348

5 60 0.02 0.25 8 99.3 0.252

6 60 0.04 0.5 10 134.0 0.302

7 60 0.06 1.0 4 139.7 0.238

8 60 0.08 0.75 6 130.4 0.276

9 80 0.02 0.75 10 255.8 0.298

10 80 0.04 1.0 8 255.8 0.288

11 80 0.06 0.25 6 110.4 0.259

12 80 0.08 0.5 4 140.8 0.258

13 100 0.02 1.0 6 314.2 0.240

14 100 0.04 0.75 4 233.4 0.239

15 100 0.06 0.5 10 278.6 0.330

16 100 0.08 0.25 8 144.7 0.328

说明:

1.建立切削力和表面粗糙度模型

如: 3.190.08360.8250.5640.454

10c e p

z

F v f a a

-

=(1)

a R=此模型你们来拟合(上面有实验数据,剩下的两个方程已经是我帮你们拟合好的了)(2)

10002/

c z p e

Q v f a a D

π

=-⋅⋅⋅⋅(3)变量约束范围:

40100

0.020.08

0.25 1.0

210

c

z

e

p

v

f

a

a

≤≤

⎪≤≤

⎨≤≤

⎪≤≤

公式(1)和(2)值越小越好,公式(3)值越大越好。π=3.14 D=8

2.请将多目标优化操作过程录像(同时考虑三个方程,优化出最优的自变量数值),方便我后续进行修改;将能保存的所有图片及源文件发给我;将最优解多组发给我,类似于下图(黄色部分为达到的要求)

遗传算法的结果:

程序如下:

clear; clc;

% 遗传算法直接求解多目标优化

D=8;

% Function handle to the fitness function

F=(X)[10^(3.19)*(X(1).^(-0.0836)).*(X(2).^0.825).*(X(3).^0.564).*(X(4).^0.4 54)];

Ra=(X)[10^(-0.92146)*(X(1).^0.14365).*(X(2).^0.16065).*(X(3).^0.047691).*(X (4).^0.38457)];

Q=(X)[-1000*2*X(1).*X(2).*X(3).*X(4)/(pi*D)];

nvars = 4; % Number of decision variables

lb = [40, 0.02,0.25, 2]; % Lower bound

ub = [100,0.08, 1.0,10]; % Upper bound

A = []; b = []; % No linear inequality constraints

Aeq = []; beq = []; % No linear equality constraints

% 遗传算法设定约束

options =

gaoptimset('ParetoFraction',0.3,'PopulationSize',200,'Generations',300,'Sta llGenLimit',200,'TolFun',1e-100,'PlotFcns',gaplotpareto);

% the data of Pareto1

FUN=(X)[F(X);Ra(X)];

[x,fval] = gamultiobj(FUN,nvars,A,b,Aeq,beq,lb,ub,options);

% 开启一个新的图形

figure;

% 画出Pareto1

plot(fval(:,1),fval(:,2),'mp');

% 画出网格

grid on;

% 设定横坐标

xlabel('F');

% 设定纵坐标

ylabel('Ra');

% 设定题目

title('Pareto front 1');

% the data of Pareto2

FUN=(X)[F(X);Q(X)];

[x,fval] = gamultiobj(FUN,nvars,A,b,Aeq,beq,lb,ub,options);

% 开启一个新的图形

figure;

% 画出Pareto2

plot(fval(:,1),fval(:,2),'mp');

% 画出网格

grid on;

% 设定横坐标

xlabel('F');

% 设定纵坐标

ylabel('Q');

% 设定题目

title('Pareto front 2');

% the data of Pareto3

FUN=(X)[Ra(X);Q(X)];

[x,fval] = gamultiobj(FUN,nvars,A,b,Aeq,beq,lb,ub,options);

% 开启一个新的图形

figure;

% 画出Pareto3

plot(fval(:,1),fval(:,2),'mp');

相关文档
最新文档