当轮胎模型遇上Carsim:一场力学与工程的较量
汽车魔术公式轮胎模型下图中是对应的仿真结果与Carsim输出的结果对比图。 模型中出了魔术公式轮胎模型外还包括: 1. 垂向力计算模块 2.滑移率计算模块 3.轮胎侧偏角计算模块 其中轮胎侧偏角计算模块后轮侧偏角的计算输出与Carsim输出的值有些出入前轮计算结果吻合度较高。 垂向力模块计算结果也不错。 最终计算得到的轮胎模型侧向力计算结果在双移线工况下且侧偏角吻合度较好时候与Carsim输出的侧向力结果如图5对应的纵向力如图6。 角阶跃工况下侧向力和纵向力和Carsim对比图如图8、9。 图3和7是双移线工况及角阶跃工况下垂向力计算结果和Carsim自带的比较。 由于轮胎模型输入值为计算得来的并不是Carsim直接输入因此会有些许出入 轮胎模型垂向力侧偏角滑移率为轮胎模型验证赠送。在车辆动力学仿真里轮胎模型就像个难伺候的主儿。这次用魔术公式建模时前轮侧偏角刚摆平后轮又给我玩起了数值漂移。看着Carsim的输出曲线在后轮侧偏角区域跳起华尔兹我对着屏幕啃完第三包辣条决定把整个计算链条拆开揉碎。先看垂向力计算这个地基模块。悬架运动学方程配合路面激励写出来的Python代码活像个弹簧跳舞机pythondef vertical_force(z, dz, k, c):Fz k(z - road_profile) cdzreturn np.clip(Fz, 0, 8000) # 防止悬架击穿这个简单的线性阻尼模型居然和Carsim自带的复杂模型打了个平手图3/7看来在非极端工况下老司机们说的悬架调校八分靠弹簧还真有点道理。滑移率计算更像个速度侦探游戏。轮速传感器和车速的微妙差异被我写成实时更新的滑移侦探matlab% 滑移率侦探事务所function lambda slip_ratio(vx, omega, Reff)汽车魔术公式轮胎模型下图中是对应的仿真结果与Carsim输出的结果对比图。 模型中出了魔术公式轮胎模型外还包括: 1. 垂向力计算模块 2.滑移率计算模块 3.轮胎侧偏角计算模块 其中轮胎侧偏角计算模块后轮侧偏角的计算输出与Carsim输出的值有些出入前轮计算结果吻合度较高。 垂向力模块计算结果也不错。 最终计算得到的轮胎模型侧向力计算结果在双移线工况下且侧偏角吻合度较好时候与Carsim输出的侧向力结果如图5对应的纵向力如图6。 角阶跃工况下侧向力和纵向力和Carsim对比图如图8、9。 图3和7是双移线工况及角阶跃工况下垂向力计算结果和Carsim自带的比较。 由于轮胎模型输入值为计算得来的并不是Carsim直接输入因此会有些许出入 轮胎模型垂向力侧偏角滑移率为轮胎模型验证赠送。if abs(vx) 0.1lambda (omegaReff - vx)/max(abs(vx), abs(omegaReff));elselambda 0; % 低速保护模式endend这个处理低速抖动的保护策略让纵向力计算图6在20km/h以下工况依然稳如老狗。真正的大戏在侧偏角模块上演。前轮的阿克曼转向几何计算完美匹配Carsim但后轮就像被施了魔法![后轮侧偏角对比曲线]盯着这个0.3度的稳态误差我突然意识到问题可能藏在载荷转移的耦合计算里。在方向盘阶跃输入时图8/9后轮侧向力的相位滞后暴露了侧倾刚度系数的建模盲区。魔术公式的魔性此时显露无疑——当侧偏角超过6度时那个神秘的sin(arctan)组合项开始暴走。不过有趣的是在双移线工况下图5虽然输入参数有0.5%的偏差侧向力输出却像经过自动修正般贴合参考曲线这大概就是非线性模型的魔力所在。折腾完整个模型终于明白轮胎仿真的精髓在于抓大放小。那些0.x度的偏差就像轮胎接地面上的橡胶颗粒——可以追求极致但别指望完全清除。下次调模型时或许该备两包辣条一包喂给代码一包祭给玄学的轮胎动力学。