APP下载

基于Matlab GUI的空盒气压表示值修正值计算软件设计

2019-05-20麻锴孔诗媛孙文博袁文辉

吉林农业 2019年11期
关键词:清空示值气压

麻锴,孔诗媛,孙文博,袁文辉

(吉林省气象探测保障中心,吉林,长春130061)

1 概述

利用Matlab图形用户界面(Matlab/GUI)可以实现强大的计算功能和简洁直观的操作界面[1]。文献[2]中以Matlab/GUI实现了三容水箱液位的计算机监控系统。文献[3]利用 Matlab/GUI设计了运动控制系统课程的可视化虚拟实验平台,文献[4]和文献[5]分别实现了基于Matlab/GUI的数值积分界面和风洞信号小波分析处理软件。本文鉴于Matlab/GUI开发计算类型软件的优势,利用其实现空盒气压表示值修正值的自动计算功能,这种方式数据处理不会产生计算误差,数据处理结果更加直观。

2 空盒气压表示值修正值计算方法

空盒气压表两个检定点之间存在若干个整10气压点,各个气压点呈等差数列分布,计算这些气压点的修正值采用线性插值的方法,每个气压点修正值也呈等差数列分布,只需以两个检定点的差值为距离,除以跨步数,计算出步长,再通过步长求出每一个修正值。

3 基于Matlab GUI空盒气压表示值修正值计算软件的设计

Matlab GUI软件的制作包括操作界面设计和控件的后台程序编写两部分。示值修正值计算软件的设计思路是从实现基本功能的角度出发,以最简洁直观的方式布局软件的操作界面,最后编写控件的回调函数等后台程序。

3.1 修正值计算软件的基本功能

示值修正值计算软件的设计原则是以空盒气压表的计量性能要求和检定方法为基础,以提高计算效率,减少人为误差为目的。所以,软件的基本功能包括:能够计算1060hPa~800hPa的测量范围内的示值修正值;“四舍六入”,逢五奇进偶舍的修约方法计算修正值;能够显示相邻整10hPa气压点之间的示值修正值的变量(差值),并对其是否满足计量要求进行判断,给出结论。

3.2 修正值计算软件的操作界面设计

根据软件基本功能的要求,1060hPa至800hPa范围内的27个整10hPa气压点,通过 27个静态文本显示,与只对应地布置27个可编辑文本显示修正值的计算结果;布置26个可编辑文本显示相邻整10hPa气压点之间的差值;布置两个按钮控件,实现根据输入数据计算修正值。

正值和修正值的变量和一键清空所有可编辑文本,方便软件的重复实用;最后布置一个可编辑文本用来显示示值修正值的检定结论。

检定规程中要求1010hPa是必检点,所以在图1中,1010hPa为蓝色,有别于其他气压点,这种相对人性化的考虑可以方便检定人员准确地输入1010hPa的修正值。

3.3 修正值计算软件的代码编写

3.3.1 按键“计算修正值”的回调函数

程序需要判断输入的修正值属于来自哪一个气压点,故使用“eval()”对所有27个可编辑文本进行读取,并将字符串格式转换为浮点型,其代码为:

for ii=1:27

a{ii}=eval(['get(handles.edit',num2str(ii),',''String'');']);

b(ii)=str2double(a{ii});

end

在程序中将静态文本的号段设定为从text1到text27,将可编辑文本的号段设定为从edit28到edit56。所以,气压值的静态文本与修正值的可编辑文本建立了方便程序实现的一一对应关系,即气压值所处的静态文本是text(n),那么,这个气压值对应的可编辑文本就是edit(n+27)。通过下面代码:c=find~〔isnan(b)〕;d=b〔~isnan(b)〕;可以获取有输入和没有输入的可编辑文本的号段,通过 text(n)与 edit(n+27)的对应关系就能够判断出有输入修正值气压值和没有输入的气压值,以及有输入的气压点之间存在整10hPa气压点的个数。从而实现计算其修正值,并写入到没有获得输入的可编辑文本中。

图1 软件操作界面

3.3.2 按键“清空数据”的回调函数

按键“清空数据”的回调函数:

当同时检定了多个空盒气压表时,需要多次使用修正值计算器时,就需要清空上一次使用的结果,代码如下:

for i=1:27

u='';

eval(['set(handles.edit',num2str(i),',''FontWeight'',''normal'',''String'',u);']);

end

for ti=29:54

u='';

eval(['set(handles.edit',num2str(ti),',''FontWeight'',''normal'',''String'',u,''ForegroundColor'',[0,0,0]/255);']);

end

代码的原理就是将一个空的字符串循环写入到每一个可编辑文本。因为计算修正值差值时将不合格的字体标红,加粗处理了,所以需要通过FontWeight和ForegroundColor的值重新设定为初始状态的值。

4 结语

本文利用开发的空盒气压表的示值修正值计算软件,其具有良好的人机交互特性,使得空盒气压表的检定效率显著提升,完全消除了人为误差。与其他面向对象的编程语言相比,Matlab/GUI特别适合应用到计量检定数据处理领域,其编程方式简单,数学函数丰富,计量人员不用投入太多时间学习开发语言就可以完成软件的编写,节省大量时间。目前已经有大量利用Matlab/GUI解决数学模型可视化,科研数据处理可视化的研究工作,但鲜有将其利用在计量检定数据处理中,所以,本文为其他检定业务的数据处理提供了有效的解决办法。

猜你喜欢

清空示值气压
看不见的气压
电感测微仪示值误差的测量不确定度分析与评定
很萌!熊孩子清空7万元购物车
压力容器气压端盖注射模设计
旋光仪示值误差测量结果的不确定度评定
为桥梁领域的示值准确性护航
清空你的购物车是我的温柔
清空购物车了吗!
下一场雪,写一首诗
电渗—堆载联合气压劈烈的室内模型试验