1、前言
结构设计是创造结构方案的过程,传统的结构设计是设计者按设计要求和设计者的实践经验,参考类似工程,通过判断创造结构方案,然后进行力学分析或按规范要求作安全校核,再修改设计。
而结构优化设计与分析则把力学概念和优化技术有机地结合,根据设计要求,使参与计算的量部分以变量出现,形成全部可能的结构设计方案域,利用数学手段在域中找出满足预定要求的不仅可行而且最好的设计方案。
通俗地讲优化分析,指的找到一种方案可以满足所有的设计要求,而且所需的支出(如重量,面积,体积,应力,费用等)最小。也就是说,最优设计方案就是一个最有效率的方案。设计方案的任何方面都是可以优化的,比如说:尺寸(如厚度),形状(如过渡圆角的大小),支撑位置,制造费用,自然频率,材料特性等。
2、什么是优化设计
2.1 优化设计的数学模型
优化设计简单地来说就是由计算机自动地去计算得到设计参数,并且同时符合两个要求:第一是限制条件(constraints),譬如结构物的应力不得超过容许值;第二是某个特定的目标值(如结构物的总重量、面积、体积、费用)必须最小化或最大化。可以用下列数学模式来表示优化设计的目的。
解方程1-1的方法有很多,但是几乎有一个共同点:都是基于迭代的方法,也就是说从一组初始的设计参数开始,一步一步地去改变设计参数,直到f(x)达到最小,而且所有限制条件都能够符合为止。注意,因为状态变量si(x)会根据设计参数的改变而有所改变,所以在改变设计参数的每一次迭代过程中,都必须做至少一次的有限元分析。所以优化分析是非常耗费计算机时间的工作。缩短计算时间的有效方法包括:适当地简化分析模型、减少设计参数及状态方程的数目等。
2.2 优化变量
优化变量=(设计变量、状态变量、目标函数)
当ANSYS进行最优化时,这些优化变量是会改变的,所以在ANSYS 分析中,必须用ANSYS变量(参数)来表示这些优化变量。其中设计变量除了指定初始值外不得变更其值(ANSYS会自动更新其值),状态变量和目标方程则必须在适当的时机更新其值。
选择优化变量注意事项
-
选择设计变量
设计变量往往是长度、厚度、直径或模型坐标等几何参数、其值必须为正。 关于设计变量需要注意以下几点:
(1) 使用尽量少的设计变量;
(2) 设计变量合并不能用于设计变量是真正独立的情况下;
(3) 为设计变量定义一个合理的范围(OPVAR命令中的max和min),范围过大,可能不能表示好的设计空间,而范围过小可能排除了好的设计;
(4) 选择可以提供实际优化设计的设计变量。
-
选择状态变量
状态变量通常是控制设计的因变量数值。状态变量可以是应力、温度、频率、变形、吸收能量等。状态变量必须是ANSYS可以计算的数值;实际上任何参数都能定义为状态变量。选择状态变量需要注意以下几点:
(1) 定义状变量时 ,在min中输入空值表示无下限。同在max中输入空值表示无上限;
(2) 选择足够约束设计的状态变量数;
(3) 在零阶方法中,如果可能的话 ,选择与设计变量为线性或平方关系的参数为状态变量 ;
(4) 如果状态变量有上下界时,给定一个合理的区间,以避免范围过小,导致合理设计不存在。
(5) 在定义参数避免在奇异点附近选择状态变量。
-
选择目标函数
目标函数是设计要达到最小化或最大化的数值。选择状态变量需要注意以下几点:
(1) ANSYS程序总是最小化目标函数。因此如果想得到最大化的数值X,可将其转化为最小化问题。
(2) 目标函数值在优化过程中应为正值,因为负将会引起数值问题,可以将一个足够大的正值加到目标函数上。
2.3 设计空间和设计序列
设计变量组成的空间称为设计空间(design space),设计最佳化的目的相当于在此设计空间中去搜寻一个最佳的点。设计空间上的每一个点代表一种可能的设计变量组合,称为一个设计序列(design set)。满足所有约束条件的一个设计序列称为可行设计(feasible design),所有可行设计的集合是此设计空间中的一个区域,称为可行区间(feasible region)。在所有可行区中,使得目标方程最小的设计即称为优化设计。更广泛地来说,如果有n个设计变量,则设计是一个n维空间,可行区间则处于此n维空间的某一区域。
在某些情况下,有可能并不存在可行区间,也就是设计空间中没有任何点同时满足所有约束。这个问题是无解的,不过ANSYS会帮你找一个最能满足约束的设计,此时得到的结果不称为优化设计而称为最好设计。优化设计必然是一个最好设计,但是最好设计并不一定是优化设计。
3、ANSYS的优化设计
3.1 采用ANSYS进行优化设计的文件
用ANSYS命令撰写为执行文件的方式,命令组织成两个文件:优化文件和分析文件。
优化的每一次迭代过程中,都须进行至少一次的有限元分析,分析文件的命令就是用来进行该有限元分析的。分析文件的结构基本上和典型的ANSYS分析程序类似,唯一不同的是分析文件中必须包含计算状态变量目标方程的值。优化文件是描述式1-1的数学模式,然后去执行设计优化的工作。由于执行设计最佳化需要调用分析文件,所以优化文件中必须指定分析文件的名称。
3.2 典型的优化文件
/CLEAR ! Clear model database
… ! Initialize design variables
/INPUT ! Execute analysis file once
/OPT ! Enter optimization phase
OPCLEAR ! Clear optimization database
OPVAR ! Declare design variables
OPVAR ! Declare state variables
OPVAR ! Declare objective function
OPTYPE ! Select optimization method
OPANL ! Specify analysis file name
OPEXE ! Execute optimization run
OPLIST ! Summarize the results
… ! Further examining results
3.3 典型的分析文件
/PREP7
… ! Build the model using the
! Parameterized design variables
FINISH
/SOLUTION
… ! Apply loads and solve
FINISH
/POST1 or /POST26
*GET, ... ! Retrieve values for state variables
*GET, ... ! Retrieve value for objective function
…
FINISH
3.4 ANSYS优化算法
ANSYS提供了两个优化算法:零阶方法和一阶方法。由前面步骤可知,优化设计的计算过程中,需计算目标函数和状态变量的值,这些函数值称为零阶值;目标函数和状态变量对设计变量的一次微分值,称为一阶值。同理,二次微分值称为二阶值。一个优化算法如果只用到零阶值则称为零阶方法(只用到因变量,而不用到它的偏导数);如果用到一阶值(但不会用到二阶值),则称为一阶方法;同理,如果会用到二阶值则称为二阶方法。
在计算时间上,依次是计算零阶值最节省时间、计算一阶值次之、计算二阶值最耗时间,而且三者的差别是以n(设计变量数)的倍数增加;也就是说计算一阶值是计算零阶值的n倍时间,计算二阶值是计算一阶值的n倍时间。从另一方面来比较,在计算精度与收敛性上,则依次是二阶方法优于一阶方法,而一阶方法优于零阶方法。整体的效率而言,零阶方法通常还是较有效率的,一阶方法次之,二阶方法则是最没效率的。
3.5 其他优化工具
除了零阶方法和一阶方法这两个选择以外,使用OPTYPE命令也可以选择其它的工具,具体有如下几种。
(1) 单迭代设计工具(Single Iteration Design Tool):可以手动地去改变设计变量, 然后使ANSYS计算状态变量和目标方程,再自行判断是否足够优化。这种手动的方式有时候比较有效率,尤其要对一个问题进行一些初步探索性计算和研究时。
(2) 随机设计工具(Random Design Tool):可以要求ANSYS在设计中随机地挑选n个设计序列,并计算其目标方程和状态变量值。
(3) 梯度法(Gradient Tool) :所谓梯度就是指一阶的意思,亦即目标函数对设计变量的微分。梯度又称为灵敏度,因为它代表着设计变量的变动对目标函数相对的变动,计算梯度又称为叫灵敏度分析。
(4) 等步长搜索工具(Sweep Tool):针对某一个设计变量做研究,也就是当此设计变量在变化时,目标函数和状态变量是如何变化的。
(5) 乘子计算工具(Factorial Tool):ANSYS可以帮你直接采用正交表,不过这里的正交表是简单的二级全因子设计的正交表。
4、ANSYS优化设计的步骤
4.1 创建循环使用的分析文件
该文件应当表示一个完整的分析过程,但需满足以下条件:
(1) 参数化建立模型(PREP7)
用设计变量作为参数建模的工作是在PREP7中完成的。
(2) 求解(SOLUTION)
求解器用于定义分析类型和分析选项,施加载荷,指定载荷步,完成有限元计算。所有分析用到的数据都要指定:凝聚法分析中的主自由度,非线性分析中的收敛准则,谐波分析中的频率范围等。载荷和边界条件也可以作为设计变量。
(3) 提取并指定状态变量和目标函数(POST1/POST26)
提取结果并赋值给相应的参数。这些参数一般为状态变量和目标函数。提取数据的操作用*GET命令(Utility Menu>Parameters>Get Scalar Data)实现。
(4) 分析文件的准备
分析文件有三种方式,分别为系统编辑器编辑的批处理文件;LGWRITE命令(Utility Menu>File>Write DB Log)生成的命令流文件;程序命令流文件(Jobname.LOG,必要时需删除不必要的部分)。
4.2 建立优化分析的参数
完成分析文件的建立后,就可以进行优化分析了,如果在交互方式下进行优化的话,最好先在ANSYS数据库中用分析文件建立参数,其优点有:初始参数可以作为一阶分析方法的起点,且对于优化过程参数在数据库中可以在GUI下进行操作,便于定义优化变量。
4.3 进入OPT指定分析文件
该步骤是由OPT处理器来完成,其命令为:/OPT。
4.4 声明优化变量
该步骤指定哪些参数是设计变量,哪些参数是状态参数,哪些参数是目标函数,允许有不超过60个设计变量和不超过100个状态变量,但只能有一个目标函数。
4.5 选择优化工具或优化方法
ANSYS提供了一些优化工具和方法,默认方法是单次循环,指定后续优化的工具和方法的命令为:OPTYPE。
4.6 指定优化循环控制方式
每种优化方法和工具都有相应的循环控制参数,如最大迭代次数等,这些控制参数设定的路径为:MainMenu>Design Opt>Method/Tool。
4.7 进行优化分析
在控制项设定好以后,可以进行分析了,其命令为:OPEXE。在执行OPEXE时,优化循环文件(JOBNAME.LOOP)会根据分析文件生成。循环在满足以下情况时终止:收敛、中断、分析完成等。
4.8 查看设计序列结果
优化循环结束后,可以用命令或相应的GUI路径来查看设计序列。如:OPLIST、STATUS、POST1和POST26等。
5、三杆优化
下图所示为一个有3根杆组成的桁架,承受纵向和横向载荷,杆件的横截面面积在指定范围内变化,要求桁架的每根杆件承受的最大应力小于800MPa,试对该结构进行优化设计,使得桁架重量最少。弹性模量E=220GPa;密度ρ=7800kg/m3材料最大许用应力:σ=800MPa;横截面面积变化范围:0.01~10cm2(初始值为10);基本尺寸B固定为2m。fx=200000N ,fy=200000N。