单轮二自由度模型:从状态空间到操纵稳定性的工程实践全解析
2026/9/11 20:59:42 网站建设 项目流程

简介:单轮二自由度模型是汽车操纵稳定性研究中的经典简化方法,这份MATLAB仿真资源面向车辆工程专业学生、算法工程师及相关科研人员,可帮助快速理解轮胎侧偏特性与整车横摆响应之间的耦合关系。压缩包共7个M文件,均为可直接运行的MATLAB脚本,涵盖车速输入、轮胎力计算、参考模型构建以及控制算法仿真的基础代码,并配有别克和法拉利车型的对比参数文件,便于通过修改质量、质心位置、摩擦系数等关键参数观察整车动态差异。整包仅5KB,结构精简、无冗余数据,轻量易部署。目前已有227人学习下载,适合用来入门汽车动力学仿真、验证二自由度模型推导结果,也可作为ESC、ABS等主动安全控制算法研究的底层模型参考。

1. 单轮二自由度模型:把操纵稳定性问题压进两个状态量的第一道门槛

在汽车动力学里,很少有一个模型像单轮二自由度模型这样,看起来极简,解释力和复用度却极高。它把左右车轮分别合并到前、后轴中心,只保留侧向速度和横摆角速度两个自由度,就能回答操纵稳定性领域最基本的三个问题:稳态横摆角速度增益是多少、车辆是不足转向还是过多转向、临界稳定车速在哪里。对刚接手底盘仿真的工程师来说,这个模型是理解状态空间方法最好的起点;对做底盘控制与整车性能匹配的开发者来说,它又是指定横摆角速度响应、预估转向梯度的最小被控对象。接下来从建模假设、状态方程、代码实现和参数边界四条线展开,把这套模型一次讲透。

2. 建立单轮二自由度模型的三条核心假设:从整车结构到状态方程的映射

2.1 忽略车体侧倾与垂直载荷转移:模型适用边界在哪里

单轮二自由度模型的第一个假设,是忽略车体侧倾以及由此引起的左右车轮载荷转移。真实车辆转弯时,簧上质量向外侧倾斜,内外侧车轮垂直载荷一增一减,轮胎侧偏刚度随之非线性变化。但这一影响只有在侧向加速度超过约0.4g之后才变得显著。在这个边界以内,把前轴左右轮胎合并成一个等效车轮,其等效侧偏刚度取两轮之和;后轴同理处理。整车被抽象成一条“单轨”,这也是它常被称为自行车模型的原因。

适用边界因此很明确:匀速或缓变车速、小转向角、侧向加速度在线性区内、没有驱动或制动扭矩的左右分配差异。凡是急转向、载荷转移明显或者轮胎进入非线性区的工况,这个模型给出的横摆角速度峰值、相位和稳态值都会偏离实车。很多初学者拿着二自由度模型去套麋鹿试验或紧急变道工况,得不到理想曲线,问题通常不在计算精度,而在模型假设根本不覆盖那个工况。

反过来讲,所谓“各种模型”的差异,也正是在这个骨架上长出来的。有人加入前、后轴载荷转移修正,有人把线性轮胎换成魔术公式,有人把固定车速扩展成纵向速度变化,还有人把侧偏刚度做成垂直载荷插值表。这些扩展版本的共同基础,仍然要在下面两个平衡方程里找。

2.2 轮胎侧向力线性化:侧偏角、侧偏刚度与符号约定

第二个假设是轮胎始终工作在线性侧偏区。设前轮侧偏角为α_f,前轴等效侧向力写作F_yf = −C_f·α_f,其中C_f是前轴等效侧偏刚度,单位N/rad;后轮同理为F_yr = −C_r·α_r。负号表示侧向力方向与侧偏运动方向相反:车轮运动方向偏左时,地面给轮胎的力指向右侧。

侧偏角由车辆运动状态与输入共同决定:

α_f = β + a·r/V − δ_f α_r = β − b·r/V

β是质心侧偏角,r是横摆角速度,V是纵向车速,a和b分别是质心到前、后轴的距离,δ_f是前轮转角。前轮侧偏角里多出的a·r/V,是质心处横摆运动在前轴位置产生的附加横向速度分量;后轮对应项是减号,因为后轴位于质心后方,横摆产生的横向速度方向与前轴相反。

这里最容易踩坑的是符号约定。有些教材把C_f直接定义为负值,有些则把β的正向与转向角的正向定义成相反方向。代码实现时一旦沿用两套不同的约定,状态矩阵的负号就会连环出错。我在写脚本时统一采用“侧偏刚度为正数、轮胎力为−C·α、横摆角速度正向与转向角正向一致”的约定,这样矩阵里各个元素的物理含义始终稳定。另一个高频错误是拿单轮侧偏刚度当轴等效值使用。轮胎试验台给出的单胎数据,至少要先乘2才能代表前轴;后轴有双胎或者载荷明显变化时,还要做载荷加权平均,否则稳态增益直接偏差接近一半。

2.3 两套平衡方程拼出状态空间矩阵

建模落到方程上只有两步。沿车辆侧向应用牛顿第二定律,绕质心轴应用转动平衡方程:

m·V·(β̇ + r) = F_yf + F_yr I_z·ṙ = a·F_yf − b·F_yr

第一个方程左侧的r来自牵连运动,表示车体坐标系相对惯性系旋转时产生的附加侧向加速度分量;右侧是前后轮胎侧向力的合力。第二个方程是横摆力矩平衡,前轴力绕质心产生正的横摆力矩,后轴力产生负的横摆力矩。把F_yf、F_yr的线性表达式代入并整理,就得到二自由度模型的标准状态空间形式:

[β̇] [ a11 a12 ] [β] [ b1 ] [ṙ] = [ a21 a22 ] [r] + [ b2 ] δ_f

四个矩阵元素的物理含义分别为:

  • a11 = −(C_f + C_r) / (m·V),侧向速度状态的阻尼项,绝对值越大表示侧向运动衰减越快;
  • a12 = −1 − (a·C_f − b·C_r) / (m·V²),前一部分来自牵连运动,后一部分反映前后轴刚度不对称时侧向与横摆的耦合;
  • a21 = (b·C_r − a·C_f) / I_z,由刚度差产生的横摆力矩项,本质上是车辆静态稳定性余量的动态表现;
  • a22 = −(a²·C_f + b²·C_r) / (I_z·V),横摆运动自身的阻尼项。

输入矩阵中b1 = C_f / (m·V)、b2 = a·C_f / I_z。可以看到a、b、C_f、C_r全部集中出现在a12与a21两个耦合项中。前后轴刚度比值与质心位置的相对关系,决定了整个模型是偏于不足转向还是过多转向。这一点会直接影响第4章的稳定性判断,也是二自由度模型在整车参数匹配中被频繁使用的原因。

3. 用 MATLAB 把二自由度模型跑成标准化脚本:从散落文件到最小可复现代码

3.1 最小输入参数表:六项参数,一项一项对清楚

拿到压缩包里的散落脚本,第一步不是急着读代码,而是先把物理参数提取成一张表。二自由度模型真正需要的参数只有六项:

参数符号典型值单位说明
整车质量m1410kg含驾驶员与载荷
横摆转动惯量I_z2350kg·m²台架实测或经验估算
质心到前轴距离a1.35m由前后轴荷比确定
质心到后轴距离b1.45m等于轴距减a
前轴等效侧偏刚度C_f70000N/rad两个前轮之和
后轴等效侧偏刚度C_r90000N/rad两个后轮之和

横摆转动惯量I_z如果查不到实测值,常见做法是用m·L²乘以一个系数估算,普通轿车系数在0.13到0.15之间,运动型车可以取到0.16以上。按表中数据计算,m·L² = 1410 × 2.8² ≈ 11054 kg·m²,取0.15约为1658 kg·m²,和表格里的2350有差距,因此这个系数只用于没有数据时的初值估计,后续要通过横摆角速度频响试验或者扭摆台架重新标定。

侧偏刚度则要格外小心。量产车轮胎数据表给出的是单个轮胎在标称载荷下的侧偏刚度,通常还要看载荷点。把单胎值乘2后作为轴等效值,只在不考虑载荷转移的线性区近似成立。悬架带弹性运动学特性的车型,轮胎侧偏角还会叠加悬架变形产生的附加转角,等效侧偏刚度比纯轮胎数据低5%到15%。整理完参数表,再去看脚本,我一般会把与模型无关的绘图配色、动画和冗余变量全部删掉,只保留参数区、矩阵构造区、求解区、绘图区四段,后续换参数只动第一段,换工况只动第三段。

3.2 阶跃转向仿真:状态空间矩阵、step 求解与单位检查

下面是整理后的MATLAB脚本,对应整车在80km/h下前轮阶跃转角0.1rad的瞬态响应:

% 单轮二自由度模型阶跃转向仿真 % 状态: beta(质心侧偏角), r(横摆角速度) % 输入: delta_f(前轮转角) clear; clc; close all; % ---- 参数区 ---- m = 1410; % 整车质量 [kg] Iz = 2350; % 横摆转动惯量 [kg*m^2] a = 1.35; % 质心至前轴 [m] b = 1.45; % 质心至后轴 [m] Cf = 70000; % 前轴等效侧偏刚度 [N/rad] Cr = 90000; % 后轴等效侧偏刚度 [N/rad] V = 80 / 3.6; % 车速, 从 km/h 换算为 m/s L = a + b; % 轴距 [m] % ---- 矩阵构造区 ---- A11 = -(Cf + Cr) / (m * V); A12 = -1 - (a * Cf - b * Cr) / (m * V^2); A21 = (b * Cr - a * Cf) / Iz; A22 = -(a^2 * Cf + b^2 * Cr) / (Iz * V); A = [A11, A12; A21, A22]; B = [Cf / (m * V); a * Cf / Iz]; % 仅观测第二个状态量: 横摆角速度 r sys_r = ss(A, B, [0 1], 0); % ---- 求解区 ---- delta_f = 0.1; % 前轮阶跃角 [rad] t = (0:0.01:3)'; % 3 秒, 10ms 步长 [y_r, t_out] = step(sys_r * delta_f, t); r_ss = y_r(end); % 稳态横摆角速度 fprintf('稳态横摆角速度: %.3f rad/s (%.1f deg/s)\n', ... r_ss, r_ss * 180 / pi); % ---- 绘图区 ---- figure('Color', 'w'); plot(t_out, y_r * 180 / pi, 'LineWidth', 1.6); xlabel('时间 [s]'); ylabel('横摆角速度 [deg/s]'); grid on;

这段代码的逻辑分得很清楚:A矩阵按上一章的物理矩阵直接赋值;B是转向输入的分配向量;ss(A,B,[0 1],0)表示只观测第二个状态量r;step把输入当作单位阶跃,乘以delta_f后得到对应幅度的响应。使用step而不是手动做数值积分,好处是MATLAB会自动选择积分步长,在状态变化剧烈的地方加密计算,并且能直接取到稳态值。

运行这段代码,稳态横摆角速度约为0.527rad/s,换算成度每秒约30.2deg/s。用稳态公式校验:r_ss/δ = V/(L + K·V²),其中K = (m/L)·(b/C_f − a/C_r) = 0.00288 s²/m,代入V=22.22m/sL=2.8m,分母为2.8+1.42=4.22m,增益为5.26 1/s,乘上0.1rad得到0.526rad/s,与仿真结果完全吻合。

3.3 单位检查与三个常见仿真错误

这段脚本最容易出问题的位置集中在三处。第一处是车速混用,V直接填80而没有除以3.6,矩阵里的每一项都被放大3.6倍,瞬态响应的时间常数全部失真。第二处是侧偏刚度使用单轮值而没有乘2,稳态增益直接放大近一倍。第三处是把状态量选错,有人习惯用侧向速度v_y而不是质心侧偏角β做状态量,两者差一个V的换算关系,切换后A矩阵第一列需要做相应的缩放,否则矩阵元素量纲对不上。

提示:在参数区后面加一行自检代码,能够提前拦截前两类问题。比如检查V是否在合理车速范围内,或者检查C_f是否大于单轮侧偏刚度的1.5倍。这种约束不能完全替代人工判断,但至少能把明显错误挡在仿真之前。

4. 车辆操作稳定性边界与不足转向梯度:被模型参数决定的四条结论

4.1 稳定性条件推导:特征根什么时候越过临界车速

二自由度模型是线性系统,其稳定性完全由状态矩阵A的特征值决定。特征方程写作λ² + D·λ + E = 0,其中D等于矩阵迹的负值,E等于行列式。系统渐近稳定的充要条件是D > 0且E > 0。D中的两部分分别是(C_f + C_r)/(m·V)和(a²·C_f + b²·C_r)/(I_z·V),这两项恒为正,所以唯一需要警惕的是E。

把E的完整表达式展开:

E = C_f·C_r·L² / (m·I_z·V²) − (a·C_f − b·C_r) / I_z

第一项恒为正,第二项的正负由a·C_f − b·C_r决定。当这个值小于等于零时,E永远大于零,车辆在任何车速下都渐近稳定,对应不足转向或中性转向的设计。当它大于零时,随着车速V增大,第一项逐渐减小,存在一个临界车速V_crit使E = 0。超过这个速度,特征根越过虚轴进入右半平面,横摆角速度的阶跃响应不再收敛,实车表现为严重的过多转向失稳。临界车速为:

V_crit = sqrt(C_f·C_r·L² / (m·(a·C_f − b·C_r)))

用算例验证:a·C_f − b·C_r = 1.35×70000 − 1.45×90000 = −36000 N,为负值,因此这辆车在所有车速下都稳定。在80km/h工况下,矩阵特征值表现为一对共轭复根,自然频率约6.7rad/s,换算成Hz约1.1Hz,符合普通轿车横摆响应的常见范围。

4.2 不同车速下的阶跃响应:脚本化对比试验

要直观观察车速对响应形态的影响,可以把矩阵构造代码放进循环,分别计算20、60、100km/h三种车速下的阶跃响应:

V_list = [20, 60, 100] / 3.6; % 三种车速 [m/s] delta_f = 0.1; t = 0:0.01:5; figure('Color', 'w'); hold on; leg = cell(1, 3); for i = 1:length(V_list) V = V_list(i); A11 = -(Cf + Cr) / (m * V); A12 = -1 - (a * Cf - b * Cr) / (m * V^2); A21 = (b * Cr - a * Cf) / Iz; A22 = -(a^2 * Cf + b^2 * Cr) / (Iz * V); A = [A11, A12; A21, A22]; B = [Cf / (m * V); a * Cf / Iz]; sys = ss(A, B, [0 1], 0); y = step(sys * delta_f, t); plot(t, y * 180 / pi, 'LineWidth', 1.5); leg{i} = sprintf('%.0f km/h', V * 3.6); end hold off; xlabel('时间 [s]'); ylabel('横摆角速度 [deg/s]'); legend(leg, 'Location', 'southeast'); grid on; title('不同车速下的横摆角速度阶跃响应');

运行后可以看到几个趋势:低速时响应上升快、稳态增益低;中速时增益提高,上升时间基本持平;高速时上升变慢、超调量增大,但稳态值反而比中速时小。稳态增益出现峰值的车速对应特征车速,它与第3章里的不足转向梯度K直接相关。如果继续把车速推向临界速度,超调会进一步加深,最终变成等幅振荡。阻尼比可以由ζ = D / (2√E)估算,80km/h算例中D约11.18,E约45.49,阻尼比约为0.83,响应在少量超调后快速收敛。随着车速升高,D减小而E变化相对平缓,阻尼比持续下降,这正是高速时驾驶员感觉车尾动态变“活”的原因。

4.3 从稳态公式反推侧偏刚度:标定调试的快捷路径

稳态横摆角速度增益最常用的工程形式是r_ss/δ = V/(L + K·V²),其中K = (m/L)·(b/C_f − a/C_r),即不足转向梯度。K的符号决定车辆基本性格:K > 0为不足转向,K < 0为过多转向,K = 0为中性转向。用算例数值计算,K = 0.00288s²/m,正值且偏小,说明该车具有轻微不足转向,和大多数乘用车的调校目标一致。

从K的表达式可以推出一个常被误解的调校方向:前轴侧偏刚度C_f增大,K会减小,车辆向中性转向偏移;后轴侧偏刚度C_r增大,K的负项增大,同样使K减小。也就是说,盲目加硬前弹簧或增大前轮胎气压来“增加车头指向性”,实际上会让整车更接近中性甚至过多转向,急变道时反而更容易甩尾。正确做法是先测出稳态增益曲线,反解出K值并与目标K值对比,判断哪一个轴的等效刚度偏离目标更多,再通过稳定杆、衬套或胎压调整对应轴的侧偏刚度。质心位置a和b同样影响K,质心前移会增大b、减小a,使K变大,所以车辆后部载重时,转向特性会明显向不足转向方向移动。

5. 用 Bode 图校验二自由度模型:从时域响应升级到频域验证

5.1 横摆角速度对转向输入的直接频响计算

时域阶跃响应只是模型验证的第一步。真实转向输入不是理想的阶跃信号,而是包含不同频率成分的连续操作,因此更可靠的验证方式是看横摆角速度对前轮转角输入的频率响应。二自由度模型是线性系统,其频响由状态矩阵直接决定,不需要额外推导传递函数,直接用bode函数就能得到:

V = 80 / 3.6; A11 = -(Cf + Cr) / (m * V); A12 = -1 - (a * Cf - b * Cr) / (m * V^2); A21 = (b * Cr - a * Cf) / Iz; A22 = -(a^2 * Cf + b^2 * Cr) / (Iz * V); A = [A11, A12; A21, A22]; B = [Cf / (m * V); a * Cf / Iz]; sys_r = ss(A, B, [0 1], 0); w = logspace(0, 2, 400); % 0.1 到 100 rad/s [mag, ph] = bode(sys_r, w); mag_db = 20 * log10(squeeze(mag)); ph_deg = squeeze(ph); figure('Color', 'w'); subplot(2, 1, 1); semilogx(w, mag_db, 'LineWidth', 1.5); ylabel('幅值 [dB]'); grid on; subplot(2, 1, 2); semilogx(w, ph_deg, 'LineWidth', 1.5); ylabel('相位 [deg]'); xlabel('频率 [rad/s]'); grid on;

这段代码先在80km/h工况下重新构造状态矩阵,再把sys_r传给bode。幅频特性的低频段反映稳态增益,中频段的轻微抬升对应横摆共振频带,高频段的持续下降反映系统带宽限制。

5.2 通过幅频特征判断模型参数匹配度

算例模型的幅频曲线在1rad/s以下基本平坦,说明稳态增益与频率无关;在6到7rad/s附近会出现一次轻微的幅值抬升,对应特征根的自然频率位置;超过20rad/s后幅值开始持续下降,这是带一个零点的二阶系统典型形态。如果把后轴侧偏刚度从90000N/rad降到60000N/rad,共振抬升会明显变大,特征频率向低频移动,这对应过多转向趋势增强后系统阻尼下降的物理过程。

用正弦转向试验数据做对比时,如果实测幅频曲线在该频带内与模型重合,说明前、后轴等效刚度的取值可靠;如果峰值高度不一致,多半是前后轴刚度比例失真;如果峰值频率偏移,则重点检查I_z的估计值。做扫频试验时,转向输入幅值要保持在线性侧偏区以内,通常取0.05到0.1rad,输入频率上限覆盖到15rad/s即可。超出这个范围,轮胎非线性、转向系统延迟和悬架弹性运动学会开始主导响应,二自由度模型自然不再适用。

这就是用单轮二自由度模型完成操纵稳定性分析的一条完整工作流:从参数表构造状态矩阵,用阶跃响应验证稳态增益,用K值判断转向特性,最后用Bode图确认动态带宽是否落在合理区间。这套流程跑通之后,再去看带侧倾自由度的扩展模型,或者直接进入四轮分布式模型的横摆力矩控制设计,思路会顺畅得多。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询