以前做的一个课堂作业,分享给有需求的读者
1 模型假设
1) 忽略转向系的影响,以前、后轮转角作为输入;
2) 汽车只进行平行于地面的平面运动,而忽略悬架的作用;
3) 汽车前进(纵轴)速度不变,只有沿y轴的侧向速度和绕z轴的横摆运动(ay<0.4g) ;
4) 驱动力不大,对侧偏特性无影响;
5) 忽略空气阻力;
6) 忽略左右轮胎因载荷变化引起轮胎特性的变化;
7) 忽略回正力矩的变化。
2 模型建立
根据模型假设建立如图1所示的二自由度汽车模型。
图1 二自由度汽车模型
对模型受力分析,存在3个方向的受力平衡,分别为x、y和绕Z的力矩平衡,建立力学方程如下。
3 模型仿真
下表为已知的车辆参数,
在MATLAB>Simulink中搭建状态空间模型,模型如图所示。
图2 状态空间模型
(1)在前轮偏转角为1°,后轮偏转角为0°,车速为40km/h的情况下,输出前后轮的横向位移情况,输出结果如图3。
a)前轮横向位移 b)后轮横向位移
图3 前后轮的横向位移
(2)比较不同的前轮偏转角下,前后轮的横向位移情况。在前轮偏转角为1°,2°,3°,后轮偏转角为0°,车速为40km/h的情况下,输出前后轮的横向位移情况,输出结果如图4。
a)前轮横向位移 b)后轮横向位移
图4 前后轮的横向位移
可以从上面的图像中看出大,随着前轮转角的增大(1°,2°,3°),汽车的前后轮横向位移不断增大,而且变化趋势增大。因此应该避免在高速行驶时急转方向盘产生较大的前轮转角。
(3)比较车速情况下,前后轮的横向位移情况。在车速分别为40km/h、60km/h、80km/h,前轮偏转角为1°,后轮偏转角为0°的情况下,输出前后轮的横向位移情况,输出结果如图5。
a)前轮横向位移 b)后轮横向位移
图5 前后轮的横向位移
由图6可知,降低汽车行驶速度,前轮横向位移会减小,但会导致后轮的横向位置大幅增加。因此,较低的行驶速度可以使汽车具有更好的操纵性。
4 结论
通过建立汽车动力学模型,对汽车操纵性进行饿模拟。根据仿真结果可以发现车速和前轮转角都对二自由度汽车的操纵稳定性有很大影响。汽车以较低速度、较小的前轮转角行驶时,是相对安全的。
通过分析图3、4、5可以看出前、后轮的横向位移都是发散的,这是因为给前轮的一个阶跃响应,一直存在前轮转角,同时系统没有加入闭环控制,属于开环控制,这就导致前后轮的横向位移处于发散状态。
附录
MATLAB代码如下:
代码语言:javascript复制clc;clear;close all;
%% 基本车辆参数
v=40/3.6;%输入为km/h,方程单位为m/s
m=16000;%车重
I=10.85*m;%转动惯量
cf=340000;%侧偏刚度
cr=cf;
lf=2.65;%前轴到重心的距离
lr=3.35;%后轴到重心的距离
a=pi/180;
%% 组装矩阵
A=[-(cf cr)/(m*v) -1-(cf*lf-cr*lr)/(m*v^2) 0 0
-(cf*lf-cr*lr)/I -(cf*lf^2 cr*lr^2)/(I*v) 0 0
v lf 0 0
v -lr 0 0];
B=[cf/(m*v) cr/(m*v)
cf*lf/I cr*lr/I
0 0
0 0];
C=[0 0 1 0
0 0 0 1];
D=zeros(2,2);
%% 启动simulink模型
sim('two_degree_car.slx')
figure(1)
plot(tout,yout(:,1))
title('前轮横向位移变化情况')
xlabel('时间/s');ylabel('横移量/m')
figure(2)
plot(tout,yout(:,2))
xlabel('时间/s');ylabel('横移量/m')
title('后轮横向位移变化情况')