
汽车操纵动力学是车辆系统动力学领域的研究热点。本推文利用Simulink对车辆的两自由度单轨模型进行操纵响应和稳定性分析,最后进行简单的四轮转向控制器(4WS)设计。

结构 1. 引言 2. 时域分析 3. 频域分析 4. 稳定性分析 5. 控制器设计 6. MATLAB模型
描述车辆运动的二自由度基本操纵模型基于以下理想化假设:
如果车辆在平坦路面上行驶(即没有垂直路面不平度输入),则可以忽略与行驶动力学相关的垂直力效应和耦合效应;
包括悬架在内的车辆结构是刚性的;
忽略转向系统并将输入直接应用于车轮;或者假设转向系统是刚性的,然后通过具有固定传动比的方向盘将输入施加到方向盘上;
忽略空气动力;
车辆仅在平衡状态附近(如直线行驶或稳态转向) 受到很小的扰动,这意味着前轮的输入角足够小; 以保证车辆运动方程是线性的;
在上述假设之后,模型将忽略一些因素,例如横向载荷传递、外倾角和具有滚动自由度的簧载质量。但是,可以通过线性叠加的方法将这些因素的影响线性化,并叠加在一些参数上,这样既可以保持模型的线性,又可以将这些因素考虑在内,使模型更贴近实际情况。
模型如下所示, a, b分别代表车辆重心到前后轮的距离:



使用法拉利Monza 和别克1949 进行一些时域分析。关键参数见下表1 (两车的外观如图2所示):


使用表1中的参数, 建立 simulink 模型进行时域分析。如图3 所示:


两辆车之间的差异是显着的。法拉利Monza比别克1949具有更快的响应时间和更短的稳定时间。虽然法拉利Monza比别克1949具有更大的横向加速度,但法拉利Monza的横向速度更低,这意味着它拥有更好的操控动力学特性。

为了进一步研究稳态转向特性,仿真中测试了两种车辆在相同稳态横向加速度条件下的系统响应。将两辆车的横向加速度设置为 0.3g。δf 是实现固定横向加速度的必要参数。可以从以下公式和方程中得到:

两辆车的横摆角速度达到了相同的值(30m/s速度为 0.073m/s,40m/s速度为0.097m/s)。
从以上分析结果可以发现,法拉利Monza的瞬态响应明显优于别克1949,分别体现在更短的稳定时间、更小的超调和更好的阻尼特性。虽然法拉利Monza的横摆率和横向加速度比别克1949更大,但法拉利的横 向速度更小,这意味着它具有更好的操控动力学特性。此外,当改变时域过程的一个参数时,时域分析图形具有相似的形状,因为时域系统是线性系统。



根据图13,可得出以下结论。 同等速度下,法拉利的响应带宽比别克大,可见前者具有更好的频响特性。根据相频响应曲线,从图中还可以看出,法拉利的系统响应滞后小于别克汽车,系统延迟更小。 图13的结果图14非常相似,唯一的区别是法拉利的稳态增益小于别克。

根轨迹是研究未知系数K变化时系统极点的变化。在K从0 到无穷大的变化过程中,根的连续变化是在复平面上连接的。形成的曲线轨迹是根轨迹。车辆的稳定性与这一系列特征值有很大关系。
当特征值实部小于0 时,系统稳定,特征值离虚轴越远,稳定性越好。从根轨迹,可以知道稳定性如何随着某个参数的变化而变化。在本文中,设置前进速度u作为变化参数。
使用MATLAB 在图15中绘制根轨迹(矩阵A的特征值随速度变化)。由于根是对称的,所以根轨迹的上部和下部完全对称。

从图中可以看出,随着速度的增加,两车的根都趋近于虚轴,它们的阻尼比同时减小。因此,当速度增加时,两辆车都变得更加不稳定。不过,从根部到虚轴的距离来看,法拉利的稳定性无疑要比别克好很多。如铅垂线区域所示,法拉利40m/s 时的稳定性与别克10m/s时的稳定性相当。结果还表明,法拉利比别克具有较大的稳定性裕度。
做4WS 的频率分析:从图中可以看出,4 轮系统 相对于前轮系统具有更低的横摆率增益,其相位变化与 前轮转向相同。对于横向加速度,在低频范围内,四轮 系统的增益低于前轮系统的增益,而高频范围则相反。 相变明显小于前轮转向的相变。 至于速度,如图所示,4WS 的增益在低频范围内 逐渐增大。然而,FWS 的增益在低频范围内是恒定的。 在高频范围内,它们具有相同的趋势并随着频率的降低 而减小。4WS 的相变比FWS 小,但都具有相同的趋 势。


clear all
close all
clc
% Parameters
m_F = 1008;
m_B = 2045;
m = [m_F m_B];
Izz_F = 1031;
Izz_B = 5428;
Izz = [Izz_F Izz_B];
a_F = 1.234;
a_B = 1.488;
a = [a_F a_B];
b_F = 1.022;
b_B = 1.712;
b = [b_F b_B];
L = a+b;
Cf_F = 117.44*1000;
Cf_B = 77.85*1000;
Cf = [Cf_F Cf_B];
Cr_F = 144.93*1000;
Cr_B = 76.51*1000;
Cr = [Cr_F Cr_B];
u = 40;
g = 9.8;
phi = 15;
ng = 45;
p=1;
% FWS Design
for i = 1:2 % 1-Ferrari 2-Buick1949
syms color label shape
color = ['r' 'b' 'r--' 'b--' 'g' 'y'];
shape = ['>' 'o'];
label = ['Ferrari' '1949Buick'];
p = 1;
%
% Define System Matrices
A = [-(Cf(i)+Cr(i))/(m(i)*u) -(a(i)*Cf(i)-b(i)*Cr(i))/(m(i)*u)-u
-(a(i)*Cf(i)-b(i)*Cr(i))/(Izz(i)*u) -(a(i)^2*Cf(i)+b(i)^2*Cr(i))/(Izz(i)*u)];
B = [Cf(i)/m(i) a(i)*Cf(i)/Izz(i)]';
C = [1 0
0 1];
D = [0 0]';
% Time Domain Analysis
deltaf = phi*pi/ng/180; % Case 1:相同角阶跃输入
sim('Handling_Dynamics.slx') %仿真Simulink模型
figure(p) % vy
p = p+1;
set(gcf,'Position',[200,100,600,300]);
plot(t',vy,color(i))
xlabel('t(s)')
ylabel('Lateral Velocity (m/s)')
legend('Ferrari','1949 Buick','Location','SouthEast')
title('Step Steer with u=40m/s and \delta_s=15°')
grid on
hold on
figure(p) % ay
p = p+1;
set(gcf,'Position',[200,100,600,300]);
plot(t,Ay,color(i))
xlabel('t(s)')
ylabel('Lateral Acceleration (m/s^2)')
legend('Ferrari','1949 Buick','Location','SouthEast')
title('Step Steer with u=40m/s and \delta_s=15°')
grid on
hold on
figure(p) % yaw rate
p = p+1;
set(gcf,'Position',[200,100,600,300]);
plot(t',Gamma,color(i))
xlabel('t(s)')
ylabel('Yaw Rate (rad/s)')
legend('Ferrari','1949 Buick','Location','SouthEast')
title('Step Steer with u=40m/s and \delta_s=15°')
grid on;
hold on
ay_ss = 0.3*g; % Case 2:相同侧向加速度稳态响应
K(i) = m(i)*(b(i)/Cf(i)-a(i)/Cr(i))/L(i);
k(i) = (b(i)/Cf(i)-a(i)/Cr(i))*Cf(i)*Cr(i);
deltaf = ay_ss*(L(i)+K(i)*u^2)/u^2;
sim('Handling_Dynamics.slx')
figure(p) % vy
p = p+1;
set(gcf,'Position',[200,100,600,300]);
plot(t',vy,color(i))
xlabel('t(s)')
ylabel('Lateral Velocity (m/s)')
legend('Ferrari','1949 Buick','Location','SouthEast')
title('Step Steer with u=40m/s and a_y=0.3*g')
grid on;
hold on
figure(p) % ay
p = p+1;
set(gcf,'Position',[200,100,600,300]);
plot(t',Ay,color(i))
xlabel('t(s)')
ylabel('Lateral Acceleration (m/s^2)')
legend('Ferrari','1949Buick','Location','SouthEast')
title('Step Steer with u=40m/s and a_y=0.3*g')
grid on;
hold on
figure(p) % yaw rate
p = p+1;
set(gcf,'Position',[200,100,600,300]);
plot(t',Gamma,color(i))
xlabel('t(s)')
ylabel('Yaw Rate (rad/s)')
legend('Ferrari','1949Buick','Location','SouthEast')
title('Step Steer with u=40m/s and a_y=0.3*g')
grid on;
hold on
% Frequency Domain Analysis
...... 下载代码&模型: https://mbd.pub/o/bread/mbd-YZ6Um5pq