HyperWork中OptiStruct为最大最小值(最小最大值)优化设计设置目标函数
在Hyperworks/OptisStruct中进行优化设计,有时需要为一些响应求某个大值的最小值,或者某个小值的最大值。比如求几个单元上的最大等效应力的最小值。在这种情况下,可以使用MINMAX或MAXMIN 来为优化设定目标函数。对于这些问题,目标函数可以被定义为:

其中Wk 是响应值,r k 是相应的参考值,可以是正数或负数,根据响应来取值。通常情况下,响应的目标值或者约束值可以被用来当作其参考值。参考值的使用可以让你设置的通用的最大或最小问题的参考值,这个参考值适合不同响应和不同幅值的情况。
在Hyperworks/OptisStruct中MINMAX或者MAXMIN参考了bulk data中的DOBJREF声明,而DOBJREF又反过来参考了DRESP1,DRESP2或DRESP3的响应定义。参考值定义在DOBJREF的入口中。
定义一个最小或最大目标函数的步骤如下:
一、创建响应
1. 在Hypermesh的Analysis页面点击optimization然后选择responses命令,或者从Optimization下拉菜单中选择Responses命令。

2. 点击response= 输入一个名字。
3. 点击 responsetype 下的开关选择一个合适的响应类型,比如进行轻量化设计时经常需要以质量mass作为响应。
4. 同时,你还可以为这个应力响应定义一个regionid。 使用DSCREEN和这个选项在计算时可以为计算节省花销。
二、创建目标参考值
1. 在Hypermesh的Analysis页面点击optimization然后选择 obj reference命令或者从Optimization下拉菜单中选择Obj reference命令。

2. 点击dobjref = 并输入一个名字。
3. 点击response = 然后选择之前创建的响应。
4. 点击 negreference = 输入一个参考值(或者点击 pos reference =)。
5. 如果需要,调整后面的选项并选择载荷步(子步)。
6. 点击create创建目标参考值。
7. 如果还有需要,可以重复2到6定义其他目标参考值。
三、创建最大/最小值目标函数
1. 在Hypermesh的Analysis页面点击optimization 然后点击objective命令,或者从Optimization下拉菜单中选择 Objective命令。

2. 点击转换按钮并选择 minmax 或 maxmin。
3. 点击高亮的 dobjrefs从列表中选择需要的目标参考值。
4. 点击 create创建最大/最小值目标函数。
注意:允许多个MINMAX和 MAXMIN入口,但是同一个MAXMIN入口不能在一个input文件中同时作为MINMAX入口。
参考文献
【1】HyperWorks Tips & Tricks: 为优化设置目标函数,微信公众号:Altair仿真驱动设计,2015-06-04