优化设计-Matlab优化工具箱的介绍及8种函数的使用方法.pdf
- 文档编号:14656688
- 上传时间:2023-06-25
- 格式:PDF
- 页数:35
- 大小:547.90KB
优化设计-Matlab优化工具箱的介绍及8种函数的使用方法.pdf
《优化设计-Matlab优化工具箱的介绍及8种函数的使用方法.pdf》由会员分享,可在线阅读,更多相关《优化设计-Matlab优化工具箱的介绍及8种函数的使用方法.pdf(35页珍藏版)》请在冰点文库上搜索。
Matlab优化工具箱简介1引言引言最优化方法是专门研究如何从多个方案中选择最佳方案的科学。
最优化是一门应用广泛的学科,它讨论决策问题的最佳选择的特性,构造寻求最佳解的计算方法MATLAB是Mathworks公司推出的一套功能强大的过程计算及数值分析软件,是目前世界上应用最广泛的工程计算软件之一。
它包含很多工具箱,主要用来扩充matlab的数值计算、符号运算、图形建模仿真等功能,使其能够用于多种学科。
2优化工具箱优化工具箱(OptimizationToolbox)优化工具箱主要应用优化工具箱主要应用求解无约束条件非线性极小值;求解约束条件下非线性极小值,包括目标逼近问题、极大-极小值问题;求解二次规划和线性规划问题;非线性最小二乘逼近和曲线拟合;求解复杂结构的大规模优化问题。
优化工具箱的常用函数优化工具箱的常用函数求解线性线性规划问题linprog边界约束条件下的非线性最小化fminbnd求解多变量函数的最小化fminunc求解无约束非线性最小化fminsearch求解二次规划问题quadprog求解有约束的非线性最小化fmincon求解多目标规划的优化问题fgoalattain求解最小、最大化问题fminimax优化工具箱的结构优化工具箱的结构模型输入时要注意的问题模型输入时要注意的问题
(1)目标函数最小化优化函数fminbnd、fminunc、fmincon、fminsearch、fgoalattain、fminimax都要求目标函数最小化。
(2)约束非正工具箱对非线性不等式约束的格式要求为Ci(x)0。
3优化问题简介优化问题简介3.1线性规划问题线性规划问题数学模型为:
mins.t.优化函数:
linprognRxxfbxA*beqxAeq*ubxlb3.2无约束非线性规划问题fminbnd要求目标函数为连续函数要求目标函数为连续函数只求解单变量问题只求解单变量问题fminunc可求解单变量和多变量问题可求解单变量和多变量问题适用于简单优化问题适用于简单优化问题可求解复杂优化问题可求解复杂优化问题fminsearch1.使用格式:
使用格式:
xopt,fopt=fminbnd(fun,x1,x2,options)3.2.1函数函数fminbnd设置优化选项参数设置优化选项参数迭代搜索区间迭代搜索区间目标函数目标函数返回目标函数的最优值返回目标函数的最优值返回目标函数的最优解返回目标函数的最优解1.例题:
例题:
求解一维无约束优化问题f(x)=(x3+cosx+xlogx/ex)在区间0,1中的极小值。
解解:
(1)编制求解优化问题的编制求解优化问题的M文件。
文件。
%求解一维优化问题fun=inline(x3+cos(x)+x*log(x)/exp(x),x);%目标函数x1=0;x2=1;%搜索区间xopt,fopt=fminbnd(fun,x1,x2)
(2)编制一维函数图形的编制一维函数图形的M文件。
文件。
ezplot(fun,0,10)title(x3+cosx+xlogx)/ex)gridon3.2.1函数函数fminbnd运行结果:
xopt=0.5223fopt=0.39741.使用格式:
使用格式:
xopt,fopt=fminsearch(fun,x0,options)3.2.2函数函数fminsearch设置优化选项参数设置优化选项参数初始点初始点目标函数目标函数返回目标函数的最优值返回目标函数的最优值返回目标函数的最优解返回目标函数的最优解2.例题:
例题:
求解二维无约束优化问题f(x)=(x14+3x12+x22-2x1-2x2-2x12x2+6)的极小值。
解解:
(1)编制求解二维无约束优化问题的编制求解二维无约束优化问题的M文件。
文件。
%求解二维优化问题求解二维优化问题fun=x
(1)4+3*x
(1)2+x
(2)2-2*x
(1)-2*x
(2)-2*x
(1)2*x
(2)+6;x0=0,0;%初始点初始点xopt,fopt=fminsearch(fun,x0)
(2)讨论。
讨论。
将目标函数写成函数文件的形式:
将目标函数写成函数文件的形式:
%目标函数文件目标函数文件search.mfunctionf=search(x)f=x
(1)4+3*x
(1)2+x
(2)2-2*x
(1)-2*x
(2)-2*x
(1)2*x
(2)+6;则命令文件变为:
则命令文件变为:
%命令文件名称为命令文件名称为eg9_4.mx0=0,0;%初始点初始点xopt,fopt=fminsearch(search,x0)3.2.2函数函数fminsearch运行结果:
xopt=1.00002.0000fopt=4.00001.使用格式:
使用格式:
x,fval,exitflag,output,grad,hessian=fminunc(fun,x0,options,P1,P2)3.2.3函数函数fminunc设置优化选项参数设置优化选项参数初始点初始点调用目标函数的函数文件名调用目标函数的函数文件名目标函数在最优解的海色矩阵目标函数在最优解的海色矩阵返回目标函数在最优解的梯度返回目标函数在最优解的梯度优化算法信息的一个数据结构优化算法信息的一个数据结构返回算法的终止标志返回算法的终止标志返回目标函数的最优值返回目标函数的最优值返回目标函数的最优解返回目标函数的最优解附加参数附加参数管道截面积:
其中设计变量:
3.2.3函数函数fminunc3.例题:
例题:
已知梯形截面管道的参数是:
底边长度c,高度h,面积A=64516mm2,斜边与底边夹角为。
管道内液体的流速与管道截面的周长s的倒数成比例关系。
试按照使液体流速最大确定该管道的参数。
解解:
(1)建立优化设计数学模型建立优化设计数学模型管道截面周长hcsinh2cs64516ctghchA2hctgh64516csinh2hctgh64516sminx1x221211xsinx2ctgxxx64516f(X)hxxX21目标函数的文件目标函数的文件(sc_wysyh.m):
functionf=sc_wysyh(x)%定义目标函数调用格式定义目标函数调用格式a=64516;hd=pi/180;f=a/x
(1)-x
(1)/tan(x
(2)*hd)+2*x
(1)/sin(x
(2)*hd);%定义目标函数定义目标函数3.2.3函数函数fminunc3.例题:
例题:
解解:
(1)建立优化设计数学模型建立优化设计数学模型
(2)编写求解无约束非线性优化问题的编写求解无约束非线性优化问题的M文件文件21211xsinx2ctgxxx64516)X(fx,fval,exitflag,output,grad,hessian=fminbnd(fun,x0,options,P1,P2)求最优化解时的命令程序求最优化解时的命令程序:
x0=25,45;%初始点初始点x,Fmin=fminunc(sc_wysyh,x0);%求优语句求优语句fprintf(1,截面高度截面高度hx
(1)=%3.5.1fmmn,x
(1)fprintf(1,斜边夹角斜边夹角x
(2)=%3.5.1f度度n,x
(2)fprintf(1,截面周长截面周长sf=%3.5.1fmmn,Fmin)计算结果计算结果截面高度截面高度hx
(1)=192.9958mm斜边夹角斜边夹角x
(2)=60.0005度度截面周长截面周长sf=668.5656mmxx1=linspace(100,300,25);xx2=linspace(30,120,25);x1,x2=meshgrid(xx1,xx2);a=64516;hd=pi/180;f=a./x1-x1./tan(x2*hd)+2*x1./sin(x2*hd);subplot(1,2,1);h=contour(x1,x2,f);clabel(h);axis(100,300,30,120)xlabel(高度高度h/mm)ylabel(倾斜角倾斜角theta/(。
)3.2.3函数函数fminunc3.例题:
例题:
解解:
(1)建立优化设计数学模型建立优化设计数学模型
(2)编写求解无约束非线性优化问题的编写求解无约束非线性优化问题的M文件文件(3)编写绘制一维函数图形的编写绘制一维函数图形的M文件文件title(目标函数等值线目标函数等值线)subplot(1,2,2);meshc(x1,x2,f);axis(100,300,30,120,600,1200)title(目标函数网格曲面图目标函数网格曲面图)3.3约束非线性规划约束非线性规划数学模型:
s.t.优化函数:
fmincon)(minxf0)x(C0)x(CeqbxAbeqxAequbxlb3.4二次规划问题二次规划问题数学模型:
s.t.优化函数:
quadprogxfxHx21minbxAbeqxAeqbuxbl3.5多目标优化问题fgoalattain需确定各分目标的加权系数需确定各分目标的加权系数需知各分目标的单个的最优值需知各分目标的单个的最优值目标函数的最大值逐次减小目标函数的最大值逐次减小fminimax3.5.1函数函数fgoalattainminvs.t.fi(X)-wivgoalii=1,2,tAXb(线性不等式约束)(线性不等式约束)AeqX=beq(线性等式约束)(线性等式约束)C(X)0(非线性不等式约束条(非线性不等式约束条件)件)Ceq(X)=0(非线性等式约束)(非线性等式约束)LbXUb(边界约束条件)(边界约束条件)一、多目标优化问题数学模型一、多目标优化问题数学模型标量变量标量变量各分目标函数各分目标函数分目标函数的权重分目标函数的权重各分目标函数的目标值各分目标函数的目标值二、优化函数使用格式二、优化函数使用格式x,fval,exitflag,output,grad,hessian=fgoalattain(fun,x0,goal,w,A,b,Aeq,beq,Lb,Ub,Nlc,options,P1,P2)设置优化选项参数设置优化选项参数各分目标权重各分目标权重各分目标期望值各分目标期望值目标函数在最优解的海色矩阵目标函数在最优解的海色矩阵返回目标函数在最优解的梯度返回目标函数在最优解的梯度优化算法信息的一个数据结构优化算法信息的一个数据结构返回算法的终止标志返回算法的终止标志返回目标函数的最优值返回目标函数的最优值返回目标函数的最优解返回目标函数的最优解附加参数附加参数非线性约束条件的函数名非线性约束条件的函数名设计变量的下界和上界设计变量的下界和上界线性等式约束的常数向量线性等式约束的常数向量线性等式约束的系数矩阵线性等式约束的系数矩阵线性不等式约束的常数向量线性不等式约束的常数向量线性不等式约束的系数矩阵线性不等式约束的系数矩阵无定义时以空矩阵无定义时以空矩阵符号“符号“”代替代替3.5.1函数函数fgoalattain初始点初始点目标函数文件名目标函数文件名三、例题三、例题设计带式输送机传动装置上的普通设计带式输送机传动装置上的普通V带传动。
已知电机额定功率带传动。
已知电机额定功率P=4kW,转速,转速n1=1440r/min,传动比,传动比i=3,采用,采用A型型V带,每天工作不带,每天工作不超过超过10小时。
要求传动结构紧凑(带的根数尽量少,带轮直径和中心小时。
要求传动结构紧凑(带的根数尽量少,带轮直径和中心距尽量小)。
距尽量小)。
解解:
(1)建立优化设计的数学模型建立优化设计的数学模型设计变量:
设计变量:
V带传动的独立设计变量是小带轮直径带传动的独立设计变量是小带轮直径dd1和带的基准长和带的基准长度度LdX=dd1,LdT=x1,x2T目标函数:
目标函数:
小带轮直径:
小带轮直径:
中心距中心距:
带的根数带的根数:
L00A3KK)PP(PKz)X(fmin3.5.1函数函数fgoalattain22112aaaa)X(fmin8)1i(d4La1dd18)1i(da221d21.1P0=(0.02424dd1-1.112879)(kW)0.17kWKL=0.20639Ld0.211806拟合幂函数方程拟合幂函数方程拟合拟合双曲双曲线方线方程程395144.80549636.0Kminf1(X)=dd1=x1约束条件约束条件:
含性能约束和边界约束含性能约束和边界约束0x100dd)X(g11dmind102560000ndv60000nd)X(g11dmax11d20x21180120)1i(1dd1180)X(g1min1min30ax8.2a)1i(d7.0)X(g11d40x80)X(g150100x)X(g160x630)X(g2704000x)X(g28小带轮直径小带轮直径=推荐的推荐的A型带轮最小型带轮最小直径直径最大带速最大带速120带传动的中心距要带传动的中心距要求求小带轮基准直径的下限和上小带轮基准直径的下限和上限限带基准长度的下限和上带基准长度的下限和上限限性性能能约约束束边边界界约约束束三、例题三、例题3.5.1函数函数fgoalattain3.5.1函数函数fgoalattain三、例题三、例题解解:
(1)建立优化设计的数学模型建立优化设计的数学模型设计变量:
设计变量:
X=dd1,LdT=x1,x2T目标函数:
目标函数:
小带轮直径:
小带轮直径:
中心距中心距:
带的根数带的根数:
L00A3KK)PP(PKz)X(fmin22112aaaa)X(fminminf1(X)=dd1=x180100mm320400mm14按容限值确定权重,按容限值确定权重,以使目标函数值在以使目标函数值在数量级上统一数量级上统一222T222T3215.140102142320400280100wwww约束条件约束条件:
(2)确定分目标和它们的权重确定分目标和它们的权重(3)编制优化设计的编制优化设计的M文件文件x,fval,exitflag,output,grad,hessian=fgoalattain(fun,x0,goal,w,A,b,Aeq,beq,Lb,Ub,Nlc,options,P1,P2)%V带传动多目标优化设计的目标函数文件带传动多目标优化设计的目标函数文件functionf=VDCD_3mb_MB(x)P=4;i=3;KA=1.1;%已知条件:
功率,传动比,工况系数已知条件:
功率,传动比,工况系数f
(1)=x
(1);%f1-小带轮基准直径小带轮基准直径:
目标函数目标函数1a1=x
(2)/4-pi*x
(1)*(i+1)/8;a2=x
(1)2*(i-1)2/8;a=a1+sqrt(a12-a2);f
(2)=a;%f2,中心距中心距:
目标函数:
目标函数2P0=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带根数带根数:
目标函数:
目标函数33.5.1函数函数fgoalattain三、例题三、例题(3)编制优化设计的编制优化设计的M文件文件%V带传动多目标优化设计的约束函数文件带传动多目标优化设计的约束函数文件functiong,ceq=VDCD_3mb_YS(x)i=3;n1=1440;%已知条件:
传动比,转速已知条件:
传动比,转速g
(1)=100-x
(1);%小带轮直径小带轮直径=Ddming
(2)=pi*x
(1)*n1/6e4-25%带速范围带速范围V=alpming(4)=0.7*x
(1)*(i+1)-a;%中心距范围中心距范围a=aminceq=;3.5.1函数函数fgoalattain三、例题三、例题x,fval,exitflag,output,grad,hessian=fgoalattain(fun,x0,goal,w,A,b,Aeq,beq,Lb,Ub,Nlc,options,P1,P2)(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,VDCD_3mb_YS)3.5.1函数函数fgoalattain三、例题三、例题x,fval,exitflag,output,grad,hessian=fgoalattain(fun,x0,goal,w,A,b,Aeq,beq,Lb,Ub,Nlc,options,P1,P2),Optimizationterminatedsuccessfully:
Searchdirectionlessthan2*options.xopt=1.0e+003*0.10001.2269fopt=100.0000281.52963.5.2957(4)M文件运算结果文件运算结果3.5.1函数函数fgoalattain三、例题三、例题(5)优化结果处理优化结果处理dd1100mm1227mmLd小带小带轮基轮基准直准直径径带传带传动中动中心距心距带带的的根根数数1250mm圆圆整整4圆圆整整%优化结果数据处理后部分参数计算优化结果数据处理后部分参数计算Dd1=100;Dd2=Dd1*i;z=4;Ld=1250;v=pi*Dd1*n1/6e4;a1=Ld/4-pi*Dd1*(i+1)/8;a2=Dd12*(i-1)2/8;a=a1+sqrt(a12-a2);alpha=180-180*Dd1*(i-1)/pi/a;dispdisp*计算结果计算结果*fprintf(1,小带轮基准直径小带轮基准直径Dd1=%3.0fmmn,Dd1);fprintf(1,大带轮基准直径大带轮基准直径Dd2=%3.0fmmn,Dd2);fprintf(1,V带基准长度带基准长度Ld=%3.0fmmn,Ld);fprintf(1,传动中心距传动中心距a=%3.2fmmn,a);fprintf(1,小带轮包角小带轮包角alpha=%3.2f度度n,alpha);fprintf(1,V带根数带根数z=%3.0fmmn,z);(4)M文件运算结果文件运算结果3.5.1函数函数fgoalattain三、例题三、例题(5)优化结果处理优化结果处理*计算结果计算结果*小带轮基准直径小带轮基准直径Dd1=100mm大带轮基准直径大带轮基准直径Dd2=300mmV带基准长度带基准长度Ld=1250mm传动中心距传动中心距a=293.82mm小带轮包角小带轮包角alpha=141.00度度V带根数带根数z=4mm(4)M文件运算结果文件运算结果3.5.1函数函数fgoalattain三、例题三、例题(5)优化结果处理优化结果处理(6)最终方案最终方案3.5.2函数函数fminimaxminmaxf1,f2,f3s.t.AXb(线性不等式约束)(线性不等式约束)AeqX=beq(线性等式约束)(线性等式约束)C(X)0(非线性不等式约束条(非线性不等式约束条件)件)Ceq(X)=0(非线性等式约束)(非线性等式约束)LbXUb(边界约束条件)(边界约束条件)一、多目标优化问题数学模型一、多目标优化问题数学模型各分目标函数各分目标函数二、优化函数使用格式二、优化函数使用格式x,fval,exitflag,output,grad,hessian=fminimax(fun,x0,A,b,Aeq,beq,Lb,Ub,Nlc,options,P1,P2)设置优化选项参数设置优化选项参数目标函数在最优解的海色矩阵目标函数在最优解的海色矩阵返回目标函数在最优解的梯度返回目标函数在最优解的梯度优化算法信息的一个数据结构优化算法信息的一个数据结构返回算法的终止标志返回算法的终止标志返回目标函数的最优值返回目标函数的最优值返回目标函数的最优解返回目标函数的最优解附加参数附加参数非线性约束条件的函数名非线性约束条件的函数名设计变量的下界和上界设计变量的下界和上界线性等式约束的常数向量线性等式约束的常数向量线性等式约束的系数矩阵线性等式约束的系数矩阵线性不等式约束的常数向量线性不等式约束的常数向量线性不等式约束的系数矩阵线性不等式约束的系数矩阵无定义时以空矩阵无定义时以空矩阵符号“符号“”代替代替3.5.2函数函数fminimax初始点初始点目标函数文件名目标函数文件名三、例题三、例题已知直径为已知直径为1单位长度的圆柱梁,要求将它制成矩形截面梁,满足重单位长度的圆柱梁,要求将它制成矩形截面梁,满足重量最轻和强度最大的条件,试确定矩形截面尺寸。
量最轻和强度最大的条件,试确定矩形截面尺寸。
解解:
(1)建立优化设计的数学模型建立优化设计的数学模型设计变量:
设计变量:
矩形截面的宽和高矩形截面的宽和高X=x1,x2T目标函数:
目标函数:
重量重量截面积:
截面积:
弯曲强度弯曲强度矩形截面矩量矩形截面矩量:
3.5.2函数函数fminimax6/xx)X(fmin2212minf1(X)=x1x2x1x2约束条件约束条件:
含性能约束和边界约束含性能约束和边界约束1xx)X(h22210x)X(g1101x)X(g120x)X(g2301x)X(g24变量变量x1的上下的上下限限变量变量x2的上下的上下限限等式约束等式约束性性能能约约束束边边界界约约束束3.5.2函数函数fminimax三、例题三、例题
(2)编制优化设计的编制优化设计的M文件文件x,fval,exitflag,output,grad,hessian=fminimax(fun,x0,A,b,Aeq,beq,Lb,Ub,Nlc,options,P1,P2)%矩形截面梁两目标优化设计的目标函数文件矩形截面梁两目标优化设计的目标函数文件functionf=JXL_2mb_MB(x)f
(1)=x
(1)*x
(2);%f1:
梁的截面积:
梁的截面积f
(2)=-x
(1)*x
(2)2/6;%f2:
梁的截面矩量梁的截面矩量%矩形截面梁两目标优化设计的约束函数文件矩形截面梁两目标优化设计的约束函数文件functionc,ceq=JXL_2mb_YS(x)ceq=x
(1)2+x
(2)2-1;%非线性等式约束非线性等式约束c=;%所所有非线性不等式约束有非线性不等式约束%矩形截面梁两目标优化设计矩形截面梁两目标优化设计x0=1;1;lb=0;0;ub=1;1;xopt,fopt=fminimax(JXL_2mb_MB,x0,lb,ub,JXL_2mb_YS)(3)运行结果运行结果Optimizationterminatedsuccessfully:
xopt=0.70710.7071fopt=0.5000-0.0589,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优化 设计 Matlab 工具箱 介绍 函数 使用方法
![提示](https://static.bingdoc.com/images/bang_tan.gif)