如何学好并做好电池管理系统(BMS)

1、先一如既往地说一说电池管理系统的由来:

(1)形象地说,电池是电动汽车的心脏,而电池管理系统(以下简称为BMS)是电池的大脑;BMS是为了在合适的时候给电动汽车提供合适的能量;

(2)BMS能够发挥电池的最佳能力:在电池温度低的时候加热,输出最大功率;在电池温度高的时候冷却,输出最大功率;毕竟像三元这类电芯的最佳工作温度在20-45℃左右;

(3)BMS能够诊断电池的病症出处:在电池寿命低的时候报警;在电池包继电器粘合或者常开时报警;在电池输出过功率时报警;在发生致命问题时(过温、过流、过压、过放,史称四放)及时切断继电器;

BMS就像一个管家一样,不停的监控与优化电池的使用,直到宣告电池寿终正寝;

2、三年前校招入职前,我还是个小白,只会使用Simulink(准确地说,只是了解而已),阴差阳错地在入职第一天就被分配到BMS的岗位,开发公司的第一款BMS产品,下面说说自己从0到1的心路历程,并谈谈自己对于BMS开发的理解:

(1)从BMS的整体架构来看,BMS可以分为:应用层软件(俗称ASW,Application Software)、中间层(俗称RTE,Runtime Environment)、底层软件(俗称BSW,Basic Software)、硬件(俗称HW,Hardware);其实更为细致地分法是要按照Autosar的架构进行的,如下图:
如何学好并做好电池管理系统(BMS)_第1张图片
(2)对于BMS的开发,最终的Interface的体现是在用户体验到的整车功能的实现的,以行车功能为例的反推流程;行车功能——要闭合放电高压回路——闭合主正主负继电器——何时闭合继电器——BSW提供的硬件驱动接口是什么——RTE如何定义接口性质(数据类型为Boolean:TRUE/FALSE)——ASW的软件需求(何时为TRUE,何时为FALSE)——Simulink的软件模型(建模与自动代码生成);以上只是口语化的软件开发思考,其实使用所谓的流程和方法论帮助开发者去正向思考的,比如Aspice或CMMI这种软件开发流程;

(3)BMS比较细致地功能可以分为:信号输入处理、高低压上下电、高压互锁检测、绝缘检测、均衡控制、热管理控制、高压附件控制与保护、高压采样、故障诊断及服务、信号输出处理、SOX估算(最核心);

(4)如果从软硬件的角度去区分BMS的功能,可以有:软件建模、软件需求编写、SOX算法、底层与硬件等;

之后会按照BMS的功能慢慢回忆以往的心路历程,也算是对于往日的总结;随着软件建模能力的逐渐成熟,小W也会将软件开发的技巧与思路分享出来,毕竟小W自认为最优秀的地方就是Simulink建模与Matlab脚本自动化处理。

你可能感兴趣的:(如何学好并做好电池管理系统(BMS))