当前位置: 首页 > 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 cycleoptions = ['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


http://www.mrgr.cn/news/93261.html

相关文章:

  • io函数 day3 文件io与系统函数
  • 一篇文章讲解清楚ARM9芯片启动流程
  • ​Unity插件-Mirror使用方法(八)组件介绍(​Network Behaviour)
  • K8s 1.27.1 实战系列(一)准备工作
  • FastExcel/EasyExcel简介以及源码解析
  • 尚庭公寓项目记录
  • AD学习-最小系统板,双层
  • Ubuntu 22.04安装NVIDIA A30显卡驱动
  • Dify+DeepSeek | Excel数据一键可视化(创建步骤案例)(echart助手.yml)(文档表格转图表、根据表格绘制图表、Excel绘制图表)
  • VIA的寄生电感和Stub对高速信号的影响
  • 单细胞分析(21)——SCENIC 分析流程(singularity容器版)
  • RT-thread的MultiButton按键库的使用
  • 记录一次Spring事务失效导致的生产问题
  • 【DeepSeek 】学习编程的利器:DeepSeek 使用指南
  • 由麻省理工学院计算机科学与人工智能实验室等机构创建低成本、高效率的物理驱动数据生成框架,助力接触丰富的机器人操作任务
  • 给没有登录认证的web应用添加登录认证(openresty lua实现)
  • VsCode 快捷键备忘
  • DeepSeek、Grok 和 ChatGPT 对比分析:从技术与应用场景的角度深入探讨
  • ROS系统(三)编程基础
  • Docker 学习(一)