汽车二自由度模型和汽车三自由度模型, 本案例采用三种不同方法进行搭建搭汽车线性二自由度simulink模型, 内容包含: 具体的车辆参数数值,详细的设计说明文档,附带关于汽车simulink仿真实例及其Simulink建模仿真实例详解。 非常适合初学者学习simulink使用 模型输入为前轮转角, 输出为横摆角速度和速度

方向盘一打,车子走线就开始飘了。这背后的动力学原理,咱们可以拿二自由度模型来练手。今天咱们不聊公式推导,直接上Simulink实操。先准备点干货:整车质量1573kg,轴距2.8米,前轮侧偏刚度-76650N/rad,后轮-76650N/rad,绕Z轴转动惯量2873kg·m²——这些参数先记下来,待会儿建模要当饭吃。

打开Simulink新建空白模型,先拖个Step模块当转向输入。转角参数设置成0.1秒时打10度角,这个数值别太大,毕竟咱们做的是线性模型。核心部分得建个子系统,双击进去开始搭动力学核:

function [yaw_rate, velocity] = fcn(delta, F_yf, F_yr)
%#codegen
m = 1573;
Iz = 2873;
a = 1.43;
b = 1.47;

beta = velocity(2)/velocity(1);
r = yaw_rate;

dydt = [ (F_yf*cos(delta) + F_yr)/(m*velocity(1)) - beta;
         (a*F_yf*cos(delta) - b*F_yr)/Iz ];

velocity = velocity + dydt*0.01;

这段代码看着简单,其实藏着玄机。注意beta计算的分母加了velocity(1)的绝对值,防止低速时数值爆炸。积分步长用0.01秒,和后面仿真器设置要同步。

侧向力计算得单独建个模块。新建MATLAB Function块,敲入:

F_yf = -76650 * (beta + a*r/velocity(1) - delta);
F_yr = -76650 * (beta - b*r/velocity(1));

这里的负号别手抖删了,轮胎特性曲线在线性区就是这么设定的。速度项记得做分母,不然量纲对不上。

汽车二自由度模型和汽车三自由度模型, 本案例采用三种不同方法进行搭建搭汽车线性二自由度simulink模型, 内容包含: 具体的车辆参数数值,详细的设计说明文档,附带关于汽车simulink仿真实例及其Simulink建模仿真实例详解。 非常适合初学者学习simulink使用 模型输入为前轮转角, 输出为横摆角速度和速度

连好信号线后,别忘了在Model Settings里把求解器改成Fixed-step ode4,步长0.01秒。这时候点运行,Scope里应该能看到横摆角速度先冲高后平稳的曲线。要是看到锯齿状波形,八成是代数环没处理好——在反馈回路里插个Unit Delay模块试试。

进阶玩法可以试试State-Space模块。把动力学方程写成矩阵形式:

A = [ (-Caf-Car)/(m*U) , (-a*Caf + b*Car)/(m*U^2)-1 ;
      (-a*Caf + b*Car)/Iz , (-a^2*Caf - b^2*Car)/(Iz*U) ];
B = [ Caf/(m*U) ; a*Caf/Iz ];

这里的U要设置成初始速度参数,别傻乎乎地用变量,会破坏线性条件。这种方法适合快速调参,但物理意义没前面那种直观。

新手常踩的坑:1. 忘记设初始速度导致除零错误 2. 侧偏刚度符号搞反 3. 积分器初始状态没清零。遇到仿真报错别慌,先检查信号维度——速度变量得用Bus把纵向和侧向分量打包。

模型跑通后,试试把前轮转角改成正弦输入,能看到横摆角频率响应。这对理解车辆操控稳定性特别有用,下次下赛道调底盘说不定就用上了。完整模型文件我放网盘了,包含三种建模方法和参数说明文档,评论区自取。

Logo

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

更多推荐