MATLAB多目标优化计算
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[x,fval,exitflag,output, grad,hessian]= [ ], [ ], [ ], [ ], fgoalattain(@fun,x0,goal,w,A,b,Aeq,beq,Lb,Ub,’Nlc’,options,P1,P2…)
6.1 函数fgoalattain
三、例题
(4) M文件运算结果 (5) 优化结果处理
解:(1)建立优化设计的数学模型 ①设计变量: 矩形截面的宽和高 X=[x1,x2]T ②目标函数: x1 minf1(X)=x1x2 重量→截面积: 弯曲强度→ 矩形截面矩量: minf2 ( X) x1x2 2 /6
x2
③约束条件:含性能约束和边界约束
6.2 函数fminimax
一、多目标优化问题数学模型
各分目标函数
min max {f1,f2,…,f3}
s.t. AX≤b AeqX=beq (线性不等式约束) (线性等式约束)
C(X)≤0
Ceq(X)=0
(非线性不等式约束条件)
(非线性等式约束)
Lb ≤X ≤Ub (边界约束条件)
6.2 函数fminimax
6 多目标优化问题
多目标优化问题的MATLAB函数有
需知各分目标的单个的最优值
fgoalattain
需确定各分目标的加权系数
fminimax
目标函数的最大值逐次减小
6.1 函数fgoalattain
一、多目标优化问题数学模型
标量变量 分目标函数的权重 各分目标函数的目标值 min v s.t. fi(X)-wiv ≤goali i=1,2,…,t AX≤b (线性不等式约束) AeqX=beq (线性等式约束) C(X)≤0 (非线性不等式约束条件) Ceq(X)=0 (非线性等式约束) Lb ≤X ≤Ub (边界约束条件)
[x,fval,exitflag,output, grad,hessian]= fgoalattain(@fun,x0,goal,w,A,b,Aeq,beq,Lb,Ub,’Nlc’,options,P1,P2…)
6.1 函数fgoalattain
三、例题
(3)编制优化设计的M文件
%V带传动多目标优化设计的约束函数文件 function[g,ceq]=VDCD_3mb_YS(x) i=3;n1=1440; %已知条件:传动比,转速 g(1)=100-x(1); %小带轮直径>=Ddmin g(2)=pi*x(1)*n1/6e4-25 %带速范围V<=Vmax a1=x(2)/4-pi*x(1)*(i+1)/8; a2=x(1)^2*(i-1)^2/8; a=a1+sqrt(a1^2-a2); g(3)=120-180*(1-x(1)*(i-1)/a/pi); %小带轮包角>=alpmin g(4)=0.7*x(1)*(i+1)-a; %中心距范围a>=amin ceq=[];
边 界 约 束 带基准长度的下限和上限
6.1 函数fgoalattain
三、例题
解:(1)建立优化设计的数学模型 ①设计变量: X=[dd1,Ld]T=[x1,x2]T ②目标函数: 小带轮直径: minf1(X)=dd1=x1 2 中心距: min f 2 ( X ) a a1 a1 a 2
三、例题
③约束条件:含性能约束和边界约束
小带轮直径>=推荐的A型带轮最小直径
g1 ( X) ddmin dd1 100 x1 0
g 2 ( X)
d d1n1 d n v max d1 1 25 0 60000 60000
性 能 约 束
最大带速<25m/s
2x1 dd1(i 1) g 3 ( X) min 1 min 1801 120 180 1 0 小带轮包角>120°
6.1 函数fgoalattain
三、例题
(4) M文件运算结果 (5) 优化结果处理 (6) 最终方案
***************计算结果***************** 小带轮基准直径 Dd1=100mm 大带轮基准直径 Dd2=300mm V带基准长度 Ld=1250mm 传动中心距 a=293.82mm 小带轮包角 alpha=141.00度 V带根数 z= 4mm
解:(1)建立优化设计的数学模型 ①设计变量: V带传动的独立设计变量是小带轮直径dd1和带的基准长度Ld L d (i 1) X=[dd1,Ld]T=[x1,x2]T a1 d d 1 4 8 ②目标函数: 2 2 d d 1 ( i 1) 小带轮直径:minf1(X)=dd1=x1 a2 8 2 中心距: min f 2 ( X ) a a1 a1 a 2 K =0.20639L 0.211806
T
100 80 2 2 10 2 400 320 40 2 2 1.5 2 2 41 2
6.1 函数fgoalattain
Optimization terminated successfully: Search direction less than 2*options. xopt = 100mm 1.0e+003 * dd1 0.1000 1227mm Ld 1.2269 fopt = 100.0000 281.5296 3.5957
L d
带的根数: minf 3 ( X) z
P0=(0.02424dd1-1.112879)(kW)
K AP (P0 P0 )K K L
1.1
拟合幂函数方程
0.17kW
拟合 双曲 线方K 程 0.549636 80.395144
6.1 函数fgoalattain
80~100mm 320~400mm 1~4
2 T
带的根数: ③约束条件: (2)确定分目标和它们的权重
K AP minf 3 ( X) z (P0 P0 )K Biblioteka BaiduK L
按容限值确定权重, 以使目标函数值在 数量级上统一
w1 w w 2 w 3
g4 ( X) 0.7dd1 (i 1) a 2.8x1 a 0 g 5 ( X) 80 x1 0 g6 ( X) x1 100 0
带传动的中心距要求 小带轮基准直径的下限和上限
g 7 ( X) 630 x2 0 g8 ( X) x2 4000 0
二、优化函数使用格式
返回目标函数的最优解
返回目标函数的最优值
返回算法的终止标志 优化算法信息的一个数据结构
返回目标函数在最优解的梯度
目标函数在最优解的海色矩阵 [x,fval,exitflag,output, grad,hessian]= fminimax(@fun,x0, A,b,Aeq,beq,Lb,Ub,’Nlc’,options,P1,P2…)
各分目标函数
6.1 函数fgoalattain
二、优化函数使用格式
返回目标函数的最优解
返回目标函数的最优值
返回算法的终止标志 优化算法信息的一个数据结构
返回目标函数在最优解的梯度
目标函数在最优解的海色矩阵 [x,fval,exitflag,output, grad,hessian]= fgoalattain(@fun,x0,goal,w,A,b,Aeq,beq,Lb,Ub,’Nlc’,options,P1,P2…)
附加参数 设置优化选项参数 目标函数文件名 初始点
无定义时以空矩阵 符号“[ ]”代替
非线性约束条件的函数名 设计变量的下界和上界 线性等式约束的常数向量 线性等式约束的系数矩阵
线性不等式约束的常数向量
线性不等式约束的系数矩阵
6.2 函数fminimax
三、例题
已知直径为1单位长度的圆柱梁,要求将它制成矩形截面梁,满足重量最轻 和强度最大的条件,试确定矩形截面尺寸。
小带 轮基 准直 径 带传 动中 心距 带 的 根 数 圆 整
圆 整
1250mm
4
6.1 函数fgoalattain
三、例题
(4) M文件运算结果 (5) 优化结果处理
%优化结果数据处理后部分参数计算 Dd1=100;Dd2=Dd1*i;z=4;Ld=1250; v=pi*Dd1*n1/6e4; a1=Ld/4-pi*Dd1*(i+1)/8; a2=Dd1^2*(i-1)^2/8; a=a1+sqrt(a1^2-a2); alpha=180-180*Dd1*(i-1)/pi/a; disp '' disp '***************计算结果*****************' fprintf(1,' 小带轮基准直径 Dd1=%3.0fmm\n',Dd1); fprintf(1,' 大带轮基准直径 Dd2=%3.0fmm\n',Dd2); fprintf(1,' V带基准长度 Ld=%3.0fmm\n',Ld); fprintf(1,' 传动中心距 a=%3.2fmm\n',a); fprintf(1,' 小带轮包角 alpha=%3.2f度\n',alpha); fprintf(1,' V带根数 z=%3.0fmm\n',z);
目标函数文件名 初始点 附加参数 设置优化选项参数
各分目标期望值
各分目标权重
无定义时以空矩阵 符号“[ ]”代替
非线性约束条件的函数名 设计变量的下界和上界 线性等式约束的常数向量 线性等式约束的系数矩阵
线性不等式约束的常数向量
线性不等式约束的系数矩阵
6.1 函数fgoalattain
三、例题
设计带式输送机传动装置上的普通V带传动。已知电机额定功率P=4kW,转 速n1=1440r/min,传动比i=3,采用A型V带,每天工作不超过10小时。要求 传动结构紧凑(带的根数尽量少,带轮直径和中心距尽量小)。
[x,fval,exitflag,output, grad,hessian]= fgoalattain(@fun,x0,goal,w,A,b,Aeq,beq,Lb,Ub,’Nlc’,options,P1,P2…)
6.1 函数fgoalattain
三、例题
(3)编制优化设计的M文件
%V带传动多目标优化设计的调用命令 P=4;i=3;n1=1440;KA=1.1; %已知条件:功率,传动比,转速,工况系数 x0=[100;1250]; %初始点(小带轮直径,V带基准长度) goal=[75,280,2]; %分目标 w=[10^(-2),40^(-2),1.5^(-2)]; %分目标加权系数 lb=[80,630]; %最小带轮直径和A型V带的基准长度 ub=[100;4000]; %最大带轮直径和A型V带基准长度 [xopt,fopt]=fgoalattain(@VDCD_3mb_MB,x0,goal,w,[],[],[],[],lb,ub,@VDC D_3mb_YS)
三、例题
(3)编制优化设计的M文件
%V带传动多目标优化设计的目标函数文件 function f=VDCD_3mb_MB(x) P=4;i=3;KA=1.1; %已知条件:功率,传动比,工况系数 f(1)=x(1); %f1-小带轮基准直径:目标函数1 a1=x(2)/4-pi*x(1)*(i+1)/8; a2=x(1)^2*(i-1)^2/8; a=a1+sqrt(a1^2-a2); f(2)=a; %f2,中心距:目标函数2 P0=0.02424*x(1)-1.1128789; %单根带额定功率 DP0=0.17; %功率增量 alpha=180-180*x(1)*(i-1)/pi/a; %小带轮包角 Kalp=alpha/(0.549636*alpha+80.396114); %包角系数 KL=0.20639*x(2)^0.211806; %长度系数 f(3)=KA*P/(P0+DP0)/Kalp/KL; %f3-V带根数:目标函数3