APP下载

基于LabVIEW和MyRIO的电机测速不同方法的实现与性能比较

2017-05-16杨文涛汤畅通郎坤洪培烽

中国科技纵横 2017年7期

杨文涛++汤畅通++郎坤++洪培烽++许浩

摘 要:本文以虚拟仪器国赛参赛作品智能接物垃圾桶为依托,根据电机低速和高速的不同原理,分析并实现了使用LabVIEW测量电机转速的几种方法,并对测速性能进行比较。低速时采用T法通过测量转动一定角度的时间测量转速,高速时采用M法通过读取一定时间间隔的编码盘脉冲数测速。对于T法测速,使用LabVIEW的外部触发中断结合定时器Elapsed Time实现。对于M法测速,通过使用定时中断读取一定时间间隔内的脉冲数并保存后清零实现。其中,脉冲数的读取又有使用MyRIO中encoder编码器、外部中断以及数字量输入等多种形式。通过实现不同形式测速程序比较了他们各自的性能和优缺点,同时为使用LabVIEW编制测速程序但使用其他数据采集卡做硬件支持进行测速提供了参考依据。

关键词:电机测速不同方法;LabVIEW;MyRIO

中图分类号:TP274 文献标识码:A 文章编号:1671-2064(2017)07-0050-02

电机作为基本而经典的控制机械广泛应用于无人机飞行、车辆行驶以及工业流水线控制等。而转速、转矩和功率是电机三个最重要的性能参数之一。因此,转速测量的精度、快速性,测量方法及测量机构的稳定性对于电机实际应用极为重要。LabVIEW是工业测控广泛使用的程序开发环境之一,其图形化编程方式使程序更为直观,,本文以当前测控领域广泛应用的虚拟仪器LabVIEW程序开发环境为基础,以MyRIO创新实验与项目开发平台为硬件支撑,以虚拟仪器国赛参赛作品智能接物垃圾桶为依托,讨论了电机高速及低速时的几种测速方法,分别实现并进行了性能比较。

1 LabVIEW中电机测速方法

LabVIEW中电机测速主要有M法(测频法)、T法(测周期法)和M/T法(频率/周期法)三种[1]。(1)测频法。在一定时间间隔T内,计数被测信号的重复变化次数N,则被测信号的频率fx可表示为:fx=N/t;若以每圈测速编码器有p个脉冲为例,则对应的转速可表示为:ω=2πfx/p。(2)测周期法。一个旋转周期或半周旋转周期内,计数时钟脉冲数a,则被测信号频fx=f/a,其中,f为时钟脉冲信号频率。乘以对应一个周期的角度值即得转速[2]。(3)M/T法测速。频率法和周期法相结合,兼具频率法适合低速和周期法适合高速的优点。

2 在LabVIEW中各方法的实现

2.1 测频法的实现

测频法的要通过定时读取脉冲累加值实现。因此,可通过定时方法的不同和读取脉冲方式的不同分为几种方法:(1)使用定时中断定时。MyRIO提供的定时中断,每隔一定时间调用中断子函数,在子函数中通过平铺式顺序结构先读取当前累加脉冲值,之后清零累加值[3]。由于累加子vi与定时中断子vi不在一个vi中,因此使用全局变量存储累加脉冲值。注意这里中断子函数输入端数目必须为1,否则不能作为中断子vi被调用[4]。(2)使用定时器Elapsed Time定时,该函数中Elapsed Time端读取零初始时刻开始经过的时间,通过比较得到到达某时刻的布尔逻辑控制值接入条件结构条件输入端,从而实现每间隔一定时间执行条件结构中内容,在条件结构中同上使用顺序结构读取脉冲累加值后清零脉冲值。注意这里通过布尔控件控制定时器Elapsed Time是否计时值清零,因此脉冲累加值读取后应通过给计时器清零控制端布尔值置是清零,之后再通过给改值置否开始计时。定时程序见图1所示。

根据测速编码器脉冲读入方式不同分为:(1)通过MyRIO的encoder编码器读入脉冲。LabVIEW的MyRIO实验与开发平台提供三个encoder编码器,每个编码器由两个输入端组成,提供可检测转向的正交编码方式和step and direction signals兩种工作方式,其中前者会自动累加计数值,正转反转时分别为正值和负值,专门用于电机测速。具体程序如图2所示;(2)通过MyRIO或其他数据采集卡的数字量输入读入脉冲。读入数字量输入并结合上升沿或下降沿处理即可在数字量每变化一次调用条件结构给计数值加1。(3)通过MyRIO或其他数据采集卡的外部中断读入脉冲。使用外部中断,每次脉冲值变化调用一次中断,使脉冲计数值加一。具体程序见图3所示。

2.2 测周期法的实现

使用定时器Elapsed Time和比较结构实现测周期法测速。每当当前时间大于设定值时,读取上升沿得到布尔逻辑控制量触发条件结构,在条件结构中使用顺序结构,先通过局部变量读取当前时间作为时间周期,之后在下一帧将定时器时间清零,清零后当前时间小于设定时间从而退出读周期部分。具体程序如图4所示。

3 不同方法性能比较

实际编程实现后,分析比较不同方法性能及优缺点如下[5]:

根据定时方式不同的两个方法性能比较:(1)使用定时中断定时。使用中断定时准确度较高,为大多数情况下使用的方法,但往往中断数目有限,当有多个定时时中断可能不够用,需要复用。除此之外,过多使用中断会降低程序运行速度。(2)使用Elapsed Time定时。由于通过比较确定到达时间周期的时刻,准度没有定时中断高,且编程更为困难。但不受定时器数目限制,可以设置多个定时器而不影响程序执行速度。

根据读编码器脉冲方式不同的几个方法性能比较:(1)使用MyRIO自带Encoder读脉冲。Encoder编码器提供可检测转向的正交编码方式和step and direction signals两种工作方式,可同时检测转速和转向,自动累加脉冲,集成度及准确度高,编程简单。但是一个MyRIO仅能提供三个编码器,且有时正交编码会出现脉冲累加值为-2、-1、0、1、2无效变化的情况,有时三个编码器之间会相互干扰,两个转速不同时两个编码器脉冲值均显示其中某一个的转速,极为不稳定,给实际应用带来了较大隐患。(2)使用外部中断读脉冲。该方法可行性较低,由于每个脉冲均会引起一次脉冲值加一中断,而测速编码器往往一圈会有数十甚至数百个脉冲,因此实际程序运行数秒后便会因执行太多次中断而卡机,不得不强行关闭程序。(3)使用MyRIO或数据采集卡的数字量输入读脉冲。该方法没有使用集成好的Encoder简单准确,会随转速增加漏掉越来越多的脉冲(详细实际数据见表1),但是一个或两个数字量输入即可测量一个电机,因此可同时测量多个电机,且对硬件要求较低,有数字量输入即可。

4 结语

本文从电机测转速的M法、T法以及M/T法原理根据定时方法和读取脉冲方式不同介绍了在LabVIEW编程环境下测量电机转速的几种方法,并给出了具体编程实现比较了各自的优缺点和使用范围,对于实际电机测速应用具有一定的借鉴价值。

参考文献

[1]高尚.基于LabVIEW的电机数据采集系统[J].黑龙江科学,2014(02):1.

[2]李海春,蔡燕,姜文涛.基于LabVIEW的电机转速监测系统的设计[J].电子科技,2012(12):02.

[3]谢斌,张超,毛恩荣,陈燕呢.基于myRIO的电动拖拉机驱动控制器设计与室内试验[J].农业工程学报,2015(18):4-5.

[4]夏玉龙.基于虚拟仪器的电机测试系统[D].上海应用技术学院,2015.

[5]韦兰用.最优控制问题研究综述[D].吉林大学,2006.