首页 理论教育 OptiStruct&HyperStudy约束屏蔽策略

OptiStruct&HyperStudy约束屏蔽策略

时间:2023-11-24 理论教育 版权反馈
【摘要】:在这个问题中,每个子工况有100000个约束。因此,在OptiStruct中约束屏蔽默认是激活的。在定义DRESP2和DRESP3类型的响应时,保证相同域编号的响应使用相似的方程,这一点很重要(为了保证约束屏蔽的执行效率,相同域内的响应在数量级上应该相差不大,并且表现出相似的设计灵敏度。为了减轻用户的负担,约束屏蔽的准则可以自动执行并在优化过程中自适应地调整,在尽可能地保留最少数量响应的同时达到稳定收敛。

OptiStruct&HyperStudy约束屏蔽策略

优化过程的每次迭代中,目标函数被重新计算,所有的约束条件也被加以判定。保留优化问题的所有响应可能造成以下两方面的问题:

➢优化问题有非常多的响应和设计变量。多数的优化算法可以处理大量响应或大量设计变量的问题,但是无法求解这两者数量都很多的情况。

➢对于基于梯度的优化来说,这些响应的设计灵敏度都需要计算。当响应和设计变量的数量都很多时,设计灵敏度的计算开销(时间和空间上的)也会变得很大。

约束屏蔽(constraint screening)把优化问题中的响应数量缩减到具有代表性的少数,被保留的响应抓住了原始优化问题的本质,同时又使得问题的计算规模在一个可接受的范围内。约束屏蔽应用了这样一个事实,即被屏蔽掉的约束不会影响优化的方向,因此它们可以从当前的设计迭代步中去除。被屏蔽掉的约束响应要么在可行域内远离边界值,要么比保留下来的指定数量的约束(相同约束响应类型,同一设计域,同一工况)相对重要性低(比如对上限约束该响应的值更小,或对下限约束该响应的值更大)。

考虑这样一个优化问题,目标是最小化模型总质量(该模型由100000个单元组成),同时保证所有单元的应力低于其材料的屈服应力。在这个问题中,每个子工况有100000个约束(每个单元的应力低于其材料的屈服应力)。对于每个设计变量,在每一子工况的每次迭代中都要进行100000个灵敏度的计算。

因为设计变量的改变也会受到运动极限的限制,所以应力值在相邻的迭代步之间不会发生剧烈变化。因此,也就没有必要计算那些应力远低于其屈服应力的单元的灵敏度。同样的,优化的方向主要受到最大单元应力的影响,因此可以仅仅考虑那些最大单元应力,这样需要进行的灵敏度计算的数量将会进一步降低。(www.xing528.com)

当然,约束屏蔽是一个权衡利弊的过程。屏蔽掉一些约束响应后,有可能需要更多的迭代才能得到一个收敛的解。尤其是如果屏蔽了过多的约束响应,可能会耗费非常长的时间才能收敛。在最坏的情况下,如果保留的响应数量少于有效的约束数量,优化甚至可能不收敛。

大量的测试表明,对于大多数优化问题,使用约束屏蔽可以节省很多的计算时间和资源。因此,在OptiStruct中约束屏蔽默认是激活的。默认设置为,对于每种响应类型在每个设计区域和子工况中,仅考虑在可行域内离其边界值50%以内(包括不可行域)的前20个最重要(比如对于上限约束值最大,或对于下限约束值最小)的约束。

DSCREEN卡片可以控制约束屏蔽的阈值和保留的约束数量。对于所有的DRESP1类型响应,可以单独设置不同的DSCREEN。对于DRESP2类型的响应,需要单一的DSCREEN设置,其RTYPE值为EQUA。同样的,对于DRESP3类型的响应,需要单一的DSCREEN设置,其RTYPE值为EXTERNAL。在定义DRESP2和DRESP3类型的响应时,保证相同域编号的响应使用相似的方程,这一点很重要(为了保证约束屏蔽的执行效率,相同域内的响应在数量级上应该相差不大,并且表现出相似的设计灵敏度。要保证这一点,最简单的方法就是组合相似的变量)。

为了减轻用户的负担,约束屏蔽的准则可以自动执行并在优化过程中自适应地调整,在尽可能地保留最少数量响应的同时达到稳定收敛。在DSCREEN卡片中设置RTYPE=AUTO可以打开这一功能。在这一设定下,域将会自动定义。这个功能对于经验较少的用户来说非常有用,当问题中存在许多局部约束时也非常有价值。但是,它在运行过程中将会消耗较多的内存。高级用户可以通过自定义约束屏蔽准则,手动定义保留的约束,这样会使用较少的内存,这对于大规模问题来很有价值(即使可能会影响收敛的稳定性和解的最优性)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈