matlab simulink 车辆二自由度质心侧偏角,横摆角速度相平面程序,可以自己改参数,附说明

直接进入正题,最近在倒腾车辆动力学仿真时发现个有意思的活儿——用Simulink搭二自由度模型画相平面图。这玩意儿能直观看出质心侧偏角和横摆角速度的互动关系,对理解车辆稳定性挺有帮助。咱们今天就来手把手搞个能自定义参数的版本,附赠调试时踩过的坑。

先甩个模型框架:

% 参数配置(放脚本里方便修改)
m = 1200;       % 整车质量(kg)
Iz = 1600;      % 绕Z轴转动惯量(kg·m²)
a = 1.2;        % 前轴到质心距离(m)
b = 1.5;        % 后轴到质心距离(m)
Cf = 80000;     % 前轮总侧偏刚度(N/rad)
Cr = 100000;    % 后轮总侧偏刚度(N/rad)
u = 20;         % 车速(m/s)

Simulink模型里最关键的是这两个微分方程:

β_dot = (Ff + Fr)/(m*u) - r
r_dot = (a*Ff - b*Fr)/Iz

对应的建模可以直接用Gain模块搭,但更骚的操作是直接上State-Space模块。不过这里为了直观,咱们用积分器硬核拼接(见图1)。

!二自由度模型结构

matlab simulink 车辆二自由度质心侧偏角,横摆角速度相平面程序,可以自己改参数,附说明

重点说几个容易翻车的点:

  1. 速度单位记得统一,别前边用kph后边用m/s
  2. 侧偏刚度符号容易搞反,前轮公式里实际是负刚度:
Ff = -Cf*(beta - a*r/u + delta);  % delta是前轮转角
% 这里delta如果做稳态分析可以设0
  1. 积分器初始值别空着,给个[0.1; 0.1]触发相轨迹

跑完仿真后用这串代码画相平面:

figure('Color','w')
plot(out.beta.Data, out.r.Data)
xlabel('β(rad)'); ylabel('r(rad/s)');
grid on
hold on
quiver(out.beta.Data(1:end-1), out.r.Data(1:end-1),...
       diff(out.beta.Data), diff(out.r.Data), 'AutoScale','off')
title('相平面图 - 秋名山车神版')

重点是这个quiver函数画速度箭头,能看出轨迹走向。如果箭头乱飞,八成是参数给得太暴力导致数值不稳定。

调参时重点关注这几个参数的影响:

  • 前/后侧偏刚度比(Cf/Cr):影响不足转向特性
  • 轴距分配(a/b):改这个相当于调整重心位置
  • 车速u:高速时系统更容易失稳

举个作死案例:把Cr降到50000,车速提到30m/s,相平面图立马出现发散螺旋——典型的激浪行为,不建议在真实车辆尝试。

完整模型打包时记得用模型引用封装子系统,这样换参数不用重新编译。需要源码的老铁评论区留邮箱,不过建议先自己动手搭一次——毕竟翻车才是最好的老师。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐