基于Matlab Web Server 的空间环境虚拟监测分析实验系统①

2020-03-23 06:04李世友
计算机系统应用 2020年2期
关键词:界面卫星监测

李世友, 谢 蓉

(湖南信息学院 电子信息学院, 长沙 410151)

虚拟实验室[1]指的是应用互联网的强大的信息组织能力来将计算机软件模拟器、数据资源、仪器设备等通过网络连接组织起来的网络实验室.虚拟实验室在教育领域是应用信息技术的一种创新.虚拟实验室基于网络的开放性, 它允许人们访问和使用自己没有的设备资源, 使得处于不同地理位置的研究人员或学习人员可以同时对一个实验项目进行实验工作.实验者可以像在真实的环境中一样完成各种预定的实验项目, 所取得的研究或学习能够与真实环境中所取得的效果相当, 甚至更优.虚拟实验室突破科研设备不足、数据资料缺乏、软件分析手段落后等等缺陷, 极大地促进基础教学、科学研究的发展, 是目前国内外研究建设的热点.虚拟实验室广泛用于远程教育和远程实验教学领域[2-7], 例如在远程医学实验教学[4]、远程生物教学[5]、远程软件测试[6,7]等领域得广泛应用, 成为这些领域的研究热点.相对于硬件系统而言, 虚拟实验分析系统不仅有实时性、直观性的特点, 而且大大节约了成本, 提高了科研和实验教学效率.

将Matlab 强大的数值计算能力和Web 技术结合起来, 设计基于Matlab 和Web 的虚拟实验室也得到人们的重视, 开发了各自行业的虚拟实验室或者仿真平台[8-16], 例如实验数据处理[8]、远程计算仿真[9]、在线测量和计算[10]、在线图像处理[11,12]、通信教学[13]等方面的虚拟教学和虚拟仿真.以及在电力机电[13-15]、材料科学[16,17]、汽车虚拟仿真[18]等行业领域的远程或在线虚拟实验室.

在空间科学的研究领域, 本文作者及课题组成员此前也做了一些工作, 建立了空间虚拟实验室[19-22], 并构建了基于Web 的空间虚拟模拟系统[20]和虚拟数据分析系统[21,22].本文将在此前空间虚拟实验室的基础之上构建一个基于Matlab Web Server 的空间环境监测虚拟实验系统.

空间环境是指影响人类活动的、距地面几十公里高度以上直至太阳的广阔空间内的环境, 包括各种成分的带电粒子、中性粒子、各个波段的电磁辐射、电磁场、微流星体和空间碎片等[23].空间环境监测系统通常为建立在近地空间和行星际空间、能够实时监测和分析从太阳到地球的能量传输和转换过程以及近地空间环境的响应情况的整个空间仪器系统.分布在地球轨道和行星轨道的各种卫星上的高分辨率设备能够连续地、实时地监测日地空间不同层次上的物理参数的变化, 通过对日地空间的各种物理模型对可能爆发的空间天气活动进行预测.

空间环境监测的数据来源主要基于天基观测系统,即通过安装在在轨航天器上的探测仪器对空间环境状态及其扰动进行监测的系统, 包括光学、高能粒子和等离子体相关的探测仪器.空间监测环境有别于以研究为目的的空间探测项目, 监测的长期性、数据的一致性和连续性是它们的主要特点[24].

本文借助Matlab GUI 界面实现了对虚拟监测分析系统的设计, 并通过Web 进行网络发布, 形成一套基于Matlab 和Web 的虚拟监测空间环境监测虚拟实验系统.利用该试验系统, 用户可以很方便地在查看或监测的卫星参数以显示数据, 并根据需要进行相关物理参数的计算或者预测等.空间环境参数或者计算的物理量也会直接在界面上显示出来, 不仅方便快捷, 而且大大提高了监测和分析效率.

1 Matlab Web Server 系统构架与工作原理

Matlab 是美国MathWorks 公司出品的商业数学软件, 用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境, 主要面对科学计算、可视化以及交互式程序设计的高科技计算环境.Matlab 是将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中, 为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案, 并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式.Matlab 在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台.

基于网络和Matlab 的虚拟实验室的架构, 基本采用B/S 模式.使用者在客户端只需使用标准的Internet浏览器就可以展现实验的过程.Matlab Web Server 主要由两部分组成, 即Matlab Web 服务器和Web 代理服务器.Matlab Web 服务器是一个可执行的应用程序matlabserver.exe; Web 代理服务器即可执行程序matweb.exe,它是MatlabWeb 服务器的TCP/IP 客户端,其作用是将所有对Matlab 的请求重定向到matlabserver.exe 进行处理.此外, 系统要提供WWW 服务, 就必须要有一个HTTP 服务器, 整个系统的工作流程如图1所示.此外, 在具体实现时还必须对Matlab Web 的服务代理与服务程序进行适当的配置, 这分别通过文件matweb.conf 与 matlabserver.conf 来实现.

2 基于Matlab GUI 的空间环境虚拟监测分析实验系统的设计

2.1 空间环境虚拟监测分析实验系统数据简介

地球空间是一个非常广阔的区域, 与航空航天活动直接相关的主要有中低轨道和地球同步轨道以及高轨道等.空间环境涉及种类繁多的各类空间探测载荷和仪器设备, 物理参数也非常多.作为一个实验分析系统, 本系统主要基于低轨道上的DMSP 卫星[25]和地球同步轨道上的GOES 卫星以及在日地空间中监测太阳风的ACE 卫星的探测; 此外地磁场的数据也用于辅助分析地球空间环境对地面系统的影响.以DMSP 卫星为例简要说明数据.DMSP 卫星上的SSIES 载荷[26]专门用于观测空间环境, 可以得到等离子体的整体漂移速度、等离子体的密度、等离子体的组分(H+, He+,O+)的数密度百分比、离子和电子的温度等.这些观测数据可以对粒子沉降到电离层和在电离层顶部的沿卫星轨道的等离子体参数提供非常有用的信息.

图1 Matlab Web Server 系统架构与工作原理

2.2 空间环境虚拟监测分析实验系统的GUI 界面开发

本节利用Matlab GUI 平台实现了对空间环境监测虚拟实验系统的设计.该系统界面如图2 所示.系统分为两大区域, 其中左边为操作选择主界面, 右边空白处为数据显示区域.左边选择界面分为4 个模块, 依次为太阳风条件(Solar Condition)、地磁条件(Geomagnetic Condition)、暴时地磁指数(Dst 指数)预测(Dst Prediction)和低高度轨道(DMSP)分析模块.

图2 空间环境监测虚拟实验系统GUI 界面

通过此界面, 用户可以很方便地在查看或监测的卫星参数以显示数据, 并根据需要进行相关物理参数的计算或者预测等.空间环境参数或者计算的物理量也会直接在界面上显示出来, 不仅方便快捷, 而且大大提高了监测和分析效率.

一个模块通常包括用户输入、条件选择、命令按钮等部分, 最后的图形输出结果显示于界面右侧, 而一些过程性结果则输出到输出文本框中.下面以第二个模块(地磁条件模块)为例简要介绍该界面的开发过程.

首先在Matlab GUI 界面开发工具(GUIDE)中按照需要添加各种控件.这里主要使用了4 类控件, 分别为text, editor, checkbox、listbox.打开控件的各个属性进行设置, 包括控件的背景色、前景色、Tag 值、String 值、Value 值等.其次, 编写各个控件相应的程序代码, 以实现各控件的相应功能.代码的编写一般包括数据读写、数据传递、数据处理、数据显示等.本系统将数据处理结果显示在右侧界面上, 同时保存相应的fig 和pdf 文件以备后续使用.

2.3 Matlab GUI 发布为exe 程序

Matlab GUI 需要运行在Matlab 环境之下, 这对于没有安装Matlab 的用户来说并不方便.

对本文基于Web 访问的在线虚拟实验分析系统而言, 为避免对设备和环境的依赖, 需将Matlab GUI 程序发布为在任意系统环境下均可执行的.exe 文件.首先配置Matlab 编译器, 将Matlab GUI 下开发的项目文件通过mcc 命令编译为exe 文件.对本例来说,具体命令如下: Mbuild-setup, 按提示选择Matlab 自带编译器LCC; mcc-m LQguiVS.m.编译的结果是生成一系列文件, 其中LQguiVS.ctf 和LQguiVS.exe 这两个文件为脱离Matlab 环境运行必需的文件.

2.4 发布为Web 应用界面

1) 安装运行环境

这里假设需要调用本程序的Web 服务器上没有安装Matlab 的运行环境, 因此首先在服务器上安装Matlab 的运行环境.由于Matlab 不同版本兼容度不高,例如R13 和R15 版本在Web Server 上不兼容.在本实验分析系统的设计中, 将R2007b oolboxcompilerdeploywin32 中的MCRinstaller.exe 安装到该计算机上, 将生成可执行程序脱离Matlab 运行所需的函数库.

其次是要将MCRinstaller.exe 安装目录 untimewin32 这个路径添加到该计算机的环境变量中, 通常是自动加载; 若没有, 也可手动安装.需注意, 安装过程中会弹出安装Microsoft.NET Framework 提示, 可忽略.

最后就是将编译生成的相关文件拷贝到同一目录下.例如在本系统中, 将生成的LQguiVS.ctf, LQguiVS.exe 拷贝到该计算机同一路径.运行LQguiVS.exe 将生成gui_mcr 文件夹, 包含程序运行所需的库.至此完成,双击即可运行LQguiVS.exe 程序.

2) 准备相关数据

数据可以从多种途径获得.一是使用自己的卫星的监测数据, 二是从具备数据发布资格的合作者获取,三是从网上下载相关卫星发布者公开的数据.基于实验目的, 本系统主要是通过第三种途径获取相关数据,包括行星际磁场数据IMF、磁暴环电流指数Dst、亚暴地磁指数AE、DMSP 卫星的SSIES 数据等.所有数据均按类别存储于LQguiVS.exe 所在目录之下.数据组织在同一个目录下面的子目录中, 其结构如图3 所示.

图3 空间环境监测虚拟实验系统数据文件结构

3) 建立网站并发布Web 界面

在服务器端建立独立的空间环境监测虚拟实验系统网站, 或者在原有网站中加入该分析实验系统的相关网页.在网页中使用Runtime.getRuntime.exec 调用由Matlab GUI 生成的可执行程序LQguiVS.exe, 具体实现方法从略.用户即可在客户端浏览器中输入网址即可实现对该实验分析系统的访问.

3 基于Web 的虚拟监测分析实验系统的应用

本节介绍该实验系统的具体应用.系统的每个功能都由Web 页面实现.用户只需在客户端输入相应的控制参数, 就可以通过Web 页面的提交来调用服务器端的Matlab 进程, 进行相应的计算和仿真.最后, 用户可以从返回的页面上查看运行的结果.为了便于用户的使用, 在每个页面上都给出相应的操作提示.这样,无需额外的帮助文件, 可使用户很容易地使用该系统.

3.1 实验1.磁暴事件统计分析

本实验主要用Dst 指数进行磁暴事件的统计分析.根据Dst 指数判定2000 年到2005 年期间的磁暴事件,并做初步统计分析.具体实验步骤如下:

第1 步.打开系统软件界面后, 在左栏第二个面板“Date”输入日期, 只勾选“Dst (Month)”选项, 点击“Plot”按钮, 在右侧显示出当月的Dst 指数, 见图4(a).

第2 步.如果在Dst 出现有超过-100 nT 的现象,代表有中等以上的磁暴发生.这时候, 在“Date”中输入某一磁暴时间内Dst 指数负值最大的日期, 勾选“Dst5D”选项, 点击“Plot”按钮, 可以查看Dst 指数的变化细节, 记录其特性, 比如: 是否有急始, Dst 指数最强值, 增长相和恢复相的持续时间等.见图4(b).

图4 磁暴条件分析模块及Dst 数据代表的分析结果示例图

第3 步.重复第1 和第2 步, 列表记录从2000 年到2005 年期间的所有中等以上磁暴事件的基本特征.

第4 步.统计分析以下内容: 1) 2000~2005 年期间中等、大、特大磁暴的数量和占比; 2)急始型和非急始型磁暴的占比; 3)增长相和恢复相的时长.

3.2 实验2.磁暴与非磁暴期间太阳风和行星际磁场的研究

本实验主要结合Dst 指数和太阳风及行星际数据研究磁暴期间(增长相和恢复相初期)和非磁暴期间(磁暴前一天)太阳风和行星际磁场的变化.根据实验1 得到的磁暴列表, 选择一个中等磁暴和一个特大磁暴, 分别研究磁暴期间(增长相和恢复相初期)和非磁暴期间太阳风和行星际磁场的变化.具体步骤如下.

第1 步.在第一个模块的“Date”中输入磁暴前一天的日期, 然后勾选“IMF”和“Dynamic Pressure”选项, 以及其他希望查看的物理量的选项, 点击“Plot”查看行星际磁场和太阳风动压情况.结果见图5 所示.

第2 步.如果出现变化很剧烈的情况, 则记录变化剧烈的时间, 然后在“Time”中输入变化比较平缓的记录最大时间段, 点击“Condition Value”按钮求均值.均值显示在结果方框内, 见图6 显示并记录之.

图5 太阳风及行星际磁场分析模块及OMNI 数据代表的分析结果示例图

图6 磁暴时间期间太阳风动压的结果的显示

第3 步.输入该磁暴期间的不同的时间, 重复第一和第二步, 记录相应的结果.

第4 步.分别分析中等磁暴和特大磁暴期间的行星际磁场和太阳风动压的变化过程, 并比较两种磁暴期间对应的行星际磁场和太阳风动压的变化程度.

3.3 实验3.磁暴与非磁暴期间中低轨道上的粒子变化和离子上行

根据实验1 所得磁暴列表, 选择中等磁暴和特大磁暴各一个, 分别研究磁暴期间(增长相和恢复相初期)和非磁暴期间(磁暴前一天)中低轨道上DMSP 卫星观测的粒子变化和离子上行率情况.具体步骤如下:

第1 步.在第4 个模块的“Date”中输入磁暴前一天的日期, 然后回车(这一步很重要).回车之后看到原本为“SC”的列表框列出了该日期内有观测的DMSP 卫星的列表.这里演示当日期输入为“20031030”的时候,显示出的卫星列表为: F13, F14, F15, F16.选择F13, 则在“data”列表框中将该卫星对应于“Date”输入日期内的所有数据列表显示出来, 见图7.

第2 步.选择某一个数据文件, 然后按“Get Data”按钮, 则读取数据.倘若没有数据, 或者读不成功, 则在后面的显示框中显示“No Data”; 反之更新数据, 显示“Updated!”以及一个随机数.如果数据得到了更新, 则点击“Overview”按钮, 可以查看DSMP 卫星观测到的粒子的速度、密度、温度等数据, 见图8 所示.该图给出DMSP F13 卫星在2003 年10 月30 日的观测例子.从上到下依次为粒子的速度Vx, Vy, Vz, 离子(H+ 和总离子)密度, 电子和离子的温度.

图7 LEO 分析模块

图8 LEO 分析模块示例: DMSP F13 卫星在2003 年10 月30 日的观测

第3 步.根据Overview 的数据显示, 我们可以大致看到哪个时间段有粒子上行.如果有, 则在“Time”输入框中输入时间段, 格式为“HHMM-HHMM”, 然后点击“Upflow ion”按钮, 计算上行离子.结果显示在右边,并且, 其上行离子的最大速率和平均速率以及最大上行速率时候的磁当地时(MLT)显示在“结果”方框, 见图9.记录相关结果, 例如, Upflow_max=759.56;Upflow_mean=130.1977; MLTmax=17.97.

图9 LEO 分析模块示例: 离子上行结果显示

第4 步.根据Dst 指数指示的磁暴时间, 改变输入日期和时间, 重复上述3 步, 得到实验结果.

4 总结与讨论

本文借助Matlab GUI 界面实现了对空间环境虚拟监测分析实验系统的设计, 并通过Web 进行网络发布, 形成一套基于Matlab 和Web 的空间环境虚拟监测分析实验系统.系统主要分析磁暴、太阳风和行星际磁场、极区离子上行等空间环境参数.利用该试验系统, 用户可以很方便地在查看或监测的卫星参数以显示数据, 并根据需要进行相关物理参数的计算或者预测等.空间环境参数或者计算的物理量也会直接在界面上显示出来, 不仅方便快捷, 而且大大提高了监测和分析效率.本文最后通过3 个实验应用演示来说明该实验系统的实际应用.

本文设计的空间环境虚拟监测分析实验系统具有很好的实用性和可扩展性.着眼于空间应用的实际需求, 我们将空间环境数据进行系统化搜集并在本虚拟监测系统的基础之上构建更完备的空间环境监测系统.此外, 受到线程、计算量等的限制, 目前虚拟监测系统的程序的运行速度还只能满足较低的实验要求.今后将探讨在服务器性能和网络带宽受到限制的情况之下如何提高虚拟监测系统的实用化的技术解决方案, 使系统功能更加完善、更具有实用价值.

猜你喜欢
界面卫星监测
不同截面类型钢管RPC界面粘结性能对比研究
特色“三四五六”返贫监测帮扶做实做细
miniSAR遥感卫星
微重力下两相控温型储液器内气液界面仿真分析
国企党委前置研究的“四个界面”
静止卫星派
Puma" suede shoes with a focus on the Product variables
网络安全监测数据分析——2015年12月
网络安全监测数据分析——2015年11月
学习监测手环