基于BMS数据的新能源汽车动力电池状态评估系统

20 阅读3分钟

一、介绍

本系统以 NASA Battery Dataset 为数据源,对锂离子电池的健康状态(SOH)、剩余使用寿命(RUL)和荷电状态(SOC)进行全面评估与预测。系统采用随机森林回归模型预测 SOH(R²≈0.97),线性回归外推 RUL,扩展卡尔曼滤波(EKF)增强 SOC 估算,并通过 Vue.js + ECharts 进行可视化展示,同时提供基于规则的分级异常预警与模型版本管理功能。

二、系统功能

1、数据采集与预处理

通过 kagglehub 自动下载 NASA Battery Dataset(18650 锂离子电池,B0005~B0028 等多块电池),使用 process.py 对原始放电循环 CSV 进行预处理:缺失值清洗与容量异常过滤、容量法计算 SOH(SOH = C_current / C_rated × 100%)、提取 11 维统计特征(电压/电流/温度均值标准差、放电时长等)、Min-Max 归一化(持久化 scaler.pkl)、安时积分法计算 SOC 并 10:1 降采样、基于规则的四级分级预警标记(0正常/1关注/2预警/3报警)。处理完成后由 save_to_db.py 批量写入 MySQL。

2、电池状态监控

选择电池编号(B0005/B0006/B0007)和放电循环次数,使用 ECharts 折线图展示该次放电过程的四条时序曲线:电压-时间、电流-时间、温度-时间、SOC-时间,横轴统一以放电时长(秒)为单位,数据来源于 battery_timeseries 表。 在这里插入图片描述

3、SOH 健康状态评估

基于容量法(SOH = C_current / C_rated × 100%)评估电池健康状态,状态阈值:SOH ≥ 80% 正常,70%~80% 关注,< 70% 报废。页面展示健康概览卡片(总数/平均SOH/关注数/报废数)、多电池 SOH 衰减对比折线图(含 80% 报废警戒线)、健康排名柱状图及电池状态列表,数据来源于 battery_data 表。 在这里插入图片描述

4、SOH 预测 & RUL 剩余寿命预测

SOH 预测采用随机森林回归(RandomForestRegressor,200棵树,11维特征输入,RMSE≈8.65,R²≈0.97),以 ECharts 双线图对比容量法实际值与模型预测值。RUL 预测采用线性回归拟合 SOH 衰减趋势,外推至 SOH=80% 计算剩余可用循环数,结果写入 battery_health 表并以柱状图展示各电池寿命排名。 在这里插入图片描述

5、异常检测与预警

基于规则引擎对放电数据进行四级分级预警(SOH<80% 关注、温度>45℃或电压<2.5V 预警、温度>60℃或SOH<70% 报警),多条件触发时取最高等级。页面展示预警概览卡片、各电池预警分布堆叠柱状图(ECharts),以及支持按电池编号和预警等级双重筛选的预警详细列表。 在这里插入图片描述

6、个人信息

用户查看、编辑个人信息。 在这里插入图片描述

7、修改密码

用户登录后可修改密码。

8、登录注册

用户登录注册。 在这里插入图片描述

9、用户管理

管理员功能,管理用户信息。

三、软件架构

后端

  • Python 3.8+
  • Flask
  • scikit-learn(随机森林 SOH 预测、线性回归 RUL 预测、PCA 降维)
  • NumPy / Pandas(数据处理与特征提取)
  • joblib(模型序列化与热加载)

前端

  • Vue
  • ECharts

数据库

  • MySQL 5.7+