
基于MATLAB 算法的机械优化设计
刘鹤松,姜 晶
(哈尔滨工业大学汽车工程学院,山东威海2209)
摘要:结合工程实例,介绍了MATLAB 优化工具箱在机械优化设计中的应用。以齿轮减速
器为例,根据其设计要求和特点,建立了减速器的优化设计数学模型,在保证零件强度和刚度等前提条件下,要求设计的齿轮组两轮子的体积及相关轴的体积均最小。利用MATLAB 优化工具箱求解优化问题,不用编写大量算法程序,提高了设计效率,算法可靠,非常实用。
关键词:MATLAB;机械优化设计;应用实例中图号:TH122文献标识码:A 1 前言
机械优化设计是以数学规划为理论基础,以计算机为工具,寻求最佳机械设计方案的现代设计方法之一。是在给定的载荷或环境条件下,在对机械产品的性态、几何尺寸关系或其他因素的(约束)范围内,选取设计变量,建立目标函数并使其获得最优值的一种新的设计方法。
目前,已有很多成熟的优化方法程序可供选择,但它们各有自己的特点和适用范围。实际应用时必须注意因为优化方法或初始参数选择而带来的收敛性问题及机时问题。而MATLAB 语言的优化工具箱则选用最佳方法求解,初始参数输入简单,语法符合工程设计语言要求,编程工作量小,优越性明显。2 MATLAB 语言及优化工具箱
MA TLAB 是由美国Mathworks 公司开发的集科学计算、数据可视化和程序设计为一体的工程应用软件,分总包和若干个工具箱,可以实现数值分析、优化、统计、偏微分方程数值解、自动控制、信号处理、图像处理等若干个领域的计算和图形显示功能,已被广泛应用于教学和科研中。其中优化工具箱的应用包括:线性、非线性最小化,方程求解,曲线拟合,二次规划等问题中大型课题的求解方法,为优化方法在工程中的实际应用提供了更方便、快捷的途径。3 MATLAB 优化工具箱中有约束规划应用
由于机械优化设计多数是非线性约束最小化问题,目前,对于非线性约束优化问题的解法很多,但这些算法仅仅能解决一类特殊的非线性规划问题。早期的方法通常是通过构造惩罚函数来将有约束的最优化问题转化为无约束最优化问题进行求解。现在,这些方法已经被更有效的基于K-T(Kuhn -Tucker)方程解的方法所取代。K-T 方程是有约束最优化问题求解的必要条件,是非线性规划算法的基础,这些算法直接计算拉格朗日乘子。通过拟牛顿法更新过程,给K-T 方程积累二阶信息,可以保证有约束拟牛顿法的线性收敛。这些方法称为序列二次规划法(SQP 法),因为在每次主要的迭代中都求解一次二次规划问题。MATLAB 中SQP 法的实现主要分3步,即
(1)拉格朗日函数Hessian 矩阵的更新;
(2)二次规划问题求解;
(3)一维收索和目标函数的计算。
非线性多变量约束优化问题可做如下描述: min x
f (x ) s.t.Ax b (线性不等式约束) A eq x =b eq (线性等式约束) C (x ) 0(非线性不等式约束) C eq (x )=0(非线性等式约束) L boun d x U bound
调用fmincon 函数实现求解约束优化问题。fmincon 函数的调用格式如下:
[xopt,fxopt ]=fmincon (UserFunction,x0,A,b,Aeq,beq,LB nd,Ubnd, NonLinC onstr ,options,p1,p2, )
4 实例
如图1所示,齿轮减速器由2个齿轮组成齿轮组,其中一个为主动轮,另一个为从动轮。要求设计的齿轮组两轮子的体积及相关轴的体积均最小。该问题中有7个设计变量
X =[x 1,x 2,x 3,x 4,x 5,x 6,x 7]
T
其中,x 1为齿宽,x 2为模数,x 3为从动轮的齿数,x 4为轴承1两端的距离,x 5为轴承2两端的距离,x 6为轴1的直径,x 7为轴2的直径。
图1 齿轮减速器Fig .1 Gearbox
1 轴承
2 2 轴承1
3 轴1
4 轴2
设计目标为求所有轴总体积的最优解,该问题
描述如下:
min f =0 7854x 1x 22(3 3333x 2
3+14 933x 3-
11 2004年第11期 煤 矿 机 械
43 0934)-1 508x 1(x 2
6+x 2
7)+7 477(x 3
6+x 3
7)+
0 7854(x 4x 26+x 5x 2
7)(长度单位为cm)其中每个变量的上下限
2 6 x 1
3 60 7 x 2 0 817 x 2 287 3 x
4 8 3
7 3 x 5 8 32 9 x 6 3 9
5 0 x 7 5 5
约束条件
齿轮的弯曲应力约束g 1:1(x 1x 2
2x 3)-1
27
0齿轮的接触应力约束g 2:1(x 1x 22x 23)-1
397 5
0轴1的偏差约束g 3:x 34(x 2x 3x 46)-1
1 93
0轴2的偏差约束g 4:x 3
5(x 2x 3x 47)-11 93 0
轴1
的
应力
约束
g 5:
10 1x 3
6
(
745x 4x 2x 3)2+16 9 106
-1100 0轴
2
的
应力
约束
g 6:
10 1x 3
7
(
745x 5x 2x 3
)2+157 5 106
-850 0间隔约束g 7:x 2x 3-40 0间隔约束g 8:5x 2-x 1 0间隔约束g 9:x 1-12x 2 0
轴规格约束g 10:1 9-x 4+1 5x 6 0轴规格约束g 11:1 9-x 5+1 1x 7 0由以上约束条件可得
A eq =b eq =C eq =0
L bound =[2 6,0 7,17,7 3,7 3,2 9,5]U bound =[3 6,0 8,28,8 3,8 3,3 9,5 5]A =
-15000001-1200000000-101 500000-101 1b =[0 0 -1.9 -1.9]
fmincon 用到的2个函数定义如下:function f=GearObjFunct(x)
f=0.7854*x(1)*x(2)^2*(3.3333*x(3)^2+14.9334*x(3)-43.0934)-1.508*x(1)*(x(6)^2+x(7)^2)+7.477*(x (6)^3+x (7)^
3)+0.7854*(x (4)*x (6)^2+x(5)*x(7)^2)
func tion[C,Ceq]=GearNonLinConstr(x)C(1)=1 (x(1)*x(2)^2*x(3))-1 27;C(2)=1 (x(1)*x(2)^2*x(3)^2)-1 397.5;C(3)=x(4)^3 (x(2)*x (3)*x(6)^4)-1 1.93;C(4)=x(5)^3 (x(2)*x (3)*x(7)^4)-1 1.93;C(5)=sqrt((745*x(4) (x (2)*x(3)))^2+16.9*10^6) (0.1*x(6)^3)-1100;
C(6)=sqrt((745*x (5) (x (2)*x (3)))^2+157 5*10^6) (0.1*x(7)^3)-850;
C(7)=x(2)*x(3)-40;Ceq=[];程序为:
x0=[2.6,0.7,17,7.3,7.3,2.9,5];LBnd=[2.6,0.7,17,7.3,7.3,2.9,5];UBnd=[3.6,0.8,28,8.3,8.3,3.9,5.5];A=zeros(4,7);
A(1,1)=-1;A(1,2)=5;A(2,1)=1;A(2,2)=-12;A(3,4)=-1;A(3,6)=1.5;A(4,5)=-1;A(4,7)=1.1;b=[0 0 -1.9 -1.9]
[x,f]=fminc on ( GearObjFunct ,x0,A,b,[],[],LB nd,UBnd, Gear NonLinConstr )
执行结果为
[x 1,x 2,x 3,x 4,x 5,x 6,x 7]=[3.500,0.700,17.000,7.300,7.715,3.350,5.287]
f =2994 35 结语
通过以上实例可以看出,应用MATLAB 优化工具箱进行机械优化设计问题求解,不用编写大量算法程序,提高了设计效率,从而获得很好的优化结果。
参考文献:
[1]苏金明,阮沈勇.MATLAB 实用指南[M].北京:电子工业出版社,2002.
[2]Edward B,Magrab,高会生,等.MATLAB 原理与工程应用[M ].北京:电子工业出版社,2002.
[3]刘惟信.机械最优化设计(第二版)[M ].北京:清华大学出版社,1997.作者简介:刘鹤松(1961-),女,内蒙古海拉尔人,副教授,主要从事计算机辅助设计及机械优化设计等方面的教学与研究工作.Tel:0631-5687050,E_mai l:liuhesongwh@souh.com.
收稿日期:2004 04 19
Optimum design of mechanism based on MATLAB
LIU He -song ,JIANG Jing
(School of Au tomobile Engineering,Harbin Institute of Technology,Weihai 2209,China)
Abstract :This paper illustrates how to apply optimum toolbox of MATLAB in optimum design of mechanism.According to the design request and characters of gearbox ,the optimum mathematical model of it is set up to decrease gears and ax is s volume when the strength and stiffness of the parts are permitted.The result manifests that the optimum toolbox of MATLAB is very practical in that the optimum issue can be solved without designing a great deal of arithmetic pro gra mme,the design efficiency can be improved and it s arithmetic is very reliable.Key words :MATLAB;optimum design;practicality
12 基于MATLAB 算法的机械优化设计 刘鹤松,等 2004年第11期
