胡 旦,孙 佳,杜灵根,李 俊
基于STM32的蓄电池检测系统设计
胡 旦,孙 佳,杜灵根,李 俊
(武汉船用电力推进装置研究所,武汉 430064)
蓄电池检测系统是蓄电池质量指标中非常重要的一环,直接影响蓄电池的性能和寿命。本文介绍一种以STM32微处理器STM32F103RCT6为核心的铅酸蓄电池高精度智能检测系统,可以同时检测电压、温度、液位,并根据神经网络计算得到电解液密度,用户在上位机完成测试参数设置,自动对电池的各项数据进行存储和报警。文中详细介绍了系统组成、硬件和软件设计。实践证明该检测系统满足实际需求。
蓄电池 STM32F103RCT6 检测系统
铅酸蓄电池广泛应用于军事、电力、交通、通信等领域。在现役潜艇电池和UPB系统中,铅酸蓄电池短时间内无法被其他电源系统取代。为保证铅酸蓄电池的性能、寿命和可靠性,需实时检测控制蓄电池组内部的工作状态。因此,检测设备是蓄电池系统中必不可少的一环。
虽然目前市场上铅酸蓄电池检测仪种类众多,但大多数检测参量少、检测精度低且智能化程度低。因此,本文基于实际项目需求,设计了集成化、智能化、高精度的蓄电池检测系统[1-3]。
本系统采以计算机为核心、采用CAN总线通讯和智能化参数监测模块技术,能够实现蓄电池参数的自动巡回检测和显示,远程数据处理、充、放电参数监视等功能。技术上比较先进,功能扩展方便,为以后实现蓄电池的综合管理打下良好基础。系统主要由工控机、智能采集模块、电源模块及线缆等组成,如图1所示。工控机作为监控系统的人机交互载体,运行基于Labview的电池参数监控软件,控制智能采集模块,同时对智能采集模块的数据进行处理,对蓄电池组参数进行统计,分析电池组的工作状态,对电池组状态进行显示、存储及与上级进行信息交互,并对各类故障进行报警和指示。智能参数检测模块采用模块化插件结构,具有体积小、重量轻、功耗低的特点,能同时检测电池的电压、温度、液面高度、充放电电流,进行电解液密度计算、剩余电量估算(SOC)、健康态预测(SOH),如图2所示。电源模块能智能转换两路电源AV220V和DC24V,从而保证了电源的可靠性[4]。
图1 检测系统总体框图
图2智能采集模块框图
电池电解液密度计算由电池充放电试验数据库开发和电解液密度计算算法获取两部分工作组成。
首先建立电池充放电试验数据库,用于存储电池充放电试验数据并提供数据检索和分析功能,以便于提取电解液密度计算所需数据并进行数据处理。
根据电池充放电试验数据库提供的数据,利用MATLAB神经网络工具箱进行电池电解液密度计算。目前采用基于BP神经网络。
最典型的BP神经网络是三层前馈网络,由输入层、隐含层和输出层组成。输入层各神经元对应的输入向量为:
x=(1,2,3)=()=1,···,m
其中,m为输入样本个数。根据BP神经网络的计算原理,首先按如下公式计算出隐含层各神经元的输入
式中,S为隐含层第j个神经元的输入值;w为输入层第i个神经元与隐含层第j个神经元之间的连接权值;b为隐含层第j个神经元的阈值;p为隐含层神经元个数。为模拟生物神经元的特性,以S作为激活函数的自变量来计算隐含层各单元的输出。经过测试,选择对数S型(Log-Sigmoid)激活函数时计算精度较高。函数的数学表达式为:
式中,d为隐含层第j个神经元的激活值;单元阈值b用于模拟生物神经元的阈值电位。神经网络训练过程中神经元间的连接权值和各神经元的阈值一起被不断修正,直到神经网络计算误差下降到期望误差值或达到最大训练次数。输出层神经元以隐含层神经元的激活值和隐含层到输出层神经元的连接权值、输出层神经元阈值为自变量按照S计算输入值,输出值即为神经网络的仿真结果。在进行电池电解液密度计算的BP神经网络建模中,隐含层到输出层的激活函数选择purelin线性函数。函数的数学表达式为:
式中,v为输出层第k个神经元的输出值;h为输出层第k个神经元的输入值;w为隐含层第j个神经元到输出层第k个神经元间的连接权值;d为隐含层第j个神经元的激活值;b为输出层第k个神经元的阈值;q为输出层神经元个数。
目前的计算采用电压、放电电流、电解液温度作为神经网络的输入项,以电池电解液密度为神经网络的输出项。
将训练完成的神经网络模型的神经元连接权值矩阵和阈值向量提取出来,利用神经网络算法的计算原理进行编程。
智能采集模块的硬件主要包括:主控器、AD采样保护电路、电压采样电路、温度采样电路、液位采样电路。这里详细介绍采样保护、温度采样、A/D采集模块、CAN模块。
3.1 采样保护电路
在监控单元中,被检测的对象如液位、电流等都是连续变化的量,通过相应传感器将它们转换为连续变化的电流(4~20 mA),再选取一个适当阻值的电阻将其转化成0-3 V的电压信号。考虑到工程实践,需留有一定的裕量,经转换后传感器的输入信号限定在0.48~2.4 V,这样取样电阻设置为120 Ω。进入AD采样通道之前再设置一钳位电路,钳位电压为2.5 V,以保证在异常情况下不至于使输入AD通道电压过高而烧毁ARM。采样保护电路如图3所示。
图3 采样保护电路
3.2 温度采样电路
针对蓄电池内部检测环境恶劣,而温度的测量要求精度高的要求,温度测量单元选用PT1000,其温度测量范围为:-40~+85℃,当温度为0℃时,电阻值约为1000 Ω,当温度范围在0~100℃时,电阻值变化率为3.85 Ω/℃。将PT1000与一个阻值1.8 kΩ电阻串联,将一个阻值1.8 kΩ电阻和一个阻值为1 kΩ的电阻串联,它们共同组成一个桥式电路,给桥式电路施加一个直流5 V的电压信号,将桥式电路的两个中间节点分别送入仪表放大器INA128的正负输入端,INA128放大器芯片的增益设置为6,这样可以更精确的测量到PT1000阻值变化时引起的电压变化值,其输出引脚连接STM32F103RCT6芯片的内部AD模块。温度采样电路图如图4所示。
图4 温度采样电路
3.3 A/D采集模块电路
A/D模块采用16位串行高速A/D转换器ADS8320,它是Burr-Brow公司生产的逐次逼近式串行微功耗CMOS型高速A/D转换器,它的线性度为,工作电源在2.7~5.25 V范围内,采样频率最高可达100 kHz;ADS8320具有同步串行SPI / SSI接口,因而占用微处理器的端口较少ADS8320的输入端采用差模输入方式。
图5 A/D采集模块电路
3.4 CAN模块电路
由于多个蓄电池智能采集模块并联在CAN网络中,向上位机收发数据时,相互之间会存在干扰,因此传统电路设计中在收发两路都需要加上光耦隔离芯片,但这样做的缺点是:电路相对复杂,且电路板占用面积大。因此本设计CAN控制器选用CTM8251LAT,它是一款带隔离的通用CAN收发器芯片,其内部集成了所有必需的CAN隔离及CAN收发器件,所有功能集成在不到3平方厘米的芯片上。
图6 CAN模块电路
软件设计包括工控机信号分析与故障诊断和下位机信号采集处理两个部分。工控机根据既定协议,通过CAN转接卡与智能采集模块进行通信,以完成数据的接收与发送。工控机程序基于LabVIEW平台上开发。图形化、模块化是LabVIEW的最大特点,它简化了程序代码的编写,从而开发出功能完善、界面友好的应用程序。其主要功能为:显示电压、密度、温度测量值,对智能采集模块进行故障检测,对密度、温度和液位越限报警。
智能采集模块程序存储于ARM FLASH中,上电完成芯片初始化、数据初始化,然后接收执行上级设备指令,完成信号数据采集并上传数据;如遇程序跑飞、死循环,程序则会自动重启保证参数检测模块正常运行。主程序负责对“检查电池”的高低液位、温度、电池电压信号进行采集、滤波、处理,同时通过神经网络计算得到电解液密度值,并通过CAN总线总线发送数据。CAN口数据采取中断方式发送和接收数据。程序采用循环方式运行,并采取了防死机措施。参数检测模块主程序流程图如图7、8所示。
图7 参数检测模块主程序流程图1
图8 参数检测模块主程序流程图2
为解决检测系统检测参量少、检测精度低且智能化程度低的问题,本文设计了一套智能检测系统,其中详细介绍了蓄电池检测系统的组成、采集模块硬件和软件设计。通过多轮次试验调试和运行试验,系统满足设计指标和可靠性要求,在应用中满足实际需求,为铅酸电池电源系统的安全可靠运行提供有力保障。
[1] 周志敏, 周纪海, 纪爱华.阀控式密封铅酸蓄电池实用技术[M].北京: 电力出版社,2004: 66-70.
[2] 刘晓刚.铅酸蓄电池容量检测方法研究[D].武汉: 华中科技大学, 2007.
[3] 舒新.蓄电池监测系统研究与开发[D].南京: 河海大学, 2007.
[4] 乐毅成, 于水英, 付志超.铅酸蓄电池监控系统设计[J].船电技术, 2016, 36(7).
Design of Detecting System with STM32 for A Battery
Hu Dan, Sun Jia, Du Linggen, Li Jun
(Wuhan Institute of Marine Electric Propulsion, Wuhan 430064, China)
;
TP273.4
A
1003-4862(2017)04-0077-04
2016-11-10
胡旦(1988-),男,工程师,研究方向:控制理论与控制工程。E-mail:hd_auto@163.com