1. EPS系统建模概述
电动助力转向系统(EPS)作为现代汽车的核心子系统,其控制精度直接影响驾驶体验与安全性。传统液压助力转向系统正逐步被EPS取代,主要优势在于能耗降低30%以上、转向助力可随车速动态调节。本次建模采用MATLAB/Simulink R2022b环境,完整复现从机械系统建模到控制策略实现的闭环开发流程。
核心被控对象为转向柱总成,其动力学特性可用二阶微分方程描述。实测某A级车转向系统参数显示:转动惯量J=0.12 kg·m²时,方向盘空载转动惯量测试需采用扭摆法,注意排除万向节间隙影响;阻尼系数B=0.35 N·m·s/rad的测定需在20℃恒温下进行,温度每升高10℃会导致该参数下降约8%。
关键提示:转向柱刚度K的测试必须包含齿轮啮合刚度,实测值45 N·m/rad对应齿条行程±50mm工况。忽略该非线性特性会导致高速工况模型失准。
2. 机械系统建模实现
2.1 传递函数构建
在Simulink中建立被控对象模型时,采用Transfer Fcn模块直接实现二阶系统传递函数。分母多项式系数需注意量纲转换:
matlab复制num = [1]; % 分子多项式
den = [J B K]; % 分母多项式 [kg·m² N·m·s/rad N·m/rad]
sys_mechanical = tf(num, den);
该模型需并联Torque Input端口(驾驶员输入扭矩Th)和Motor Torque端口(助力电机扭矩Tm)。实际建模中发现,转向柱的弹性变形会导致高频段相位滞后,建议在100Hz以上增加二阶低通滤波器。
2.2 非线性特性补偿
真实转向系统存在三类非线性:
- Stribeck摩擦:速度相关摩擦特性
matlab复制function Ff = friction_model(v)
Fc = 2.1; % 库伦摩擦(N·m)
Fs = 3.8; % 静摩擦(N·m)
v_s = 0.01; % 特征速度(rad/s)
sigma = 0.5; % 粘滞系数(N·m·s/rad)
Ff = (Fc + (Fs-Fc)*exp(-(v/v_s)^2))*sign(v) + sigma*v;
end
- 齿轮间隙:采用死区非线性模块,阈值设为±0.5°机械角度
- 温度漂移:通过Lookup Table实现B参数的温度补偿
3. 控制策略开发
3.1 改进PID算法实现
传统PID模块无法处理扭矩饱和问题,采用MATLAB Function Block实现带抗饱和的离散PID:
matlab复制function Tm = pid_control(Th, theta_error, Ts)
persistent integral prev_error
if isempty(integral)
integral = 0;
prev_error = 0;
end
% 工程调参经验值
Kp = 2.5; % 基础助力增益
Ki = 0.8; % 消除转向残余角
Kd = 0.3; % 抑制方向盘抖动
% 积分抗饱和
integral = integral + Ki*theta_error*Ts;
integral = max(min(integral, 5), -5); % 对应电机最大扭矩5N·m
% 微分项改进
derivative = (theta_error - prev_error)/Ts;
prev_error = theta_error;
Tm = Kp*theta_error + integral + Kd*derivative;
end
参数整定技巧:先调Kp至系统开始振荡,取该值的60%作为基准;Ki取系统振荡周期的一半;Kd取振荡周期的1/8。
3.2 车速自适应回正控制
回正性能与车速强相关,设计变增益传递函数:
matlab复制function G = return_control(v_kmh)
if v_kmh < 20
K_return = 0.8*v_kmh + 2; % 低速段线性增长
else
K_return = 18 - 0.2*(v_kmh-20); % 高速段缓降
end
G = tf([K_return], [0.05 1]); % 一阶惯性环节
end
实测表明:该策略使60km/h时的90%回正时间从2.5s缩短至1.5s,且高速行驶时不会产生过度回正造成的"抢方向盘"现象。
4. 仿真与验证
4.1 多速率系统处理
控制周期(1ms)与机械仿真步长(0.1ms)不同步时,必须使用Rate Transition模块进行信号同步。常见错误包括:
- 直接连接导致采样时间冲突
- 未启用确定性数据传输造成随机延迟
- 忽略异步采样引起的相位畸变
正确配置方法:
- 在Model Settings → Solver选择Fixed-step
- 指定固定步长为0.1ms
- 对控制器输出信号添加Rate Transition模块
- 勾选"Ensure deterministic data transfer"
4.2 结果分析
阶跃响应测试显示(输入2rad):
- 无控制时:稳定时间3.2s,超调量35%
- PID控制后:稳定时间0.8s,超调量12%
频域特性验证:
- 增益裕度:8.2dB
- 相位裕度:47°
- 带宽:2.1Hz(满足EPS行业≥1.5Hz标准)
5. 工程实践技巧
5.1 实时调参方法
在Simulink中创建调参面板:
- 右键PID模块 → Create Tunable Parameter
- 将Kp/Ki/Kd参数关联到Workspace变量
- 运行仿真时通过滑块实时调整
- 使用Fast Restart功能保持模型编译状态
5.2 批量仿真优化
采用parsim命令进行参数扫描:
matlab复制cases(1:10) = Simulink.SimulationInput('EPS_Model');
for i=1:10
cases(i) = cases(i).setVariable('Kp', 1+0.5*i);
end
results = parsim(cases, 'ShowProgress', 'on');
相比传统for循环,速度提升7-10倍,特别适合DOE分析。
5.3 测试数据管理
建议文件结构:
code复制EPS_Project/
├── Model/
│ ├── EPS_Controller.slx
│ └── Plant_Model.slx
├── Data/
│ ├── Step_Response_20230615.mat
│ └── Frequency_Sweep.mat
└── Scripts/
├── batch_sim.m
└── plot_results.m
使用Project管理工具自动跟踪文件依赖关系,避免路径错误。