引言
纯电车的动力系统由「三电」构成:电池(BMS)、电机(MCU 与逆变器)、电控(VCU)。这三个控制器构成一条紧密的控制链——驾驶员踩下踏板,VCU 解析意图并仲裁出扭矩需求,MCU 把它变成三相电流驱动电机,BMS 则随时监控电池能不能提供这么多功率。任何一个环节的估算偏差,都会直接表现为续航虚标、动力不足或充电异常。
三电软件的难点在于「物理量与控制量的强耦合」。电池的 SOC(荷电状态)无法直接测量,只能通过电流积分与电压观测估计,而估计精度受温度、老化、倍率影响;电机的扭矩在低速与高速区的控制策略完全不同,高速弱磁区稍有不慎就会失控;充电过程则是 BMS、充电桩、云端三方协议的协同,任何一方时序不对都会导致充电中断。
另一层约束是安全。扭矩输出是 ASIL C/D 级别的功能安全对象——错误的扭矩指令会导致意外加速;电池的热失控则是整车最严重的失效模式之一。所以三电软件在功能安全、诊断、故障降级上的要求,比座舱类软件高一个量级。
本文按「系统分工 → BMS 与 SOC/SOH → VCU 与扭矩仲裁 → 电机 FOC 与弱磁 → 充电协议 → 能量回收与热管理」展开。
目录
- 三电系统的软件分工
- BMS 架构与功能
- SOC 估算:安时积分、OCV 与卡尔曼
- SOH 评估与均衡管理
- VCU 整车控制与扭矩仲裁
- 电机控制:FOC 矢量控制
- 弱磁控制与高速区策略
- 充电协议:GB/T 与 OCPP
- 能量回收与热管理协同
1. 三电系统的软件分工
三个控制器各司其职,通过 CAN/CAN FD 交换数据:
BMS(电池管理系统)
感知:单体电压、温度、总电流、绝缘电阻
估算:SOC、SOH、SOP(可用功率)
执行:继电器控制、均衡、热管理请求
保护:过压/欠压/过温/过流/绝缘故障 → 切断高压
ASIL:通常 ASIL C(过充保护可达 D)
MCU(电机控制器,含逆变器)
执行:把扭矩指令转为三相 PWM,驱动电机
感知:转子位置(旋变)、相电流、母线电压、IGBT 温度
闭环:电流环(10 kHz)、速度环(1 kHz)
保护:过流、过温、堵转、失步
ASIL:ASIL C/D(扭矩输出是安全关键)
VCU(整车控制器)
解析:加速踏板、制动踏板、挡位、驾驶模式
仲裁:驾驶员需求 vs ADAS 需求 vs 稳定性需求 vs 部件能力
管理:能量管理、模式切换、上下电时序、故障管理
ASIL:ASIL C/D(扭矩仲裁是安全关键)
数据流:
踏板 → VCU 仲裁 → 扭矩指令(E2E 保护)→ MCU → 电机
BMS 实时广播可用充放电功率 → VCU 据此限制扭矩需求
任一控制器报故障 → VCU 进入降级或安全状态
三者之间的通信走 CAN 总线与车载网络通信 ,安全关键的扭矩与功率报文必须加 E2E 保护(CRC + 计数器 + 数据 ID),防止通信干扰导致错误扭矩被执行。扭矩链路的端到端延迟要求通常在 20 到 50 ms 内,超过这个时间驾驶感受会明显迟滞。
2. BMS 架构与功能
BMS 采用主从架构,把高压采样与低压控制分离:
架构:
BMU(从板 / 采样板)
每板负责若干串电芯的电压采样与温度采样
通过菊花链(daisy chain)或 CAN 与主板通信
典型:一个 100 kWh 包有 96~108 串,3~6 个从板
BCU(主板 / 控制板)
汇总所有单体数据
运行 SOC/SOH/SOP 算法
控制继电器(主正、主负、预充、快充)
与 VCU / 充电桩 / 云端通信
高压安全部件:
预充回路(限制上电瞬间的浪涌电流)
绝缘监测(测量正负极对车身的绝缘电阻)
碰撞信号输入(收到碰撞信号立即断高压)
手动维修开关(MSD)
BMS 的功能可以分成四类:
| 类别 | 功能 | 关键指标 |
|---|---|---|
| 测量 | 单体电压、温度、总电流、绝缘 | 电压精度 ±5 mV,采样周期 10~100 ms |
| 估算 | SOC、SOH、SOP | SOC 误差 < 3%,SOP 不过保守 |
| 保护 | 过压、欠压、过温、过流、绝缘 | 响应时间与阈值分级 |
| 管理 | 均衡、热管理请求、上下电时序 | 均衡效率、温控精度 |
上下电时序是最容易出问题的地方。上电必须「先预充、后合主继电器」:直接合主继电器会让母线电容瞬间充电产生数百安培的浪涌,可能烧毁继电器触点。预充回路用限流电阻把母线电压充到接近电池电压后再合主继电器。下电则要先确认电机已停止、电流归零,再断继电器。时序错了轻则继电器粘连,重则高压拉弧。
绝缘监测是高压安全的底线:车身与高压系统之间必须保持足够的绝缘电阻(通常要求 > 100 Ω/V,即 400 V 系统要求 > 40 kΩ)。绝缘下降可能是线缆磨损、进水、异物侵入,必须及时告警并限制或切断高压。
3. SOC 估算:安时积分、OCV 与卡尔曼
SOC(State of Charge)是「剩余电量百分比」,它无法直接测量,只能估计。三种方法各有适用场景:
1. 安时积分(Coulomb Counting)
SOC(t) = SOC(0) - (1/Qn) · ∫ η·I dt
Qn 为额定容量,η 为库仑效率
优点:实时、简单
缺点:初值不确定;电流测量误差累积;库仑效率随温度/倍率变化
→ 单用必然漂移,几天就可能偏 5% 以上
2. 开路电压法(OCV)
静置足够长时间后,开路电压与 SOC 有确定的对应关系
SOC = f(OCV),f 为查表(含温度修正)
优点:绝对准确(无累积误差)
缺点:需要长时间静置(1~2 小时以上);
磷酸铁锂的 OCV 曲线在 20%~80% 区间非常平坦,
30 mV 的电压误差可能对应 20% 的 SOC 误差
3. 卡尔曼滤波(EKF)
用等效电路模型(Thevenin / 一阶或二阶 RC)描述电池动态
状态向量:x = [SOC, U1, U2](SOC + 极化电压)
观测:端电压 U = OCV(SOC) - I·R0 - U1 - U2
用 EKF 递推,同时校正 SOC 与极化电压
优点:动态过程中也能收敛,抗测量噪声
缺点:依赖模型参数(R0、R1、C1 随温度与老化变化)
工程上的实际做法是融合:
# SOC 估算融合策略(概念示例)
def estimate_soc(state, meas):
if state.rest_time > 7200: # 静置超过 2 小时
soc_ocv = ocv_lookup(meas.ocv, meas.temp)
# OCV 可信,用它校正安时积分的漂移
state.soc = 0.7 * state.soc + 0.3 * soc_ocv
state.soc_sigma = small
elif abs(meas.current) < 2: # 小电流(接近静置)
ekf_step(state, meas) # EKF 缓慢校正
else: # 大电流动态工况
coulomb_count(state, meas) # 以安时积分为主
return clamp(state.soc, 0.0, 1.0)
关键在于「什么时候信任哪种方法」。静置时用 OCV 做绝对校正(消灭累积误差),动态时用安时积分与 EKF 跟踪变化。磷酸铁锂电池因为 OCV 平台区平坦,往往需要在充电末端(SOC 接近 100% 时电压快速上升)做一次满充校正,这也是为什么很多车企建议「每周充满一次」。
精度目标通常是全温度范围内误差小于 3%,但这个目标在低温(零下 20 度以下)与大倍率工况下很难达到,BMS 会在这些工况下主动放宽精度并保守限制可用功率。
4. SOH 评估与均衡管理
SOH(State of Health)衡量电池的老化程度,有两个维度:
SOH 的两个维度:
容量衰减:当前可用容量 / 额定容量
新车约 100%,8 年或 16 万公里后通常要求 ≥ 80%
估计方法:满充满放标定(准确但难得)、
部分区间容量积分 + 扩展、
基于充电曲线的机器学习估计
内阻增长:当前内阻 / 初始内阻
内阻增大导致大倍率下压降增大、可用功率下降
估计方法:电流阶跃下的电压响应 ΔU/ΔI
两者的关系:内阻增长通常先于容量明显衰减出现,
所以内阻是更灵敏的老化指标
容量标定难得是因为它需要一次完整的满充满放,而用户很少把电用到 0 再充满。工程上的替代方案是「部分区间估计」:在任意一次充电中,用安时积分得到 ΔAh,用 SOC 变化得到 ΔSOC,两者相除即得容量估计(Qn = ΔAh / ΔSOC)。这要求 SOC 估计本身足够准,所以 SOH 的精度依赖 SOC 的精度。
**均衡(Balancing)**解决单体不一致问题:串联电芯中,容量最小的那颗决定了整包可用容量,所以要把高 SOC 单体的电量「放掉」或「转移」给低的:
| 方式 | 原理 | 效率 | 成本 | 典型场景 |
|---|---|---|---|---|
| 被动均衡 | 高 SOC 单体通过电阻放电 | 低(能量浪费) | 低 | 主流乘用车 |
| 主动均衡 | 用电容/电感/DC-DC 转移能量 | 高 | 高 | 高端车型、商用车 |
均衡策略有讲究:只在充电末端或静置时均衡。行驶中均衡会产生额外热量且电流测量受干扰;充电末端(SOC > 90%)单体电压差异明显,是均衡的最佳窗口。均衡电流通常只有几十到几百毫安,对几十安时容量的电芯来说,均衡一整天也只能修正百分之几的差异,所以均衡的作用是「防止差异扩大」,而不是「修复严重不一致」——后者只能靠换电芯。
5. VCU 整车控制与扭矩仲裁
VCU 是三电的「大脑」,最核心的功能是扭矩仲裁:
扭矩需求来源与优先级:
1. 安全相关(最高)
碰撞信号 → 断高压 / 零扭矩
电机过温、逆变器过流 → 强制降扭
BMS 限功率(低 SOC、低温、过温)
2. 稳定性相关
ESP/ESC 请求降扭(防滑、防侧滑)
ABS 介入(制动回收退出)
3. 驾驶意图
加速踏板需求(经 pedal map 映射)
制动踏板需求(回收 + 液压)
驾驶模式(经济/舒适/运动)修正
4. 辅助驾驶
ACC 加减速请求、限速请求
5. 舒适与效率
扭矩梯度限制(防顿挫)
能量回收强度
仲裁逻辑(分层):
需求层:收集所有来源的扭矩需求
约束层:计算各部件的可行域
电机:外特性曲线(转速-扭矩)
电池:SOP(当前温度/SOC 下允许的充放电功率)
仲裁层:在可行域内取满足最高优先级需求的值
min(驾驶员需求, 部件能力, 稳定性限制)
执行层:加梯度限制与滤波,下发 MCU
仲裁的核心原则是「取最严格的约束」。例如驾驶员全油门请求 300 Nm,但 ESP 因为检测到车轮打滑请求降到 120 Nm,那么最终输出必须是 120 Nm——稳定性优先于驾驶意图。同理,BMS 报「当前允许放电功率 40 kW」,则扭矩需求必须被限制到不超过 40 kW 对应的值(扭矩 × 转速 = 功率)。
扭矩指令的安全保障是不可省的一环。扭矩指令从 VCU 到 MCU 的传输必须加 E2E 保护,且 MCU 侧要做合理性检查(指令值在物理范围内、指令变化率不超过物理可能)。扭矩功能的 ASIL 等级通常为 C 或 D,相关设计要遵循 功能安全 ISO 26262 工程实践 里的安全机制要求(双通道、监控、E2E)。BMS 与 MCU 的故障信息也要通过 诊断协议 UDS 与 OBD 记录 DTC 并支持售后读取。
6. 电机控制:FOC 矢量控制
永磁同步电机(PMSM)的控制用磁场定向控制(FOC),目标是把三相交流电机的控制简化成类似直流电机的形式:
FOC 流程(电流环,10 kHz):
1. 采样三相电流 ia、ib、ic(实际采两相,第三相由和为零推出)
2. Clarke 变换:三相 → 静止两相 (iα, iβ)
3. Park 变换:用转子电角度 θ 把 (iα, iβ) → 旋转两相 (id, iq)
θ 来自旋变(resolver)或编码器
4. 电流环 PI:
id 的参考值通常为 0(表贴式电机,MTPA)
iq 的参考值由扭矩需求换算:Te = 1.5·p·ψf·iq
两个 PI 分别控制 id 与 iq
5. 逆 Park 变换:(ud, uq) → (uα, uβ)
6. SVPWM(空间矢量脉宽调制):生成六路 PWM 驱动逆变器
为什么解耦有效:
Park 变换把随转子旋转的坐标系变成「静止」坐标系
在这个坐标系里,id 控制励磁、iq 控制扭矩,互不干扰
于是可以用两个简单的 PI 控制器完成控制
关键参数与带宽:
- 电流环带宽通常 1 到 2 kHz,对应采样与控制周期 100 us(10 kHz)。带宽越高响应越快,但受 PWM 开关频率(通常 8 到 20 kHz)与采样噪声限制。
- 速度环在电流环之外,带宽约 100 Hz,输出 iq 参考值。
- 扭矩常数:表贴式 PMSM 的扭矩与 iq 成正比,比例系数含极对数 p 与永磁磁链 ψf。
转子位置是 FOC 的前提,位置错了整个解耦就错了。旋变(resolver)是车规主流,它输出与转子角度相关的正弦/余弦信号,需要 RDC(旋变数字转换)解码。无位置传感器方案(sensorless)通过反电动势估计角度,成本低但低速时反电动势太小无法估计,通常只用于高速区或作为冗余。
7. 弱磁控制与高速区策略
电机有两个工作区,分界点是基速:
恒扭矩区(低速):
反电动势 < 母线电压,电流可自由控制
扭矩仅受电流上限约束(id=0,iq 最大)
输出扭矩恒定
恒功率区(高速):
转速升高 → 反电动势升高 → 逼近母线电压上限
必须「弱磁」:给 id 一个负值,抵消部分永磁磁通
削弱磁通 → 反电动势下降 → 腾出电压空间
代价:同样的电流下扭矩下降;铜损增加
约束:
电流圆:id² + iq² ≤ Imax²
电压椭圆:(Ld·id + ψf)² + (Lq·iq)² ≤ (Umax/ω)²
工作点在两个约束的交集内
最优策略:
MTPA(最大转矩电流比):低速区,单位电流产生最大扭矩
MTPV(最大转矩电压比):高速区,受电压约束时的最优
两者在基速附近切换
弱磁区的控制难点在稳定性。当电压达到饱和,电流环 PI 的输出无法再增大,控制器进入「饱和」状态,若此时负载突变(如爬坡、加速),电流可能失控导致过流保护跳闸。缓解手段包括:电压反馈式的弱磁(用电压裕度反馈调节 id)、电流环抗饱和(anti-windup)、以及在接近电压极限时主动降扭。
工程上还有一个容易被忽略的点:高速下的铁损与温升。弱磁运行时铜损与铁损都增加,电机温度上升,而永磁体温度升高会导致磁链下降(高温退磁风险),形成正反馈。所以高速区的扭矩能力要随温度动态降额,这部分逻辑通常由 MCU 内部的热模型与降额曲线实现。
| 区段 | 转速 | 控制策略 | 主要约束 |
|---|---|---|---|
| 恒扭矩区 | < 基速 | id=0 或 MTPA | 电流上限 |
| 弱磁区 | 基速 ~ 最高转速 | 负 id,MTPV | 电压上限、温度 |
| 极限区 | 接近最高转速 | 深度弱磁 + 降额 | 电压饱和、退磁风险 |
8. 充电协议:GB/T 与 OCPP
充电涉及三层协议,理解分层是排查充电问题的前提:
层次划分:
物理连接与导引
交流:GB/T 18487(控制导引 CP、连接确认 CC)
直流:GB/T 20234(充电接口)
车桩通信
直流快充:GB/T 27930(基于 CAN 的充电机与 BMS 通信)
桩与云端
OCPP(Open Charge Point Protocol,JSON over WebSocket)
OCPP 1.6 / 2.0.1
即插即充(PnC)
ISO 15118(基于电力线载波 PLC 的证书认证)
GB/T 27930 的直流充电流程是分阶段的握手:
阶段(简化):
1. 物理连接完成,低压辅助上电
2. 充电握手:BMS 与充电机互发辨识报文(版本、电池类型)
3. 参数配置:BMS 发最大允许充电电压/电流,充电机回最大输出能力
4. 充电中:BMS 周期性发「充电需求」报文
充电机按需求输出,并回报输出电压/电流
BMS 实时监控,异常则发「中止充电」
5. 充电结束:BMS 发「充电结束」原因(达到目标 SOC / 用户停止 / 故障)
6. 断电:充电机停止输出 → BMS 断高压继电器
关键报文(GB/T 27930):
BHM/CHM 握手辨识
BCP/CML 参数配置
BCL/BCS 充电需求与状态
BSM/CSM 监控
BST/CST 中止
OCPP 是桩与后台的协议,与车无关(车桩之间走 GB/T 或 ISO 15118)。OCPP 定义充电桩如何向运营平台注册、上报状态、接收启停指令、计费与固件升级。它用 JSON over WebSocket,消息模式是 CALL / CALLRESULT / CALLERROR 三种。理解 OCPP 的价值在于排查「车能充但平台看不到」这类问题——那通常是 OCPP 侧而非车桩侧。
充电安全的几个关键点:绝缘检测必须在充电前完成;温度监控要在充电中持续(电池包与充电接口都测温);BMS 与桩的双向限流——BMS 给出的需求不能超过桩的能力,桩的输出也不能超过 BMS 的请求,任何一方超限都应中止。BMS 的充电相关参数(最大充电电流曲线)属于标定量,随电池温度与 SOC 变化,通常通过 车载 OTA 升级与安全 通道更新。
9. 能量回收与热管理协同
**能量回收(Regenerative Braking)**把制动时的动能转成电能充回电池,是续航的关键贡献者(城市工况可提升 15% 到 30%):
回收策略:
滑行回收(松踏板即回收,强度可调)
制动回收(踩制动踏板时优先回收)
单踏板模式(强回收,松踏板即明显减速)
踏板解耦(CRBS,Cooperative Regenerative Braking System):
制动踏板深度 → 总制动力需求
→ 优先分配电机回收(受回收能力限制)
→ 不足部分由液压制动补足
→ 踏板力与减速度解耦,靠模拟器提供踏板感
回收的限制条件(任一满足即退出或减弱回收):
SOC > 90% 电池不接受大电流
电池温度 < 0 度 低温下充电会析锂,损伤电池
电池温度 > 45 度 过热保护
车速过低(< 10 km/h)反电动势不足
ABS 介入 轮速差异大,回收会导致不稳定
电池允许充电功率低 由 BMS 的 SOP 决定
ABS 介入时退出回收是一条硬规则:回收扭矩作用在驱动轮上,若 ABS 正在调节制动力以防抱死,额外的回收扭矩会干扰 ABS 的控制,所以必须立即把回收扭矩降为零,由液压制动全权接管。这个切换必须快(几十毫秒内),否则会出现「ABS 工作时车辆反而加速」的危险。
热管理协同是三电的另一个耦合点。电池的最佳工作温度是 20 到 35 度,过高会加速老化甚至热失控,过低会限制功率与回收。热管理系统(TMS)通常包含:
- 电池冷却/加热回路:用冷却液经板换与空调制冷剂或 PTC 加热器交换热量。
- 电机与逆变器冷却回路:电机与 IGBT 也发热,通常与电池共用一个冷却系统,但温度窗口不同(电机可承受更高温度)。
- 协同控制:低温时优先加热电池(用电机堵转发热或 PTC),高温时优先冷却电池;充电时(尤其快充)热管理负荷最大,需要提前预冷。
热管理的请求优先级通常由 VCU 统一调度:电池温度安全 > 充电需求 > 动力需求 > 座舱舒适。也就是说,快充时若电池过热,空调制冷能力要优先给电池,座舱降温可以被削减——这个权衡需要在标定阶段明确定义,并在 HMI 上告知用户(如「电池温度高,充电功率受限」)。
权衡取舍
| 决策点 | 选项 A | 选项 B | 建议 |
|---|---|---|---|
| SOC 估算 | 纯安时积分 | 安时 + OCV + EKF 融合 | 必须融合,单方法必然漂移或滞后 |
| 均衡 | 被动 | 主动 | 乘用车被动足够,商用车/长寿命需求用主动 |
| 扭矩仲裁 | 单层取最小 | 分层需求-约束-仲裁 | 分层便于追溯与安全论证 |
| 电机控制 | 有位置传感器 | 无位置传感器 | 全速域用旋变,高速区可 sensorless 冗余 |
| 高速区 | 保守限速 | 深度弱磁 | 按热与退磁风险动态决定弱磁深度 |
| 充电 | 只支持 GB/T | GB/T + ISO 15118 PnC | 出口车型需 PnC,国内可选 |
| 回收 | 全工况回收 | 按条件受限回收 | 必须按 SOC/温度/ABS 受限,安全优先 |
常见坑清单
- SOC 只做安时积分:无绝对校正导致长期漂移,必须配合 OCV 或 EKF 校正。
- 磷酸铁锂靠 OCV 估 SOC:平台区电压平坦导致误差巨大,需在满充末端校正。
- 上电不预充:直接合主继电器产生浪涌电流烧毁触点,必须走预充时序。
- 绝缘检测被跳过:绝缘下降未及时告警导致漏电风险,检测必须前置于上电。
- 扭矩指令无 E2E:通信干扰导致错误扭矩被执行,安全关键链路必须加保护。
- 仲裁未取最严约束:ESP 请求降扭却被驾驶员需求覆盖,稳定性优先于驾驶意图。
- 弱磁无抗饱和:电压饱和时电流环失控导致过流跳闸,需 anti-windup 与电压反馈弱磁。
- 忽略永磁体高温退磁:高速弱磁叠加高温导致不可逆退磁,必须做温度降额。
- ABS 介入不退出回收:回收扭矩干扰 ABS 控制,须在几十毫秒内把回收降为零。
- 快充不预冷电池:大倍率充电温升快导致降功率或中止,需提前启动热管理。
小结
三电软件的核心是「在物理约束下做闭环控制」:BMS 在不可直接测量的状态下估计 SOC 与 SOH,VCU 在多源需求下仲裁出安全可行的扭矩,MCU 在电压电流约束下把扭矩变成三相电流,而充电与能量回收则是三者的协同。贯穿始终的是估算精度(SOC/SOH 误差直接决定续航与寿命表现)与安全优先级(扭矩安全、高压安全、热安全)。
入门路径建议:先理解 BMS 的测量与保护逻辑(这是最直观的部分),再深入 SOC 估算的三种方法及其融合,然后学 VCU 的扭矩仲裁分层,最后进入电机 FOC 与弱磁——后者数学密度最高,但掌握了 Park 变换的物理意义就不难。充电协议属于工程约定,边做边查标准即可。
继续深入:三电控制器之间的总线通信与 E2E 保护见 CAN 总线与车载网络通信 ;扭矩与高压安全的 ASIL 论证见 功能安全 ISO 26262 工程实践 ;故障记录与售后诊断见 诊断协议 UDS 与 OBD ;BMS 标定参数与充电曲线的更新见 车载 OTA 升级与安全 。
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。