首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Abaqus基于 python 语言的前下控制臂刚度快速建模方法

Abaqus基于 python 语言的前下控制臂刚度快速建模方法

原创
作者头像
达索SIMULIA思茂信息
发布于 2026-10-21 10:25:02
发布于 2026-10-21 10:25:02
350
举报
文章被收录于专栏:仿真CAE与AI仿真CAE与AI

在很多制造类行业内,CAE 分析已成为产品设计流程中不可或缺的部分。国外在汽车零部件的设计过程中,要求必须对产品做相应的 CAE 分析,不然无法通过产品审查,更不能产品上市。CAE 技术的出现,改变了传统的设计流程,避免了通过样品反复试制测试的流程,在节约时间和成本的前提下,又可以提高设计效率和质量。

由于计算机和仿真技术的发展,国外研究人员做了很多探索和积累,有很强的二次开发能力。根据 CAE 软件的分析功能与企业的功能需求相互结合的原则,开发出能实现特定功能的分析模块,既能够满足企业和产品要求,同时又可以实现 CAE 分析软件的最大化利用。无可置疑使得 CAE 技术得以深层次地开发,企业研发效率显著提高。

控制臂作为汽车悬架系统的传力和导向元件,对汽车行驶平顺性和操纵稳定性具有很大影响,它将作用在车轮上的力或力矩传递到车身上,同时保证车轮能按照一定轨迹运动,因此对控制臂结构刚度、强度、疲劳寿命等具有较高的要求,所以对控制臂刚度分析是控制臂开发不可缺少的流程,为了减少 CAE 工程师的工作量,采用 ABAQUS 二次开发完成控制臂刚度分析自动分析与快速提取的工作具有重要的意义控制臂刚度分析快速建模方法

1、 模型数据的准备

1)inp 文件

通过专业的网格划分工具,将控制臂转换成网格模型,即 inp 文件

2)硬点数据

控制臂前点,后点,外点坐标,按要求整理在 Excel 中,并与名称对应,同时需要下载python调用 excel 数据的 openpyxl 工具包或是其他工具包,本文采用的是 openpyxl

2、 abaqus 图形用户界面(GUI)

ABAQUS 软件通过两个各自独立的执行过程 Kernel(即内核程序)和 GUI(即图形用户接口)之间的交互,来完成人机交互功能。图形用户接口将内核指令通过内部程序交互协议送到内核程序中,内核程序解释并执行内核指令。当内核指令在执行过程中出现异常时,该异常信息被反馈给 GUI。因此,在进行 GUI 程序二次开发时,需要同时具备 GUI 界面的设置文件、内核程序文件以及 GUI 与内核之间的通信文件。

任何一个 Abaqus 插件都至少要包括三个文件:注册文件,一般命名格式为xxx_plugin.py,将各类控件关键(传递给内核程序的参数,也就是 GUI 界面输入的参数)及插件工具的注册到”Plug_ins”菜单或者自定义工具条中;图形界面文件,主要作用是定义图形界面框架、各类控件,并关联各控件的执行目标、执行动作等,如图 1,摆臂刚度涉及 inp文件导入控件,前、后、外点选择集控件。内核执行文件是整个插件程 序 的 核 心 , 它由一 系 列 Abaqus 内 核 执 行 脚 本 组 成 , 包含 了 一 系 列 驱 动 Abaqus/CAE 内核程序的指令,通过执行这些指令可以直接驱动 Abaqus/CAE 完成有限元模型的前后处理工作,对于控制臂刚度主要涉及,导入 inp 文件,参考点的批量创建,创建 set 集,创建耦合,创建载荷步,约束与载荷,位移场历史输出,本文对以上脚本进行叙述,列出部分脚本命令

1) 导入 inp 文件

mdb.ModelFromInputFile(inputFileName=fileName, name= modelname)

2) 参考点

建脚本命令如下

mdb.models['modelname'].rootAssembly.ReferencePoint(point=(905, -771, 390))

3) 创建 set 集

建脚本命令如下

node_set_1 = mesh.MeshNodeArray(front)

mdb.models['modelname'].Set(nodes=node_set_1, name='front')

4)创建耦合

mdb.models['Job-01'].Coupling(controlPoint=Region(referencePoints=(mdb.models['Job01'].rootAssembly.referencePoints[21],)), couplingType=KINEMATIC,influenceRadius

=WHOLE_SURFACE,localCsys=None,name='Constraint-2',surface=mdb.models['Job01'].rootAssembly.sets['Set-2'], u1=ON, u2=ON, u3=ON, ur1=ON, ur2=ON, ur3=ON)

5)创建载荷步

mdbm.StaticStep(name='Step-1', previous='Initial')

mdbm.StaticStep(name='Step-2', previous='Step-1')

6)创建约束

mdbm.DisplacementBC(amplitude=UNSET,createStepName='Step-1',

distributionType=UNIFORM, fieldName='', fixed=OFF, localCsys=None , name='BC-1',

region=region1, u1=0.0, u2=0.0, u3=0.0, ur1=UNSET, ur2=UNSET, ur3=UNSET)

7)创建载荷

mdbm.ConcentratedForce(cf1=5000.0, createStepName='Step-1',

distributionType=UNIFORM, field='', localCsys=None, name='Load-1', region=region3)

8)位移场历史输出

mdbm.historyOutputRequests['H-Output-1'].setValuesInStep(stepName='Step-2',

variables=('U2', ))

图 1 图形界面文件
图 1 图形界面文件

3、控制臂刚度插件的生成

基于上述脚本编制内核执行程序,图形界面文件与注册文件就可以完成控制臂刚度模型的创建插件,如图 2 为控制臂刚度自动建模插件

图 2 控制臂刚度自动建模插件
图 2 控制臂刚度自动建模插件

4、结论

通过 abaqus 的二次开发可以快速实现缩短产品设计开发周期、减少研究人员工作量,为控制臂刚度仿真自动化提供一定的指导作用。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档