前言:
悬架是汽车最重要的部件之一,对整车的操作稳定性与平顺性影响较大,如汽车在运行过程中出现故障,极易造成严重的后果,所以在开发前期对悬架的强度校核工作必不可少,悬架的校核是一项比较繁琐、重复的事情,建模过程中需要输入的参数众多,如硬点参数、衬套参数、衬套局部坐标系参数等,建模过程十分繁琐且容易出错[1],对于一个全新开发的悬架,可能需要两个钟头的时间才能建好,而且后期结构变更非常频繁,修改也比较麻烦,为了缩减悬架有限元建模的时间,摸索了一套快速而精准的悬架建模方法具有重要的意义,由于悬架结构形式相对比较固定,有限元建模方式也相似,这些都为麦弗逊悬架有限元快速建模提供了有力的保障,本项目选用 Abaqus 软件,开展麦弗逊悬架有限元快速建模方法的研究,实现麦弗逊悬架自动建模,可以极大的降低分析人员的工作强度,有效的缩短项目周期,从而有效提高建模的效率弗逊悬架有限元快速建模方法。
1、 模型数据的准备
悬架建模需要输入的数据量较多,考虑数据输入方便性,在程序设计过程,根据建模分析需求,可将用户常用的数据建立相应的数据库:硬点数据、衬套刚度数据,弹簧数据、缓冲块数据,按照要求的格式整理,方便随时调用相关数据,硬点数据按要求整理在 Excel 中,并与名称对应,否则就会报错
衬套刚度数据,弹簧数据、缓冲块数据,以 Adams 中属性文件形式放在某文件下
2、 Python 语言的开发应用
应用 py 语言对弗逊悬架有限元快速建模,主要应用项目如下
1) 硬点模型的参数化建立
将悬架系统各部件连接点如转向节与控制臂的链接点、转向节与减振器连接点,转向节与转向拉杆的连接点,悬架系统与其他部件的连接点按一定顺序写入 Excel 中,然后供程序调用,硬点建模快速建立方法如下,然后根据硬点坐标进行 for 循环创建批量硬点,创建脚本命令如下[2]。
mdb.models['mfx'].rootAssembly.ReferencePoint(point=(905, -771, 390))
2) 为了便于后期硬点的修改,硬点名称批量命名,创建脚本命令如下
mdb.models['mfx'].rootAssembly.features.changeKey(fromName='RP-1', toName=
'damp_down')
3) 批量创建局部坐标
衬套 、弹簧、缓冲块 柱面副赋属性时要求指定局部坐标系,因为衬套、弹簧、柱面副的参数实际上是局部坐标系下的,故每个衬套、弹簧、柱面副都必须建立自己的局部坐标系。
这里指定局部坐标是为了确定活塞运动的方向。而建立局部坐标系最常用的方法就是两点法与三点法,根据形式适当选择两点还是三点建立局部坐标系,创建脚本命令如下
mdb.models['mfx'].rootAssembly.DatumCsysByThreePoints(coordSysType=CARTESIA
N, name='topmount', origin=mdb.models['mfx'].rootAssembly.referencePoints[8], point1=mdb.models['mfx'].rootAssembly.referencePoints[9], point2= mdb.models['mfx'].rootAssembly.referencePoints[10])
4) 衬套模型的参数化建立
麦弗逊悬架衬套连接在摆臂与车身,将衬套看作 6 个方向的非线性的弹簧模型,需要输入三个位移方向上力与位移的关系曲线和三个旋转方向上力矩与转角的关系曲线,创建脚本命令如下
mdb.models['mfx'].ConnectorSection(assembledType=BUSHING, name='
lca_front_bush ')
mdb.models['mfx'].sections['lca_front_bush'].setValues(behaviorOptions=(
ConnectorElasticity(behavior=NONLINEAR, table=((数据 1)), independentComponents=(), components=(1, )), ConnectorElasticity(behavior=NONLINEAR, table=((数据 2)), independentComponents=(), components=(2, )), ConnectorElasticity(behavior=NONLINEAR, table=((数据 3)), independentComponents=(), components=(3, )), ConnectorElasticity(behavior=NONLINEAR, table=((数据 4)), independentComponents=(), components=(1, )), ConnectorElasticity(behavior=NONLINEAR, table=((数据 5)), independentComponents=(), components=(1, )), ConnectorElasticity(behavior=NONLINEAR, table=((数据 6)), independentComponents=(), components=(6, ))))
3)弹簧的参数化建立
弹簧参数,将弹簧看作只有一个方向线性刚度,且还需要输入弹簧的自由长度来考虑弹簧的预载作业,创建脚本命令如下
mdb.models['mfx'].ConnectorSection(name='Axial',translationalType=AXIAL, u1ReferenceLength=320)
mdb.models['mfx'].sections['Axial'].setValues(behaviorOptions=( ConnectorElasticity
(table=((30.0, ), ), independentComponents=(), components=(1, )), ))
5) 球铰副的创建
摆臂与转向节,转向节与转向拉杆都是通过球铰副连接,创建脚本命令如下
mdb.models['mfx'].ConnectorSection(name='join', rotationalType=CARDAN, translationalType=JOIN)
6)刚性梁单元的创建
刚性梁作为一个传力单元,可以建一个刚性体等效多个 beam 梁单元,如下摆臂,转向
节,活塞杆与减振器筒,创建脚本命令如下
mdb.models['mfx'].ConnectorSection(assembledType=BEAM, name='beam')
6) 约束与工况的创建
首先要穿件载荷步,创建脚本命令如下
mdb.models['mfx'].StaticStep(initialInc=0.01, name='proload', nlgeom=ON, previous='Initial')
mdb.models['mfx'].StaticStep(initialInc=0.01, name='fpb', previous='proload')
mdb.models['mfx'].StaticStep(initialInc=0.01, name='jxzx', previous='fpb')
mdb.models['mfx'].StaticStep(initialInc=0.01, name='gk', previous='jxzx')
约束 topmount 与摆臂前后点,在轮心位置进行加载,创建脚本命令如下
mdb.models['mfx'].ConcentratedForce(cf1=1, cf2=2, cf3=3, createStepName='fpb', distributionType=UNIFORM, field='', localCsys=None, name='Load-1', region= Region(referencePoints=(mdb.models['mfx'].rootAssembly.referencePoints[1],
)))
mdb.models['mfx'].Moment(cm1=4, cm2=5, cm3=6, createStepName='fpb', distributionType=UNIFORM, field='', localCsys=None, name='Load-2', region= Region(referencePoints=(mdb.models['mfx'].rootAssembly.referencePoints[1],
)))
mdb.models['mfx'].loads['Load-1'].setValuesInStep(cf1=2, cf2=3, cf3=4, stepName='jxzx')
mdb.models['mfx'].loads['Load-2'].setValuesInStep(cm1=5, cm2=6, cm3=7, stepName='jxzx')
mdb.models['mfx'].loads['Load-1'].setValuesInStep(cf1=4, cf2=31, cf3=54, stepName='gk')
mdb.models['mfx'].loads['Load-2'].setValuesInStep(cm1=55, cm2=76, cm3=87, stepName='gk')
mdb.models['mfx'].ConcentratedForce(cf1=11, cf2=22, cf3=33, createStepName=
'fpb', distributionType=UNIFORM, field='', localCsys=None, name='Load-3', region=Region(referencePoints=(
mdb.models['mfx'].rootAssembly.referencePoints[20], )))
mdb.models['mfx'].loads['Load-3'].setValuesInStep(cf1=22, cf2=68, cf3=90, stepName='jxzx')
mdb.models['mfx'].loads['Load-3'].setValuesInStep(cf1=111, cf2=222, cf3=333, stepName='gk')
mdb.models['mfx'].EncastreBC(createStepName='proload', localCsys=None, name=
'BC-1', region=Region(referencePoints=(
mdb.models['mfx'].rootAssembly.referencePoints[23], mdb.models['mfx'].rootAssembly.referencePoints[24], mdb.models['mfx'].rootAssembly.referencePoints[25], )))
mdb.models['mfx'].EncastreBC(createStepName='proload', localCsys=None, name=
'BC-2', region=Region(referencePoints=(
mdb.models['mfx'].rootAssembly.referencePoints[1], )))
mdb.models['mfx'].boundaryConditions['BC-2'].deactivate('fpb')
mdb.models['mfx'].DisplacementBC(amplitude=UNSET, createStepName='proload', distributionType=UNIFORM, fieldName='', fixed=OFF, localCsys=None, name=
'BC-3', region=Region(referencePoints=(
mdb.models['mfx'].rootAssembly.referencePoints[19], )), u1=0.0, u2=0.0, u3=
0.0, ur1=UNSET, ur2=0.0, ur3=UNSET)
3、编写内核执行文件
基于上述脚本可以编制自动创建麦弗逊悬架骨架 CAE 模型内核执行程序,该程序由一个主函数组成,该函数有 6 个变量,分别定义 adams 属性 文件路径、弹簧自由长度与刚度参数,缓冲块的间隙参数,硬点名称与坐标信息,工况名称与载荷数据信息。程序中使用了自动创建硬点与修改硬点名称、自动创建衬套、弹簧属性,自动创建坐标系,自动创建连接器,自动创建连接,自动创建载荷步、自动创建约束等函数,可以实现麦弗逊悬架骨架 CAE 模型的自动建立,如下为麦弗逊悬架骨架 CAE 模型自动建立
图 1 麦弗逊悬架骨架 CAE 模型自动建立界面
图 2 麦弗逊悬架骨架 CAE 模型
4、结论
通过 abaqus 的二次开发可以快速实现缩短产品设计开发周期、减少研究人员工作量,为汽车悬架仿真自动化提供一定的指导作用。
资料来源:达索官方
2025-05-15
2025-05-15
[ABAQUS] Abaqus中模拟座椅背挤压后不同厚度区域的导热系数变化
2025-05-15
[行业资讯] 上课啦!达索系统 SIMULIA Abaqus Pytho
2025-05-14
[有限元知识] PowerFlow某轿车激光雷达气动噪声优化
2025-05-14
2025-05-14
2025-05-13
2025-05-13
[CST] CST软件基于曲线偶极子的宽带全向圆极化天线设计
2025-05-13
2025-05-12
2023-08-24
2023-08-29
[ABAQUS] ABAQUS如何建模?ABAQUS有限元分析教程
2023-07-07
[ABAQUS] 有限元分析软件abaqus单位在哪设置?【操作教程】
2023-09-05
[ABAQUS] ABAQUS软件中Interaction功能模块中的绑定接
2023-07-19
[ABAQUS] Abaqus单位对应关系及参数介绍-Abaqus软件
2023-11-20
[ABAQUS] abaqus里面s11、s12和u1、u2是什么意思?s和
2023-08-30
[ABAQUS] Abaqus怎么撤回上一步操作?Abauqs教程
2024-05-01
[ABAQUS] ABAQUS软件教程|场变量输出历史变量输出
2023-07-18
[ABAQUS] 如何准确的评估真实行驶工况条件下的空气动力学性能
2020-11-19
[行业资讯] 上课啦!达索系统 SIMULIA Abaqus Pytho
2025-05-14
[有限元知识] PowerFlow某轿车激光雷达气动噪声优化
2025-05-14
2025-05-14
2025-05-13
2025-05-13
[有限元知识] Isight对汽车顶盖复合材料前横梁铺层多目标优化设计
2025-05-07
[有限元知识] 多体动力学Isight对某车型正面碰撞结构多目标轻量化优化
2025-05-07
[有限元知识] Isight案例分析:基于RSM与RBF的车身多目标
2025-05-07
[有限元知识] 基于Adams-Isight的刚柔耦合汽车前盖四连杆铰链多
2025-04-29
[有限元知识] 基于ANSYS-SIMPACK车-线-桥耦合系统动力学模型
2025-04-29
地址: 广州市天河区天河北路663号广东省机械研究所8栋9层 电话:020-38921052 传真:020-38921345 邮箱:thinks@think-s.com
Copyright © 2010-2023 广州思茂信息科技有限公司 All Rights Reserved. 粤ICP备11003060号-2