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)
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Abaqus中,可以使用多自由度集中质量模型来模拟具有多个自由度的结构系统,并将质量集中在节处。这种模型可以更准确地描述结构的动态行为。 要创建一个多自由度集中质量模型,您可以按照以下步骤进行操作: 1. 创建模型并定义节:使用Abaqus提供的节命令(例如*NSET)来定义系统中的节,并为每个节分配自由度。 2. 定义单元:使用适当的单元类型(例如梁单元、壳单元等)来连接节并描述结构的几何形状和材料性质。 3. 设置边界条件:通过施加适当的边界条件(例如约束或固定支座)来限制节的自由度。 4. 分配质量:使用质量集中方法质量分配给每个节。您可以使用以下命令: ``` *MASS <nodelist>, <massvalue> ``` 其中,`<nodelist>`是节的列表或范围,`<massvalue>`是要分配给节质量值。 5. 定义加载:通过施加适当的加载条件(例如力、压力或位移)来模拟外部载荷作用于结构上。 6. 运行求解器:选择适当的求解器(例如静态求解器、动态求解器等)来求解多自由度集中质量模型,并获得结构的响应结果。 通过将质量集中在节上,多自由度集中质量模型可以更准确地模拟结构的动态行为。然而,请注意,根据具体问题和准确性要求,您可能需要使用分布式质量或其他更复杂的质量分配方法。 如果您有任何进一步的问题,请随时向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

George1415926

看着有用,请作者喝杯咖啡啦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值