第四章:路感模拟策略

4.1 路感模拟的目标与挑战

路感模拟,说白了就是让驾驶员在方向盘上感受到“真实”的反馈。你想想看,线控转向取消了机械连接,方向盘和车轮之间没有物理硬连接了。那驾驶员怎么知道车轮转了多少?路面是平是颠?这就全靠路感模拟电机来“演戏”。

我个人习惯把路感模拟的目标归纳为三点:

  • 真实感:模拟传统液压助力或电动助力的手感,不能太轻飘,也不能太死沉。
  • 信息传递:把轮胎与路面的摩擦、回正力矩、路面不平度等信息,通过方向盘传递给驾驶员。
  • 安全边界:在极限工况下(比如高速、冰雪路面),路感要能提醒驾驶员“嘿,注意了,快失控了”。

但实现起来,挑战不小。我在项目中遇到过最大的坑是——延迟。线控系统从传感器采集信号,到控制器计算,再到电机输出力矩,整个链路有延迟。如果延迟超过20ms,驾驶员就会觉得方向盘“粘手”或者“慢半拍”。嗯,这里要注意,延迟是路感模拟的头号敌人。

避坑指南: 我曾经在一个项目中,路感模拟算法在仿真环境里跑得完美,一上车就感觉方向盘像“泡在水里”。查了三天,发现是CAN总线负载率太高,导致信号周期抖动。后来我把路感控制任务从CAN通信改到了独立的高速SPI总线,问题才解决。

4.2 基于车速与转向角的路感曲线设计

路感曲线,就是方向盘力矩与车辆状态之间的映射关系。最核心的两个输入是车速转向角

为什么是车速?你想想看,低速时(比如倒车入库),我们希望方向盘轻一点,一只手就能搓动。高速时(比如120km/h巡航),方向盘必须沉,防止误操作导致车辆失控。

为什么是转向角?转向角越大,轮胎侧偏角越大,回正力矩也越大。所以方向盘力矩应该随转向角增加而增加。

我常用的设计方法是二维查表法。横轴是车速,纵轴是转向角,表格里填的是目标方向盘力矩值。

车速 (km/h) 转向角 0° 转向角 90° 转向角 180° 转向角 360°
0 0.0 Nm 1.2 Nm 2.0 Nm 3.5 Nm
30 0.0 Nm 1.8 Nm 3.0 Nm 5.0 Nm
60 0.0 Nm 2.5 Nm 4.2 Nm 6.8 Nm
120 0.0 Nm 3.8 Nm 6.0 Nm 9.5 Nm

这张表只是示例。实际标定时,每个点都要在实车上反复试。我建议曲线设计遵循一个原则:力矩随车速和转向角的变化要平滑。如果某个区域斜率突变,驾驶员会感觉“咯噔”一下,非常突兀。

小技巧: 查表法虽然简单,但插值算法要选对。我个人习惯用双线性插值,计算量小,效果也够用。高阶插值(比如三次样条)虽然更平滑,但在嵌入式MCU上跑起来有点吃力。

4.3 电机力矩控制算法(PID、前馈)

有了目标力矩,接下来就是怎么让电机精确输出这个力矩。这里我主要用两种算法:PID前馈控制

PID控制是基础。目标力矩和实际力矩的差值,经过比例、积分、微分三个环节,输出给电机驱动器。但PID有个毛病——响应慢。尤其是积分项,调不好容易超调或者震荡。

我在项目中遇到过一个问题:PID参数在常温下标定得好好的,冬天零下20度时,电机摩擦力矩变大,PID积分项拼命往上加,结果方向盘回正时“过头”了,来回晃了两下才稳住。后来我加了积分限幅变积分系数,才把这个问题压下去。

前馈控制是解决响应慢的利器。说白了,就是根据目标力矩和当前电机状态,直接算出一个“预估值”加给电机,剩下的偏差再用PID去微调。

前馈的公式其实不复杂:

// 前馈力矩计算
// 输入:目标力矩 targetTorque, 电机转速 motorSpeed
// 输出:前馈补偿力矩 feedforwardTorque

float calculateFeedforward(float targetTorque, float motorSpeed) {
    // 摩擦力补偿:与转速方向相关
    float frictionTorque = FRICTION_COEFF * sign(motorSpeed);
    
    // 惯性补偿:与加速度相关(这里简化处理)
    float inertiaTorque = INERTIA_COEFF * (targetTorque - lastTargetTorque) / DT;
    
    // 阻尼补偿:与转速成正比
    float dampingTorque = DAMPING_COEFF * motorSpeed;
    
    return frictionTorque + inertiaTorque + dampingTorque;
}

你看,前馈把摩擦力、惯性、阻尼这些已知的物理特性都提前补偿了。PID只需要处理剩下的“未知扰动”。这样整体响应速度能提升30%以上。

核心要点: 前馈控制依赖精确的模型参数。如果参数不准,前馈反而会引入误差。我建议在台架上先做一次系统辨识,把电机和转向机构的摩擦力、惯量、阻尼系数都测出来。

4.4 路感模拟的标定与调优

标定,是路感模拟从“能工作”到“好开”的关键一步。说白了,就是调参数。

我一般把标定分为三个阶段:

  1. 台架标定:在HIL(硬件在环)台架上,把路感曲线、PID参数、前馈参数都粗调一遍。这个阶段主要验证算法逻辑是否正确,有没有bug。
  2. 场地标定:在封闭场地里,让专业驾驶员反复试驾。低速、中速、高速、紧急变道、蛇形绕桩……每个工况都要跑。驾驶员反馈“这里轻了”、“那里重了”,我就在线改参数。
  3. 道路标定:在公共道路上,覆盖各种路面(柏油路、水泥路、搓板路)。这个阶段主要调“路感细节”,比如路面颠簸的传递强度、回正速度等。

标定过程中,我最常用的工具是CANoeINCA。实时监控方向盘力矩、电机电流、车速、转向角等信号。一边开车一边改参数,效率很高。

注意: 标定不是一次性的。车辆使用久了,转向机构的摩擦力会变化,电机也会老化。我建议每半年或每2万公里做一次路感复标。否则,新车时手感很好,开两年就变得“松松垮垮”。

最后,我想说一句:路感模拟没有“最优解”,只有“最适合”。不同车型、不同用户群体,对路感的偏好完全不同。运动型车要“硬朗”,舒适型车要“柔和”。作为工程师,我们要做的就是提供一套可配置、可标定的平台,然后根据需求去调。

个人经验: 标定路感时,别光看数据。一定要亲自上车感受。数据再漂亮,手感不对就是不对。我每次标定完,都会在车里开上半小时,感受每个细节。有时候,一个参数调0.1Nm,手感就完全不一样了。
路感模拟策略核心逻辑 输入信号 车速 / 转向角 / 电机状态 路感曲线查表 目标力矩计算 控制算法 PID + 前馈控制 电机输出 实际方向盘力矩 反馈:实际力矩 vs 目标力矩 标定与调优 台架标定 → 场地标定 → 道路标定 参数:路感曲线 / PID系数 / 前馈系数 / 摩擦力补偿

上面这张图,是我自己总结的路感模拟核心逻辑。从输入信号,到查表得到目标力矩,再到PID+前馈控制输出,最后通过标定闭环调优。每一步都环环相扣,缺一不可。


公众号:蓝海资料掘金营,微信deep3321