在S32K3上实现SOC的神经网络算法的可行性
前提
本文通过网络上收集的神经网络算法,并在目标系统上模拟运行,探寻SOC算法的可行性。
基本环境:Tensorflow lite micro,部署参考上一篇:使用S32DS部署Tensorflow lite到S32K3-CSDN博客
SOC使用算法
算法 | 路径 | 说明 |
battery-state-estimation | https://codeload.github.com/KeiLongW/battery-state-estimation/zip/refs/heads/main | 算法1 支持LSTM |
battery-state-of-charge-estimation-main | https://codeload.github.com/sautee/battery-state-of-charge-estimation/zip/refs/heads/main | 算法2 支持DNN/CNN/LSTM |
这些算法均对数据进行了清洗,直接使用即可;注意有时不能运行的原因是:"/" 在windows系统是不兼容的:
数据集
数据集 | 下载路径 | 说明 |
unibo-powertool | https://prod-dcd-datasets-cache-zipfiles.s3.eu-west-1.amazonaws.com/n6xg5fzsbv-1.zip | 算法1 |
LG 18650HG2 | https://prod-dcd-datasets-cache-zipfiles.s3.eu-west-1.amazonaws.com/cp3473x7xv-3.zip | 算法1,算法2使用 |
Panasonic 18650PF | https://prod-dcd-datasets-cache-zipfiles.s3.eu-west-1.amazonaws.com/wykht8y7tg-1.zip | 算法2使用 |
更多数据可在Mendeley Data 搜索,Matlab的Mat数据可以经过转化CSV使用(无需Matlab环境)。
测试
以下应用battery-state-of-charge-estimation-main + LG 18650HG2,DNN的实践
算法 | 执行结果 |
DNN | 详见后续章节 |
CNN | MicroMutableOpResolver解释器中缺失ReduceProd,未测试成功 (TensorFlow Lit Micro 中无,TensorFlow Lite中代码同Micro不一样) |
LSTM | 未测试 |
输入数据
Voltage | 单体电压 | V,5V以下 |
Current | 电流 | A,20A以下 |
Temperature | 温度 | °C |
Power | 功率(Voltage * Current) | w |
Voltage Average | 1s平均单体电压 | |
Current Average | 1s平均电流 | |
Power Average | 1s平均功率 |
注:原始数据未按实际采集精度处理
DNN算法
误差和负荷
测试配置 | PIL测试准确率 误差小于3% | 运行时间 系统时钟计数 |
| 96% | 560us |
| 93% | 560us |
| / | 440us |
1、测试实时监控“运行时间”,可以看出没有逻辑以数据驱动的软件运行时间很稳定的,基本保持不变。
2、按实际BMS采集分辨率截取数据代码。
def lg_create_dataset() :
.......
# leave out 'PAU' rows from the cycle
options = ['CHA', 'DCH', 'TABLE']
cycle = cycle[cycle['Status'].isin(options)]
# 数据取小数点3位,电压对应1mv分辨率
cycle['Voltage'] = cycle['Voltage'].round(3)
......
3、PIL测试方法参考上一篇:使用S32DS部署Tensorflow lite到S32K3-CSDN博客
4、与上一篇 28 * 28 的输入相比(1s一条测试),该程序只需要传输7个数据到TRACE32,30万次计算大约花费 3个小时,测试速度还是可以的。
5、Tensor Arena放入DTCM后的主要函数的运行性能:
6、TBD:使用ITCM存储Tensorflow代码是否还可以优化,尝试调整FullyConnectedEval() 放在ITCM,没有明显效果。
总结
按1s计算周期,对最大单体电压,最小单体电压,最高温度,最低温度进行组合4个,440us的运行时间,S32K344的具备实现神经网络算法的可行性。
wawa