基于LabVIEW的无刷电机控制器检测系统

2022-10-31 04:01杨立宏袁夫全
电子制作 2022年18期
关键词:上位控制器电流

杨立宏,袁夫全

(中山火炬职业技术学院,广东中山,528436)

0 引言

由于无刷电机具有高效率,低能耗等优点,在电动领域有取代传统电机的趋势,而无刷电机的核心部件无刷电机控制器产量也在不断增长。无刷电机控制器的出厂检测是其生产中的重要环节,目前,控制器检测仍处于半自动化状态,通过人工操作仪器对线路板的部分功能进行检测,以确认是否达到出厂标准。针对当前电机控制器检测自动化程度低,功能单一等问题,本文提出一种基于LabVIEW虚拟仪器和STM32嵌入式微控制器的自动化检测平台,STM32对无刷电机控制器的输入电压、电流、输出相电压、相电流、发热元件温度进行采集,LabVIEW开发的上位机实时显示无刷电机控制器的性能参数,检测人员只需观察上位机显示的参数即可完成控制器的全部检测,大大增加了自动化程度,提高了检测效率。

1 检测平台整体结构方案设计

本文研究的检测平台主要针对100W以下的无刷电机控制器进行检测。无刷电机控制器检测平台主要包括被测控制器和无刷电机、电流、电压传感器、温度传感器、STM32采集板和LabVIEW上位机软件等。STM32采集板和探针转接板被安装在测试夹具上,测试时,将被测控制器放置在夹具固定座上,夹具上的探针转接板通过探针和被测控制器接触。测试平台的整体结构如图1所示。

图1 检测平台整体结构方案图

整个测试平台通过24V直流电源供电,供电电源通过STM32采集板的电压和电流传感器采集输入电压和电流,并通过探针转接板将电源输入给被测控制器。探针转接板将被测控制器的温度传感器采集的温度、电压传感器采集的相电压、电流传感器采集的相电流传送给STM32采集板。STM32采集板将传送过来的传感器数据进行AD转换、数据处理后,通过串口发送到电脑端的LabVIEW上位机进行显示。针对不同物理形状的无刷电机控制器,需要设计相对应的探针转接板将STM32采集板和被测控制器进行无缝对接,这样可适应不同类型的无刷电机控制器。

2 STM32采集板硬件设计

本检测系统主要针对功率在100W以下的无刷电机,因此电源的输出电流一般在5A以下,这里输入电流和相电流采集选用线性电流传感器ACS712ELCTR-05B,该传感器具有低噪声模拟信号通路,80kHz带宽,25°C时总输出误差1.5%,内部导体电阻仅1.2mΩ,5V单电源操作,简化了供电电路设计,输出灵敏度为185mV/A,其典型应用电路如图2所示。

图2 ACS712典型应用电路

依据芯片资料,ACS712传感器的输出电压VOUT与输入直流或者交流电流IP成比例,在5V电源供电条件下,其关系式为VOUT=2.5+0.185×IP,通过STM32的AD转换器得到VOUT,即可计算出输入电流IP。

本设计为了保证采集通道数的可扩展性,选择STM32F103C8T6作为主控制器,该控制器具有16个外部模拟输入通道,12位AD转换分辨率,AD转换时间仅为1.17μs。输入/输出电压、电流和温度采集部分的电路设计如图3所示。电压的采集直接采用精密电阻分压的方式实现,输入电源电压VIN计算公式为VIN=ADC_IN_V×(R21+R22)/R21,在24V电源输入的情况下,要将电压分压到3.3V以下以便于输入到STM32的AD输入端口,这里接地电阻R21选择10kΩ,1%精度,接24V电阻R22选择75kΩ,1%精度。被测直流电流经ACS712ELCTR-05B的IP+流入,IP-流出,输入电流大小由芯片7脚VIOUT计算得到,该传感器输出灵敏度为185mV/A,假设输入电流为5A,根据计算公式VIOUT=2.5+0.185×IP,则VIOUT电压值会超过STM32F103C8T6所规定的3.3V输入电压,因此在电路中,需要将输出VIOUT进行分压后输入到STM32的AD转换器,分压依然采用精密电阻串联分压实现,电阻R19选择20kΩ,1%精度,电阻R20选择10kΩ,1%精度。VIOUT=ADC_IN_A×(R19+R20)/R19,从而可以计算出输入电流IP=(ADC_IN_A×(R19+R20)/R19-2.5)/0.185。相电压、相电流的采集采用图3同样的电路。被测控制器发热部位的温度采用NTC热敏电阻测量,图3中R24为10kΩ热敏电阻,该热敏电阻和10kΩ的电阻串联,抽头接入到STM32的AD转换接口,串联电阻分压抽头电压值数字量ADC_IN7=(4096×R23)/(R24+R23),再通过查表法得到温度值。

图3 电压、电流和温度采集原理图

3 STM32程序设计

在本设计中,STM32主要完成1路输入电压和电流,3路相电压和相电流以及4路温度共12路数据采集并通过串口传输到上位机。由于所需采集的模拟信号较多,AD转换程序设计采用了多通道扫描,DMA传输转换结果的方式,程序设计流程图如图4所示。

图4 STM32程序设计流程图

初始化部分主要包含了ADC时钟、GPIO端口及AD转换配置、DMA配置、中断优先级和USART的初始化以及启动AD转换。AD转换启动后,每个通道转换完的数据会通过DMA传输到开辟的数据缓冲区,当缓冲区数据满后,DMA产生中断。在DMA中断服务程序中先关闭AD转换和DMA中断,然后将各个通道的数据取出并进行平滑滤波,程序设计中对每通道连续20次采样的结果进行算数平均滤波,以滤除随机干扰。在DMA中断服务程序中各通道数据提取及滤波代码如下:

将滤波后的电压值数字量进行数据运算转换成模拟量,代入到2节的VIN和IP公式中,计算得到最终的VIN和IP值。而对于NTC热敏电阻测量温度值,由于热敏电阻阻值和温度并非线性关系,本程序中采用二分法查表实现温度的测量,二分法查表实现函数如下:

通过二分法查表法得到当前的温度值,对于温度精度要求较高的情况,对查表得到的温度值通过线性插值得到更高精度的温度值。由于LabVIEW上位机发送和接收都是ASCII码格式的字符,在STM32的串口发送程序中也将得到电压、电流和温度数据转换成ASCII码发送。

4 LabVIEW上位机程序设计

上位机系统采用LabVIEW软件编写,该软件为用户提供了便利的API接口、数据处理算法及显示控件,可以方便快速完成上位机系统的搭建。本设计中上位机主要完成传感器数据的接收、处理及显示。为了便于甄别不同帧的数据,STM32上传的一帧数据以回车符结束,因此在LabVIEW上位机,当接收到回车符时表示一帧数据接收结束。LabVIEW上位机数据的接收及显示程序框图如图5所示。

图5 LabVIEW数据接收及显示程序框图

为了便于展示,本程序框图中只列出输入电压、输入电流、A相电压和相电流、1个温度传感器数据的处理及显示,如果有更多数据处理,只需在后面添加即可。程序中通过一个“开始接收”按钮启动数据的接收,当有数据需要接收并且已经启动数据接收的情况下,数据被送入到VISA读取函数,接收到的数据通过反馈节点和连接字符串函数连接成一个字符串,通过搜索替换字符串函数搜索是否接收到回车符,如果收到回车符,说明一帧数据接收完成,则将接收到的这一帧字符串数据使用扫描值函数按照格式字符串的格式将各传感器数据取出显示到波形图表。前面板得到的实时测试数据波形如图6所示。

图6 前面板数据波形

图6 中显示的波形是无刷电机控制器在控制无刷电机加减速过程中输入电压、输入电流、A相电压、A相电流以及一个MOS管的表面温度曲线。将下载好验证程序的无刷电机控制器放置到夹具下,启动测试,即可快速检测控制器是否符合出厂标准。

5 结束语

本文针对无刷电机控制器出厂检测的自动化程度不高,设计了一种无刷电机控制器自动检测平台。采用STM32微控制器采集控制器的各项参数,并通过串口发送到上位机,上位机采用LabVIEW软件设计,能够实时显示无刷电机控制器当前运行情况,使得检测人员能够快速完成控制器的检测,大大提高了检测效率,降低了检测人员劳动强度。

猜你喜欢
上位控制器电流
三转子式比例控制器设计与内泄漏分析
南京溧水电子3款控制器产品
一场史无前例的乐队真人秀
基于NFV的分布式SDN控制器节能机制
标定电流与额定最大电流的探讨
交变电流基本知识汇总
交变电流高考真题赏析
基础油“上位”
挑战眼力
智能液位控制器在排水系统中的应用