汽车防抱死制动系统仿真

简介

汽车防抱死制动系统(ABS)可以在汽车制动过程中自动控制和调节车轮制动力,防止制动过程中汽车车轮“抱死”,保持最大的车轮附着系数,从而得到最佳制动效果,即最短的制动距离、最小的侧向滑移及最好的制动转向性能。

使用说明

一、实验目的

1.建立汽车ABS数学模型

2.绘制汽车ABS仿真曲线

二、仿真数据

汽车ABS仿真所需参数见表6-4-1。

表6-4-1 汽车ABS仿真所需参数
车轮质量/kg 车轮滚动半径/m 车轮转动惯量/kg·m² 峰值附着系数
364 0.25 12 0.82
车轮抱死附着系数 目标滑移率 滑移率下限 滑移率上限
0.61 0.2 0.185 0.221
初始车速/(m/s) 初始角速度/(rad/s) 初始制动力矩/N·m 增压速率/N·(m/s)
25 100 500 1500
减压速率/N·(m/s) 采样时间/s 仿真时间/s
6000 0.02 5

三、实验步骤

1.建立汽车ABS数学模型

原理参考教材第六章实例4

2.绘制汽车ABS仿真曲线

根据汽车ABS数学模型,编写绘制车轮滑移率时域曲线、车轮前进速度与车轮线速度时域曲线、车轮法向载荷与地面制动力时域曲线、车轮制动力矩时域曲线、车轮制动减速度时域曲线的MWORKS程序如下。

# 定义所需的参数
T = 5 # 总仿真时间
Ts = 0.02 # 采样周期
n = Int(round(T / Ts)) # 采样点数
t = 0:Ts:(n-1)*Ts # 时间向量

phi_h = 0.82 # 滑移率-滑移比曲线参数:phi_h/so * s
phi_g = 0.61 # 滑移率-滑移比曲线参数:(phi_h - phi_g * so) / (1 - so) - (phi_h - phi_g) / (1 - so) * s

k = 1 # 循环计数器

phi = zeros(n) # 滑移比数组
smin = 0.185 # 最小滑移率
smax = 0.221 # 最大滑移率
so = 0.2 # 阈值滑移率
m = 364 # 车辆质量
rd = 0.25 # 轮胎半径
g = 9.8 # 重力加速度
Iw = 12 # 车轮转动惯量
uo = zeros(n) # 车轮中心前进速度数组
uo[1] = 25 # 初始车轮中心前进速度
uw = zeros(n) # 车轮线速度数组
uw[1] = 25 # 初始车轮线速度
s = ones(n) # 滑移率数组
s[1] = 0 # 初始滑移率
w = zeros(n) # 车轮角速度数组
w[1] = 100 # 初始车轮角速度
beta = zeros(n) # 车轮减速度数组
a_u = zeros(n) # 车辆加速度数组
Tb = zeros(n) # 车轮制动力矩数组
Tb[1] = 500 # 初始车轮制动力矩
ki = 1500 # 比例控制器增益
kd = 6000 # 比例控制器增益
Fx = zeros(n) # 车轮制动力数组
Fd = 364 * g # 地面制动力

while uo[k] > 0
    global k # 使用全局变量k
    uw[k] = rd * w[k] # 计算车轮线速度
    s[k] = (uo[k] - uw[k]) / uo[k] # 计算滑移率
    if s[k] <= so && s[k] >= 0
        phi[k] = phi_h / so * s[k] # 计算滑移比
    elseif s[k] > so && s[k] <= 1
        phi[k] = (phi_h - phi_g * so) / (1 - so) - (phi_h - phi_g) / (1 - so) * s[k] # 计算滑移比
    elseif s[k] < 0
        println("something is wrong") # 输出错误信息
        break # 跳出循环
    end
    Fx[k] = m * g * phi[k] # 计算车轮制动力
    beta[k] = (Fx[k] * rd - Tb[k]) / Iw # 计算车轮减速度
    a_u[k] = Fx[k] / m # 计算车辆加速度
    w[k+1] = w[k] + beta[k] * Ts # 计算车轮角速度
    uo[k+1] = uo[k] - a_u[k] * Ts # 计算车轮中心前进速度
    if s[k] < smin
        Tb[k+1] = Tb[k] + ki * Ts # 根据滑移率调整车轮制动力矩
    elseif s[k] >= smax
        if Tb[k] >= 0 && Tb[k] <= kd * Ts
            Tb[k+1] = 0 # 根据滑移率调整车轮制动力矩
        else
            Tb[k+1] = Tb[k] - kd * Ts # 根据滑移率调整车轮制动力矩
        end
    elseif s[k] >= smin && s[k] <= smax
        Tb[k+1] = Tb[k] # 根据滑移率调整车轮制动力矩
    end
    k += 1 # 计数器加一
end

# 绘制图表
figure(1)
plot(t, s)
axis([0 t[k] + 0.02 0 0.35])
xlabel("时间/s")
ylabel("滑移率")
grid()

figure(2)
plot(t, uo, t, uw, "--")
axis([0 t[k] + 0.2 0 31])
xlabel("时间/s")
ylabel("速度/(m/s)")
text(0.5, 13, "车轮中心前进速度")
text(0.6, 23, "车轮线速度")
grid()

figure(3)
plot(t, Fd * ones(n), "--", t, Fx)
axis([0 t[k] + 0.02 0 4000])
xlabel("时间/s")
ylabel("力/N")
text(2.0, 3700, "地面制动力")
grid()

figure(4)
plot(t, Tb)
axis([0 t[k] + 0.02 0 2000])
xlabel("时间/t")
ylabel("车轮制动力矩/N.m")
grid()

figure(5)
s = plot(t, Fx / m)
axis([0 t[k] + 0.02 0 10])
xlabel("时间/t")
ylabel("车轮制动减速度/(m/s^2)")
grid()

在MWORKS编辑器中输入这些程序,点击运行按钮,就会得到车轮滑移率时域曲线、车轮前进速度与车轮线速度时域曲线、车轮法向载荷与地面制动力时域曲线、车轮制动力矩时域曲线、车轮制动减速度时域曲线,如图6-4-2~图6-4-6所示。

image.png

图6-4-2 车轮滑移率的时域曲线

从车轮滑移率时域曲线可以看出,滑移率随着时间快速接近0.2附近,开始振荡,在3.2s附近趋于平衡。

image.png

图6-4-3 车轮前进速度与车轮线速度的时域曲线

从车轮前进速度与车轮线速度时域曲线可以看出,车轮线速度随时间的增加而减小,车轮中心前进速度总体也在减小,但是有小幅振荡,在3.6s时均减小至0,汽车完全制动。

image.png

图6-4-4 车轮法向载荷与地面制动力的时域曲线

从车轮法向载荷与地面制动力时域曲线可以看出,在制动过程中,车轮地面制动力快速上升到3000N附近,由于ABS作用,在2000~3000N之间反复振荡。车轮法向载荷是一条直线,说明是不变的。

从车轮制动力矩时域曲线可以看出,在制动过程中,一开始制动力矩迅速升高至1400N·m附近,随后在1000N·m上下振荡,最后在3.6s时减小至0。

从车轮制动减速度时域曲线可以看出,在制动过程中,一开始制动减速度迅速升高至8m/s²附近,随后稳定振荡变化,最后在3.6s时减小至0。

image.png

图6-4-5 车轮制动力矩的时域曲线

image.png

图6-4-6 车轮制动减速度的时域曲线