3. 整车模式管理概述

整车模式管理是VCU(整车控制器)软件架构中的“顶层调度器”。它并不直接控制某个执行器,而是把驾驶员意图、整车状态、故障等级和外部请求统一翻译成一套可被各子系统识别的模式指令,再决定动力系统、高压系统、热管理系统和附件系统各自的工作边界。理解模式管理,是理解VCU故障降级标定的前提:降级本质上就是模式切换的一种特殊形式。

一、模式定义:模式是整车状态的“语义标签”

在VCU中,模式(Mode)不是简单的枚举变量,而是对整车当前允许行为集合的抽象描述。一个模式通常包含四层含义:

  • 准入条件:进入该模式必须满足的整车状态、挡位、车速、高压就绪、故障等级等条件。
  • 控制目标:该模式下VCU对扭矩、功率、电压、温度等关键量的期望范围。
  • 执行边界:允许哪些子系统工作、禁止哪些动作、限值如何裁剪。
  • 退出条件:满足何种条件时离开该模式,以及离开后的目标模式。

因此,模式定义的核心不是“起名字”,而是把整车可运行状态划分成互不重叠、边界清晰的集合。模式定义不清,后续的切换逻辑和降级标定就会互相冲突。

二、模式分类:按功能域与优先级分层

工程上通常把整车模式分为三层:整车级模式、系统级模式和部件级模式。整车级模式决定车辆“能不能走、怎么走”;系统级模式决定动力、高压、热管理等子系统“以什么方式配合”;部件级模式则决定电机、电池、DCDC等“以什么参数运行”。

层级 典型模式 主要输入 典型输出
整车级 OFF、ACC、READY、DRIVE、CHARGE、FAULT_LIMP 钥匙状态、挡位、制动、充电枪、故障等级 整车使能、扭矩许可、高压许可
系统级 高压上电、高压下电、预充、放电、热管理加热/冷却 整车模式、BMS状态、温度、绝缘 接触器指令、水泵/风扇请求、DCDC使能
部件级 电机扭矩模式、转速模式、电池充电模式、DCDC恒压/恒流 系统级模式、目标值、限值 扭矩、电流、电压、功率

分类的关键在于优先级。当多个模式请求同时存在时,必须按安全等级排序:故障降级模式高于充电模式,充电模式高于正常驾驶模式,正常驾驶模式高于舒适性附件模式。优先级不明确,就会出现“充电时还能挂挡行车”这类严重逻辑漏洞。

三、模式切换逻辑:条件、仲裁与过渡

模式切换不是简单的if-else,而是一个带仲裁和过渡的有限状态机。其基本流程如下:

  1. 条件采集:周期读取钥匙、挡位、车速、制动、充电连接、BMS允许、电机温度、故障等级等信号。
  2. 条件去抖:对关键信号做时间滤波,避免瞬时抖动导致模式频繁跳变。
  3. 请求仲裁:按优先级和互锁条件,从多个候选模式中选出唯一目标模式。
  4. 过渡执行:进入目标模式前,先执行必要的过渡动作,如扭矩归零、高压泄放、接触器断开。
  5. 状态确认:确认执行器反馈到位后,才正式置位目标模式,并更新对外广播。
模式切换的核心原则:先降扭矩,再切模式;先断高压,再报故障;先确认状态,再允许输出。任何跳过过渡直接跳变的实现,都会在标定阶段暴露为冲击、顿挫或高压继电器粘连。

下面是一段典型的模式仲裁伪代码,用于说明优先级与互锁关系:

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会主动限制车速、限制扭矩、禁止再次上高压,直到故障恢复并满足退出条件。

这种关系可以用下面的信号链示意图表示:

整车模式管理:状态输入 → 模式仲裁 → 约束输出 整车状态输入 钥匙 / 挡位 / 制动 车速 / 电机转速 BMS允许 / SOC / 绝缘 充电枪连接 / 充电请求 故障等级 / 温度 模式仲裁与切换 条件去抖 + 优先级仲裁 过渡动作:扭矩归零 / 泄放 状态确认 + 模式置位 唯一目标模式输出 模式约束输出 扭矩许可 / 限值 高压上电 / 下电许可 热管理请求 DCDC / 附件使能 故障降级动作 模式反向约束整车状态

从图中可以看出,模式管理位于“状态输入”和“约束输出”之间,是整车控制的中枢。左侧是模式判断的依据,右侧是模式确定后对子系统的约束,下方虚线则表示模式对整车状态的反向限制。这种闭环关系决定了模式管理必须与故障降级策略同步设计。

五、典型场景与常见误区

典型场景:车辆在READY状态下充电枪插入,VCU应禁止挂挡行车,并切换到CHARGE模式;若此时BMS报三级故障,则CHARGE模式立即被FAULT_LIMP覆盖,VCU主动断开高压并限制车辆移动。整个过程必须在数百毫秒内完成,且模式广播要同步给仪表和BMS。

常见误区:
  • 把模式切换写成无过渡的直接赋值,导致扭矩突变和高压冲击。
  • 优先级表缺失或与故障降级表冲突,出现“充电中行车”或“故障后仍可上高压”。
  • 模式定义粒度过粗,把READY和DRIVE合并,导致无法区分“待命”和“可行驶”。
  • 模式广播周期与执行周期不一致,仪表显示模式与实际模式不同步。

复盘时建议重点检查三张表:模式定义表、模式切换条件表、模式优先级表。三张表必须一一对应,任何一条切换条件都应在定义表中有明确的准入和退出描述,任何一次降级都应在优先级表中有唯一裁决结果。只有模式管理清晰,后续的故障降级标定才有稳定的顶层依据。