YamBMS项目中的自动充放电电流限制功能优化解析
背景介绍
在YamBMS这个开源电池管理系统项目中,自动充电电流限制(Auto CCL)和自动放电电流限制(Auto DCL)功能是核心特性之一。这些功能通过动态调整充放电电流来保护电池组,延长其使用寿命。然而,在最新版本的JK-PB和JK-B2A8S20P BMS硬件上,这些功能遇到了一些技术挑战。
问题分析
在软件版本V11.54中,OVPR(过压保护恢复)和UVPR(欠压保护恢复)值被限制在SOC 100%和SOC 0%之间,这导致了Auto CCL和Auto DCL功能的计算出现异常。具体表现为:
- 充电过程中电流出现剧烈波动
- 在接近SOC边界时电流控制不够平滑
- 保护机制与电流限制之间存在冲突
解决方案设计
经过项目维护者和贡献者的深入讨论,最终确定了以下优化方案:
自动充电电流限制(Auto CCL)优化
采用电池单体过压保护(OVP)电压与预设的电池单体均衡电压(cell_bulk_v)的中间值作为计算基准:
cell_high_v = (OVP + cell_bulk_v) / 2
这种方法的优势在于:
- 避免了使用OVPR参数带来的限制
- 在接近满充状态时提供更平滑的电流衰减曲线
- 防止了保护机制与电流限制之间的冲突
自动放电电流限制(Auto DCL)优化
采用电池单体欠压保护(UVP)电压加上一个固定偏移量作为计算基准:
cell_low_v = UVP + 0.2
选择0.2V偏移量的考虑因素包括:
- 兼容不同用户设置的UVP值(包括低于2.8V的情况)
- 确保在接近空电状态时有足够的缓冲空间
- 防止SOC漂移导致的误判
技术实现细节
在具体实现上,项目团队还考虑了以下技术要点:
-
平衡触发电压:保留了balance_trigger_v参数,允许用户根据需求调整平衡触发范围,而不是采用固定值,提供更大的灵活性。
-
SOC重置机制:确保在达到电压限制时能够正确重置SOC显示,避免用户混淆。
-
曲线参数优化:调整了电流衰减曲线,确保在接近电压限制时电流能够平缓下降,而不是突然切断。
实际应用效果
这些优化已经在YamBMS 1.5.1版本中实现,并带来了以下改进:
- 消除了充电电流的剧烈波动现象
- 提供了更平滑的充放电过渡
- 增强了系统在各种BMS硬件上的兼容性
- 简化了用户配置,减少了需要设置的参数数量
总结
通过对YamBMS项目中自动充放电电流限制功能的重新设计,项目团队成功解决了新硬件平台上的兼容性问题,同时提升了系统的稳定性和用户体验。这一优化展示了在嵌入式系统开发中,如何通过算法调整来应对硬件限制,实现更好的电池管理效果。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



