1 引言
在进行优化设计时,对一些基本的概念了解之后,才能做到有的放矢。这一篇先讲述了优化设计的基本概念,然后对优化设计的设计变量、状态变量和目标函数在设计和选择时的一些有用的建议和原则。
2 重要概念
设计变量(DV):自变量,即分析问题中需要优化的变量叫做设计变量(DV),优化结果的取得就是通过改变设计变量的数值来实现的。每个设计变量都有上下限,它定义了设计变量的变化范围。ANSYS优化程序允许定义不超过60个设计变量。
状态变量(SV):是约束设计的数值。如材料应力上限等,它们是“因变量”,是设计变量的函数。状态变量可能会有上下限,也可能只有单方面的限制,即只有上限或只有下限。在ANSYS优化程序中用户可以定义不超过100个状态变量。
目标函数:要尽量减小的数值。它必须是设计变量的函数,也就是说,改变设计变量的数值将改变目标函数的数值。在ANSYS优化程序中,只能设定一个目标函数。
设计序列:确定一个特定模型的参数的集合。一般来说,设计序列是由优化变量的数值来确定的,但所有的模型参数(包括不是优化变量的参数)组成了一个设计序列。
分析文件:ANSYS的命令流输入文件,包括一个完整的分析过程(前处理,求解,后处理)。它必须包含一个参数化的模型,用参数定义模型并指出设计变量,状态变量和目标函数。由这个文件可以自动生成优化循环文件(Jobname.LOOP),并在优化计算中循环处理。
一次循环:一个分析周期。(可以理解为执行一次分析文件。)最后一次循环的输出存储在文件Jobname.OPO中。优化迭代(或仅仅是迭代过程)是产生新的设计序列的一次或多次分析循环。一般来说,一次迭代等同于一次循环。但对于一阶方法,一次迭代代表多次循环。
在下一节内容,对设计变量、状态变量、目标函数等的内在联系进行简要描述。
设计变量、状态变量和目标函数总称为ANSYS-优化模块的优化变量。在ANSYS优化中,这些变量是由用户定义的参数来指定的。用户必须指出在参数集中哪些是设计变量,哪些是状态变量,哪是目标函数。
一个合理的设计是指满足所有给定的约束条件(设计变量的约束和状态变量的约束)的设计。如果其中任一约束条件不被满足,设计就被认为是不合理的。而最优设计是既满足所有的约束条件又能得到最小目标函数值的设计。(如果所有的设计序列都是不合理的,那么最优设计是最接近于合理的设计,而不考虑目标函数的数值。)优化数据库记录当前的优化环境,包括优化变量定义,参数,所有优化设定,和设计序列集合。该数据库可以存储(在文件Jobname.OPT),也可以随时读入优化处理器中。分析文件必须作为一个单独的实体存在,优化数据库不是ANSYS模型数据库的一部分。
3 重要建议
本节主要是在定义设计变量,状态变量和目标函数的建议的内容。
选择设计变量:设计变量往往是长度,厚度,直径或模型坐标等几何参数。其必须是正值。在选择设计变量是应改尽量不要违背以下三个原则:
1)使用尽量少的设计变量。选用太多的设计变量会使得收敛于局部最小值的可能性增加,在问题是高度非线性时甚至会引起不收敛。一种减少设计变量的做法就是将其中的一些变量用其他的设计变量表示;
2)设计变量合并不能用于设计变量是真正独立的情况下。但是,可以根据模型的结构判断是否允许某些设计变量之间可以逻辑的合并。例如,如果优化形式是对称的,可以用一个设计变量表示对称部分;
3)给设计变量定义一个合理的范围(OPVAR命令中的MIN和MAX)。范围过大可能不能表示好的设计空间,而范围过小可能排除了好的设计。记住只有正的数值是可以的,因此要设定一个上限,选择可以提供实际优化设计的设计变量。
选择状态变量:状态变量通常是控制设计的因变量数值。状态变量的常见参数有应力、温度、热流率、频率、变形、吸收能、消耗时间等。状态变量必须是ANSYS可以计算的数值。选择状态变量的一些建议为:
1)在定义状态变量[OPVAR命令]时,在MIN域中输入空值表示无下限。同样,在MAX域中输入空值表示无上限。
2)选择足够约束设计的状态变量数。如在应力分析中,只选择最大应力数值为状态变量不好,因为在不同循环中,最大应力位置是变化的。同样也要避免另一个极端如选择每个单元中的应力都为状态变量。比较好的方法是定义几个关键位置的应力为状态变量。
3)在零阶方法中,如果可能的话,选择与设计变量为线性或平方关系的参数为状态变量。例如,状态变量G=Z1/Z2且G<C(Z1和Z2是设计变量,C是常数)可能不会得到G的较好的逼近,因为G与Z2是反比关系。如果将状态变量表示为G=Z1-(C*Z2)且G<0,状态变量逼近就准确了。
4)如果状态变量有上下限时,给定一个合理的限制值[OPVAR命令的MIN和MAX域]。应避免过小的范围,因为此时合理设计可能不存在。如500到1000psi的应力范围要比900到1000psi的范围好。
选择目标函数:目标函数是设计要最小化或最大化的数值。ANSYS程序总是最小化目标函数。如果要最大化数值x,就将问题转化为求数值x1=C-x或x1=1/x的最小值,其中C是远大于x的数值。定义C-x的方法比用1/x的方法要好,因为后者是反比关系,在零阶方法中不能得到准确的逼近。目标函数值在优化过程中应为正值,因为负值将会引起数据问题。为了避免负值出现,可以将一个足够大的正值加到目标函数上(大于目标函数的最大值)。
4 本篇总结
优化模块是ANSYS在工程问题中最有价值的模块,通过ANSYS的优化设计能力能够大大提高产品设计的成功率,所以作为ANSYS高级分析技术之一的优化设计技术是每个学习ANSYS的人都应该了解和学习的。
|