1. 线控转向失效容错控制技术背景
在智能电动汽车快速发展的今天,线控转向系统(SBW)已成为新一代智能底盘的核心技术之一。与传统机械转向系统不同,线控转向完全取消了方向盘与转向轮之间的机械连接,通过电信号实现转向控制。这种设计虽然带来了布置灵活、转向比可调等优势,但也引入了新的可靠性挑战。
我曾参与过多个智能电动汽车项目,最深刻的体会是:当线控转向系统失效时,车辆会立即失去转向能力,这在高速行驶时极其危险。特别是在四轮轮毂电机驱动的电动车上,由于没有传统转向机构,这个问题更加突出。2018年某车企的测试事故就是由于线控转向失效导致车辆失控,这个案例让我意识到容错控制的重要性。
差动转向技术为解决这一问题提供了新思路。它利用左右轮驱动力差产生转向力矩,就像坦克通过两侧履带速度差实现转向一样。但单纯依靠差动转向往往难以同时保证轨迹跟踪精度和横摆稳定性,这正是我们需要开发协同控制方法的原因。
2. 分层控制架构设计解析
2.1 上层控制器设计要点
模型预测控制(MPC)作为上层控制核心,其设计需要考虑三个关键因素:
-
预测模型精度:我们采用二自由度车辆模型为基础,状态方程如下:
matlab复制% 车辆动力学模型参数 m = 1850; % 整车质量(kg) Iz = 3500; % 绕Z轴转动惯量(kg·m^2) lf = 1.2; % 前轴到质心距离(m) lr = 1.5; % 后轴到质心距离(m) Cf = 80000; % 前轮侧偏刚度(N/rad) Cr = 100000; % 后轮侧偏刚度(N/rad) % 状态空间矩阵 A = [0 1 0 0; 0 -(Cf+Cr)/(m*vx) (Cf+Cr)/m (lf*Cf-lr*Cr)/(m*vx); 0 0 0 1; 0 (lr*Cr-lf*Cf)/(Iz*vx) (lf*Cf-lr*Cr)/Iz -(lf^2*Cf+lr^2*Cr)/(Iz*vx)]; B = [0; Cf/m; 0; lf*Cf/Iz]; C = eye(4); sys = ss(A,B,C,0); -
优化目标函数:我们采用加权二次型形式:
code复制J = Σ(Δδ^T Q Δδ + ΔMz^T R ΔMz) + ρε^2其中Q、R为权重矩阵,ρε^2为松弛变量惩罚项。
-
约束条件处理:包括:
- 前轮转角物理限制:|δ| ≤ 30°
- 横摆力矩执行能力限制:|Mz| ≤ 4000 Nm
- 轮胎侧向力饱和约束
实际工程中发现:预测时域选择10-15步,控制时域选择2-3步时,能在计算复杂度和控制效果间取得较好平衡。
2.2 滑模变结构控制实现
针对前轮转角跟踪,我们设计积分型滑模面:
matlab复制s = c1*(δ - δ_ref) + c2*∫(δ - δ_ref)dt + dδ/dt
控制律采用饱和函数代替符号函数减小抖振:
matlab复制% 滑模控制参数
c1 = 1.5;
c2 = 0.8;
eta = 0.1;
phi = 0.05;
% 饱和函数实现
function u = sat(s)
if abs(s) <= phi
u = s/phi;
else
u = sign(s);
end
end
% 控制量计算
u_eq = ... % 等效控制部分
u_sw = -eta * sat(s);
u_total = u_eq + u_sw;
实测表明,这种设计能使跟踪误差在0.5秒内收敛到±0.5°以内,满足大多数工况需求。
3. 下层转矩优化分配技术
3.1 轮胎负荷率最小化模型
轮胎负荷率定义为:
code复制μ_i = √(Fx_i^2 + Fy_i^2)/(μ_max * Fz_i)
优化目标为:
code复制min Σμ_i^2
约束条件包括:
- 总驱动力需求:Fx1 + Fx2 + Fx3 + Fx4 = Fx_total
- 总横摆力矩需求:(Fx2 - Fx1)*tf/2 + (Fx4 - Fx3)*tr/2 = Mz
- 电机转矩限制:|T_i| ≤ T_max
- 轮胎附着椭圆约束
3.2 有效集法实现步骤
- 初始化有效集:选择可能激活的约束
- 求解KKT条件:
matlab复制H = 2*[w1 0 0 0; 0 w2 0 0; 0 0 w3 0; 0 0 0 w4]; Aeq = [1 1 1 1; -tf/2 tf/2 -tr/2 tr/2]; beq = [Fx_total; Mz]; options = optimoptions('quadprog','Algorithm','active-set'); [Fx_opt,fval] = quadprog(H,f,[],[],Aeq,beq,lb,ub,[],options); - 检查约束违反情况并更新有效集
- 迭代直至收敛
实测数据显示,该方法能在5ms内完成计算,满足实时性要求。
4. 联合仿真验证方案
4.1 CarSim-Simulink联合仿真配置
-
车辆参数配置:
- 在CarSim中设置整车质量1850kg
- 轴距2.7m,轮距1.6m(前)/1.58m(后)
- 轮胎选用Pacejka 2002模型
-
接口配置:
matlab复制% 初始化接口 csim_init = actxserver('CarSim.Application'); csim_proj = csim_init.get('Project'); csim_proj.Invoke('SetPath', 'D:\Projects\FaultTolerantCtrl'); % 实时数据交换 function [outputs] = carsim_step(inputs) csim_proj.SetArray('INPUTS', inputs); csim_proj.RunManeuver; outputs = csim_proj.GetArray('OUTPUTS'); end
4.2 典型测试工况
-
双移线工况(80km/h):
- 转向失效发生在t=3s
- 容错控制器在100ms内激活
- 最大横向偏差<0.3m
-
正弦停滞工况(60km/h):
- 频率0.5Hz
- 横摆角速度跟踪误差<5%
-
低附着路面制动转向:
- μ=0.3湿滑路面
- 制动同时要求转向避障
- 轮胎负荷率维持在0.8以下
5. 工程应用中的关键问题
5.1 执行器延迟补偿
实测发现电机响应存在约50ms延迟,我们采用Smith预估器补偿:
matlab复制% 延迟模型
G = tf(1,[0.05 1]);
Gd = c2d(G, Ts);
% Smith预估器
function y = smith_predictor(u)
persistent u_buffer;
if isempty(u_buffer)
u_buffer = zeros(10,1); % 10步缓冲
end
y_est = Gd.Numerator{1} * u_buffer;
u_buffer = [u; u_buffer(1:end-1)];
y = y_est;
end
5.2 参数自适应调整
针对不同车速和路面条件,在线调整MPC权重:
matlab复制function [Q,R] = adaptive_tuning(vx, mu)
Q_base = diag([1, 0.5]);
R_base = diag([0.1, 0.2]);
% 车速影响
kv = 1/(1 + exp(-0.1*(vx-50)));
Q = Q_base * (1 + 0.5*kv);
% 路面附着影响
R = R_base / (0.3 + 0.7*mu);
end
5.3 故障诊断与切换逻辑
设计三级故障诊断策略:
- 信号级检测:检查CAN信号连续性
- 模型级检测:残差分析
matlab复制residual = y_meas - y_est; if norm(residual) > threshold fault_flag = true; end - 执行级检测:电机电流反馈校验
切换过程采用渐变策略避免冲击:
matlab复制alpha = min(1, t/0.5); % 0.5秒过渡
u_final = alpha*u_new + (1-alpha)*u_old;
6. 实测数据与效果对比
我们在某型试验车上采集了以下对比数据:
| 指标 | 无容错控制 | 差动转向容错 | 本文方法 |
|---|---|---|---|
| 横向误差(m) | 1.2 | 0.8 | 0.3 |
| 横摆角速度误差(%) | 25 | 15 | 8 |
| 轮胎负荷率峰值 | 1.1 | 0.95 | 0.85 |
| 切换时间(ms) | - | 200 | 100 |
特别在冰雪路面测试中,传统差动转向方案会出现明显的横摆振荡,而我们的协同控制方法通过合理分配转矩,保持了良好的稳定性。一个值得注意的细节是:当系统检测到左前轮电机过热时,会自动调整分配策略,将更多转矩分配给右后轮,同时通过其他电机补偿转向力矩。