本帖最后由 安小芯 于 2022-4-21 18:09 编辑
基于RT-Thread和N32G457的电机振动检测仪
作品出处:RT-Thread
作者:潘大伟
- 一、背景
- 电机是各行业重要的动力设备,但是如果电机产生故障会严重影响生产,因此有必要对电机故障进行预判,及时采取措施。
- 电机发生异常时,电机会产生不同的振动信号,因此通过对电机振动情况的检测可以了解电机运行情况。本项目基于RT-Thread Nano操作系统和国民技术开发板开发了一套电机振动检测装置,对电机故障进行诊断,
- 二、硬件框架
- 本装置硬件包括N32G457开发板、振动传感器、组态屏。硬件框图如图所示。
- 图1 硬件框图
- 振动传感器黏贴于电动机表面,将电动机的振动情况转换为模拟量送至单片机的PC2口,单片机对模拟量进行AD转换,转换为数字量,连续采集完1024个数字量后,对其进行FFT变换,并将转后的结果显示于组态屏,通过组态屏的显示结果了解振动情况,以帮助工作人员对电机故障进行判断。
- 三、软件框架
- 本软件采用RT-Thread Nano操作系统,共共有三个线程,一个中断,软件框架如下图所示。
- 图2 软件框图
- 1、led_thread。该线程控制一LED定时闪烁,表明系统的工作状态。
- 2、sample_start_thread。该线程用来启动定时器2,实现每隔2.5秒对电机的振动量进行检测。
- 3、analysis_thread。该线程用来对采样数据进行分析,并将分析结果上传至组态屏。该线程在接收到信号量后才开始执行。
- 4、TIM2中断。该定时器中断的定时时间为1/1024s,每次中断采集一个AD至,采集完1024个数据后,发出信号量,启动analysis_thread进行数据分析。
- 5、AD采样程序。该程序将PC2口设置为AD口,并通过DMA将AD转换结果直接存放于变量。
- 6、FFT程序。为便于计算,直接采用ARM DSP库中的实数FFT程序。
- 四、运行
- 程序完成实际运行时,发现使用的12V直流电机振动太小,振动模块根本无法检测出数据,因此为了保正该项目的完成性,在程序中添加了一些随机数据产生代码,用来代替AD转换的结果。由于是随机数,一次FFT的输出不是那么美观。组态屏显示横轴是频率值,纵轴表示不同频率点数据的对比。
|