结构优化设计的方法和进展
系列讲座
结构优化设计---概念、方法与展望
第一部分 结构优化设计的背景与研究历史
在从事工程项目和结构的设计时,一个训练有术的工程师,除了要考虑设计对象的基本使用功能及安全可靠性外,还应该考虑到把它设计对象设计得尽可能完美。这就是工程和结构的最优化问题。用科学的语言来描述就是:利用确定的数学方法,在所有可能的设计方案的集合中,搜索到能够满足预定目标的、最令人满意的设计结果。
最早的结构优化设计思想,严格地说,可以追溯到微积分方法的诞生。大家比较熟悉的就是“等强度梁”的例子。结构优化设计是由客观上的需求而产生并逐步发展起来的,它的每一个进步都与力学和数学学科的发展密切相关。力学学科的发展,使得人们从解决静定结构、超静定结构到解决大型、复杂的结构问题。而数学学科的发展则使得人们从解决单变量的最优化问题到多单变量的最优化问题;从用微积分方法来解决问题发展到用变分的方法来解决问题;从采用解析的办法发展到用数值计算的方法。而计算机科学的发展,更使得结构的优化设计发展得到了长足的发展。目前,结构优化设计已经成为计算力学中一个重要而活跃的分支。
上世纪50年代以前,用于解决最优化问题的数学方法基本上仅限于经典微分法和变分法,成为了经典的最优化方法。50年代以后,以下几方面重要的科学进展,推动了结构优化设计方法的快速发展。
1. 力学领域:有限元方法概念的提出、理论的完善和应用的实现;
2. 数学领域:数学规划方法的出现;
3. 计算机领域:电子计算机的诞生和计算能力的快速提高。
因此,结构的优化设计,尤其是对于复杂和大型结构的优化,其基本的定位是:以有限元计算为基本手段,以最优化算法为搜索导向,通过数值计算的方法得以实施。
结构优化设计的必要性及其较为明显的技术和经济效果是显然的。但定量的预测又经常是困难的。国内准确的统计资料是难以得到的,在这方面的工作也是比较落后的,在铁路机车车辆方面的差距比较大,尤其是在铁路货车的结构优化设计和轻量化设计方面,潜力应该是很大的。国外经验表明,采用结构的优化设计,可使结构节约材料或造价在10%-50%。
结构优化设计的复杂程度是很高的,尤其是对于机车车辆之类的大型结构。即使对于那些目前国内见得到的商业化软件,这方面的功能也是很差的。有些是理论上的问题,有些是程序开发的滞后问题。
最优化算法,作为一种寻优的搜索方法,目前仍然是国际上很热门的研究课题,它涉及到非常多领域的应用问题。上个世纪末流行起来的遗传算法和模拟退火以及其它一些智能化的方法都将会对优化设计的未来产生很大的影响。
第二部分 结构优化设计的基本概念
一.结构优化设计的优点
结构优化设计的思想在结构设计中早已存在。设计人员总是力图使自己的设计能得到一个较好的技术经济指标。传统的结构设计通常是设计者根据设计的具体要求,按本人的实际经验,参考类似的工程设计,作出几个候选方案。然后进行强度、刚度和稳定等方面的计算、校核和方案的比较,从中择其最优者。这种传统的设计方法由于时间和费用的关系,所能提供的方案数目非常有限,而真正最优的方案通常并不在这些候选的方案之中。因此,严格地说,这种做法仅仅是证实了一个方案是“可行的”或“不可行的”,离“最优的”相距甚远。
从理论上说,结构优化设计是设计者根据设计任务书所提出的要求,在全部可行的结构设计方案中,利用数学上的最优化方法,寻找到满足所有要求的一个最好的方案。因此,结构优化设计所得到的结果,不仅仅是“可行的”,而且还是“最优的”。
结构优化设计是一种现代的设计方法和设计理念。与传统的设计方法相比较,结构优化设计有下列优点:
(1)优化设计能使各种设计参数自动向更优的方向进行调整,直至找到一个尽可能完善的或最合适的设计方案。常规的设计大都是凭借设计人员的经验来进行的。它既不能保证设计参数一定能够向更优的方向调整,同时也几乎不可能找到最合适的设计方案。
(2)优化设计的方法主要是采用数值计算的方法,在很短的时间内就可以分析一个设计方案,并判断方案的优劣和是否可行,因此可以从大量的方案中选出更优的设计方案,能够加速设计进度、节省工程造价,这是常规设计所不能相比的。与传统的结构设计相比较,一般情况下,对简单的构件可节省工程造价3~5%,对较复杂的结构可达10%,对新型结构可望达20%。
(3)结构优化设计有较大的伸缩性。作为优化设计中的设计变量,可以从一两个到几十个、上百个。作为优化设计的工程对象,可以是单个构件、部件甚至整个机器。设计者可以根据需要和本人经验加以选择。
(4)某些优化设计方法(如几何规划)能够表示各个设计变量在目标函数中所占有“权”的大小,为设计者进一步改进结构设计指出方向。
(5)某些优化设计方法(如网格法)能够提供一系列可行设计直至优化设计,为优化设计者决策是提供方便。
(6) 结构优化设计方法为结构研究工作者提供了一条新的科研途径。
当然,优化设计也有其自身的局限性需要研究解决。但“最优化”是工程设计永恒的主题,这就决定了优化设计是一切工程设计的必由之路。随着计算机功能的不断加强,结合优化方法的不断完善,就一定能实现工程设计的自动化和最优化。
二.结构优化设计中的基本概念
1.设计变量
一个设计方案可用一组基本参数的数值来表示。依设计内容的不同,选取的基本参数可以是几何参数,如构件的外形尺寸、机构的运动尺寸等;也可以是某些物理量,如重量、惯性矩、力或力矩等,还可以是代表工作性能的导出量,如应力、挠度、频率、冲击系数等.这些参数中,有一些是预先给定的,另一些则需要在设计中优选。前者称为设计常量,而需要优选的独立参数,则被称为设计变量。设计变量的数目称为最优化设计的维数。设计变量的全体实体实际上是一组变量,可用一个列向量表示:
X[x1,x2,,xn]T
称作设计变量向量。向量中分量的次序是完全任意的,可根据使用的方便任意选取。
2、目标函数
结构优化设计要求在多种因素下寻求人们最满意、最适宜的一组参数,从而使设计达到追求的目标。根据特定问题所追求的目标,用设计变量的数学关系式表达出来,就是优化设计的目标函数。对有n个设计变量的最优化问题,目标函数可以写成
f(x)f(x1,x2,,xn)
最常用的目标函数是结构的重量,即以结构最轻为优化目标。当然结构体积、刚度、造价、变形、承载能力、自振频率、振幅也可以根据需要作为优化设计中的目标函数。目标函数是评价一个设计方案优劣程度的依据,因此选择目标函数是优化设计过程中最为重要的决策之一。
目标函数与设计变量之间的关系,可用曲线或曲面表示。一个设计变量与一个目标函数的关系,是二维平面上的一条曲线。当为两个设计变量时,其关系是三维空间的一个曲面。若有n个设计变量时。则呈(n+1)维空间的超越曲面关系。
3.约束条件
在结构优化设计中,设计变量xi(i1,2,· · ·,n)的取值是要受某些条件限制的,这些统称为约束条件。它反应了有关设计规范、计算规程、运输、安装、构造等各方面的要求,有时还反应了设计者的意图。对某个或某组量的直接限制的约束条件成为显约束;对某个或某些与设计变量的关系无法直接说明的量加以限制的约束条件成为隐约束。如板的最小厚度、孔的最小直径等限制,约束条件比较简单,属于显约束。而对结构强度、变形、稳定、频率等的限制一般与设计变量没有直接关系,必须通过结构分析才能求得,属于隐约束。
约束可以分为等式和不等式两种,用数学表达式可以写成
gi(x)0 i=1,2,· · ·,p
hj(x)0 j=1,2,· · ·,q
4.数学模型
最优化设计的定量描述称之为数学模型。综上所述,对一般的结构优化设计问题,其数学模型可表示如下:
选择设计变量 X={xi} ( i=1,2,· · ·,n)
满足约束条件 gi(x)0 i=1,2,· · ·,p
hj(x)0 j=1,2,· · ·,q
并使目标函数 f(X)min或(max )
5.结构优化设计的基本方法与步骤
结构优化设计的基本步骤为:
(1)建立数学模型,将优化设计问题转化为数学规划问题;选取设计变量,建立日标函数,确定约束条件;
(2)选择最优化计算方法;
(3)按算法编写迭代程序;
(4)利用计算机选出最优设计方案;
(5)对优选出的设计方案进行分析判断,看其是否合乎工程实际。
优化设计的数学模型建立后,具体的优化过程如下图所示:
图1-2 结构优化过程
6.经典的最优化方法
最优化方法大致分为两大类:解析法和数值计算方法。解析法的特点是利用数学分析方法(如微分法、变分法、拉各朗日乘子法等)求取目标函数的极值;数值计算方法是利用目标函数在某区域的某种性质及一些点的函数值,确定下一步的搜索方向和步长,逐步调优并逼近到函数极值点或达到最优点的方法。后者不仅适用于求复杂函数的最优解,也可用于处理没有数学解析式的优化设计问题,在结构优化设计中应用相当广泛。通常称为优化方法的数值计算寻优方法。
优化设计的方法很多,下表列出了常用的一些优化方法的特点及应用范围。
第三部分 最优化算法的原理与实施
介绍两种比较典型的最优化算法。该部分内容标准的教科书中均有详细介绍,篇幅限制,此处文字从略。
第四部分 遗传算法(Genetic Algorithms)
一.遗传算法的背景资料
遗传算法是一种新的最优化算法,它是基于自然界生物进化理论而演变出来的进化计算方法(Evolutionary Computing Method)。该方法是在60年代由美国和德国的一些科学家所提出的。但是,由于该方法所需要的计算量较大,而当时的计算机发展水平较低,加之其本身理论工作等方面的一些问题,使得这种方法未能得到人们的重视。到了70年代后期,在美国Michigan大学的JohnHolland教授和他的同事及学生们对遗传算法进行了一系列的理论研究工作之后,这种方法才逐渐成熟并被人们所接受。在1975年,John H.Holland的专著《Adaptation in Natural and ArtificialSystems》通常被认为是遗传算法的经典之作。该书给出了遗传算法的基本定理,并给出了大量数学的理论证明。直到80年代,随着人们对自然系统和各种人工系统研究工作的深人以及计算机容量和速度的迅速提高,这种进化计算的理论和方法才引起了国际学术界的普遍重视和大量研究。David E.Goldberg教授于I989年出版了《Genetic Algorithms in Search,Optimization and Machine Learning》一书,该书对遗传算法的理论、方法和应用进行了全面系统的介绍和总结。从1985年起,国际上开始举行遗传算法的国际会议,并于I994年起更名为进化计算的国际会议。目前,遗传算法作为进化计算的一个分支,被广泛地应用于机器学习、系统建模、图象处理、参数识别等诸多的领域。并成为人们用来解决非常复杂问题的一个新思路和新方法。遗传算法是基于自然选择和基因遗传学的原理所形成的一种搜索算法。它将达尔文“适者生存”的理论引入了串结构,通过对串结构进行一系列的遗传操作使得群体优良的特性被保留下来,并不断产生新的更好的个体。好的特性被不断地继承下来,而不好的特性被逐渐地淘汰。在新--代的群体中,不仅包含了上一代群体的大量信息,而且在群体的总体优势上胜过前一代,其结果是使得群体向着人们所期待的方向发展和进化。
遗传算法的中心问题是他的橹棒性(robustness)。所谓橹棒性是指能在许多不同的环境中通过效率和功能之间的协调和平衡来求得生存的能力。通常的人工系统一般都很难达到自然界生物系统那样的橹棒性。而遗传算法正是由于其模仿生物进化的原理来进行搜索和优化计算的,从而使得它能够实现在一个复杂空间进行有效的全局性搜索。并且遗传算法不仅在计算上是简单的,而且它对搜索问题的连续性、可微性及单峰性等诸多的限制都是不需要的。因此,遗传算法具有常规的搜索及优化算法所不具备的优良特性和橹棒性。
二. 经典最优化搜索算法的特点
在讨论遗传算法之前,我们首先简单地考察一下常规或传统的最优化方法。按一般的文献及教科书的介绍,其主要的寻优方法大致可归结为三种类型:解析法、枚举法及随机法。
解析法寻优是目前人们研究得最多的一种方法。它一般又可分为直接法和间接法。 直接法:主要是利用问题的梯度信息按最陡的方向逐步逼近问题的局部极值,即通常人们所说的爬山法。
间接法:实际上是经典微分法的延伸,它通过令问题的目标函数梯度为零,最后归结为用近似(迭代)方法来求解一组非线性的代数方程组。
这两种方法的主要缺点是:它们只能寻找到问题的局部最优解而非问题的全局最优解(非线性方程组的迭代及爬山均与初值有关);并且它们要求问题的目标函数要满足连
续且光滑的条件(可微性)。除此之外,解析法的一个最大缺点是:它对问题具有很强的依赖性。而这些缺点使得解析法寻优具有较差的橹棒性。
枚举法:一种最简单的寻优方法。但原则上它只适用于有限个搜索点的情况。因此,当搜索空间很大时,这种方法几乎是没有什么实际的意义的。
随机法:通过随机抽样的方法来选择其中较好的结果。
还有一类最优化算法人们通常称之为直接搜索法,它们主要包括:模态搜索法(坐标轮换法)、单纯形算法和复合形算法等。这类方法的最大优点在于它们不依赖问题的梯度信息,但其最大的缺点仍然是对搜索的初始点具有较强的依赖性;并且在寻优参数较多时算法的稳定性较差。
综上所述,这些传统的最优化方法都具有很强的局限性,它们都不能同时达到对于搜索上的有效性和环境上的适应性之完美的统一。
三.遗传算法的特点
严格地说,即便是设计上最优的人工系统,其橹棒性也不如自然界的生物系统所具有的橹棒性要好。但是,人们又总是希望所设计的人工系统能够具有更好的橹棒性,以达到较高层次的适应性。而遗传算法就是在计算机上模拟生物进化过程和遗传操作的一个人工的仿生系统。其特点是采用进化论和随机统计的理论,从问题解空间的多个点开始搜索问题的解。它不同于一些传统的最优化方法和搜索技术。这种方法具有对问题搜索上的全局性、计算上的内在并行性、处理上的灵活性以及很好的橹棒性。此外,遗传算法是一种直接的搜索方法,其搜索的信息仅仅依赖于问题本身的目标函数,而不需要其它的任何条件和辅助信息等。因此,它是解决大型、复杂搜索问题的一种有力的工具。
总之,遗传算法与其它的最优化算法相比具有更好的橹棒性。其主要特点可归结为:
(1)遗传算法不是直接对参数进行运算而是对参数的编码进行操作,因而首先必须对搜索参数进行适当的编码;
(2)遗传算法不是从搜索空间中某一个初始点开始进行搜索的而是从若干个初始点开始进行同事的并行搜索。因而可以有效的防止搜索过程收敛于局部最优解,并且遗传算法通常可以有较大的可能性求到问题的最优解;
(3)遗传算法使用概率的转变规则,而不是确定性的规则。
(4)遗传算法的搜索仅依赖于问题的目标函数或适应值(fitness value),而不需要其它任何的辅助信息。即遗传算法对于寻优函数基本上无任何的特殊要求和限制,它既不要求待寻优函数的可微性和连续性,也由数学解析式所表达的显函数或隐函数。这使得它具有更为广泛的适用性;事实上,遗传算法仅仅要求在搜索空间上寻优问题的目标函数是可比较的。
(5)遗传算法在解空间内既不是盲目地穷举也不是随机地漫游(Random walk),而是采用启发式的进化搜索,其搜索效率往往高于其它的优化算法。
§ 2.遗传算法的工作原理及操作步骤
本节将通过一个简单的例子来描述遗传算法的基本操作过程并对其进行基本的原理分析。其目的在于了解遗传算法的主要特点以及对遗传算法有一个较为直观的认识。
四. 遗传算法的基本操作
设需求解的问题为寻找函数y=x2,当自变量X在0 ~ 31之间取整数时函数的最大值。如果用枚举法来求解就是按自变量X所有可能的取值计算其函数值并通过比较得到问题的解。对于如此简单的问题,用枚举法来求解是可靠的。但这显然是一种效率很低的方法。下面我们用遗传算法来求解该问题。
1.遗传算法的参数表示和编码技术
在遗传算法中,搜索参数一般是以二进制串(String)的形式表示的。这与传统的搜索方法是不同的。串中的每一位数值表示了一个特定的基因(gene)。正是这种基因按照某种规则的传递与交换使得遗传搜索向着人们所期待的方向进行。而搜索的取向则是通过遗传算法的一些基本运算得以实现的。
遗传算法的第一步是将自变量(或搜索参数)X编码为有限长度的串,这种编码可以有很多种不同的方法来实现。对于本例中的问题,我们可以采用一种最简单而常用的二进制编码方法来处理这一问题。由于自变量X是在0 ~ 31之间取整数,我们简单地用5位的二进制数来表示自变量X。例如:二进制数00000用来表示X=0; 二进制数01010用来表示X =10;而二进制数11111则用来表示X=31。
2.遗传算法的并行搜索
许多最优化方法的寻优过程那是从自变量定义域空间的某个点开始来求解问题的。其搜索的过程是根据某种确定的规则进行点到点的顺序搜索。而这种方法最大的缺陷在于:其搜索结果将依赖于对问题的初始点的选择。对于多峰值的搜索问题而言,这很容易使问题的求解陷入局部极值。而遗传算法的搜索过程则是从一个种群开始的,这相当于从搜索空间的多个点开始进行并行的搜索。这种方法从一开始便扩大了搜索范围,因而容易求到问题的全局最优解。在遗传算法中,初始种群的产生一般是用随机方法确定的。对于本例,若设种群的规模为4,则可以用多种不同的方法随机产生如下4个个体串:
01101
11000
01000
10011
从埋论上说,种群中个体的分散性越大将越有利于搜索到问题的全局最优解。较大规模的种群也将有利于搜索到问题的全局最优解,而其代价就是计算量的增加。 3 遗传算法的基本运算
遗传算法的处理对象是一个群体(Population)而不仅仅是其个单独的个体(Individual)。其基本的运算包括:
(1)选择 选择是这样一种运算过程:它使群中的所用个体按其目标函数的优与劣加以选择,并根据其优劣的程度分别进行如下所述的各种不同的遗传运算。在遗传算法中个体的目标函数称之为个体的适应值。
(2)复制 复制是最简单的一种遗传运算,该运算使得群中的某些个体不作任何改变地进入到下一代的群体中。其目的是使得群中具有某些特性的个体得以保存下来并直接进入下一代。参与该运算的个体是按群体中个体的适应值来确定的。
(3)交叉 两个具有不同优良特性的个体之间进行信息交换的一种运算,该运算的结果将产生两个新的个体并使其进入下一代的群体中。在遗传算法中,人们把参与交叉运算的两个个体称之为双亲,而它们的交叉运算结果则被称之为后代。参与交叉运算的个体是按照其适应值来确定的,它们组成一个子群。而双亲的选择则是在该子群中按随机确定的。
(4)变异 某些劣等个体为生存的需要而改变其某些基因。该运算的操作是个体自身基因的改变。运算的结果是产生一个新的个体并进入下一代的群体中。在遗传算法中,人们把个体变异的结果也称之为后代。该运算使得群体在进化过程中不断加入新的基因
和遗传信息。参与变异运算的个体是在某子群中随机选择的,变化基因的确定也是随机的。
4 遗传算法的实施及说明
表1 参数的编码表
自变量X 0 1 2 …… 31 二进制串 00000 00001 00010 …… 11111
表2 复制操作之前的各项数据
表3 复制操作之后的各项数据
四. 遗传算法的一些改进措施
1.自适应变异法
2.部分替换法
3.优秀个体保护法
4.移民法
5.分布式遗传算法
五.基于遗传算法的大型工程结构优化设计
1.现有结构优化设计方法的缺陷
2.基于遗传算法的结构优化设计