ANSYS高级分析技术指南:1第一章 优化设计

上传人:jin****ng 文档编号:178892342 上传时间:2022-12-30 格式:DOCX 页数:34 大小:98.28KB
收藏 版权申诉 举报 下载
ANSYS高级分析技术指南:1第一章 优化设计_第1页
第1页 / 共34页
ANSYS高级分析技术指南:1第一章 优化设计_第2页
第2页 / 共34页
ANSYS高级分析技术指南:1第一章 优化设计_第3页
第3页 / 共34页
资源描述:

《ANSYS高级分析技术指南:1第一章 优化设计》由会员分享,可在线阅读,更多相关《ANSYS高级分析技术指南:1第一章 优化设计(34页珍藏版)》请在装配图网上搜索。

1、第一章 优化设计什么是优化设计? 优化设计是一种寻找确定最优设计方案的技术。所谓“最优设计”,指的是 一种方案可以满足所有的设计要求,而且所需的支出(如重量,面积,体积,应 力,费用等)最小。也就是说,最优设计方案就是一个最有效率的方案。设计方案的任何方面都是可以优化的,比如说:尺寸(如厚度),形状(如 过渡圆角的大小),支撑位置,制造费用,自然频率,材料特性等。实际上,所 有可以参数化的 ANSYS 选项都可以作优化设计。(关于 ANSYS 参数,请参看 ANSYS Modeling and Meshing Guide 第十四章。)ANSYS 程序提供了两种优化的方法,这两种方法可以处理绝大

2、多数的优化 问题。零阶方法是一个很完善的处理方法,可以很有效地处理大多数的工程问题。 一阶方法基于目标函数对设计变量的敏感程度,因此更加适合于精确的优化分 析。对于这两种方法,ANSYS程序提供了一系列的分析 评估 修正的循 环过程。就是对于初始设计进行分析,对分析结果就设计要求进行评估,然后修 正设计。这一循环过程重复进行直到所有的设计要求都满足为止。除了这两种优化方法, ANSYS 程序还提供了一系列的优化工具以提高优化 过程的效率。例如,随机优化分析的迭代次数是可以指定的。随机计算结果的初 始值可以作为优化过程的起点数值。基本概念 在介绍优化设计过程之前,我们先给出一些基本的定义:设计变

3、量,状态 变量,目标函数,合理和不合理的设计,分析文件,迭代,循环,设计序列等。 我们看以下一个典型的优化设计问题:在以下的约束条件下找出如下矩形截面梁的最小重量:总应力G不超过G QQ max max梁的变形不超过88max max梁的高度h不超过h h,而且,h有上限h max。ANSYS优化程序允许定义不超过60 个设计变量。状态变量(SVs)是约束设计的数值。它们是“因变量”是设计变量的函 数。状态变量可能会有上下限,也可能只有单方面的限制,即只有上限或只有下 限。在上述梁问题中,有两个状态变量:g(总应力)和 (梁的位移)。在ANSYS 优化程序中用户可以定义不超过 100 个状态变

4、量。目标函数是要尽量减小的数值。它必须是设计变量的函数,也就是说,改 变设计变量的数值将改变目标函数的数值。在以上的问题中,梁的总重量应该是 目标函数。在 ANSYS 优化程序中,只能设定一个目标函数。设计变量,状态变量和目标函数总称为优化变量。在 ANSYS 优化中,这 些变量是由用户定义的参数来指定的。用户必须指出在参数集中哪些是设计变 量,哪些是状态变量,哪是目标函数。设计序列是指确定一个特定模型的参数的集合。一般来说,设计序列是由 优化变量的数值来确定的,但所有的模型参数(包括不是优化变量的参数)组成 了一个设计序列。一个合理的设计是指满足所有给定的约束条件(设计变量的约束和状态变 量

5、的约束)的设计。如果其中任一约束条件不被满足,设计就被认为是不合理的。 而最优设计是既满足所有的约束条件又能得到最小目标函数值的设计。(如果所 有的设计序列都是不合理的,那么最优设计是最接近于合理的设计,而不考虑目 标函数的数值。)分析文件是一个 ANSYS 的命令流输入文件,包括一个完整的分析过程(前 处理,求解,后处理)。它必须包含一个参数化的模型,用参数定义模型并指出 设计变量,状态变量和目标函数。由这个文件可以自动生成优化循环文件(Jobname.LOOP),并在优化计算中循环处理。一次循环指一个分析周期。(可以理解为执行一次分析文件。)最后一次循 环的输出存储在文件 Jobname.

6、OPO 中。优化迭代(或仅仅是迭代过程)是产生 新的设计序列的一次或多次分析循环。一般来说,一次迭代等同于一次循环。但 对于一阶方法,一次迭代代表多次循环。优化数据库记录当前的优化环境,包括优化变量定义,参数,所有优化设 定,和设计序列集合。该数据库可以存储(在文件Jobname.OPT),也可以随时 读入优化处理器中。上述的许多概念可以用图解帮助理解。图 1-2 示出了优化分析中的数据流 向。分析文件必须作为一个单独的实体存在,优化数据库不是ANSYS模型数据 库的一部分。优化设计的步骤共有两种方法实现 ANSYS 优化设计:批处理方法和通过 GUI 交互式地完 成。这两种方法的选择取决于用

7、户对于ANSYS程序的熟悉程度和是否习惯于图 形交互方式。如果对于 ANSYS 程序的命令相当熟悉,就可以选择用命令输入整个优化 文件并通过批处理方式来进行优化。对于复杂的需用大量机时的分析任务来说 (如非线性),这种方法更有效率。而另一方面,交互方式具有更大的灵活性,而且可以实时看到循环过程的 结果。在用 GUI 方式进行优化时,首要的是要建立模型的分析文件,然后优化 处理器所提供的功能都可以交互式的使用,以确定设计空间,便于后续优化处理 的进行。这些初期交互式的操作可以帮助用户缩小设计空间的大小,使优化过程 得到更高的效率。优化设计通常包括以下几个步骤,这些步骤根据用户所选用优化方法的不同

8、(批处理 GUI 方式)而有细微的差别。图 1-2 优化数据流向ANSYS1 生成循环所用的分析文件。该文件必须包括整个分析的过程,而且 必须满足以下条件:.参数化建立模型(PREP7)。b 求解( SOLUTION)。c. 提取并指定状态变量和目标函数(POST1/POST26)。2. 在 ANSYS 数据库里建立与分析文件中变量相对应的参数。这一步 是标准的做法,但不是必须的(BEGIN或OPT)。3. 进入OPT,指定分析文件(OPT)。4. 声明优化变量。5. 选择优化工具或优化方法。.指定优化循环控制方式。7. 进行优化分析。8. 查看设计序列结果(OPT)和后处理(POST1/PO

9、ST26)。 优化设计步骤的细节在下面列出。批处理方式和交互方式的区别也同时 指出。第一步:生成分析文件分析文件生成是 ANSYS 优化设计过程中的关键部分。 ANSYS 程序运用分 析文件构造循环文件,进行循环分析。分析文件中可以包括ANSYS提供的任意 分析类型(结构,热,电磁等,线性或非线性)。(注:ANSYS/LS-DYNA的显式分析不能进行优化。) 在分析文件中,模型的建立必须是参数化的(通常是优化变量为参数),结 果也必须用参数来提取(用于状态变量和目标函数)。优化设计中只能使用数值 参数。(参数和 ANSYS参数化设计语言(APDL )在 ANSYS Modeling and M

10、eshing Guide 中有所细述。)用户的任务是建立分析文件并保证其正确性。分析文件应当覆盖整个分析 过程并且是简练的,不是必须的语句(如完成图形显示功能和列表功能的语句等) 应当从分析文件中省略掉。只有在交互过程中希望看到的显示EPLODT等可以 包含在分析文件中,或者将其定位到一个显示文件中/SHOW。请注意分析文件 是要多次执行的,与优化分析本身无关的命令都会不必要的耗费机时,降低循环 效率。建立分析文件有两种方法:1)用系统编辑器逐行输入;2)交互式地完成 分析,将ANSYS的LOG文件作为基础建立分析文件。这两种方式各有优缺点。用系统编辑器生成分析文件同生成其他分析时的批处理文件

11、方法是一样 的。这种方法使得用户可以通过命令输入来完全地控制参数化定义。同样,本方 法可以省去了删除多余命令的麻烦。但是,如果对于ANSYS命令集不熟悉的话, 这种方法是不方便的。对于这类用户来说,第二种方法相对容易一些。但是,在最后生成分析文 件的过程中,ANSYS的LOG文件要做较大的修改才能适合循环分析。不论采用哪种方法,分析文件需要包括的内容都是一样的。以下说明建立 分析文件的步骤:A 参数化建立模型用设计变量作为参数建立模型的工作是在 PREP7 中完成的。在给出的梁的 例子中,设计变量是B (梁的宽度)和H (梁的高度),因此单元的实参是由B 和 H 来表示的:/PREP7!初始化

12、设计变量:B=2.0H=3.0ET,1,BEAM3AREA=B*HIZZ=(B*(H*3) /12R, 1, AREA, IZZ, H!2-D 梁单元!梁的横截面面积 !绕 Z 轴的转动惯量!以设计变量表示的单元实参!模型的其他部分!杨氏模量!结点!单元MP, EX, 1, 30E6N, 1N, 11, 120FILLE, 1, 2EGEN, 10, 1, -1FINISH!退出 PREP7前面提到,可以对设计的任何方面进行优化:尺寸,形状,材料性质,支 撑位置,所加载荷等,唯一要求就是将其参数化。设计变量(例如B和V)可以在程序的任何部分初始化,一般是在PREP7 中定义。这些变量的初值只是

13、在设计计算的开始用得到,在优化循环过程中会被 改变。注意:如果用GUI模式完成输入,可能会遇到直接用鼠标拾取(picking 的操作。有些拾取操作是不允许参数化输入的。因此,应当避免在定义设计变量, 状态变量和目标函数时使用这些操作,应该用可以参数化的操作来代替。B 求解 求解器用于定义分析类型和分析选项,施加载荷,指定载荷步,完成有限 元计算。分析中所用到的数据都要指出:凝聚法分析中的主自由度,非线性分析 中的收敛准则,谐波分析中的频率范围等。载荷和边界条件也可以作为设计变量。梁的例子中,SOLUTION 部分的输入大致如下:/SOLUANTYPE,STATIC!静力分析(缺省)D,1,UX

14、,0,11,10,UY!UX=UY=0 ,梁两端结点固定SFBEAM ,ALL,1,PRES,100 !施加压力SOLVEFINISH!退出 SOLUTION这一步骤不仅仅限于一次分析过程。比如,可以先进行热分析再进行应力 分析(在热应力计算中)。C 参数化提取结果 在本步中,提取结果并赋值给相应的参数。这些参数一般为状态变量和目 标函数。提取数据的操作用*GET 命令(Utility MenuParametersGet Scalar )Data 实现。通常用POST1来完成本步操作,特别是涉及到数据的存储,加减或其他 操作。在梁的例题中,梁的总重量是目标函数。因为重量与体积成比例(假定密 度

15、是均匀的),那么减小总体积就相当于减小总重量。因此可以选择总体积为目 标函数。在本例中,状态变量选择为总应力和位移。这些参数可以用如下方法定 义:/POST1SET,NSORT ,U,Y*GET , DMAX ,SORT ,MAX!以UY为基准对结点排序!参数DMAX二最大位移!线单元的推导数值由ETABLEETABLE ,VOLU ,VOLU得出!VOLU= 每个单元的体积ETABLE , SMAX_I , NMISC , 1! SMAX_I=每个单元I结点处应力的最大值ETABLE, SMAX_J, NMISC, 3 ! SMAX_丿=每个单元J结点处应力的最 大值!SSUM!将单元表中每

16、列的数据相加*GET, VOLUME, SSUM, ITEM, VOLU!参数VOLUME=总体积ESORT, ETAB, SMAX_I, 1 !按照单元SMAX_I的绝对值大小排序 *GET, SMAXI, SORT, MAX !参数 SMAXI=SMAX_I 的最大值 ESORT,ETAB,SMAX_J,1 !按照单元 SMAX_J 的绝对值大小排序 *GET,SMAXJ,SORT,MAX !参数 SMAXJ=SMAX_J 的最大值 SMAX=SMAXISMAXJ!参数 SMAX=最大应力值FINISH请查阅*GET和ETABLE命令以得到更详细的说明。分析文件的准备 到此为止,我们已经对

17、于分析文件的基本需求做了说明。如果是用系统编 辑器来编辑的批处理文件,那么简单地存盘进入第二步即可。如果是用交互方式 建模的话,用户必须在交互环境下生成分析文件。可以通过两种方式完成本步操 作:数据库命令流文件或程序命令流文件。数据库命令流文件可以通过LGWRITE命令(Utility MenuFileWrite DB Log File)生成命令流文件。LGWRITE将数据库内部的命令流写到文件 Jobname.LGW 中。内部命令流包含了生成当前模型所用的所有命令。程序命令流文件 Jobname.LOG 包含了交互方式下用户输入的所有命 令。如果用 Jobneme.LOG 作为分析文件时,用

18、户必须用系统编辑器删除文件中 所有不必要的命令。因为交互方式下所有的操作都记录在 LOG 文件中,编辑工 作会比较烦琐。而且,如果分析是在几个过程中完成的,就必须将几个 LOG 文 合在一起编辑生成一个完整的分析文件。(关于数据库命令流文件和程序命令流 文件,请参看 ANSYS Operations Guide。)注用户可以退出ANSYS或使用/SYS命令来编辑分析文件。细节请参 看本章“生成分析文件”一节。第二步:建立优化过程中的参数 在完成了分析文件的建立以后,就可以开始优化分析了。(如果是在系统中 建立的分析文件的话,就要重新进入ANSYS。)如果在交互方式下进行优化的话, 最好(但不是

19、必须)从分析文件中建立参数到 ANSYS 数据库中来。(在批处理 方式下除外。)做这一步有两个好处。初始参数值可能作为一阶方法的起点,而且,对于 各种优化过程来说,参数在数据库中可以在 GUI 下进行操作,便于定义优化变 量。建立数据库参数可以选择下列任一种方法:读入与分析文件相联的数据库文件(Jobname.DB)。这样可以在ANSYS 中建立整个模型的数据库。读入数据库文件可以用如下方法:Command: RESUMEGUI: Utility MenuFileResume Jobname.dbUtility MenuFileResume from将分析文件直接读入ANSYS进行整个分析。这

20、样将重新建立整个数据 库,但对于大模型来说要耗费大量的机时。要读入分析文件,可以选择下列方法 之一:Command: /INPUTGUI: Utility MenuFileRead Input from 仅从存储的参数文件中读参数到 ANSYS 中,参数文件是用 PARSAV 命 令或由 Utility MenuParametersSave Parameters 存储的。读入参数可以用下列 方法之一:Command: PARRESGUI: Utility MenuParametersRestore Parameters 重新定义分析文件中存在的参数。不过,这样做需要知道分析文件中定 义了那些参

21、数。用以下任一方式:Command: *SET or “=” commandGUI: Utility MenuParametersScalar Parameters 可以选择使用以上任意一种方式,然后用 OPVAR 命令(菜单路径 MainMenuDesign OptDesign Variables)来指定优化变量。(参看第四步)注在优化过程中,ANSYS数据库不一定要同分析文件一致。模型的输 入是在优化循环过程中由分析文件中自动读入的。第三步:进入OPT,指定分析文件(OPT)以下的步骤是由 OPT 处理器来完成的。首次进入优化处理器时, ANSYS 数据库中的所有参数自动作为设计序列 1。

22、这些参数值假定是一个设计序列。进 入优化处理器可以用如下方式:Command: /OPTGUI: Main MenuDesign Opt 在交互方式下,用户必须指定分析文件名。这个文件用于生成优化循环文 件Jobname.LOOP。分析文件名无缺省值,因此必须输入。指定分析文件名,可 以用下列方式之一:Command: OPANLGUI: Main MenuDesign OptAssign 在批处理方式下,分析文件通常是批命令流的第一部分,从文件的第一行 到命令/OPT第一次出现。在批处理方式中,缺省的分析文件名是Jobname.BAT (它是一个临时性的文件,是批处理输入文件的一个拷贝)。因

23、此,在批处理方 式下通常不用指定分析文件名。但是,如果出于某种考虑将批文件分成两个部分 (一个用于分析,另一个用于整个优化分析),那么就必须在进入优化处理器后 指定分析文件OPANL。注在分析文件中,/PREP7和/OPT命令必须出现在行的第一个非零字 符处(即,不允许有诸如$等符号出现在有这些命令的行中)。这一点在生成优化 循环文件时很关键。第四步:声明优化变量 下一步是声明优化变量,即指定哪些参数是设计变量,哪些参数是状态变 量,哪个参数是目标函数。以上提到,允许有不超过 60 个设计变量和不超过 100 个状态变量,但只能有一个目标函数。声明优化变量可以用如下的方法:Command: O

24、PVARGUI: Main MenuDesign OptDesign VariablesMain MenuDesign OptState VariablesMain MenuDesign OptObjective 对于设计变量和状态变量可以定义最大和最小值。目标函数不需要给定范 围。每一个变量都有一个公差值,这个公差值可以由用户输入,也可以选择由程 序计算得出。如果用OPVAR命令定义的参数名不存在,ANSYS数据库中将自动定义这 个参数,并将初始值设为零。用户可以在任意时间简单地通过重新定义参数的方法来改变已经定义过的 参数,也可以删除一个优化变量OPVAR,Name,DEL。这种删除操作并

25、不真 正删除这个参数,而是不将它继续作为优化变量而已。(参看“执行后修正优化 变量”部分。)第五步:选择优化工具或优化方法ANSYS 程序提供了一些优化工具和方法。缺省方法是单次循环。指定后续 优化的工具和方法用下列命令:Command: OPTYPEGUI: Main MenuDesign OptMethod/Tool 优化方法是使单个函数(目标函数)在控制条件下达到最小值的传统化的 方法。有两种方法是可用的:零阶方法和一阶方法。除此之外,用户可以提供外 部的优化算法替代ANSYS本身的优化方法。使用其中任何一种方法之前,必须 先定义目标函数。零阶方法(直接法):这是一个完善的零阶方法,使用

26、所有因变量(状态 变量和目标函数)的逼近。该方法是通用的方法,可以有效的处理绝大多数的工 程问题。 一阶方法(间接法):本方法使用偏导数,即,使用因变量的一阶偏导数。 此方法精度很高,尤其是在因变量变化很大,设计空间也相对较大时。但是,消 耗的机时较多。用户提供的优化方法:外部的优化程序(USEROP)可以代替ANSYS 优化过程。优化工具是搜索和处理设计空间的技术。因为求最小值不一定是优化的最 终目标,所以目标函数在使用这些优化工具时可以不指出。但是,必须要指定设 计变量。下面是可用的优化工具: 单步运行:实现一次循环并求出一个 FEA 解。可以通过一系列的单次循 环,每次求解前设定不同的设

27、计变量来研究目标函数与设计变量的变化关系。 随机搜索法:进行多次循环,每次循环设计变量随机变化。用户可以指 定最大循环次数和期望合理解的数目。本工具主要用来研究整个设计空间,并为 以后的优化分析提供合理解。 等步长搜索法:以一个参考设计序列为起点,本工具生成几个设计序列。 它按照单一步长在每次计算后将设计变量在变化范围内加以改变。对于目标函数 和状态变量的整体变化评估可以用本工具实现。乘子计算法:是一个统计工具,用来生成由各种设计变量极限值组合的 设计序列。这种技术与称之为经验设计的技术相关,后者是用二阶的整体和部分 因子分析。主要目标是计算目标函数和状态变量的关系和相互影响。 最优梯度法:对

28、用户指定的参考设计序列,本工具计算目标函数和状态 变量对设计变量的梯度。使用本工具可以确定局部的设计敏感性。用户提供的优化工具:可以用外部过程(USEROP)替代ANSYS优化 工具。用户可以通过USEROP过程将自己的方法和工具补充进去。更详细的解释 在 ANSYS Programmers Manual 中。第六步:指定优化循环控制方式 每种优化方法和工具都有相应的循环控制参数,比如最大迭代次数等。所 有这些控制参数的设定都在同一个路径下:GUI: Main MenuDesign OptMethod/Tool 以下列出设定控制参数的命令: 设定零阶方法的控制参数:Command: OPSUB

29、P和Command: OPEQN 设定一阶方法的控制参数:Command: OPFRST 设定随机搜索法的控制参数:Command: OPRAND 设定等步长搜索法的控制参数:Command: OPSWEEP 设定乘子计算法的控制参数:Command: OPFACT 设定最优梯度法的控制参数:Command: OPGRAD 设定用户优化工具的控制参数:Command: OPUSER程序还提供了几个总体控制来设定优化过程中数据的存储方法: 指定优化数据的存储文件名(缺省为 Jobname.OPT):Command: OPDATAGUI: Main MenuDesign OptControls 用

30、下列方法激活详细的结果输出:Command: OPPRNTGUI: Main MenuDesign OptControls 确定最佳设计系列的数据是否存储,用下列方法(缺省是数据库和结果 文件存储最后一个设计系列):Command: OPKEEPGUI: Main MenuDesign OptControls 用户还可以控制几个循环特性,包括分析文件在循环中如何读取。可以从 第一行读取(缺省),也可以从第一个/PREP7出现的位置开始读取;设定为优化变量的参数可以忽略(缺省),也可以在循环中处理。而且,用户可以指定循环 中存储哪种变量:只存储数值变量还是存储数值变量和数组变量。这个功能可以 在

31、循环中控制参数的数值(包括设计变量和非设计变量)。用下列方法设定这些 循环控制特性:Command: OPLOOPGUI: Main MenuDesign OptControls注OPLOOP命令中的Parms变量控制在循环中存储哪个参数。在循环 中存储数值变量和数组变量的选项在一般情况下不设置,除非是数组变量在分析 文件外定义,而在循环中需要保存的情况。第七步:进行优化分析所有的控制选项设定好以后,就可以进行分析了。用下列方法开始分析Command: OPEXEGUI: Main MenuDesign OptRun在OPEXE执行时,优化循环文件(Jobname.LOOP)会根据分析文件生成

32、。 这个循环文件对用户是透明的,并在分析循环中使用。循环在满足下列情况时终 止:收敛;中断(不收敛,但最大循环次数或是最大不合理解的数目达到了); 分析完成。如果循环是由于模型的问题(如网格划分有问题,非线性求解不收敛,与 设计变量数值冲突等)中断时,优化处理器将进行下一次循环。如果是在交互方 式下,程序将显示一个警告信息并询问是继续还是结束循环。如果是在批处理方 式下,循环将自动继续。NCNV 命令(Main MenuSolutionNonlinearCriteria to Stop)是控制非线性分析的,在优化循环中将被忽略。中断循环的设计序列是存 盘的,但参数的数据有可能非常大,不符合实际

33、情况。所有优化变量和其他参数在每次迭代后将存储在优化数据文件 (Jobname.OPT)中。最多可以存储130组这样的序列。如果已经达到了 130个序 列,那么其中数据最“不好”的序列将被删除。! 进入优化处理器!分析文件名(批处理方式不需要)对于上述梁的例子,优化部分的输入大致如下:/OPTOPANL,.! 声明优化变量OPVAR,B,DV,.5,16.5OPVAR,H,DV,.5,8OPVAR,DMAX,SV,-0.1,0 OPVAR,SMAX,SV,0,20000 OPVAR,VOLUME,OBJ!B和H为设计变量!DMAX 和 SMAX 为状态变量!VOLUME 为目标函数! 零阶方法

34、! 最大迭代次数! 开始优化循环!指定优化类型和控制OPTYPE,SUBPOPSUBP,30OPEXE不同的优化过程可以系列地完成。比如,可以在零阶方法的分析结束后再 做等步长搜索。下面的命令对最佳设计序列做等步长搜索:OPTYPE,SWEEPOPSWEEP,BEST,5OPEXE!扫描评估工具!最佳设计序列每个设计变量 5次评估!开始优化循环请查阅/OPT, OPANL, OPTYPE, OPSUBP, OPSWEEP 和 OPEXE 命令以 得到更详细的说明。第八步:查看设计序列结果优化循环结束以后,可以用本部分介绍的命令或相应的GUI路径来查看设 计序列。这些命令适用于任意优化方法和工具

35、生成的结果。列出指定序列号的参数值:Command: OPLISTGUI: Main MenuDesign OptList可以选择列出所有参数的数值,也可以只列出优化变量。 用图显示指定的参数随序列号的变化,可以看出变量是如何随迭代过程变 化的。用以下方法实现:Command: PLVAROPTGUI: Main MenuDesign OptGraphs/Tables将图的X轴由序列号换成别的参数:Command: XVAROPTGUI: Main MenuDesign OptGraphs/Tables对于PLVAROPT和PRVAROPT操作,设计序列将自动按照XVAROPT中 参数以升序排

36、列。对于等步长,乘子和梯度工具有一些特别的查看结果的方法。对于等步长 搜索,用OPRSW命令列出结果,用OPLSW命令图示结果。对于乘子工具,用 OPRFA命令列出结果,用OPLFA命令图示结果。对于梯度工具,用OPRGR命 令列出结果,用 OPLGR 命令图示结果。(相应的路径在后面对命令的详细叙述 中提及。)另一个得到优化 数据的方法是用 STATUS 命令( Main MenuDesign OptStatus)。在优化处理器中使用本命令,将得到另外一些关于当前优化任务的 信息,如分析文件名,优化技术,设计序列数,优化变量等。用STATUS命令可 以方便的查看优化环境,验证需要的设定是否全

37、部输入优化处理器。除了查看优化数据,用户可能希望用POST1或POST26对分析结果进行后 处理。缺省情况下,最后一个设计序列的结果存储在文件Jobname.RST(或.RTH 等,视分析类型而定)中。如果在循环运行前将OPKEEP设为ON,最佳设计序 列 的 数 据 也将 存 储 在 数 据 库和 结 果 文 件 中 。“最 佳结 果 ”在 文 件 Jobname.BRST(.BRTH等)中,“最佳数据库”在文件 Jobname.BDB 中。操作设计序列查看数据以后,可能需要对其做一些操作。比如说,在随机搜索后,用户 可能希望将所有的不合理设计序列删除,以合理的设计序列为数据点来进行后面 的

38、优化。这里提供了几种改变设计序列的方法。下面两个命令可以删除不需要的序列: 用下列命令选择最佳设计序列或所有合理的序列:Command: OPSELGUI: Main MenuDesign OptSelect/Delete(所有没有用 OPSEL 命令选择的设计序列将永久地从优化数据库中删除。)删除指定范围内的设计序列:Command: OPDELGUI: Main MenuDesign OptSelect/Delete对于这两个命令,剩余设计序列的原始序列号将不变。(优化数据库可以存储 130 个设计序列。) 下列命令也可以对设计序列进行操作: 将两个现存的序列相加形成一个新的设计序列(可以

39、有比例系数): Command: OPADDGUI: Main MenuDesign OptCombine 用当前的数值参数值(没有在分析循环中运行)生成一个新的设计序列: Command: OPMAKEGUI: Main MenuDesign OptCreate多层优化计算 在很多情况下要做多于一次优化计算的分析。比如,在一次优化后没有找 到需要的优化结果,或是用一种优化工具开始计算然后做随后的优化分析(例如, 先进行随机搜索,然后用零阶方法)。从第一次较少次数的循环中得到的结果可 以作为修改设计空间并进行以后优化分析的依据。如果用户在同一次 ANSYS 运行中执行所有的优化时,这个过程是很

40、顺利 的。在一次执行以后,简单的重新定义所有的优化输入,然后开始下一步分析。 用下列命令开始下一步分析:Command: OPEXEGUI: Main MenuDesign OptRun如果在执行完一次优化以后退出了 ANSYS,可以用以后叙述的方法开始后 续的分析。重新开始执行优化分析要重新开始优化分析,通过如下命令读入优化数据库文件(Jobname.OPT): Command: OPRESUGUI: Main MenuDesign OptResume数据读入后,指定优化类型,控制等,然后开始循环。(对应于数据库的分 析文件必须可用以完成优化。)用下列方法开始循环:Command: OPEX

41、EGUI: Main MenuDesign OptRun/OPT OPRESU, OPSEL,10OPTYPE, 标准的重启动大致如下:!读入文件(缺省为 Jobname.OPT)!选择 10个最佳设计!指定优化工具或方法!指定其他优化输入OPEXE!开始优化循环请查阅/OPT, OPRESU, OPSEL, OPTYPE和OPEXE命令以得到更详细 的说明。注除了优化数据, ANSYS 工作文件名将存储在优化数据库文件中 (Jobname.OPT)。因 此, 如 果优 化 数据 文 件 被 读入 , 该文 件 名 将 覆盖 当 前的 文 件 名 /FILNAME。在交互方式下可以用OPRES

42、U命令(Main MenuDesign OptResume)读 入批处理方式下生成的优化数据,这样便于交互的查看批处理优化的数据。如果在读入数据前优化数据库中有数据的话,应当首先清除优化数据库。 在这个过程中,所有的设置将恢复其缺省值,所有的设计序列将被删除。用下列 方式清除数据库:Command: OPCLRGUI: Main MenuDesign OptClear&Reset因为 ANSYS 数据库是不受 OPCLR 命令影响的,所以在读入一个新的优化 数据库前应该清除 ANSYS 数据库。用下列方法清除 ANSYS 数据库:Command: /CLEARGUI: Utility Menu

43、FileClear&Start New与 OPRESU 命令相对应的是 OPSAVE 命令(Main MenuDesign OptSave), 其功能是将优化数据写入指定的文件中(缺省为Jobname.OPT)。优化数据在每 次优化循环结束的时候自动存储(见 OPDATA 命令),但用户也可以随时用 OPSAVE 命令存储优化数据。优化技术 理解计算机程序的算法总是很有用的,尤其是在优化设计中。在这一部分 中,将提供对下列方法的说明:零阶方法,一阶方法,随机搜索法,等步长搜索 法,乘子计算法和最优梯度法。(更多的细节参见 ANSYS Theory Reference 第 20 章。)零阶方法

44、零阶方法之所以称为零阶方法是由于它只用到因变量而不用到它的偏导 数。在零阶方法中有两个重要的概念:目标函数和状态变量的逼近方法,由约束 的优化问题转换为非约束的优化问题。逼近方法: 本方法中,程序用曲线拟合来建立目标函数和设计变量之间的关系。这是 通过用几个设计变量序列计算目标函数然后求得各数据点间最小平方实现的。该 结果曲线(或平面)叫做逼近。每次优化循环生成一个新的数据点,目标函数就 完成一次更新。实际上是逼近被求解最小值而并非目标函数。状态变量也是同样处理的。每个状态变量都生成一个逼近并在每次循环后 更新。用户可以控制优化近似的逼近曲线。可以指定线性拟合,平方拟合或平方 差拟合。缺省情况

45、下,用平方差拟合目标函数,用平方拟合状态变量。用下列方 法实现该控制功能:Command: OPEQNGUI: Main MenuDesign OptMethod/ToolOPEQN 同样可以控制设计数据点在形成逼近时如何加权;见 ANSYS Theory Reference。转换为非约束问题 状态变量和设计变量的数值范围约束了设计,优化问题就成为约束的优化 问题。ANSYS程序将其转化为非约束问题,因为后者的最小化方法比前者更有 效率。转换是通过对目标函数逼近加罚函数的方法计入所加约束的。搜索非约束目标函数的逼近是在每次迭代中用 Sequential Unconstrained Minimi

46、zation Technique(SUMT) 实现的。收敛检查 在每次循环结束时都要进行收敛检查。当当前的,前面的或最佳设计是合 理的而且满足下列条件之一时,问题就是收敛的:目标函数值由最佳合理设计到当前设计的变化应小于目标函数允差。最后两个设计之间的差值应小于目标函数允差。 从当前设计到最佳合理设计所有设计变量的变化值应小于各自的允差。 最后两个设计所有设计变量的变化值应小于各自的允差。 用下列方法指定目标函数和设计变量允差:Command: OPVARGUI: Main MenuDesign OptDesign VariablesMain MenuDesign OptObjective 收

47、敛并不代表实际的最小值已经得到了,只说明以上四个准则之一满足了。 因此,用户必须确定当前设计优化的结果是否足够。如果不足的话,就要另外做 附加的优化分析。有时候求解过程会在收敛前终止,这是因为发生下列情况之一: 指定的循环次数达到了。连续的不合理设计达到了指定的值(OPSUBP命令的NINFS域)。缺省 值为 7。零阶方法的特殊问题 由于目标函数和状态变量都是使用逼近的,因此优化设计和逼近数值具有 同样的精确度。下面给出了一些得到较好的逼近的建议。 对于零阶方法,优化处理器开始通过随机搜索建立状态变量和目标函数 的逼近。由于是随机搜索,收敛的速度可能很慢。用户有时可以通过给出多个合 理的起始设

48、计来加速收敛。只简单的运行一系列的随机搜索并删除所有不合理的 设计。用下列方法之一运行随机搜索:Command: OPTYPE,RANDGUI: Main MenuDesign Optmethod/Tool用下列方法删除所有不合理设计:Command: OPSELGUI: Main MenuDesign OptSelect/Delete也可以运行多次单独的循环,并在每次运行前指定新的设计变量序列来生成起始设计序列。用下列方法:Command: OPTYPE,RUNGUI: Main MenuDesign OptMethod/Tool(如果对问题的特性有些认识的话,后一种方法更好些。) 注做一些

49、小的设计分析将有利于收敛。但如果设计之间差别不大,也 就是说设计数据点“堆积”在一起时,用户就要指定优化处理器沿一个指定的路 径分析,以避免丢掉好的设计。如果零阶方法生成了许多不合理的设计的话,可能说明状态变量的近似不能 良好的反映状态变量的实际情况。在这种情况下,可以处理如下:增加连续不合理设计的允许值,然后进行附加的零阶方法分析(如果合 理的设计好象要达到了)。用下列方法:Command: OPSUBP,NINFSGUI: Main MenuDesign OptMethod/Tool 在连续的逼近中不断的选择最佳设计,可以得到更好的曲线拟合。用 下列方法实现:Command: OPSELG

50、UI: Main MenuDesign OptSelect/Delete 在状态变量逼近时选择交叉项。用下列方法:Command: OPEQN,KFSVGUI: Main MenuDesign OptMethod/Tool一阶方法 同零阶方法一样,一阶方法通过对目标函数添加罚函数将问题转换为非约 束的。但是,与零阶方法不同的是,一阶方法将真实的有限元结果最小化,而不 是对逼近数值进行操作。一阶方法使用因变量对设计变量的偏导数。在每次迭代中,梯度计算(用 最大斜度法或共轭方向法)确定搜索方向,并用线搜索法对非约束问题进行最小 化。因此,每次迭代都有一系列的子迭代(其中包括搜索方向和梯度计算)组

51、成。这就使得一次优化迭代有多次分析循环。OPFRST 命令(Main MenuDesign OptMethod/Tool)有两个输入域可以用来 改善一阶方法的收敛。用户可以指定计算梯度的设计变量范围变化程度,也可以 指定线搜索步长的范围。一般来说,这两个输入值的缺省数值就足够了。见 ANSYS Theory Reference。收敛检查 一阶方法在收敛或中断时结束。当当前的设计序列相对于前面的和最佳序 列满足下面任意一种情况时,问题就称为收敛:目标函数值由最佳合理设计到当前设计的变化应小于目标函数允差。从当前设计到前面设计目标函数的变化值应小于允差。 同时要求最后的迭代使用最大斜度搜索,否则要

52、进行附加的迭代。 用下列方法指定目标函数允差:Command: OPVARGUI: Main MenuDesign OptObjective问题在收敛之前可能中断。在用 OPFRST 命令 NITR 域指定的最大迭代次 数达到的情况下出现。一阶方法的特殊情况 与零阶方法相比,一阶方法计算量大且结果精确。但是,精确度高并不能 保证最佳求解。下面是一些注意点: 一阶方法可能在不合理的设计序列上收敛。这时可能是找到了一个局部 最小值,或是不存在合理设计空间。如果出现这种情况,可以使用零阶方法,因 其可以更好的研究整个设计空间。也可以先运行随机搜索确定合理设计空间(如 果存在的话),然后以合理设计序列

53、为起点重新运行一阶方法。 一阶方法更容易获得局部最小值。(见后面“局部和全局最小值”的说 明。)这是因为一阶方法从设计空间的一个序列开始计算求解,如果起点很接近 局部最小值的话,就会选择该最小值而找不到全局最小值。如果怀疑得到的是局 部最小值,可以用零阶方法或随机搜索验证,如上所述。 目标函数允差过紧将会引起迭代次数很多。因为本方法计算实际有限元 解(而非逼近),在计算过程中会根据给定的允差尽量找到确切的结果。随机搜索法对于随机搜索法OPTYPE, RAND,程序完成指定次数的分析循环,并在 每次循环中使用随机搜索变量值。用户可以用OPRAND命令(Main MenuDesign OptMet

54、hod/Tool)指定最大迭代次数和最大合理设计数。如果给出了最大合理设 计数,在达到这个数值时循环将终止,而忽略最大迭代次数是否达到。随机搜索法往往作为零阶方法的先期处理。它也可以用来完成一些小的设 计任务。例如可以做一系列的随机搜索,然后通过查看结果来判断当前设计空间 是否合理。等步长搜索法等步长搜索法OPTYPE, SWEEP用于在设计空间内完成扫描分析。将生成 n*NSPS个设计序列,n是设计变量的个数,NSPS是每个扫描中评估点的数目(由 OPSWEEP命令指定)。对于每个设计变量,变量范围将划分为NSPS-1个相等的 步长,进行NSPS次循环。问题的设计变量在每次循环中以步长递增,

55、其他的设 计变量保持其参考值不变。设计序列中设计变量的参考值用 OPSWEEP 命令的 Dset 指定(Main MenuDesign OptMethod/Tool)。图示和列表显示等步长搜索结果用下列方法图示设计变量数值和响应变量的数值关系:Command: OPLSWGUI: Main MenuDesign OptTool ResultsSweeps纵坐标表示目标函数或状态变量的实际数值。横坐标表示正交化( 0到 1。 的设计变量,正交范围为设计变量的最大最小值OPVAR。用下列方法生成列表的结果:Command: OPRSWGUI: Main MenuDesign OptTool Res

56、ultsPrint正交化的响应数据值和正交化的设计变量值将列出。目标函数和状态变量的结果与参考设计序列数值正交OPSWEEP, Dset。对于设计变量,0相应于最 小值, 1 相应于最大值。乘子计算法本工具OPTYPE,FACT用二阶技术生成设计空间上极值点上的设计序列 数值。(这个二阶技术在每个设计变量的两个极值点上取值。)可以用 OPFACT 命令(Main MenuDesign OptMethod/Tool)指定是完成整体的还是部分子的评 估。对于整体评估,程序进行2n次循环,n是设计变量的个数。1/2部分的评估 进行 2n/2 次循环,依此类推。图示和列表显示乘子计算结果 可以用棒式图

57、和表格显示目标函数或状态变量的某些方面。例如,可以图 示每个设计变量对目标函数的主要作用。用户同样可以查看两个和三个变量之间 的互相作用。用下列命令显示棒式图:Command: OPLFAGUI: Main MenuDesign OptTool ResultsFactorial用下列命令对目标函数或状态变量的作用列表:Command: OPRFAGUI: Main MenuDesign OptTool ResultsPrint要得到更详细的说明,请查阅ANSYS Theory Reference第20章“Design Optimization”。最优梯度法最优梯度法OPTYPE,GRAD计算设

58、计空间中某一点的梯度。梯度结果用 于研究目标函数或状态变量的敏感性。用下列方式指定在哪个设计序列计算梯 度:Command: OPGRADGUI: Main MenuDesign OptMethod/Tool本工具做的循环次数等于设计变量的数目。图示和列表显示最优梯度法的结果 用户可以用图显示设计变量和响应变量的数值。纵坐标表示目标函数或状 态变量的实际数值。横坐标表示设计变量一个小的(1%)变化值。用下列方法 列表表示结果:Command: OPRGRGUI: Main MenuDesign OptTool ResultsPrint1%的变化值是相对于设计变量的变化范围(由 OPVAR 命令

59、中 MAX-MIN 数值确定),而不是相对于当前的设计变量数值的。选择优化变量的一些说明下面列出了许多如何定义设计变量,状态变量和目标函数的建议。 选择设计变量设计变量往往是长度,厚度,直径或模型坐标等几何参数。其必须是正值。关于设计变量要记住的几点如下: 使用尽量少的设计变量。选用太多的设计变量会使得收敛于局部最小值 的可能性增加,在问题是高度非线性时甚至会引起不收敛。显而易见,越多的设 计变量需要越多的迭代次数,从而需要更多的机时。一种减少设计变量的做法就 是将其中的一些变量用其他的设计变量表示。这通常叫做设计变量合并。设计变量合并不能用于设计变量是真正独立的情况下。但是,可以根据模 型的

60、结构判断是否允许某些设计变量之间可以逻辑的合并。例如,如果优化形式 是对称的,可以用一个设计变量表示对称部分。给设计变量定义一个合理的范围(OPVAR命令中的MIN和MAX)。范 围过大可能不能表示好的设计空间,而范围过小可能排除了好的设计。记住只有 正的数值是可以的,因此要设定一个上限。 选择可以提供实际优化设计的设计变量。例如,可以只用一个设计变量 X1 对图 1-3a 的悬臂梁进行重量优化。但是,这排除了用曲线或变截面得到更小 的重量的可能。为了包括这种设计,需要选择四个设计变量X1到X4 (图1-3c)。 也可以用另外一种设计变量选择方法完成该优化设计,见图1-3d。同时,要避免 选择

61、产生不实际结果或不需要的设计。图 1-3 阶梯型悬臂梁的设计变量选择选择状态变量 状态变量通常是控制设计的因变量数值。状态变量的例子有应力,温度, 热流率,频率,变形,吸收能,消耗时间等。状态变量必须是ANSYS可以计算 的数值;实际上任何参数都能被定义为状态变量。选择状态变量的一些要点为:在定义状态变量OPVAR命令时,在MIN域中输入空值表示无下限。 同样,在 MAX 域中输入空值表示无上限。在这两个域中输入 0 值表示以 0 为限 如:UPVAR,SIG,SV,1000!SIG 小于等于 1000OPVAR,SIG,SV,0,1000!SIG 大于等于 0 且小于等于 1000 选择足够

62、约束设计的状态变量数。如在应力分析中,只选择最大应力数 值为状态变量不好,因为在不同循环中,最大应力位置是变化的。同样也要避免 另一个极端如选择每个单元中的应力都为状态变量。比较好的方法是定义几个关 键位置的应力为状态变量。 在零阶方法中,如果可能的话,选择与设计变量为线性或平方关系的参 数为状态变量。例如,状态变量G=Z1/Z2且GvC(Zl和Z2是设计变量,C是常 数)可能不会得到 G 的较好的逼近,因为 G 与 Z2 是反比关系。如果将状态变量 表示为G=Z1- (C*Z2)且GvO,状态变量逼近就准确了。如果状态变量有上下限时,给定一个合理的限制值OPVAR命令的MIN 和MAX域。应避免过小的范围,因为此时合理设计可能不存在。如500到lOOOpsi 的应力范围要比900到1 OOOpsi的范围好。如果要指定相同的约束数值(如频率为386.4HZ),定义两个相同数值的 状态变量将实际值包含起来,如下所示:*GET,FREQ,ACTIVE,SET,FREQ!参数 FREQ 等于

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!