
前几天在一段高速上做车辆横摆响应测试坐进副驾看数据时我脑子里又冒出那个老问题明明手边是一台有四个轮胎、带悬挂柔度、还会点头抬头的真实轿车为什么所有底盘工程师最后都把整车模型压成一辆“自行车”来聊这个“自行车”就是常说的汽车二自由度模型它把整车动态压缩到两个状态量上——质心侧偏角β和横摆角速度r把方向盘转角当作输入然后用一组线性常微分方程把“方向盘动了之后车身怎么转”这件事讲得明明白白。这篇文章不打算堆公式吓人我会从一套能直接抄到笔记本里的推导讲起把稳态转向、瞬态响应、频域手感以及实车标定时的坑都过一遍。适合三类人看刚入门的车辆动力学学生、正在做横向控制算法的工程人员以及想搞清楚“为什么有的车推头、有的车甩尾”的准车主。当然如果你只想看结论每章末尾我都给了工程判断上的经验注脚。1. 为什么整车动态可以被压成一台“自行车”先搞清楚“自由度”是什么意思。一个刚体在空间里有六个自由度沿x、y、z三个方向的平动以及绕这三个轴的转动。对乘用车底盘研究来说垂向跳动、俯仰、侧倾这些自由度当然重要但它们在“转向横摆动力学”这个问题上基本是配角。真正决定一辆车怎么转弯的是三个核心量沿车身侧向的速度v_y、绕竖直轴的横摆角速度r以及纵向速度v_x。二自由度模型的“二”指的就是把v_y或者等价地用β表示和r当作状态变量v_x当作给定的常数参数。把四轮轿车压成自行车思维过程是这样的把前轴左右两个轮胎合并成一个位于前轴中心的等效轮胎后轴两个轮胎也合并成一个位于后轴中心的等效轮胎车身则简化为一根连接前后轴中心的刚性杆件。轴距还是原来的轴距质心位置还是原来的位置但任何关于车宽、左右轮载荷差的信息都被丢掉了。这个模型在英文里叫single-track model或者bicycle model国内工程圈一般叫“单轨模型”。为什么丢掉这么多信息还能用因为车辆转弯时的横向动力学在侧向加速度不高一般小于0.4g的线性区里主要矛盾就是前后轴侧偏力和横摆力矩的平衡。左右车轮的差异本质上是通过“等效侧偏刚度”这个参数被吸收的。比如高速过弯时外侧轮胎载荷大、内侧载荷小合成出来的侧偏刚度既不是内侧也不是外侧的原始值而是一个介于两者之间的等效值。悬挂变形引起的转向角变化、左右车轮前束角差异带来的副作用也都被工程处理成有效侧偏刚度的修正量。这个“吸收”的过程正是二自由度模型能够长寿的真正原因——它不是忽略细节而是把细节转换成了可以标定的参数。这辆车压成自行车之后能做什么在工程上干三件大事。第一底盘平台定义阶段用它可以算稳态转向特性也就是判定理中常说的“不足转向、中性转向、过度转向”。第二做主动安全控制ESP、VSC这类横摆稳定性控制系统的基本参考模型就是二自由度模型控制器要实时算“期望横摆角速度”算完之后跟实际测量值比对。第三自动驾驶横向控制很多车道保持和路径跟踪算法里的前馈项就来自这个模型的稳态增益。你说它简单但它确实是整个底盘调校和横向控制的地基。2. 坐标系、转向比与侧偏角符号约定不清方程根本没法看二自由度模型的推导本身不难难在符号约定。各个教科书和论文里侧偏角、横摆角速度甚至转向角的符号都可能相反。我在实际项目里吃过亏把一套欧洲论文的公式套到国内某个测试车辆的标定脚本里前两轮数据怎么看怎么别扭最后发现是它们的侧偏刚度定义带了正负号差异力的方向反了。所以推导前先把这几条约定焊死。我采用的约定如下车辆坐标系x轴指向车头前方y轴指向驾驶员左侧z轴按右手定则指向车顶。方向盘往左打时前轮转角δ为正。质心侧偏角β定义为质心速度矢量与车身纵轴的夹角当速度方向偏向左时β为正。横摆角速度r的正方向是绕z轴逆时针也就是从车顶往下看车头往左转时r为正。侧偏刚度取绝对值记为C_f和C_r单位N/rad表示轮胎侧偏角每增加1弧度产生的侧向力。接下来引入核心概念轮胎侧偏角。以自行车模型的视角看前轮中心处不仅有纵向速度v_x还有一个由质心侧向运动叠加横摆旋转带来的侧向速度分量。质心处的侧向速度是v_y前轴中心因为绕质心转动额外多出一个a·r的侧向速度a是质心到前轴的距离。所以前轴中心处的侧向速度是v_y a·r。把这一项除以纵向速度v_x得到的就是车辆侧向运动引起的“速度方向偏角”再加上前轮本身的转向角δ才得到前轮侧偏角(1) α_f δ - β - (a·r)/v_x后轮没有转向角后轴中心处的侧向速度是v_y - b·r因此后轮侧偏角是(2) α_r -β (b·r)/v_x这里b是质心到后轴的距离。注意α_r符号里的负号非常容易被抄错。直观理解如果车身已经有一个正向侧偏角β意味着车头在往左滑那么后轮的实际速度方向会偏向车身右侧轮胎就会产生一个往左的侧偏角不对此时后轮相对来流的速度方向会让车轮在接地面上有一个往右的滑动趋势所以轮胎侧偏角为负产生一个指向左侧的修正力。这也是后轮在横向动力学里的关键角色后轴力通常是“稳定器”负责把车身拉回行进方向。真实车辆中方向盘转角δ_sw和前轮转角δ之间还隔着一个转向系统齿比n即δ_sw n·δ。普通乘用车的转向比通常在14到18之间部分运动型车辆会更小一些。在做任何与方向盘相关的横摆增益计算时如果忘了除以n算出来的横摆角速度会离谱地大。我见过不止一次在MATLAB/Simulink模型里把方向盘角度直接灌进二自由度模型的情况结果稳态横摆增益差了十几倍一顿排查才发现是齿比没处理。这个教训几乎白送。有了侧偏角轮胎侧向力在小侧偏角范围内近似线性化F_yf C_f·α_fF_yr C_r·α_r这里的“小侧偏角”一般指α不超过5度左右对应侧向加速度约0.4g以内。超出这个范围轮胎进入非线性滑移区二自由度模型的线性假设开始退化。这个边界后面讲参数标定时还会提到。3. 联立侧向力与横摆力矩状态方程里每个符号都有来路现在开始折腾真正的主菜把牛顿第二定律和转动方程联立起来。二自由度模型的动力学方程只有两条。第一条是车身侧向力平衡整车质量m乘上质心处的侧向加速度等于前后轴侧向力之和。质心处惯性系下的侧向加速度在车身坐标系里不只是v_y的导数还要加一项由于坐标系旋转带来的v_x·r。写出(3) m·(d(v_y)/dt r·v_x) F_yf F_yr如果直接用β作为状态可以写成m·v_x·(dβ/dt r) F_yf F_yr因为在小角度假设下v_y≈β·v_x。第二条是绕质心的横摆力矩平衡。转动惯量I_z乘横摆角加速度等于前后轴力对质心产生的力矩之和。前轴力F_yf作用在质心前方a处给正力矩后轴力F_yr作用在质心后方b处给负力矩(4) I_z·dr/dt a·F_yf - b·F_yr把1和2代入3和4整理成状态空间的形式。定义状态向量为[β, r]^T输入为前轮转角δ纵向速度v_x当作参数。最终得到(5) d/dt [β] [ A11 A12 ] [β] [ B1 ] δ[r] [ A21 A22 ] [r] [ B2 ]其中A11 -(C_f C_r) / (m·v_x)A12 -1 - (a·C_f - b·C_r) / (m·v_x²)A21 -(a·C_f - b·C_r) / I_zA22 -(a²·C_f b²·C_r) / (I_z·v_x)B1 C_f / (m·v_x)B2 a·C_f / I_z写到这里我建议你暂停一秒仔细看A12里那个“-1”。它来自方程3里因坐标系旋转而产生的r·v_x项。很多初学者推导时会漏掉它或者把它误当成普通的耦合项。它的物理含义是只要车在横摆即使轮胎没有额外产生侧偏力质心侧偏角也会因为坐标跟随车身转动而变化。这个-1是“几何旋转耦合”不是轮胎力造成的。理解这一点后面看频域响应时才能明白横摆和侧偏是怎么互相纠缠的。还有A21和A12里的共同因子(a·C_f - b·C_r)。这是一对非常关键的组合。它的符号决定稳定性的基本性格。如果前轴的刚度贡献比后轴大也就是a·C_f b·C_rA21为负A12会往-1方向进一步偏离系统在某些速度下可能走向不稳定。这正好对应过度转向倾向。反过来如果a·C_f b·C_r系统通常在高速区也能保持稳定这就是不足转向倾向。记住这个差值它在稳态增益里会再冒出来。实际做仿真时我习惯直接写个三行Python脚本把特征根打印出来。比如一台典型家用轿车的参数m1600kgI_z2500kg·m²a1.2mb1.5mC_f80000N/radC_r110000N/radv_x20m/s。写成矩阵算出来特征根是一对共轭复根实部约-6.6虚部约±4.9对应无阻尼固有频率约8.2rad/s阻尼比约0.8。这是一个典型的稳定、充足的转向系统。把速度提高到35m/s实部会变浅阻尼比降到0.6左右。这个趋势和实车主观感受是一致的速度越高横摆响应的“余振”越容易出来。如果你不习惯用矩阵也可以用传递函数。由状态空间求输入δ到输出r的传递函数会得到一个二阶系统加上一个零点。零点来自前轮侧偏力直接驱动横摆力矩的通路它让横摆响应在频率稍高时比我最初预想的更“跟手”。这也是为什么很多底盘工程师讨论转向手感时会把“相位超前”和“零点位置”挂在嘴边而不是只看稳定增益。4. 先把方向盘固定住稳态横摆增益和“推头/甩尾”性格讨论瞬态之前先看稳态。所谓稳态就是方向盘保持一个固定角度不动车辆以恒定车速和恒定横摆角速度转弯此时dβ/dt0、dr/dt0。把状态方程里的导数全部清零联立求解r和δ的比值会得到一个非常著名的结果(6) r/δ v_x / (l K·v_x²)其中lab是轴距K被称为稳定性因数(7) K (m/l²)·(b/C_f - a/C_r)这个公式是整车转向特性的“户口本”。r/δ的单位是每弧度前轮转角对应的横摆角速度单位1/s。初看有点反直觉横摆角速度除以转向角竟然不是常数而是随车速变化。低速时K·v_x²远小于轴距l公式退化成r≈δ·v_x/l这相当于阿克曼几何转向车辆像一块平板绕瞬时中心转动。速度越高K项的作用就越明显车辆的性格就暴露出来。K为正车辆是不足转向推头。低速时增益正常车速提高后同一把方向产生的横摆角速度反而相对偏低。驾驶员的表现是高速弯道里需要比预期打更多方向车头不太愿意往弯里扎。K为负车辆是过度转向甩尾。高速时横摆增益不仅不衰减反而急剧放大车速一旦超过临界速度v_crit sqrt(l/(-K))理论上增益会发散车辆尾部甩动无法收敛。K等于零车辆中性转向增益随速度线性上升不偏不倚但现实中这种状态并不稳定因为轮胎磨损、载荷变化都会把中性转向推成过度转向所以量产车几乎都刻意做正K。这里顺手列一个工程表格方便对照稳定性因数K转向性格高速横摆增益表现驾驶员主观感觉稳定性K0不足转向增益随速度上升变缓甚至下降推头、需要多打方向稳定K0中性转向增益随速度线性上升中性手感干净边界状态K0过度转向增益随速度放大临界速度后发散甩尾、车尾外甩高速不稳实际标定中K并不是越大越好。K过大高速时横摆增益太钝驾驶员会觉得“车不愿意转弯”紧急避障时需要更大转向幅度反而可能触发过大的车身姿态变化。乘用车一般把K压在0.001到0.004 s²/m这个范围里跑车会压得更低。我做过一个对照同一台底盘K从0.0018调到0.0032主观评价结果非常清晰——高速直线行驶稳定性变好但连续弯道里车头响应明显“懒”了。这其实就是在横摆响应和直线稳定性之间做取舍。如果要把公式换算成方向盘转角下的增益记得除以转向比n。最终工程里常用的指标是“横摆角速度/方向盘角度”也就是(8) r/δ_sw (1/n)·v_x / (l K·v_x²)这个值才是主观评价和客观测试都直接记录的物理量。在实车测试报告里你看到的“转向灵敏度”曲线本质就是这条公式画出来的。测试时如果忽略了转向比的变化有些带后轮转向的车型等效转向比是可变的曲线会乱到没法分析。5. 松开方向盘以后阶跃输入的瞬态横摆响应稳态增益只能说明“最终转到多大角度”但方向盘不可能以无限慢的速度动作。真实转向是一个动态过程所以需要看阶跃响应车辆直行方向盘在零点几秒内打到一个固定角度横摆角速度r如何随时间演化。从状态方程出发输出的传递函数一般能整理成带一个零点的二阶系统(9) r(s)/δ(s) G·(1 T_z·s) / (1 2ζ·s/ω_n s²/ω_n²)其中G就是稳态增益r/δω_n是横摆固有角频率ζ是阻尼比。ω_n和ζ由上述A矩阵的特征值决定。对大部分不足转向的家用车随着车速增加阻尼比会逐渐下降横摆固有频率在低中速段先升后降到了高速段大致稳定在1到1.5Hz这个区间。这个频率范围不是巧合正好对应人类驾驶员对横向控制的有效操作带宽。在这个带宽附近车身的横摆响应如果出现明显共振峰开起来就会觉得“车尾活”。阶跃响应有什么典型的时域特征第一横摆角速度不会瞬间跳到稳态值而是有一个明显的时间滞后滞后量一般几十到两百毫秒不等。第二响应过程中可能出现超调也就是r先冲过稳态值再回落。超调的幅度由阻尼比决定阻尼比越低超调越大车辆动态就越“活泼”。第三由于传递函数里有个零点阶跃响应的初始阶段可能出现一个小小的“反相”也就是横摆方向先往反方向动一下再转回正确方向。这个反相非常短普通驾驶员察觉不到但高精度传感器能测出来。我自己处理过一组某运动型轿车在100km/h下的阶跃转向数据方向盘阶跃输入后横摆角速度在约0.12秒后开始上升0.3秒左右冲到峰值峰值比稳态值高了大约12%然后约0.5秒后收敛。对应阻尼比大概在0.55到0.6之间。同一台车如果只改硬后稳定杆C_r等效值提高阻尼比能上升到0.75左右阶跃超调明显减小主观评价是“车尾巴老实了”但连续绕桩时又觉得转向响应有点钝。这就是阻尼比和响应灵敏度的对立。过度转向车辆在时域里问题更严重。随着车速接近临界速度系统的极点会向虚轴移动阻尼比趋近于零阶跃响应不再衰减横摆角速度开始等幅振荡甚至发散。用状态方程看就是A矩阵的行列式变负或实部变正。临界速度v_crit这个量虽然在实际道路上很少能安全测试谁敢真的把车开到发散临界点但它是底盘平台早期设计时的一个硬约束。量产车做不足转向标定很大一部分原因就是为了确保临界速度远高于法定限速。如果你在做横向控制算法这里还有一个经验车辆模型里的阻尼比和固有频率不要只看名义值它们随车速和载荷变化非常大。空载和满载状态下同样在80km/hζ能差0.15以上。控制器的前馈补偿如果只按单一工况调遇到高速满载会非常别扭。6. 频域里的横摆带宽延迟、共振峰和调校口味阶跃响应适合看“一次动作”但车辆的动态特性更像一个复杂滤波器。把方向盘转角做正弦扫频输入从0.1Hz一直扫到3Hz记录横摆角速度的幅值和相位就得到横摆频响曲线。这条曲线才是底盘调校工程师真正“品尝”车辆口味的工具。二自由度模型预测的频响大体是这样的低频段横摆增益接近稳态值相位滞后很小随着频率升高增益在中频段出现一个峰峰值位置和高度由阻尼比决定再往上增益开始滚降相位滞后逐渐逼近-180度。阻尼比越小的车共振峰越尖相位在共振频率附近掉得越快。共振峰的位置一般在1到2Hz之间速度高了会向低频方向移动路面粗糙的实车测试里这个峰会变得模糊但趋势不变。为什么频域视角比时域更贴近驾驶员手感因为驾驶员在开车时不是在做阶跃测试而是在一个连续闭环里不断修正方向。当你的转向操作频率在1Hz附近时车辆横摆响应的相位滞后如果过大你会感觉自己“打方向之后车要慢半拍才跟上”于是不自觉地加大修正幅度造成来回摆动。主观评价里常说的“车头指向性模糊”“转向虚位变大”很大一部分就是相位滞后和阻尼特性的表现不是单纯的转向比问题。二自由度模型能把“增益不足”和“相位滞后”分开讲这对定位问题非常重要。我之前在一台电动助力转向车型上遇到过一个典型的例子测出来低频横摆增益完全正常但转向手感被评价为“发飘”。把方向盘到横摆的频响曲线拉出来一看原来在0.8Hz附近出现了一个不小的共振峰阻尼比只有0.3。问题的根源不在转向助力标定而在后轴等效侧偏刚度偏低侧倾转向贡献了额外的变形量。后来通过调整后悬架衬套刚度把共振峰压了下去主观评价马上好转。这种问题如果只看稳态增益或者阶跃响应很容易误判成转向齿比或者助力曲线的问题。频域分析还有一个工程红利可以单独看二自由度模型预测的横摆带宽是否覆盖了实车的主要操作频带。对普通驾驶员来说0.1到0.5Hz是车道保持和正常过弯的频段0.5到1.5Hz是紧急避障和连续绕桩的频段超过2Hz的操作基本是“抖方向”了。二自由度模型如果连这个带宽内的响应都解释不了就得考虑是不是轮胎松弛模型、转向系统动力学或者侧倾动力学被忽略得太多了。零点在这里扮演的角色值得一提。传递函数分子上的零点T_z让横摆响应在中高频段表现出一定的“导前”特性相位滞后不会像纯二阶系统那样掉得那么厉害。这个零点本质上来自前轮侧偏力直接产生横摆力矩的通路它让“打方向”这个动作能立刻影响车头指向。如果底盘衬套太软、转向系统柔度过大这个零点频率会被拉低等效后方向盘输入的横摆响应就更迟钝。很多高端车型在讲“转向直接感”时做的就是尽量把这个零点保持在较高频率同时在舒适性上做妥协。这个权衡在底盘调校里非常真实。7. 从仿真到实车参数标定的经验与常见的坑理论讲到这里如果你已经能把状态方程写出来下一步一定是“这台车参数怎么来”。现实中没人会给你一份精确的C_f和C_r因为这两个值不是纯轮胎属性它包含了轮胎、悬架、衬套、载荷状态等多层信息的等效结果。这就是为什么说二自由度模型简单但用好它的人不多。参数获取分三层。第一层质量m、质心位置a和b、转动惯量I_z通过称重和惯性台架测出来。I_z最常用的是扭摆台架法把整车挂在台架上绕竖直轴做自由扭振从周期反推转动惯量。轿车一般I_z在2000到3500 kg·m²之间SUV会更高。第二层转向比n通过方向盘转角和前轮转角同步测量得到注意很多车型的齿比在中间位置和极限位置不一样要用多个角度点平均。第三层也是最难的一层等效侧偏刚度C_f和C_r通常用车辆测试数据反推。反推的经典做法是稳态转向试验。在固定车速下缓慢增大方向盘转角记录侧向加速度a_y和方向盘转角δ_sw的关系画出“转向角-侧向加速度”曲线。用二自由度模型拟合就可以得到K值。有了K值、质量、轴距再用前后轴分别测得的轮胎侧偏刚度数据做分配就能估计C_f和C_r。更讲究的公司会用双天线高精度GPS测质心侧偏角直接拟合A矩阵不过试验成本会高不少。实车验证时我建议至少做两类动态试验。一类是阶跃转向车速恒定方向盘以最快速度通常100到300度每秒打到一个固定角度并保持记录横摆角速度、侧向加速度和质心侧偏角。这个试验用来验证时域阻尼特性和超调量。另一类是频率扫频方向盘做0.1到3Hz的正弦扫频幅度一般不超过20度记录输入输出频谱提取横摆至方向盘的频响函数。有了这两组数据二自由度模型的“性格素描”才算完整。但这中间全是坑。我挑几个最常踩的讲。第一个坑是轮胎松弛长度。二自由度模型假设轮胎侧偏力瞬时响应真实轮胎在侧偏角突变后侧向力需要滚动一段距离才能建立起来这个建立过程在频域里表现为一个额外的时间滞后。车速相同的情况下轮胎松弛长度越长高频相位滞后越大。在做0.5Hz以上扫频时二自由度模型会明显比实车“乐观”。简单补救方法是把轮胎侧偏力环节加一个一阶惯性(10) dF_y/dt (C·α - F_y)/ττ大约是松弛长度除以车速。转向轴轮胎松弛长度一般在0.2到0.5米之间车速20m/s时τ只有10到25毫秒听起来不长但在1Hz以上扫频时足以让相位差出10度以上。第二个坑是转向系统延迟。方向盘转角传感器拿到的信号并不等于前轮转角。转向柱的扭转刚度、EPS力矩介入、转向器摩擦都会让前轮转角相对方向盘滞后。二自由度模型通常把输入直接定义在前轮所以做“方向盘到横摆”的频响对比时一定要在输入侧补上转向系统模型或者干脆只做“前轮转角到横摆”的局部验证。我没少看到有同事拿着方向盘扫频数据直接套二自由度模型结果低频相位就不对最后追查到是EPS力矩在1Hz附近有谐振。第三个坑是载荷转移。侧向加速度一旦超过0.3g内外侧车轮垂直载荷差异变大轮胎侧偏刚度随载荷变化是非线性的左右轮胎合起来的总侧偏刚度会比线性假设下降不少。表现在模型上就是C_f和C_r不再是常数而是随侧向加速度变化的曲线。工程上处理方式是把模型分段线性化每0.1g一个工作点每个工作点用一组C_f、C_r。这在车辆稳定性控制器里非常常见车辆状态估计器也是这么做的。第四个坑是纵向加速度。二自由度模型假设v_x恒定但实际测试中一点点油门或刹车都会改变轴荷转移进而改变前后轴的等效侧偏刚度。测试时要求稳定油门尽量让纵向加速度为零但真实标定工况里有刹车转向那时模型精度会掉一截。这也是为什么做ESP匹配时要专门准备“制动转向工况”的数据不能只用匀速稳态数据。最后给一个实用清单团队做标定测试时可以贴在工位上检查项常见错误建议做法转向比忘记除以n先实测方向盘到前轮的齿比曲线传感器延迟IMU时间戳和方向盘信号不对齐做互相关延迟估计采样率至少100Hz轮胎模型一个C值用到底按载荷和侧向加速度分段侧偏角测量用积分估计β用双天线GPS或光学传感器直接测车速恒定忘记油门扰动配驾驶员油门控制或只取匀速段我自己现在的习惯是无论模型多简单拿到实车数据第一件事先画两个图横摆角速度的频响幅值图和相位图。然后把二自由度模型的预测曲线叠上去先不看拟合误差只看趋势。如果低频增益和共振峰位置大体对上这个模型用在控制前馈里基本靠谱。如果相位在0.5Hz就已经差出一大截那就别急着调控制器先回头查传感器延迟和转向系统。二自由度模型能陪你走很远但它不会替你承担传感器质量差和标定粗心的成本。这也是为什么直到今天这个写在1940年代的模型依然活跃在底盘开发、ESP匹配和自动驾驶横向控制的最前线。