2. 高附着系数路面ABS控制效果验证
任务定义
本案例在干沥青路面(峰值附着系数 μ_peak = 0.9)上,验证ABS控制算法能否将车轮滑移率维持在最佳区间(通常为 0.08~0.15),并对比有无ABS时的制动距离差异。采用单轮车辆模型,通过Simulink搭建仿真环境,以阶跃制动压力输入作为无ABS基准,以滑移率门限控制作为ABS策略。
车辆与轮胎模型
单轮模型动力学方程为:
m·dv/dt = -F_x,I·dω/dt = r·F_x - T_b
其中 m 为1/4车辆质量(400 kg),v 为车速,ω 为轮速,r 为车轮有效半径(0.3 m),I 为车轮转动惯量(1.2 kg·m²),T_b 为制动力矩。纵向轮胎力 F_x = μ(λ)·m·g,其中 g=9.81 m/s²。滑移率定义为 λ = (v - ω·r)/v(制动时)。
采用魔术公式简化模型描述 μ-λ 关系(干沥青):
μ(λ) = 1.1·sin(1.4·arctan(7.0·λ - 0.2·(7.0·λ - arctan(7.0·λ))))
该曲线峰值约为 0.9,出现在 λ ≈ 0.12 附近,符合干沥青路面特征。
ABS控制策略
采用滑移率门限控制:当 λ ≥ 0.18 时减小制动力矩(释放阶段);当 λ ≤ 0.08 时增大制动力矩(增压阶段);介于两者之间时保持当前力矩。控制周期为 5 ms。无ABS工况下,制动力矩恒定为 1200 N·m(阶跃施加)。
Simulink模型搭建
模型包含以下模块:
- 车辆动力学子系统:根据式(1)计算 v 和 ω,输出车速与轮速。
- 轮胎力计算模块:由滑移率查 μ-λ 曲线,计算 F_x。
- ABS控制器:输入滑移率,输出制动力矩指令。
- 无ABS基准模块:恒定制动力矩 1200 N·m。
仿真初始条件:车速 v₀ = 30 m/s(108 km/h),轮速 ω₀ = v₀/r = 100 rad/s。仿真终止条件:车速降至 0.5 m/s 以下。使用变步长求解器 ode45,最大步长 1 ms。
模型参数配置
在MATLAB命令窗口执行以下参数初始化脚本:
% 车辆参数
m = 400; % 1/4车质量 [kg]
I = 1.2; % 车轮转动惯量 [kg·m^2]
r = 0.3; % 车轮半径 [m]
g = 9.81; % 重力加速度 [m/s^2]
% 初始条件
v0 = 30; % 初始车速 [m/s]
w0 = v0/r; % 初始轮速 [rad/s]
% 无ABS制动力矩
Tb_const = 1200; % [N·m]
% ABS控制参数
lambda_high = 0.18; % 滑移率上限
lambda_low = 0.08; % 滑移率下限
Tb_max = 1500; % 最大制动力矩 [N·m]
Tb_min = 100; % 最小制动力矩 [N·m]
Tb_step = 200; % 力矩调节步长 [N·m]
Ts = 0.005; % 控制周期 [s]
Simulink模型文件结构
创建以下Simulink模型(文件名为 abs_high_mu.slx):
% 在MATLAB中执行以下命令创建模型骨架
% 实际建模需在Simulink编辑器中完成模块连接
open_system(new_system('abs_high_mu'));
% 添加必要模块(示意代码,需在GUI中连线)
% 1. 积分器1: 车速 v = (1/m)∫(-Fx)dt
% 2. 积分器2: 轮速 w = (1/I)∫(r*Fx - Tb)dt
% 3. 滑移率计算: lambda = (v - w*r)/v
% 4. 轮胎力Fcn: Fx = mu(lambda)*m*g
% 5. ABS控制器: MATLAB Function模块
% 6. 无ABS基准: 常数模块 Tb_const
% 7. 制动力矩选择: 手动开关(0=无ABS, 1=ABS)
% 8. 停止条件: v < 0.5 时终止仿真
ABS控制器的MATLAB Function模块内部代码:
function Tb = abs_controller(lambda, Tb_prev)
% 滑移率门限控制
persistent Tb_hold
if isempty(Tb_hold)
Tb_hold = 1200; % 初始制动力矩
end
if lambda > 0.18
Tb_hold = max(Tb_min, Tb_hold - Tb_step);
elseif lambda < 0.08
Tb_hold = min(Tb_max, Tb_hold + Tb_step);
end
Tb = Tb_hold;
end
仿真运行与数据记录
使用以下脚本运行两种工况并记录结果:
% 仿真设置
sim_time = 10; % 最大仿真时间 [s]
% 工况1: 无ABS
set_param('abs_high_mu/ManualSwitch', 'sw', '0');
simOut1 = sim('abs_high_mu', 'StopTime', num2str(sim_time));
v_noABS = simOut1.v.signals.values;
t_noABS = simOut1.tout;
s_noABS = cumtrapz(t_noABS, v_noABS); % 制动距离
% 工况2: 有ABS
set_param('abs_high_mu/ManualSwitch', 'sw', '1');
simOut2 = sim('abs_high_mu', 'StopTime', num2str(sim_time));
v_ABS = simOut2.v.signals.values;
t_ABS = simOut2.tout;
s_ABS = cumtrapz(t_ABS, v_ABS);
% 计算制动距离(从t=0到v<0.5m/s)
idx1 = find(v_noABS < 0.5, 1, 'first');
idx2 = find(v_ABS < 0.5, 1, 'first');
dist_noABS = s_noABS(idx1);
dist_ABS = s_ABS(idx2);
fprintf('无ABS制动距离: %.2f m\n', dist_noABS);
fprintf('ABS制动距离: %.2f m\n', dist_ABS);
fprintf('距离缩短比例: %.1f%%\n', (dist_noABS-dist_ABS)/dist_noABS*100);
验证方法与判定标准
完成仿真后,通过以下观测点验证ABS效果:
- 滑移率维持验证:绘制ABS工况下滑移率随时间变化曲线,观察稳态阶段滑移率是否在 0.08~0.18 区间内振荡(门限控制固有特性),且大部分时间处于 0.08~0.15 的最佳区间附近。
- 制动距离对比:比较两种工况的制动距离,ABS工况应显著短于无ABS工况。在干沥青路面上,无ABS因车轮抱死导致滑移率接近1.0,轮胎力下降,制动距离明显增加。
- 判定标准:ABS工况制动距离比无ABS缩短 15% 以上,且ABS工况下车速平稳下降无突变,轮速不降为0(无完全抱死),即判定验证通过。
预期结果分析
根据单轮模型和门限控制逻辑,可预期以下结果:
- 无ABS工况:制动力矩恒定为1200 N·m,车轮在约0.3 s内抱死(λ→1.0),轮胎力降至滑动摩擦水平(μ≈0.6~0.7),制动距离显著增加。
- ABS工况:滑移率在0.08~0.18之间循环振荡,轮胎力保持在峰值附近(μ≈0.85~0.9),制动距离明显缩短。
- 定量预期:初速30 m/s下,无ABS制动距离约75~85 m,ABS制动距离约55~65 m,缩短比例约20%~30%。
以上数值为基于模型参数的估算范围,实际仿真结果以Simulink运行为准。判定通过标准为ABS制动距离较无ABS缩短15%以上,且ABS工况下轮速始终大于零(无完全抱死)。