当前位置: 首页 > news >正文

在S32K3上实现SOC的神经网络算法的可行性

前提

本文通过网络上收集的神经网络算法,并在目标系统上模拟运行,探寻SOC算法的可行性。

基本环境:Tensorflow lite micro,部署参考上一篇:使用S32DS部署Tensorflow lite到S32K3-CSDN博客

SOC使用算法

算法路径说明
battery-state-estimationhttps://codeload.github.com/KeiLongW/battery-state-estimation/zip/refs/heads/main

算法1

支持LSTM

battery-state-of-charge-estimation-mainhttps://codeload.github.com/sautee/battery-state-of-charge-estimation/zip/refs/heads/main

算法2

支持DNN/CNN/LSTM

这些算法均对数据进行了清洗,直接使用即可;注意有时不能运行的原因是:"/" 在windows系统是不兼容的:

数据集

数据集下载路径说明
unibo-powertoolhttps://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%

运行时间

系统时钟计数

  1. 数据集测试
  2. 160MHz + DSP
96%

560us

  1. 电流电压截取千分之一精度
  2. 温度按1°C
  3. 数据集测试
  4. 160MHz + DSP
93%560us
  1. 电流电压按千分之一
  2. 温度按1°C
  3. Tensor Arena放入DTCM
  4. 数据集测试
  5. 160MHz + DSP
/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

相关文章:

  • pyside6学习专栏(十):在PySide6中使用vtk模块绘制点、文本、线、三角形面、四面体、三棱柱、四棱锥等三维的基本元素对象
  • 多线程-线程本地变量ThreadLocal
  • Avalonia 中文乱码
  • C 语言数据结构(一):时/空间复制度
  • java环境部署
  • git修改本地用户名和邮箱和凭据
  • 171. Excel 表列序号
  • C++24--右值引用C++11新特性
  • 前端基础之组件自定义事件
  • Web服务器配置
  • PX4中的DroneCAN的实现库Libuavcan及基础功能示例
  • 利用行波展开法测量横观各向同性生物组织的生物力学特性|文献速递-医学影像人工智能进展
  • Web3 的未来:去中心化如何重塑互联网
  • 美颜SDK架构揭秘:人脸美型API的底层实现与优化策略
  • DeepSeek+Graphrag检索增强
  • 【0010】Python流程控制结构-分支结构详解
  • [machine learning] MACS、MACs、FLOPS、FLOPs
  • 第三章 指令系统
  • K8s控制器Deployment详解
  • 小程序是否支持SSE
  • 演员黄晓明、金世佳进入上海戏剧学院2025年博士研究生复试名单
  • 牛市早报|中美日内瓦经贸会谈联合声明公布
  • 国家统计局今年将在全国开展两次人口固定样本跟访调查
  • 上海下周最高气温在30℃附近徘徊,夏天越来越近
  • 印度最新发声:对所有敌对行动均予以反击和回应,不会升级冲突
  • 李在明正式登记参选下届韩国总统