汽车操纵动力学Simulink建模 | 时域 频域 稳定性分析 | 2自由度单轮系统
图通道
2021年11月07日 19:37
收录于文集
共25篇

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

结构 1. 引言 2. 时域分析 3. 频域分析 4. 稳定性分析 5. 控制器设计 6. MATLAB模型

1. 引言

A. 基本假设

描述车辆运动的二自由度基本操纵模型基于以下理想化假设:

  • 如果车辆在平坦路面上行驶(即没有垂直路面不平度输入),则可以忽略与行驶动力学相关的垂直力效应和耦合效应;

  • 包括悬架在内的车辆结构是刚性的;

  • 忽略转向系统并将输入直接应用于车轮;或者假设转向系统是刚性的,然后通过具有固定传动比的方向盘将输入施加到方向盘上;

  • 忽略空气动力;

  • 车辆仅在平衡状态附近(如直线行驶或稳态转向)  受到很小的扰动,这意味着前轮的输入角足够小;   以保证车辆运动方程是线性的;

在上述假设之后,模型将忽略一些因素,例如横向载荷传递、外倾角和具有滚动自由度的簧载质量。但是,可以通过线性叠加的方法将这些因素的影响线性化,并叠加在一些参数上,这样既可以保持模型的线性,又可以将这些因素考虑在内,使模型更贴近实际情况。

B. 运动方程和状态空间

模型如下所示, a, b分别代表车辆重心到前后轮的距离:

2. 时域分析

A. Simulink 模型

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

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

B. 不同转向角下相同速度的结果

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

C. 相同转向角下不同速度的结果

D. 相同 a_y 下不同速度的结果

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

两辆车的横摆角速度达到了相同的值(30m/s速度为 0.073m/s,40m/s速度为0.097m/s)。

E. 结论

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

3. 频域分析

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

4. 稳定性分析

A. 根轨迹简介

根轨迹是研究未知系数K变化时系统极点的变化。在K从0 到无穷大的变化过程中,根的连续变化是在复平面上连接的。形成的曲线轨迹是根轨迹。车辆的稳定性与这一系列特征值有很大关系。

B. 根轨迹与稳定性的关系

当特征值实部小于0 时,系统稳定,特征值离虚轴越远,稳定性越好。从根轨迹,可以知道稳定性如何随着某个参数的变化而变化。在本文中,设置前进速度u作为变化参数。

C. 结果

使用MATLAB 在图15中绘制根轨迹(矩阵A的特征值随速度变化)。由于根是对称的,所以根轨迹的上部和下部完全对称。

从图中可以看出,随着速度的增加,两车的根都趋近于虚轴,它们的阻尼比同时减小。因此,当速度增加时,两辆车都变得更加不稳定。不过,从根部到虚轴的距离来看,法拉利的稳定性无疑要比别克好很多。如铅垂线区域所示,法拉利40m/s 时的稳定性与别克10m/s时的稳定性相当。结果还表明,法拉利比别克具有较大的稳定性裕度。

5. 4WS 控制器设计

做4WS 的频率分析:从图中可以看出,4 轮系统 相对于前轮系统具有更低的横摆率增益,其相位变化与 前轮转向相同。对于横向加速度,在低频范围内,四轮 系统的增益低于前轮系统的增益,而高频范围则相反。 相变明显小于前轮转向的相变。 至于速度,如图所示,4WS 的增益在低频范围内 逐渐增大。然而,FWS 的增益在低频范围内是恒定的。 在高频范围内,它们具有相同的趋势并随着频率的降低 而减小。4WS 的相变比FWS 小,但都具有相同的趋 势。

6. MATLAB模型

代码块
JavaScript
自动换行
复制代码
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