基于LabVIEW的传感器智能测试与分析系统设计
2023-02-27李德川马清峰
李德川,马清峰,单 巍,黄 克
(淮北师范大学 物理与电子信息学院,安徽 淮北 235000)
作为信号转换的基本单元,传感器能够利用敏感物质把各种非电量转化为可读取的电信号,实现物理量的表征。目前,传感器已被广泛地应用于工业、农业、交通和教育等领域,在信号检测和智能仪表中发挥着重要作用[1-3]。
在传感器实验教学中,教学内容多以开放性的探索实验为主,学生常常利用传感电路测量某个物理量在某一范围内的变化规律,采集的数据呈现出组数多、数据量大和数值不唯一等特点,导致数据计算结果具有多样性。而教师在评判众多实验结果时,只能根据数据处理方法进行粗略评判,无法针对学生测试的实际数据提供具体的标准参考数值,从而可能产生误判。因此,如何快速准确地分析每位学生测试数据的有效性是每一位任课教师需要解决的实际问题。为解决实验数据组数多和数值大小不同等问题,需要一款能够快速重现和分析实验数据的处理系统,并且所设计系统能适用其系列下所有测量仪器。
在现有数据获取的方式中,LabVIEW软件具有可视化的人机交互采集模式,使用图形化界面将软件分析和硬件测试结果结合起来,广泛用于水下温盐深数据探测[4]、温度采集[5]、生化信号采集[6]、漏水检测[7]和动态转矩监测[8]等场景,在数据采集和处理方面具有快速、直观和形象化的优点。但在现有研究中,采用LabVIEW设计的电路常常采集的都是单独信号、连续信号或等间隔信号,而关于非等间隔信号采集电路的设计相对较少,也未发现LabVIEW在通用电压传感信号数据复测方面的应用。
为此,本文基于LabVIEW 2018设计了一款传感器智能测试与分析系统。该系统利用图形化编程开发平台,调用杭州英联YL610型现代检测技术综合实验台上的8路A/D转换模块,实现了非等间隔电压信号的快速采集、分析和评价。在程序执行过程中,用户可自由设定输入量的大小,实时观察测量进度,并能在测量结束后预览全部测量数据、删除误差数据和查看数据分析结果。本文设计系统具有实验进程清晰、检测速度快和参数指标直观等特点,可直接用于应变式、电感式、电容式和霍尔式等传感器实验中大量随机电压信号的快速复测、分析和验证,为每一组测量数据提供可参考的传感器静态特性指标值。同时,该系统预留开发端口,可用于编程再开发,增加系统功能的适用性。
1 系统的整体设计
LabVIEW软件是一个开放式平台,允许用户调用系统函数读取通用设备I/O接口的数据,并结合图形化人机交互界面,实现数据采集、分析和处理[9-11]。本文设计系统通过调用8路A/D转换模块(图1中标记部分),实现了数据的采集与分析功能。系统开发流程如图2所示。
由图2可知,在数据采集过程中,软件通过读取计算机串口通道号、板卡通道地址和端口数据信号,组建特征字符串数据流,将该数据存入系统缓冲区。在数据处理过程中,利用“VISA”模块获取缓冲区的数据流,并截取其中的4位十六进制测量数据,将其转化为相应的十进制数值,并进行实时显示。最后,程序对有效数据进行处理,并将处理结果展示在XY曲线图和数值显示变量中,实现了采集、处理和分析的一体化设计。同时,在该设计方案中,也可采用通用的A/D转换模块替换本实验平台上的A/D模块,实现通用数据采集系统的设计。
2 系统的软件设计
系统软件的开发主要分为2个部分:“前面板”布局的设计和“后面板”编程。在前面板的程序设计中,考虑数据采样区、处理区和显示功能区的布局,从简洁、直观和易操作等方面进行排版。在后面板的程序设计中,注重程序对模块的读取顺序、存储方式、字符串截取和响应时间,利用for循环、while循环和顺序结构进行程序开发,设计出自变量可调的测试与分析系统。
2.1 数据采集前面板的设计
数据采集前面板为人机交互界面,如图3所示。
由图3可知,该界面主要由硬件参数设置、数据展示和结果分析3个模块组成。在硬件参数模块设计中,“通道选择”和“波特率”可以分别通过“创建VISA资源名称”和“数值输入控件”完成。通道选择部分可以实时检测计算机接口,并通过下拉方式呈现串口标识供用户选择。在板卡模块设计中,采用“字符串控件”作为“下位机板卡地址”和“通道号”变量的输入端,用于指定数据采集。在实时参数显示模块的设计中,通过创建“字符串显示控件”变量,实时显示数据的测量进程。在自变量数组的设计中,系统选用“数值输入数组”控件创建自变量,使设计系统能够复测出不同输入下的传感数值。同时,测试数据和分析结果可以直接显示在“数组显示控件”、“字符串显示控件”和“XY图”上,简洁直观。
2.2 通道选择与端口配置
通道选择与端口配置如图4所示。
由图4可知,首先,利用“格式化写入字符串”控件将下位机板卡地址和A/D通道号写入特定字符串,“连接字符串”控件将通道号和特定字符组成完整的数据字符串,实现传感端口的信息采集。再利用VISA Configure Serial Port串口配置控件,将通讯通道号、波特率和数据信息写入寄存器,实现端口的配置和数据的写入。该串口配置控件可通过前面板/仪器I/O/VISA选项下的“VISA配置串口”获取。
2.3 数据读取与转换
数据读取与转换如图5所示。
由图5可知,将属性节点中的字符串数据读出需要利用截取和转换模块,得到表征传感数值的字符串。首先,“属性节点”将当前串口缓冲区中的字节数传给“VISA读取”,读取当前含有数据的字符串;其次,选用“截取字符串”函数,设置偏移量为7,数据长度为4,得到表征测量数据的十六进制字符串;最后,利用“十六进制字符串至数值转换”函数,将十六进制字符串转换为十进制数值量。
本文设计系统调用的是杭州英联YL610实训平台中的8路A/D模块,其电压范围为0~5 V,分辨力为10位二进制数,A/D转换后的数字量X对应的电压值为Y。电压值Y的表达公式为
(1)
2.4 批量非等时间间隔的数据采集
批量非等时间间隔的数据采集设计如图6所示。
从图6可知,批量非等时间间隔的数据采集程序主要由循环结构和平铺式顺序结构构成。在平铺式顺序结构中,由于A/D模块转换数据时需要一定的时间,因此,需要在数据的写入模块和读取模块中间设置一次系统延迟,以等待模块响应。在单个数据的测量时,可以通过顺序结构的端口读取和数据转换来完成。当需要对多个数据进行采集时,则需要重复执行采集过程。因此,针对采样需求,设置for循环结构,实现对数据的连续采样。然而,由于传感数据测量和实验过程并不是瞬时完成的,且相邻采样时间长短不一,因而不能直接用for循环和定时延迟的方式连续执行,而是需要在2次循环中设置不定时长的中断暂停,为用户提供自由的外部操作时间。待用户实验准备完成后,才能进行下一步操作。常见的循环暂停主要是通过使用状态机的形式来完成[12-14],但这些方式需要额外设置函数节点,增加程序的复杂性,而定时函数模块只能用于设置固定的程序暂停时间。考虑到等待时间的不确定性,本研究采用在下一次循环前增加“确认对话框”的形式执行采集确认,在保持程序简洁的情况下,实现采样的不定时暂停。
2.5 数据分析与处理
在数据批量分析和处理中,利用“Line Fit”函数模块、数组模块和循环结构生成数据的拟合直线,用于校准数据和拟合直线间的数值差异。2类数据通过“簇数组”绑定后以“XY图”的形式直接显示在前面板的人机交互界面上,实现数据的可视化展示。在“Line Fit”函数中,选择最小二乘法处理数据,得到拟合精度较高的传感器指标参数。数据求解过程如下:
(2)
(3)
联立公式(2)和公式(3)可得
(4)
(5)
利用公式(1-4)可得到测量数据的拟合直线的斜率K,该值即为传感器的灵敏度。同时,把计算得到的K和b生成拟合直线。通过“创建数组”和“索引数组”进行数值绑定,生成能同时显示“测量值”和“拟合直线”的XY曲线图。在传感器性能指标参数线性度的求解中,将“Line Fit”函数产生的残差组建残差数组,然后利用“数组最大值和最小值”函数取出最大残差,利用公式(6)求出传感器的线性度。线性度δL的表达公式为
(6)
式中:△Ymax为测量值和拟合直线间的最大残差,YF·S为传感器的量程。
数据批量分析和处理过程如图7所示。
由图7(a)可知,本文对条件结构为真时的误差数据利用“平铺式顺序结构”进行了删除处理。首先执行数据预览,以识别数据中是否有粗大误差数据。然后利用条件结构,通过判断对话框选择是否进入“删除无效数据”的分支语句。当发现测量数据中存在误差数据时,可输入数据在该数组中的索引位置直接删除。当有多个误差数据时,While循环可依次删除其他误差数据,并把剩余数据按原顺序保存在数组中。当所有误差数据删除后,可选择对话框中的“数据不需要删除”按钮,进入有效数据处理环节。由图7(b)可知,利用数组分析组件可以实现传感器线性度参数、灵敏度参数和拟合直线的计算和显示。
3 系统测试与分析
测试前,需要预先选择数据的通讯端口、波特率、板卡地址和通道号,并输入待验证的自变量x,然后运行程序进行系统测试。系统测试和分析的过程如图8所示。
由图8(a)可知,试验人员可通过对话框实施确认,实现按需采集数据;由图8(b)可知,需要删除的数据为数组中的元素x4(100, 2.397 46),在数据修正模块输入需要删除的元素索引,实现了无效数据的删除;由图8(c)可知,当元素删除后,数组X和Y中无效数据消失,而且对应的XY坐标图上的数据已实时更新,待确认无误差数据后,选择“数据不需要删除”按钮,进入数据的分析阶段;图8(d),显示了数据处理结果和相应的传感器指标参数。通过对实验数据中无效数据的删除和有效数据的线性拟合,实现了数据的可视化快速评判。
为验证本文设计系统的数据精准度和测量误差,将设计系统和UT56数字万用表对同一信号进行采集。其中,UT56数字万用表选用的是20 V量程,分辨力为1 mV,准确度为±(0.1%读数+3字数),数据对比分析结果见表1。
表1 数据对比分析结果 单位:V
由表1可知,本文设计系统的测量数值与商用万用表基本保持一致,测量误差在0.003 V以内,且能保持相对稳定,其精度能够满足正常的教学测试要求,可以广泛应用于电压信号的采集和分析。
4 结语
本文基于LabVIEW软件,利用综合实训平台上的A/D转换模块,设计了传感器智能测试与分析系统。该系统提供8路A/D转换口供用户自由选择,可自动检测电脑端的USB接口,允许用户对任意自变量下的信号进行实时采集,并可通过修改前面板中数据变量的“数值类的属性”设定线性度参数和灵敏度参数等浮点型变量的显示“位数”,实现了对显示数据有效位数的四舍五入,具有广泛的适用性。该系统具有数据采集、数据预览、无效数据删除和数据分析等功能,可用于应变式、电容式、电感式、热电式和霍尔式等传感器教学过程中电压信号的采集与分析。同时,测试进度和传感器参数可直观显示,有助于教师快速评判学生测试数据的质量,提高教师工作效率。