机械优化设计方法简介
机械优化设计方法简介
一. 引言
“设计”作为人们综合运用科学技术原理和知识并有目的地创造产品的一项技术,已经发展为现代社会工业文明的重要支柱。今天,设计水平已是一个国家的工业创新能力和市场竞争能力的重要标志。
许多的设计实践经验告诉我们,设计质量的高低,是决定产品的一系列技术和经济指标的重要因素。因此,在产品生产技术的第一道工序—设计上,考虑越周全和越符合客观,则效果就会越好。
在产品设计中,追求设计结果的最优化,一直是我们工作努力的目标。现代设计理论、方法和技术中的优化设计,为工程设计人员提供了一种易于实施且可使设计结果达到最优化的重要方法和技术,以便在解决一些复杂问题时,能从众多设计的方案中找出尽可能完善的或是最好的方案。这对于提高产品性能、改进产品质量、提高设计效率,都是具有重要意义的。
二.优化设计的概念
优化设计是将工程设计问题转化为最优化问题,利用数学规划的方法,借助于计算机(高速度、高精度和大存储量)的处理,从满足设计要求的一切可行方案中,按照预定的目标自动寻找最优设计的一种设计方法。 机械优化设计 最优化(Optimization)通常是指解决设计问题时,使其结果达到某种意义上的无可争议的完善化。最优化“OPT”在科学和技术领域内如同使用最大“MAX”和最小“MIN”一样具有普遍性。 把机械设计和现代设计理论及方法相结合,借助电子计算机,自动寻找实现预期目标的最优设计方案和最佳设计参数。
三.优化设计的一般实施步骤
(1)根据设计要求和目的定义优化设计问题;
(2)建立优化设计问题的数学模型;
(3)选用合适的优化计算方法;
(4)确定必要的数据和设计初始点;
(5)编写包括数学模型和优化算法的计算机程序,通过计算机的求解计算获取最优结构参数;
(6)对结果数据和设计方案进行合理性和适用性分析。
其中,最关键的是两个方面的工作:首先将优化设计问题抽象和表述为计算机可以接受与处理的优化设计数学模型,通常简称它为优化建模;然后选用优化计算方法及其程序在计算机上求出这个模型的的最优解,通常简称它为优化计算。
优化设计数学模型是用数学的形式表示所设计问题的特征和追求的目的,它反映了设计指标与各个主要影响因素(设计参数)间的一种依赖关系,它是获得正确优化结果的前提。
由于优化计算方法很多,因而它的选用是一个比较棘手的问题,在选用时一般都遵循这样的两个原则:一是选用适合于模型计算的方法;二是选用已有计算
机程序,且使用简单和计算稳定的方法。
四.无约束优化计算方法
1.单变量优化计算方法
一维搜索就是要在初始单峰区间中求单峰函数的极小点。所以找初始单峰区间是一维搜索的第一步。
然后将初始单峰区间逐步缩小,直至极小点存在的范围小于给定的一个正数 Ɛ,此Ɛ称为收敛精度或迭代精度。此时,如区间为[a(k),b(k)],即有
b(k)-a(k)≤Ɛ
可取该区间的中点作为极小点
x*=0.5(a(k)+b(k))
(1)黄金分割法
在区间[a,b]内,适当插入两个内分点x1和x2 (x1
当f(x1)>f(x2)时,极小点必在[x1,b]中;
当f(x1)
无论发生在那种情况,都将包含极小点的区间缩小,即可删去最左段或最右段,然后在保留下来的区间上做同样的处理,如此迭代下去,将使搜索区间逐步减小,直到满足预先给定的精度(终止准则)时,即获得一维优化问题的近似最优解。
(2)二次插值法
二次插值的基本思想是利用目标函数在不同3点的函数值构成一个与原函数f(x)相近似的二次多项式p(x),以函数p(x)的极值点 (即p’(x*p)=0的根)作为目标函数f(x)的近似极值点。
2.多变量优化计算方法(在此只对梯度方法做一简介)
(1)梯度法
梯度方向是函数增加最快的方向,而负梯度方向是函数下降最快的方向; 梯度法以负梯度方向为搜索方向,每次迭代都沿着负梯度方向一维搜索,直到满足精度要求为止;因此,梯度法又称为最速下降法。
梯度法的优点是理论明确,程序简单,对初始点要求不严格,有着很好的整体收敛性;缺点在于在远离极小点时逼近速度较快,而在接近极小点时逼近速度较慢,收敛速度与目标函数的性质密切相关。
(2)牛顿法
利用目标函数f(x)在点x(k)处的二阶Taylor展开式去近似目标函数,用二次函数的极小点去逼近目标函数的极小点。 适用场合为:如果目标函数f(x)在R上具有连续的二阶偏导数,其Hessian矩阵G(x)正定并且可以表达为显式,那么可以使用牛顿法。
(3)修正牛顿法
为了克服牛顿法的缺点,人们保留选牛顿方向作为搜索方向,摒弃其步长恒取1,而用一维搜索确定最优步长,由此产生的算法称为修正牛顿法(或阻力牛顿法、阻尼牛顿法)。
修正牛顿法的优点是克服了牛顿法的主要缺点,特别是当迭代点接近于最优
解时,此法具有收敛速度快的优点,且对初始点的选择要求不严;修正牛顿法的缺点是仍然需要计算目标函数的Hessian矩阵和逆矩阵,所以求解的计算量和存储量很大,另外当目标函数的Hessian矩阵在某点处出现奇异时,迭代将无法进行。
(4)共轭方向法
一般地,在n维空间中可以找出n个互相共轭的方向,对于n元正定二次函数,从任意初始点出发,顺次沿这n个共轭方向最多作n次直线搜索就可以求得目标函数的极小点.这就是共轭方向法的算法形成的基本思想。 对于n元正定二次目标函数,从任意初始点出发,如果经过有限次迭代就能够求得极小点,那么这种算法称为具有二次终止性。
例如牛顿法对于二次函数只须经过一次迭代就可以求得极小点,因此是二次终止的;而最速下降法不具有二次终止性;共轭方向法(包括共轭梯度法,变尺度法等)是二次终止的。
一般来说,具有二次终止性的算法,在用于一般函数时,收敛速度较快。
五、约束优化设计方法
与无约束优化问题不同的是,约束优化问题的目标函数的最小值是函数在有约束条件所限定的可行域内的最小值,并不一定是目标函数的自然最小值。
约束优化方法是用来求解如下非线性约束优化问题的数值迭代算法。
1.可行方向法
数学基础:梯度法、方向导数、k—t条件
适用条件:目标函数和约束函数均为n维一阶连续可微函数、可行域是连续闭集、求解不等式约束的一种直接解法。
可行方向法是用梯度去求解约束非线性最优化问题的一种有代表性的直接解法,它是求解大型约束优化问题的主要方法之一。其收敛速度快,效果好,但程序比较复杂,直接算法,计算困难且工作量大。
2.惩罚函数法
将不等式和等式约束函数gu(X)≤0(u=1,2,„m), hv(X)=0(v=1,2,„„p) 和待定系数r(k)(称为加权因子)经加权转化后,和原目标函数一起组成一个新的目标函数(惩罚函数),然后对它求最优解。
把其中不等式和等式约束函数值经加权处理后,和原目标函数结合新的目标函数:
minф(X,r1(k),r2(k))=f(X)+r1(k)ΣG[gu(X)]+r2(k)ΣH[hv(X)]
(1)外点惩罚函数法
基本思想:外点法是将惩罚函数定义于可行区域的外部。序列迭代点从可行 域外部逐渐逼近约束边界上的最优点。
外点惩罚函数法构造惩罚函数的形式为:
ф(X,r(k))=f(X)+r(k)Σmax[0,gu(X)]2+r(k)ΣH[hv(X)]2
外点法将惩罚函数定义于约束可行域之外,且求解无约束问题的一系列迭代点是从可行域外部逼近原目标函数的约束最优解。
(2)内点惩罚函数法
基本思想:将新目标函数定义于可行域内,序列迭代点在可行域内逐步逼近约束边界上的最优点。内点法只能用来求解具有不等式约束的优化问题。
内点惩罚函数法构造惩罚函数的形式为:
ф(X,r(k))=f(X)-r(k)Σ [1/gu(X)]或ф(X,r(k))=f(X)-r(k)Σ In[-gu(X)]
因内点法将惩罚函数定义在可行域内,故点X(0)要严格满足全部的约束条件,且应选择离约束边界较远些,即应使gu(X(0))
(3)初始惩罚因子r(0)的选择
r(0)的选择会影响到迭代计算能否正常进行以及计算效率的高低,值应适当。
(0) 若r太大,则开始几次构造的惩罚函数的无约束极值点会离约束边界很远,将增加迭代次数,使计算效率降低。
若r(0)太小,惩罚函数中的障碍项的作用就会很小,使惩罚函数性态变坏,甚至难以收敛到原约束目标函数的极值点。
目前,还没有一定的有效方法,往往要经过多次试算,才能确定一个适当的(0)r。
多数情况下,一般取r(0)=1,然后根据试算的结果,加以调整。
(4)惩罚因子的缩减系数C的选择
在构造序列惩罚函数时,惩罚因子r(k)是一个逐次递减到0的数列,相邻两次迭代的惩罚因子关系式为:
r(k)=Cr(k-1)
其中,C—惩罚因子的缩减系数,0
通常取值为:0.1~0.7。
六、小结及心得
在老师所给出的四种设计计算方法当中,我之所以选择了优化设计方法,是因为在上个学期我曾经选修过《现代设计方法A》,对一些优化设计方法有一些简单的学习和了解。机械优化设计方法多种多样,不是简简单单就能介绍清楚的。在此,我仅仅对无约束、有约束的优化设计方法进行了介绍,除此之外,还有多目标问题、多学科问题、离散问题的优化设计方法等等,在各行各业当中都能看到它们的影子。
说到优化设计方法,它给我的第一个印象就是要算,而且还是不停的算。优化设计方法,说白了就是给出一个具体的问题,选择了合适的计算方法,找到适合这个问题所需要的公式,然后一直迭代一直迭代,直到满足要求的精度或者终止准则,优化设计方法不适合我们用手去算,那样不仅费时费力,而且得到的结果也会有很大的误差。因此,我们在采用优化设计方法解决问题时,通常会使用计算机帮助我们进行计算,matlab就是一个不错的软件,它包含了解决工程问题所需要的多种函数,可以很快的得出运算结果即最优解。
其次,这种方法对个人数学水平的要求较高。虽然计算机可以帮助我们完成大部分的运算,但是它仍然需要我们具备较高水平的高等数学、概率论以及线性代数的知识。泰勒展开式、矩阵的运算及其逆运算、线性规划等等,都是我在运用该方法解决问题时所遇到的麻烦。
虽然这种方法很麻烦,但是它的作用也是不言而喻的。它能根据机械设计
的一般理论、方法或者行业标准,把工程设计问题按照具体要求建立一个数学模型,采用最优化技术与计算机技术自动找出最优方案,使问题的解决在某种意义上达到无可争议的完善化,对改善机械产品的质量、发展计算机辅助设计起到了重要作用。