薄壁结构最常见的失效方式是屈曲(失稳)。为了避免此类结构发生屈曲现象,可以使用加强筋,加强筋可增加结合面的强度。屈曲临界载荷是衡量结构发生屈曲现象的最小载荷,由下式决定:
为屈曲载荷因子,F为外载荷。由上式可知,在外载一定的时候,临街载荷与屈曲载荷因子成正比,而屈曲载荷因子与加强筋的位置有关。因此为了提高结构的稳定性,需要找到加强筋的最优位置使得该结构拥有最大屈曲载荷因子。
寻找最优位置的问题是一个反问题,可通过优化算法来获到最优解。差分进化算法是一种全局智能优化算法,是遗传算法的变体,可高效获得最优解。本文使用智能优化算法对位置参数进行了反演并使用遍历搜索优化算法来进行了对比。
针对图1优化前所示结构,优化轴向4个加强筋位置,使得屈曲载荷因子最大。圆筒是薄壁结构,采用壳单元进行分析。圆筒高400mm,直径为400mm,薄壁厚1mm,加强筋厚2mm。圆筒在顶端受到大小为500N,方向为-y方向的集中力。
图1 带有加强筋的圆筒模型
这一部分将结合代码详细展现如何实现这一过程的技术细节以及智能优化算法的优势。代码是通过Python脚本来实现,其代码主要包含三个模块runAbaqus、main_DE_inverse、main_TS_inverse,分别代表执行CAE计算、差分进化算法反演和遍历搜索算法反演。
runAbaqus(theta): 运行Abaqus进行CAE计算,输入为加强筋位置所在的角度,并在后处理提取出屈曲载荷因子。在进行参数优化时,建立参数化模型是最有挑战的一项任务。
由于圆筒薄壁具有几何对称性和载荷对称性,因此可在圆筒相差180度环向固定两根加强筋,优化剩下的两个加强肋的位置。加强肋的位置是由相对于圆心的角度来确定的。在优化分析时,需要建立加强筋的集和圆筒的set,方便赋予不同的材料属性。随着角度的变化,加强筋的位置发生改变,因此加强筋的set是一个随位置变化的set。如何建立随角度变化的set是本案例的一个技术点。加强筋是通过对圆筒进行切分然后赋予不同的材料属性和厚度来建立的,在定义其位置时,使用了旋转的参考平面作为辅助参考平面。
下图展示的是创建加强筋s的代码,这是一个随着角度变化的集(Set-rib)。创建集的思想是通过findAt函数来找到加强筋位置所在面上的点来进行定位的。
由于目标值是需要载荷因子,因此在完成有限元分析后,需要提取出屈曲载荷因子,即一阶特征值,提取代码如下。
main_DE_inverse():差分进行算法进行参数优化。差分进化算法是一个全局最优算法,初始值是随机值。智能优化算法采取的都是随机值初始值,因此更容易跳出局部最优化,大多都是全局最优算法。位置的改变对屈曲载荷因子的大小在远离最优位置的地方影响不大,容易陷进局部最优,使用智能算法可以提升收敛速度。对于其他非智能算法,可能会遇到initial point is a local minimum的错误,不过这个也可以通过调参避免,与个人经验有关。
main_TS_inverse():直接搜索法进行参数反演。每次的计算步长为10,即30:10:100。对于单变量优化问题,直接搜索法具有优势。
图2展示了屈曲载荷因子随迭代次数的变化关系,在迭代初始时载荷因子为22.73,相应的临界载荷为22.73*500=11365N;迭代收敛时的载荷因子为43.36,对应的临界载荷为43.36*500=21680N。加强筋优化后的位置显著地提升了屈曲临界载荷,增大幅度为10318N,约等于优化前的2倍。图3-图4为优化后的应力云图以及模型图。优化前的初始角度为33度,优化后为89.88度,四根加强筋均匀分布在圆筒环向。直接搜索法在90度的时候获得的最大载荷因子。加强筋位置均匀分布成90度是最佳布局位置,这和我们的经验是非常吻合。
图2 屈曲载荷因子随迭代次数的变化关系
图3 优化前位移云图
图4 优化后的应力云图
内容简介:加强筋位置反演python源代码;参数反演流程代码;参数反演前后处理程序