纯电动或混动动力汽车上的电机控制器MCU(Motor Control Unit),其主要功能就是将电池的高压直流电,转换为交流电,来驱动电机运行。作为电动汽车传动链上的重要一环,如果MCU失效,直接威胁到人员的生命安全。这就是所谓的功能安全问题,国际上也有相关的ISO 26262标准,国内对应的是GBT 34590。
现在功能安全话题很热门,出门交流不谈功能安全,就显得自己外行一样。那什么是功能安全?用人话解释就是,电子器件组成的MCU,在工作过程中,如果任何软硬件出了问题,产生的后果都不应该威胁到人身安全。
如上图所示,MCU的主要作用就是用矢量控制驱动电机运行,要实现矢量控制就要检测电机电流、电池电压和电机转子位置等信号。另外MCU通过CAN通讯来接收VCU的指令、反馈本身的运行状态。
通常硬件设计和功能安全相关的目标有两个:
1、降低随机失效(器件老化)和系统失效(人为设计);
2、如果出现随机失效后,系统能达到安全状态,同时尽量消除系统失效。
可以这样简便但不严谨的来区分随机失效和系统失效,随机失效就是找不到根本原因的、不可复现的,系统失效是能复现的、能找到根本原因的。
降低随机失效通常的原则是监控、冗余、分散、诊断等。
消除系统失效通常的原则是跟踪设计需求、模块化设计等,主要是加强设计流程的管理。
安全状态
MCU如果失效后,希望其能进入一种安全的状态,在安全状态下,MCU不会损坏,同时电机不会产生非预期的转矩。
电动汽车上MCU控制的电机通常是永磁电机,永磁电机是感性负载,而且高速下有危险的反电动势存在,所以MCU故障后,并不能仅仅通过IGBT开路来达到安全的状态。常用的安全状态有如下两种:
a. 主动短路ASC(Active short circuit)
通过同时开通三相桥的全部上管或全部下管,将电机的三相绕组短路。电机短路后,反电动势不会影响MCU的直流端,高压安全。但电机会有短路电流,通常情况下该电流不会超过电机的峰值电流,短时间不会影响电机和MCU的发热。电机有了电流,会产生一定的制动转矩。另外,如何短路也有一定的学问,要避免产生过高的瞬态短路电流。
b. 续流Freewheeling
也即三相桥的六个管子均关闭,电机通过反并联二极管将自身的能量输送到直流端,相当于三相不控整流。直流电压值和电机反电动势1.414倍关系。为了人身安全,只能在低转速下才能进入该安全状态,否则整流的高压也很危险。
故障监控和问询式开门狗
对于如MCU之类重要的应用,故障监控(过压、欠压、复位等)需要独立于主CPU做冗余,也即在主CPU之外,多一个CPU做故障的冗余监控。现在很多芯片厂家都有多核的控制芯片,主芯片用于实现基本的控制功能和保护功能,副芯片用于做冗余监控。
这里介绍一种用CPLD做冗余监控的案例。CPLD会监控驱动芯片产生的IGBT过压、过流,同时监控控制弱电的电压故障,若故障发生,则快速的封锁PWM信号,保护IGBT。同时它还定时查岗,通过SPI通讯的方式发送暗号,查看电源管理芯片和主CPU是否在工作状态,如果发现有人不在岗,立即拉响警报,走绿色独立通道,短路或开路PWM的方式,让MCU快速进入ASC或Freewheeling安全状态。
电流传感器(冗余和差异)
电机控制需要知道电机电流值,理想情况下,三相电流之和为0,只要知道其中两相电流,就可以计算出第三相电流。所以从低成本设计的思路,用两个电流传感器就够了。
Ia+Ib+Ic=0
如果用两个传感器,就会带来某种失效情况下,过流检测不到。比如我们只用两个传感器检测A和B相电流,然后B相传感器坏了,同时B相和C相短路,BC间流过大电流,现在MCU能准确知道的仅仅A相电流值,而且还是正常的,根本不能检测到过流故障。所以从冗余的角度,需要采用三个电流传感器(安全需要付出代价)。
另外,三个传感器不能采用同一个厂家的,因为同一个厂家的产品设计参数都是一样的,有可能因为同一个原因失效(共因失效),比如EMI。所以通常将其中一个传感器选择第二供应商的产品。这样通过差异,降低了共因失效的风险。
MCU可以用三级来实现过流保护,分别应对不同的场景。
1、通过CPU的定时ADC采集。该采样频率较低,通常为百us级,只能通过软件判断,应对一些电机过载。
2、通过硬件的运放比较。电流传感器的值通过和某一阈值电平比较,输出硬件过流信号,再由CPLD处理。通常响应速率为十几us级,能应对一些接地短路故障。
3、驱动级。通过驱动芯片,监控IGBT的Vce电压,实现过流保护。通常响应速率为ns至us级,能应对IGBT驱动故障、MCU内部短路等。
旋变(冗余和差异)
要取得转子位置和转速,需要给旋变激励正弦信号,然后从旋变反馈的正余弦信号中提取所需信息。传统的做法是用一片旋变芯片(如1210),完成解码功能,CPU需要做的仅仅是定期去读取转速和位置信号,但这没有冗余,不符合功能安全。
这里给的一种的方案是完全不用解码芯片,CPU自己完成软解码。
CPU输出PWM信号,通过硬件低通滤波和放大,形成旋变的正弦激励信号。旋变的激励和反馈的正余弦信号,均送给CPU的ADC引脚,软件读取后内部进行解码和锁相,得到转子位置和转速,用于电机控制。
为了实现冗余和差异,模拟信号会送给ADC的不同转换通道,由不同的AD转换器实现转换。同时模拟信号还会送至监控芯片,用于评估信号完整性。
相关文章