#线性车辆二自由度模型#状态空间#MATLAB#Simulink 基于MATLAB/Simulink搭建的车辆线性二自由度模型(常规搭建和状态方程搭建)(文件中包括slx文件和m文件),模型输入为前轮转角delta,模型输出为横摆角速度r和质心侧偏角beta(MATLAB代码+注释)

嘿,各位小伙伴!今天来跟大家分享一下如何基于MATLAB/Simulink搭建车辆线性二自由度模型,这可是汽车动力学研究中的一个经典模型哦,对于理解车辆的操控性有着重要意义。

咱们这次搭建有两种方式,常规搭建和状态方程搭建,并且文件里还包含了超实用的slx文件和m文件。模型的输入很明确,就是前轮转角 delta,输出则是横摆角速度 r 和质心侧偏角 beta

状态方程搭建

首先来讲讲状态方程搭建的MATLAB代码部分。状态方程是描述动态系统的一种有效方式,对于车辆线性二自由度模型也不例外。

% 定义车辆参数
m = 1500; % 车辆质量 (kg)
Iz = 2500; % 车辆绕z轴转动惯量 (kg*m^2)
lf = 1.2; % 质心到前轴的距离 (m)
lr = 1.4; % 质心到后轴的距离 (m)
Cf = 40000; % 前轮侧偏刚度 (N/rad)
Cr = 42000; % 后轮侧偏刚度 (N/rad)

% 状态空间矩阵
A = [-(Cf + Cr) / (m * vx), (Cf * lf - Cr * lr) / (m * vx) - vx;
     (Cf * lf - Cr * lr) / Iz, -(Cf * lf^2 + Cr * lr^2) / (Iz * vx)];
B = [Cf / m, 0;
     Cf * lf / Iz, 0];
C = [1, 0;
     0, 1];
D = [0, 0;
     0, 0];

% 定义前轮转角delta,假设一个简单的随时间变化规律
t = 0:0.01:10;
delta = 0.1 * sin(0.5 * t);

% 状态空间模型
sys = ss(A, B, C, D);

% 仿真
[y, t] = lsim(sys, delta', t);
beta = y(:, 1);
r = y(:, 2);

在这段代码里,咱们先定义了车辆的基本参数,像质量 m、转动惯量 Iz 以及前后轴到质心的距离 lflr,还有前后轮侧偏刚度 CfCr。这些参数可都是决定车辆动力学特性的关键哦。

接着构建状态空间矩阵 ABCD。矩阵 A 描述了系统状态随时间的变化关系,比如第一行第一列的元素 -(Cf + Cr) / (m * vx),它反映了质心侧偏角变化对自身的影响以及与横摆角速度的耦合关系。矩阵 B 是输入矩阵,它把前轮转角 delta 与系统状态联系起来。C 矩阵用于输出选择,这里直接输出质心侧偏角 beta 和横摆角速度 rD 矩阵在这个模型里为零矩阵,因为没有直接的前馈输入。

#线性车辆二自由度模型#状态空间#MATLAB#Simulink 基于MATLAB/Simulink搭建的车辆线性二自由度模型(常规搭建和状态方程搭建)(文件中包括slx文件和m文件),模型输入为前轮转角delta,模型输出为横摆角速度r和质心侧偏角beta(MATLAB代码+注释)

然后我们定义了前轮转角 delta 的变化规律,这里简单地用了正弦函数模拟实际驾驶中的转向操作。最后通过 lsim 函数对状态空间模型进行仿真,得到质心侧偏角 beta 和横摆角速度 r 的响应。

Simulink常规搭建

再来说说Simulink里的常规搭建。打开Simulink新建一个模型,从库浏览器里拖入各种所需模块。

  1. 输入模块:拖入一个 Step 模块来模拟前轮转角输入 delta,可以根据需要设置它的初始时间、幅值等参数。
  2. 数学运算模块:利用 Gain 模块来实现状态方程里矩阵运算中的系数乘法。比如对应 A 矩阵中的元素,就通过 Gain 模块设置相应的系数来进行计算。
  3. 积分模块:由于状态方程涉及到状态的导数,所以要用到 Integrator 模块来对导数进行积分,得到系统的状态量,也就是质心侧偏角 beta 和横摆角速度 r
  4. 输出模块:添加 Scope 模块或者 To Workspace 模块来观察和保存输出结果。Scope 模块可以实时显示 betar 随时间的变化曲线,而 To Workspace 模块则能把数据保存到MATLAB工作区,方便后续进一步分析处理。

通过这种常规搭建方式,我们在Simulink环境下直观地构建了车辆线性二自由度模型,每个模块的连接和参数设置都紧密对应着状态方程里的各项运算。

这两种搭建方式各有千秋,状态方程搭建方式更注重数学原理的直接实现,代码清晰明了,便于理解模型的理论基础。而Simulink常规搭建则更直观,通过模块的可视化连接,能快速构建和调试模型。希望大家通过尝试这两种方法,对车辆线性二自由度模型有更深入的认识,在汽车动力学的研究道路上更进一步!

附上的slx文件和m文件可以供大家进一步研究和调试,相信会对大家理解这个模型有很大帮助。一起探索,一起进步!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐