当结构中存在重复结构时,可以将其作为一个子结构单元,在实际分析时重复利用该单元。子结构的实现原理是将模型的局部作为一个子结构来处理,缩聚其内部自由度,只保留与外部有连接关系的自由度,从而减小刚度矩阵和质量矩阵的规模和计算量。这样仅需对子结构进行一次刚度求解,对于重复次数较多的模型可以节约大量的计算时间,子结构分析是一种用于简化计算时间的方法。
本文以图1结构为例,说明使用子结构的方法与步骤。图1结构由1个底座、1根方管和4个加强筋组成。由于4个加强筋结构完全一样,可把加强筋作为子结构。

图1 具有重复结构的实物
首先进行子结构的分析:
(1) 把加强筋作为子结构,单独装配,设置材料。

图2 子结构的装配及材料设置
(2)创建子结构分析步。

图3 创建子结构的分析步
(3)为子结构分析步创建边界条件,保留与主结构相连部分的节点所有自由度。

(4)划分网格,调整边的布种数量,其余默认。

图5 子结构网格划分
(5)提交计算。计算结束后,无法显示云图,见图6。

图6 无法显示云图
计算生成了很多文件。向主结构导入子结构时,需要生成子结构的图7中的7个文件,强烈建议分析主结构也在同一个文件夹,省地遗漏文件。

开始进行主结构分析:

(7)把导入的子结构进行装配。

图9 主结构及子结构的装配
为了阵列方便,生成旋转轴,沿该轴环形阵列,把其余三个子结构放在相应位置上,见图10。

图10 子结构的阵列
打开左侧的模型树,在装配实例中发现已自动为三个子结构命名了,见图11。

图11子结构的自动命名
(8)除子结构之外,为其余结构设置材料,见图12。

图12主结构的材料设置
(9)设置分析步,“通用”>“静力,通用”。同时为了在结果中显示子结构云图,需要增加一个场输出,作用域选择“子结构”,选择弹出的4个子结构。

图13子结构的输出设置
两个场输出,第一个为默认的,第二个为上步骤设置的,见图14。

图14 两个输出
(10)设置一些节点集和表面,为下一步的约束做准备。
节点集:

图15子结构的节点集
面集:

图16主结构的面集
(11)设置约束。
方管与底座的绑定约束:

图17方管与底座的绑定约束
加强筋与方管的绑定约束,加强筋与底座的绑定约束:

图18加强筋与方管、底座的绑定约束
(12)施加约束和加载。
约束:

图19底座的固定约束
为了方便施加载荷,先在方管中心设置一个参考点,再把这个参考点通过MPC与顶面连接起来,见图20。

图20 方管的受力
(13)除子结构外,为其余结构划分网格。

图21 主结构的网格划分
(14)提交计算。

图22 主结构的云图
为了显示子结构的云图,先关闭所有的odb,再打开odb文件,选择该分析步中的主结构、所有子结构的odb文件。

图23 导入主结构、子结构的odb文件
这样就同时显示了主结构、子结构云图,最大应力为227Mpa,最大位移为0.244mm,见图24。

图24 同时显示主结构、子结构云图
(15)为了对比分析,再做一个未使用子结构的分析(传统建模方式,此处详细步骤省略),见图25。

图25 未使用子结构的模型
提交计算,结果如图26所示:最大应力为236Mpa(使用子结构为227Mpa),最大位移为0.244mm(使用子结构为0.244mm)。

图26 未使用子结构的云图
经对比发现,使用子结构的计算结果与传统建模计算结果很接近,应力相差3.8%,位移几乎完全一致,这证明了子结构建模方法的准确性。由于本文中的模型较小,两种建模方式下的计算时间都很短,子结构建模方式提升计算效率的效果并没有真正体现出来,如果分析对象是很大的模型,子结构建模方式计算效率会有很大的提升。