“最优化设计”是在现代计算机广泛应用的基础上发展起来的一项新技术,是根据最优化原理和方法,综合各方面的因索,以人机配合方式或用“自动探索”的方式,在计算机上进行的半自动或自动设计,以选出在现有工程条件下的最好设计方案的一种现代设计方法。
[1]实践证明,最优化设计是保证产品具有优良的性能,减轻自重或体积,降低工程造价的一种有效设计方法。同时也可使设计者从大量繁琐和重复的计算工作中解脱出来,使之有更多的精力从事创造性的设计,并大大提高设计效率。最优化设计方法己陆续应用到建筑结构、化工、冶金、铁路、航空、造船,机床、汽车、自动控制系统、电力系统以及电机、电器等工程设计领域,并取得了显著效果。设计上的“最优值”是指在一定条件(各种设计因素)影响下所能得到的最佳设计值。最优值是一个相对的概念。它不同于数学上的极值,但有很多情况下可以用最大值或最小值来表示。
概括起来,最优化设计工作包括以下两部分内容
[1]1)将设计问题的物理模型转变为数学模型。建立数学模型时要选取设计变量,列出目标函数,给出约束条件。目标函数是设计问题所要求的最优指标与设计变量之间的函数关系式;
2)采用适当的最优化方法,求解数学模型。可归结为在给定的条件(例如约束条件)下求目标函数的极值或最优值问题。
本章将根据前几章所提供的理论基础,以理论排量q50ml/r、压力16MPa、转速为1500r/min时单位体积排量最大为目标,建立多齿轮泵优化设计的数学模型,并用C语言编制优化设计的计算程序。
1
5.1 数学模型
[1][11]
任何一个最优化问题均可归结为如下的描述,即:在满足给定的约束条件(可行域D内)下,选取适当的设计变量X,使其目标函数f(X)达到最优值其数学表达式(数学模型)为:
设计变量:
X[x1x2...xn]Tn XDE
在满足约束条件:
hv(X)0 (v1,2,...,p)
gu(X)0 (u1,2,...,m)
q的条件下,求目标函数
f(X)1fj(X)j1的最优值。
目标函数的最优值一般可用最小值(或最大值)的形式来体现,因此,最优化设计的数学模型可简化表示为:
n minf(X) XDE
s.t(subject to)hv(X)0 v1,2,...,p
gu(X)0 u1,2,...,m 式(5.1)
2
当式(5.1 )中的p0,m0时,称为无约束最优化问题;否则称为约束最优化问题。机械最优化设计问题多属于约束非线性最优化问题。
5.1.1设计变量
在设计过程中进行选择并最终必须确定的各项独立参数,称为设计变量。在选择过程中它们是变量,但这些变量一旦确定以后,则设计对象也就完全确定。最优化设计是研究怎样合理地优选这些设计变量值的一种现代设计方法。凡是可以根据设计要求事先给定的,则不是设计变量,而称为设计常量。只有那些需要在设计过程中优选的参数,才可看成是最优化设计过程中的设计变量。
设计变量的数目称为最优化设计的维数,如有n个设计变量,则称为n维设计问题。在一般的情况下,若有n个设计变量,把第i个设计变量一记为xi,则其全部设计变量可用n维向量的形式表示成:
x1Xxi[x1xnxixn]T 式(5.2)
在最优化设计中,由各个设计变量的坐标轴所描述的空间就是所谓的“设计空间”。设计空间中的一个点就是一种设计方案。设计空间中的某点k (一种设计方案)是由各设计变量所组成的向量X(k)所决定。另一种设计方案(k1)点则由另一组设计变量(k1 )所组成
的向量确定。最优化设计中通常采用的直接探索法,就是在相邻的设计点间作一系列定向的设计移动。由k点到(k1)点间的典型运动情况由下式给出:
3
(k)X(k1)X(k)a(k)S(k) 式(5.3)
向量S决定移动的方向,标量a决定移动的步长。
(k)5.1.2目标函数
在设计中,设计者总是希望所设计的产品具有最好的性能指标、最小的质量或最大的经济效益等。在最优化设计中,可将所追求的设计目标(最优指标)用设计变量的函数形式表达出来,这一过程称为建立目标函数。即目标函数是设计中预期要达到的目标,表达为各设计变量的函数表达式:
f(X)f(x1,x2,...,xn) 式(5.5)
它代表设计的某项最重要的特征。对于泵类液压元件来说,最常见的情况是以重量或是体积最小作为目标函数。
目标函数是设计变量的标量函数,最优化设计的过程就是优选设计变量,使目标函数达到最优值或找出目标函数的最小值(最大值)的过程。
在一个最优化设计中可以只有一个目标函数,称为单目标函数。当在同一设计中要提出多个目标函数时,这种问题称为多目标函数的最优化问题。
目标函数愈多,设计效果愈好,但问题的求解亦愈复杂。对于多目标函数,可以独立地列出几个目标函数式:
4
f1(X)f1(x1,x2,...,xn) f2(X)f2(x1,x2,...,xn)
fn(X)fn(x1,x2,...,xn) 式(5.6)
也可以把几个设计变量综合到一起,建立一个综合的目标函数表达式,即:
q
式中:
f(X)fj(X)j1 式(5.7)
q——最优化设计所追求的目标数目
5.1.3约束条件
目标函数取决于设计变量,但在很多实际问题中,设计变量取值范围是有限制的或必须满足一定的条件。在最优化设计中,这种对设计变量取值时的限制条件,称为约束条件或设计约束。
约束条件可以用数学等式或不等式来表示。
等式约束对设计变量的约束严格,起着降低设计自由度的作用。其形式为:
5
hv(X)0 v1,2,...,p 式(5.11)
在机械最优化设计中,不等式约束更为普遍。不等式约束的形式为:
gu(X)0 u1,2,...,m 式(5.12)
或: gu(X)0 u1,2,...,m 式(5.13)
在上述式中,hv(X)0,gu(X)0为设计变量的约束方程,即设计变量的允许变化范围。最优化设计,即是在设计变量允许范围内找出一组最优化参数
f(X)达到最优值f(X*)。
***TX*[x1x2...xn],使目标函数
对于等式约束来说,设计变量所代表的设计点必须在式(5.11)所表示的面(或线)上。对不等式约束来说,其极限情况gu(X)0所表示的几何面(线)将设计空间分为两部分:一部分中的所有点均满足约束条件式(5.12 )或式(5.13 ),这一部分的空间称为设计点的可行域,并以D表示。可行域中的点是设计变量可以选取的,称为可行设计点或简称可行点。另一部分中的所有点均不满足约束条件式(5.12)或式(5.13 ),在这个区域如果选取设计点则违背了约束条件,它就设计的非可行域,该域中的点称为非可行点。如果设计点落到某个约束边界面(或边界线)上,则称边界点,边界点是允许的极限设计方案。最优化设计过程,即寻找可行域内的最优点或最优设计方案。
5.2优化方法
5.2.1一维探索最优化方法
6
机械结构的最优化设计大都为多维问题,一维问题的情况很少。但是一维问题的最优化方法是优化方法中最基本的方法,在数值方法迭代计算过程中,都要进行一维探索。由于在最优化的大多数方法中,常常要进行一维探索寻求最优步长或最优方向等,因此,一维探索在最优化方法中有很重要的位置。一维探索进行的好坏,往往直接影响到最优化问题的求解速度。
一维探索最优化的方法很多,下面仅介绍本文将采用的进退法。
由单峰函数的性质可知,在极小点左边函数值应一直下降,而在极小点右边函数值一直上升。根据这一特点,可先给定初始点a0及初始步长h,求探索区间[a,b]。
前进运算:将a0及a0h代入目标函数进行运算,若f(a0)f(a0h),则将步长h增加2倍,并计算新点a03h。若f(a0h)f(a03h),则探索区间可取为:
aa0 ; ba03h
否则将步长再加倍,并且重复上述计算。
hh后退计算:f(a0)f(a0h),则将步长h缩微4,并从a0点出发,以4为步长反方向探
索,这时得到的后退点为
a0hhf(a0)f(a0)4。若4,则探索区间可取为:
aa0h4 ; ba03h
否则将步长加倍,并继续后退。
7
5.2.2无约束多维问题最优化方法
在求解目标函数的极小值的过程中,若对设计变量的取值范围不加任何限制,则称这种最优化问题为无约束最优化问题。无约束多维最优化问题的一般形式为:
X[x1x2...xn]Tn求维设计变量
是目标函数为
minf(x)nXE
而对X没有任何限制。
在实际工程中,无约束条件的设计问题是非常少的,多数问题是有约束的。尽管如此,无约束最优化方法仍然是最优化设计的基本组成部分。因为约束最优化问题可以通过对约束条件的处理而转化为无约束最优化问题来求解。
无约束最优化方法中有间接求优法和直接求优法两种。直接法在迭代过程中仅用到函数值,而不要求计算函数导数等解析性质,一般说虽然其收敛速度较慢,但可以解决一些间接法不能解决的问题(例如当函数不好求导时)。无约束多维问题的最优化方法很多,这里仅简要介绍在多齿轮泵优化设计讨程中要用到的Powerll法。
对于一个n维问题,Powerll法的迭代计算过程如下:
第一轮探索都是从前一轮最后求得的最优点出发,并沿n个有顺序的线性独立方向(
S1(k)、
(k)S2、
(k)...、Sn ) 进行一维探索。第一轮探索可由任意一点出发,即取
Si(k)ei(0)X(1)0=X,而方
向可取为n个坐标轴的方向,即。当然,第一轮探索也可以任意取n个线性无关的方
8
向组成方向组。现给出第k轮迭代的步骤:
1)初始点取前一轮迭代最后沿
(k1)Xn(k1)Sn1方向求得的最优点X (即
*(k1)Xn1,有时该点为
为最小
),然后由初始点
a1(k)X(k)0出发沿
(k)S1方向进行一维最优化探索,使函数。再由
X1(k)(k)f(X0aS1(k))方向,求得得
(k)a2,并令
(k)X1(k)X0a1(k)S1(k)出发沿
(k)S2方向使
(k)f(X1(k)a2S2)最小,求
,并令
(k)(k)(k)X2X1(k)a2S2。如此依次沿每个方向进行一维探索,直至求得全部的
。
ai(k)(i1,2,...,n),每次令
Xi(k)Xi(k1)ai(k)Si(k)2)取共轭方向
(k)(k)(k)SnXX1n0,计算反映点
(k)(k)(k)Xn2XX1n0。
3)令
(k)f1f(X0)
(k)f2f(Xn)
式中:
(k)(k)(k)f3f(Xn1)f(2XnX0)
(k)(k1)X0Xn1
ai(k)Si(k)i1n
X(k)nX(k)n1aS(k)n(k)n
f(Xi(k1))f(Xi(k))(i1,2,...,n)k4)计算第轮迭代各方向上目标函数的下降值 ,并找出其
9
中的最大值
(mk),即:
(mk)(mk)maxf(Xi(k1))f(Xi(k))i1,2,...,n
相应的方向
(k)SmXi(k)Xi(k1)。
5)若
f3f1和
(f1f32f2)(f1f2(mk))20.5(mk)(f1f3)2同时成立,则转入下一步;否则,
。关于迭代初
在第k1轮迭代中仍用第k轮迭代用的同一方向组,即:始点,当步。
f2f3Si(k1)Sik(i1,2,...,n)(k1)(k)X0Xn1,取第k1轮迭代的初始点X0(k1)kXn,否则取,然后转回第1
6)如果上一步中两个不等式同时得到满足,则从
(k)化探索,求得a,得Sn1方向的最优点为:
(k)(k)Xn出发,沿
(k)Sn1方向进行一维最优
(k)(k)XXna(k)Sn1
7)取第k1轮迭代的方向组为:
(k1)(k1)(k)(k)(k)(k)(k)[S1(k1),S2,...,Sn][S1(k),S2,...,Sm1,Sm1,...,Sn,Sn1]
(k)Sm也就是说,在新方向组中,去掉了原方向组中具有最大下降值的为新方向组中的第n个方向,即取Sn(k1)(k)Sn1,并且将方向
(k)Sn1作
。初始点为
(k1)X0,然后转
回第1步继续运算。
10
8)每轮迭代结束时,都应按迭代终止条件进行检查,若满足迭代终止条件则迭代运算可以结束。迭代终止条件为:
Xi(k)Xi(k1)1 (i1,2,...,n)
或:
f(X(k))f(X(k1))2f(X(k1))
5.2.3约束问题最优化方法
前面讨论的都是无约束条件下非线性函数的寻优方法,但在实际工程中,大部分问题的变量取值都有一定的限制,也就是属于有约束条件的寻优问题。所以下面将介绍有约束问题的最优化方法,即设计变量的取值范围受到某种限制时的最优化方法。与无约束问题不同,约束问题目标函数的最小值是满足约束条件下的最小值,而不一定是目标函数的自然最小值。另外,只要由约束条件所决定的可行域D是一个凸集,目标函数是凸函数,其约束最优解就是全域最优解。否则,将由于所选择的初始点的不同,而探索到不同的局部最优解上,所以在这种情况下,探索结果经常与初始点选择有关。为了能得到全域最优解,在探索过程中最好能改变初始点,有时甚至要改换几次。
约束问题最优解的求解过程可归结为:寻求一组设计变量
***TX*[x1x2...x3],XDEn
在满足约束方程:
hv(X)0 (v1,2,...,p)
11
gu(X)0 (u1,2,...,m) 的条件下,使目标函数值最小,即:
*f(X)minf(X)f(X)
这样所得的最优点X称为约束最优点。
*由上式可见,约束条件可分为两类:等式约束和不等式约束。处理等式约束问题与不等式约束问题的方法有所不同,使约束问题的最优化问题方法也大致可以分为两大类:
1)约束最优化问题的直接解法。这种方法主要用于求解仅含不等式约束条件的最优化问题。当有等式约束条件时,仅当等式约束函数不是复杂的隐函数,且消元过程容易实现时,才可使用这种方法。其基本思想是在可行域内按照一定的原则直接探索出它们的最优点。而不需要将约束最优化问题转换成无约束问题去求优。属于直接解法的约束最优化方法有随机试验法,随机方向探索法,复合形法,可行方向法,可变容差法,简约梯度法及广义简约梯度法、线性逼近法等。
2)约束最优化问题的间接解法。这种方法对于不等式的约束问题和等式约束问题均有效。其基本思想是按照一定的原则构造一个包含原目标函数和约束条件的新目标函数,即将约束最优化问题的求解转换成无约束最优化问题求解。显然,约束问题通过这种方法处理,就可以采用上述无约束最优化方法来求解。属于间接法的约束问题的最优化方法有消元法拉格朗日乘子法和惩罚函数法等,在本节中仅介绍惩罚函数法。
惩罚函数法分为参数型和无参数型两大类。参数型惩罚函数法在构造惩罚函数时,需
12
要引入一个或几个可调整的惩罚参数(因子)。SUMT ( Sequential Unconstrained Minimization Technique)法,亦称为序列无约束极小化方法,便是一种有代表性的参数型惩罚函数法。根据惩罚项的函数形式的不同,参数型惩罚函数法(SUMT法)又分为内点法、外点法和混合点法三种。无参数惩罚函数法又称为无参数SUMT法,是一种借助于修改惩罚函数来使参数自动选取的方法。由于此法较之前法无特别优越处,且收敛慢(多为线性收敛速率),故很少采用。
(1)内点法
内点法是求解不等式约束最优化问题的一种十分有效的方法,但不能处理等式约束。其特点是将构造的新的无约束目标函数——惩罚函数定义于可行域内,并在可行域内求惩罚函数的极值点,即求解无约束问题时的探索点总是保持在可行域内部。
对于目标函数f(X)受约束于gu(X)0 (u1,2,...,m)的最优化问题,利用内点法求解时,惩罚函数的一般形式为:
或:
(X,r)f(X)r(k)(k)1u1gu(x)m 式(5.31a)
(X,r)f(X)r(k)(k)lng(X)uu1m 式(5.31b)
而对f(X)受约束于gu(X)0 (u1,2,...,m)的最优化问题,其惩罚函数的一般形式为:
13
(X,r)f(X)r(k)(k)1u1gu(x) 式(5.32a)
m
(X,r)f(X)r(k)(k)lng(X)uu1m 式(5.32b)
式中:
(k) r——惩罚因子,是递减的正数序列。即:
(0)(1) rrr(k)r(k1)0
(k)limr(k)0k
通常,取r=1.0,0.1,0.01,0.001。
上述惩罚函数表达式的右边的第二项
r(k)gu1m1u(x),称为惩罚项。
只要设计点X在探索过程中始终保持为可行点,则惩罚项必为正值,且当设计点由可行域内部远离约束边界处移向边界(gu(X)0)时,则惩罚项的值就要急剧增大直至无穷大,于是惩罚函数gu(X)0亦随之急剧增大直至无穷大。这时对设计变量起惩罚作用,使其在迭代过程中始终不会触及约束边界。因此,第二项使约束边界成为探索点一个不能跳出可行域之外的障碍。
(k)(X,r)求无约束极值时,其结果将随给定的由惩罚函数的表达式可知,对惩罚函数
惩罚因子r而异。为了取得约束面上的最优解,在迭代过程中就要逐渐减小惩罚因子的值,
(k)
14
(k)*(k)(X,r)X(r)收敛到原函数f(X)的约束最优点X*。可直至为零,这样才能迫使的极值点(k)*(k)(X,r)X(r)看作是以r(k)为参数的一条轨以把每次迭代所得的的无约束极值的最优解
迹,当取r(0)r(1)r(k)r(k1)0且klimr(k)0X时,点列*(r(k))就沿着这条轨迹趋于
f(X)的约束最优点。因此,惩罚因子r(k)又称为惩罚参数。内点法是随着惩罚参数r(k)递减
*(k)X(r)从可行域的内部向原目标函数的约束最优化点逼序列,使惩罚函数的无约束极值点
进,直到达到最优点。
(2)外点法
与内点法将惩罚函数定义于可行域内且求解无约束问题的探索点总是保持在可行域内的特点不同,外点法的特点是将惩罚函数定义于约束可行域之外,且求解无约束问题的探索点是从可行域外部逼进原目标函数的约束最优解的。
对于目标函数f(X)受约束于gu(X)0 (u1,2,...,m)的最优化设计问题,利用外点法求解时,作为无约束新目标函数的惩罚函数,其一般表达式为:
(X,M)f(X)M(k)(k)maxg(X),0uu1ma 式(5-33)
limM(k)k
在惩罚项中,有:
maxgu(X),0gu(X)gu(X)2 gu(X) gu(X)0
15
0 gu(X)0
由此可见,当探索点X(k)在可行域内时,惩罚项为零;若不在可行域内,则不为零,且M(k)(k)(X,M)极小,必须迫使式(5.33)中的惩罚项等愈大,则受到的惩罚亦愈大。因此,要使
(k)gu(X)0(u1,2,...,m)(X,M)与f(X)是等价的。于零,即迫使 。这就保证了在可行域内
即:
(k)(X,M)=
f(X)M(k)gu(X)u1m2 (在可行域外)
f(X) (在可行域内)
当约束条件gu(X)0 (u1,2,...,m)时,则惩罚函数的一般表达式为:
(X,M(k))f(X)M(k)min0,gu(X)u1ma 式(5-34)
一般取a2。同样可得:
0M(0)M(1)M(k)M(k1)
在惩罚项中:
min0,gu(X)gu(X)gu(X)2 gu(X) gu(X)0
0 gu(X)0
16
当约束条件中尚包括hv(X)0 (v0,1,,p)的等式约束时,则在式(5.33)和式(5.34)中的右边尚需加进第三项——惩罚项
M(k)hv(X)v1p2(k)(X,M)求无约束极值,。对惩罚函数其
*(k)(k)X(M)M结果将随给定的惩罚因子的值而异。可以将惩罚函数无约束有值问题的最优解
看作以M(k)为参数的一条轨迹,当取0M(0)M(1)M(k)M(k1)时,点列
X*(M(k)就沿着这条轨迹趋于原目标函数f(X)的约束最优解。因此,外点法是随着惩罚因
*(k)(k)子(参数) M的递增序列,使惩罚函数的无约束X(M从可行域的外部朝原目标函数的约(k)(X,M)的极束最优点逼进,直至达到最优点。随着惩罚因子的增加由求解一个惩罚函数
*(k1)X(M)的极小值过程中,小值转入到求解另一个惩罚函数惩罚项
M(k)gu(X)u1m2之值将逐
渐减小,直至为零。
外点法的上述特点,使之很适用于等式的约束的最优化问题。因为在这种情况下,凡是不满足等式约束条件hv(X)0(v0,1,,p)的探索点均是外点。随着探索过程的进行,在求解惩罚函数
(X,M(k))f(X)M(k)hv(X)v1p2极小值的过程中,必须要求最后将惩罚项压
*缩为零,从而使惩罚函数的无约束极值点等于原目标函数的约束最优点X。
(3)混合法
鉴于内点法和外点法各有优点和缺点,因此在惩罚函数法中又出现了所谓混合法。它是将内点法和外点法的惩罚函数形式结合在一起,用来求解既有不等式约束又有等式约束条件的最优化问题的。
根据混合法的基本思想,作为新目标函数的惩罚函数,其处罚项由两部分组成,一部分反映不等式约束的影响并以内点法的构造形式列出;另一部分反映等式约束的影响并以
17
外点法的构造形式列出。混合法惩罚函数的一般表达式为:
p12(k)Mh(X)vu1gu(x)v1 式(5.35) m
(X,r,M(k)(k))f(X)r(k)即所构造的混合法的惩罚函数,同时含有障碍函数
M(k)r(k)1u1gu(x)和衰减函数
mhv(X)v1p2。根据Fiacco等建议的关系式
M(k)1r(k)。可将惩罚因子统一用r(k)表示,
则混合法的惩罚函数又可以表示为:
p
(X,r,M(k)(k)11)f(X)ru1gu(x)r(k)(k)mhv(X)v12 式(5.36)
(r(0)r(1)0,limr(k)0)k
混合法与内点法及外点法一样,属于序列无约束极小化(SUMT)方法中的一种。利用上式构造混合法的惩罚函数时,其求解具有内点法的特点。这时,其初始点X应为内点;
(0)而r值可参照内点法选取。混合法的迭代步骤如下:
(0)(0)(0)1)选取初始惩罚因子r的值。在SUMT程序中,为了简化计算,常取r1。规定允
许误差0。
2)在可行域D内选择一个严格满足所有不等式约束的初始点X。
(0)(k)*(k)min(X,r)X(r)。 3)求解,得
18
4)检验迭代终止准则。如果满足式:
和:
X*(r(k))X*(r(k1))1105107
(X*,r(k))(X*,r(k1))3410102(X*,r(k1))
*(k)X(r)为原目标函数f(X)的结束最优解,的要求,则停止迭代,并以否则转入下一步。
(k1)(k)rCr5) 取,X(0)X*(r(k)),k:k1,转向步骤3)。取C=0.1
5.2.5整形化处理
在一项设计中,如果设计变量既有连续变量,又有整型变量,还有离散设计变量,在优化中,可以把所有的设计变量都作为连续设计变量来处理,经过计算,寻找出最优点后,再按照整型点处理。应圆整的参数(如齿轮设计中的齿数和模数)在圆整后构成的设计点称
***1XXX*iii为整型点。在确定最优点X周围部分为,则和是最接近X的两个整型参
**Xi数;如果最优点X是n维空间的一个点,则每一分量方向上均有两个整型参数,即和
**Xi1,由这些参数分别组成的整型点就构成了X*周围的整型点群,此点群最多有2n个。
*2以二维问题为例,如图5.2所示,X周围的整型点群数是24,即A、B、C、D四
点。将这四点分别代入目标函数中,计算出数值,并检验是否满足约束条件,则既满足约束条件又使目标函数值为最小值的点即为最优整型点。
19
图5.2 整形化处理示意图
20
因篇幅问题不能全部显示,请点此查看更多更全内容