拓冰建站拓冰建站
首页 / 资讯中心 / 正文

一文讲透轮轨磨耗仿真:从赫兹接触到踏面演变

简介面向铁路轮轨接触分析与磨耗预测场景这份资源提供基于半赫兹接触理论的计算脚本适用于需要精确求解轮轨接触斑形状、接触压力分布及踏面磨耗规律的工程师与研究人员。半赫兹算法在经典赫兹理论基础上引入实际几何与接触面积考量可更贴近真实运营条件为踏面磨耗管理提供定量与定性依据。包内共1个文件为MATLAB脚本.m格式压缩包整体仅1KB轻量易用便于直接运行或二次开发。脚本涵盖了轮轨几何参数定义、材料属性设置、接触压力分布计算等关键环节可帮助使用者快速复现半赫兹接触分析流程。目前已有217人学习浏览对于从事车辆轨道耦合动力学、轮轨接触仿真或踏面磨耗预测的读者具有直接参考价值可作为算法验证与教学示例使用。1. 轮轨磨耗仿真的经典落点接触斑与踏面更新的耦合打开xiangliang_midh.rar这个压缩包时不要指望里面有开箱即用的图形界面。这是典型的科研轮轨磨耗计算框架核心逻辑围绕三个点用赫兹接触理论求接触斑椭圆参数在接触斑内离散计算法向压力分布再用磨耗模型把局部磨耗量映射回踏面廓形。整个循环迭代起来才能得到一条踏面随运行里程的演变曲线。值得说明的是这套路径与 McNab、Braghin 等团队提出的离散磨耗模型一脉相承区别只在于接触求解的近似程度和磨耗系数的选取方式。适合的人群有两类一是做车辆动力学与轮轨关系方向的工程师需要把磨耗仿真从定性走向定量二是维护策略相关的研究者想用磨耗深度判断镟修周期。新手最容易被卡住的地方并非理论本身而是接触斑坐标系的定义与踏面廓形数据格式之间的对齐。若坐标方向不一致后续所有磨耗分布的计算都会整体偏移。2. 赫兹接触模型在磨耗仿真中的参数落地2.1 为什么磨耗计算必须从赫兹接触斑开始磨耗是接触面的局部物理过程磨耗体积正比于局部摩擦功。如果只知道垂向轮轨力而不知道力在接触面上的空间分布就无法区分踏面边缘与踏面中心处的磨耗差异。赫兹接触理论恰好提供了一个封闭解两个弹性体在法向载荷下接触斑为椭圆法向压力在椭圆内呈半球形分布。虽然真实轮轨接触往往偏离赫兹假设如轮缘贴靠时但对于踏面中部磨耗这一主要场景赫兹解已经足够支撑磨耗量级与趋势的判断。赫兹接触参数中长半轴a与短半轴b必须先行求出。轮对与钢轨构成两个半径差异明显的弹性体等效曲率半径与曲率差决定了接触斑的扁平程度。计算流程是求轮轨在接触点处的主曲率差、查表获得系数m,n再由法向力解得接触椭圆参数。经典做法是让程序自己迭代曲率差对应系数而不是手工查表因为踏面磨耗后接触点会移动每次迭代接触位置都在变化。2.2 接触斑椭圆参数求解的最小可运行代码常见做法是用 Python 脚本完成这项计算代码量不大但能直接输出接触斑长短半轴与最大压应力。以下代码适用于轮对踏面与钢轨顶部之间的赫兹求解坐标方向符合 UIC 标准import math def hertz_contact(N, R_w, R_r, E2.1e11, nu0.3): # N: 垂向轮轨力(N), R_w: 车轮滚动圆半径(m), R_r: 钢轨顶部半径(m) E_star E / (2 * (1 - nu**2)) # 等效曲率半径假设车轮踏面曲率与钢轨顶部曲率 R 1.0 / (1.0 / R_w 1.0 / R_r) # 依据曲率差查表此处以固定系数为例 m, n 2.5, 0.55 a m * (3 * N * R / (4 * E_star)) ** (1.0 / 3.0) b n * (3 * N * R / (4 * E_star)) ** (1.0 / 3.0) p0 3 * N / (2 * math.pi * a * b) return a, b, p0 a, b, p0 hertz_contact(80000, 0.46, 0.3) print(f长半轴: {a*1000:.2f} mm, 短半轴: {b*1000:.2f} mm, 最大压应力: {p0/1e6:.2f} MPa)参数说明R_w取名义滚动圆半径R_r取钢轨顶面曲率半径。若求解轮缘接触场景则需要引入轮缘曲率半径并替换R_r。E_star为等效弹性模量对钢/钢接触约1.155e11 Pa。m,n系数与两接触体的曲率差F(rho)强相关工程上多采用数值迭代逼近简化处理时固定取值会带来 10% 以内的接触斑面积误差。验证方法很简单将输出的接触斑短半轴与实测压痕宽度对比误差通常应小于 5%。如果偏差过大优先检查钢轨顶部半径是否为 300 mm 的 60 kg/m 钢轨标准值。2.3 接触斑内压力离散与网格划定的注意事项接触斑为椭圆映射到踏面纵向与横向上需要将椭圆离散为矩形网格。这里有一个常见误区直接用等间距正方形网格套进椭圆。正确做法是以接触斑中心为原点沿列车前进方向纵向和踏面横断面方向横向建立局部坐标系然后按相同步长划分网格仅保留落在椭圆内部的网格点。若椭圆长轴与前进方向存在夹角如曲线通过时的冲角还需要引入坐标旋转矩阵。多数教学代码忽略这一步但磨耗结果会因此出现明显的对角偏置。网格疏密的选择应以短半轴方向至少 20 个节点为准。过密的网格会让磨耗深度更新变慢而收益甚微过疏则会让接触区边缘的压力梯度失真。实际工程里我常用的方案是横向按踏面廓形原始采样间距0.5 mm宽范围做均匀离散纵向则依据车速积分确定切向力分布这样能保证压力积分后与轮轨法向力 N 的误差小于 1%。3. 踏面廓形数据读取与坐标对齐磨耗计算的第一道关3.1 文本踏面数据格式中隐含的坐标系约定从 rar 包解出的程序输入侧通常是一个简单的文本文件每一行记录一组坐标值。常见格式有两种一种是y, z两列y 为离车轮中心的横向距离z 为踏面垂向高度另一种是带轮缘内侧基准的形式第一列是序号第二列是角度或弧长参数。拿到数据后第一件事是确认坐标原点。绝大多数中国铁道车辆轮对采用距轮缘内侧面 70 mm 处为名义滚动圆而这个点的横向坐标在数据文件里往往并不等于 0可能是 70 或 470取决于是否包含轮缘宽度。坐标对齐出错是新手最隐蔽的坑。磨耗计算的核心假设是更新踏面廓形时接触斑中心对应的横向位置与名义滚动圆之间的横向偏移量必须参与换算。若数据文件中坐标起点为轮缘根部而程序中接触斑横向坐标以滚动圆为原点这时每轮迭代都等于在错误位置磨掉材料甚至可能把轮缘根部削去。处理这类问题一般做法是先数值求导找到轮缘根部最低点以此为基准重建坐标系。轮缘根部是踏面廓形上斜率突变的位置参考以下流程awk {print $1, $2} tread_origin.txt | sort -k1 -n tread_sorted.dat排序后用 Python 加载计算相邻点斜率斜率绝对值最大的点即为轮缘根部import numpy as np data np.loadtxt(tread_sorted.dat) y, z data[:, 0], data[:, 1] slope np.diff(z) / np.diff(y) root_idx np.argmax(np.abs(slope)) 1 print(f轮缘根部位置: y{y[root_idx]:.2f} mm, z{z[root_idx]:.3f} mm)这段代码找到一个参考点但还没有完成对齐。需要再将所有横向坐标减去该处 y 值并旋转踏面使名义滚动圆切线保持水平。旋转时注意角度极小通常不超过 1 度使用y y * cos(theta) - z * sin(theta)即可。之后数据文件便统一到了接触计算可用的坐标系中。3.2 接触点搜索与 B 样条拟合插补踏面文件的原始采样点往往间隔 0.5 到 1 mm直接用于接触点搜索会出现步进感导致接触斑中心位置跳动。工程上常用对踏面廓形做旋转体展开再按极角重新采样的方式获得平滑曲线。偶次 B 样条或者带光滑因子的 PCHIP分段三次 Hermite 插值是可靠选择。PCHIP 的优势是不产生过冲对带有微小凹坑的磨耗踏面更友好样条则更利于后续求导计算曲率。接触点搜索的实质是求轮心与轨头之间的最小距离。把踏面廓形旋转一周得到三维曲面滚动圆平面上任一点处轮轨廓形最小法向间隙对应位置即为接触点。速度优化技巧是先在上一步接触点位置附近做局部搜索再结合轮对摇头角、侧滚角修正横向偏移量。这样做比全廓形扫描快一到两个数量级尤其适用于整个磨耗循环里接触点缓慢移动的场景。4. 磨耗计算循环从局部滑移到踏面廓形迭代更新4.1 Archard 磨耗模型与摩擦功模型的选择差异磨耗计算的核心是将接触斑内每个网格点的局部磨耗量累加为踏面轮廓的材料去除。目前通用两类模型Archard 模型与摩擦功模型。Archard 模型认为磨耗体积正比于法向力与滑动距离的乘积除以材料硬度ΔV k * N * s / H其中k为磨耗系数需根据接触压力大小分档取值其分档值直接引用自耐磨实验统计H为材料硬度。摩擦功模型则引入摩擦系数认为磨耗量与摩擦功W μ * N * s线性相关。两种模型的本质差异在参数标定逻辑Archard 更偏物理磨损机制摩擦功模型更容易嵌入车辆动力学联合仿真。赫兹接触用于压力离散时两者均可采用但注意磨耗系数必须与所用压力单位、时间步长相匹配。不同论文中常见的k 1e-5到1e-3 mm³/(N·m)实际取值要根据车轮材质、润滑状态与速度等级选择。做过实验标定的团队会用自己的实测数据外部使用者则优先参考近五年 UIC 相关的磨耗实验数据库。4.2 单个磨耗循环的时间推进与累积里程换算一个完整的磨耗循环包含接触斑求解 → 压力分布计算 → 局部滑移量计算 → 磨耗深度累加 → 踏面廓形更新。由于一次磨耗循环对应的运行里程通常设定为 100 到 1000 公里所以磨耗深度偏小时需要放大系数但这会引起稳定性问题。典型做法accum_distance 0.0 tread_profile load_profile(tread_aligned.dat) while accum_distance total_distance: contact solve_hertz(tread_profile, wheel_load) slip_dist compute_slip(contact, creepage) wear_depth archard_wear(contact.pressure, slip_dist) if np.max(wear_depth) 0.01: # 单次磨耗深度阈值 accum_distance step_distance tread_profile[:, 1] - wear_depth tread_profile smooth_profile(tread_profile) else: step_distance * 0.5 # 自适应步长缩减这段循环里自适应的步长控制很重要。单次磨耗深度超过 0.01 mm 时说明步长过大磨掉的量会在接触斑下一次求解时引起压力突变进而导致迭代发散。常见的错误是把wear_depth直接加到旧踏面上而不做平滑这会让廓形产生锯齿下一次赫兹接触求解时接触点位置跳动磨耗结果呈振荡状。平滑的强度也需要注意平滑过大等于抹掉了真实磨耗特征平滑过小则数值噪声累积。合理的方案是每 10 次循环做一次 Savitzky-Golay 滤波窗口长度取横向采样间距的 15 倍。磨耗系数分档与大轮轨力的关系可以在循环外用参数表固化。推荐保存如下格式的配置表压力范围(MPa)磨耗系数 k (mm³/N·m)适用工况 4001.4e-5低磨耗区直线段400 - 8005.0e-5中等磨损小半径曲线 8001.2e-4剧烈磨损轮缘贴靠实际使用时根据接触斑最大压应力p0动态选择该网格点的磨耗系数这样能反映接触斑中心与边缘磨损程度不均的现象。另一个容易被忽略的是滑动距离的计算方法蠕滑率一般由车辆动力学输出若没有动力学仿真条件可以用 Kaller 简化法根据轮轨纵向蠕滑率ξ与接触斑长半轴估算局部滑移分布s |ξ * x|其中 x 是从接触斑中心到当前网格点的纵向坐标差。4.3 踏面更新后赫兹参数的自适应修正磨耗一旦改变廓形原始求解中的曲率半径R_w与曲率差F(rho)都会变。只更新踏面高度而不更新接触参数循环会在几十次迭代后明显偏离真实物理过程。推荐每轮循环重新计算接触点处的主曲率。由踏面廓形求取曲率半径的方法为对平滑后的廓形求二阶导数取接触点局部的曲率倒数。钢轨廓形保持不变时轮轨曲率差映射到赫兹系数m,n可通过三次多项式拟合曲线实现避免查表文件的复杂解析。此刻要格外注意坐标对齐问题踏面高度更新发生在局部坐标系里而赫兹求解需要的是以轮心为原点的绝对坐标。更新时要将磨耗量转换回绝对坐标系——如果磨耗分布函数是基于接触斑局部横向坐标y_local定义的回到踏面全局廓形时必须加上接触点中心横向偏移量y_center。我在实际计算中见过不少人因为这一步忘记偏移导致磨耗区域被整体平移了 30 至 50 毫米完全偏离预期的踏面中部位置。5. 验证与收敛性判断的工程技巧整个磨耗框架搭建完成后最先要做的是单步 Kummer 类验证即用已知接触斑的长短半轴核对数值求解得到的压力合力是否与输入轮轨力一致。误差控制在 1% 以内说明压力离散网格与积分路径没有系统性错误。随后进行磨耗深度总量校验利用 Archard 模型的体积磨耗公式反算总磨耗体积再与踏面廓形体积减少量对比两者差超过 5% 时需要检查局部滑移计算中蠕滑率与接触斑长半轴的取值是否正确。收敛性判断的实用技巧是监视每次循环后踏面最大磨耗深度的变化率。当连续 20 个循环的最大磨耗深度增量比率小于 0.1% 时可以认为磨耗趋于稳定。要注意这里并非迭代计算收敛而是仿真中踏面渐趋稳定。如果曲线表现出发散出现无法收敛的振荡先检查接触斑中心横向位置的移动幅度。这类振荡通常源于踏面平滑不够或步长自适应过于激进。最后一个技巧是设置滚动圆标记点。在初始踏面数据中人为记录名义滚动圆处高度每轮循环输出该点高度差即可得到踏面垂直磨耗随里程曲线。多数踏面磨耗数据表提供的就是这个指标它可用于与实测镟修周期匹配。当单次运行里程达到镟修阈值时程序输出的廓形可以直接作为后续多轮磨耗模拟的初始踏面而不必重新对齐坐标——这能节省大量重复劳动也便于批量测试不同磨耗系数下的镟修周期差异。本文还有配套的精品资源点击获取
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门