功率传感器自动校准软件设计与实现

2021-04-02 02:13崔广新郑喜艳
计算机测量与控制 2021年3期
关键词:线程图像识别对话框

赵 熙,崔广新,郑喜艳

(河南省计量科学研究院,郑州 450047)

0 引言

功率传感器是测量微波功率的标准设备,其测量准确度通常用校准因子表征。常规校准功率传感器的手动操作过程十分繁琐且耗时长。为提高校准功率传感器的工作效率,基于Visual C++开发平台,设计开发通用功率传感器自动校准软件,实现对功率传感器的自动校准。自动校准软件通过GPIB (General-Purpose Interface Bus)、USB (Universal Serial Bus)等总线和可编程仪器标准命令(Standard Commands for Programmable Instruments,SCPI)控制仪器的运行,对作为标准器的各型号信号发生器、功率计和功率传递标准和被校功率传感器都有很好的支持。

1 自动校准软件的功能和工作流程

自动校准软件可通过GPIB、USB等多种数据总线和仪器通信,可根据仪器配置选择传递标准法和交替比较法,具有实时数据显示,不确定度计算,自定义校准参数,自动校准控制,多次校准,单点控制,图像识别等功能。软件运行过程中可实时显示已完成的测量数据,并计算测量结果的不确定度。软件自定义的校准参数有校准频率、平均次数、校准功率值和结果类型等,校准频率可按开始频率,结束频率,频率步进值的方式进行设置,校准频率步进值可选择为1、2、5、0.1、0.2和0.5,满足不同频段频率分布的要求;也可按各频率点单独添加的方式设置校准频率,两种设置方式可单独使用,也能够结合在一起使用;校准功率值可选择为1 mW、0.1 mW或5 mW等,适用不同被校功率传感器的测量范围;当平均次数大于1时,可选择结果类型为平均值、中位数,软件根据结果类型的设置自动完成计算,并可计算显示测量结果的标准差;根据仪器信息软件生成默认校准参数,在后续的操作中可对默认校准参数按自定义设置进行修改。自动校准过程中根据需要可暂停/继续当前自动校准操作,或结束当前自动校准。校准操作完成后,可重新设置校准参数或按当前设置的校准参数,继续进行校准。软件的单点控制功能可手动设置频率点、信号源的输出功率,自动读取功率标准值和测量值,用于数据核验。对于无数据总线接口的被校设备,通过图像采集设备,使用图像识别技术完成读数,实现自动校准。自动校准软件后台有仪器信息和校准数据两个数据库,仪器信息数据库存储有各仪器的型号、测量范围数据,对于信号源、功率传递标准等标准器还存储溯源信息,通过软件对数据库中的信息进行维护更新;校准数据数据库存储已完成的校准数据,可进行数据查询、查看和导出等操作。

软件通过设置的数据总线类型和总线地址连接各仪器,如果某台仪器连接失败,将提示错误信息,所有仪器连接成功后读取仪器的信息并显示。完成校准信息输入和校准参数设置后,开始自动校准。所有校准完成后,根据模版生成证书和记录文件,并将校准数据保存至校准数据数据库中。

图1 软件工作流程图

2 自动校准软件设计和实现

自动校准软件通过VISA库向仪器发送SCPI指令,读取仪器信息和数据,实现对仪器的控制;通过MFC类库完成操作界面的设计和多线程运行控制;通过OpenCV库完成图像识别算法的设计。第三方类库的应用降低了软件开发的复杂性,提高了软件的可靠性。

2.1 控制软件数据结构

软件中的数据分为两类,一类是信息数据,如校准日期、仪器编号等,使用CString数据类型存储,另一类是数值数据,如仪器的测量范围、测量结果等,使用double数据类型存储。根据软件运行过程中的数据对象和操作,声明仪器类、校准信息类、校准数据类等自定义类。

图2 软件内部数据结构

仪器类实现对各仪器的运行控制和信息存储,成员变量有仪器的控制句柄,仪器信息等,成员函数有读取信息函数、设置频率函数和读取测量值函数等,对于每一台仪器声明一个仪器类的实例用于对该仪器的操作。校准信息类存储本次校准工作的基本信息,成员变量有记录/证书编号、证书单位名称、校准日期、地点、环境条件等,对于每个校准任务,只需有一个校准信息类实例。校准数据类保存校准过程中的各项测量数据,成员变量主要有校准频率数组、功率标准值数组、功率测量值数组、测量不确定度数组等,成员函数有测量不确定度计算函数、平均值计算函数、中位数计算函数等。软件中频率数据基本单位为MHz,如100 kHz在软件中的以数值0.1表示。校准数据类中的所有数组均为使用C++标准模板库中的vector容器类存储,其大小为动态的,自动校准过程中,只有当新数据产生并需要存储时,软件向操作系统申请新的内存空间,完成数据存储;每次校准操作的数据使用一个校准数据类的实例存储,多次校准时,每次校准完成将所有校准数据存入校准数据类的vector容器中。动态数据存储方式极大提高了软件的空间效率。

2.2 软件算法设计和实现

2.2.1 自动校准控制算法

为提高运行效率和操作体验,自动校准软件采用多线程工作模式实现并行处理,在控制仪器进行自动校准的同时,软件显示界面中实时显示已完成的校准数据,不同工作线程之间通过Windows操作系统的消息传递机制实现数据传递。

自动校准开始后,软件主线程开启自动显示线程和自动校准工作线程。自动校准工作线程采用双层循环方式控制自动校准的运行。外层循环以校准频率的数量作为循环的控制变量,在外层循环中读取校准频率数组中的频率值,完成信号发生器的频率和输出功率、功率计的频率的设置,读取功率传递标准/标准功率计的读数,即功率标准值,并调节信号发生器的输出功率在设置的校准功率处。然后自动校准工作线程开始内层循环,按设置的平均次数依次读取功率传递标准/标准功率计的读数、被校功率传感器的读数,计算校准因子的实际值和不确定度,完成一次测量后,自动校准工作线程向显示工作线程发送WM_USER+100消息,显示线程接收到该消息后显示当前完成的测量数据;如果设置的平均次数大于1,在完成内层循环后,自动校准工作线程计算该频率点测量结果的平均值等数据,并向显示工作线程发送WM_USER+101消息,显示工作线程接收到该消息后在主界面显示平均值等数据。显示工作线程按照测量完成的顺序依次逐行显示测量结果,对该频率点多次平均的测量数据,按“测量值1”、“测量值2”……“测量值n”标识,对平均值、中位数等测量结果以“平均值”、“中位数”标识,如果设置的平均次数为1,自动校准工作线程不再发送WM_USER+101消息,测量结果的标识为“测量值”。自动校准工作线程完成所有测量和数据计算后,向显示工作线程发生WM_USER+115消息、向主线程发送WM_USER+108消息,然后自动校准工作线程终止;显示工作线程接收到WM_USER+115消息后终止,主线程接收到WM_USER+108消息后,将本次自动校准的测量数据存入校准数据容器中,本次自动校准工作完成。

为确保各仪器操作同步、数据读取准确,软件向仪器发出操作指令后,读取仪器的状态数据,当仪器的状态为指令完成时,再进行下一步的操作。

交替比较法自动校准程序算法功率传递标准法自动校准算法基本相同。在完成一次设置频率点的自动校准后,自动校准软件会提示交换标准功率传感器和被校功率传感器在功分器的连接端口后继续进行测量,再按照设置的频率点进行一次自动校准,并完成最终的数据计算。

图3 使用传递标准法自动校准算法流程图

2.2.2 图像识别算法

软件使用KNN(k-NearestNeighbor)算法完成图像识别,软件中存储有0~9各数字的样本图片,通过比较识别图片与样本图片,找到与识别图片最相似的样本图片,确定识别图片中的数字,完成图像识别。OpenCV库中提供了专门的类和函数用于图像处理和KNN算法实现。自动校准软件通过图像采集设备获得被校功率传感器示值显示的图像后,调用图像识别参数对图像进行处理,包括灰度化、二值化、腐蚀/膨胀、轮廓提取、排序和数字分割等操作,处理完成后图像背景为黑色,数字为白色。调用OpenCV库中的knn算法函数predict()将获取的图像和样本图片进行对比,完成最后的图像识别。KNN算法相对于其它图像识别算法,虽然占用内存较大,但实际操作简单,并具有很好的扩展性,当识别目标的字体改变时,只需更新样本图片,即可实现对新字体图像的有效识别。

使用图像识别方式进行自动校准之前,需完成图像识别参数设置,图像识别参数包括数字显示区域、图像处理过程中使用的阈值、元素尺寸、腐蚀次数、膨胀次数和噪声尺寸以及识别所用的K值、小数点尺寸等。不同型号功率传感器的显示方式不同,每次校准时环境光照条件也会存在差异,因此自动校准软件未采用颜色分离的方式自动识别图像中的数字,而采用手动方式设置识别区域和识别参数,设置过程中可对设置参数的运行效果进行验证,确保识别结果的准确性,在自动标准过程中如果识别出现错误,可以暂停自动校准,重新设置识别参数后继续自动校准。

使用图像识别方式进行自动校准时,除自动校准工作线程和显示工作线程外,还有图像实时显示工作线程。该工作线程在专用窗口实时显示图像采集设备的视频图像,并将识别的数字保存为图片,以“校准次数_频率值_测量次数”的方式命名,存储在以该次校准的证书编号命名的文件夹中,文件夹的存储位置可通过软件设置,方便数据核验。

图4 图像识别方式读数时保存的识别图片

2.3 软件操作界面设计

软件采用MFC的文档视图界面,所有操作通过菜单执行,每个菜单命令对应有工具栏按钮方便操作。信息输入、参数设置等操作通过专用对话框实现,对话框通过菜单命令打开。软件运行过程中,为避免操作冲突,在不同工作状态下设置对当前操作有影响的菜单项为灰色,不可使用,当前操作完成后,再将其设置为可正常使用的状态。

程序主窗口为校准结果显示窗口,实时显示已完成的测量数据。主窗口采用表格的形式显示数据,分为频率、功率标准值、功率测量值、校准因子实际值、不确定度等列,每行显示一次校准操作的测量数据或平均值、中位数的计算数据,根据使用的校准方法,主窗口的表格形式会发生相应的改变。

软件另设置5个工作窗口,分别为仪器信息窗口、基本信息窗口、工作状态窗口、图像识别监测窗口和单点控制窗口。仪器信息窗口显示当前系统所用的标准器和被校仪器的信息;基本信息窗口显示记录/证书编号、委托单位和校准地点等信息;工作状态窗口显示当前的工作状态、操作结果等信息;图像识别监测窗口实时显示图像采集设备的视频图像和图像识别过程中所保存的识别图片,可实时看到图像识别的结果;单点控制窗口实现单点控制功能,输入频率和信号源输出功率,自动读取并显示功率标准值和功率测量值等数据。工作窗口采用浮动设计,通过菜单命令分别打开或关闭,工作窗口打开显示时,可以嵌入到主窗口中(图5 A)或悬浮在主窗口上(图5 B),工作窗口显示时不影响主窗口的使用操作和显示。图像识别监测窗口仅能在使用图像识别方式进行自动校准时打开显示;单点控制窗口仅能在软件不处于自动校准状态时才能打开显示。

图5 软件操作界面

2.4 软件对话框设计

软件操作过程中输入信息、设置参数、维护仪器信息数据库、查询校准数据等操作均通过专用的对话框完成,对话框通过菜单命令和对应的工具栏按钮打开。部分重要的操作完成后,软件会弹出消息对话框提示操作的结果。

连接仪器对话框用于设置连接仪器所用的总线类型、GPIB地址和使用的校准方法。信息录入对话框输入记录/证书编号、委托单位、校准地点等信息。校准信息输入完成后,再次打开该对话框时,会显示已经输入的信息,可对这些信息进行修改,软件对信息修改情况进行记录。频率设置对话框用于设置校准频率,校准功率值、平均次数和结果类型等校准参数,对话框打开时将显示软件生成的默认校准参数,可对默认校准参数进行确认或修改,校准参数可以多次更新设置,软件按照最新设置的校准参数进行自动校准。校准数据查询对话框用于查询数据库中保存的校准数据,可按型号、出厂编号、校准日期等信息进行检索,支持模糊查询,查询结果在对话框中显示,并可将查询到的数据导出保存至文件中。仪器信息对话框维护后台仪器信息数据库,可进行查询、修改、删除和新增等操作。图像识别参数设置对话框对图像识别设备的曝光参数和识别参数进行设置,验证设置图像识别参数的识别效果,确保图像识别结果的准确率。对话框中如频率单位、GPIB地址等确定的有限项数据通过下拉列表的方式选择确认,避免输入错误数据影响软件运行。

消息对话框用于显示各种提示消息和软件运行结果。软件运行中某项操作成功完成后,弹出自动关闭对话框提示操作成功的信息,该对话框弹出后自动开始2 s倒计时,倒计时完成后对话框会自动关闭,倒计时未完成时可手动关闭对话框;如果操作过程中出现错误,或操作完成结果为不成功时,弹出错误信息提示对话框,错误信息提示对话框不会自动关闭,只能手动关闭。连接仪器和生成证书记录文件等操作所需时间较长,且不能进行其他操作,软件弹出进度条对话框位于软件的前端提示等待信息,同时对话框中的进度条会显示当前操作的进度,操作完成时,对话框自动关闭。

3 系统软件测试

软件测试试验标准器信号源为Rohde&Schwarz公司的SMF100A和Keysight公司的E8257D,功率传递标准为Rohde&Schwarz公司的NRPC18,标准功率传感器为Rohde&Schwarz公司的NRP-Z51。被测功率传感器分别为Rohde&Schwarz公司的NRP-Z21、Keysight公司的N1921A和亚美公司的YM8171。功率传递标准、标准功率计和NRP-Z21功率传感器使用NRP2功率计作为读数装置,N1921A功率传感器使用N1911A功率计作为读数装置,YM8171功率传感器使用的YM2422功率计作为读数装置。软件安装计算机操作系统为Windows8.1 专业版64位操作系统,CPU为Corei3-4020Y,主频1.5 GHz,计算机内存4 GB。

校准NRP-Z21功率传感器时设置校准频率为10 MHz ~ 18 GHz,频率步进值为1,校准频率点36个,平均次数3,校准功率值5 mW,使用传递标准法校准,自动校准软件实际测量和计算的144个频率点的数据,自动校准的实际运行时间为2 min 51 s。

校准N1921A功率传感器时设置校准频率为50 MHz ~ 18 GHz,频率步进值为1,校准频率点32个,平均次数3,校准功率值1 mW,使用交替比较法校准,自动校准软件实际测量和计算的256个频率点的数据,不计更换功分器连接端口的操作时间,自动校准的实际运行时间为4 min 19 s。

校准YM2422功率传感器时设置校准频率为10 MHz ~ 18 GHz,频率步进值为1,校准频率点36个,平均次数3,校准功率值1 mW,使用传递标准法校准,自动校准软件实际测量和计算的144个频率点的数据,使用图像识别方式进行读数,自动校准的实际运行时间为5 min 37 s,所有数字图像均正确识别。

软件测试时,通过VS开发平台的诊断工具观察,不使用图像识别方式读数时,软件运行时内存使用为20 MB~40 MB,CPU使用率不超过25%,使用图像识别方式读数时,内存使用为40 MB~260 MB,CPU使用率不超过35%,一般配置的计算机均可满足软件运行要求,使用图像识别方式读数要求计算机操作系统为64 bit,且安装有DirectX9.0C或以上版本。

4 结束语

自动校准控制软件的应用极大提高校准功率传感器的工作效率,软件的设计具有很强的通用性,支持主流厂商的信号源、功率计等仪器,可根据现有的仪器,配置软件的运行参数,完成自动校准。软件使用C++语言编写,具有很高的执行效率,采用面对对象的开发方法,方便对软件进行升级,实现对更多仪器的支持和扩展功能。

猜你喜欢
线程图像识别对话框
5G终端模拟系统随机接入过程的设计与实现
支持向量机的舰船图像识别与分类技术
基于计算机视觉的图像识别技术研究
实时操作系统mbedOS 互斥量调度机制剖析
浅析体育赛事售票系统错票问题的对策研究
人工智能背景下图像识别技术浅析
Bootlace Worms’Secret etc.
What Is Beauty?
图像识别交互系统
浅谈VB的通用对话框《CommonDialog》控件的使用