微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于DSP的汽车电池管理系统设计

基于DSP的汽车电池管理系统设计

时间:12-21 来源:互联网 点击:

短的时间间隔内完成复杂的递推运算,这对控制器的计算能力和计算速度要求更高。传统的电池管理系统采用单片机作为控制器,由于单片机侧重于控制而实时数据运算能力有限,所以无法很好地满足BMS的要求。TI公司的TMS320C2000系列DSP集微控制器和高性能DSP的特点于一身,具有强大的控制和信号处理能力,能够实现复杂的控制算法。该系列DSP上整合了Flash存储器、快速高精度的A/D转换器、两路增强的CAN模块、事件管理器、正交编码电路接口、多通道缓冲串口等外设。32位定点运算的C2808 DSP能够在一个周期内完成32×32位的乘法累加运算,或两个16×16位乘法累加运算。此外,可以在一个周期内对任何内存地址完成读娶修改、写入操作,使得效率和程序代码达到最佳,完全满足实时控制的要求[5]。

  3.3 电池参数辨识和SoC估计算法

  电池监控必需先进行建模,实时检测电池的电压、电流以及温度,根据这些数据对模型的参数进行辨识,从而间接地估计电池内部的情况。图4为锂离子动力电池模型[6],模型中利用C0描述电池的容量,R0描述电池的等效欧姆内阻,用时间常数较小的R1、C1环节描述锂离子在电极间传输时受到的阻抗,时间常数较大的R2、C2环节描述锂离子在电极材料中扩散时受到的阻抗。该模型中的参数都可以通过参数辨识的方法得到。

  

  为了实现自适应控制和跟踪随时间变化的参数,在辨识过程中采用递推的最小二乘法。电池内部参数根据电压、电流信号每次的采样值进行更新,其基本思想是本次的估计值等于上一次的估计值加上一个修正项,修正项的大小取决于模型的输出与实际输出的差项。该方法要求在下次采样之前必须完成一步递推运算。

  在装车运行时,整车控制器需要BMS提供高精度的SoC,一般估计精度要小于5%。电池的SoC是不能直接得到的,只能通过对电池电压、电流、温度、内阻等参数进行测量间接估算得到。而且这些参数又与电池老化程度、电池单体不均匀性等有关。目前常见的方法有开路电压法、电流积分法等。

  3.4 基于CAN总线的标定模块

  由于汽车上网络系统的广泛应用,基于网络连接的控制单元标定和传统的匹配标定方法有很大的不同。基于CAN的电子控制单元的标定是电池管理系统控制器开发的一个重要环节。CCP(CAN Cali-bration Protocol)是CAN总线的标定协议,目前已经得到汽车厂商的广泛应用。利用该协议可以快速有效地对控制器进行标定。在电池管理系统中,可以利用CCP实现实时在线测试、传感器的监测和标定、报警或出错阈值的调整以及通过CAN下载程序。

  在传统的手写代码的控制器设计过程中,基于CCP协议的标定需要支持CCP协议的驱动程序。由于ECU底层程序和CCP协议的驱动程序各不相同,将CCP驱动程序结合到ECU中需要耗费大量时间。MATLAB 2007b中新增了基于CAN总线的标定模块。将该模块放入Simulink模型中,并设置好相关参数,便可以自动生成能够实现CCP标定的代码了。

  3.5 在Simulink中建立模型

  在建模的最开始必需把C2000 DSP chip support 中的F2808 eZdsp 模块放到模型中。该模块是对DSP的基本信息进行设置,包括芯片的选择、锁相环时钟频率的选择、存储器地址分配,以及外围设备的一些基本设置。

  传感器输出模拟信号和数字信号,对于模拟信号可以用A/D转换模块进行转换,对于数字信号可以用GPIO或者CAP捕获模块处理。经硬件滤波后的模拟采样信号还不够理想,在该模型中可以对采样信号进行快速傅立叶变换,分析出噪声信号的频率特性,并设计出相应的数字滤波器,对采样信号进行进一步滤波。执行器的控制可以用GPIO或者PWM模块进行控制。

  由于SoC和SoH以及控制算法较为复杂,可以用S-function模块实现。S-function是一个动态系统的计算机语言描述,是扩展Simulink模块库的有力工具,它采用一种特定的调用语法,实现函数和Simulink解法器之间的交互。Simulink中的电池管理系统模型如图5所示。

  

  3.6 自动代码生成、编译以及运行

在Simulink中仿真运行无误后,便可以从模型直接生成控制算法代码了。Simulink在内部调用real-time workshop build 并且自动打开TI的集成开发环境CCS,生成的代码经过编译自动生成可执行的最终控制程序。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top