ABAQUS模拟车轮与土壤印痕相互作用:从理论到实践
ABAQUS模拟车轮与土壤印痕相互作用,车轮为刚体,土壤采用Mohr-Coulomb塑性模型,可参考公众号STEMer推文《星球表面rover车轮印痕》
在工程领域,理解车轮与土壤之间的相互作用至关重要,比如农业机械在田间作业,或是越野车在复杂地形行驶等场景。今天我们就借助ABAQUS软件,来模拟车轮与土壤印痕的相互作用,其中车轮设为刚体,土壤采用Mohr - Coulomb塑性模型。如果你对这方面感兴趣,也可以参考公众号STEMer推文《星球表面rover车轮印痕》,那篇文章也有不少相关的思路启发。
理论基础:Mohr - Coulomb塑性模型
Mohr - Coulomb模型是描述土壤等颗粒材料力学行为的经典模型。它基于材料的抗剪强度准则,简单来说,材料发生破坏时,剪应力与正应力满足一定的线性关系。数学表达式为:
\[ \tau = c + \sigma \tan\varphi \]

ABAQUS模拟车轮与土壤印痕相互作用,车轮为刚体,土壤采用Mohr-Coulomb塑性模型,可参考公众号STEMer推文《星球表面rover车轮印痕》
其中,\(\tau\)是抗剪强度,\(c\)是粘聚力,\(\sigma\)是正应力,\(\varphi\)是内摩擦角。这几个参数是刻画土壤力学性质的关键,在ABAQUS建模时,需要准确输入这些参数值。
ABAQUS建模步骤与代码实现
- 创建部件
在ABAQUS中,我们首先要创建车轮和土壤两个部件。对于车轮,因其设为刚体,创建相对简单。以下是一段简化的Python脚本用于创建车轮部件(实际使用中需结合ABAQUS的完整环境):
from abaqus import *
from abaqusConstants import *
# 创建车轮部件
partName = 'Wheel'
myModel = mdb.models['Model - 1']
myPart = myModel.Part(name = partName, dimensionality = THREE_D, type = DEFORMABLE_BODY)
mySketch = myModel.ConstrainedSketch(name = 'Sketch - Wheel', sheetSize = 200.0)
circleCenter = (0.0, 0.0)
radius = 50.0
mySketch.CircleByCenterPerimeter(center = circleCenter, perimeter = (radius, 0.0))
myPart.BaseSolidExtrude(sketch = mySketch, depth = 30.0)
上述代码先定义了部件名称,然后获取当前模型,创建一个三维可变形体部件。接着创建草图,在草图中绘制圆形并通过拉伸操作形成车轮的实体。
- 定义材料属性
对于土壤部件,采用Mohr - Coulomb塑性模型定义材料属性。在ABAQUS的材料模块中,设置如下:
# 定义土壤材料
materialName = 'Soil'
myMaterial = myModel.Material(name = materialName)
myMaterial.Density(table = ((1.8e3, ), ))
myMaterial.Elastic(table = ((20e6, 0.3), ))
myMaterial.Plastic(table = ((0.0, 30.0), (100e3, 25.0), (200e3, 20.0)))
这里设置了土壤的密度、弹性模量和泊松比,还通过Plastic参数设置了塑性阶段的屈服应力与对应的内摩擦角。
- 装配部件
将创建好的车轮和土壤部件装配到一起,模拟实际场景中的位置关系:
# 装配部件
assy = myModel.rootAssembly
wheelInstance = assy.Instance(name = 'Wheel - Instance', part = myPart, dependent = ON)
# 这里假设土壤部件也已创建并实例化,名为soilInstance
assy.translate(instanceList = ('Wheel - Instance', ), vector = (0.0, 0.0, 0.0))
上述代码将车轮实例化并放置在坐标原点,实际中还需根据需要调整车轮与土壤的相对位置。
- 设置分析步与边界条件
分析步定义了模拟过程的加载情况,边界条件则约束了部件的运动。例如,固定土壤底部,给车轮施加转动或移动的边界条件:
# 设置分析步
stepName = 'Loading - Step'
myModel.StaticStep(name = stepName, previous = 'Initial')
# 固定土壤底部
soilBottomFace = soilInstance.faces.findAt(((0.0, 0.0, 0.0), ))
myModel.DisplacementBC(name = 'Soil - Fix', createStepName = stepName, region = soilBottomFace, u1 = 0.0, u2 = 0.0, u3 = 0.0, ur1 = UNSET, ur2 = UNSET, ur3 = UNSET)
# 给车轮施加转动边界条件
wheelEdge = wheelInstance.edges.findAt(((50.0, 0.0, 15.0), ))
myModel.AnalyticalRigidBodyBC(name = 'Wheel - Rotate', createStepName = stepName, region = wheelEdge, u1 = 0.0, u2 = 0.0, u3 = 0.0, ur1 = 0.0, ur2 = 0.0, ur3 = 10.0)
上述代码创建了一个静态分析步,然后在分析步中分别对土壤底部施加固定约束,对车轮边缘施加绕Z轴转动的约束,转速设为10°/单位时间(具体单位根据模型设置)。
- 网格划分与提交计算
最后对部件进行网格划分,提交计算任务,等待ABAQUS求解器给出模拟结果:
# 划分网格
myPart.seedPart(size = 5.0)
myPart.generateMesh()
# 提交作业
jobName = 'Wheel - Soil - Interaction'
myJob = mdb.Job(name = jobName, model = myModel)
myJob.submit()
myJob.waitForCompletion()
这里对部件进行种子设定,网格尺寸设为5.0,然后生成网格。接着创建作业并提交计算,等待计算完成。
模拟结果分析
通过上述步骤完成模拟后,我们可以在ABAQUS的后处理模块中查看车轮与土壤相互作用的结果。可以观察到土壤在车轮作用下的变形情况,以及车轮受到的反作用力等。从结果中我们能更直观地理解车轮与土壤印痕之间的力学关系,为实际工程应用提供理论依据。
总之,利用ABAQUS模拟车轮与土壤印痕相互作用,结合Mohr - Coulomb塑性模型,能够有效帮助我们研究这类复杂的力学问题。希望大家也能动手实践,探索更多有趣的工程模拟场景。

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)