基于MATLAB GUI 的测试数据比对分析软件设计

2022-08-25 10:46梁海波黄万伟
导弹与航天运载技术 2022年4期

梁海波,黄万伟,李 浩,王 尚,李 然

(1. 北京航天自动控制研究所,北京,100854;2. 宇航智能控制技术国家级重点实验室,北京,100854)

0 引 言

近年来,航天装备研发的进程不断加快,在发射前对飞行器电气产品的稳定度、可靠性等性能指标进行全面的分析,尽可能从历史测试数据中发现潜藏的隐患,对成功发射至关重要。对于电气系统的设计人员来说,通过对电气产品的历次测试数据进行比对分析,能够直接或间接地获取产品的异常信息,该信息能为隐患的初步定位提供有效依据。例如,对某个产品在各测试阶段的数据进行横向比对时,发现某一参数值虽然在设计指标范围内,但有向判据范围外漂移的趋势,这类现象就要求设计人员提升对该产品的关注度,并采取进一步的分析排查措施。因此,开展测试数据比对分析工作,有利于在萌芽状态发现问题,有效遏制隐患向事故转化。

王毅等对测试数据的自动判读技术进行了深入的研究,然而,自动判读算法往往具有一定的应用局限性,主要表现在3 个方面:a)在实施过程中,需要对原始数据进行预处理,如剔除野值、截取某段数据等,而这些预处理操作将增加数据漏判的风险;b)对于已经出现异常缓变趋势但仍满足判据要求的测试数据,虽然存在一定的隐患,但自动判读软件往往无法有效识别出来;c)自动判读软件注重单次测试数据的实时判读,而对于多次测试数据的横向比对分析需求,往往无能为力,仍然依赖于人工分析。因此,开发数据比对分析软件,有利于提升设计人员对大量测试数据进行横向比对分析的效率,是弥补常规自动判读技术缺陷的一个有益的补充手段。

数据比对分析软件由于其使用场景的针对性较强,目前尚无通用化的软件平台。按照其实现的功能进行划分,一般可分为两类:a)侧重于通过比对算法判断比对对象的相似度,如民用领域的指纹数据比对系统、足迹数据比对系统;b)侧重于比对数据的收集和组织,形成直观呈现的图表为相关人员提供参考。本文所实现的软件属于后者,主要将电气设备的多次测试数据进行汇集、整理,保留测试数据的所有原始特征,将比对结果进行图表化展现,为设计人员进行数据比对分析提供便利,从而进一步提升设备潜在隐患和风险的识别率。

1 测试参数分析

飞行器电气系统的测试参数数据量大,数据类型多,不同的参数对处理要求也各不相同。电压模拟量通常用于表征设备的工作状态,根据参数自身的属性以及测试场景的不同,可将电压模拟量参数分为两类。

a)平滑缓变参数。这类参数从加电开始到测试结束,中间变化较少,需要关注的重点是加电时刻的跳变过程、测试过程是否存在波动、负载变化情况等。

b)变化缓变参数。这类参数主要表征飞行控制软件施加给某些设备的激励以及执行情况,测试目的在于检查飞行控制软件能否给出规定范围内的激励,执行设备能否执行相应动作。若表示执行情况的曲线与激励曲线的形状变化一致且同步,则表示该设备工作正常。

以某型飞行器控制系统为例,电气设备包括控制组合、伺服机构、惯组、综合控制器等。在系统设计时,以上述设备的二次电源电压模拟量作为表征设备是否正常工作的标志性参数,如表1 所示。

表1 设备的二次电源电压参数Tab.1 Voltage Parameters of Secondary Power of Equipments

二次电源电压模拟量,属于平滑缓变参数,设计人员需要从数据曲线上判读是否超出判据范围,以及是否存在数据跳点、异常波动等。而如表2 所示的伺服机构指令电压与反馈电压参数,则用于反映伺服机构响应指令的正确性。通过比对分析数据曲线,当每个舵片的反馈电压均能够正确跟踪指令电压时,则可判定伺服机构状态正常。下面,以表1 和表2 中的参数为研究对象,开展基于MATLAB GUI 的测试数据比对分析软件设计。

表2 伺服指令电压与反馈电压参数Tab.2 Voltage Parameters of Servo Command and Feedback

2 数据比对分析软件设计

2.1 MATLAB GUI 软件开发流程

MATLAB GUI图形化界面是由窗口、光标、按键、菜单、文字说明等控件构成的用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形控件,可以使计算机产生绘图、数据分析等动作或变化。

采用MATLAB GUI 开发环境GUIDE 进行可视化软件开发,一般按照以下步骤进行:

a)确定软件所要实现的主要功能,将软件功能划分为若干功能模块;

b)绘制基本的用户界面草图,并对其进行修改,最终确定一个可行性最强的实现方案;

c)依据界面的实现方案,利用GUIDE 制作人机交互界面,编写每个模块的回调程序(Callback),并逐项进行功能测试;

d)编译并发布软件。

2.2 软件总体设计

数据比对分析软件主要用于将多次测试数据进行提取、分析,将同一参数的数据进行汇总、绘图显示,并对数据进行统计分析,将图像和统计结果以文档的形式导出,供设计人员进行数据分析使用。经过软件需求分析,数据比对分析软件的数据处理过程存在先后顺序,是一种基于流程化操作的软件。为了使数据比对分析软件的程序设计更加有序化和合理化,将软件功能划分为若干个模块,每个模块能够独立地实现一个子功能,所有的模块整合起来就可以实现完整的软件功能。基于MATLAB GUI 的数据比对分析软件功能如图1 所示,将软件划分为5 个功能模块,各模块实现的主要功能如下。

图1 数据比对分析软件功能Fig.1 Functional of Data Comparison and Analysis Software

a)循环加载测试数据原始文件。由于历次测试数据对应的数据文件均为相同文件名的.txt 文件,且分别保存在各自所属测试项目的文件目录中,同时批量加载存在操作上的困难,因此,采用循环导入的方式加载测试数据文件,同时手动输入每个文件对应的测试项目名称,并将该名称作为后续曲线、图表中的标签项,以此来对测试数据进行区分。

b)数据文件名称确认。输入的测试文件名称会同步显示在数据显示区,供用户再次进行确认,如果存在错误,可以及时在界面上进行更正。

c)数据提取、归类及整理。对所有加载成功的测试数据进行批量提取及保存,作为后续数据分析的原始数据库。

d)曲线绘制与保存。将来自不同测试数据文件中相同的参数数据进行绘图显示,并保存至Word 文档中。

e)数据包络分析与保存。将所有参数进行统计分析,包括参数的最大值、均值及最小值,并保存至Excel文档中。

2.3 软件界面设计

根据前文确定的若干功能模块,确定数据比对分析软件界面上需要触发按钮(Pushbutton)、静态文本框(Static Text)及编辑文本框(Edit Text)3 种控件类型。其中:各功能模块的触发功能采用触发按钮控件,数据名称显示区的提示字符采用静态文本框控件,测试数据名称显示区采用编辑文本框控件。首先,根据界面设计草图,将所有控件拖动到GUIDE 开发环境的前台界面中,并调整每一个控件的位置,力求布局美观。然后,依次通过各控件的属性查看器对各控件的属性进行设置,部分属性值会同步更新到后台的回调函数中。

2.4 软件功能模块设计

2.4.1 概 述

软件主界面作为用户人机交互的接口,响应用户对界面中各控件的操作(如点击鼠标、输入字符等),后台的回调函数会执行相应的算法,并向前台界面反馈信息。下面,将依次对各功能模块的回调函数设计情况进行介绍。

2.4.2 循环加载文件

循环加载文件模块主要用于多次获取用户选择的文件路径,并以对话框的形式请求用户输入本次测试文件对应的测试项目名称,以便绘图和数据分析使用,具体软件流程如图2 所示。

图2 循环加载文件流程Fig.2 Flow Chart of Loop-load Data File

用户每点击一次主界面上面的“循环加载文件”按钮,后台回调函数加载一次文件,支持多次重复操作。获取文件信息由函数uigetfile( )创建,通过对话框获取用户的输入信息,返回文件的路径、文件名等信息,便于后续对该文件进行数据读操作。由于所有导入的原始测试数据的文件名称均相同,无法在数据处理环节对数据来源进行区分,因此,通过对话框函数inputdlg( ),请求用户为本次加载的文件命名(推荐输入测试项目名称),并保存。最后,通过函数set( )将用户输入的项目名称打印在主界面的数据名称显示区。

2.4.3 数据名称确认

为了避免用户在上一环节输入的测试项目名称出现错误,已将输入信息同步显示在主界面上的数据名称显示区。用户可对项目名称再次进行确认,如果有错误,支持在数据显示区对项目名称进行在线修改,待用户确认所有显示信息均无错误后,通过鼠标点击主界面上的数据名称确认按钮,完成数据名称确认操作。

2.4.4 数据处理

数据处理模块根据前两个模块提供的测试数据文件路径和测试项目名称,依次打开文件、读取数据,并将所有数据保存在同一元胞数组中。由于元胞数组中保存的数据均为字符格式,无法进行数据分析,需将其转换为数值格式。其中,数据读取函数采用textscan( ),该函数不仅能按指定格式读取数据,还能对数据进行处理,例如数据筛选、指定数据的字段等。数据格式转换采用函数str2double( ),将元胞数据中的字符数据逐一转换为双精度浮点型。

2.4.5 曲线绘制与保存

a)曲线绘制。

MATLAB 提供了功能强大的绘图函数,用户可以很方便地绘制曲线。数据比对分析软件将所有二次电源电压、伺服指令电压及反馈电压等参数绘制成曲线,每个参数集中在一幅曲线图中显示,图中用不同的曲线颜色和图例来区分数据的来源(测试项目)。首先,创建所有曲线图的句柄函数,然后依次定义每幅曲线图的名称、图中曲线颜色及图例、设置曲线纵轴的上、下限等操作。

为便于用户直观地观察曲线与测试判据的相对关系,将曲线的纵轴上、下限值设定为判据值,一旦曲线超出图幅的上限或下限,则判定数据超差。此外,通过MATLAB 曲线工具栏上的缩放功能,可实现曲线的局部、整体缩放显示,便于用户观察曲线的细节。

MATLAB 绘图函数的DefaultAxesColorOrder 参数默认只有7 种颜色。如果图中曲线的数量超出7 种,后续曲线的颜色将从第1 种颜色起依次向下循环使用上述7 种颜色,导致曲线颜色重复,造成用户无法有效区分参数的来源。因此,事先对 DefaultAxes ColorOrder 参数进行初始化定义。这里,采用函数rand( )随机生成的数据序列为DefaultAxes ColorOrder 参数赋值,可以极大程度地规避曲线颜色重复的问题。

b)曲线保存。

曲线绘制完成后,可将其保存至Word 文档中,便于用户归档和后续查阅。由于微软公司并未公开Office软件文档的结构,对Office 软件的访问和操作一般都是通过Office COM 组件实现的(除了Java 的PIO 库,C#的NPIO 库)。因此,利用MATLAB 生成Word报告,也只能通过与Word 相关的COM 组件及其接口来实现。

将数据写入Word 文件,通常包括创建Word 服务器、建立Word 文档、设置页边距、插入图片、保存文件等操作,具体操作方法可参见文献[9]。

2.4.6 数据包络分析

在对数据归档时,往往需要提供测试数据的包络情况。因此,利用函数max( )、mean( )、min( )分别得出参数在每次测试中的最大值、均值及最小值,实现对所有测试数据的统计学分析。统计结果得出后,将结果写入Excel 文档。保存Excel 文件的方法与保存至Word 文档的方法类似,这里不再赘述。

2.5 软件编译与发布

为了方便用户在不同平台运行MATLAB GUI 开发的可执行程序,MATLAB 提供了编译发布工具箱。在MATLAB 命令窗口中运行deploytool 命令,就可以调出该工具窗口,按照窗口中的提示流程步,可以方便、快捷地编译发布MATLAB 程序。编译、发布完成后,用户进入*.exe 软件所在的目录,双击鼠标执行*.exe 文件即可运行软件。

3 数据比对分析软件应用

利用某型飞行器控制系统的多次实测数据,对数据比对分析软件的功能实现情况进行验证。启动软件,主界面如图3 所示,界面左侧为操作区,对应软件的5个功能模块;界面右侧为数据名称显示区,显示用户输入的测试数据文件名称。参照软件的使用方法,依次加载实测数据、确认数据名称、绘制曲线并保存、进行数据包络分析并保存,具体操作流程如下。

图3 软件运行主界面Fig.3 Main Interface of Running Software

a)点击界面左侧的循环加载文件按钮,启动加载文件对话框,找到数据文件所在目录,选择并加载,按照对话框的要求输入数据文件对应的测试项目,具体界面如图4 和图5 所示。

图4 加载文件界面Fig.4 Graphical Interface of Loading File

图5 输入测试项目名称界面Fig.5 Graphical Interface of Entering Item Name

b)确认界面右侧数据名称显示区信息,如有错误可进行修改。确认无误后,点击界面左侧数据名称确认按钮,弹出“数据名称已确认”提示对话框,见图6。

图6 数据名称确认界面Fig.6 Graphical Interface of Confirming Data Name

c)点击界面左侧的数据处理按钮,后台开始对数据进行加载、整理、保存、格式转换等操作,操作完毕后,弹出“数据已导入”提示对话框,如图7 所示。

图7 数据处理完成界面Fig.7 Graphical Interface of Completion the Data-processing

d)点击界面左侧的曲线绘制按钮,显示一系列曲线图,供用户进行数据比对、分析。在数据比对、分析期间,用户可对曲线进行局部放大或缩小操作,以获得更精细化或更全局化的比对效果。如果用户需要对曲线进行归档,可点击界面左侧的曲线保存按钮,将所有曲线保存至Word 文档中,如图8~10 所示。

图8 曲线比对界面Fig.8 Graphical Interface of Curve Comparison

图9 创建Word 文档界面Fig.9 Graphical Interface of Creating Word Document

图10 曲线保存至Word 文档界面Fig.10 Graphical Interface of Saving Curves into the Word

e)点击界面左侧数据包络统计按钮,后台进行数据统计、创建Excel 文档,并写入计算出的数据最大值、均值、最小值,供用户归档使用。

经多次实测数据验证,数据比对分析软件实现的所有功能执行正确,人机界面友好,操作方便,能够满足用户对多次测试数据进行横向比对分析的需求。

4 结束语

在充分分析数据比对分析软件功能需求的基础上,采用MATLAB GUI 图形界面工具开发了数据比对分析软件。该软件的成功应用,为测试数据的横向比对工作提供了极大便利,更为电气设备隐患的早发现、早处置奠定了基础。同时,基于MATLAB GUI 开发软件的方法,也对其它相关领域软件开发提供一定借鉴。