虚拟仪器在电机控制器开发中的应用
扫描二维码
随时随地手机看文章
摘要:为了监测无刷直流电机控制器的控制性能,在开发控制器过程中应用了虚拟仪器技术,设计采用LabVIEW编写可与控制器交互的上位机软件;通信部分采用成本低,易控制的标准串口总线来实现电机转速、电压、母线电流的PI参数的数据传输;设计的上位机PI参数调整方法优于传统的逐次烧写法,从而降低了硬件损耗与时间成本;上位机软件系统采用开放式设计,使之不依赖于下位机型号与工作模式,具有较强的通用性。测试表明,设计的系统能完成实时监测以及控制器的控制参数设定等功能。
关键词:虚拟仪器;直流电机;电机控制器;数据采集
虚拟仪器是基于通用计算机软硬件的测试平台,已经在工业控制测试领域有了广泛的应用。LabVIEW是由美国国家仪器公司推出的虚拟仪器开发工具,应用图形化编程方式,功能强大,界面友好,拥有丰富的计算函数,高级的采集和信号分析控件,完善的仿真调试工具,动态的连续跟踪方式。目前国内已开展将虚拟仪器应用于电机测控方面的研究,但开发的系统检测项目有限,如徐军教授开发的基于NI数据采集卡的电机性能检测系统,只能测量电机三相功率,负载特性等。而进行电机控制器开发测试时还经常要观测电机的电压、电流及转速,它们是电机启动及调速的关键参数;另外目前电机调速常用的双闭环PI算法中Pl参数的调整往往是根据经验及试验的方式设定,过程相当繁琐。所以开发一款软件解决这些问题很有必要。本文中应用LabVIEW编写上位机软件,软件分为数据检测和PI参数设定两个基本模块。并应用控制芯片独立的串口通信接口与上位机实现了数据的检测及PI参数的设定。
1 系统结构
系统原理结构框图见图1。
该设计中下位机可使用独立于控制器的单片机或DSP,但为了能直接方便地设置电机控制PI参数,直接使用了控制器上的控制芯片。主控制芯片采用瑞萨电子一款电机控制专用16位单片机R5F212L4SNFP,它自带6路PWM,9路10位的A/D转换器,1.5 KB数据FLASH,两个独立的串行通信接口,并拥有串口通信的独立定时器;在完成控制功能之余有足够的端口完成与上位机的通信。LabVIEW使用通用接口总线(GPIB),标准串行总线(RS 232),VME仪器扩展(VXI)和其他硬件标准与外部仪器通信及控制外部仪器。考虑到硬件成本及方便性这里采用RS 232标准串口通信方式。系统能观测的数据有电压、电流、转速等。电流由毫欧级采样电阻采样并适当上拉后接入A/D端(测量的是在每个方波的中点激发A/D转换采集的值);电压由精密电阻分压后接入A/D端;电机转速可由换相信号计算得出;电机转速的设定是芯片外的一个线性电压值经A/D转换后计算给定;控制芯片通过电平转换芯片TC232与上位机完成串行通信,本文主要介绍上位机程序的设计,控制硬件因篇幅不作介绍。
2 通信协议设计
该设计通信约定由上位机软件发送,包含PI参数和数据读取设定的指令;下位机(R8C/2L)接收数据后解析数据,若判断系统工作于PI参数设定模式时,保存并更新PI参数,若工作于数据采集模式,则根据命令符选择电流电压A/D转换通道或计算电机转速及设定转速,并发送到串口。
2.1 数据长度协议
数据长度定义和命令符协议分别见表1、表2。当系统工作于数据采集模式时,上位机依次发送字符1,2,3,4,并依次根据协议返回测量值。当系统工作于PI参数设定模式时,由上位机依次发送速度环,电流环的Kp,Ki值,并约定在数据之首添加参数识别符A,B,C,D;即速度环参数模式为A+Kp,B+Ki;电流环的参数模式为C+Kp,D+Ki。
2.2 LabVIEW通信编程相关
在LabVIEW中串口通信主要用到NI VISA编程,NI-VISA(Virtual Instrument Software Architecture)是美国国家仪器NI(National In-strument)公司开发的一种用来与各种仪器总线进行通信的高级应用编程接口。VISA表示可视化仪器软件结构,从本质上讲,VISA是用于控制GPIB,串口或VXI仪器以及根据根据仪器类型进行适当调用的VI(类似于传统语言的函数或子程序)库。这里串口操作主要用到的4个节点见图2,即串口的配置、串口写、串口读、串口关闭等。
3 LabVIEW程序设计
上位机程序功能为:配置串口,选择工作模式;发送PI参数或发送采集数据指令,读取数据,转换并显示。程序流程图见图3。
串口配置完成后可由生成的前面板设置串口通信参数,打开串口时,要设定串口的属性需要设置串行通信的波特率,数据位数,奇偶校验和停止位的个数。正确打开串口后,就可以获得一个VISA资源连接,将这个连接接到VISA串口读/写VI节点,就可以实现对计算机串口的读/写。串口前面板效果如图4所示。用事件结构可进行工作模式的设定判定。当模式按钮为TRUE时工作于数据采集模式,为FALSE时则工作于PI参数设置模式;当工作于数据采集模式时完成字符1,2,3,4依次写入VISA字符串写节点。循环结构中同样套用了事件结构,相关程序如图5所示。
当工作于PI参数设定模式时完成PI参数的发送,程序中主要用到了字符串转换节点和字符串连接节点,工作程序如图6所示。为了能直观地显示检测数据,前面板采用表盘形式显示,同时为了方便后边的Graph方式的显示,将读回的数据转换并设置成局部变量,相关程序见图7。将数据读回后显示成Graph形式则更能展示出相关数据的横向变化趋势,程序采用了下拉菜单及Graph显示模块,用事件结构完成下拉菜单,这样设置可以同时显示时时电机转速与相关参数的关系,在事件结构中分别设定显示控件的显示刻度属性节点使其自动适应所接受数据范围。相关程序如图8所示。实测中前面板效果如图9所示。
整个程序的编程过程中主要采用了for循环,顺序结构以及事件结构等编程方法,整体程序如图10所示。
4 系统测试
连接好电机与控制器,插接串口线,启动主程序及控制器后,设定串口参数,首先工作于PI设定模式,调整好PI参数,然后切换至数据采集模式;即开始采集数据,并调整转速A/D端电压设定电机速度。综合实测效果如图11所示,面板中表盘控件与Graph控件被拖入Tap con-trol控件中重叠显示,Tap control第一部分(图11)采用表盘形式,Tap control第二部分(见图9)采用Graph形式显示。实测中的电压、电流、转速分别与实体电压表、电流表、测速机比对证实数据准确;下位机设计了PI参数回读程序,显示结果一致。
5 结语
设计采用LabVIEW编写辅助程序应用于无刷直流电机控制系统开发过程中,利用少量软件空间,不增加硬件负担。实现了可根据用户需要选择工作模式,可根据需要扩展或更改测量项目、设置相关控制参数等功能,界面友好,操作简单,减少了开发过程中的硬件损耗及时间成本。另外文献提到在串口通信设计上应用MSCOMM32.OCX控件(专门用于串口通信的Activex控件),将能提高上位机CPU的利用率,后续系统
也将做相应的改进。