STMCU小助手
发布时间:2022-10-19 15:03
|
NanoEdge AI studio的基本功能以及它可以帮助用户解决的问题。本文将详细介绍如何使用该软件工具快速部署一个AI应用。 ) Q% Z: t. ?4 Z3 X/ N+ k. c 该应用的目的是基于电机控制板的电流信号来检测风扇滤网的堵塞百分比。我们知道,当风扇堵塞时,电机的电流信号形状会与正常情况不同,而传统算法很难检测到这种差异。因此,机器学习算法成为解决该问题的明智选择。0 _( d) u% O3 y8 u# f+ W% K
▲“风扇堵塞检测”演示 该示例既可以应用于许多其他类似的情况,比如空调滤网堵塞检测和吸尘器过滤网堵塞检测,也可以推广到电动马达的其他异常检测应用。 硬件与软件准备
# A1 h" M. X# {" f, X 电机控制套件,用于驱动风扇,它包括一块NUCLEO-G431RB主板、一块电机控制扩展板,以及一台无刷电机。 用于自动生成机器学习库,该库将会集成到由STM32 Motor Control Workbench生成的电机控制基础软件中。 在主窗口中选择“Anomaly Detection”,然后新建一个项目。 + S% j4 }$ S. n m9 t
在“Project Settings”这一步,需要对以下配置项进行设置:
& l, Q; f \# a0 A 导入信号文件5 w6 j" b# i& Q4 d9 y
在接下来的两个步骤(步骤2和步骤3)中,我们将需要导入两个信号文件,文件格式在软件工具中有说明,如上图所示:
5 n+ d" l% ^+ p9 P6 l0 L ' x2 h" z. V) a
6 |/ H7 q2 ~4 n3 @7 K1 f4 }4 t & Y& m5 I0 ^( R/ [+ J& b- e 对库进行基准分析 (Benchmark)4 Y& _4 Y/ l4 b3 ^& _ 在第4步中,我们将启动并监控库的基准分析过程。NonoEdge AI studio将根据步骤2和步骤3中提供的信号搜索以及适配一个最佳的AI库。' K2 ~: |* v5 ^& W 首先,启动新的基准分析过程,如下图所示:: L6 V( ?3 n0 X/ ?% J! J/ w% k
然后,选择用于基准分析的正常与异常信号,以及计算机的微处理器核心数量。+ S& D5 ]+ I' v9 k1 Y
启动基准分析后,我们可以实时监控候选AI库的性能以及以下性能指标的变化:
当基准分析完成之后,将出现一个如下图所示的汇总画面。它表示在AI库集成到最终硬件当中时,为获得最佳性能所需要的最小学习迭代次数。在该例子中,NanoEdge AI studio建议在开始检测之前,至少需要调用learn()函数30次,以学习30个正常信号。9 e8 I: z6 E% k3 D0 b$ B7 i, X! W* M
) h# }3 `+ T4 N9 O 通过仿真对库进行验证 NanoEdge AI studio还提供仿真器功能,以帮助用户轻松测试和验证在基准分析过程中所选择的AI库,而无需创建任何嵌入式软件。! { P Z( M0 M; ?+ y$ o , n X3 ?+ F$ `4 u 我们需要让AI库先学习上一步骤中推荐的最小数量的正常信号,然后进行检测,以测试库的行为是否符合预期。6 P8 c0 h& ?! X1 U: ^ 如下图所示,本示例学习了100个信号。而检测中实时采集的信号与之前学习的正常信号之间的相似度为35%,说明风扇存在部分堵塞的现象。 0 Z) i- @0 x& J- y5 F% M
库的部署与集成: \7 Z" @, V! {7 o; y8 u9 ~ 一旦选定的AI库通过了验证,我们就可以进入最后一个步骤“部署”;在该步骤中,库将会被编译、下载并且准备集成到嵌入式软件当中。 在对库进行编译之前,有多个编译选项可选。在本例中,我们需要勾选Float-abi标志,以支持浮点数的运算。然后,我们可以点击“COMPILE LIBRARY”来下载NanoEdge AI库。 + U- t" _* v. z, C B% q2 m
$ z$ }; D5 B& p1 S* w! z: }7 r' R 一个.zip压缩文件将会被下载到计算机上,其中包含一些相关的文档、NanoEdge AI 仿真器、静态AI库,以及库的头文件。该静态库可以轻松集成到嵌入式软件当中。# y# z3 r4 T5 A a' \# S 8 W* {- `0 U+ o5 n9 b) s% |
最后,我们可以看到,在NanoEdge AI studio的帮助下,用户无需任何AI知识,即可通过几个简单的步骤快速部署一个AI应用。4 f" Q; u+ o( A) N3 C+ K % l w# |. f) ~ w0 e! m g |
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
Keil-MDK 在线调试设置断点的高级用法
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
HRTIM 指南
使用 STM32 的 DWT 单元监控内存
DAC,COMP,HRTIM Fault 功能的使用
微信公众号
手机版