基于虚拟仪器技术的电机转速控制
前言:由于电力生产变换经济,传输分配容易,使用控制方便,因而电力拖动广泛应用于各类生产机械.直流电机具有宽范围的平滑的调速性能以及良好的起动制动性能,所以直流调速系统是调速拖动的主要形式。在研究电机及其监测的过程中,均需要专门的分析工具,且大部分是传统的测量仪器。测量精度低、计算速度慢、不能有效直观的显示有效信息。目前所开设的自动控制系统和计算机控制等课程都涉及到直流电机调速系统.我们利用LabVIEW所开发的直流电机调速测试系统,以计算机硬件为平台,结合高精度数据采集卡,使得计算速度快、数据存储量高、结果处理分析更为直观快捷。它不仅可以成为有关电机研究方面的基本工具,而且会在电力、自动控制等系统中有特殊的用处。
虚拟仪器及LabVIEW简介:
所谓虚拟仪器,是一种与PC配合使用的模块式仪器,其本身不带面板,借助于PC强大的图形环境和在线帮助功能,建立图形化的“虚拟的”仪器面板,完成对仪器的控制、数据分析与显示。用户可以通过友好的图形界面(虚拟前面板即Front Panel)操作PC,就象操作自己定义、自己设计的一台传统仪器一样。其实质是通过软件将计算机硬件资源与仪器硬件有机的融合为一体,从而把计算机强大的计算处理能力和仪器硬件的测量,控制能力结合在一起,大大缩小了仪器硬件的成本和体积,并通过软件实现对数据的显示、存储以及分析处理。
LabVIEW是由美国NI公司开发的、优秀的图形化编程开发平台,是Laboratory Virtual Instrument Engineering Workbench 的简称。它可产生独立运行的可执行文件,是一个真正的32位编译器。像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。与传统的编程语言比较,LabVIEW图形编程方式能够节省85%以上的程序开发时间,其运行速度却几乎不受影响,体现出了极高的效率。版本已由原来的LabVIEW1.0发展到了现在的LabVIEW8.2,带来了一系列强大的新特性,包括与The MathWorks, Inc. MATLAB® 软件的兼容性等,目前已经是一个非常完美的虚拟仪器开发平台。
LabVIEW内置信号采集、测量分析与数据显示功能,集开发、调试、运行于一体,不仅提供了几乎所有经典的信号处理函数和大量现代的高级信号分析工具,而且可以非常容易的与各种数据采集硬件、以太网系统无缝集成,与各种主流的现场总线通信以及大多数通用数据库链接。“软件就是仪器”反映了其虚拟仪器技术的本质特征。它作为目前国际上应用最广的数据采集和控制开发环境之一,使用图标代替文本代码创建应用程序,在测试与测量、数据采集、仪器控制、数字信号分析、通信仿真等领域获得了广泛的应用。
1.设计目的:
1.1主要任务
1.1.1掌握电机调速控制电路的工作原理;
1.1.2掌握电机测速电路的工作原理;
1.1.3确定上位机监控系统的控制方案;
1.1.4利用LabVIEW软件编制上位机监控系统界面,实现电机转速的测量和控制功能,实时显示电机的转速;
1.2技术要求
1.2.1实现电机转速的基本测量功能,并进行同步动画显示电机的转速;
1.2.2实现电机调速的功能;
1.2.3要求系统操作简单,使用方便,满足用户要求;
2.设计正文:
2.1 实验原理:
调速控制:如图所示,U18 的DA1 输出一个0~5V 大小的直流电压,经过U3 A LM358放大一倍后得到0~10V 大小的电压,该电压信号再经过U4 CA3140 和Q1 2073 进行功率放大,电流达到75mA ,从而驱动电机转动。
测速过程:如图所示,电机上的风扇安装在光耦的发射端和接收端之间,风扇的叶片为9片,当风扇转动时,叶片阻挡光耦发射出的光信号,在光耦接收端得到一段连续的脉冲波形,该脉冲波形经过U5A 74HC14 进行整形后,得到一形状规则的脉冲波形。整形后的脉冲波形输出至U18 的8254计数器的CLK0 端,进行记数显示。
2.2 仪器组成:
本测试系统由硬件和软件两大部分组成。硬件系统包括常用的PC机和数据采集设备;软件系统就是在LabVIEW8.20的G语言环境下开发的仪器程序包。
2.3 实验步骤:
1.接线:将实验板的数字口XS2和模拟口XS1与采集卡上对应数字口XS2和模拟口XS1连接。
2.调试与结果:用labVIEW 软件改变DA1端的输出电压大小,改变电机的转速,从而在显示屏上显示出不同的速度值。
2.4软件流程
说明:因为风扇叶片为9片,所以应将1s内计数值除以9才得到风扇转速。
2.5编程参考:
2.5.1设备对象操作函数
1.CreateID
功能:该函数负责创建设备对象,并返回其设备对象句柄。
输入:DeviceID 设备ID( Identifier )标识号。当向同一个Windows系统中加入若干相同类型的USB设备时,系统将以该设备的“基本名称”与DeviceID标识值为名称后缀的标识符来确认和管理该设备。比如若用户往Windows系统中加入第一个U18 AD模板时,系统则以“U18”作为基本名称,再以DeviceID的初值组合成该设备的标识符“U18-0”来确认和管理这第一个设备,若用户接着再添加第二个U18 AD模板时,则系统将以“U18-1”来确认和管理第二个设备,若再添加,则以此类推。所以当用户要创建设备句柄管理和操作第一个USB设备时,DeviceID应置0,第二应置1,也以此类推。默认值为0。
输出:如果执行成功,则返回设备对象句柄;如果没有成功,则返回错误码INVALID_HANDLE_VALUE。由于此函数已带容错处理,即若出错,它会自动弹出一个对话框告诉您出错的原因。您只需要对此函数的返回值作一个条件处理即可,别的任何事情您都不必做。
2.ReleaseID
功能:释放设备对象所占用的系统资源及设备对象自身。
输入:hDevice 设备对象句柄,它应由CreateID创建。
输出:错误码。
应注意的是,CreateID必须和ReleaseID函数一一对应,即当您执行了一次CreateID,再一次执行这些函数前,必须执行一次ReleaseID函数,以释放由CreateID占用的系统软硬件资源,如系统内存等。只有这样,当您再次调用CreateID函数时,那些软硬件资源才可被再次使用。
2.5.2计数器操作函数原型
1.COUNTInt
功能:负责初始化8254各通道的工作模式、计数方式等。
输入:hDevice 设备对象句柄,它应由CreateID创建。
CounterChannel 计数器的通道选择,取值范围为[0, 2]。
CounterValue 计数器的初始值,取值范围为[0, 65535]。
OperateType 计数器的操作方式,取值范围为[0, 3]。
CountMode 计数器的技术方式,取值范围为[0,5]。
BCD 是否采用BCD码,是为1,否为0。
输出:错误码。
2.GetCount
功能:取得8254的当前计数值。
输入: hDevice 设备对象句柄,它应由CreateID创建。
Dimension size 计数器计数值数组大小。
输出:pConterPara计数器计数值数组。
2.5.3DA输出函数原型
1.DAOUT
功能:输出DA数据
输入:hDevice 设备对象句柄,它应由CreateID创建。
nDAData 输出数据,取值范围为[0,5]。
nDAChannel DA通道号。
输出:错误码。
LabVIEW面板图:
LabVIEW流程图:
程序说明:
LabVIEW流程图中包括设备对象操作函数、DA输出函数原型、计数器操作函数原型等函数,While循环、顺序结构、选择结构等结构,还运用了整除和定时器节点和数组的使用。
该程序通过设备对象操作函数CreateID创建设备对象,ReleaseID释放设备对象所占用的系统资源及设备对象自身,CreateID必须和ReleaseID函数一一对应。计数器通道选择取0,初始值取0,操作方式取3,计数方式取1,不采用BCD码,数组值为3。Index Array节点返回输入数组中由输入索引指定的元素。创建顺序结构计算速度,前一秒减后一秒的值若大于0则执行选择结构中整除的节点,程序在1000毫秒后继续,并且返回这一毫秒值。 引入两个调速节点的本地变量,为其赋值为2.5。在LabVIEW中,前面板上的每个控制或指示在框图程序上都有一个对应的端口,控制通过这个端口将数据传送给框图程序的其他节点,框图程序也可以通过这个端口为指示赋值。但是,这个端口是唯一的,一个控制或一个指示只有一个端口。在编程时经常需要在同一个VI框图程序中的不同位置多次为指示赋值,从指示中取出数据,引入本地变量就解决了这一问题。
3.设计总结:
基于LabVIEW的直流电机调速测试系统具有操作灵活、功能全、分析精度高特点,很好的满足了调速测试的要求,且具有PID调节控制输出功能,真正地体现了“软件就是仪器,仪器就是软件”的思想。在硬件的选择上,利用数据采集卡等,实现了一个低成本高性能的数据采集与分析仪器的开发;软件在实现过程中,也充分调用LabVIEW软件本身所提供的丰富的应用分析工具包等工具模块,避免大量的软硬件开发工作。用该测试系统,比一般纯文本编程软件更加简单,且其界面美观,处理结果也可以直接在前面板中进行描述。
4.参考文献
[1]杨乐平、李海涛、杨磊,LabVIEW程序设计与应用,电子工业出版社;
[2]黄义雄、戚丽丽,虚拟仪器下的电力参数测试.自动化与仪表,1998,13(1);
[3]潘莹玉、莫付江、高泽民,虚拟仪器及其在电力行业的应用.电力系统通信,1999(2)