Begtostudy(白途思)'s Professional Technology Blog

欢迎访问begtostudy的专业知识博客!主要是专业技术和算法为主。
  首页  :: 联系 :: 订阅 订阅  :: 管理

iSIGHT: 第二章 结构优化设计理论基础

Posted on 2012-04-18 22:04  白途思  阅读(4657)  评论(0编辑  收藏  举报

传统的设计通常是采用试算法,即在设计时根据要求,参考一些同类产品设计的成功经验,凭借一定的理论判断来选定设计参数, 然后进行校核计算,检验其是否符合要求,不满意则调整设计参数再校核,如此反复多次直到满足设计要求为止。传统的算法已经不能满足高效、优质的设计生产任务要求,需要一种新的方法来适应现代化的高速发展。

在计算力学领域中,结构优化设计比结构有限元等数值分析的层次高,这是因为有限元等数值分析是一个"认识世界"的过程,答案唯一;而结构优化设计是一个"改造世界"的综合决策过程。当前的结构设计,早已超出了不进行计算的经验决策阶段,因而有限元计算就成了结构设计得以"生存"的基本手段,倍受重视。而结构优化设计却进展缓慢。分析其原因,一是某些工厂决策者误把几个方案的比较视为优化设计,轻视真正优化设计的理论作用;二是某些设计人员虽然认识到了优化设计的理论指导作用,但是难于消化。

针对上述两种倾向,本章从优化设计的基本概念、思路着手以让读者对优化设计有个初步的概念与意识。

2.1 优化设计与数值分析的关系

优化设计与数值分析的关系是,对一个给定的数值计算模型,指定设计变量与约束条件后,可以进行优化设计或敏度分析,如果只进行敏度分析,则不需要修改设计变量;如果要进行优化设计,则需要修改设计变量后返回到有数值计算模型,予以重分析。对每一次重分析的结果进行收敛性检查,如果满足,停止分析,否则迭代继续进行直到满意为止。

2.2 优化设计基本概念

2.2.1 设计变量(Design Variables)

设计变量,即自变量,凡是设计中允许改变的参数,均称为设计变量。例如描写几何形状的参数(比如板壳的厚度、梁截面上的某些尺寸、孔的直径、园角半径等),甚至还有描写物理性质的参数(如杨氏模量、密度等)。

在优化设计中,我们一般把设计变量分为独立设计和相关设计变量两种。所谓独立设计变量,是指它取值的变化不会引起计算模型中其它变量的改变,比如壳单元的厚度、材料弹性模量等;而所谓的相关变量就指那些自身的取值变化会引起计算模型中其它变量信息改变的变量,比方说粱断面几何尺寸的变化会引起梁的抗弯截面模量等力学属性的变化。

另外,根据设计变量是连续取值还是仅取一些离散值,又把设计变量分为连续性与离散性两种。

2.2.2 约束条件Constraints

在优化设计中对设计变量或其函数表达式所进行的限值与约束,均称为约束条件。例如应力约束、位移约束、频率约束等,通常是设计规范中的规定值,以及设计变量的取值范围的上、下界限约束。

2.2.3 设计目标与目标函数Object

对结构优化设计而言,设计目标是优化设计的最终目的。而目标函数也就是设计目的的具体体现,它必须是设计变量的函数。比方说,在结构轻量化优化设计中以结构总质量为目标函数,而在涡轮增压器叶片的组合场优化中则以叶片的空气阻力系数为目标函数。

2.2.4 敏度(Sensitivity)

敏度是指目标函数或某个约束条件相对于某一个设计变量的变化而得到的变化率,在数值上它等于设计变量获得单位改变时目标函数或约束条件所获得的改变。通过敏度分析,用户可以了解各设计变量对目标函数的影响程度。

例如,在废气涡轮增压器叶片的优化设计中。其设计目的是如何在保证静强度和不发生共振的条件下,如何选择合适的叶片几何尺寸参数,以使叶片的质量最小为目标。在这个工程优化实例中,叶片的几何尺寸参数是设计变量,叶片应力场应力最大值与自振频率为约束条件,而叶片的质量则是设计目标,或称之为目标函数。而某处质量关于叶片某一几何参数的导数,以及某处位移关于该参数的导数,即为该处相应的质量敏度和位移敏度。

2.2.5 收敛准则(Convergence Criteria)

收敛准则是指用以判断优化设计是否达到最优的判别标准,一般取前后两次目标函数值的相对变化是否小于某一事先给定的一个很小值,例如0.05或0.03等,这个收敛精度由用户自己定义。

2.2.6 可行域(Feasible Domain)

在数学规划的讨论中,把满足约束条件的点称为可行点(或可行解),所有可行解组成的点集称为可行域。

2.2.7 最优点与最优值(Optimal Point and Optimum Value)

如果可行域记为S,对于数学规划而言就是求,且使在S上达到最大(或最小),把称为最优点(或最优解),为最优值。

2.3 优化模型分类

根据处理方法的相近,又可以把优化问题加以归类,从而对这些问题可从一种或几种不同的角度进行系统地深入研究。根据这种归类的结果,优化问题便产生了许多相对独立的分枝。它们包括数学规划、组合优化、图论与网络流和动态规划等。

2.3.1 数学规划

在一些不等式或等式约束条件下,求一个目标函数的极大(或极小值)的优化模型称为数学规划。视有、无约束条件而分别称为有约束规划和无约束规划。约束规划的一般形式为:

(2.1)

其中,为向量(即),若目标函数和约束条件中的函数均为线性函数,则称数学规划(2.1)为线性规划,否则就成为非线性规划。

在线性规划和非线性规划中,所研究的问题都只含有一个目标函数,这类问题常称为单目标规划。但是,在工程技术、生产管理以及国防建设等领域中,所遇到的问题往往需要同时考虑多个目标在某种意义下的最优化问题,我们称这种含有多个目标的最优化问题为多目标规划。

2.3.2 组合优化

组合优化为有一个由有限个元素组成的集合,和定义在E上的某些子集作成的集合上的实集函数,问题就是从E中找出一个子集,即满足要求,又要使相应的函数值达到极大或极小。

由于E只有有限个元素,E的所有子集也只有有限个,因此组合优化问题的最优解必然存在,而且可以用最原始的方法——逐个列举法的方法求得。根据目标函数的不同,问题的难以程度就会大为悬殊,因此在组合优化问题算法的讨论中常要考虑计算的工作量。

2.3.3 图论、网络流

所谓的图是指有一组点和一组点与点之间的连线(边)所组成的总体。而图论就是研究图的理论。图论的产生可以追溯到18世纪,但在本世纪50年代后,由于许多具有问题均可通过图来表示,使得图论的研究越来越受到人们的重视。图论的研究问题主要分为两类:一是在给定的图中具有某种性质点和边的存在与否的问题;二是如何构造一个具有某些性质的图或子图。图论中得到最多应用的是网络流。所谓的网络流,即为各条边上赋有权数的图,而且可以有方向或没有方向,分别称为有向网格或无向网格。实际生活中可以用网络来描述的例子很多,如一组电路、一个电视系统等,因此在近30年来,在计算机蓬勃发展的促使下,图论由于在许多领域有广泛地应用,并卓有成效,现已成为运筹学、电路网络、计算机科学等所不可缺少的数学工具。

2.3.4 动态规划

某飞机制造厂接受了11架飞机的订货,货主要求在第一、二、三年内分别交货4、5、2,该厂的年生产能力为4架,预计每年的单位生产成本为6、8、4,每年多生产的飞机可以放在仓库里储存,其每年每架飞机的保管费为2.0,试制定一个完成定货合同且成本最低的生产计划。

我们可以把这个问题的解决视为各年份(习惯称为阶段)先后作出决策的过程——多阶段决策过程,而在做每一年的生产计划的时候,不能仅考虑本年份的费用(一般称为阶段效益),因为本年份的决策会对以后各年份的决策过程产生影响,因此应考虑从本季度直到交货期的总费用(总效益),而年度的决策依赖于每年初仓库中储存量(一般称为初态)而和以前各年份如何造成的这储藏量无关(称之为无后性)。

通过上述问题的分析,我们可以把上述问题的方案看作为任何截断面(年份)仍是最优的,称之为最优性原理。把一个最优化问题视为符合最优性原理、无后效性的多决策过程并进行求解的方法称为动态规划。

2.4 常用优化算法

2.4.1 满应力设计法

满应力设计是结构优化设计的各种方法中最简单,也是最易为设计人员所接受的一种方法,但是仅适用于只有应力约束的优化设计。

给定设计变量后,进行有限元等数值分析,根据分析结果可以判定那些设计变量所对应的应力大于或小于应力约束值(一般取为许用应力)。对于应力大于约束值的,可按应力比(此时应力比大于1)放大设计变量;对于应力小于约束值的,可按应力比(此时应力比小于1)缩小设计变量。这样做的意图很显然要使每一个设计变量的应力"饱满"。

绝大多数情况下,设计变量的每一次修改将导致结构内的内力重新分布,从而使已经"饱满"的应力状态发生变化而再次大于或小于应力约束,因此,必须重新求应力比,继续修正,强迫其应力"饱满"。上述过程是一个迭代过程。由于满应力设计不考虑或不比较目标函数值,其结果经常不是最优解,并且在迭代过程中经常产生一系列不可行设计,因此满应力设计应用的局限性很大。

2.4.2二次规划法

二次规划算法是结构优化设计的重要算法,被广泛使用。

2.4.2.1 约束的线性近似

在许多优化设计问题中,约束是设计变量的非线性函数,引入倒设计变量之后,有些约束条件表现为线性,虽然仍有一些约束表现为非线性,但好处是明显的。设第个约束的非线性关系是

(2-31)

式中为中间倒设计变量。在当前设计点上用泰勒级数(Taylor Series)一阶展开,可得下一个设计点的线性估计

(2-32)

如果令: (2-33)

那么所有约束可以用矩阵形式表示为:

(2-34)

式中是约束对于设计变量的敏度向量。

2.4.2.2 目标函数的一阶和二阶近似

由于引进了倒设计变量,目标函数的非线性程度反而增加了。研究表明,目标函数的非线性配以线性约束与目标函数的线性配合以非线性约束相比,前者求解效率要高一些。

在分析时可以选择对目标函数作了一阶近似或二阶近似,前者用于线性对偶规划,后者用于求解二次规则。

设目标函数与中间变量的关系是:

(2-35)

在当前设计点上的一阶台泰勒展开式:

(2-36)

二阶展开式:

(2-37)

以矩阵形式表示,它们分别是:

(2-38)

(2-39)

式中是目标函数的敏度:

(2-40)

式中是二阶导数矩阵——海森(Hesssian)矩阵:

 

(2-41)

 

2.4.2.3 目标函数和约束条件的线性规划

代替,原问题变成:

(2-42)

上式可以整理成线性规划的标准型:

(2-43)

式中,

因为设计变量中的直径,厚度等等不可能是负数,所以永远是正数。

用拉格朗日乘子法格构造式(2-31)(2-43)的对偶问题,得:

(2-44)

 

式中为与约束对应的拉氏乘子;为设计变量大于零的拉氏乘子;(a)式为(2-44)的拉氏函数,(b)式为式(a)对的导数为零条件。将(b)转置后两端右乘,得:

将式(e)代入式(a)后,最后得原问题的对偶问题:

(2-45)

式(2-45)可以用单纯形法求解,目标值是对偶质量,解出的是拉氏乘子,其中每一个与一个约束条件对应。如果,在最优点第个约束是主动约束;如果,在最优点第个约束是无效约束。根据这些信息,可以进一步实现主动约束策略。

2.4.2.4 二次规划

原问题的约束经过筛选,降低了求解的困难度,并且可以构造一个新的二次规划:

(2-46)

 

式中的约束是新的集合,为方便,不再引用新的记号。

式的拉氏函数是

(2-47)

由优化的必要条件(K-T条件),在最优点:

(2-48)

解式(2-48),由第一个方程,得

(2-49)

上式回代到(2-48)中第二个方程,得

(2-50)

解式(2-50),得拉氏乘子

(2-51)

如果从式(2-51)中解的中有负的乘子,那就将它们从主动约束集合中去掉重新安排求解直至所有的。如果解出的全部为零,说明约束均没起作用,原问题退化为无约束问题,收敛速度也会受到影响。实际问题中,以上两种情况并不经常发生。

由式(2-49)解出的步长并不能使设计一次迭代后就结束,原因是式中的目标函数,约束函数并非原来的函数,只能使设计向真正的最优点靠近了一步。虽然迭代次数几乎与约束数,设计变量数无关,但是它与下面两个因素密不可分:

(1)原设计距最优点的距离;

(2)约束条件,目标函数近似的好坏程度。

一旦最后得到的在运动极限之内,则修改设计,从而得到新的设计点: ,如果不收敛,下一轮迭代就开始了。

2.4.3 iSIGHT中的NLPQL算法

NLPQL用来解决带有约束的非线性数学规划问题,并假设目标函数和约束条件是连续可微的。二次连续规划法(SQP)是NLPQL的核心算法。将目标函数以二阶泰勒级数展开,并把约束条件线性化,原非线性问题就转化为一个二次规划问题,通过解二次规划得到下一个设计点。然后根据两个可供选择的优化函数执行一次线性搜索,其中Hessian矩阵由BFGS公式更新,该算法很稳定。

这个技术最主要的优点是容易和一个非常健壮的算法一起使用。

NLPQL优化技术的数学公式表达如下所示:

数学表达                         代表值

寻找             设计变量

使得最小                         目标函数

                     不等约束

                等式约束

                             边界约束

SQP方法是解决处于以下一些假定下的平滑非线性优化问题的标准通用工具:

  • 优化问题不是很大;
  • 函数和梯度可以用非常高的精度来评估;
  • 平滑和容易缩放的优化问题;
  • 没有能被开发的深一层的模型结构(问题的数学模型)。

SQP方法的数学收敛性和数值表现属性现在非常容易理解,根据已有的研究表明,SQP方法的理论收敛性在以上的假定下优于其他的数学规划算法。

SQP的关键问题是如何逼近二阶信息来获得一个快速的最后收敛速度。因而我们通过一个所谓的类牛顿矩阵定义了一个朗格拉日函数的二阶逼近和一个的Hessian形式矩阵的逼近。然后,我们可以获得二次规划的子问题:

最小化

    

    

    

为了让算法更加稳定,尤其是如果从一个糟糕的起始猜测点开始,而要保证它能达到全局收敛,所以我们在NLPQL中应用了一个附加的线性搜索。只有当满足一个关于二次规划子问题的解决方案的下降性,才会执行一个步长计算来进行一个新的迭代。按照Schittkowski的方法,一个联立线搜索需要因数逼近和一个扩张的朗格拉日价值函数来确定线搜索的参数。此外,有一些可靠的安全措施也需要加以注意,以确保线性化的约束没有相互矛盾。

矩阵的更新在SQP中可以用无约束优化中的标准技术来执行。在NLPQL中,应用了BFGS方法。该方法是从单位矩阵开始的一个简单二阶修正,并且只需要微分向量。在一些安全措施的保证下,所有的矩阵都可以保证是正定的。

SQP方法的最吸引人的特征之一是在从所得到的解决方案的临近区域内的超线性收敛速度。在这里,是收敛至零的正数序列,而是一个优化解决方案。

为了了解这个收敛的特性,我们用朗格拉日函数的Hessian行列式来代替,而且只考虑等式约束。然后就很容易看出SQP方法在处理带有n+m个等式的非线性系统时和牛顿方法是一样的,而且这个非线性系统有n+m个由Kuhn-Tucker条件带来的自变量。这个结论同样可以扩展到不等约束的情况中。这样我们就立即可以看到二次收敛性的特性了。

2.4.4 遗传算法(GA

遗传算法是近年来发展起来的智能型优化方法,它模拟生物进化过程,形成一套计算机数值计算方法。遗传算法以统计的概率结果为依据进行最优化选择,不需要求解敏度。而且,作为基本设计变量为离散值,尤其对多峰值目标函数以及多目标值优化这类组合优化问题求全局最优解有独到之处。能够解决用数理方法难以处理的问题,与之形成互补。遗传算法近年来在发达国家(美、欧及日本)发展很快,复合材料设计及控制系统已有许多应用。

遗传算法是概率方法,优化进行的对象必须是个集团,它是由一个个的个体(叫做染色体)组成,每个个体用一个一维数码(一般用二进制数)列表示,组成这些数码的元素叫基因。遗传算法是基于进化论的思想,可归纳为:在一代代的繁衍中每一代集团中都有些相对优秀的,即适应环境能力比较强的个体,它应该优先生存下去,反之则繁衍困难是短命的,应该被淘汰。对应以上概念,在截面优化中,基因就是设计变量,即截面形状或尺寸,一个染色体即一个结构,由一组设计变量组成,若干个这样由不同的截面组成的结构形成集团。

用遗传算法进行刚架截面优化设计是概率的方法,其思想大体可以概括为:首先随机为每个设计变量(可以是一个或多个单元)选出截面种类和尺寸,组成一个结构。用同样的方法选若干个(M个)结构形成初期集团。初期集团的个数应适当,太少不利遗传操作,太多则效率低。继而分别对每个结构进行分析计算,计算出对应的目标值、应力等进行优劣判断,经优选产生临时集团。对这个临时集团进行遗传操作产生新的集团。再分析、优选反复进行,直至收敛到最优解。

2.4.3.1设计变量的数码化

因为遗传操作是在数码间进行,所以,必须将设计变量数码化,一般用二进制数码比较方便。

截面优化的设计变量有两个因素形状和尺寸,由于本文截面库设置了8种形状和8种尺寸,所以,一个设计变量可以用2个3位的二进制数表达。(000对应1,21对应8)。如果结构设计变量数是n,则这一结构对应设计变量数码列的字长为6*n(比特),称为染色体字长。每个染色体对应一个结构,结构的优劣是由基因(截面种类)决定的。例如图2-2所示染色体,第i个变量的6位二进制数为02 010(这里规定前边代表形状类型号、后边代表尺寸类型号),表明该结构的第i个设计变量取截面库中的第4种形状(三角形)第三种尺寸。

 

|××× ×××|……|02 010|……|××× ×××|

1 i n

2.3.1 染色体数码表示

2.4.3.2 适合度函数

适合度函数是衡量结构优劣的度量工具,直接影响到是否收敛和收敛速度,是遗传优化的重要因素。适应度函数可以直接取目标函数,但为提高收敛速度,一般要进行加工,使其在优化具体的操作中有适当的敏感度,在有约束的情况下应能做可行性调整,作为原则应尽量满足三点:1)与目标值一一对应;2)适合度不管目标函数符号如何而保持正值,最好是单调;3)二者具有相同的极值点。经数值实验,本文所研究问题取如下适合度函数为好:

i=1,2,...,M

式中: — 第个染色体的适合度函数,— 当前集团所有染色体目标平均值

— 常数(人为确定), — 第i个第个染色体的目标值

值越小值越大,从而达到尽快收敛之目的,具体关系如下:

2.4.3.3 染色体集团的再生

建立前述染色体的初期集团后,进入优化循环过程,这一过程大体概括为以下三个环节:

淘汰 首先对每一个染色体对应的结构进行分析(这是纯粹的结构分析,可用各种方法,如有限元、边界元等数值计算法,也可用解析法和试验法,本文用有限元法),目的是求出目标函数、应力和位移等性态指标,进而计算适应度函数。根据其大小和约束情况判断哪些染色体应当死去,哪些存活,通过适应度造成适者生存的环境。

染色体再生 在保留下来的相对有优势的染色体集团中,采用轮盘法随机选出M个染色体,组成新的染色体集团叫做"临时集团"。轮盘法思想是:将保留的N NM 余下的M-N个染色体已被淘汰)个染色体中根据适合度的大小,分N个数值段(在0——1之间),每段的长度为的大小与对应的有关,越大越长,被选中的概率就大。随机取0——1间的实数,随机数落在哪个段内,对应的染色体就被选为新的染色体集团成员,选出M个组成上述"临时集团"。

(=1,2,…,;)

遗传操作 上述临时集团中适合度总的水平已有提高,但还没有脱离原集团的范围,再通过交叉、异变等遗传手段使染色体基因发生变化,就能产生更好的染色体。

遗传操作主要有两个内容——交叉和异变。作用是通过改变上代(母代)集团的基因,产生新的子代集团从而可能产生更优良的染色体,达到优化的目的。本文具体做法如下:

交叉 首先确定一个交叉率,交叉率即在这个集团中参与交叉操作(从结构上讲是两个结构相互交换部分截面)的染色体的概率。这样生成的子代染色体有可能使一些好的基因交叉到同一个染色体中,达到更优良子代产生,既组成更好的结构。交叉率一般在0.6---0.8之间比较好。本文采用一点交叉法。根据人为确定的交叉率,从临时集团中随机选出一对染色体作为母体,随机找到切入点,让这两个有一定优势的染色体之间进行基因交换。也就是通过数码的交换,完成两结构之间部分截面的交换,产生两个新的结构。如图2-3所示,随机取一对染色体作为母体AB,随机选交叉位置Y,然后对换部分基因,成为子代染色体。

Y

(母)A 0 1 1 0 1| 0 1 0 0 1 1 0 (子)A 0 1 1 0 1 1 1 1 0 0 1 0

B 1 0 1 1 0| 1 1 1 0 0 1 0 B 1 0 1 1 0 0 1 0 0 1 1 0

图2.3.2 一点交叉操作

 

异变 确定异变率,然后随机选出发生异变的染色体和异变点Y,进行数码的01交换,如图3所示。使原染色体的基因发生较大的变化。即通过数码的反相变化使相应截面可远离原有范围,目标函数值可能产生跳跃性变化,有助于使解从一个局部极值点向另一个极值点移动,在大范围搜索中找到全局最优解。

0 1 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0

图2.3.4 一点变异操作

 

当然,这些遗传操作产生子代染色体优和劣的可能性同时存在,只要在恰当的适合度函数控制下,能够逐步收敛到最优解。

2.4.5 iSIGHT中模拟退火法

模拟退火算法是模拟金属退火的物理过程得到的。在冶金业,退火是强化金属的一种方法。金属加热到一定的温度就会融化,这时分子可以自由地移动,如果金属在冷却槽中以特定的速率进行冷却,允许分子在较低的能态进行稳定,这样就产生了特定的晶格。

模拟退火算法通过模拟退火过程,将组合优化问题与统计力学中的热平衡问题类比,可找到全局(或近似)最优解。其基本思想为:把每种组合状态 S看成某一物质系统的微观状态,而将其对应的目标函数C(S)看成该物质系统在状态S下的内能;用控制参数T类比温度,让T从一个足够高的值慢慢下降,对每个T用 Metropolis抽样法在计算机上模拟该体系的热平衡态,即对当前状态S作随机扰动以产生一个新状态s',如果C(s')<C(s)则接受s'为下一状态,否则以概率e-(c(s')-c(s))接受。经过一定次数(Markov链长)的搜索,认为系统在此温度T下达到平衡,则降低温度T再进行搜索,直到满足结束条件。模拟退火算法的改进算法有加温退火法、记忆模拟退火法等。如果一个问题潜在地存在大量解的话,该方法能够以最小的成本获得可行解。模拟退火算法在iSIGHT中称为自适应模拟退火算法。

模拟退火算法作为一种优化方法,从初始点开始每前进一步就对目标函数进行一次评估,只要函数值下降,新的设计点就被接受,反复进行,只到找到最优点。函数值上升的点也可能被接受,这样能够避免找到的是局部最优点。是否接受函数值上升点是依据Metropolis 判据决定的,它是温度的函数,温度高则更容易接受。由于该算法对目标函数的要求很松,所以在非二次面情况下是很稳定的。

模拟退火算法和遗传算法有很多相似之处,他们都需要从旧的设计点通过变异产生新的设计点。模拟退火算法比遗传算法简单,因为它每次在搜索空间中只检查一个设计点,而遗传算法检查一组设计点(一个种群)。除此之外,模拟退火算法的参数也比遗传算法少。

模拟退火算法主要有以下优点:

  • 能够处理任意的系统和目标函数;
  • 从统计学角度看肯定能找到最优设计点;
  • 编码相对容易;
  • 通常能够找到一个好的设计点。

模拟退火算法主要有以下缺点:

  • 重复循环的退火和目标函数的计算使得优化过程很慢,效率低;
  • 对于平滑的设计空间,局部最优点很少的话,这种方法不是最简单最快的方法;

算法不能够指明找到的设计点是不是最优的设计点。

2.4.6 iSIGHT混合整型优化

混合整型优化方法-MOST首先认定所给的设计问题是连续的,并使用连续二次规划法得到一个初始的峰值。如果所有的设计变量都是实数型的,优化过程停止。否则,对每一个非实数型参数寻找一个最近的设计点,该点满足非实数型参数的限制条件。这些限制条件被作为新的约束加进来,然后重新优化,产生一组新的峰值。这些峰值作为新的迭代的起始点。在这个过程中,连续的非实数型参数被作为重点考虑的对象,直到所有的限制条件都得到满足,优化过程结束。

混合整型优化-MOST技术起源于一个优化包,MOST(Multifunctional Optimization System Tool)。MOST结合了用来解决实值问题的连续二次规划优化、处理整数型和离散型参数的一个分歧定限法(branch-and-bound)外部回路、处理多目标问题的一系列标准程序、和让用户提供梯度的能力。这个优化包的iSIGHT界面支持除了多目标优化问题之外的所有特性(iSIGHT只处理单目标问题)。这些特性的组合使这种技术类似于连续二次规划-DONLP或连续二次规划-NLPQL和逐次逼近法的组合。

这种技术从忽略设计变量的所有整数型和离散型限制开始,并且在连续设计空间上应用了SQP。开始时提出一个优化值的初始值。如果所有的设计变量事实上是实数型的,那么立刻终止并返回作为解决方案。如果一些设计变量被限制为整数型或是离散(数值)型,那么很可能不能满足那些限制。在这种情况下,这种技术会应用一个分歧定限法搜索来找到适合限制的点。

分歧定限过程开始时独立地考虑整数型和离散型的设计变量。典型的情况下,设计变量的值会处在两个允许的值当中(例如,如果的值必须是个整数,对于一些N来说是N和N+1)。这个技术通过把放置在这些允许的值当中来构建两个设计点,评估这两个点,并且不管哪一个生成更好的目标值都先将它们放在一边。在这个分支过程结束的时候,会积累下一个满足一个整数形或离散形变量限制的一个新序列。然后,将每个分支点依次处理,通过应用每个整数型或离散型的值作为一个新的输入约束来限定问题,并且重新进行完整的分歧定限法循环,从分支点开始。

当每一个分支点被评估时,都会产生下一些分支点,但那些点会违反更少量的整数型或离散型限制。最后,会找到一个或多个满足所有限制的点,这就是最优值。

注意:iSIGHT数据库文件会记下所有被评估过的设计。因为在大部分的优化过程(例如,在所有SQP阶段的有限差分计算期间)中忽略了整数型和离散型的限制,所以数据库中的大部分设计点都不会在规定的设计空间中。为了确定真实的解决方案,用户必须首先过滤数据库,只保留处在设计空间中的点。

2.4.7 iSIGHT优化算法分类

iSIGHT软件里面优化方法大致可分为数值优化方法、探索优化方法和专家系统优化三类。

2.4.7.1数值优化方法

数值优化方法通常假设设计空间是单峰值的,凸性的,连续的。iSIGHT中有以下几种:

(1)外点罚函数法(EP)

外点罚函数法被广泛应用于约束优化问题。此方法非常很可靠, 通常能够在有最小值的情况下,相对容易地找到真正的目标值。外点罚函数法可以通过使罚函数的值达到无穷值,把设计变量从不可行域拉回到可行域里,从而达到目标值。

(2)广义简约梯度法(LSGRG2):

通常用广义简约梯度算法来解决非线性约束问题。此算法同其他有效约束优化一样,可以在某方向微小位移下保持约束的有效性。

(3)广义虎克定律直接搜索法:

此方法适用于在初始设计点周围的设计空间进行局部寻优。它不要求目标函数的连续性。因为算法不必求导,函数不需要是可微的。另外,还提供收敛系数(rho),用来预计目标函数方程的数目,从而确保收敛性。

(4)可行方向法(CONMIN):

可行方向法是一个直接数值优化方法,它可以直接在非线性的设计空间进行搜索。它可以在搜索空间的某个方向上不断寻求最优解。用数学方程描述如下:

Design i = Design i-1 + A * Search Direction i

上式中,i表示循环变量,A表示在某个空间搜索时决定的常数。它的优点就是在保持解的可行性下降低了目标函数值。这种方法可以快速地达到目标值并可以处理不等式约束;缺点是目前还不能解决包含等式约束的优化问题。

(5)混合整型优化法(MOST):

混合整型优化法首先假定优化问题的设计变量是连续的,并用序列二次规划法得到一个初始的优化解。如果所有的设计变量是实型的,则优化过程停止。否则,如果一些设计变量为整型或是离散型,那么这个初始优化解不能满足这些限制条件,需要对每一个非实型参数寻找一个设计点,该点满足非实型参数的限制条件。这些限制条件被作为新的约束条件加入优化过程,重新优化产生一个新的优化解,迭代依次进行。在优化过程中,非实型变量为重点考虑的对象,直到所有的限制条件都得到满足,优化过程结束,得到最优解。

(6)序列线性规划法(SLP):序列线性规划法利用一系列的子优化方法来解决约束优化问题。此方法非常好实现,适用于许多工程实例问题。

(7)序列二次规划法(DONLP):

此方法对拉各朗日法的海森矩阵进行了微小的改动,进行变量的缩放,并且改善了armijo型步长算法。这种算法在设计空间中通过梯度投影法进行搜索。

(8)序列二次规划法(NLPQL):

这种算法假设目标函数是连续可微的。基本思想是将目标函数以二阶拉氏方程展开,并把约束条件线性化,使得转化为一个二次规划问题。二阶方程通过quasi-Newton公式得到了改进,而且加入了直线搜索提高了算法的稳定性。

(9)逐次逼近法(SAM):

逐次逼近法把非线性问题当做线性问题来处理。使用了稀疏矩阵法和单纯形法求解线性问题。如果某个变量被声明成整型,单纯形法通过重复大量的矩阵运算来达到预期的最优值。逐次逼近法是在M. Berkalaar和J.J. Dirks提出的二次线性算法。

2.4.7.2探索优化方法

探索优化法避免了在局部出现最优解的情况。这种方法通常在整个设计空间中搜索全局最优值。iSIGHT中有以下两种:

(1)多岛遗传算法(MIGA):

在多岛遗传算法中,和其他的遗传算法一样每个设计点都有一个适应度值,这个值是建立在目标函数值和约束罚函数值的基数上。个体如有好的目标函数值,罚函数也就有一个更高的适应度值。多岛遗传法区别于传统遗传算法的最大区别在于每个种群都被分为若干个子种群,也称为岛。分别在各自的子种群中进行传统的遗传算法。一些个体被选出来周期的"移民"到其他的岛上。这种操作成为"移民"。有两个参数控制着移民过程:移民间隔(每次移民之后繁殖后代的个数);移民率(移民个体所占的百分比)。

(2)自适应模拟退火算法(ASA):

自适应模拟退火算法非常适用于用算法简单的编码来解决高度非线性优化问题,尤其是当发现找全局目标值比寻求好的设计方法更为重要的时候。这种方法能够辨别不同的局部最优解。该算法能够以最小的成本就获得最优解。

2.4.7.3专家系统优化

定向启发式搜索算法(DHS):定向启发式搜索算法只注重于可以直接影响到优化解的参数。

在实际应用中,用户可以通过表1、2的问题特性描述来选择合适的优化算法。

表1 问题特性描述

问题特性描述

PenMeth

MMFD

SLP

SQP

HJ

SAM

DHS

GA

Sim.Annl

MOST

LSGRG2

只有实型变量

x

x

x

x

x

x

x

x

x

X**

x

处理混合或者不混合实型,整型,离散型变量

    

x

x

x

x

x

x

 

高速非线性问题

x

x

    

x

    

脱离的设计空间(相对最小值)

x

      

x

x

  

大量的设计变量(大于20个)

 

x

   

x

x

x

x

 

x

大量的约束条件(大于2000

 

x

x

  

x

    

x

长时间的运算代码或分析(大量的方程求解)

x

x

x

 

x

x

     

用户提供梯度的有效性

x

x

x

X*

     

x

x

注:

* 只有NLPQL. DONLP在不能处理用户提供的梯度情况下有效。

**尽管运算需要某些或全部变量是整型或者离散型的,任务过程必须能估计任意实型设计变量。

表2 优化技术特性描述

技术特性描述

MMFD

SLP

SQP

HJ

SAM

DHS

GA

Sim.Annl.

MOST

LSGRG2

不需要目标函数是连续的

   

x

x

x

x

x

  

处理等式或不等式约束条件

X*

x

x

x

x

x

x

x

x

x

基于库塔条件的优化方程

x

x

       

x

从一系列设计点寻找而不是从单一的某点

      

x

 

X**

 

使用随机准则

      

x

x

  

在开始就可以得到好的目标值

      

x

   

不需要假设参数的独立性

   

x

 

x

x

x

  

不需要用有限差分法

   

x

 

x

x

x

  

能够通过可控地,有序的方式设定

     

x

x

x

  

容易理解

     

x

    

不同阶次的数量级对设计变量的值不敏感

     

x

    

注:

* 表示只有在修正可行方向法(ADS)才有效,在可行方向法(CONMIN)不可以处理等式约束。

** 先从初始设计点找到一个初始解,然后从这一点向外搜索最优解。

2.5大型结构优化策略与方法

随着航空、航天、航海、铁路、公路等各行各业的迅猛发展,客观世界对结构优化设计的理论和方法提出了越来越高的要求。例如飞机的结构优化设计,其规模之大,一般的常规算法根本无法解决。以美国洛克西德公司生产的L102飞机的优化设计为例 ,该设计中共含各类约束1950个,各类设计变量1303个,且涉及几个优化目标。对这类大规模、多类变量、多非线性约束的复杂结构的优化设计,由于不同类型设计变量对约束条件的影响、对目标函数性态的影响差异甚大,将导致收敛困难,甚至可能引起计算上的病态。而对有些问题,若用一般的优化设计方法,几乎是不可能的。

针对大工程的优化问题,常用的解决方法有两种,一种是分解法,另一种是敏度分析法。

2.5.1 优化分解法

2.5.1.1解法的基本思想

分解法结构优化设计的基本思想是:先把一个大规模的、复杂的优化设计问题分解为若干个较为简单的、相互或串行、或并行、或一般树形结构的子问题,在每一个子问题中只处理一类设计变量,因而,每一子问题的求解相对比较容易。分解优化设计的难点是如何处理子问题之间的耦合影响。一般的做法是利用一阶或二阶导数传递子问题之间的耦合影响,然后迭代求解。因此,分解优化方法的研究内容是:将原问题处理成若干子问题的划分准则、子问题之间的相互耦联影响、综合拼装、采用序列迭代逼近原问题等。

2.5.1.2分解法分类

对不同的系统有不同的分解策略,因而也就有不同的分解模型,归纳起来大致可分为如下三种分解模型:层次分解模型(如图2.3.7)、网状分解模型(如图2.3.8)和混合分解模型,相应于以上三种模型的优化方法分别称为层次分解优化方法、网状分解优化方法和混合分解优化方法。

 

2.3.7 结构层状分解示意图

2.3.8 结构网状分解示意图

2.5.1.3耦合问题的提出

实践证明,结构优化设计问题的规模越大,分解法的好处越明显。对于静定结构的优化问题,分解法是相当有效的。因为各子问题(单元)约束条件之间没有任何关系,即内力不随截面积变化,所以,各子问题优化时对其他子问题无任何影响,可以各自单独优化。然而,工程中的问题大量属于超静定结构的优化问题。举一个简单的例子,如图2.3.9所示的平面N杆桁架,结构在C点受的力F X 、FY ,材料的弹性模量E为已知,设计变量为各杆的横截面面积Ai、第i 杆上铰接点Bi在水平方向上的坐标值Xi(i=1,2,…,N)、铰接点C在铅垂方向上的坐标值Y。约束中包括:各杆内的应力σi不大于各自的拉应力许用值[σ]Li且不小于各自的压应力许用值[σ]Yi ,杆的横截面积大于零等。目标函数为整个结构体积W最小。对于这类问题,由于任一设计变量的变化(如Ai),必然要引起各个杆件内力或应力的重新分布。这就是工程中所说的耦合。因此,在使用分解法优化算法时,仅对各子问题单独优化是不行的,必须同时考虑到其它子问题的影响,即考虑到各子问题之间的耦合。

图2.3.9 平面N杆桁架

仍以图2.3.9题为例,暂不设计外层循环的设计变量Y,仅对内层循环的进行设计。对第杆的应力约束条件,不考虑耦合时,约束式为:,即:

(2-52)

但由于耦合的存在,必须考虑当j杆(j≠i)的截面积发生变化时,在第杆内所引起的内力或应力的改变,即耦合。设其相应的影响为,则对应于式(2-52)的约束条件应为

(2-53)

整理后得:    

(2-54)

将式(2-52)与式(2-54)进行比较可知:考虑耦合后的约束条件相当于其右端项有所改变,换句话说,相当于可行域有所改变。其改变部分即是由耦合(其它杆截面积改变对杆的影响)所引起的结果。一旦定量地解出了耦合部分,即可令式(2-54)的右端项为:

(2-55)

此时,原目标函数不再是固定参数。利用参数最优控制,从而可以实现耦合最优控制。求解新的最优控制模型:

(2-56)

即可得最优耦合。(上式中W0 为整个结构体积的初始值或迭代过程中上一步计算的结果)

2.5.2敏度分析

敏度分析的真正含义是计算目标函数和约束条件对设计变量的导数,它是结构优化设计的重要支柱。

首先,利用K-T条件建立优化准则时,需要计算应力、位移、频率等约束条件对设计变量的导数。其次,优化算法中,当目标函数和约束条件表现出高度非线性时,经常将其用泰勒级数近似展开,这也需要反复计算目标函数和约束条件的导数。最后,敏度分析自身就有重要的应用价值,因为敏度分析可以直接为设计的改进指引方向,设计者根据这些导数信息可以判断那些设计变量对那些性态(应力、位移、频率)最灵敏,从而在修改设计时处于主动地位加以控制。敏度分析包括位移敏度分析和应力敏度分析两种。

2.5.2.1 位移敏度分析

常用的位移敏度分析方法有模拟和虚载荷两种方法。

1.模拟载荷法

由线弹性静力平衡方程

(2-1)

可求其结构位移向量

(2-2)

式中为真实载荷向量,不同的载荷工况代入上式得不同工况下结构位移向量

直接求导数法是对式(2-1)两端直接求对设计变量的导数,令设计变量为,有

(2-3)

整理后,即得结构位移对的敏度:

 

(2-4)

 

式中,相当于式(12-2)的右端载荷项,令其为拟载荷(Pseudo-load),用表示,则式(2-4)可以写成

(2-5)

式(2-5)与式(2-2)形式一模一样,式(2-2)求解的是结构位移向量,式(2-5)求解的是结构位移向量对第个设计变量的导数

由于总刚度矩阵中与有关的单元才对有贡献,所以很容易在计算出与有关的那些单元的刚度矩阵的导数之后,象组成总刚一样组成是原结构位移响应;是真实载荷对设计变量的导数,中的大多数(有时是全部)分量与无关,很容易计算。拟载荷中各个分量求得后,即可形成。由于事先是已知的,并且已分解完毕,引进之后回代即得中全部分量。

拟载荷法位移敏度求得的是结构所有独立自由度对某一个事先指定的设计变量的导数,所以位移敏度向量与位移向量规模一样大小。当载荷工况数乘以独立设计变量数小于位移约束时,采用拟载荷法比下面要介绍的单位载荷法合算。

2.虚载荷法

假设某个结构优化设计问题中有J个位移约束条件,对应的位移值都可以由基于单位载荷法的积分公式求得。

由虚功原理,结构在某载荷作用下的广义位移为:

 

(2-6)

式中是单位虚载荷下的单元应力向量;是真实载荷工况下的单元应变;是第个单元对个广义位移贡献的莫尔积分形式。以轴力杆单元为例:

(2-7)

对梁元:

(2-8)

总之,每一类单元的均可求之。

设第个位移为,则沿这个位移方向施加一单位载荷

即虚设一载荷向量,该向量中除与第个位移对应的位置上载荷大小为1外,其余全部为零,

则该位移对设计变量的导数与结构全部位移对的导数之间存在以下关系:

(2-9)

将式(2-9)代入式(2-4),得

(2-10)

设单位虚载荷,作用在原结构后获得的位移为,它可由下式算出:

(2-2)

将式(2-2)代入式(2-10)之前对式(2-2)两端作转置运算。并利用的对称性,所以有:

于是式(2-10)可以表示为:

 

(2-12)

式中等号右端括号内意义同前,为与这个自由度相一致的单位载荷作用下所获得的结构位移向量,二者矩阵乘法后,即得对设计变量的导数。由于这之前,已经分解。施加单位载荷后,很容易回代解出

式(2-12)即称之为单位载荷法,有多少个位移约束就需要计算多少个单位虚载荷工况,因此这种方程又称之为虚载荷法。

虚载荷法与直接求导数法形式上差别很大,计算量也不同,但本质是一样的。

2.5.2.2 应力敏度分析

有了位移敏度,应力敏度(Stress Sensitivity)的求解就很容易了。

设第个单元的应力为,根据有限元理论,可以用该单元的结点位移表示:

(2-13)

式中为弹性矩阵,为几何矩阵,为应力矩阵,为结点位移向量,为热胀系数,为单元结点温度向量。式(2-13)两端对中间设计变量求导数,得:

(2-14)

对梁元和壳元,由于在一些分析中已经指定温度是独立于设计变量的常数,因而在式(2-14)中最后一项为零,对应力敏度没有贡献。

式(2-14)中的可以直接从位移敏度中按照单元接口点号信息取出。

一般说来,计算应力敏度之前,用那一种方法计算位移导数都可以酌情选择,但是,用直接求导数法要有利一些,因为它给出的信息面大。

前往Begtostudy的编程知识博客(CSDN)