1. 项目背景与核心需求
去年夏天的一次长途自驾经历让我深刻意识到定速巡航功能的重要性。当时驾驶的是一辆入门级电动汽车,在高速公路上连续踩踏电门三小时后,右脚踝的酸痛感让我开始思考:为什么市面上中低端电动车型普遍缺失这项基础功能?是技术门槛过高还是成本问题?这个疑问直接催生了本次自主开发电动汽车定速巡航控制器的项目。
定速巡航系统的本质是通过闭环控制维持车辆设定速度,看似简单的功能背后涉及多个技术维度的协同:
- 车辆动态响应特性识别(不同车速下的电机扭矩-转速特性)
- 行驶阻力建模(包括风阻、滚阻、坡道阻力等)
- 驾驶员操作逻辑设计(加速/减速/恢复/取消等指令处理)
- 安全保护机制(与前车距离监测、故障降级策略等)
与传统燃油车相比,电动车的定速巡航开发具有独特优势:电机扭矩响应速度远超内燃机(可达100ms级),且扭矩输出线性度更好。但同时也面临新挑战,比如再生制动与机械制动的协调控制,以及电池SOC对电机输出能力的限制等问题。
2. 系统架构设计
2.1 硬件组成方案
经过多轮方案对比,最终确定的硬件架构包含三个核心模块:
-
主控单元:
- 选用STM32H743VI单片机,其240MHz主频和双精度FPU能满足控制算法实时性要求
- 内置CAN FD控制器,支持5Mbps通信速率
- 关键参数:<5ms的任务周期,<1%的CPU负载波动
-
信号采集模块:
- 车速信号:通过CAN总线获取VCU(整车控制器)提供的车速信息(精度±0.5km/h)
- 加速踏板信号:直接采集踏板传感器0-5V模拟量(12位ADC采样)
- 制动开关信号:光耦隔离输入,响应时间<10ms
-
执行机构接口:
- 电机扭矩请求:通过CAN总线发送标准SAE J1939协议报文
- 制动干预:输出PWM信号控制电子真空泵(占空比20%-80%可调)
关键设计决策:放弃独立的雷达模块,利用车辆已有前向毫米波雷达数据(通过CAN总线获取),这节省了约60%的硬件成本,但需要解决不同供应商数据协议的兼容性问题。
2.2 软件控制逻辑
控制算法采用分层设计架构:
code复制[驾驶员指令层]
│
▼
[速度决策层]───[安全监控层]
│
▼
[扭矩计算层]───[电池状态补偿]
│
▼
[执行输出层]
核心算法流程:
-
速度设定阶段:
- 当车速稳定在30-150km/h范围内时,长按SET键1秒锁定当前速度
- 系统会记录锁定前10秒的车速平均值作为基准值
-
巡航控制阶段:
- 采用模糊PID控制器,其参数随车速动态调整:
c复制// 示例参数表(车速单位:km/h) const float Kp_table[] = { [30] = 0.8, [60] = 1.2, [90] = 1.5, [120] = 1.3 }; - 坡度补偿算法:
math复制其中m为车重,r为轮胎半径,i为减速比,η为传动效率T_comp = m·g·sinθ·r / (η·i)
- 采用模糊PID控制器,其参数随车速动态调整:
-
跟车距离控制(可选功能):
- 基于TTC(Time to Collision)算法:
math复制TTC = Δx / (v_host - v_preceding) - 当TTC<3s时触发预警,<2s时自动降速
- 基于TTC(Time to Collision)算法:
3. 关键实现细节
3.1 车辆动力学建模
为准确计算维持车速所需的扭矩,需要建立车辆纵向动力学模型。通过实车测试获取了以下关键参数:
| 参数类型 | 测试方法 | 实测值 |
|---|---|---|
| 风阻系数(Cd) | 80-120km/h加速功率反推 | 0.32 |
| 滚阻系数(Cr) | 空挡滑行测试 | 0.012 |
| 机械传动效率 | 底盘测功机对比测试 | 92%@50km/h |
| 电机响应延迟 | 阶跃信号测试 | 120±20ms |
总行驶阻力计算公式:
math复制F_total = \frac{1}{2}ρC_dAv^2 + mgC_r + mgsinθ + ma
3.2 控制参数整定
通过Ziegler-Nichols方法初步确定PID参数后,再结合实车测试进行优化:
-
稳态振荡测试:
- 在平直道路保持80km/h
- 逐步增大Kp直至出现持续振荡(临界增益Ku=1.8)
- 测量振荡周期Tu=8.2s
-
参数计算:
- 初始PID参数:
code复制Kp = 0.6*Ku = 1.08 Ki = 2Kp/Tu = 0.26 Kd = KpTu/8 = 1.11 - 最终采用模糊调整规则:
c复制if (|e| > 5km/h) Kp' = 1.5*Kp; else if (|e| < 1km/h) Kp' = 0.7*Kp;
- 初始PID参数:
3.3 安全保护机制
设计了三层安全防护策略:
-
输入信号校验:
- 车速信号有效性检查(变化率<5m/s²)
- 踏板信号互锁(加速与制动信号同时有效时报错)
-
执行监控:
- 扭矩请求与实际扭矩反馈偏差>15%持续200ms时触发降级
- 制动压力与请求值偏差>10%时报警
-
故障处理:
- 单次故障:记录DTC码,限制功能使用
- 连续故障:完全禁用巡航功能,点亮仪表警告灯
4. 实车测试与优化
4.1 测试方案设计
制定了完整的V型开发测试流程:
code复制[模型在环测试] → [硬件在环测试] → [封闭场地测试] → [开放道路测试]
│ │
└──[故障注入测试] └──[极限工况测试]
重点测试场景包括:
- 长上坡道速度保持(坡度≥8%)
- 前车切出后的速度恢复
- 低附着路面制动干预
- 电池低SOC(<20%)时的功率限制
4.2 典型问题解决
问题1:下坡路段超速
- 现象:在5%下坡时,车速超过设定值8-10km/h
- 分析:再生制动力不足,机械制动介入延迟
- 解决方案:
- 修改扭矩分配策略:
c复制if (v_actual > v_set + 3) { regen_torque = min(max_regen, last_torque + 20Nm); friction_brake = calculate_required_brake() - regen_torque; } - 增加提前量控制,在v_actual > v_set + 2km/h时即开始制动干预
- 修改扭矩分配策略:
问题2:跟车时速度波动大
- 现象:前车速度波动±3km/h时,本车波动达±5km/h
- 分析:PID参数过于激进
- 优化:
- 加入前车加速度前馈控制:
math复制u_{ff} = \frac{m}{R_{tire}} (a_{target} + gsinθ) - 调整微分时间常数,抑制高频振荡
- 加入前车加速度前馈控制:
5. 量产可行性分析
5.1 成本估算
| 项目 | 自制方案成本 | 外购方案成本 |
|---|---|---|
| 主控PCB | ¥85 | - |
| 传感器接口 | ¥35 | - |
| 外壳与连接器 | ¥42 | - |
| 系统认证(EMC等) | ¥3000 | ¥1500 |
| 总成本(1000套) | ¥162/套 | ¥480/套 |
5.2 性能对比
测试指标对比某品牌Tier1供应商产品:
| 指标 | 自制系统 | 参考系统 |
|---|---|---|
| 速度控制误差 | ±1.2km/h | ±0.8km/h |
| 坡道速度保持(5%) | -2km/h | -1km/h |
| 响应延迟(加速指令) | 320ms | 280ms |
| 故障检测覆盖率 | 92% | 97% |
这套自制系统在核心性能上已达到商用系统的80%水平,而成本仅为三分之一。后续可通过以下方向继续优化:
- 引入模型预测控制(MPC)提升坡道性能
- 增加深度学习算法优化参数自整定
- 通过CAN FD总线升级降低通信延迟
经过六个月的设计迭代,最终实现的定速巡航控制器不仅支持基础的速度保持功能,还扩展出自适应跟车和弯道速度补偿等实用特性。整个开发过程中积累的车辆控制经验,也为后续开发更高级别的驾驶辅助功能奠定了基础。