Bootstrap

ABAQUS应用04——集中质量的添加方法

0. 背景

混塔ABAQUS模型中,机头、法兰等集中质量的设置是模型建立过程中的一部分,需要研究集中质量的添加。

1. 集中质量的编辑

集中质量本身的编辑没什么难度,我已经用Python代码将其实现。具体代码片段如下:

def add_point_mass(PointMassInfo):
    '''
    通过参数化
    :param PointMassInfo: txt2caeinputdata返回的PointMass信息,[(height1, mass1),(height2, mass2),...]
    :return:
    '''
    a = m.rootAssembly
    for i, item in enumerate(PointMassInfo):
        RP_i = a.ReferencePoint(point=(0.0, 1000*item[0], 0.0))
        refPoints_i = (a.referencePoints[RP_i.id],)
        region = a.Set(referencePoints=refPoints_i, name='Set-PM' + str(i+1))
        a.engineeringFeatures.PointMassInertia(
            name='Inertia-'+ str(i+1), region=region, mass=item[1], alpha=0.0, composite=0.0)

2. 约束的设置

集中质量的添加必须配合约束的设置,可以通过一些手段来检验集中质量添加是否成功,具体方法可以点击这里。感谢原作者分享!
这里将作者的总结放在下面:
在这里插入图片描述
此外,还需要注意,在编辑约束的时候,需要设置Coupling类型。我的塔架结构将其设为运动就会出问题,设为连续分布就没有问题。具体原因我现在并没有完全弄明白,如果有懂的网友可以留言指导一下,先行谢过!
在这里插入图片描述

3. 总结

事实上,编辑约束部分也可以用代码实现。不过因为我现在遇到了其他更重要的问题,所以在确定集中质量的设置方式以后,并没有在这里深究。等后面模型跑通了,在考虑这部分内容的改进。
--------------------------20240220----------------------------------
完整代码如下,已包含添加约束的命令,适用于多个集中质量的添加

def add_point_mass(a, PointMassInfo, PM_instance_list, refpoint_list, refheight_list):
    '''
    :param a: 装配体名称
    :param PointMassInfo: txt2caeinputdata返回的PointMass信息,[(height1, mass1),(height2, mass2),...]
    :param PM_instance_list: 用于给集中质量添加约束的实例的名称列表
    :param refpoint_list: 集中质量添加约束区域的参考点列表,用于选择约束区域
    :param refheight_list: 集中质量添加约束区域的高度列表,用于选择约束区域
    :return:
    '''
    for i, item in enumerate(PointMassInfo):
        RP_i = a.ReferencePoint(point=(0.0, 1000*item[0], 0.0))
        refPoints_i = (a.referencePoints[RP_i.id],)
        PM_setname = 'Set-PM' + str(i+1)        # 设定集中质量参考点的
        region = a.Set(referencePoints=refPoints_i, name=PM_setname)
        # 质量信息按照kg为单位给出,ABAQUS中需要按照吨给出,此处应进行单位换算
        a.engineeringFeatures.PointMassInertia(
            name='Inertia-'+ str(i+1), region=region, mass=item[1]/1000, alpha=0.0, composite=0.0)
        controlPoint_region = a.sets[PM_setname]
        s1 = a.instances[PM_inatances_list[i]].faces    # 集中质量需要绑定的实例的名称,获取其所在面的集合
        side1Faces1 = s1.findAt(((refpoint_list[i], 1000*refheight_list[i], 0),))
        surface_region = a.Surface(side1Faces=side1Faces1, name='m-sur-PM-'+str(i+1))
        m.Coupling(name='Constraint-PM'+str(i+1), controlPoint=controlPoint_region,
                                       surface=surface_region, influenceRadius=WHOLE_SURFACE, couplingType=DISTRIBUTING,
                                       weightingMethod=UNIFORM, localCsys=None, u1=ON, u2=ON, u3=ON, ur1=ON,
                                       ur2=ON, ur3=ON)

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;