版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MATLAB 在机械优化设计中的应用在机械优化设计中的应用 湖南农业大学 工学院 2007年9月 主讲主讲:* 绪绪 论论 1.1 MATLAB系统简介系统简介 MATLAB 名字由 MATrix 和 LABoratory 两词的前三个字母组合而成。那 是 20 世纪七十年代后期的事:时任美国新墨西哥大学计算机科学系主任的 Cleve Moler 教授出于减轻学生编程负担的动机,为学生设计了一组调用 LINPACK 和 EISPACK 库程序的“通俗易用”的接口,此即用 FORTRAN 编写的 萌芽状态的 MATLAB 。 经几年的校际流传,在 Little 的推动下,由 Little 、 M
2、oler 、 Steve Bangert 合作,于 1984 年成立了 MathWorks 公 司,并把 MATLAB 正式推向市场。从这时起, MATLAB 的内核采用 C 语言编写, 而且除原有的数值计算能力外,还新增了数据图视功能。 MATLAB 以商品形式出现后,仅短短几年,就以其良好的开放性和运行的 可靠性,使原先控制领域里的封闭式软件包(如英国的 UMIST ,瑞典的 LUND 和 SIMNON ,德国的 KEDDC )纷纷淘汰,而改以 MATLAB 为平台加以重建。 在时间进入 20 世纪九十年代的时候, MATLAB 已经成为国际控制界公认的标 准计算软件。 到九十年代初期,在
3、国际上 30 几个数学类科技应用软件中, MATLAB 在数值计算方面独占鳌头,而 Mathematica 和 Maple 则分居符号计算 软件的前两名。 Mathcad 因其提供计算、图形、文字处理的统一环境而深受中学生欢迎。 在欧美大学里,诸如应用代数、数理统计、自动控制、数字信号处理、模拟与 数字通信、时间序列分析、动态系统仿真等课程的教科书都把 MATLAB 作为内 容。这几乎成了九十年代教科书与旧版书籍的区别性标志。在那里, MATLAB 是攻读学位的大学生、硕士生、博士生必须掌握的基本工具。 在国际学术界, MATLAB 已经被确认为准确、可靠的科学计算标准软件。在许 多国际一流学
4、术刊物上,(尤其是信息科学刊物),都可以看到 MATLAB 的应 用。 在设计研究单位和工业部门, MATLAB 被认作进行高效研究、开发的首选 软件工具。如美国 National Instruments 公司信号测量、分析软件 LabVIEW , Cadence 公司信号和通信分析设计软件 SPW 等,或者直接建筑在 MATLAB 之上, 或者以 MATLAB 为主要支撑。又如 HP 公司的 VXI 硬件, TM 公司的 DSP , Gage 公司的各种硬卡、仪器等都接受 MATLAB 的支持。 MATLAB具有以下几个特点具有以下几个特点: 功能强大的数值运算功能 强大的图形处理能力 高级
5、但简单的程序环境 丰富的工具箱 优化工具箱中的所有函数都对应一个MATLAB 6.5 的.M文件(关于.M文件请查 阅相关MATLAB 6.5 文献),这些.M通过使用MATLAB 6.5 基本语句实现了具体的 优化算法.可以在 MATLAB 6.5 命令窗口键入命令:type function_name,来查看 相应函数的代码. 1.2 优化工具箱的工程应用步骤优化工具箱的工程应用步骤 当量化地求解一个实际的最优化问题时,首先要把这个问题转化为一个数学问题. 建立数学模型:然后对建立的数学模型进行具体分析选择合适的优化算法: 最后根据选定的优化算法,编写计算程序进行求解用MATLAB 6.优
6、化工具 箱解决实际应用问题可以概括为以下三个步骤: (1) 根据所提出的最优化问题,建立最优化问题的数学模型确定变量,列出约 束条件和目标函数 (2) 对所建立的模型进行具体分析和研究选择合适的最优化求解方法 (3) 根据最优化方法的算法,列出程序框图,选择优化函数和编写语言程序,用 计算机求出最优解 利用MATLAB的优化工具箱,可以求解线性规划,非线性规划和多目标规划问 题。具体而言,包括线性,非线性最小化,最大最小化,二次规划,半无限问 题,线性,非线性方程化,方程求解,曲线拟合,二次规划等问题中大型课题 的求解方法,为优化方法在工程中的实际应用提供了更方便,快捷的途径。 1.3 优化问
7、题的工程背景优化问题的工程背景 随着生产,经济,技术的发展,工程技术,管理人才在实际工作中常常会面临 这类问题:在工程设计中,怎样的分配方案既能满足各方面的基本要求,又能降低 成本;在资源配中,怎样的分配既能满足各方面的基本要求,又能获得好的经济效 益;在生产计划安排中,选择怎样的计划才能提高产值和利润;在原料配比问题 中,怎样确定各种万分的比例才能提高质量,降低成本;在城建规划中,怎样安排 工厂,机关,学校,商店,医院,住宅和其它单位的合理布置,才能方面群众,有 利于城市各行各行的发展这一类问题的共同点就是迁出最合理,达到事先预定的 最优目标的方案,这就是工程问题最优化问题 最优化方法发展很
8、快,包含多个分支,如线性规划,整数规划,非线性规划,动 态规划,多目标规划等。 2.1 线性规划问题与线性规划问题与MATLAB实现实现 线性规划问题是目标函数和约束条件均为线性函数的问题,MATLAB解决的线性 规划问题的标准形式为: min f(x) x R s.t. A.xb Aeq.x=beq lb x ub 其中f、x、b、beq、lb、ub为向量,A、Aeq为矩阵。 其它形式的线性规划问题都可经过适当变换化为此标准形式。 在MATLAB6.5版中,线性规划问题(Linear Programming)已用函数linprog取 其它形式的线性规划问题都可经过适当变换化为此标准形式。 函
9、数 linprog 调用格式 x = linprog(f,A,b) %求min f=f(x) x Rs.t. A.xb 线性规划的最优解。 x = linprog(f,A,b,Aeq,beq) %等式约束Aeq.x=beq,若没有不等式约束,则A= ,b= 。 x = linprog(f,A,b,Aeq,beq,lb,ub) %指定x的范围lbxub ,若没有等式约束Aeq.x=beq , 则Aeq= ,beq= x = linprog(f,A,b,Aeq,beq,lb,ub,x0) %设置初值x0 x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options) % o
10、ptions为指定的优化参数 x,fval = linprog() % 返回目标函数最优值,即fval= f (x)。 x,fval,lambda,exitflag = linprog() % lambda为解x的Lagrange乘子。 x, favl,lambda,fval,exitflag = linprog() % exitflag为终止迭代的错误条件。 x,fval, lambda,exitflag,output = linprog() % output为关于优化的一些信息 说明 若exitflag0表示函数收敛于解x,exitflag=0表示超过函数估值或迭代的最 大数字,exitf
11、lag1 g(1)=2*x(1); %用提供的梯度g使函数最小化 g(2)=50*x(2); end 输入下列系数 options(6)=1; options(7)=1; %采用DFP变尺度方法立方插值法 options=optimset(Display,iter,LargeScale,on,GradObj,on);%设置 优化参数 x0=2,2; x,fval,exitflag,output,grad=fminunc(jxyh4_1fun,x0,options) 结果为:结果为: x = 1.0e-013 * 0.1155 0.0044 fval = 1.3825e-028 exitflag
12、 = 1 output = iterations: 1 funcCount: 2 cgiterations: 1 firstorderopt: 2.3093e-014 algorithm: large-scale: trust-region Newton message: 1x137 char grad =1.0e-013 * 0.2309 0.2220 Norm of First-order Iteration f(x) step optimality CG-iterations 0 104 100 1 1.38248e-028 2.82843 2.31e-014 1 例例.2 求下面的优化
13、问题求下面的优化问题(变尺度法变尺度法) 对函数f(x)=x12+2x22-4x1-2x1x2,当给定初值x0=1,1,求其最小值x. 编一个编一个M文件文件=jxyh4_2fun (x).m,返回返回x处的函数值处的函数值f. function y=jxyh4_2fun(x) y=x(1)2+2*x(2)2-4*x(1)-2*x(1)*x(2); %目标函数的M文件 输入下列系数输入下列系数 options(6)=0; options(7)=0; %采用DFP方法混合插值 法 options=optimset(Display,iter,LargeScale,off,); %设置优化参数 x0
14、=1,1; x,fval,exitflag,output=fminunc(jxyh4_2fun,x0,options) 结果为:结果为: x = 4.0000 2.0000 fval = -8.0000 exitflag = 1 output = iterations: 3 funcCount: 12 stepsize: 1 firstorderopt: 2.3842e-007 algorithm: medium-scale: Quasi-Newton line search message: Optimization terminated: relative infinity-norm of
15、 gradient less than options.TolFun. Iteration Func-count f(x) Step-size infinity-norm 0 3 -3 4 1 6 -5.5 0.25 2 2 9 -6.4 1 1.6 3 12 -8 1 2.38e-007 例例4.3 求使方程求使方程 的最小化当给定初值x0=pi/3,pi/3; 求其最小值x 编一个M文件y=jxyh4_3fun (x).m,返回x处的函数值f. function f=jxyh4_3fun(x) f=sin(x(1)+cos(x(1)+ sin(x(2)+cos(x(2)+ sin(x(1)
16、*cos(x(2); 输入下列系数输入下列系数 x0=pi/3,pi/3; options=optimset(Display,iter,LargeScale,off); %设置优化参数 x,fval,exitflag,output=fminunc(jxyh4_3fun,x0,options) 结果为:结果为: x = 3.6297 4.2242 fval = -2.4844 exitflag = 1 output = iterations: 9 funcCount: 39 stepsize: 1 firstorderopt: 1.1495e-007 algorithm: medium-scal
17、e: Quasi-Newton line search message: Optimization terminated: relative infinity-norm of gradient less than options.TolFun. 212211 cossincossincossin)(xxxxxxxf Gradients Iteration Func-count f(x) Step-size infinity-norm 0 3 3.16506 1.12 1 9 -0.985033 2.38021 0.932 2 12 -1.87199 1 1.01 3 21 -2.46878 0
18、.0614031 0.159 4 24 -2.47689 1 0.112 5 27 -2.48442 1 0.006 6 30 -2.48443 1 0.00133 7 33 -2.48444 1 4.06e-005 8 36 -2.48444 1 6.42e-006 9 39 -2.48444 1 1.15e-007 . 4.4 在MATLAB中,多变量非线性无约束优化问题也可以调用函数 fminsearch fminsearch函数是一个M文件,其算法基于单纯形法进行计算适合解决二次以 上的问题,并问题为高度非线性时,具有稳定性但是不适合求解平方和问题 函数函数 fminsearch 调用
19、格式调用格式 : x = fminsearch(fun, x0 ) %给定初值x0,求fun 函数的局部极小点xx0可以是标量, 矢量,矩阵 x = fminsearch(fun, x0,options ) %用options参数指定的优化参数进行求解 x,fval = fminsearch() %返回x处目标函数的值到fval x,fval,exitflag = fminsearch() %返回exitflag值描述fminunc 函数的退出条件 x,fval,exitflag,output = fminsearch() %返回包含优化信息的结构输出 例例4.4 求使方程求使方程 的最小化当
20、给定初值x0=1; 求其最小值x 编一个编一个M文件文件y=jxyh4_4fun (x).m,返回返回x处的函数值处的函数值f. function f=jxyh4_4fun(x) f=e(-x)+x2; 2 ( ) x f xex 输入下列系数输入下列系数 x0=1; options=optimset(Display,iter,LargeScale,off); %设置优化参数 x,fval,exitflag,output=fminsearch(jxyh4_4fun,x0,options) 结果为:结果为: Gradients Iteration Func-count f(x) Step-siz
21、e infinity-norm 0 3 3.16506 1.12 1 9 -0.985033 2.38021 0.932 2 12 -1.87199 1 1.01 3 21 -2.46878 0.0614031 0.159 4 24 -2.47689 1 0.112 5 27 -2.48442 1 0.006 6 30 -2.48443 1 0.00133 7 33 -2.48444 1 4.06e-005 8 36 -2.48444 1 6.42e-006 9 39 -2.48444 1 1.15e-007 x = 0.3518 fval = 0.8272 exitflag = 1 outp
22、ut = iterations: 16 funcCount: 32 algorithm: Nelder-Mead simplex direct search message: 1x196 char 5.1 有约束的非线性规划问题的有约束的非线性规划问题的MATLAB实现实现 这些问题通常用基于K-T(Kuhn-Tucker)方程解的方法,直接计算拉格朗日乘 子用 拟牛顿法更新过程这些方法称为二次规划法(SQP) 利用MATLAB解决有约束的非线性规划问题问题调用函数 fmincon : 利用 fmincon 函数求解多变量的有约束的最小值:其数学模型为: 式中,x, b, beq, lb和ub
23、为矢量,A和Aeq为矩阵,c(x)和ceq(x)为函数,返回标 量f(x),c(x)和ceq(x)可以是非线性函数 函数函数 fmincon 调用格式调用格式 : x=fmincon(fun,x0,A,b) 给定初值x0,求fun函数的极小值x,fun函数的约束条件为 A*x=b, x0可以是标量,矢量,矩阵。 x=fmincon(fun,x0,A,b,Aeq,beq) 最小化fun函数,约束条件为Aeq*x=beq和A*x=b。若 没 有不等式存在,则令Aeq=,beq=。 min( ) . . . ( )0 ( )0 x f x stA xb Aeq xbeq c x ceq x lbxu
24、b x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub) 定义设计变量x的下界lb和上界ub。使得有 lb=x=ub。若无等式则有:Aeq=,beq=; x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)在上面的基础上,在nonlcon参数中提供 非线性不等式c(x)和等式ceq(x),通常也以M文件的方式调用。Fmincon函数也要求 c(x)=0且ceq(x)=0当无边界存在时,令lb=,ub= x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) 用options参数指定的优化参数 进
25、行求解 x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,P2) 提供另外的参数P1,P2等, 传输给目标函数fun和nonlin如果不需要这些变量,则传递空矩阵到A,b,Aeq,beq, lb,ub,nonlcon, options中 x,fval= fmincon(.) 将解x处的目标函数的值返回到fval参数中 x,fval,exitflag=fmincon(.) 返回exitflag的值,描述函数的输出条件 x,fval,exitflag,output=fmincon(.) 返回包含优化作息的结构输出 x,fval,exitfl
26、ag,output,lambad=fmincon() 返回解x处包含拉格朗子乘子的lambad参数 x,fval,exitflag,output,lambad,grad=fmincon() 返回解x处fun函数的梯度 x,fval,exitflag,output,lambad,grad,hess=fmincon() 返回解x处fun函数的hess矩阵 各调用格式中,nonlcon参数计算非线性不等式约束c(x)2 Gc= % 不等式的梯度 Gceq= %等式的梯度 end 5.1 计算计算 有约束的非线性规划问题有约束的非线性规划问题 例题5-1 试求点集A(x1 , x2 , x3)和点集B
27、 (x4 , x5 , x6)之间的最短距离。限制条件为 由图可知,点集A(x1 , x2 , x3)在球面上取 点。点集B (x4 , x5 , x6)在圆柱面上取点。因此该 问题就是求这两个几何体间的最短距离的约束 优化问题,其数学模型为。 222 5 123 22 (3)1 45 48 6 xxx xx x 142536 1123 245 36 36 min( )()2()2()2 22250 (3)22 10 80 40 f xxxxxxx stgxxx gxx gx gx 编一个编一个M文件文件=jxyh5_1fun (x).m,返回返回x处的函数值处的函数值f. function
28、f=jxyh5_1fun(x) f=(x(1)-x(4)2+(x(2)-x(5)2+(x(3)-x(6)2; %目标函数的M文件 由于约束条件中非线性约束由于约束条件中非线性约束,所以要编写一个描述非线性约束条件的所以要编写一个描述非线性约束条件的M文件文件 jxyh5_1con(x).m: function c,ceq=jxyh5_1con(x) c(1)=x(1)2+x(2)2+x(3)2-5; c(2)=(x(4)-3)2+x(5)2-1; ceq=; 下一步给定初值,给定变量的下限约束,并调用优化过程。 输入下列系数输入下列系数 A=; b=; Aeq=; beq=; lb=-sqrt
29、(5),-sqrt(5),-sqrt(5),2,-1,4; ub=sqrt(5),sqrt(5),sqrt(5),4,1,8; x0=1,1,1,3,1,5; options=optimset(Display,iter,LargeScale,off); x,fval,exitflag,output,lambad=fmincon(jxyh5_1fun,x0,A,b,Aeq,beq,lb,ub,jxyh5_1con,opt ions) 结果为:结果为: max Directional First-order Iter F-count f(x) constraint Step-size deriva
30、tive optimality Procedure 0 7 20 0 1 16 9.62539 0.3057 0.5 -14.7 3.5 2 24 5.7322 1.444 1 0.789 3.87 3 32 4.43066 0.7698 1 0.477 1.11 4 40 5.016 0.5863 1 1.23 1.92 5 48 4.71722 0.2918 1 -0.00998 0.269 6 56 4.99527 0.004732 1 0.282 0.0741 7 64 5 1.48e-006 1 0.00473 0.000828 8 72 5 1.116e-007 1 1.29e-0
31、06 0.000102 Hessian modified Optimization terminated: Magnitude of directional derivative in search direction less than 2*options.TolFun and maximum constraint violation is less than options.TolCon. Active inequalities (to within options.TolCon = 1e-006): lower upper ineqlin ineqnonlin 4 1 6 2 x = 1
32、.0000 -0.0000 2.0000 2.0000 -0.0000 4.0000 fval = 5.0000 exitflag = 5 output = iterations: 8 funcCount: 72 stepsize: 1 algorithm: medium-scale: SQP, Quasi-Newton, line-search firstorderopt: 1.0234e-004 cgiterations: message: 1x172 char lambad = lower: 6x1 double upper: 6x1 double eqlin: 0 x1 double
33、eqnonlin: 0 x1 double ineqlin: 0 x1 double ineqnonlin: 2x1 double 所以当x = 1.0000 -0.0000 2.0000 2.0000 -0.0000 4.0000时, 目标函数有最小值 fval = 5.0000。 exitflag =5,表示过程成功收敛于x处。 Output输出变量显示民收敛中的迭代次数、目标函数计算次数步长算法等信息。 Lambda则包含模型信息。 5-2 求解含有等式约束问题的最优解,并用求解含有等式约束问题的最优解,并用MATlab计算下列约束优化问题。计算下列约束优化问题。 MATLAB过程 编一
34、个编一个M文件文件jxyh5_2fun(x).m,返回返回x处的函数值处的函数值f。 function f=md65fun(x) f=x(2)+x(1); 由于约束条件中非线性约束由于约束条件中非线性约束,所以要编写一个描述非线性约束条件的所以要编写一个描述非线性约束条件的M文件文件 jxyh5_2con(x).m: function c,ceq=jxyh5_2con(x) c=log(x(1); ceq=x(1)+x(2)-1; 下一步给定初值下一步给定初值,给定变量的下限约束给定变量的下限约束,并调用优化过程。并调用优化过程。 options=optimset(Display,iter,L
35、argeScale,off); x0=1,0; x,fval,exitflag,output,lambda=fmincon(md65fun,x0,md65con,options) 21 11 112 min . .ln0 10 f xxx stgxx h xxx 计算结果为计算结果为: max Directional First-order Iter F-count f(x) constraint Step-size derivative optimality Procedure 0 3 1 0 1 7 1 0 1 0 2 Optimization terminated: first-orde
36、r optimality measure less than options.TolFun and maximum constraint violation is less than options.TolCon. Active inequalities (to within options.TolCon = 1e-006): lower upper ineqlin ineqnonlin 1 x = 1 0 fval = 1 exitflag = 1 output = iterations: 1 funcCount: 7 stepsize: 1 algorithm: medium-scale:
37、 SQP, Quasi-Newton, line-search firstorderopt: 1.1102e-016 cgiterations: message: 1x143 char lambda = lower: 2x1 double upper: 2x1 double eqlin: 0 x1 double eqnonlin: -1.0000 ineqlin: 0 x1 double ineqnonlin: 0 5-3 如图所示,已知跨距为L、截面为矩性的简支梁,其材料密度为,许用弯曲应力 为,允许挠度为,在梁的中点作用一集中载荷P,梁的截面宽度b不得小于,现要求设计 此梁,使其重量最轻,
38、试写出其优化数学模型。 若 试用MATlab优化工具计算。考虑简支梁自重后数学模型 令 x1=b, x2=h转化数学模型 3 min 7.8 70 5 P=50000kg 50 L=5.0m a T MPm fmm bmm 2 22 4 3 min min 33 () 24 5 38448 0 0 fPgbhL PLghL st bhbh PgbhLPL ff EIEI bb h MATLAB过程过程 编一个编一个M文件文件jxyh5_3fun(x).m,返回返回x处的函数值处的函数值f。 function f=jxyh5_3fun(x) f=5*1e4*0.05*5*x(1)*x(2)*9.
39、8; 由于约束条件中非线性约束由于约束条件中非线性约束,所以要编写一个描述非线性约束条件的所以要编写一个描述非线性约束条件的M文件文件 jxyh5_3con(x).m: function c,ceq=jxyh5_3con(x) c(1)=6*(5*1e4*5/4+7.8*1e3*9.8*x(1)*x(2)*52/8)/(x(1)*x(2)2)-7*1e7; c(2)=5*7.8*1e3*9.8*x(1)*x(2)*54/(384*2*1e11*x(1)*x(2)2/12)+5*1e4*53/(48*2*1e11*x (1)*x(2)2/12)-0.005; ceq=; 下一步给定初值下一步给定
40、初值,给定变量的下限约束给定变量的下限约束,并调用优化过程。并调用优化过程。 options=optimset(Display,iter,LargeScale,off); x0=0.08,0.08; lb=0.05,0; ub=; x,fval,exitflag,output,lambda=fmincon(jxyh5_3fun,x0,lb,ub,jxyh5_3con, options) 计算结果为计算结果为: max Directional First-order Iter F-count f(x) constraint Step-size derivative optimality Proc
41、edure 0 3 784 6.803e+008 Infeasible start point 1 7 805.593 3.745e+008 1 -168 6.57e+003 2 11 1149.16 1.507e+008 1 344 4.43e+003 Hessian modified 3 15 1548.41 5.302e+007 1 399 2.73e+003 4 19 1889.97 1.342e+007 1 342 2.53e+003 5 23 2046.3 1.485e+006 1 156 1.71e+003 6 27 2068.21 2.326e+004 1 21.9 139 7
42、 31 2068.56 5.913 1 0.354 0.195 8 35 2068.56 0 1 9.01e-005 3.06e-005 Hessian modified Optimization terminated: first-order optimality measure less than options.TolFun and maximum constraint violation is less than options.TolCon. Active inequalities (to within options.TolCon = 1e-006): lower upper in
43、eqlin ineqnonlin 1 1 x = 0.0500 0.3377 fval = 2.0686e+003 exitflag = 1 output = iterations: 8 funcCount: 35 stepsize: 1 algorithm: medium-scale: SQP, Quasi-Newton, line-search firstorderopt: 7.2760e-012 cgiterations: message: 1x143 char lambda = lower: 2x1 double upper: 2x1 double eqlin: 0 x1 double
44、 eqnonlin: 0 x1 double ineqlin: 0 x1 double ineqnonlin: 2x1 double 所以当x = 0.0500 0.3377 时, 目标函数有最小值 fval = 2.0686e+003 。 exitflag =1,表示过程成功收敛于x处。 Output输出变量显示民收敛中的迭代次数、目标函数计算次数步长算法等信息。 Lambda则包含模型信息。 例5-4 有约束的非线性规划问题有约束的非线性规划问题 机床主轴结构优化设计机床主轴结构优化设计 试对图8-2所示的主轴进行优化设计,已知主轴内径d=30mm,外力 F=15000N。设计变 量数 n
45、=3,约束函数个数m=5,设计函数初值,上下限如下表: MATLAB的实现过程的实现过程: 编一个目标函数的编一个目标函数的M文件文件jxyh5_4fun(x).m, 返回返回x处的函数值处的函数值f。 function f=jxyh5_4fun(x) f=(x(1)-x(4)2+(x(2)-x(5)2+(x(3)-x(6)2; 设计变量 初始值48010060 下限3006090 上限650140150 1 x 2 x 3 x 由于约束条件中非线性约束由于约束条件中非线性约束,所以要编写一个描述非线性约束条件的所以要编写一个描述非线性约束条件的M文件文件 jxyh5_4con(x).m: f
46、unction c,ceq=jxyh5_4con(x) c(1)=64*15000*x(3)2*(x(1)+x(3)/(3*210*103*pi*(x(2)4 -304)/0.05-1; c(2)=1-x(1)/300; c(3)=1-x(2)/60; c(4)=x(2)/140-1; c(5)=1-x(3)/90; ceq=; 下一步给定初值下一步给定初值,给定变量的下限约束给定变量的下限约束,并调用优化过程。并调用优化过程。 A=; b=; Aeq=; beq=; lb=300,60,90; ub=650,140,150; x0=480,100,120; options=optimset(
47、Display,iter,LargeScale,off); x,fval,exitflag,output,lambda,hess=fmincon(jxyh5_4fun,x0,A,b,Aeq,beq,lb,ub,jxyh5_4c on, options) 计算结果为计算结果为: max Directional First-order Iter F-count f(x) constraint Step-size derivative optimality Procedure 0 4 33.4485 -0.155 1 9 32.904 -0.1304 1 -0.542 0.73 2 14 29.97
48、77 0.01382 1 -2.86 0.438 3 19 29.8701 3.683e-005 1 -0.107 0.387 4 24 20.3387 0 1 -8.49 0.511 5 29 19.9955 0.000541 1 -0.342 0.0563 6 34 19.997 1.56e-007 1 0.00154 0.0561 7 39 16.1698 -2.22e-016 1 -3.62 0.413 Hessian modified 8 44 11.3669 0 1 -4.38 0.115 9 49 11.2481 0.0002055 1 -0.119 0.00587 10 54
49、11.2494 2.679e-008 1 0.00134 2.83e-006 11 59 11.2494 0 1 1.75e-007 2e-009 Hessian modified Optimization terminated: first-order optimality measure less than options.TolFun and maximum constraint violation is less than options.TolCon. Active inequalities (to within options.TolCon = 1e-006): lower upp
50、er ineqlin ineqnonlin 1 1 3 2 5 lambda = lower: 3x1 double upper: 3x1 double eqlin: 0 x1 double eqnonlin: 0 x1 double ineqlin: 0 x1 double ineqnonlin: 2x1 double hess = 7350000 36750000 0 所以当 x = 300 60 120 时, 目标函数有最小值 fval = 2.2050e+009 exitflag =1,表示过程成功收敛于x处。 Output输出变量显示民收敛中的迭代次数、目标函数计算次数步长算法等信息
51、。 Lambda则包含模型信息。 x = 300.0000 74.8898 90.0000 fval = 11.2494 exitflag = 1 output = iterations: 11 funcCount: 59 stepsize: 1 algorithm: medium-scale: SQP, Quasi-Newton, line-search firstorderopt: 2.0000e-009 cgiterations: message: 1x144 char lambda = lower: 3x1 double upper: 3x1 double eqlin: 0 x1 do
52、uble eqnonlin: 0 x1 double ineqlin: 0 x1 double ineqnonlin: 5x1 double hess = 0.0288 0.3579 0.0288 所以当x = 300.0000 74.8898 90.0000时, 目标函数有最小值 fval = 11.2494 。 exitflag =1,表示过程成功收敛于x处。 Output输出变量显示民收敛中的迭代次数、目标函数计算次数步长算法等信息。 Lambda则包含模型信息。 例例5-5 求两级圆柱齿轮减速器优化设计求两级圆柱齿轮减速器优化设计 已知某两级斜齿轮圆柱齿轮减速器(图8-6)的参数:高速
53、级输入功率P1=6.2kw,转速 n1=1450 r/min总传动比i=31.5,齿轮宽度系数为 齿轮材料和热处理:大齿轮45号 钢 正火187207小齿轮45号钢调质228 255HBS,工作寿命年以上要求按照总中心矩a最小来 确定传动方案 解 1) 建立优化设计的数学模型 将影响齿轮传动总中心矩a的六个独立参数作为设计变量: x=(mn1, mn2, z1, z3, i, )=(x1, x2, x3, x4, x5, x6) Mn1,mn2分别为高速级和低速级齿轮副的模数; z1, z3分别为高速级和低速级小齿轮齿数; i 为高速级传动比; 为齿轮副螺旋角 齿轮传动总中心矩齿轮传动总中心矩
54、a最小的目标函数:最小的目标函数: 性能约束包括齿面强度条件,齿根弯曲强度条件,高速级大齿轮和低速轴不干涉条件等 根据齿轮材料与热处理规范,得到齿面许用接触应力,齿根许用弯曲应力 和根据传递功率和转速,在齿轮强度计算条件中代入有关数据:高速轴 转矩 中间速轴转矩,高速轴和低速轴齿轮载荷系数 和 0.4 a 13524 5 6 1 (1)(1 31.5) ( ) 2cos x xxx x x f x x 51.8.75 1,3 153.5 F 2,4 141.6 F 1 41690 2 40440 1 1.225K 1 1.204K 由齿轮传动的约束条件,可建立以下约束模型:由齿轮传动的约束条件
55、,可建立以下约束模型: 3633 16135 3433 25624 3532 36513 2632 456524 5516135245 61 71 8 cos3.079 100 cos1.071 100 cos9.939 10 (1)0 cos1.071 10 (31.5)0 2(50)cos(31.5)0 20 50 3 stgxx x x gxxx x gxx x x gxxx x x gxxxx x xx xx gx gx g 2 92 103 113 124 134 145 155 165 176 .50 60 140 220 160 220 5.80 70 80 150 x gx g
56、x gx gx gx gx gx gx gx MATLAB的实现过程的实现过程: 编一个目标函数的编一个目标函数的M文件文件jsqyh_f(x).m,返回返回x处的函数值处的函数值f。 function f=jsqyh_f(x) hd=pi/180; a1=x(1)*x(3)*(1+x(5); a2=x(2)*x(4)*(1+31.5/x(5); cb=2*cos(x(6)*hd); f=(a1+a2)/cb; 由于约束条件中非线性约束由于约束条件中非线性约束,所以要编写一个描述非线性约束条件的所以要编写一个描述非线性约束条件的M文件文件 jxyh5_4con(x).m: function c
57、,ceq=jsqyh_g(x) hd=pi/180; c(1)=cos(x(6)*hd)3-3.079e-6*x(1)3*x(3)3*x(5); c(2)=cos(x(6)*hd)3*x(5)2-1.701e-4*x(2)3*x(4)3; c(3)=cos(x(6)*hd)2-9.939e-5*(1+x(5)*x(1)3*x(3)2; c(4)=cos(x(6)*hd)2*x(5)2-1.706e-4*(31.5+x(5)*x(2)3*x(4)2; c(5)=x(5)*(2*(x(1)+50)*cos(x(6)*hd)+x(1)*x(3)*x(5)-x(2)*x(4)*(31.5+x(5);
58、ceq=; 下一步给定初值下一步给定初值,给定变量的下限约束给定变量的下限约束,并调用优化过程。并调用优化过程。 x0=2,4,18,20,6.4,10; lb=2,3.5,14,16,5.8,8; ub=5,6,22,22,7,15; A=-1,0,0,0,0,0;1,0,0,0,0,0;0,-1,0,0,0,0;0,1,0,0,0,0;0,0,-1,0,0,0;0,0,1,0,0,0;0,0,0,- 1,0,0;0,0,0,1,0,0;0,0,0,0,-1,0;0,0,0,0,1,0;0,0,0,0,0,-1;0,0,0,0,0,1; b=-2,5,-3.5,6,-14,22,-16,22
59、,-5.8,7,-8,15; options=optimset(Display,iter,LargeScale,off); x,fval,exitflag,output,hess=fmincon(jsqyh_f,x0,A,b,lb,ub,jsqyh_g,options) *两级斜齿轮传动中心距优化设计最优解* fprintf(1, 高速级齿轮副模数 Mn1=%3.4f mmn, x(1) fprintf(1, 低速级齿轮副模数 Mn2=%3.4f mmn, x(2) fprintf(1, 高速级小齿轮齿数 z1=%3.4f n, x(3) fprintf(1, 低速级小齿轮齿数 z3=%3.4
60、f n, x(4) fprintf(1, 高速级齿轮副传动比 i1=%3.4f n, x(5) fprintf(1, 齿轮副螺旋角 beta=%3.4f 度n, x(6) fprintf(1, 减速器总中心距 a12=%3.4f n, fval) c=jsqyh_g(x); *最优点的性能约束函数值* fprintf(1, 高速级齿轮副接触强度约束函数值 c1=%3.4f n, c(1) fprintf(1, 低速级齿轮副接触强度约束函数值 c2=%3.4f n, c(2) fprintf(1, 高速级小齿轮齿根弯曲强度约束函数值 c3=%3.4f n, c(3) fprintf(1, 低速级
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 危险化学品企业员工安全生产培训试题及答案
- 五级保育师理论考核试题题库及答案
- 西昌学院园林植物学遗传育种期末考试复习题及参考答案
- 巡游出租汽车司机职业道德考核试卷及答案
- 眼科视光师岗前培训试题及答案
- 新编企业管理纲要与题库及答案
- 药品仓储管理知识培训试卷及答案
- 证券投资顾问业务考试题库及答案
- 医疗器械岗位职责培训考试试题(附答案)
- 职业技能鉴定国家题库管道工考试试题及参考答案
- 北京市科技计划项目(课题)结题经费审计工作底稿-参考文本
- 精神药物副作用的护理
- 目标管理Smart原则培训课件
- 办理交通事故复合申请的委托书
- 农村基础设施招投标开标流程
- 北师大版小学数学一年级上册教案(表格式) 全册
- 光纤熔接机80S中文操作手册
- 高中英语选择性必修一单词表
- (正式版)SHT 3551-2024 石油化工仪表工程施工及验收规范
- 中职生礼仪修养全套教学课件
- 交通疏导培训课件
评论
0/150
提交评论