微型混合动力汽车铅酸电池能效管理
高效实现BMS的硬件和软件
电能效率是新型汽车一个最重要的特性,由BMS来实现。除了管理一些节电功能外,BMS还需要具有高能效,因为它是一种始终运行的系统,当发电机不工作时需要通过铅酸电池供电。为满足这一要求,IBS的功耗必须尽可能低。
为实现这一目标,飞思卡尔的IBS实施采用两种低功耗模型,其中CPU和其他不需要的硬件(HW)模块被关闭。为降低正常运行模式时的功耗,并减少客户端的软件(SW)开发工作,增加了额外的硬件模块以降低软件复杂性。这样便可以使用尺寸更小、功耗更低、性价比更高的16位微控制器。另一种降低软件复杂性的方法是在整个使用寿命期间确保产品参数,并将工厂调校值存储在非易失性存储器(NVM)中。作为产品下线测试的一部分,这些调校值针对每个芯片分别进行表征描述,并相应地存储。因此,在软件中无需使用复杂的校准算法。
除了在硬件中实施的这三种技术以外,本文还介绍了电池监控算法的高效软件实现方法。
1. 低功耗模式
实现低功耗模式是一种非常好的降低功耗的方法。实现方法是,在不需要SoC的部件(尤其是CPU)时将其关闭、并仅在需要时切换到正常模式(即激活所有硬件模块)。正如前面所提到的,共有两种低功耗模型,其不同之处仅在于CPU被唤醒后使用的程序入口点。
但是,在低功耗(即没有软件交互)模式下,也需要监控电池状态。首先,需要跟踪电流,用库仑计数法计算出SoC。相应地,可支持低功耗模式下的电流测量和电流采样值的自动求和(即库仑计数)。
IBS必须能够对电池和汽车的状态变更做出反应,即电池传感器必须在各种事件发生时被唤醒。相应地,也需要测量低功耗模式时的电流和温度。电流变化通常表明汽车状态发生变化(用电器件的开和关),而温度改变时有时需要重新校准测量通道参数。可以配置电流和温度采样值的阈值,如果超出阈值则唤醒。还可以使用自动库仑计数器阈值唤醒机制。
除了那些针对被测参数的唤醒事件以外,还可实现其它唤醒机制,允许BCM或汽车中的其它电子器件唤醒IBS(通过LIN消息或直接导线连接),此外还有定时唤醒机制。
上述低功耗模式和唤醒机制的实现允许IBS在大多数时间里都运行在低功耗模式下(通常约为70%),包括引擎运行时。在正常运行模式期间,SoC、SoH和SoF参数将被重新计算。
2. 将软件任务移至硬件模块
采用专用硬件模块来承担软件的任务是降低软件复杂性和节省电能的一种有效方式。在将此类硬件模块用于电池监控算法以前,可以非常有效地将其用于电压、电流和温度测量采样值的预处理。这一点非常有必要,因为汽车的电源线经常受到干扰,而且对于IBS来说,采样值的测量精度要求很高。
带有抽取滤波器和抗干扰滤波器的高精度16位Σ-Δ ADC非常适合这种应用,因为与其他ADC技术相比它具有高测量精确度。结合误差补偿功能,已经能够提供非常好的精确度。但是,在信号处理链后常常需要对采样值进行再滤波。这样做的原因是可以去除汽车中其它电子器件的噪音,因此滤波器需要有可自由转换的频率特性。另一个原因是,作为电池监控的一部分而被观测的特定电池参数,与激励频率(由电池的化学组成决定)紧密联系在一起。例如Ri就是如此。
可编程线性滤波器可以满足这些要求:滤波器系数可经过寄存器传送到硬件滤波器模块。这些寄存器被编程后,在软件中就不再需要完成滤波任务。
电流测量面临着需要对小电流进行高精度测量,同时还必须支持宽测量范围的挑战。所要求的精度要高于10mA,这意味着在100μΩ的分流器上产生1μV的压降。而在汽车起动过程中,会出现1000A甚至更高的电流。为支持上述两种需要同时避免在软件上进行手动测量重配置,需要引入一个自动增益放大器。可选增益因子用来调节输入信号,使其与ADC的参考电压达到最优匹配。增益因子的调节可以自动完成,在整个运行过程中,无需对软件进行重配置。出于测试的目的,或者当存在特殊的应用需求,也可以选择固定增益因子。
3. 简化校准工作
确保器件在整个使用寿命期间都保持高精确度的一个非常重要的任务是调整和校准。为此,之前测试得到的校正因子被应用到关键的器件参数中。作为产品线器件测试的一部分,这些因子在各种温度下被测试,并存储到IBS的NVM中。在器件启动时,各调整参数需由软件写入到器件的寄存器中。需要调整的参数可在电流和电压测量链中得到。另外,振荡器、电压基准和LIN定时也需要被校准。在运行期间需要进行重校准,例如需要定期校准或在温度出现急剧变化时进行校准。如果有的话,不同的校正因子需再次写入到各自的寄存器中。
上面提到的校准方法可以避免客户对这些参数进行昂贵的产品下线测试。另外,通过简单地应用参数,还可以降低软件校准的复杂性。
4. 软件实现
在前文中提到的电池管理算法需要采用处理器密集型计算和控制算法。通常是在PC机上利用基于模型的仿真工具来完成这些算法的初次实现。这些工具通常使用浮点数据格式。在随后的开发过程中,这些算法被移植到IBS上。但是,由于成本和功耗的原因,IBS所用的微控制器上并不提供浮点硬件。因此,为获得合适的运行时间,在算法中所使用的数据类型必须映射到定点整数格式。有多种数据类型及相应的取值范围可用。例如,下表列出了在飞思卡尔的IBS上提供的数据类型。
数据类型 范围(无符号) 范围(有符号)
char (8位) 0 – 255 -128 – 127
int (16位) 0 – 65535 -32768 – 32767
long int (32位) 0 – 4294967295 -2147483648 – 2147483647
为了表示小于1的值,LSB被映射为特定的值。该值由所需的分辨率决定。通过选择其中一个可用的数据类型,可以得出该变量的可用值范围和虚拟固定小数点(定点格式)。例如,分辨率为1mV,采用无符号整型时所能表示的范围为0~65.535V。
由于飞思卡尔IBS中有一个16位S12 CPU,因此整型数据类型可以提供16位的精度。这意味着8位和16位变量处理起来较32位性能更优。因此,一般首选8位及16位变量。
上述计算SoC、SoH和SoF所用算法的实现范例显示,在许多情况下,16位变量可以提供足够的数值精度和范围。这是因为电压和温度输入值都是16位精度(通过使用16位ADC)。其它的一些16位精度就已足够的数值包括SoC、SoH、Ri和校正因子α。即使采用具有24位精度的电流采样值,也可以在大多数情况下映射到16位数据。例如在3mA的精度上,通过使用带符号16位整型格式,可表示达±98.3A的电流值,而无需对数字格式做进一步的修改。这足以满足汽车在行驶和停止时的要求。在起动过程中,电流采样值会超出边界,必须使用32位数据格式。需要32位格式的参数是与电池充电有关的值(例如,库仑计数器)。
- 个人多媒体进入车载应用对SoC平台的技术要求分析(02-22)
- GPS和Galileo接收机的芯片技术与系统设计(07-07)
- 汽车嵌入式SoC系统的应用与发展(04-21)
- 基于FPGA原型的GPS基带验证系统设计与实现(08-15)
- 基于PSoC的车位锁管理系统设计(10-02)
- 基于FPGA的动力电池管理系统研究与开发(11-13)