2026/10/19 11:23:38

车辆横向动力学建模:从运动学模型到Carsim联合仿真的工程实践

车辆横向动力学建模:从运动学模型到Carsim联合仿真的工程实践 先聊个实际场景你在做底盘控制或者智能驾驶路径跟踪控制器里那辆“车”到底用什么模型这事从一开始就绕不开。用太简单的模型怕控制效果不靠谱用太复杂的模型又怕实时性扛不住、参数标定工程量大到怀疑人生。我这些年试来试去最终固定下来一套组合拳低速场景用运动学模型快速验证中高速控制律设计用线性二自由度模型最后用 Carsim 这类高保真软件做闭环复验。这三者不是替换关系而是明确的分工配合关系。这篇文章就把这套组合拳的建模思路、状态空间方程、参数标定方法、Carsim 联合仿真细节和常见坑全部讲透做控制算法、仿真验证、实车预研的朋友都可以直接参考。1. 三种模型的分工各自解决什么问题1.1 运动学模型低速场景下的几何关系求解运动学模型的本质是假设轮胎不发生侧偏车轮速度方向永远和轮子朝向一致。它只关心“车往哪走”不关心“力和力矩怎么把车推到这个方向”。典型形式就是那个自行车模型把左右前轮合并成一个前轮、左右后轮合并成一个后轮然后用几何关系直接算x_dot V * cos(psi) y_dot V * sin(psi) psi_dot V / L * tan(delta)这里 V 是车速psi 是航向角delta 是前轮转角L 是轴距。这个模型没有质量、没有惯性、没有轮胎刚度这些物理参数所以它特别适合做低速泊车、园区低速巡线这类工况。车速慢的时候轮胎侧偏角很小几何关系占主导运动学模型算出来的轨迹几乎和实车重合而且计算量极小在嵌入式的低成本 MCU 上跑都毫无压力。但把它往高速场景挪就会出大问题。车速一上来轮胎必须产生侧向力才能让车转弯有侧向力就必然有侧偏角轮子实际前进方向和轮子朝向不再一致。这时候纯几何模型预测的横摆角速度会明显偏高用它设计的控制器在 60 km/h 以上往往表现为转向不足、跟踪超调。所以运动学模型不是被“替代”而是它本来就有明确的工作边界。1.2 线性二自由度模型横向动力学解析的主力工具线性二自由度模型是横向动力学里最经典的解析模型把整车简化成两个自由度侧向速度 v_y 和横摆角速度 r。它把轮胎侧向力假设成与侧偏角成线性关系用前、后轴等效侧偏刚度来刻画最终得到一个二阶线性状态空间方程。这个形式对控制设计极其友好LQR、MPC、状态观测器、横摆角速度闭环控制几乎都能直接把它拿来当预测模型或设计模型。它比运动学模型高一层的地方在于它包含了质心位置、车辆质量、横摆转动惯量、前后轴侧偏刚度这些真正影响车辆动态的参数因此能解释车辆在中高速下的横摆响应、不足转向/过多转向趋势、稳态增益变化等现象。我自己的经验是只要侧向加速度不超过 0.4g 左右、路面附着良好、前轮转角在小角度范围内这个模型对真实车辆的逼近程度就足够工程使用了。1.3 Carsim高保真仿真与“标准答案”参照系Carsim 属于多体动力学加半经验轮胎模型的高保真仿真软件车辆参数远不止质量、轴距这几项还包括悬架K特性、阻尼特性、轮胎魔术公式、载荷转移、转向系统传动比等一大堆细节。它能跑极限工况比如大侧向加速度、湿滑路面、紧急避障这些场景下线性二自由度模型已经严重失真但 Carsim 可以给出一个接近实车的参考响应。Carsim 不适合直接塞进嵌入式控制器它的计算步长要很小、模型复杂度高、实时性差但它非常适合做“离线标定的参照系”。工程上的常规做法是先用 Carsim 里的示例车辆参数作为基准在 Carsim 里布置阶跃转向或双移线工况把响应曲线导出来当“真值”再用同一套参数去调线性二自由度模型让二自由度模型在相同工况下尽量贴近 Carsim 的输出。这一步做扎实了后面做控制律仿真才有可信度。2. 线性二自由度模型建模与参数计算2.1 自由度选取与假设条件二自由度模型的“二”指的是侧向速度 v_y 和横摆角速度 r 这两个状态它是在一大堆假设下成立的简化模型纵向速度 u 恒定不变忽略俯仰、侧倾运动认为轮胎工作在线性区域忽略空气动力学影响前轮转角是小角度左右车轮的侧偏特性合并成前轴、后轴等效侧偏刚度。这些假设决定了模型的适用范围不要指望它在极限工况下还能准确。把自由度选成 v_y 和 r 的逻辑在于车辆平面运动的基本形态就是“横着滑”加“绕质心转”纵向速度已经被假设成恒定剩下的横向动力学就由这两个量唯一描述。用质心侧偏角 beta 代替 v_y 也可以因为 beta 约等于 v_y/u很多文献里状态向量写作 [beta, r]两种形式本质一样只是系数矩阵的写法不同。2.2 状态空间方程推导下面推导用的符号统一说明m 为整车质量Iz 为绕 z 轴的横摆转动惯量a、b 分别为质心到前轴、后轴的距离Lab 为轴距Cf、Cr 分别为前轴、后轴总侧偏刚度delta 为前轮转角u 为纵向车速。侧向力平衡方程是m * (v_dot u * r) Fyf Fyr横摆力矩平衡方程是Iz * r_dot a * Fyf - b * Fyr线性轮胎模型给出Fyf -Cf * (v a*r)/u Cf * delta Fyr -Cr * (v - b*r)/u其中 (v ar)/u 是前轮侧偏角线性化结果(v - br)/u 是后轮侧偏角线性化结果。把轮胎力代入力平衡和力矩平衡再整理成状态空间形式得到d/dt [v_y] [a11 a12] [v_y] [b11] delta [r ] [a21 a22] [r ] [b21]其中a11 -(Cf Cr) / (m*u) a12 -u - (a*Cf - b*Cr) / (m*u) a21 -(a*Cf - b*Cr) / Iz a22 -(a^2*Cf b^2*Cr) / (Iz*u) b11 Cf / m b21 a*Cf / Iz这里最容易困惑的是 a12 那项。它由两项组成一是因为坐标系固连于车体侧向加速度里除了 v_dot还有 u*r 这个耦合项二是因为前、后轴侧向力对 v_y 的依赖关系。这个耦合项也是为什么车速变化时同一个前轮转角产生的横摆响应差异很大的根本原因。2.3 侧偏刚度、转动惯量与质心位置的获取建模时最头疼的不是列方程而是把参数填准。以一辆中型乘用车为例整车质量 m 大概 1545 kg轴距 L 约 2.7 m质心到前轴 a 约 1.1 m到后轴 b 约 1.6 m横摆转动惯量 Iz 在 2500 到 3500 kg·m² 这个量级。前轴总侧偏刚度 Cf 约在 80000 到 130000 N/rad后轴 Cr 约在 80000 到 110000 N/rad具体数值取决于轮胎型号和载荷。这里有一个高频坑Carsim 里如果给出的是单轮侧偏刚度那前轴总刚度要乘 2后轴也乘 2。很多人在标定阶段发现二自由度模型稳态增益和 Carsim 差了一倍十有八九就是忘了这个“每轴两轮”的换算。转动惯量如果没有实测数据可以通过经验公式估算比如把车身质量近似成均匀分布杆Iz 约等于 m*(a²b²)/3或者直接用 Carsim 示例车辆的数值作为初值后面在瞬态响应对比里再微调。3. Carsim 与 Simulink 联合仿真实操3.1 车辆参数配置把同一辆车喂给两种模型要对比 Carsim 和二自由度模型前提是“同一辆车”。Carsim 里先选定一个示例车型把它的整车质量、轴距、质心位置记下来填进二自由度模型。至于侧偏刚度Carsim 的轮胎数据通常不会直接显示一个“总侧偏刚度”数字需要根据轮胎侧向力曲线在零侧偏角附近的斜率来提取或者直接把它当标定量来处理先用一个合理初值再用 Carsim 响应去拟合。我自己习惯的做法是建一个参数表把 m、a、b、Iz、Cf、Cr 全部列出来标注来源比如从 Carsim 读到的就写 Carsim 参数估算的就写估算初值。这样标定的时候不会搞混排查问题时也能快速定位是哪个参数引起的偏差。3.2 接口配置与仿真步长设置Carsim 与 Simulink 联调核心是把 Carsim 模型编译成 Simulink 能调用的 S-Function 模块。在 Carsim 的 Simulation 界面选择与 Simulink 的接口配置输入输出变量输入通常用方向盘转角 STEER_SW如果需要定速工况还可以输入油门或制动输出需要 Vx、Vy、横摆角速度 YawRate、侧向加速度 Ay这些后面跟二自由度模型对比都用得上。仿真步长的设置有个很关键的点Carsim 内部解算器通常固定步长Simulink 那边也建议用固定步长比如 1 ms 或 2 ms。不要用变步长求解器否则 S-Function 模块内部状态插值容易出现数值不稳定表现为横摆角速度曲线莫名其妙地抖动或发散。如果只做离线对比固定步长 1 ms 基本够用后期把二自由度模型放到控制器里做实时仿真时再把步长根据目标硬件放宽到 5 ms 甚至 10 ms 来看实时性。3.3 典型工况设计与激励信号选择标定模型和控制律最常用的三个工况阶跃转向、双移线、正弦扫频。阶跃转向用来做稳态增益和时间常数的辨识操作方法是让车辆保持恒定车速在一个短时间内把方向盘转角从 0 加到目标值比如 80 km/h 下方向盘转角从 0 阶跃到 60 度对应前轮转角约 3.75 度然后记录横摆角速度和侧向加速度响应。注意阶跃不要做成理想冲击给转向角加一个 0.1 秒左右的斜坡过渡否则会激发出轮胎的非线性瞬态响应影响辨识精度。双移线工况更接近真实避障Carsim 里可以直接配置路径车辆通过预瞄模型跟踪路径也可以手动设置方向盘转角序列。这个工况适合验证控制器的闭环跟踪能力看横向误差峰值、横摆角速度超调。正弦扫频工况则是给方向盘转角一个频率逐渐增加的正弦输入用来获取系统的频域响应做传递函数辨识和带宽分析。输入信号的幅值不能太大保持在侧向加速度不超过 0.3g 的范围内才能让被辨识对象处于二自由度模型能够描述的线性区域。4. 三种模型仿真对比与差异归因4.1 低速工况三种模型接近运动学够用先看低速比如 30 km/h 下做一个中等幅度转向。运动学模型给出的稳态横摆角速度约等于 V/L*tan(delta)二自由度模型因为考虑了轮胎侧偏稳态值会比运动学模型低个 5% 到 10%但差距不大。Carsim 因为有悬架运动学、转向系统迟滞等真实细节响应会比二自由度模型再多一点延迟但稳态值通常非常接近。在这个速度区间如果你的目标只是做泊车辅助或者园区低速巡线直接用运动学模型就够了。它参数少、实时性好、控制律设计简单没有必要引入复杂的动力学模型。我见过不少项目在低速段硬上二自由度模型结果控制器设计复杂度上去了性能却没提升多少完全是自己给自己加戏。4.2 中高速工况差异从哪里来把车速提高到 80 km/h同样是阶跃转向三种模型的差异会非常明显。运动学模型的稳态横摆角速度会明显偏高因为真实车辆在高速转向时轮胎需要很大的侧偏角才能产生足够的侧向力这部分“侧偏滑移”导致车辆实际横摆角速度低于几何模型的预测值。二自由度模型由于采用了线性轮胎假设在小侧偏角范围内还能贴近 Carsim但车速再高一点或者转角再大一点侧向加速度超过 0.4g 之后轮胎侧偏特性进入非线性区载荷转移也不再可忽略二自由度模型就会高估横摆角速度。Carsim 包含这些非线性效应所以它的响应往往表现为更明显的不足转向趋势横摆角速度增长变缓进入稳态的时间变长侧向加速度曲线出现饱和拐点。理解这层差异你再去调控制器就有方向了。如果控制律基于二自由度模型设计在中高速极限工况下往往会觉得控制器过于激进因为模型预测的响应比真实车辆更快。这时候要么在 MPC 的预测模型里加一个输出修正项要么在控制器参数标定时用 Carsim 的响应曲线作为校准基准而不是直接相信二自由度模型给出的名义增益。4.3 模型选型决策表| 模型类型 | 适用车速 | 精度水平 | 实时性 | 参数需求 | 典型用途 | | 运动学模型 | 低速约 30 km/h 以下 | 几何近似无轮胎侧偏 | 极高 | 轴距、车速 | 泊车、园区巡线、路径跟踪初版验证 | | 线性二自由度 | 中高速侧向加速度 0.4g | 线性轮胎假设下良好 | 高 | 质量、轴距、侧偏刚度、转动惯量 | LQR/MPC 控制律设计、状态观测器、工况分析 | | Carsim 离线仿真 | 全域尤其极限工况 | 高保真非线性 | 差 | 大量车辆参数 | 离线标定、极限工况验证、控制律最终闭环测试 |5. 实战中的常见问题与排查技巧5.1 二自由度模型低速发散二自由度状态方程里大量出现 1/u 项车速趋近于 0 时这些项会爆炸仿真直接发散。这不是代码写错了而是模型本身的适用边界。解决办法有两个一是给车速加下限例如 u_min 2 m/s低于这个速度时把二自由度模型的计算结果直接置零或者切到运动学模型二是在控制器里设计一个速度调度逻辑低速段切运动学模型高速段切二自由度模型中间加一个过渡区间用权重融合。我踩过的坑是调度逻辑只做了硬切换切换点附近控制器输出跳变车辆横摆角速度出现明显尖峰。后来改成在 2 到 5 m/s 的区间内做线性过渡问题才消失。这个细节在纯仿真环境里不容易发现一上实车或者高保真闭环仿真就会暴露出来。5.2 Carsim 与二自由度稳态增益对不上这是标定阶段最常遇到的困惑。同一辆车同一个阶跃转向工况Carsim 的稳态横摆角速度和二自由度模型对不上。排查顺序我建议固定成以下几步先检查单位Carsim 里方向盘转角用的是 deg二自由度模型里 delta 必须是 rad忘了换算直接差 57.3 倍再检查侧偏刚度是否乘了 2然后检查车速是否一致二自由度模型用的是恒定纵向速度Carsim 如果没开定速控制车速在转向过程中会掉导致稳态增益不一致。如果这些都没问题那就是侧偏刚度初值不准确。做法是在 Carsim 里把侧向加速度控制到 0.3g 以内读取稳态横摆角速度和前轮转角反推一个等效刚度用这个等效刚度替代初值。反复迭代两三次稳态误差可以压到 5% 以内。5.3 单位、滤波与步长问题| 现象 | 原因 | 处理方式 | | 横摆角速度曲线高频抖动 | Simulink 变步长与 Carsim 固定步长不匹配 | 统一用固定步长推荐 1 ms 到 2 ms | | 稳态值差一个数量级 | 角度单位没换算deg 当成 rad | 统一为 rad 或 SI 单位后再对比 | | 初始阶段瞬时冲击过大 | 阶跃输入给成了理想阶跃 | 加约 0.1 秒斜坡过渡让激励更接近真实转向 | | Carsim 输出曲线有相位延迟 | 输出端默认开启滤波 | 在 Carsim 输出配置里关闭滤波或在 Simulink 里用统一截止频率的低通滤波器再对比 | | 模型在高速段稳态误差重新增大 | 侧偏刚度标定时激励幅值过大标到了非线性段 | 标定工况侧向加速度控制在 0.3g 以内非线性区域交给 Carsim 做闭环验证 |最后再分享一个小技巧在做二自由度和 Carsim 对比时不要只对比横摆角速度一条曲线把侧向加速度和质心侧偏角一起拉出来看。我说的这个质心侧偏角Carsim 输出里通常有二自由度模型可以算 v_y/u。三组曲线放在同一张图上它能帮你快速判断偏差到底出在线性轮胎假设上还是出在参数标定上。如果稳态横摆角速度对上了侧向加速度却对不上大概率是整车质量和轴距的分配比例出了问题这时候去调侧偏刚度反而越调越乱。这套对比方法我每做一个新项目都会先跑一遍花不了多少时间但能帮后面省下大量的排查功夫。