Simpack车轮不圆定义实战:三种方案与参数换算

发布时间:2026/9/21 2:11:16
Simpack车轮不圆定义实战:三种方案与参数换算 搞轨道车辆的不管是车辆动力学仿真、轮轨噪声预测还是疲劳寿命评估总会碰到一个绕不开的东西——车轮不圆。车轮跑一段时间后踏面径向尺寸不再是恒定值偏心、多边形、局部扁疤全都会冒出来在Simpack里把这些几何偏差定义进模型是很多仿真的第一步也是最容易卡住的一步。这篇实战笔记给你三套能落地的定义方案附完整参数设置、频率换算公式和避坑记录照着填就能跑起来省去你翻文档试错的几个小时。1. 先想清楚你要定义的是哪种“车轮不圆”很多新手一上来就找“哪里能画个不圆的轮子”其实Simpack里的车轮不圆不是简单地改几何外形而是通过改变轮轨接触关系来模拟真实服役状态。动手之前先把概念捋清楚后面参数才不会填错。1.1 车轮不圆的三种典型表现车轮不圆在工程上通常分成三类每一类的成因和激扰特征都不一样。第一类是偏心也就是阶数n1的情况。车轮名义中心和实际几何中心不重合镟修时装卡误差、轮毂孔磨损都会导致在时域信号里看是一个完整圆周一圈一个波频率等于车轮旋转频率。这类问题最直观但也最容易被当成“轮胎动平衡”去理解模型里其实就是一个1阶谐波。第二类是多边形化也是最常见的研究对象。车轮踏面沿圆周方向出现周期性波磨常见阶数有2阶椭圆化、35阶低频多边形和1620阶高频多边形。高阶多边形往往和轮轨噪声、钢轨波磨耦合在一起仿真时最需要精细表达因为它直接影响轮轨接触几何和蠕滑力。第三类是局部缺陷比如扁疤、剥离、擦伤。这类缺陷在频域上不是单一谐波更像脉冲冲击严格模拟需要实测轮廓或者局部去材料建模。不过很多工程分析中也会把它近似成一组谐波叠加。1.2 为什么仿真不能直接“把轮子画扁一点”有的同事问过我直接在CAD里把车轮画成椭圆导入Simpack不就行了理论上可行但实际没人这么干。原因是轮轨接触计算依赖的是踏面廓形和钢轨廓形的匹配关系你直接改轮子外形接触点位置、接触角、等效锥度全变了但你又很难精确控制这些变化是否对应真实的不圆形态最后结果是“看似不圆实则乱改”。Simpack的做法是在名义圆形车轮的基础上以轮轨接触的名义滚动半径为中心叠加一个径向偏差Radial Deviation。这个偏差的幅值通常只有几十微米到几百微米相对于轮径本身可以忽略但它足以产生明显的轮轨激励。所以仿真里定义不圆本质是在定义“半径偏差函数”不是把整个轮子重新画一遍。1.3 三种定义方法的选型逻辑基于上面的概念Simpack里常用的定义思路有三条方法一使用轮轨模块内置的OOROut-of-Roundness功能直接在轮对上填阶数、幅值、相位系统内部按谐波展开计算接触几何。这是最贴合物理本质的做法新版本Simpack强烈推荐。方法二使用激励器Excitation在轮对自由度上直接施加谐波位移绕开接触几何等效模拟不圆带来的垂向激扰。适合快速扫参和台架对标。方法三把车轮不圆的几何偏差等效成轨道垂向不平顺叠加到轨道不平顺文件里。适合整车刚柔耦合模型里批量跑工况也是老版本没有OOR模块时的通用变通方案。选型没有绝对优劣关键看你关注的是轮轨作用力、车辆响应还是控制算法。下面逐一说清楚。2. 方法一用内置OOR模块直接定义车轮径向偏差这个方法最推荐因为它是Simpack原生支持的方式计算时会把不圆纳入轮轨接触几何左右轮、相位差、多阶叠加都能直接表达不需要额外做等效变换。2.1 打开OOR设置的完整路径不同版本菜单位置稍有差异但关键词一致记住“Out-of-Roundness”或“OOR”就行。常规路径是打开轨道车辆模型 → 进入轮对子结构Wheelset→ 找到轨道车辆/轮轨接触相关页签比如Track、Wheel/Rail Contact→ 找到“Wheel OOR”或“Wheel Out-of-Roundness”设置项。勾选启用后面板上一般会出现类型选择、参考半径、谐波分量列表。我做模型时习惯先把轮对相关参数检查一遍尤其确认“名义滚动半径”Nominal Rolling Radius填的是0.43m这种真实值而不是默认的1.0m。这个值直接影响后续频率换算如果不填对后面怎么调都不对。2.2 关键参数逐一拆解阶数、幅值、相位OOR面板里最常见需要填的参数有四个我挨个说明。谐波阶数Order / Harmonic n一个圆周内有多少个波峰。1阶是偏心2阶是椭圆18阶就是18个波峰。这个值决定了激扰频率计算公式后面统一讲。径向偏差幅值Amplitude不圆波形的最大径向偏差单位务必注意。Simpack默认SI单位制下长度单位是米0.05mm要填5e-5。我见过有同事直接填0.05结果是5厘米的偏差仿真直接发散。相位Phase谐波的初始相位角。单位可能是弧度也可能是度取决于界面设置填之前先看一眼单位。左右轮同轴时相位差往往设置为0同相或π反相这会明显影响车辆垂向和侧滚响应。参考半径Reference Radius名义滚动半径即不圆偏差为0时的车轮半径。计算接触和频率时都以它为准。实际示例参数如下表假设是地铁B型车典型车轮参数数值说明名义滚动半径0.43 m依据实际轮径0.86 m谐波阶数 n18对应高频多边形化径向偏差幅值 A5e-5 m0.05 mm比较典型的严重多边形幅值相位 φ0 rad按需要调整左右轮相位差0 或 π取决于你研究垂向还是侧滚2.3 多阶叠加与左右轮相位怎么填真实车轮不圆很少是单一阶数通常是多个谐波叠加。OOR面板一般支持添加多行分量每一行填一个阶数、幅值、相位即可。多阶叠加时有一个容易忽略的点如果各阶分量在某个角度附近同相叠加径向偏差峰值不是各幅值之和就是很接近这样可能造出一个不真实的“大包”。我的经验是除非你有实测数据否则不要把所有分量的初始相位都填0。稍微错开相位比如每阶相位按0.5rad的间隔分布得到的轮廓会更接近随机磨耗的真实状态。左右轮的相位设置也很关键。同轴两个车轮如果都是18阶多边形但相位差为π那么车辆在直线上运行时会产生明显的侧滚激励如果同相则主要是垂向浮沉激励。做参数研究时这两个工况都要跑一遍。因为影响机理不同后面看频谱时不能只盯一个测点。2.4 设置完成后怎么确认生效参数填完别急着直接求解。我的习惯是先做一次预处理Pre-processing让Simpack重新计算轮轨接触几何然后检查输出信号里是否包含车轮旋转频率的倍频成分。简单验证方法让车辆以80km/h匀速直线运行输出轴箱或构架垂向加速度。按轮径0.86m、速度22.22m/s、18阶多边形计算旋转频率为8.22Hz预期激扰频率约148Hz。如果FSFFT频谱里在148Hz附近有明显峰值说明OOR设置已经生效如果什么都没有大概率是幅值单位或阶数填错了回过去检查。3. 方法二激励器等效位移法适合快速扫参这个方法适合前期快速估算不需要深入研究轮轨接触时很实用。它的思路很简单不圆的本质是让轮对产生周期性垂向位移激励那我干脆直接在轮对自由度上加一个谐波位移绕过整个轮轨接触过程。3.1 为什么会有这种方法方法一虽然准确但在某些场景下“过于准确”。比如你做控制算法开发只想看悬挂系统对周期性激励的响应特性轮轨蠕滑力和接触几何变化不是当前关注点又比如你要在同一个模型上快速扫10组幅值、20组频率用内置OOR需要反复重建接触几何而激励器法改一个参数就能跑一组。此外老版本Simpack没有内置OOR或者某些第三方轮轨模型没有开放这个接口这时候激励器法就是最短路径。3.2 激励器与谐波函数的设置要点具体操作打开Excitation激励器面板选择轮对左侧或右侧垂向自由度激励类型选Harmonic谐波然后填幅值和频率。幅值模拟不圆径向偏差取5e-5m。频率可以用固定频率单位Hz也可以用角频率单位rad/s。相位左右轮可独立设置反相时加到左轮是0右轮是π。如果左右轮同时加激励建议不要直接复制粘贴同一个激励器然后忘改相位。我曾经犯过这个错左右同相跑了半天侧滚响应一点没有最后才发现两个激励器参数完全一样相当于只激励了浮沉。3.3 一个关键注意点固定频率 vs 随距离周期激励器定义谐波时Simpack支持两种触发方式按时间触发固定Hz和按距离触发每走多少米一个周期。固定Hz在哪一种场景下用车辆匀速行驶、转速恒定时用固定Hz没问题计算简单高效。但车辆有加速或减速转速一直在变固定Hz就不对了——18阶多边形在低速时激扰频率低高速时激扰频率高它们之间是线性关系。这时应该用“随距离周期”的方式填波长而不是频率。波长计算很简单18阶多边形一轮转走一圈的距离等于车轮周长2πR一个圆周内均匀分布18个波峰所以波长为2πR/18。按R0.43m算波长约0.150m。用波长定义后Simpack会根据车辆当前速度自动换算频率加速工况也能准确模拟。3.4 适用边界这个必须说清楚激励器法虽然快但有一个绕不开的缺陷它完全绕过了轮轨接触计算。真实不圆会导致接触点位置移动、接触角变化、蠕滑率波动这些影响在激励器法里全部丢失。所以这个方法做“趋势性研究”可以做“轮轨作用力评估”就不靠谱了。我实际使用中这个方法主要用于两个场景一是悬挂系统参数快速迭代看阻尼对某频率峰值的影响二是控制算法硬件在环测试前的简化模型验证。真到了要评估车轮多边形对构架疲劳损伤的影响我至少会用方法一或者方法三。4. 方法三等效轨道不平顺叠加法整车耦合工况最常用第三种方法在工程上用得非常多尤其是整车刚柔耦合模型里叠加随机不平顺和周期性激扰时可以直接复用已有的轨道不平顺导入流程不用单独设置轮对模块。4.1 等效原理一句话把轮径变化“搬”到钢轨上一个不圆车轮在滚动过程中轮轨接触点的垂向位置随车轮旋转角度周期变化这个周期变化对车辆系统而言可以等效为钢轨表面有一个垂直方向的不平顺。推导很简单车轮半径可写为R(θ) R0 A·sin(nθ)滚过的接触弧长s约等于R0·θ所以垂向偏差近似为A·sin(n·s/R0)。用沿轨道里程x替代弧长s就得到等效轨道不平顺z(x) A·sin(2πx/λ)其中波长λ 2πR0/n。这句话翻译成操作我不用改轮子直接在轨道不平顺里加一个正弦波波长为车轮周长除以阶数幅值等于径向偏差幅值。物理上虽然把原因从“车轮”挪到了“轨道”但对车辆响应而言激励是等效的。4.2 手把手生成不平顺文件步骤如下我直接给一个Python脚本生成左侧车轮18阶多边形对应的轨道垂向不平顺文件import numpy as np R 0.43 # 车轮名义滚动半径单位m n 18 # 多边形阶数 A 5e-5 # 径向偏差幅值单位m track_length 100.0 # 轨道长度单位m dx 0.01 # 空间采样步长单位m建议不大于波长的1/20 lambda_ 2 * np.pi * R / n # 等效波长 x np.arange(0, track_length, dx) # 左右轮相位差设为pi模拟反相激励 z_left A * np.sin(2 * np.pi * x / lambda_) z_right A * np.sin(2 * np.pi * x / lambda_ np.pi) np.savetxt(oor_equivalent.txt, np.column_stack([x, z_left, z_right]), fmt%.6f, delimiter\t, headerx\tz_left\tz_right, comments)注意采样步长。波长只有0.15m如果空间采样步长取0.1m一个波只有1.5个点正弦波完全畸形了仿真结果当然不准。建议至少每个波长20个点即步长不超过0.0075m上面脚本取0.01m其实还有点稀疏稳妥起见可以取0.005m。4.3 在Simpack里导入与校验Simpack的轨道不平顺设置里选择从文件导入指定数据列对应关系第一列里程、第二列左轨垂向、第三列右轨垂向。插值方式选线性即可。导入后至少要校验三件事幅值查看不平顺曲线的峰峰值应该是2×A正负幅值都包含如果设置A5e-5m峰峰值就是1e-4m。波长两个相邻波峰之间的距离应该约等于0.15m。左右轨相位如果设了π相位差两个波形应该是错开的。如果你在Simpack里直接看时域图形觉得不明显可以把横轴单位切换成“里程”而不是“时间”周期性会直观很多。这组等效不平顺可以和随机轨道不平顺直接叠加前提是两个不平顺文件都作为轨道不平顺输入。这样整车模型里既能体现随机激励又能体现车轮不圆的周期性激扰而且不用改任何轮对参数。这是方法三最大的优势。5. 三种方法优缺点对比与参数换算速查方法都介绍完了做个横向对比方便你按项目需求直接选。5.1 三种方法对比表对比项方法一内置OOR方法二激励器法方法三等效不平顺建模速度快界面直填最快参数少中等需生成文件物理准确度高考虑轮轨接触低绕过接触计算中高等效激励但丢失接触变化多阶叠加支持简便需要多个激励器文件里叠加即可加速工况自动适应需要用波长定义自动适应整车随机不平顺叠加需要另外处理需要另外处理最方便直接叠加老版本兼容性新版本才有全版本全版本典型场景轮轨力、磨耗、接触细节控制算法、快速扫参整车刚柔耦合、批量工况如果你的Simpack版本较老没有OOR功能方法三是最接近物理真实的替代方案如果只是快速看趋势方法二效率最高如果项目要出报告、要对磨耗和接触应力发表结论方法一是唯一选择。5.2 频率、波长、阶数换算公式所有参数计算围绕三个公式建议直接抄进笔记车轮旋转频率f0 v / (2πR)单位Hzv为车速单位m/s第n阶多边形激扰频率fn n × v / (2πR)第n阶多边形等效波长λn 2πR / n以轮径0.86mR0.43m、速度80km/h22.22m/s、阶数18为例f0 22.22 / (2×3.1416×0.43) ≈ 8.22 Hzf18 18 × 8.22 ≈ 148 Hzλ18 2×3.1416×0.43 / 18 ≈ 0.150 m这三个数记得滚瓜烂熟你就不会在参数设置里瞎猜了。反过来如果你看仿真频谱在某个频率有峰值也能反推是几阶多边形这在故障诊断里非常有用。5.3 参数单位、单位制、方向这三件小事仿真翻车往往不是原理错而是细节错。三条经验单位制统一Simpack默认SI单位长度是米时间是秒。外部导入的CAD模型或不平顺文件如果来自EMU、FE模型可能是毫米单位务必先看模型单位再填参数。OOR幅值填0.05还是5e-5差的是一千倍。角度单位确认相位参数有的界面显示rad有的显示deg。0.5rad约等于28.6deg填错很隐蔽结果却差很多。方向与符号径向偏差的正负代表向外凸还是向内凹等效不平顺的正负代表钢轨抬高还是降低。定义时保持符号一致否则左右轮相位反了仿真结果和实测对不上。6. 常见问题与排查技巧最后整理一些实操中最常遇到的翻车现场和解决思路都是我实际跑模型时踩过的坑。6.1 仿真结果“没有反应”这是出现频率最高的问题。设置好OOR跑了仿真结果轴箱加速度和没设之前一摸一样。排查顺序检查OOR是否真的启用了不是“添加了参数”就算启用要确认开关是ON。检查幅值量纲是否写错5e-5m写成0.05m发散写成0.0005则太弱响应被噪声淹没。检查输出信号的采样频率如果采样率只有几十Hz148Hz的激扰根本采不到。至少设置500Hz以上最好1000Hz。确认后处理时没有误用低通滤波器把高频激扰滤掉。我用过某个后处理模板默认低通100Hz18阶多边形信号直接没了。6.2 仿真发散发散经常发生在步长设置不合理的时候。SIMPACK自带的SODASRT2求解器比较稳健但轮轨接触本身是高刚度非线性问题不圆幅值越大要求步长越小。我的经验是不圆幅值在5e-5m量级时最大步长0.0001s0.1ms起步如果把不圆加到0.5mm步长要降到0.00005s甚至更低。还有一招不要一开始就从0km/h加速到目标速度这个瞬态过程本身就是发散高发区。直接从目标速度的90%开始跑让系统先进入稳定状态再切入不圆激励能减少很多数值麻烦。6.3 结果偏大偏小和现场实测对不上先检查你的车速、轮径、阶数是否对得上。如果实测加速度主频是270Hz你的模型主频是148Hz大概率是阶数填了18但实际问题是33阶或者轮径填错了。频率对不上幅值肯定也对不上。还有相位问题。不少现场案例里多边形不是均匀分布在圆周上的有“局部集中”特征这时候单一谐波仿不出来。你要么从实测的轮径测量数据里提取各阶谐波幅值和相位做成真实的多阶叠加要么直接在OOR面板导入实测径向偏差序列。现在版本的Simpack支持导入外部不圆实测数据比单纯几个谐波更贴近真实。我个人的习惯是方法一和方法三搭配使用整车刚柔耦合、批量扫参用方法三因为叠加随机不平顺最方便到了研究轮轨接触力、磨耗、滚动接触疲劳这些精细问题就切回方法一让Simpack自己做接触几何计算。方法二我更多是写控制算法时临时用一下它快但别人拿它的结果去评估轮轨力时我会提醒一句“这个结果只适合看趋势”。设置本身不难难的是你清楚每一种方法在物理上保留了什么、丢掉了什么。把这层理解透参数自然调得明白。