matlab在优化设计中的应用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Matlab在优化设计中的应用摘要常见的优化问题包括线性规划、无约束优化、约束优化、最下二乘优化、多目标规划等。本文研究了matlab在这些常见优化问题中的应用及求解。在进行研究本课题之前,我们先通过网络、电子书刊等各种有效渠道获取我们所需信息,在充分了解与熟练掌握了各种优化问题的具体特点及性质后,我们给出了关于如何用matlab进行多类优化问题的求解基本方法,在此前提下,为了体现该软件在这些优化领域的实际应用效果,我们结合若干个优化问题的实例进行分析、建模、以及运用matlab编程求解,在求解过程中,通过得到的精确数据和反应结果的图例,我们了解到matlab工具箱的功能强大,是处理优化问题的非常方便的编程工具。关键词:matlab优化问题二、基本概念2.1.1线性规划线性规划是优化的一个重要分支。它在理论和算法上都比较成熟,在实际中有广泛的应用。例如数学表达形式:nixbxaxaxabxaxaxabxaxaxatsxcxcxcimnmnmmnnnnnn,,2,1,0..min221122222121112121112211在MTLAB提供的优化工具箱中,解决规划的命令是linprog,它的调用格式如下,),,(bAclinprogx求解下列形式的线性规划:bAxtsxcT..min),,,,(beqAeqbAclinprogx求解下面形式的线性规划:beqxAeqbAxtsxcT..min若没有不等式约束bAx,则只需命令[][],bA。),,,,,,(ublbbeqAeqbAclinprogx求解下面形式的线性规划:ubxlbbeqxAeqbAxtsxcT..min若没有不等式约束bAx,则只需令[][],bA;若只有下界约束,则可以不用输入ub。2.1.2无约束优化算法对于无约束优化问题,已经有许多有效的算法。这些算法基本都是迭代法,它们都遵循下面的步骤:①选取初始点x0,一般来说初始点越靠近最优解越好;②如果当前迭代点xk不是原问题的最优解,那么就需要找一个搜索方向pk,使得目标函数f(x)从xk出发,沿方向pk有所下降;③用适当的方法选择步长ak(≥0),得到下一个迭代点xk+1=xk+akpk;④检验新的迭代点xk+1是否为原问题的最优解,或者是否与最优解的近似误差满足预先给定的容忍度。2.1.3单变量约束优化问题单变量约束优化问题的标准形式为bxatsxf..)(min即为求目标函数在区间(a,b)上的极小点。2.1.4最小二乘法优化最小二乘优化时一类非常特殊的优化问题,它在实际中,尤其是在处理一些曲线拟合问题、线性方程组无解时的近似解等问题,用的非常多。最小二乘优化问题的目标函数一般为若干个函数的平方和,即:minRxxfxF121)(min2.1.5多目标规划问题在大多数的优化、中,都将多目标规划的一般形式表述为:TpxfxfxfxF21)(minnixhmixgtsii,,2,1,0,,2,1,0..其中,xfi、xgi、xhi既可以为线性函数,也可以为非线性函数。三、基本方法对于解决那些常见优化问题,基本思路将在解题的过程中得到体现。我们给出具体一些建模实例来体现基本算法:3.1就下列命令求下面分段函数的极小值点。1,3411,11,56222xxxxxxxxxf解:首先编写目标函数的M文件如下:endxxyelsexyxxelseifxxyxifxexampleyfunction;342;121&1;5621)(78然后为了分析直观,利用MTLAB画出目标函数的图像,步骤如下:x=-5:0.01:5;n=length(x)n=1001fori=1:1001y(i)=example8_7(x(i));end3.2对于下面的线性规划问题:min–x1-3x2s.t.02,18221621xxxxxx先利用图解法求其最优解,然后利用优化工具箱中的linprog命令求解。解〈图解法〉先利用MATLAB画出该线性规划的可行集及目标函数等值线:clearsymsx1x2f=-x1-3*x2;c1=x1+x2-6;c2=-x1+2*x2-8;ezcontourf(f)axis([0606])holdonezplot(c1)ezplot(c2)legend('f等值线','x1+x2-6=0','-x1+2*x2-8=0')title('利用图解法求线性规划问题')gtext('x')运行结果如下图:从上图中可以看出可行集的顶点x(4/3,14/3)即为线性规划的最优解,它也是两个线性约束的交点。3.3求解下面的最小二乘优化问题:2221mindCx225,513212..321321321xxxxxxxxxts其中101,023101210dC程序输入及结果clearA=[121;-213];b=[11]';C=[0-12;10-1;-320];d=[101]';lb=[-5-5-2]';ub=[552]';Aeq=[];beq=[];[x,resnorm,residual,exitflag,output,lambda]=lsqlin(C,d,A,b,Aeq,beq,lb,ub)Warning:Large-scalemethodcanhandleboundconstraintsonly;switchingtomedium-scalemethod.Warning:Large-scalemethodcanhandleboundconstraintsonly;usingmedium-scalemethodinstead.Inlsqlinat249Optimizationterminated.x=%最优解-0.4578-0.31330.1325resnorm=%残差向量2-范数的平方,即reanorm=norm(residual)^20.5904residual=%残差向量-0.4217-0.5904-0.2530exitflag=1%函数收敛到最优解output=iterations:4%迭代4次algorithm:'medium-scale:active-set'%调用的积极集算法firstorderopt:[]cgiterations:[]message:'Optimizationterminated.'lambda=%Lagrange乘子lower:[3x1double]upper:[3x1double]eqlin:[0x1double]ineqlin:[2x1double]ineqlin:[2xldouble]3.4求下面优化问题的最优解,并求出相应的梯度、Hessian矩阵以及Lagrang乘子。222112minxx020..21221xxxxts解现将该优化问题转化为下面的标准形式:222112minxx20..21221xxxxts编写目标函数的M文件如下:functiony=example8_9(x)y=(x(1)-2)^2+(x(2)-1)^2;function[c1,c2]=nonlin(x)c1=x(1)^2-x(2);c2=[];clearA=[11];b=2;Aeq=[];beq=[];lb=[];ub=[];x0=[00]';[x,fval,exitflag,output,lambda,g,H]=fmincon(@example8_9,x0,Aeq,beq,lb,ub,@nonlin)Warning£ºLarge-scale£¨trustregion£©methoddoesnotcurrentlysolvethistypeofproblem£¬switchingtomedium-scale£¨linesearch£©¡£四、实际应用4.1V带轮优化设计提出问题:设计带式输送机传动装置上的普通V带传动,已知电动机额定功率P=4Kw,转速n1=1440r/min,传动比i=3,采用A型V带,每天工作不超过10小时,设计带根数尽量少,带轮直径和中心距尽量小的方案。4.1.1数学模型建立(1)设计变量:V带传动的独立设计变量是小带轮直径和带的基准长度即X=[1x,2xT]=[1dd,dLT](2)目标函数包括三个分目标:a.小带轮直径min1f(X)=1dd=1xb.中心距min2f(X)=a=1a+221aa其中,1a=dL/4-(i+1)1dd/8,2a=(i-12)21dd/8c.带的根数min3f(X)=z=AKP/(0P+0P)KLK(3)约束条件小带轮直径不小于推荐的A型带轮最小直径mmd100min即)(1Xg11min100xddd0带速不超过最大带速smv/25max即02560000/60000/)(1max12ndvndXgdd小带轮包角大于。120max即0)/21(180120/)1(1[180)(11min1min3axaidXgd中心距大于)1(7.01idd,即7.0)(4Xg08.2)1(11axaidd小带轮基准直径在80—100mm之间,中心距在320—400mm之间,带的根数为1—4。]5.1;40;10[])2/14(;)2/320400(;)2/80100[(];;[222222321优化设计%V带传动多目标优化设计P=4;i=3;n1=1440;KA=1.1;%已知条件x0=[100;1250];%初始点(小带轮直径,V带基准长度)lb=[80;630];%最小带轮直径和A型V带基准长度ub=[100;4000];%最大带轮直径和A型V带基准长度goal=[75,280,2];%分目标w=[10^-2,40^-2,1.5^-2];%分目标加权系数[xopt,fopt]=fgoalattain(@VDCD_3mb_MB,x0,goal,w,[],[],[],[],lb,ub,@VDCD_3mb_YS)functionf=VDCD_3mb_MB(x)P=4;i=3;KA=1.1;f(1)=x(1);%f1小带轮基准直径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中心距P0=0.02424*x(1)-1.112879;%单根带额定功率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;%V带根数function[g,ceq]=VDCD_3mb_YS(x)i=3;n1=1440;g(1)=100-x(1);g(2)=pi*x(1)*n1/6e4-25;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);g(4)=0.7*x(1)*(i+1)-a;ceq=[];4.1.3运行结果:Optimizationterminatedsuccessfully:Searchdirection

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功