unowhat 发表于 2020-12-30 14:16

结构力学中的优化分析

引言随着工业信息化技术的发展,数字化仿真技术得到了越来越多的应用,结构优化在结构设计中扮演着越来越重要的角色。

结构优化涉及机械、土木、汽车、航空航天、电子、能源工业、水利、铁路、轻工纺织以及军事工业等诸多领域。在讨论结构优化前,本篇先介绍常规的优化方法。
优化方法是什么优化方法本质上就是在给定约束条件下,求解目标函数的最值;因此,通常也叫做“最优化”方法。由于“最值”在大多数情况下是非常难得到的,求解的往往是局部“极值”;这里,我们仍谨慎的称之为优化方法。
优化方法通常可以分为2类:

· 求函数的极值

· 求泛函的极值

两者并没有本质上的区别,本文以函数极值的形式为例介绍。

此外,如果目标函数有明显的表达形式,一般可通过微分法、变分法、最大(小)值原理和动态规划方法等求解。如果目标函数比较复杂甚至无法写出显示表达式,则可用数值方法或“试验最优化”等直接方法求解,本文介绍后一种方法。

数学描述对于优化问题的目标,就是寻找给定约束条件下,目标函数的最值,由于最大最小值之间可以通过乘以常数“-1”进行相互转化,通常将目标选为最小值。设x*为最小解,gi(x)和hi(x)为约束条件,则最小值优化问题的数学表达式为:
也有些问题并不那么关心目标函数的值,而更关心的是自变量在何种取值下,目标函数取最值(如机器学习领域),则相应的优化问题的数学表达式为:
两者在本质上并无多大的区别。

优化方法对于目标函数有明确的表达式,且表达式不复杂的,可通过微分法和动态规划法求解,这里不过多介绍。

现实中的优化问题,大多数是目标函数没有明确的显示表达式;或者即使有,但较为复杂,无法用上述优化方法进行求解。对于这类问题,通常采用数值解法处理,即:在求解过程中,构造一种策略,通过一系列规则“寻找”优化的结果。
总体而言,优化算法可以分为三类:

· 基于撒点的算法

· 基于梯度的算法

· 启发式算法

撒点算法这类方法比较容易理解,即:选择一系列数据点,求出对应的函数值,然后在这些函数值中通过比较大小取出最值以及对应的自变量取值,或对数据进行拟合,分析趋势。
这类方法最极端的就是穷举法,或将定义域划分成若干区间,分别进行遍历计算。

遍历算法的优点是不会陷入局部极值,一般情况下都可以得到最值;但是缺点也是显而易见的,那就是效率太低。

因此,撒点法主要研究如何进行高效率的撒点,通常采用随机或类随机的方法实现撒点。此外,正交试验也可以看作是一种类撒点方法。
基于撒点的方法严格说来并不是一种优化算法,它没有设计一种“寻优”的策略,效率也相对较低,对于规模较小的优化问题效果较好;但对于规模稍大的优化问题,该算法往往无法得到较高精度的优化结果。

然而撒点的方法可靠性高,不容易陷入局部极值,这在优化分析中是非常重要的。

基于撒点法的以上特点,通常此法可以作为优化问题的第一步“粗搜索”,作为后续介绍优化算法的粗略尝试,划定求解范围,同时可以给出后续搜索的“起点”或初值。

梯度算法由于遍历的效率较低,我们需要考虑设计一套策略,可以较快的搜索到最优解。基于梯度方法的大概原理如下:

· 给定一个初始值,同时计算对应的目标函数值;

· 给定一个前进的步长,为了更快的接近目标,依据一定规则选择目标函数下降可能较快的方向,即梯度大的方向;

· 不断重复以上操作,直到离目标足够的近(误差足够接受),即最优搜索完成。
这里提一句,基于“最速下降法”即“梯度下降法”,同时结合了“向后传播”的思想,使得神经网络的训练得以实现,在机器学习中得到了较为广泛的运用,名声大噪。

基于梯度的方法有很多,不同算法适用于不同的问题,但原理上大多都是基于梯度计算每次“前进”的方向和速度,最终“到达”目的地。

该方法有一个较大的缺陷,即“搜索”过程是基于梯度的(类似于导数),本质上是一种局部线性化(差商替代微分),容易陷入局部极值解。
基于梯度的方法理论在凸分析中相对比较完善,但对于非凸集中的寻找全局最优有一定的问题;结合撒点法,首先在整个定义域中随机选取一定数量的起始点和区间,再在这些点和区间上分别进行梯度算法,可以在一定程度上改善陷入局部极值的问题。

启发式算法对于非凸集的全局优化,梯度方法存在一定困难;此外,还有一些更恶劣的问题:

· 函数可导性差

· 函数不连续

· 局部震荡剧烈

· ……

对于这类问题,基于梯度的算法几乎无能为力,而启发式算法则可能可以得到相对比较满意的结果。

启发式算法的种类非常多,目前大多以仿生或模拟自然为基础,构造进化和退化的演化过程,实现优化。主要有:退火算法、遗传算法、蚁群算法等。启发式算法理论相对比较复杂,本篇不做详细的讨论。
启发式算法理论上可以解决强非线性优化问题,也不会落入局部极值解。但是该方法可解释性较差,结果不可预知;可能会得到非常好的结果,同时也可能得到非常不好的结果,在应用过程中应该特别注意。

约束问题前面的讨论均未涉及约束带来的问题,约束使得自变量的取值空间受到限制,给问题带来了额外的困难。

所幸的是,通过引入广义拉格朗日函数,可将约束条件转化为新的目标函数的一部分:
有最优解的必要条件成为KKT(Karush-Kuhn-Tucker)条件;如果是凸优化问题,则KKT条件为有最优解的充要条件:

多目标优化我们知道,一个优化问题只能有一个目标函数,因此多目标优化理论上不可能同时成立,常见的有通过“帕累托最优”定义;通常还有其他的处理方法,如加权构造新的目标函数,或将一些目标转换为约束条件。

结构优化描述与优化方法类似,对于结构优化问题的描述也可分为:

· 目标函数,即结构设计的目标,通常有质量最小、刚度最大和基频最大等;

· 优化空间,即优化变量的取值范围,如结构尺寸、材料参数、局部形状、结构形状和整体拓扑优化形式等;

· 约束条件,包括结构尺寸范围、体积或质量范围、最大/小应力或位移,以及各种关于优化变量的函数等。

结构优化结构优化有很多种形式,通常可分为以下四类:

· 尺寸优化

· 形状优化

· 形貌优化

· 拓扑优化

除了拓扑优化会改变结构的拓扑以外,其余三种优化均不会改变结构的拓扑形式。

尺寸优化尺寸优化是最基本的结构优化,通常可分为两种:

· 优化梁板等截面参数,如梁的截面尺寸和板的厚度等,这种类型不需要更新几何和网格;

· 优化模型的几何尺寸,如模型的一些整体特征尺寸、局部圆孔半径、方孔的长宽等,这种类型则需要更新几何和网格。

尺寸优化技术相对较成熟,各种优化方法均可应用,大多采用基于撒点的方法和梯度的方法,也可以采用启发式算法。

形状优化和形貌优化
形状优化和形貌优化有一些相似之处,有时被一起讨论。

形状优化分为两类:

· 节点位置的优化,与尺寸优化类似;

· 连续体的开孔形状,如圆孔还是方孔等、倒角,圆倒角还是方倒角、和边界形状等,理论上属于优化方法中的泛函极值问题,其解法较多,有基于变分法的解析算法;有基于优化方法的数值算法;也有基于工程经验的直观准则法等。

形状优化主要应用于飞机、列车、汽车等流线型设计;同时也是处理应力集中问题的有效方法之一。
形貌优化和形状优化类似,一般应用于钣金件的结构加强筋设计上,利用冲压形成压痕的加工工艺添加加强筋,可以看作是广义的形状优化中的边界形状设计。通常通过网格扰动优化实现;此外,利用拓扑优化的方法也可以实现类似的加强筋优化设计。

拓扑优化
前面几种结构优化方法均不改变结构的拓扑形式。

拓扑优化探讨结构间的连接方式、内部的开孔、位置等信息。由于解的空间过大,因此,拓扑优化相对困难。

拓扑优化可分为以下两类:

· 探讨部件之间的装配或连接拓扑关系:这类问题难度较大,目前应用相对较少,对于这类问题,尤其是桁架系的拓扑结构,可以通过其他方式等价处理实现;

· 探讨零件的结构形式:目前这类问题的拓扑优化是结构优化的一个热门方向;拓扑优化的结构通常无法通过传统的加工工艺实现,而配合当前“3D”打印(增材制造)技术,则可有效解决复杂结构形式的成型加工问题;不过目前增材制造技术并不算成熟,加工的可靠性、一致性、成本以及周期等问题均制约着其大规模应用。

目前主流的拓扑优化过程:

· 将待设计区域划分为若干个有限元单元;

· 依据计算结果,按照一定的规则,减少或增加单元的密度或权重;

· 重复上条,直到迭代完成;

· 形成带孔的连续体,实现拓扑优化。
这种方法本身就是一种演化方法,理论上解释性相对较弱,结果也相对不可捉摸;不过相比其他领域的优化,对于有经验的设计师而言,结构优化结果还是相对容易预测的。

事实上,拓扑优化还存在很多问题,本文仅介绍基本的原理,不做过多的细节讨论。

拓扑优化目前不是很成熟,尽管有多种方法,目前主流的商用软件采用的是“变密度”法;有趣的是,拓扑优化是一个“减材”的过程,而加工是一个“增材”的过程。

多目标优化在结构设计中,通常会遇到多目标优化问题,如多种指标、多种工况等。目前还没有统一的解决方法,主流的处理方法有以下几种:

· 寻找“帕累托最优”(Pareto Optimal),也叫做“非劣解”。帕累托最优解简单的解释就是:给定一个向量,在解空间无法找到另外的一个向量,使得所有目标变得最优,这个向量就是帕累托最优解;换言之,就是为了使一些目标变优,必定要“损害”另外的一些目标;这就是“非劣解”名称的由来。通常帕累托最优解有多个,它们形成一个帕累托最优解集;这些最优解集中的解对应的目标目标函数值同样构成目标函数集,这个函数集被称为帕累托最优前沿(Pareto front);这是多目标优化的一种常见定义,NSGA-Ⅱ是它的一种常用算法;这部分相关内容较多,目前就暂时介绍到这里。
· 保留一个主要目标,将其他目标修改为约束,这也是一种常见的处理方法,一般可以将重要性不那么大的目标和变化范围较小的目标转为约束条件,或者不同目标之间轮换修改为约束,最后再综合取最优解

· 改变目标函数,将多目标重新构造为一个目标函数,不同的目标之间通过加权叠加处理。

最后在结构优化中,各种优化方法的应用没有明确的界限,选择哪种优化方法需要通过各方面去评估。此外,目前对于多目标结构优化还尚未达到较高程度的共识,优化方法也在不断的完善。

页: [1]
查看完整版本: 结构力学中的优化分析