3. 整车模式管理概述
整车模式管理是VCU(整车控制器)软件架构中的“顶层调度器”。它并不直接控制某个执行器,而是把驾驶员意图、整车状态、故障等级和外部请求统一翻译成一套可被各子系统识别的模式指令,再决定动力系统、高压系统、热管理系统和附件系统各自的工作边界。理解模式管理,是理解VCU故障降级标定的前提:降级本质上就是模式切换的一种特殊形式。
一、模式定义:模式是整车状态的“语义标签”
在VCU中,模式(Mode)不是简单的枚举变量,而是对整车当前允许行为集合的抽象描述。一个模式通常包含四层含义:
- 准入条件:进入该模式必须满足的整车状态、挡位、车速、高压就绪、故障等级等条件。
- 控制目标:该模式下VCU对扭矩、功率、电压、温度等关键量的期望范围。
- 执行边界:允许哪些子系统工作、禁止哪些动作、限值如何裁剪。
- 退出条件:满足何种条件时离开该模式,以及离开后的目标模式。
因此,模式定义的核心不是“起名字”,而是把整车可运行状态划分成互不重叠、边界清晰的集合。模式定义不清,后续的切换逻辑和降级标定就会互相冲突。
二、模式分类:按功能域与优先级分层
工程上通常把整车模式分为三层:整车级模式、系统级模式和部件级模式。整车级模式决定车辆“能不能走、怎么走”;系统级模式决定动力、高压、热管理等子系统“以什么方式配合”;部件级模式则决定电机、电池、DCDC等“以什么参数运行”。
| 层级 | 典型模式 | 主要输入 | 典型输出 |
|---|---|---|---|
| 整车级 | OFF、ACC、READY、DRIVE、CHARGE、FAULT_LIMP | 钥匙状态、挡位、制动、充电枪、故障等级 | 整车使能、扭矩许可、高压许可 |
| 系统级 | 高压上电、高压下电、预充、放电、热管理加热/冷却 | 整车模式、BMS状态、温度、绝缘 | 接触器指令、水泵/风扇请求、DCDC使能 |
| 部件级 | 电机扭矩模式、转速模式、电池充电模式、DCDC恒压/恒流 | 系统级模式、目标值、限值 | 扭矩、电流、电压、功率 |
分类的关键在于优先级。当多个模式请求同时存在时,必须按安全等级排序:故障降级模式高于充电模式,充电模式高于正常驾驶模式,正常驾驶模式高于舒适性附件模式。优先级不明确,就会出现“充电时还能挂挡行车”这类严重逻辑漏洞。
三、模式切换逻辑:条件、仲裁与过渡
模式切换不是简单的if-else,而是一个带仲裁和过渡的有限状态机。其基本流程如下:
- 条件采集:周期读取钥匙、挡位、车速、制动、充电连接、BMS允许、电机温度、故障等级等信号。
- 条件去抖:对关键信号做时间滤波,避免瞬时抖动导致模式频繁跳变。
- 请求仲裁:按优先级和互锁条件,从多个候选模式中选出唯一目标模式。
- 过渡执行:进入目标模式前,先执行必要的过渡动作,如扭矩归零、高压泄放、接触器断开。
- 状态确认:确认执行器反馈到位后,才正式置位目标模式,并更新对外广播。
下面是一段典型的模式仲裁伪代码,用于说明优先级与互锁关系:
if (faultLevel >= FAULT_LEVEL_3) {
targetMode = MODE_FAULT_LIMP; // 最高优先级:故障降级
} else if (chargerConnected && vehicleSpeed == 0) {
targetMode = MODE_CHARGE; // 充电优先于行车
} else if (keyOn && gear != P && brakePressed) {
targetMode = MODE_DRIVE; // 正常驾驶
} else if (keyOn && hvReady) {
targetMode = MODE_READY; // 高压就绪待命
} else {
targetMode = MODE_OFF;
}
四、模式与整车状态的关系:状态是模式的输入,模式是状态的约束
整车状态与模式之间是双向关系。一方面,整车状态(车速、挡位、高压、温度、故障)是模式切换的输入;另一方面,模式一旦确定,又会反向约束整车状态的变化范围。例如进入FAULT_LIMP后,VCU会主动限制车速、限制扭矩、禁止再次上高压,直到故障恢复并满足退出条件。
这种关系可以用下面的信号链示意图表示:
从图中可以看出,模式管理位于“状态输入”和“约束输出”之间,是整车控制的中枢。左侧是模式判断的依据,右侧是模式确定后对子系统的约束,下方虚线则表示模式对整车状态的反向限制。这种闭环关系决定了模式管理必须与故障降级策略同步设计。
五、典型场景与常见误区
典型场景:车辆在READY状态下充电枪插入,VCU应禁止挂挡行车,并切换到CHARGE模式;若此时BMS报三级故障,则CHARGE模式立即被FAULT_LIMP覆盖,VCU主动断开高压并限制车辆移动。整个过程必须在数百毫秒内完成,且模式广播要同步给仪表和BMS。
- 把模式切换写成无过渡的直接赋值,导致扭矩突变和高压冲击。
- 优先级表缺失或与故障降级表冲突,出现“充电中行车”或“故障后仍可上高压”。
- 模式定义粒度过粗,把READY和DRIVE合并,导致无法区分“待命”和“可行驶”。
- 模式广播周期与执行周期不一致,仪表显示模式与实际模式不同步。
复盘时建议重点检查三张表:模式定义表、模式切换条件表、模式优先级表。三张表必须一一对应,任何一条切换条件都应在定义表中有明确的准入和退出描述,任何一次降级都应在优先级表中有唯一裁决结果。只有模式管理清晰,后续的故障降级标定才有稳定的顶层依据。