BMS状态转换及上电策略——来自叶磊Ray的分享
2017-05-20 17:34:01
电池管理系统的功能主要可以分为检测(电压、电流、温度、绝缘、HVIL等物理状态)、评估(SOC、SOH、SOP等电池状态)、控制(接触器、热管理组件、均衡模块等)、诊断标定(故障查询、Snapshot读取、FBL、CCP等)、交互(VCU、charger、HMI等)等几大部分。之前讨论了关于BSE相关的内容,本篇从上电控制逻辑展开讨论。
画了一组有较好通用性的BMS运行状态转化图。最开始KL.30使能后BMS进入Sleep模式,当KL.15使能则BMS被唤醒进行初始化。在Standby中进行自检和运行任务的判断,根据判断结果进入相应的运行任务。当任务执行完毕后进入Offduty进行任务退出确认后回到Standby模式,当检测到KL.15丢失后,则进入Shutdown模式执行数据的保存和校验,最后再自行切断Powerlock回到Sleep模式。通常整车厂会对KL.15使能到BMS发出第一帧报文,或是进入Standby状态的时间有明确的时间要求(通常不超过500ms,甚至是300ms)。因此BMS被唤醒后首先需要执行Powerlock,然后尽快使能LECU并完成自检。
上图所画的BMS运行状态转化方式能比较好的兼容绝大多数车辆应用场景,具体应用过程中可根据实际情况进行相应的裁剪。当BMS进入Drive模式后,笔者也将后续的处理内容分为五个部分:
Drive_Check:在该状态中BMS进行动力电池系统是否满足行驶条件的判断,如SOC是否大于设定值、HVIL是否正常、连续预充电次数等。同时在此还可以进行上电时序有效性的诊断,比如BMS未上报Ready前若收到VCU的上高压指令,则可立即触发时序异常进入EPO。
Drive_Ready:在该状态中BMS进行车辆是否满足行驶条件的判断,如判断VCU故障状态、VCU高压使能请求指令等。
Precharge:在该状态中执行预充电上电过程。
Driving:在该状态中判断当前是否满足继续行驶的条件,包括VCU指令、BMS故障状态、SOC值等。
Drive_Stop:进入该状态后执行高压下电操作,并退出Drive模式。
通过上述五部分的划分可以实现模块化的控制策略模型,针对具体项目的情况在各个模块中添加策略内容即可。在充电模式中也可以利用这五部分模块进行划分,在此不作重复。
下面重点来谈谈Precharge中的上电时序问题。首先BMS进行接触器供电诊断,确保正常。然后进行预充电接触器粘连检测,确认正常后吸合预充接触器,再进行吸合确认。再进行总负接触器粘连检测,确认正常后吸合总负接触器,再进行吸合确认。此时电池系统正在执行预充电过程,BMS等待设定时间后判断母线总压是否达到电池总压的90%,且收到VCU的预充电成功指令,若两者同时满足则预充电完成。再吸合总正接触器,等待设定的时间后断开预充接触器并在此确认总正连接状态。
当然若要实现上述策略需要用相应的总压检测方式配合。通过比较Va、Vb、Vc三点的电压变化从而实现对接触器粘连的诊断和连接成功的确认。
同时BMS关于判断时间和等待时间的标定需要参考所选接触器的特性进行设置。
下图是PDU中总正、总负、预充电、慢充、快充五个接触器以及电流传感器、预充电电阻的集成模块。
最后来谈谈预充电电阻该如何去选型。
首先在选型前需要确认动力电池系统的总压和负责电容值作为输入。预充电时间计算公式: t = RC * Ln[(Vb - V0)/( Vb - Vt)]。Vb为电池总压,V0为负载电容初始电压,Vt为预充电成功判断电压。以母线电压达到电池总压90%为完成预充电的条件,则预充电时间 t = RC * Ln10。通常上电过程不超过1000ms,考虑到接触器动作的响应时间,预充电过程一般需要控制在500ms。
以标称电压为320V的电池系统,负载电容为4400uF的案例进行举例。
首先计算适宜的预充电电阻阻值:R = t / (C * Ln10 ) = 49.35 (Ω)
根据预充电电阻的选型资料可以看到47Ω的比较接近目标值。由此再推算采用该电阻情况下的预充电时间:t = RC * Ln10 = 480 (ms)。
接下去需要考虑电阻功率特性,峰值功率P = U^2 / R = 2178(w),
以及预充电过程产热,W = 1/2 * C * U^2 = 225 (J)。
由此可以得到WDBR3型号的产品较为符合应用的需求,并对多次连续预充电有比较好的冗余能力。 同时在BMS软件设计上也需要结合产热和散热情况对连续执行的预充电进行相应的限制,这也是上面提到在Drive_Check模式中需要判断的条件之一。