matlab四连杆优化设计_第1页
matlab四连杆优化设计_第2页
matlab四连杆优化设计_第3页
matlab四连杆优化设计_第4页
matlab四连杆优化设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、机械优化设计在matlab中的应用 东南大学机械工程学院*一 优化设计目的:在生活和工作中,人们对于同一个问题往往会提出多个解决方案,并通过各方面的论证从中提取最佳方案。最优化方法就是专门研究如何从多个方案中科学合理地提取出最佳方案的科学。由于优化问题无所不在,目前最优化方法的应用和研究已经深入到了生产和科研的各个领域,如土木工程、机械工程、化学工程、运输调度、生产控制、经济规划、经济管理等,并取得了显著的经济效益和社会效益。二 优化设计步骤:1.机械优化设计的全过程一般可以分为如下几个步骤:1)建立优化设计的数学模型;2)选择适当的优化方法;3)编写计算机程序;4)准备必要的初始数据并伤及计

2、算;5)对计算机求得的结果进行必要的分析。其中建立优化设计数学模型是首要的和关键的一步,它是取得正确结果的前提。优化方法的选取取决于数学模型的特点,例如优化问题规模的大小,目标函数和约束函数的性态以及计算精度等。在比较各种可供选用的优化方法时,需要考虑的一个重要因素是计算机执行这些程序所花费的时间和费用,也即计算效率。2.建立数学模型的基本原则与步骤 设计变量的确定;设计变量是指在优化设计的过程中,不断进行修改,调整,一直处于变化的参数称为设计变量。设计变量的全体实际上是一组变量,可用一个列向量表示:x=。 目标函数的建立;选择目标函数是整个优化设计过程中最重要的决策之一。当对某以设计性能有特

3、定的要求,而这个要求有很难满足时,则针对这一性能进行优化会得到满意的效果。目标函数是设计变量的函数,是一项设计所追求的指标的数学反映,因此它能够用来评价设计的优劣。目标函数的一般表达式为:f(x)=,要根据实际的设计要求来设计目标函数。 约束条件的确定。一个可行性设计必须满足某些设计限制条件,这些限制条件称为约束条件,简称约束。由若干个约束条件构成目标函数的可行域,而可行域内的所有设计点都是满足设计要求的,一般情况下,其设计可行域可表示为 在可行域中,任意设计点满足全部约束条件,称为可行解,但不是最优解,而优化设 计就是要求出目标函数在可行域的最优解。三 实例分析 (机械优化设计P241页例8

4、-5)设计一曲柄摇杆机构如图,要求:曲柄从且已知范围内变化。分析:1) 设计变量的确定决定机构尺寸的各杆长度,以及当摇杆按已知运动规律开始运行时,曲柄所载的位置角应列为设计变量,即:X= 考虑到机构的杆长按比例变化时,不会改变其运动规律,因此在计算时常取,而其他杆长则按比例取为的倍数。若取曲柄的初始位置角为极位角,则及相应摇杆位置角均为杆长的函数,几何图形关系如右图,其关系式为: =arcos (1) =arcos (2)将的长度代入上式(1),(2)得到:=arcos =arcos因此,只有为独立变量,设计变量减少,故最后的设计变量为: X=2) 目标函数的建立目标函数可根据已知的运动规律与

5、机构实际运动规律之间的偏差最小为指标来建立,即f(x)= min式中 期望输出角,; m 输入角等分数; 实际输出角,由下图得:a) 0< b) (3) 式中 将输入角分成30等分,并用近似公式计算,可得目标函数的表达式:f(x)=由题意知,传动角的变化范围是,则上式中变量的最后形式可以写成: 将带入(4) (5)得:为当时的理想输出角,其值在题目中已经给出:3)约束条件的确定 曲柄摇杆机构应满足曲柄存在条件,可得曲柄摇杆机构的传动角可得把约束条件简化( =5 = ,)其中满足条件,故最后一共有两个设计变量(),7个约束条件。4)优化计算 此问题的图解见上图,有7个约束条件构成了改优化模

6、型的可行域,而最优解在可行域内。优化方法选择: 该问题属于一般的约束非线性最优化类型,可以使用matlab优化工具箱里面的fmincon函数进行求解。 fmincon里面算法的选择:fmincon里面一共提供了largescale, 'medium-scale两种算法,由于此问题只有两个设计变量,维数较低,故采用medium-scale算法。medium-scale算法是采用SQP,算法中Hessian阵可以通过BFGS迭代,初始Hessian阵任给。注意BFGS公式中q项是需要计算目标函数梯度得到的。所以Hessian矩阵的近似计算是需要用到有限差分法。在采用'medium-

7、scale算法时,需提供其设计变量的初始点 的信息,而初始点的选择也将影响计算得收敛性和收敛速度,如果初始点选择得不恰当,可能最后函数不能收敛,得不到计算结果。精度的控制:为了得到更加精确地解,需要设置优化函数的控制精度,函数本身默认精度为1e-4,精度比较低,通过options的设置将精度提高到 1e-9,这样得到的结果更精确。以上两点通过设置options参数即可:options=optimset('largescale','off','display','off','Algorithm','activ

8、e-set','TolFun',1e-9);所有的程序编好以后,在命令窗口输入:youhua得到的matlab的运行结果如下: >> youhuax = 4.1574 2.2909 %最优解fval = 5.1899e-004 %目标函数最优点的值 exitflag = 5 %标志值,5表示重要方向导数小于规定的容许范围并且约束违背小于options.ToLCon output = iterations: 12 %迭代次数 funcCount: 40 %函数的评价次数 lssteplength: 1 stepsize: 7.6955e-005 algorit

9、hm: 'medium-scale: SQP, Quasi-Newton, line-search' %采用的中型算法 firstorderopt: 1.0832e-006 %一阶最优性条件 constrviolation: -1.0852e-006 message: 1x780 char %跳出信息lambda = lower: 2x1 double upper: 2x1 double eqlin: 0x1 double eqnonlin: 0x1 double ineqlin: 5x1 double ineqnonlin: 2x1 doublegrad = %函数在最优点处

10、梯度信息 1.0e-003 * 0.4888 0.4445hessian = %函数在最优点处海塞矩阵 0.0016 0.0075 0.0075 0.0468>>5)结果分析 采用fmincon求解的最优值:=4.1574; 2.2909;;采用算法:中型算法(mediun-scale)。这与课本给出的最优解:=4.1286;2.3325,=0.0156相比,计算精度更高,最优解的数值更精确,故计算准确度高。 用matlab绘制输入输出曲线关系图上图中(单位为“度”)蓝色的线代表曲柄摇杆机构的实际输出角与输入角的关系,红色的线代表理想输出角与输入角的关系。可以看出:实际输出和理论输

11、出曲线之间存在线性误差,其最大线性误差为,误差在允许的范围之内,故结果的可信度也较大,运用matlab优化工具箱计算所得结果正确。小结通过结合实际问题的分析,计算,求解,更加深入地了解和掌握机械优化设计的过程和步骤,比较重要的步骤是数学模型的建立,以及设计变量的选取,以及数学模型的尺度变换,根据机构实际工作需要,建立目标函数的约束条件等等,当数学模型建好以后,剩下的工作可以再matlab里面完成,而matlab里面的优化工具箱,给用户提供了多种优化函数,使用者只需要将数学模型按要求编写成子程序嵌入已有的优化程序即可。 在设计过程中也遇到一些困难,比如说在在用matlab计算时,计算机已知处于b

12、usy状态,得不到函数的最优解,最后反复的检查,终于找的了其原因,是由于初始点选择不恰当引起的,如果初始点选择得好,可以节省计算时间和计算空间,故初始点的选取比较重要。 附录1. 编写目标函数M文件myfun.m: function f=myfun(x) f=0; %函数f赋初值a0=acos(1+x(1)2-x(2)2+25)/(10*(1+x(1); %初始计算点曲柄和摇杆的角度b0=acos(1+x(1)2-x(2)2-25)/(10*x(2);i=2;while(i<=31) %设置迭代次数为30次 a(i)=a0+(pi/2)*(i/30); % 计算曲柄各分度的角度值 b(i

13、)=b0+2*(a(i)-a0)2/(3*pi); % 计算摇杆各分度的角度值 r=sqrt(26-10*cos(a(i); c(i)=acos(r2+x(2)2-x(1)2)/(2*x(2)*r); d(i)=acos(r2+24)/(10*r); if a(i)<=pi e(i)=pi-c(i)-d(i); %计算摇杆输出的实际值 else if a(i)<=2*pi e(i)=pi-c(i)+d(i); end end a(1)=a0; f=f+(b(i)-e(i)2)*(a(i)-a(i-1); %目标函数的计算 i=i+1; end2. 编写非线性不等式约束M文件constrain.m: functionc ceq=constrain(x)c=36-x(1)2-x(2)2-1.414*x(1)*x(2); x(1)2+x(2)2-1.414*x(1)*x(2)-16; %非线性不等式约束 ceq=;3. 调用fmincon优化函数,建立youhua.m文件: lb=1;1; %设计变量的下界 x0=4;2; %迭代初始点A=-1,0;0,-1;-1,-1;1,-1;-1,1; %线性不等式约束b=-1;-1;-6;4;4;options=optimset('l

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论