
做车辆动力学仿真的朋友应该都有体会车轮不圆这类踏面缺陷在Simpack里处理起来最麻烦的其实不是仿真计算本身而是怎么把“缺陷”合理地加进模型。有人上来就说直接改轮对型面有人建议加不平顺激励还有人干脆用激振力去怼——各有各的道理但做出来的效果差异很大尤其在阶次、频率、幅值这些关键指标上稍不注意就会得到完全失真的结果。这篇文章我用自己的实操记录把Simpack里生成车轮不圆的几种常见方法整理一遍包括谐波不平顺、IRR文件叠加、扁疤冲击激励这几条路径也把波长与频率换算、仿真步长匹配、后处理校核这些容易踩坑的细节一并说了。适合正在做轮轨关系、车辆动力学或轨道激励响应的同学参考不管你是刚接触Simpack的新手还是已经在用轨道不平顺做过几轮仿真的老手应该都能从这里拿到一点可以直接抄作业的东西。1. 先说结论Simpack里模拟车轮不圆到底在做什么1.1 车轮不圆不是“车轮形状变了”那么简单车轮不圆听起来是个几何问题——踏面半径不再恒定滚动一圈时轮径忽大忽小。但在Simpack的建模逻辑里如果真去把轮对型面改成非圆形状会带来一连串麻烦接触几何计算量暴涨、轮轨接触点跳跃、数值稳定性变差而且Simpack默认的轮对是刚体踏面型面一旦不是旋转体很多内置算法都不再适用。所以工程上做车轮不圆仿真默认思路是“等效替代”。即便你在现场实测得到的是车轮圆周方向的不圆度数据真到了Simpack里也往往把它换算成一条“等效的轨道不平顺”或者“轮轨接触几何偏差”来施加。这个思路的本质是从车辆响应角度看车轮每转一圈产生一次径向偏差和轨道在该位置产生同样幅值的垂向不平顺对轮轨力、车体加速度的激励效果是近似等价的。这里要补充一个关键认知等效替代不是百分之百严格的物理等价但对大多数工程问题——比如评估多边形磨耗对车体振动的影响、对比不同阶次磨耗的恶劣程度、做参数敏感性分析——精度完全够用。真要研究轮轨蠕滑、接触斑内部应力分布那就得回到三维接触模型不是本文讨论的范围。1.2 为什么要用“等效激励”而不是直接改轮对我在初学阶段也犯过这个执念总觉得不把车轮改成椭圆就不算“真正模拟车轮不圆”。后来被一个现场案例点醒了某型车在200 km/h左右出现异常抖动实测车轮8阶多边形幅值0.06 mm。按照“接触等效”的思路把8阶多边形换算成等效轨道不平顺仿真出来的车体垂向振动频谱和实测几乎吻合。原因不复杂。车辆系统在垂向和横向的动力响应主要取决于轮轨界面上的“相对位移激励”而不是这个激励来自谁。轮对转一圈在踏面上产生n个波接触点位置就经历n次起伏轨道在那一段有n个波长相同的起伏轮轨之间的几何约束变化是相似的。这个等价关系可以用一个简单的式子表达车轮多边形阶次 n πD / λ其中 D 为车轮直径λ 为等效不平顺波长所以做仿真时不需要去啃非圆型面建模的硬骨头把精力放在“如何准确表达激励的频率成分和幅值”上反而更容易逼近真实情况。后面要讲的几种方法本质上都是在做同一件事把车轮缺陷表达成Simpack能理解、能稳定计算的激励输入。2. 准备工作与建模思路2.1 环境与模型基础先说环境。Simpack版本不同菜单名称和文件格式会有一点差异但整体逻辑是一致的。我用的是较新的版本后处理分析用的是Simpack自带的Time Series和FFT模块不需要额外装工具包。如果你机器上装了新版Simpack界面应该和我说的差别不大如果是老版本比如9.x部分窗口名称会变但关键词还是那些Track、Irregularities、Excitation。模型方面严格来说做车轮不圆仿真最好用完整的车辆动力学模型——至少包括一个转向架和两条轮对这样轮对之间的激励耦合才能体现出来。但如果只是做机理研究比如单纯看某一阶多边形磨耗对轮轨垂向力的影响单轮对模型加一个质量块和一个悬挂系统也够用。我的经验是先用简化模型把方法跑通再换整车模型验证这样定位问题快得多。这里有一个必须强调的点仿真开始前一定要确认轨道模型已经正确激活了不规则激励通道Irregularities。很多新手仿真跑完发现结果干干净净什么都没有90%的情况是轨道不规则激励根本没开。这个开关在Simpack里是显式启用的后面我会在具体操作里再说一次。2.2 三种实现路径对比Simpack里生成车轮不圆我实际用过并验证过结果可靠的方法有三种这里列个表把它们的特点说清楚。方法实现方式适用场景优点缺点谐波不平顺Harmonic Irregularity直接在软件界面里添加一条正弦/余弦型不平顺单一阶次多边形磨耗机理研究参数定义直白、后处理频谱干净表达不了多阶叠加的复杂缺陷IRR文件法用外部文本文件定义多段不平顺可叠加多种波长和幅值现场实测数据的拟合复现、复合格不圆能模拟任意组合的多边形需要掌握文件格式参数容易写错瞬态冲击函数 / 信号输入用信号函数或外部数据定义一次性的径向偏差脉冲扁疤、剥离、冲击型缺陷能模拟非周期性瞬态事件需要额外换算不能直接用轨道不平顺窗口选定哪条路取决于你要研究什么缺陷。周期性磨耗和扁疤是两类完全不同的激励前者是持续存在的周期激励后者是突然发生的瞬态冲击。建模上如果不能一开始就分清这一点后面很容易把扁疤也当成周期信号去加导致仿真结果里出现一堆虚假的谐波峰值。3. 实操示例一谐波不平顺模拟多边形磨耗3.1 参数换算波长、幅值与运行速度的三角关系先做最基础也最容易出错的一步把车轮多边形参数换算成等效不平顺参数。计算公式就是我前面提到的那个阶次表达式把它写成波长形式就是等效波长 λ πD / n举个例子。某标准动车组车轮直径 D 0.86 m磨耗后常见的多边形阶次是 8 阶和 18 阶。8阶对应的等效波长就是λ8 3.14 × 0.86 / 8 ≈ 0.338 m这组数字有用在哪如果你仿真速度是 300 km/h约 83.3 m/s那么8阶多边形产生的激励频率就是f V / λ 83.3 / 0.338 ≈ 246.5 Hz这个频率值非常有参考价值。它告诉我两件事第一后处理FFT频谱里应该能在这个频率附近看到峰值如果看不到说明模型有问题第二246 Hz附近对应的车体或构架模态如果存在就容易引发共振这也是现场抖动问题的分析入口。幅值怎么定直接用车轮不圆度实测数据。假设实测径向跳动最大值是0.05 mm那等效不平顺的幅值可以直接取0.05 mm。但这中间有个隐含细节车轮圆周方向的不圆度是“每转一圈跳变一次”而等效不平顺是“车辆每前进一个波长起伏一次”两者有时间上的对应关系但空间相位不一定完全一致。好在我们做随机相位的谱分析一般只看幅值谱不看相位所以幅值直接等效是可接受的近似。3.2 在Simpack中创建谐波不平顺操作路径以我手头这个版本的界面为准进入轨道模块在Track Setup中找到Irregularities设置窗口添加一条新的不平顺类型选择Harmonic。关键的输入参数有几个Amplitude幅值对应上面算出的等效不平顺幅值单位通常为m。0.05 mm要写成5e-5 m。Wavelength波长按上面计算填0.338 m。Phase Angle相位角一般填0如果做多轮对仿真想设置轮对间相位差这里就要单独算。Direction选择Vertical这是垂向不平顺。如果还关心横向激励可以再建一条横向的。这里我要特意提醒一个新手特别容易掉进去的坑Simpack里波长Wavelength和频率Frequency是二选一的输入方式你填了波长软件会自动根据车速算频率。但这个“自动”是在你填好速度之后才算的。如果你速度没赋对仿真结果里频率位置全部错位而且错得让你毫无察觉。我就犯过这个错在整车模型里跑完才发现激励频率和测试对不上后来排查半天才想起来当时新建模型时轨道初始速度没更新。3.3 仿真结果怎么看跑完仿真后最直接的后处理手段就是看轮轨垂向力时域曲线和它的FFT频谱。如果加了8阶多边形理论上垂向力时域曲线应该出现周期性的波动波动周期等于车轮转一圈的时间。300 km/h下轮径0.86 m轮子转速约为30.8 r/s所以波动周期约32.5 ms也就是246.5 Hz的倒数。时域上看波形应该是正弦波叠加在静态轮重上的结果。频域上看FFT应该在246 Hz附近出现明显峰值。这里还有个细节要注意Simpack输出的采样步长如果太大FFT结果会出混叠。比如你用2 ms的固定步长输出最高可分析频率只有250 Hz恰好和246 Hz挨着边频谱里就会出现对不准的问题。所以我一般把时域输出步长设在1 ms以内条件允许的话用0.5 ms这样FFT能看到更高的频率范围多阶谐波也能一并看清。4. 实操示例二IRR文件法叠加多阶谐波4.1 IRR文件格式与关键字段谐波不平顺方法只适合单阶分析但实际测出来的车轮不圆很少是单一阶次我见过最典型的案例是8阶主导、16阶和24阶共存彼此幅值还不一样。这种场景用界面手工添加就太繁琐了而且每次改参数都要重新进菜单效率极低。IRR文件法就是为这种需求准备的。IRR文件是Simpack轨道不平顺的标准描述文件本质是一个记录多段不平顺定义的文本文件。以我常用的格式为例它看起来像这样SIMERP_IRR WHIZZ_IRR BEGIN SEGMENT TYPE HARM LENGTH 10.0 AMPLITUDE 0.00005 WAVELENGTH 0.338 PHASE 0.0 END SEGMENT不同版本对文件头的识别可能有差异但段结构的关键词基本一致。每一段就是一条不平顺分量包含类型、波长、幅值、相位这些要素。文件放在工作目录下然后在Simpack轨道不平顺设置里选择导入IRR文件就完成了加载。我在写这个文件的时候经验是建议给每一段加注释说明这一段的物理含义比如哪一段对应8阶磨耗、哪一段对应16阶。这不是为了好看而是等到你换个人接手或者三个月后自己回来看的时候能快速回忆起当初的设计意图。我自己以前不写注释后来调试整车模型时对着十几个段翻来覆去数参数后悔得不行。4.2 多阶叠加的写法与注意事项多阶叠加就是把多个HARM段写进同一个IRR文件。假设要模拟8阶0.05 mm 16阶0.03 mm的组合文件里就写两个段波长分别填0.338 m和0.169 m幅值分别填5e-5 m和3e-5 m。这里有个相位问题的细节需要特别说清楚。如果两阶多边形在车轮圆周上的“波峰”是随机分布的那么它们的相对相位关系会影响时域波形的形状但对总体的振动能量和频域特征影响不大。做保守评估时我一般把相位都设成0让各阶次同相叠加激励最强、结果最保守。如果做更精细的分析可以先根据实测数据提取各阶的相位信息再填到IRR文件里。另一个容易踩的坑是LENGTH字段。这个字段定义了该段不平顺在空间上的延续长度如果设得太短仿真还没跑完一条不平顺就用完了结果里会出现突然“失激”的现象。我通常把LENGTH设置成覆盖整个仿真里程比如跑1 km就设1000 m省得后续还要检查段边界。4.3 适用场景复合型车轮不圆IRR文件法的最大价值在于复现现场测试数据。之前做个一个项目实测数据给的是车轮径向跳动随角度的曲线把它FFT之后得到各阶次幅值再把幅值超过阈值的阶次直接生成IRR段一次就能把整条实测特性搬进模型。这个思路做起来也不复杂实测数据是随角度均匀分布的一圈采样点对它做FFT得到各阶次幅值选择合适的阈值比如大于0.01 mm的阶次然后再转换成各段波长和幅值写入IRR文件。注意这里在空间上已经隐含了轮径换算所以波长公式还是用λ πD/n来算。不过说实话IRR文件法也有限制它对表述“非整数阶”的缺陷比较吃力。比如车轮上有一处局部小凹坑它对应的不是一个周期信号IRR文件用HARM段就表达不了这种就得用下一节说的瞬态冲击法。5. 实操示例三扁疤与冲击型缺陷5.1 扁疤缺陷的特征与建模思路扁疤和车轮多边形在物理形态上有本质区别多边形是遍布整个圆周的长波磨耗扁疤是轮踏面上局部的一小块“磕平”区域。车辆每转一圈扁疤与钢轨接触一次产生一次瞬态冲击时间上是一个窄脉冲。为什么扁疤不能用谐波不平顺模拟因为谐波不平顺是周期正弦能量集中在单一频率上而扁疤冲击的能量分布在很宽的频带内——频域里对应的是一个低频主体加一串高频衰减成分。如果用谐波去等效冲击特征完全丢失轮轨力和车内噪声都会严重低估。建模思路是这样扁疤造成的效果可以等价于在轮轨接触点上附加一个“瞬态的径向偏差信号”这个信号随车轮转角周期性出现每转一圈一次但每次只持续很短的弧长。直接改写轮对型面太麻烦我常用的办法是在轮对运动激励里加一段由信号函数控制的瞬态位移。5.2 用信号函数构造瞬态冲击输入Simpack里信号函数Function可以定义为时间或空间变量的表达式扁疤激励我可以构造这样一个过程用一个“脉冲加指数衰减”的形式描述单次冲击然后以车轮转频为周期重复。一种比较简化但有效的表达式是δ(t) A × [exp(-t/τ1) - exp(-t/τ2)]在一个周期内有效周期结束后归零并重复其中A是冲击幅值τ1控制衰减时间常数τ2控制上升沿。参数怎么定扁疤长度L沿踏面弧长、运行速度V共同决定了冲击持续时间大约为 L/V。比如扁疤长30 mm车速83.3 m/s单次冲击持续约0.36 ms。上升沿和衰减时间常数可以按持续时间的1/5到1/3来估算然后再对标现场冲击响应波形微调。实际操作上Simpack不一定要求你把数学表达式写成这种解析形式。你还可以用外部数据文件来定义这一段“等效径向偏差随车轮转角的曲线”把实测的扁疤轮廓直接数据导入软件在求解时会自动插值。这个方法更贴近实际情况我一直比较推荐。需要注意一个数值计算层面的坑扁疤冲击持续时间极短对应的激励频率非常高。如果仿真积分步长太大冲击过程就被完全平滑掉了仿真结果里只能看到一个很小的波动完全体现不出冲击载荷的强度。我的经验是至少要在冲击持续时间内设置8到10个积分步。还是上面那个0.36 ms的例子积分步长至少要取0.04 ms量级。这个步长对求解速度的影响非常大整车模型跑一分钟可能要好几个小时但为了冲击特征正确这个代价值得付。6. 参数校核、常见坑与排查技巧实录6.1 频率校核一个都不能少无论用哪种方法生成车轮不圆仿真之前做一次“设计频率”校核我把它当作强制流程。校核就三步根据轮径和车速算出车轮转频f_rot V / (πD)根据多边形阶次n算出激励频率f_n n × f_rot对比这个频率与模型固有频率避开完全重合或者在重合时重点关注以D 0.86 m、V 83.3 m/s为例转频约30.8 Hz8阶激励频率约246 Hz。如果模型里构架某个刚体模态恰好也在245~250 Hz那仿真结果里会出现非常高的振动放大这是需要特别关注的设计工况而不是模型错误。这个校核我建议做成一张表贴在工位旁边每次调整参数后先更新表再跑仿真。以前我没有这个习惯跑完看到巨大的轮轨力就以为模型有问题反复调试折腾了两天后来才发现是因为某次把手滑把8阶波长填成了0.338 m其实是0.338 m而构架模态附近正好有共振。这种事很折磨人但用表格提前算一遍就能避免。6.2 步长、积分器与采样频率的匹配Simpack仿真求解本身用的是变步长积分器但输出结果时可以按固定步长采样。这个“输出步长”和“求解步长”是两回事很多新手在这里容易混淆。我的建议是分两层来控制求解精度由Simpack自动控制一般不用管输出步长要手动设到足够密保证后处理FFT能覆盖目标频率范围。根据采样定理要分析的频率上限是采样频率的一半所以如果关心500 Hz以下的激励输出采样频率至少1000 Hz也就是输出步长不超过1 ms。如果涉及扁疤这类高频冲击至少0.1 ms。这个原则同样影响仿真时长设置。要看到足够多的周期信号仿真时长至少要包含被关注最低频率的5到10个周期。比如要看清30.8 Hz的转频分量仿真时长至少0.2~0.3 s如果还要做频谱平均建议跑到1 s以上。有的整车模型1 s仿真要跑很久我一般分阶段跑先跑短时程验证单阶激励响应再跑长时程提取统计特征。6.3 常见问题速查表把我在实际使用中遇到过的典型问题和排查思路整理成一张速查表方便你仿真时对照。现象可能原因排查与解决频谱里找不到预期激励频率轨道不规则激励开关未启用检查Irregularities窗口确认已经激活并选择了对应方向频率位置偏差很大车速设置错误或波长/阶次换算有误重新核对λ πD/n 和 f V/λ确认模型初始速度时域波形毛刺严重、数值发散冲击型激励步长太大减小求解/输出步长确保冲击持续时间内有足够积分步仿真激励突然消失IRR文件的段长度不够把LENGTH设成大于等于仿真里程多条不平顺叠加后总幅值过大各段相位设置不当或同相叠加检查相位设置必要时用随机相位重跑后处理FFT峰值不明显输出采样率过低导致混叠降低输出步长提高采样频率这个表看着简单但每一条背后都是实打实调试出来的。比较典型的是“激励频率找不到”这个问题我前前后后遇到过四五次里面有两次是开关没开一次是车速没赋对一次是IRR文件路径写错了软件没加载上。你如果遇到类似情况按表里从前往后逐条排查基本能覆盖掉90%的原因。再补充一个独家经验Simpack的日志文件和消息窗口一定要养成看的习惯。很多加载错误、参数异常它其实都会提示只是提示信息不显眼藏在一大堆正常输出里容易被忽略。我后来养成了一个强迫症每次仿真结束先翻一遍消息窗口有没有WARNING或ERROR有就顺手解决再继续下一步。这个习惯帮我省了很多返工时间。最后再分享一个小技巧。做车轮不圆仿真时先不要一上来就上整车模型我都建议先用“单轮对单刚体质量块”的极简模型把所有参数跑通激不激励、频偏不偏、频谱对不对全部验证一遍确认无误后把参数原封不动迁移到整车模型。这样每次出问题不用在几百个自由度里找原因定位速度会快非常多。这个流程我沿用到现在基本没被模型调试拖过太久的后腿。