电池状态估计
使用自编码器+LSTM和自编码器+CNN估计锂离子电池的剩余使用寿命(RUL)。
简介
本仓库提供了RUL估计的深度网络实现。实验使用了两个数据集:NASA随机电池使用数据集和UNIBO电动工具数据集。
论文(Energies期刊发表)
如果您使用本仓库,请引用我们的论文:
充电还是出售?利用LSTM、CNN和自编码器估计电动汽车电池组的有效使用寿命 [链接]
@Article{en16062837,
AUTHOR = {Bosello, Michael and Falcomer, Carlo and Rossi, Claudio and Pau, Giovanni},
TITLE = {To Charge or to Sell? EV Pack Useful Life Estimation via LSTMs, CNNs, and Autoencoders},
JOURNAL = {Energies},
VOLUME = {16},
YEAR = {2023},
NUMBER = {6},
ARTICLE-NUMBER = {2837},
URL = {https://www.mdpi.com/1996-1073/16/6/2837},
ISSN = {1996-1073},
DOI = {10.3390/en16062837}
}
源代码结构
data_processing包含加载两个数据集的脚本。unibo_powertools_data.py加载UNIBO数据集并计算衍生列(如SOC),而model_data_handler.py准备时间序列。nasa_random_data.py同时加载和准备NASA随机数据集。prepare_rul_data.py用于两个数据集;它计算电流积分以获得基于安时的RUL,并为神经网络格式化时间序列。
experiments目录包含定义各种实验和使用模型的Jupyter笔记本。results目录显示结果图表和测量值(如RMSE、MAE等)。
训练好的模型可在GitHub发布区获取。
快速开始
1) 安装依赖
Python包
已在Tensorflow 2.7上测试
pip install tensorflow
pip install pandas sklearn scipy
pip install plotly
pip install jupyter notebook ipykernel jupyterlab
2) 下载数据集
下载NASA随机电池数据集并将其内容放入battery-state-estimation/data/nasa-randomized/
目录
下载UNIBO数据集并将其内容放入battery-state-estimation/data/unibo-powertools-dataset/
目录
3) 运行笔记本
运行experiments目录中的一个笔记本。您可以通过切换笔记本顶部的IS_TRAINING值来选择训练新模型或加载现有模型(只需在RESULT_NAME中定义模型文件名)。
查看results目录以查看我们获得的结果(您可以在GitHub发布区找到训练好的模型,通过将文件放入'trained-model'目录来运行它们)。
如果您想在Google Colab上运行笔记本,请将仓库加载到Google Drive中,并将笔记本顶部的IS_COLAB变量设置为True。这将允许笔记本在您的Drive中找到数据集并保存结果。