使用 Abaqus(一种有限元分析 (FEA) 和多物理场工程仿真软件)分析和测试的产品设计的规模和复杂性在不断增长。子建模是一种有效的技术,当需要在较大模型中的局部小区域获得详细的产品仿真结果时,可以使用这种技术,使分析人员能够显著降低计算需求并缩短分析的运行时间。
结构的全局分析可首先用于确定对载荷响应至关重要的区域。然后可以为关键区域创建局部子模型,并改进几何表示和/或网格细化。与全局模型相比,局部子模型的精度更高,而无需重新网格化和重新分析整个模型。这种方法既能降低分析成本,又能在关键区域保持足够的细节。
在本博客中,我们将介绍子建模背后的理论、Abaqus 中可用的两种子建模技术以及如何实现子模型。我们还将强调 Abaqus 中子建模的局限性以及验证分析结果的重要步骤。
子建模理论
Abaqus 中的子模型利用 Saint-Venant 原则,即子模型的边界与子模型内的相关区域相距足够远,从而允许用等效的局部力代替外加力。全局模型解决方案通过控制代表作用力的驱动变量来定义子模型边界的行为。只要末端荷载保持静态等效,相关区域的解就不会因末端效应而改变。
图 1 显示了一个具有多个局部开口的梁的实例。全梁的全局模型用于确定子模型公共边界输出的驱动变量,便于使用相对较粗的网格。分析在全局模型和子模型上独立进行,驱动变量是两者之间唯一的联系。有了这种独立性,就可以灵活地改变几何特征、元素类型、材料属性等,以改进子模型区域的表示。与任何建模技术一样,验证结果以确保其物理意义是非常重要的。可以通过比较全局模型和子模型的子模型区域边界附近的等高线图来确认结果是否一致。
Abaqus 中的子模型技术
在 Abaqus 中,有两种技术可用于子建模,即基于节点的子建模和基于曲面的子建模。基于节点的技术是将全局模型中的节点结果场插值到子模型节点上,这是一种更为通用和常用的技术。 相反,在基于表面的子模型中,应力场被插值到子模型表面积分点上。基于表面的子模型仅限于实体对实体的应用和静态分析,对于所有其他用途,应采用基于节点的子模型。根据模型的属性,可以在分析中使用这两种技术或两者的组合。
在静态分析中,如果子模型区域的平均刚度与全局模型受力控制载荷的平均刚度存在显著差异,则基于面的技术可以提供更精确的应力结果。而当各区域的刚度相当时,基于节点的子模型将提供与基于表面的子模型相似的结果,并减少由刚体模式引起的潜在数值问题。刚度差异可能是由于子模型中的额外细节(如开口或圆角)或微小的几何变化造成的,这些变化不需要重新运行全局分析。
如果模型受到较大位移或旋转的影响,基于节点的子模型可以提高向子模型传递较大位移和旋转时的精度。根据最感兴趣的输出结果。基于节点的子模型可以更精确地传递子模型中的位移场。而基于曲面的子模型可以更准确地传递应力场,从而更准确地确定子模型中的反作用力。这两种技术可以在不同的边界上包含在一个模型中。
实施获取 Abaqus 子模型
可以使用保存到输出数据库文件(ODB 或 SIM 格式)中的数据驱动本地模型。 基于节点的子模型也可以使用结果(.fil)文件驱动。只有写入输出数据库的变量才会在子模型中使用,因此必须以足够的频率保存足够的输出数据。这些结果必须保存在全局坐标系中,以便插值到子模型中。在节点数据的情况下,无论是否使用节点坐标变换,数值总是以全局方向写入输出数据库文件。在全局分析过程中,所有驱动变量都应保存在一个共同频率上,而且该频率应足够细,以充分再现驱动变量的全局时间历史。如果以不同频率保存结果,子模型分析将使用最粗的频率。建议创建一个包含所有节点集和/或元素集的单一集合,以此驱动子模型。在图 2 中,定义子模型边界的集合以红色突出显示,并标记为 子模型-区域.
所有类型的载荷和规定的边界条件都可应用于子模型。但是,在子模型中应用载荷和边界条件时应注意与全局模型保持一致,以避免出现错误结果。只有驱动变量才会被内插并转移到子模型中。任何预定义字段都必须按照全局模型中的方式提供。 全局模型和子模型的初始条件应保持一致。为简单起见,最好复制初始全局模型来创建子模型(图 3),使用创建切割工具移除子模型边界外的材料,如图 4 所示。这种方法可以保留全局模型的设置,并将创建子模型时可能出现的错误降到最低。
子模型分析中的步长时间应与全局分析中的步长时间一致,否则任何与时间有关的插值都将是不正确的。如果存在任何差异,可以通过切换选项 “全局分析”,将全局步长的时间段缩放为子模型的时间段。 将全局步骤的时间段缩放为子模型步骤的时间段 当执行图 5 所示的边界条件时。
驱动节点是通过子模型边界条件定义的。您可以指定哪些自由度将在子模型边界处被驱动 – 通常指定驱动节点处的所有自由度。除了缩放时间段外,Abaqus 还可以在适当时缩放从全局模型应用到子模型的驱动变量值。在图 5 中,实施了子模型边界条件,其中包括实体连续体元素(1-3)的所有自由度,且未进行缩放。请注意,只能驱动基本求解变量。 在 “固-固 “或 “壳-壳 “子模型中,这包括位移、温度、电动势、孔隙压力等。子模型边界上的速度或加速度不能被驱动。当使用全局壳模型驱动局部实体模型时,Abaqus 会自动选择驱动变量。其他子模型边界条件可以像往常一样创建、修改或删除。
在子模型分析的整个步骤中,Abaqus 通过空间和时间插值来确定驱动节点变量的值。驱动变量的空间插值顺序由全局层面使用的元素顺序决定。 自动时间递增独立应用于全局分析和子模型分析。独立的时间递增通过驱动变量的时间插值来实现。从输出数据库或结果文件读取的数值之间采用线性时间插值。
当全局模型发生较大位移或旋转时,用户必须确保子模型也发生这些位移或旋转。当使用基于节点的子模型时,驱动节点会自动考虑位移和旋转,因此子模型相对于全局坐标系的位置会正确。相反,对于基于曲面的子模型,仅使用曲面牵引力则无法为子模型提供位移信息。相反,为了解释位移,子模型必须包括:应用边界条件、驱动节点和惯性浮雕。在使用这两种方法时,重要的是在所选区域内保持一致的驱动方法,以防止因部分或过多的驱动定义而产生过度约束。
在建立子模型时,应修改模型属性,以便参考输出数据库或结果文件。图 6 所示的模型属性将导致 Abaqus 读取 Beam-Global.odb 中定义的子模型进行分析时使用这些结果。 Beam-Submodel.inp 输入文件。
子模型的局限性
与子建模方法兼容的方法和元素类型有一些限制。在此将简要概述这些限制,更多信息请参阅文档。
可用于全局和子模型级别的元素仅限于一阶和二阶三角形和四边形连续体、壳或膜元素,一阶和二阶四面体、楔形或砖连续体元素。全局模型可以包含实体和壳体元素,条件是所有驱动节点必须位于全局模型中的壳体元素内。
子模型边界节点不能位于全局模型中驱动变量插值信息不足的区域。这包括只有一维元素(如梁、桁架、连杆或轴对称壳)、用户元素、子结构、弹簧、仪表盘、其他特殊元素或轴对称元素的区域。
使用壳元素时,通常应避免在全局级别使用每个节点五个自由度的壳元素(S4R5、S8R5 等),因为旋转不会保存。这些元素不能用于壳到实体的子建模。
子模型不能用于热-电耦合、热-电化学耦合和基于模式的线性动力学程序。基于表面的子模型只能用于一般静态程序。 壳-固子模型不能与同一模型中的任何其他类型的子模型一起使用。
验证 分析结果
在使用子模型方法时,随后会得到两套分析结果:第一套来自全局模型,给出行为的近似值;第二套来自细化的局部模型,更精确地表示详细的输出结果。子建模程序的一个重要步骤是验证结果。图 7 显示了基于节点的子模型的结果。在绘制应力梯度图之前,首先要检查子模型区域内的位移是否一致。如果发现位移存在重大差异,这将影响所有后续结果,应重新审核并提交模型。一旦发现位移匹配,就可以查询其他输出结果,如应力。在这里,通过增加子建模区域的网格密度可以改善应力梯度。梁的其他区域的应力可以从全局模型中获得,在没有应力集中开口的情况下,粗网格就足够了。