《基于MATLAB算法的机械优化设计.doc》由会员分享,可在线阅读,更多相关《基于MATLAB算法的机械优化设计.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于MATLAB算法的机械优化设计课程设计报告班级: 机0801姓名: 徐勤秀 学号: 指导老师:边义祥日期:2012.2.17基于MATLAB算法的机械优化设计摘要: 将MATLAB算法应用于机械优化设计,提出了MATLAB算法的优化原理及其数学模型的建立,给出求解方法,最后结合实例,求解机械优化设计的最优化问题。关键词:MATLAB;优化设计;非线性约束最小化1. 概论自MathWorks公司1984年推出MATLAB以来,历经20多年的发展和竞争,MATLAB语言就成为最具吸引力、应用最为广泛的数值科学计算语言。随着其功能的不断完善,可以说,MATLAB已成为集数值计算功能、符号计算功能
2、和计算可视化为一身的强大的科学计算语言。本文运用MATLAB6.5的优化工具求解机械工程设计中的最优化问题。在国民经济各部门和科学技术的各个领域中普遍存在着最优化问题,最优化问题就是从所有可能的方案中选择出最合理的、达到最优目标的方案,即最优方案,搜索最优方案的方法就是最优化方法。将MATLAB运用于最优化方法,使得机械优化设计更趋于科学性,同时MATLAB不用编写复杂的运算程序和各种难于掌握的优化算法,而且通俗易学,从而使优化问题更通俗化。MATLAB的最优化技术主要包括以下两个方面的内容:(1) 建立数学模型。即用数学方法来描述最优化问题。模型中的数学关系反映了最优化问题所要达到的目标和各
3、种约束条件。(2) 数学求解。数学模型建好以后,选择合理的优化方法进行求解。2.MATLAB优化算法的几何描述由于机械优化设计多数是非线性约束最小优化问题,通常要将问题转换为更简单的子问题,这些子问题可以求解并作为迭代过程的基础。早期的方法通常是通过构造惩罚函数等来将有约束的最优化问题转换为无约束最优化问题进行求解。现在,这些方法已经被更有效的基于K-T(Kuhh-Tucker)方程解的方法所取代。K-T方程是有约束最优化问题求解的必要条件,是非线性规划算法的基础,这些算法直接计算拉格朗日乘子,通过拟牛顿法更新过程,给K-T方程积累二阶信息,可以保证有约束拟牛顿法的线性收敛。这些方法称为序列二
4、次规划法(SQP法),因为在每次主要的迭代中都求解一次二次规划问题。MATLAB中的SQP法的实现主要分3步,即 格朗日函数Hessian矩阵的更新; 二次规划问题求解; 一维搜索和目标函数的计算。以下对MATLAB优化算法数学模型进行描述。(1) 设计变量 设计变量是指在机械设计过程中可以进行调整和优选的独立参数,分为连续变量和离散变量,而大多数机械优化设计中的设计变量都是连续变量。设计变量常表示为:X=x1,x2,x3T(2)目标函数目标函数是用来评价设计方案优劣的标准。任何一项机械设计方案的好坏总可以用一些设计指标来衡量,这些设计指标可表示为设计变量的函数,该函数就称为优化设计的目标函数
5、,它是设计变量的函数。一般表示为:f(x)=f(x1,x2,,xn)(3)约束条件对设计变量的取值加某些限制条件称为约束条件。按约束条件的形式不同,可分为非线性等式约束和不等式约束、线性约束和不等式约束等。(4)数学模型由设计变量、目标函数和约束条件三要素所组成的机械优化设计数学模型可表达为:在满足约束的条件下,寻求一组设计变量值,使得目标函数达到最优值。其数学模型可表达为:min f(x),XRs.t gu(X)0,u=1,2,m (非线性不等式约束)hv(X)=0,v=1,2,pn (非线性等式约束)Axb (线性不等式约束)Aeqx=beq (线性等式约束)lbxub (x的上界和下界)
6、式中,x,b,beq,lb,ub为向量,A,Aeq为矩阵,g(x),h(x)为函数。(5)MATLAB优化算法的实现本文将主要采用SQP法来求解非线性约束优化问题中的MATLAB,而此优化问题主要由fmincon函数来实现,常用的语法有:x=fmincon(fun,x0,A,b)x=fmincon(fun,x0,A,b,Aeq,Beq)x=fmincon(fun,x0,A,b,Aeq,Beq,lb,ub)x=fmincon(fun,x0,A,b,Aeq,Beq,lb,ub,nonlcon)x=fmincon(fun,x0,A,b,Aeq,Beq,lb,ub,nonlcon,options)x,
7、fval=fmincon()x,fval,exitflag=fmincon()x,fval,exitflag,output=fmincon()x,fval,exitflag,output,lambda=fmincon()x,fval,exitflag,output,lambda,grad=fmincon()x,fval,exitflag,output,lambda,grad,hession=fmincon()式中:x0为给定的初始值,A、b分别为不等式约束的系数,以矩阵方式输入。Aeq和Beq分别为线性等式约束的系数。Nonlcon用于计算非线性不等式约束g(x)和非线性等式约束h(x)。la
8、mbda为求解x处的拉格朗日乘子的lambda参数。Grad为求解x处目标函数的梯度。Hession为求解x处目标函数的Hession矩阵。在编写M文件时,可以根据不同的数字模型而采用相应的MATLAB语法。3 实例已知一压缩圆柱螺旋弹簧材料为65Mn,最大工作载荷为Pmax=40N,最小工作载荷为0,载荷变化频率为f=25Hz,弹簧寿命为104h,弹簧钢丝直径d取值范围为14mm,中径D2的取值范围为1030mm,工作圈数n不小于4.5圈,弹簧旋绕比C不小于4,弹簧一端固定,一端自由,工作温度为50度,弹簧变形量不小于10mm。试设计该弹簧,要求其质量最小。本题的优化目标是使弹簧质量最小,根
9、据圆柱螺旋弹簧的质量表达式:M=(n+n2)D2d2式中:-弹簧密度,对于65Mn钢,=7.8*10-6kg/mm3;n-弹簧工作圈数;n2-死圈数,取n2=2;D2-弹簧中径(mm);d-弹簧钢丝直径(mm)。(1)确定设计变量根据弹簧性能和结构上的要求,取弹簧钢丝直径d、工作圈数n及弹簧中径D2为设计变量,即:X=x1,x2,x3T(2)确定目标函数根据弹簧质量公式得到其目标函数为:f(X)=M=1.92510-5(x2+2)x12x3(3)确定约束条件强度约束:g1(X)=350-163x1 -2.86*x30.860刚度约束:g2(X)=x1-4x2x33-2.51030稳定性约束:g
10、3(X)=3.7x3-(x2+1.5)x1-4.410-3x1-4x2x330不发生共振约束:g4(X)=3.56105x1x2-1x33-3750弹簧旋绕比约束:g5(X)=x3x1-1-4.00对d、n、D2的取值约束:1.0d4.0,4.5n50,10D230由上可知,该压缩圆柱螺旋弹簧的优化设计是一个三维非线性不等式约束优化问题,共有5个非线性不等式约束和6个线性不等式约束,其数学模型为:min f(X)= M=1.92510-5(x2+2)x12x3s.t gi (x)0,i=1,2,11(4)编写目标函数和约束条件的M文件:function f=myfun(x)F=1.925*1e
11、-5*(x(2)+2)*x(1)2*x(3);编写非线性条件的M文件:functionc,ceq =mycon(x)c(1)=163*x(1)(-2.86)*x(3)0.86-350;c(2)=10-0.4*0.01*x(1)(-4)*x(2)*x(3)3;c(3)=(x(2)+1.5*x(1)+0.44*0.01*x(1)(-4)*x(2)*x(3)3-3.7*x(3);c(4)=375-3.56*1e5*x(1)*x(2)(-1)*x(3)(-2);c(5)=4-x(3)/x(1);然后,根据线性约束的系数和给定的初始值X(0)=2.0,5.0,25T以及变量的下界约束,通过调用目标函数和
12、非线性约束条件的M文件:x,fval,exitflag,output,lambda=fmincon(myfun(x),x0,A,b,lb,mycon(x)得出计算结果为:x1=1.6564,x2=4.5000,x3=16.1141,f(x)=0.0055所以,弹簧钢丝直径d、工作圈数n及弹簧中径D2分别取1.6564、4.5000、和16.1141时弹簧质量最小,为5.5g。根据实际,实际参数可分别取1.6、5.0和16.0,有:x=1.6 5.0 16.0,z=option253(x),则z=0.0055.故此时弹簧质量仍为5.5 g。根据以上计算可知:将MATLAB算法用于机械优化设计,可以大大简化计算过程,不需编写复杂的运算程序,从而获得很好的优化结果。参考文献:1 王沫然.MATLAB5.X与科学计算M.北京:清华大学出版社,2000.2 刘惟信.机械最优化设计(第二版)M.北京:清华大学出版社,2000.3 高健.机械优化设计基础M.北京:科学出版社,2000.4陈怀琛.MATLAB及其在理工课程中的应用指南:西安电子科技大学出版社,2000.