李明阳,杨燕红,彭忆强,邬忠萍,谢江浩
(1.西华大学交通与汽车工程学院, 四川 成都 610039;2.成都工业学院,四川 成都 611730)
接触式位置传感器采用滑动变阻器原理,设计简单、制造技术成熟、价格低廉,一直被用于位置和角度的测量;但电刷与电阻带之间有摩擦副存在,因此,会降低产品的寿命和可靠性,并且具有量程固定、输入输出电压固定、安装过程故障率高等缺陷。
非接触式位置传感器采用霍尔效应、磁阻效应、电磁感应原理、电容原理等技术设计制造,不存在相对摩擦,产品的寿命有所提高[1]。这种类型的传感器具有机械零点和电气零点可编程、检测范围可调的优点,将逐步应用到汽车上。国际知名汽车零部件厂商已经开始致力于非接触式位置传感器的研发。
由于安装及装配误差会导致非接触式传感器的精度降低,因此需要进行在线调试和检测。本文针对非接触式传感器的需求,以非接触式可编程节气门位置传感器为研究对象,利用LabVIEW平台、芯片通讯技术和标定硬件平台设计了一种标定检测系统,该系统利用LabVIEW和.NET软件实现对非接触式传感器的检测。
节气门体上的磁体随电机旋转的角度为α,相对于非接触式位置传感器的磁通密度改变量为一空间矢量ΔΨ,对应的三维分量为(Bx、By和Bz),各分量对应的霍尔信号为(Vx、Vy和Vz),角度输出为
β=∠(V1,K·V2)。
(1)
式中:V1=VxorVyorVz;V2=VxorVyorVz;K为可编程参数,匹配V1和K·V2的幅值。
在手动标定过程中,预先设置好标定点,通过PID调节,电机带动编码器旋转到预设角度。同节气门体同轴的旋转编码器反馈的角度为α0,上位机通过采集卡接收到α0和β,然后对其进行比较。当误差在设定值之内,当前的β值有效,并将此时的电压值写入芯片中,即
ε=|α0-β|≤εlim。
(2)
依据最小二乘法将获取的角度值绘制成一条标定曲线,与通过插值法得到的曲线进行对比,可以求出标定点的误差大小,对误差的分析可以反映出标定系统的精度。
本系统由可编程的非接触式霍尔位置传感器(MLX90360)、编程器、节气门体、直流减速电机、电动机驱动器、编码器、数据采集卡和上位机构成。系统整体方案如图1所示。
图1 标定系统总体方案
编码器与节气门体通过轴连接在一起,直流电机通过齿轮与编码器轴连接,将动力输入到节气门体上。节气门的另一端安装有MLX90360非接触式传感器。上位机通过串口RS232将电机驱动信号发给电机驱动器,电机驱动器根据接收到的信号改变电机的转速及转向,从而控制节气门的转动。
在上述过程中,编码器将检测到的节气门位置转角通过PCI-6221数据采集卡实时传给上位机,非接触式传感器MLX90360芯片检测到节气门位置的变化角度,并将角度信号经PTC-04编程器通过RS232发送给上位机。同时,MLX90360还会将信号通过PCI-6221数据采集卡的模拟输入口传递给上位机,供上位机分析检测。下面介绍本系统的主要部件。
MLX90360是专门用于反馈汽车位置信息的高性能芯片[3]。该芯片可敏感地感应垂直和平行于其表面的磁场强度。通过编程设定,该芯片能输出与供电电压成比例的模拟信号,并且与电阻式电位器或其他任意可编程线性霍尔传感器兼容。通过编程设置,其输出方式有2种:输出模拟信号或输出数字脉宽调制信号。
PTC-04是程序烧写器,内含可编程电路和测量电路[4],能够测量16位的电压和电流信号。通过PTC-04上位机可以读取MLX90360输出的电压和电流信号,进一步确定输出的角度信号。上位机通过编程器对传感器进行编程设定,包括对传感器0位的设定、高低钳位值的设定以及输出增益和输出模式选择的设置。
PCI-6221是基于PCI总线结构的数据采集卡。本标定系统使用采集卡的1个计数器作为编码器的输入通道,将模拟输入通道A0和A1用作MLX90360模拟输出的接口。
本系统采用TRD-2T2500AF旋转增量式编码器,其分辨率为2 400脉冲/转,输出信号形式为A·B两相+Z相,最高响应频率为200 kHz,允许最高转速为5 000 r/min,电源电压可在5~12 V之间变化,带负载短路保护回路。
DC 24TR10BL电机调速器为低压直流四象限再生脉宽调速。电机调速器与速度给定板相连接,速度给定板通过RS232串口与上位机连接,上位机将电机转速、转向控制字节经232串口传递给速度给定板,速度给定板在接受到命令流后在输出端产生脉冲信号给电机调速器,实现电机的控制。
通过编程器开发商提供的.NET和动态链接库底层驱动程序,因此可利用VB.NET和LabVIEW联合编程技术实现节气门位置传感器的标定;也可利用LabVIEW调用动态链接库的方法驱动MLX90360位置传感器芯片。
本文分别利用这2种方法对其进行了标定程序设计。在.NET和LabVIEW联合编程中,通过文件交互来传递标示符参数,实现数据在2个平台之间的共享。此标定系统的软件设计主要分为标定系统上位机界面、电机转速命令串口通信程序设计、MLX90360内核调用及标定程序设计、电机转速PID控制程序设计、编码器角度检测程序设计等。
在LabVIEW功能部分,初始化处理之后,程序转入测量节气门的最大开度。测量最大开度所用的算法是:在驱动电机带动编码器轴转动过程中,通过比较编码器前后2次间隔时间在100 ms内所反馈的角度是否相等,如果不等则表明还未达到极限位置,如果相等则已经达到极限位置。此时,以节气门单向转动极限位置作为计数起点,驱动电机自动进入反转模式,重复上述过程找到反向极限位置。随后,电机工作于正转模式,上位机按3点标定模式根据测得的最大量程范围随机设置3个依次递增的角度,并驱动节气门依次转至相应角度位置时停转,并将单点角度测量结束标识符和此点坐标值写入LabVIEW程序配置文件SETUP.INI中[5]。
在.NET功能部分,先经过初始化,再检测单点角度测量结束标识符是否存在于LabVIEW程序的配置文件SETUP. INI中。若此标识符被检测到,则将其文件内的角度烧写到芯片中,同时设定一个与之相对应的电压百分比,成功写入后,向供LabVIEW读取的文件中发出一个写入完成标识符。
LabVIEW程序检测到.NET程序写入完成标志后,沿原方向继续转动至所设定的下一个角度值。同样,将当前的单角度测量结束标识符和坐标值写入到指定的文件中,当.NET程序检测到此标识符后,即向芯片写入相关参数,重复这一过程直到完成第3点的检测。
当节气门转到最大开度后,反转至初始位置并向.NET发出LabVIEW完成初始化标识。接着,LabVIEW与VB.NET均转入校准程序,与标定过程相似,校准过程差别在于当.NET检测到单点角度测量结束标识时,从文件中读出数据而不是写入。校准过程在节气门开度转到正向极限位置时结束。系统整体方案流程如图2所示。
图2 系统整体方案流程
标定仪主界面分为功能选择区、传感器选型、标定参数输入框、编码器检测角度显示、标定曲线图形显示以及自检、标定、停止按钮,如图3所示。
图3 标定仪主界面
在手动标定模式下,启动程序后,确定标定传感器的型号,开始自检,程序自行寻找最大角度和最小角度。自检结束后,开始执行标定程序,如自检不成功,则直接退出主程序,并弹出错误信息提示框。
系统主控程序框如图4所示。系统初始化主要功能在于完成界面数据、控件状态、串口驱动、编码器参数的初始化。因被标定传感器的生产厂家、型号及级别可能不同,本标定仪系统采用手动标定和自动标定2种模式。
自动标定状态下,本系统利用全局变量与传感器驱动子程序进行通信来完成相应驱动程序的调用。
手动模式下,主要针对一些比较小量不支持自动读取的传感器进行标定,其中部分参数需要人工手动输入。
图4 主程序流程图
通过 LabVIEW 对VISA 进行配置,就可以实现对仪器的控制。上位机对电机控制器的命令通过串口程序实现,在LabVIEW中串口编程需配置以下4个子VI:VISA配置串口子VI(其配置参数包括资源名称、波特率9 600、数据位大小、奇偶校验位);VISA写入子VI;VISA清空I/O缓冲区子VI; VISA关闭子VI。
由于MLX96360芯片硬件驱动不能直接被LabVIEW识别,但LabVIEW为更好地支持普通数据采集卡等硬件,提供了调用库函数节点(call library function node,CLFN)和代码接口节点(code interface node, CIN)2种实现方法。在LabVIEW 平台下调用动态连接库,比利用 CIN 节点实现对硬件的驱动更有意义[6-8]。CIN节点需要多平台支持且需要源码,而动态链接库则不需要,减少了系统的开销,缩短了开发周期。采用 CLFN 节点,LabVIEW 可以方便地实现访问动态连接库(DLL)[6]。本标定仪系统采用DLL调用方式驱动非接触式传感器,比如采用DLL调用方法读取MLX90360芯片中的数据。通过调用PSF90360芯片DLL文件,按照数据匹配类型严格配置CLFN 的输入和输出节点,并按照非接触式传感器的量程进行转换,由此获得采集的数据。该方法可以充分利用非接触式传感器的DLL文件资源,不需要再编写传感器底层驱动程序,最大限度地缩减了开发周期。
直流减速电机转速及转角的控制由上位机通过串口设定给定速度,其数据命令结构如表1所示。转角的大小通过编码器获得。以测得角度与标定角度之间的差值作为PID调节的控制量控制电机的转角,Kp、Ki、Kd参数的大小根据实际情况给定[9]。本试验分别为4.5、5、5。PID的控制值对应表1中的速度高位和速度低位,经PID控制器调制得到的速度大小需与给定值及电机转向命令组成调节命令发送给通讯板;因此,有必要将各数据命令组成一个字符串作为串口发送的数据。
表1 通信板数据命令结构
控制值:X可从0~7中取值,当取值为0/1/4/5/7F时表示停止。2F正向运行,3F制动停止,6F反向运行。
速度值:X其取值0-F (十六进制)。
非接触式传感器转角大小通过高精度编码器检测到的角度来标定,在本标定系统中编码器检测角度通过PCI-6221数据采集卡采集。LabVIEW中通过配置多态VI就可以将编码器中的数据采集到上位机。
依次配置DAQmx配置模板子VI,DAQmx开始任务子VI,DAQmx读取任务1通道1采样,DAQmx清除任务子VI。当某一次读取缓冲区的数据发生无可读数据时,利用反馈节点将上次读取的角度值作为此次采集到的角度。
所研制的标定仪如图5所示,采用节气门体用非接触式位置传感器MLX90360作为标定对象做相关试验。
图5 标定系统实物图
打开标定程序,选定传感器型号后,程序进行自检,自检通过相应的指示灯会亮绿灯。进入标定程序后,电机按照预设的角度依次走3点,上位机程序依次检测编码器的角度和MLX90360的角度,并作对比分析,当误差在可接受范围内。上位机调用相应的DLL程序,将当前的角度值写入MLX90360芯片中。走完3点后,程序执行二次检测,当检测无误后,标定过程结束。在传感器硬件完全正常的条件下,若第2次检测误差较大,程序会再次对传感器进行标定直到标定成功。标定过程中的数据可以通过文件记录下来以便分析。
传感器标定完成后,传感器的位置没有产生垂直或水平方向的偏移,直接校准其误差范围。该组试验数据的输出曲线如图6所示,A路输出与B路输出的角度线性误差分析以及误差曲线分析如图7所示。
图6 无偏移时传感器校准曲线
图7 无偏移A、B路输出误差曲线
通过以上数据分析图形可以看出,霍尔传感器与磁心同心时,在整个量程中编码器与传感器角度中:A路输出角度误差最大值为0.28°,电压百分比误差最大值为0.38%;B路输出的数据分别为:最大角度误差0.3°,电压百分比误差最大值为0.33%。
为了验证误差的离散程度,下面以方差和标准差对误差进行分析。从表2可见:在不改变霍尔传感器与节气门磁心位置时,传感器的误差小,其测量值与标准值基本一致。
表2 无偏移时方差、标准差
在此工况下,输出曲线如图8所示, A路输出与B路输出的角度线性误差分析以及误差曲线分析如图9所示。
图8 垂直方向移动2 mm的校准曲线
(a)A路
(b)B路
从数据分析图形可以看出,霍尔传感器与磁心在垂直方向上移动2 mm但同心时,在整个量程中编码器与传感器角度中A路输出角度误差最大值为0.81°,电压百分比误差最大值为0.88%;B路输出最大角度误差0.58°,电压百分比误差最大值为0.32%。其方差和标准差对误差进行分析如表3所示。
表3 垂直方向移动2 mm时的方差和标准差
从表3可知,当节气门磁心与MLX90360传感器垂直方向移动2 mm时,传感器的误差有所增加,但不十分明显。
本文采用虚拟仪器技术,应用LabVIEW平台,针对可编程非接触式传感器进行了标定仪系统设计,并通过节气门体位置传感器对标定系统做了试验。结果表明,本文针对非接触式传感器,利用LabVIEW软件、芯片通信技术、标定硬件平台,实现了非接触式传感器标定仪的设计。本标定系统能够对节气门体非接触式传感器进行标定,其标定精度依赖于工装和夹具的加工精度。采用此设备可在一定程度上克服因制造安装等原因导致的节气门传感器精度较低,以及传统接触式传感器因长期接触导致的触点烧蚀、磨损严重的缺陷。本标定仪系统还有待改进的地方是PID调节部分可以加入模糊自整定控制,从而实现完全自动标定,使系统能够实现工业化自动标定。
[1]印友军. 基于霍尔原理的非接触式位置传感器的研究与应用[D]. 上海:上海交通大学, 2012.
[2] Danijel Pavkovic,Josko Deur,Martin Jansz, et al.Adaptive Control of Automotive Electronic Throttle[J].Control Engineering Practice, 2006,14(2):121-136.
[3]Melexis. MLX90360 datasheet[S]. 2013.
[4] Melexis. Progra- mmer for Melexis PTC Devices, PTC04 Datasheet[S]. 2014.
[5]邬忠萍. MLX90360智能传感器的标定与应用研究[D]. 成都:西华大学, 2013.
[6]赵炯,刘力平. LabVIEW 中的动态连接库调用[J]. 中国工程机械学报,2007,5(1):122-126.
[7] Microelectronic Integrated System. PSF090360AAMLX Library Object Model, PTC04-PSF-MLX90360[S]. 2010.
[8] Melexis. PTC-04 PROGRAMMER, Get Started with the PTC-04Programmer[S]. 2009.
[9]历风满. 数字PID控制算法的研究[J].辽宁大学学报:自然科学版,2005, 32(4): 367-370.