汽车市场的激烈竞争要求设计者必须缩短产品开发周期。在传统的汽车电子控制器的设计开发中,控制器的总体设计、整体性能分析以及控制策略的优化通常需要大量的时间、人力和物力,投资大、效率低。此外,这种开发方法还容易出错,直到最终定标时才进入实时在线测试。如果在最初设计时出错而没有及时发现,则会导致大部分工作必须重新进行,开发周期变长。可见传统的研发方法无法满足市场的需要,必需有一种新的设计理念来适应市场的需求。
1V模式的设计方法及自动代码生成
1.1V模式的设计方法
如图1,与传统的设计方法相比,V模式的设计方法将系统工程学的原理应用于现代汽车电子系统开发中,它是一种循环的设计模式。其特点是无论进行开发、编程或者测试,总是在同一环境下工作,开发过程的每一步都可以得到验证[1]。它以功能强大的计算仿真工具为前提,整个设计过程都是在同一个平台下完成,实现从设计理念的提出,到快速原型设计(Prototype),再到ECU产品的无缝连接。采用该方法的最直接效果就是加速和简化了开发流程,及时消除错误,大大减轻了工程师的工作量。
1.2运用Simulink实现自动代码生成
自动代码生成处于V模式的最底层,是整个开发过程中最为关键的一步,其目的是实现开发过程中的快速迭代以提高开发效率。代码生成的质量直接影响系统的可靠性和稳定性。
图2为基于MATLAB/Simulink的DSP自动代码生成流程[2]。Simulink是一种对于动态系统进行多域仿真和基于模型设计的平台,它提供了一个交互式的图形环境和丰富的模块库。根据系统的功能要求,首先在MATLAB/Simulink环境下搭建系统模型,并且进行仿真分析。使用Simulink调试器检查仿真结果以及定位和诊断模型中的意外行为。一旦结果得到了验证,便可以通过RTW(Real-timeworkshop)自动生成面向TI编译器的C语言工程文件,并进一步完成编译、连接和下载,最终在硬件平台上运行。
RTW是和MATLAB、Simulink一起使用的一个工具,运用它直接从Simulink模型生成代码并且自动建立可以实时运行的程序。在默认情况下,RTW生成的是高度优化和完全注释的C代码。除了MATLABfunction模块和调用M文件S函数的模块以外,任何Simulink模型都可以生成代码,包括线性、非线性、连续、离散以及混合模型[3]。
从整个过程来看,工程师只需在Simulink中搭建模型和验证模型的正确性,不需要书写任何代码,即可得到可靠、准确的代码。
2嵌入式TargetforTIC2000工具箱
TargetforTIC2000将TI公司的eXpressDSP工具集成到Simulink中,它是MATLAB与TICCS的连接工具,可以使MATLAB、MATLAB工具箱、TICodeComposerStudio集成开发环境(CCSIDE)以及RTDX(Real-TimeDataExchange)协同工作。
TargetforTIC2000工具箱由三部分组成[3]:常用工具、芯片外围设备模块库、优化库。常用工具包括实时数据交换通道模块、目标控制器基本参数设置模块和CAN通讯设置模块。该工具箱支持C281x系列、C280x系列以及C2400系列的DSP。优化库包含定点运算库和数字电机控制库。
Simulink可支持四类C280xDSP外围设备模块库:存储器的读写模块、中断管理模块、控制模块以及通讯模块。除了不支持IIC通讯模块以外,该模块库对C280xDSP板上所有的模块都提供了很好的支持。用户在调用DSP的这些模块时,只需对相应的模块进行参数设置和选择,不需要关心底层是如何实现,整个模型的搭建过程就像堆积木一样简单。
3自动生成代码在电池管理系统中的应用
3.1电池管理系统的功能描述
BMS燃料电池车用锂离子电池管理系统BMS(BatteryManagementSystem)是一个嵌入式实时监控系统,应具备以下功能[4]:电池状态监控,包括电池工作电压、工作电流和工作温度的测量和信号处理;特定状态下的最大充、放电功率计算;特定工况下电池组荷电状态SoC(StateofCharge)、寿命状态SoH(StateofHealth)的估算;高压预充电、过充和过放保护、绝缘检测和漏电保护;电池的均衡和热管理;故障诊断以及与整车控制器通讯。图3为BMS系统框图。
由于汽车在处于停车状态时,BMS仍需每隔一定的时间对电池进行监控,所以在长时间停车时,BMS不可将蓄电池存储的电量耗完,否则汽车将无法启动。因此在停车时,BMS必须进入低功耗模式。当汽车开动时,从KL15传来的点火信号将控制器从低功耗模式唤醒,进入正常工作模式。
3.2控制器的选择
从BMS的功能可以看出,控制器起控制作用的功能只占BMS的小部分,在实时参数估计、SoC估算中,算法复杂且运算量大,控制器需要在较短的时间间隔内完成复杂的递推运算,这对控制器的计算能力和计算速度要求更高。传统的电池管理系统采用单片机作为控制器,由于单片机侧重于控制而实时数据运算能力有限,所以无法很好地满足BMS的要求。TI公司的TMS320C2000系列DSP集微控制器和高性能DSP的特点于一身,具有强大的控制和信号处理能力,能够实现复杂的控制算法。该系列DSP上整合了Flash存储器、快速高精度的A/D转换器、两路增强的CAN模块、事件管理器、正交编码电路接口、多通道缓冲串口等外设。32位定点运算的C2808DSP能够在一个周期内完成3232位的乘法累加运算,或两个1616位乘法累加运算。此外,可以在一个周期内对任何内存地址完成读取、修改、写入操作,使得效率和程序代码达到最佳,完全满足实时控制的要求[5]。
3.3电池参数辨识和SoC估计算法
电池监控必需先进行建模,实时检测电池的电压、电流以及温度,根据这些数据对模型的参数进行辨识,从而间接地估计电池内部的情况。图4为锂离子动力电池模型[6],模型中利用C0描述电池的容量,R0描述电池的等效欧姆内阻,用时间常数较小的R1、C1环节描述锂离子在电极间传输时受到的阻抗,时间常数较大的R2、C2环节描述锂离子在电极材料中扩散时受到的阻抗。该模型中的参数都可以通过参数辨识的方法得到。
为了实现自适应控制和跟踪随时间变化的参数,在辨识过程中采用递推的最小二乘法。电池内部参数根据电压、电流信号每次的采样值进行更新,其基本思想是本次的估计值等于上一次的估计值加上一个修正项,修正项的大小取决于模型的输出与实际输出的差项。该方法要求在下次采样之前必须完成一步递推运算。
在装车运行时,整车控制器需要BMS提供高精度的SoC,一般估计精度要小于5%。电池的SoC是不能直接得到的,只能通过对电池电压、电流、温度、内阻等参数进行测量间接估算得到。而且这些参数又与电池老化程度、电池单体不均匀性等有关。目前常见的方法有开路电压法、电流积分法等。