☰
EDEM磨损模型实战:Relative Wear参数设置与结果判读方法
2026/9/26 2:53:53 网站建设 项目流程

简介:一份针对EDEM离散元仿真软件中相对磨损模型二次开发的源码资源,适合从事颗粒磨损仿真、需要自定义EDEM接触模型的工程师或研究人员。该压缩包共5个文件,包含CHertzMindlin_Wear.cpp等2个C++源文件、2个头文件以及1个编译好的Relative_Wear_v03.dll。通过源码可了解Hertz-Mindlin接触模型基础上扩展磨损计算的实现方式,包括接触力、磨损深度等关键参数的算法逻辑。dll文件可直接用于EDEM插件加载,便于快速验证效果。包体仅19KB,结构精简,便于阅读与修改。已有569人学习下载,适合具备一定C++基础和EDEM使用经验的开发者。借助这份代码,用户可以掌握EDEM自定义磨损模型的编写框架,根据实际工况调整磨损系数,并进一步开展磨损率、磨损分布等后处理分析,为设备磨损优化提供量化依据。

1. EDEM 磨损模型的落地价值:Relative_Wear 算例能回答哪些问题

溜槽弯头三个月磨穿、筛板磨损不均导致漏料,这种问题靠现场拆机已经来不及。EDEM 磨损模型的意义,就是在设备还没造出来之前,把颗粒对壁面的磨损趋势跑出来。像 Relative_Wear_Relativewear_jobvfw_closelyxl5 这类作业名,本质上就是一组几何、接触参数与磨损模型设置的组合,跑完之后能直接回答:弯头外侧的热点在哪、换衬板角度有没有用、大概多久需要停机检修。适合两类人:做设备设计的工程师,以及做产线技改、被磨损投诉缠身的现场工程师。

很多初学者把 EDEM 磨损仿真当成黑匣子,以为选了磨损模型、导出云图就算完事。实际上,从模型选型到结果判读,每一步都有取舍。这篇笔记按我自己的落地路径来写:先讲清楚 Relative Wear 和 Archard Wear 怎么选,再落到几何导入、参数设置、结果判读和常见翻车点,最后补一段 EDEM 与 Fluent 耦合时磨损模型的配合方式。

2. 先分清磨损模型再调参数:Relative Wear 与 Archard Wear 的差异

2.1 相对磨损模型的底层逻辑:接触能量累计与磨损深度的关系

EDEM 里常见的磨损模型有两个:Archard Wear 和 Relative Wear。Archard 的思路来自经典摩擦学,磨损体积与法向载荷、滑动距离成正比,需要你给材料定义磨损系数和硬度,算出来的是带绝对量纲的体积磨损量。Relative Wear 的思路不一样,它不直接去拟合某个材料的硬度系数,而是把颗粒与几何表面每一次接触产生的接触能量累积起来,再乘以磨损常数,换算成该面元上的磨损深度。

接触能量分两部分:法向接触能量来自颗粒侵入壁面时的法向变形,切向接触能量来自颗粒沿壁面滑动的摩擦耗能。EDEM 在接触过程中把这两部分能量累加到几何表面上,Relative Wear 模型分别用法向磨损常数和切向磨损常数乘以对应能量,再除以参与计算的表面面积。核心关系可以简化成一句话:面元磨损深度约等于累积接触能量乘以磨损常数,再除以面元面积。

这一点决定了 Relative Wear 的两个特性。第一,它的输出是深度而不是体积,跟现场测量衬板凹坑深度的习惯一致,方便直接对比。第二,接触能量是求解过程中本来就有的量,不需要额外定义材料硬度,所以即使没有磨损实验数据,也能先把相对热点找出来。这也是相对磨损模型在散料输送设备仿真里用得最多的原因。

需要强调,磨损常数不是电阻率那种物理常数,它是把能量换算成深度的比例系数。没有做过磨损标定实验之前,Relative Wear 算出来的深度绝对值不能直接当寿命用。同一个标定常数下,不同几何方案之间的相对对比才是可信的,这也是它叫 relative 的原因。

2.2 哪种工况该选 Relative Wear:适用场景与两个反面案例

我一般建议在颗粒冲蚀磨损占主导的场景优先选 Relative Wear。典型的有溜槽弯头、圆管输送、料斗壁、筛板、混合机叶片、除尘管道。这些场景里颗粒对壁面的作用时间短、接触频繁,磨损由大量法向冲击和小位移滑移累积而成,接触能量的累计逻辑与真实磨损机制吻合。

两个反面案例我会避开。一个是辊压机这类高应力碾压场景,颗粒被夹在两个表面之间产生强挤压,磨损以表面疲劳和塑性变形为主,单纯累计接触能量会低估接触区域的真实应力状态。另一个是带有明显犁沟切削的工况,比如尖锐颗粒在大载荷下划过金属表面,切向接触能量虽然很大,但简单的线性比例关系吃不消这种磨损机理。这类场景要么换 Archard Wear 加标定,要么用专门的高应力磨损模型。

选型顺序应该是:先看磨损机理,再看能不能做标定。筛分、输送、清扫这类低应力冲蚀磨损,选 Relative Wear;压力集中且材料变形明显的工况,先别急着定模型,把机理搞清楚再选。下面这张表是两者的核心差异,做方案评审时可以直接贴进报告。

对比项Relative WearArchard Wear
输入参数磨损常数,可法向/切向分开设磨损系数、材料硬度
输出量磨损深度磨损体积或深度
绝对值可信度依赖磨损常数标定同样依赖材料参数标定
相对对比能力同一常数下横向可比同一材料参数下横向可比
典型场景冲蚀磨损、输送部件滑动磨损、有明确硬度和载荷的场景

补充一个常被忽略的点:很多公开案例默认用 Relative Wear,不是因为它的绝对精度更高,而是因为对于没有磨损实验数据的项目,先用它把磨损趋势和热点找出来是最稳妥的第一步。等趋势对了,再考虑做磨损常数标定,把绝对值校正到工程可用范围。这一步做没做,直接决定这份仿真能不能上评审会。

3. 从 SolidWorks 建模到 EDEM 导入:圆管几何简化与接触参数准备

3.1 EDEM 计算圆管能不能用圆柱代替:简化边界与保留条件

被问得最多的问题是:EDEM 计算圆管能不能用圆柱代替?答案是能,但有前提。EDEM 只关心颗粒和壁面的接触,圆管的壁厚、倒角、法兰在磨损计算里不参与接触,所以用 EDEM 自带的 Cylinder 基本体,或者在 SolidWorks 里画一个圆柱内腔都可行。

有三个边界条件必须守住。第一,导入的必须是颗粒扫掠到的内表面,如果几何是外圆柱面,颗粒接触不到壁面,磨损必然为零。第二,圆柱轴向长度要比入口出口各多留一段,我一般至少多留 2 到 3 倍管径,避免进出口边界效应把磨损云图带偏。第三,圆柱面网格分段要足够密,EDEM 里默认圆柱体的面片数偏少,直接算磨损会看到锯齿状云图。

具体建模上,简单圆管直接在 EDEM 的 Geometry 面板加 Cylinder,设置内外半径和长度,两端再加入口出口面。变径管、弯头这类复杂流道,用 SolidWorks 画好内腔实体再导入。做方案对比时,几何改动尽量放在 CAD 阶段一次完成,不要到 EDEM 里再拼凑,后者的布尔操作有时会留下碎面。

3.2 SolidWorks 导入 EDEM 的格式选择与几何自检

SolidWorks 导入 EDEM 常见三种格式:.step、.igs、.stl。我优先用 .step,实体导入后 EDEM 能正确识别封闭体,做颗粒填充和体积统计不容易出问题。.igs 也能用,但曲面较多时容易产生碎面,导入后要花时间清理。.stl 只有表面三角形,文件小、兼容性好,但法线方向和缝隙问题要在导入前处理掉。

格式优点风险我的选择
.step实体信息完整,稳定性高文件大优先
.igs兼容旧系统碎面多备用
.stl文件小,通用法线易反、可能有缝隙复杂曲面再用

几何自检清单我每次必过一遍:一是法线方向,EDEM 里几何的接触面必须指向颗粒所在的一侧,导入后可以在 Geometry 面板查看法线朝向,反了就用翻转功能修正。二是重叠与碎面,SolidWorks 输出前用检查几何工具跑一遍,EDEM 导入后看信息栏有没有报错面。三是封闭性,做颗粒填充或后续耦合时,封闭体才能正确计算体积和边界。

导入后还要看一眼三角形数量。几何三角形网格是磨损结果的空间分辨率,三角形太粗,磨损云图就一块一块的,热点位置会偏移。这个检查项很多人漏掉,等结果出来才回头改网格,白白多跑一遍算例。

3.3 接触参数预备:颗粒-壁面参数对磨损结果的影响顺序

接触模型我常用 Hertz-Mindlin (no slip) 搭配 Relative Wear,这是一套很稳的组合。摩擦参数对磨损结果的影响有顺序之分:颗粒与壁面的滚动摩擦系数对堆积角影响最大,静摩擦系数影响料堆形态,恢复系数影响冲击能量的耗散。做磨损方案对比时,先固定颗粒与壁面的静摩擦和滚动摩擦,只改磨损常数和几何,结果才有可比性。

一组能跑通的最小参数可以这样起步:颗粒直径 5 到 10 毫米,密度 1500 到 2500 公斤每立方米,剪切模量 1e7 到 1e8 帕,恢复系数 0.3 到 0.5,静摩擦 0.5 到 0.7,滚动摩擦 0.05 到 0.15。剪切模量不要太低,否则颗粒在重力下过度变形,接触能量虚高,磨损深度被成倍放大。

如果是几十微米的细粉,这套参数不适用,细粉必须考虑 van der Waals 力或 JKR 接触模型。Relative Wear 仍然可以挂在这些接触模型上,但磨损常数要重新标定,不能沿用散料工况的数值。这里最容易踩坑,后面避坑章节还会单独讲。

4. 配置 Relative Wear 模型:参数表、仿真时长与磨损导出脚本

4.1 Relative Wear 模型参数表:名称、含义、推荐初值

在 EDEM 里启用磨损模型的常见路径是:在 Physics 面板选择接触模型时,把 Relative Wear 勾选上;再到 Geometry 面板对目标几何开启磨损累计,填入磨损常数。这里给一组我用过的初值,适用于毫米级散料颗粒的冲蚀磨损:

参数含义常见初值备注
法向磨损常数单位法向接触能量对应的磨损深度1e-10 到 1e-9先给下限,跑短算例看量级
切向磨损常数单位切向接触能量对应的磨损深度与法向相同或 1.5 到 2 倍切向滑移占优时调大
磨损计算开关是否对指定几何累计磨损开启只对被冲刷面开启
磨损数据保存间隔后处理导出磨损结果的频率每 0.1 秒或 0.2 秒不必每个时间步都写盘

法向磨损常数和切向磨损常数可以分开设,这是相对磨损模型里很实用的地方。多数颗粒冲蚀场景以法向撞击为主要损伤来源,但溜槽磨损几乎都是切向滑移贡献更大。初值先设成一样,跑完看接触能量统计里法向和切向的比例,再把占优势的方向权重调大。如果切向能量是法向的五倍,切向磨损常数可以先给法向的两倍,再按试算结果微调。

注意:磨损常数在不同 EDEM 版本里的单位有过调整,填数之前先在一个短算例里确认量级,不要直接抄老项目的数值。

4.2 用 Python 统计磨损 CSV:最大磨损深度与高风险三角面

EDEM 后处理可以把磨损结果导出成 CSV,字段一般包含几何名称、三角形编号、磨损深度、接触能量等,不同版本字段名会有差异。拿到 CSV 后用 Python 做统计,比在界面里翻云图更快。下面是我常用的处理脚本。

import pandas as pd import glob # 假设 EDEM 导出的磨损数据是按固定时间间隔保存的多个 CSV # 字段常见为: Geometry, Triangle_ID, Wear_Depth, Contact_Energy # 你的导出表头可能不同,先 df.head() 确认字段名 files = sorted(glob.glob("wear_export_*.csv")) records = [] for f in files: df = pd.read_csv(f, sep=",", skipinitialspace=True) df = df.dropna(subset=["Wear_Depth"]) # 每个文件代表一个保存时刻,取该时刻的全局最大磨损深度 record = { "time_tag": f.replace(".csv", ""), "max_wear": df["Wear_Depth"].max(), "hot_triangle": df.loc[df["Wear_Depth"].idxmax(), "Triangle_ID"], "hot_geometry": df.loc[df["Wear_Depth"].idxmax(), "Geometry"], } records.append(record) summary = pd.DataFrame(records) # 看看磨损热点是否随时间换了位置 print(summary.sort_values("max_wear", ascending=False).head(10)) # 按几何部件汇总:sum 适合看整体磨损量,max 适合看哪里最先磨穿 by_geo = df.groupby("Geometry")["Wear_Depth"].agg(["sum", "max", "mean"]) print(by_geo.sort_values("max", ascending=False))

逻辑说明:第一个循环按文件逐个统计最大磨损深度以及它所在的三角形和几何部件,得到的是磨损热点的迁移过程。如果最大磨损位置在仿真中后期从入口移到了弯头外侧,说明流场还没稳定就下结论了。第二个 groupby 按部件汇总,sum 反映总磨损量,max 反映极端磨损点,两个指标结合看,比只看云图颜色更直观。

参数说明:CSV 有时是制表符分隔,读取时把 sep 改成 "\t"。Wear_Depth 单位通常是米,统计出 1e-4 这类数值时要先换算成毫米再汇报。dropna 是为了过滤还没开始累计磨损的空网格,避免参与计算。

4.3 仿真时间与保存频率:算力花在哪才能看到磨损趋势

磨损仿真的时长和工况的物理时长往往不是一回事。常见做法是先跑足够长的物理时间让颗粒完全充满流道,再观察磨损增量的变化。判断标准是:把后四分之一时段的磨损云图与后八分之一时段的做差,如果热点位置和量级基本不变,说明磨损趋势已经稳定,可以停算。这个方法比拍脑袋定时长靠谱得多。

保存频率方面,颗粒轨迹数据可以少保存,磨损数据按固定间隔输出一份就够了。磨损是累计量,最终关心的是总磨损分布,不需要每个时间步都写盘。如果保存频率太高,一个算例几十 GB 写盘,后处理也卡。

时间步长方面,从瑞利时间步长的 20% 到 30% 起步。磨损结果对时间步长比运动轨迹更敏感,因为接触能量的累计依赖接触力的峰值,时间步长太大,接触力峰值被过高估计,磨损深度会被成倍放大。先用小算例、短时长跑两组不同步长做对比,确定步长不敏感之后再放长算例。

5. 磨损结果判读:从磨损云图、接触能量到衬板更换周期

5.1 磨损云图的读法:热点位置、梯度方向与网格伪影

先看热点位置和现实是否吻合。弯头磨损一定在弯头外侧,而且通常在离开弯头一到两倍管径的位置最严重,因为颗粒转向后仍贴着外壁滑行。如果云图里热点出现在入口段或几何接缝处,先检查是不是颗粒初始下落造成的冲击伪影。常见做法是仿真前 0.5 秒设为稳定阶段,不计入最终磨损统计。

再看梯度方向。磨损深度变化剧烈的区域,往往是颗粒速度方向突变的位置,比如变径段、挡板前端。梯度本身比绝对值更有工程意义:梯度大的地方,衬板磨损会呈沟槽状,现场更容易发现;梯度平缓的地方,磨损是均匀减薄。

如果云图出现三角形碎块样的锯齿,那不是物理规律,是网格伪影。回到几何三角形网格,把热点区域加密再算。判断准则是颗粒直径的三分之一左右,热点区加密到这个尺度后,云图平滑度明显改善,最大磨损深度也会更接近真实值。

5.2 从磨损深度换算更换周期:一个简单公式与修正思路

磨损深度换寿命的公式很简单:更换周期等于可接受磨损深度除以单位时间磨损深度。单位时间磨损深度来自仿真结果折算,等于仿真累计磨损深度除以仿真对应的物理时长,再乘以现场工况与仿真工况的颗粒通量比。

举个例子:仿真跑了 10 秒,通过颗粒 100 公斤,最大磨损深度 0.05 毫米。实际设备一小时通过 36 吨颗粒,单位时间磨损深度就是 0.05 毫米乘以 360 倍再除以 3600 秒。这个数字只说明量级,不代表真实寿命,直接报给生产部门会翻车。

修正思路有两个。第一,做磨损常数标定:取一块现场换下来的旧衬板,测最大磨损深度,反推这个工况下的有效磨损常数,用标定后的常数重跑,寿命预测才可靠。第二,修正颗粒通量:仿真的入口质量流率要和现场一致,不要为了省算力把入口流量调小,否则折算系数变大,误差放大。没有标定条件时,寿命计算只做相对排序,不做绝对值汇报。

5.3 相对磨损的对比逻辑:只用相对值下结论

相对磨损模型的强项是方案对比,不是绝对值预测。改衬板角度、改导流板位置时,用同一组接触参数、同一个磨损常数,跑两套几何,比较的是热点位移了多少、最大磨损深度降了百分之多少、磨损总量在整个部件上的分布是否更均匀。

结论可以写成“新方案最大磨损深度降低 28%,热点从弯头外侧移到直管段”,这就够支撑决策了。注意材质对比时不能沿用同一个磨损常数,不同材料的耐磨性差异必须通过标定体现在磨损常数里,否则对比的是几何差异而不是材料差异。这一点在方案汇报时一定要讲清楚,否则评审会质疑数据的可比性。

6. 避坑:EDEM 磨损模型常见的 5 个翻车点与排查顺序

6.1 磨损结果全为零:先查接触模型和几何开关

现象:仿真正常跑完,后处理磨损云图一片空白。原因通常有三个:接触模型列表里没有挂 Relative Wear,只选了 Hertz-Mindlin;磨损常数填了 0;几何面板里没开启对应几何的磨损累计。这三个问题我全遇过,排查顺序是:Physics 面板确认接触模型,Geometry 面板确认磨损开关,最后看磨损常数。

解决起来也快:接触模型那里勾上 Relative Wear,几何属性里把磨损开关打开,常数给一个非零初值。只要这三处有一处没配对,结果就是零。还有一个小概率原因,几何表面被颗粒完全接触不到,比如导入了外圆柱面,这类几何问题在云图里会表现为整个面都是零,不单独出现在某个区域。

6.2 磨损深度异常偏大:时间步长和磨损常数量级

现象:磨损深度达到毫米级,而衬板实际几个月才磨穿。原因有两个:磨损常数数量级填错,比如把 1e-10 填成 1e-5;或者时间步长过大,接触力峰值虚高,接触能量被成倍放大。

解决方法是先跑一个短算例,只看 0.5 秒物理时间内的最大磨损深度。如果 0.5 秒就磨掉 0.1 毫米,大概率是常数或步长有问题。把时间步长压到瑞利步长的 20% 以内再试,如果深度明显下降,说明步长是主因。短算例确认量级后再放长算例,不要一上来就全尺寸跑。

6.3 磨损云图呈锯齿状:几何三角形网格的锅

现象:云图颜色一块一块的,像马赛克。原因:几何表面三角形太大,磨损深度按三角形统计,一个三角形内部只有一个值,热点被抹平,边缘又呈阶梯状。

解决:只把磨损热点对应的几何部件细化,三角形边长压到颗粒直径的三分之一左右,效果已经很直观。全模型无脑细化只会让计算变慢,热点区域加密对结果的影响远大于其他区域。修改网格后重新跑,通常能看到云图平滑度明显改善,最大磨损深度数值也会变化。

6.4 磨损集中在入口段:先分清楚料垫还是伪影

现象:磨损最大位置一直在入口,后续管段几乎没磨损。原因分两种:第一种是颗粒刚进入时速度方向突变,冲击造成伪磨损,属于初始不稳定段;第二种是真实料垫效应,颗粒堆积在入口形成缓冲层,后续颗粒不再直接冲击壁面。

区分方法:看入口段的颗粒速度云图。速度接近零且有堆积,是料垫;速度很大但磨损集中在落点附近,是初始冲击伪影。料垫是真实保护,不要试图消除它,反而应该保留在结果里;伪影则要把统计起点放到流场稳定之后。这个区分直接影响结论,因为料垫效应本身可能是设计的一部分。

6.5 换了接触模型后磨损跳变:磨损常数不通用

现象:同一个几何,从 Hertz-Mindlin 换成 Hertz-Mindlin 加 JKR,或换成带黏结的接触模型,磨损结果跳变。原因:接触模型变了,接触能量的数值分布就变了,磨损常数不是与接触模型无关的通用参数。

解决:每次换接触模型都要重新做磨损常数标定,哪怕几何和颗粒完全不变也不能沿用旧值。接手别人的算例时,先问清楚磨损常数是在哪个接触模型下标定的,直接移植很容易得到看起来合理、实际错得离谱的磨损深度。

出现磨损异常时,我建议按这个顺序排查:几何开关、接触模型、时间步长、磨损常数、网格密度。这个顺序覆盖了我踩过的大部分坑,能省下不少重跑时间。

7. 进阶用法:EDEM 与 Fluent 耦合接口下的磨损联动

7.1 耦合时磨损数据落在哪一侧

气力输送、风选设备这类气固两相流场景,颗粒运动受气流主导,单靠 EDEM 单独仿真,颗粒轨迹偏差大,磨损热点位置也会偏。EDEM 与 Fluent 耦合接口要做的事,是把 Fluent 算出的流场力传给 EDEM 颗粒,EDEM 把颗粒位置和接触信息传回给 Fluent,两者在同一套时间推进里交替更新。磨损计算始终在 EDEM 侧完成,颗粒与壁面的接触能量由 EDEM 接触模型累计,磨损常数和磨损模型设置也都在 EDEM 里。

耦合设置里最容易出问题的是几何对应关系。EDEM 几何和 Fluent 壁面必须使用同一坐标系和一致的命名,否则接口把壁面力映射到 EDEM 几何时会错位。错位的结果是磨损热点整体偏移,而且很难从云图里看出来。

7.2 耦合工况的磨损验证习惯

2023 版之后的耦合接口在几何识别和网格映射上做得更稳,壁面映射错位的概率低了很多,但耦合仍然比单 EDEM 更容易发散。时间步长不匹配是最主要的诱因,常见做法是先在 EDEM 里把物理时间步长固定,Fluent 侧按 EDEM 步长的整数倍推进。如果一开始就挂磨损模型,初始不稳定段的大接触力会累计出一块假磨损区。

我实际跑的流程是:先不挂磨损模型,把气固两相流场跑到稳定,再在 EDEM 里开启磨损累计。跑完耦合版之后,再和单 EDEM 的结果对比热点位置。如果耦合版热点和单独版差别超过一个管径,说明气流对磨损分布影响显著,单独版结论不可用;如果热点基本重合,说明重力主导,单 EDEM 就够,没必要花耦合的算力。

每次跑完,把磨损云图截图和最大磨损深度记录按工况命名存档,我习惯命名带日期和几何版本号。这样三个月后回看算例,还能一眼知道当时改了什么、为什么改。这条习惯帮我避过不少重复劳动,希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询