虚拟实验室[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\toolbox\compiler\deploy\win32中的MCRinstaller.exe安装到该计算机上, 将生成可执行程序脱离Matlab运行所需的函数库.
其次是要将MCRinstaller.exe安装目录\runtime\win32这个路径添加到该计算机的环境变量中, 通常是自动加载; 若没有, 也可手动安装. 需注意, 安装过程中会弹出安装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个实验应用演示来说明该实验系统的实际应用.
本文设计的空间环境虚拟监测分析实验系统具有很好的实用性和可扩展性. 着眼于空间应用的实际需求, 我们将空间环境数据进行系统化搜集并在本虚拟监测系统的基础之上构建更完备的空间环境监测系统. 此外, 受到线程、计算量等的限制, 目前虚拟监测系统的程序的运行速度还只能满足较低的实验要求. 今后将探讨在服务器性能和网络带宽受到限制的情况之下如何提高虚拟监测系统的实用化的技术解决方案, 使系统功能更加完善、更具有实用价值.
[1] |
Valera A, Diez JL, Valles M, et al. Virtual and remote control laboratory development. IEEE Control Systems Magazine, 2005, 25(1): 35-39. DOI:10.1109/MCS.2005.1388798 |
[2] |
叶小英. 虚拟实验教学系统在远程教育中的应用与评价研究[硕士学位论文]. 北京: 北京邮电大学, 2011.
|
[3] |
王永喜. 虚拟实验室在远程实验教学中应用探讨. 中国教育技术装备, 2010(12): 89-90. DOI:10.3969/j.issn.1671-489X.2010.12.089 |
[4] |
由继红. 虚拟生物实验室在实验教学中应用的研究. 实验室科学, 2017, 20(1): 146-148. DOI:10.3969/j.issn.1672-4305.2017.01.045 |
[5] |
石新丽, 唐飞羽, 孙梦雯, 等. 虚拟实验室在医学实验教学中的应用研究. 实验技术与管理, 2014, 31(6): 114-116. |
[6] |
李劲华, 贾冬雪, 赵毅. 基于云架构的软件测试实验教学平台. 实验技术与管理, 2015, 32(11): 136-139, 144. DOI:10.3969/j.issn.1002-4956.2015.11.037 |
[7] |
张雪亚. 基于云计算的软件测试平台的设计与研究. 电子设计工程, 2018, 26(11): 18-22. DOI:10.3969/j.issn.1674-6236.2018.11.005 |
[8] |
Wu D, Liu J, Xu P, et al. Study on how to deal with experimental data of physics based on Matlab Web Server. Proceedings of 2009 International Forum on Computer Science-technology and Applications. Chongqing, China. 2009. 274–277.
|
[9] |
郑杭. 基于Web和MATLAB Builder JA技术的远程计算与仿真系统研究[硕士学位论文]. 广州: 华南理工大学, 2017.
|
[10] |
刘淼, 丁克良. 基于MATLAB Web Server的测量平差在线计算系统. 实验室科学, 2017, 20(1): 58-60, 64. DOI:10.3969/j.issn.1672-4305.2017.01.017 |
[11] |
程钢, 张春义, 张桓. 基于Matlab的在线数字图像处理平台设计与开发. 河南理工大学学报(自然科学版), 2017, 36(4): 55-59. |
[12] |
王永, 许梦姣, 张毅, 等. 基于Web的通信系统教学平台的构建. 电气电子教学学报, 2017, 39(5): 142-145. DOI:10.3969/j.issn.1008-0686.2017.05.040 |
[13] |
高钦和, 董家臣, 邵亚军, 等. 基于Matlab/GUI的电动机特性虚拟实验平台开发. 实验室研究与探索, 2018, 37(4): 97-101, 161. DOI:10.3969/j.issn.1006-7167.2018.04.024 |
[14] |
宗哲英, 张旭, 郝永强, 等. 基于MATLAB GUI的电力电子技术虚拟实验仿真平台的设计与构建. 实验科学与技术, 2018, 16(3): 146-149, 182. DOI:10.3969/j.issn.1672-4550.2018.03.037 |
[15] |
吴涓, 孙岳民, 雷威, 等. 东南大学机电综合虚拟仿真实验教学中心建设规划思路与进展. 实验技术与管理, 2014, 31(10): 5-9. DOI:10.16791/j.cnki.sjg.2014.10.002 |
[16] |
李亮亮, 赵玉珍, 李正操, 等. 材料科学与工程虚拟仿真实验教学中心的建设. 实验技术与管理, 2014, 31(2): 5-8. |
[17] |
丁怀平, 韩民, 刘飞. 材料科学与工程虚拟仿真实验教学中心的建立. 中国教育技术装备, 2017(8): 11-12. DOI:10.3969/j.issn.1671-489X.2017.08.011 |
[18] |
侯献军, 唐蜜, 张国方, 等. 面向全产业链的汽车虚拟仿真实验教学中心建设与发展. 实验技术与管理, 2017, 34(2): 1-6. |
[19] |
杨若虚, 邓晓华, 李世友, 等. 空间虚拟实验室的研究. 武汉大学学报(理学版), 2006, 52(S1): 237-240. |
[20] |
苏志文, 邓晓华, 周猛, 等. 基于Web的空间虚拟实验室计算机模拟系统. 计算机工程与科学, 2009, 31(4): 140-142. DOI:10.3969/j.issn.1007-130X.2009.04.042 |
[21] |
邵永春, 邓晓华, 苏志文, 等. 分布式空间数据中心建设研究. 微计算机信息, 2008, 24(1): 233-234, 211. DOI:10.3969/j.issn.1008-0570.2008.01.096 |
[22] |
李世友, 聂志英. 磁尾电流片结构分析−Matlab Web Server在空间虚拟实验室构建中的应用. 计算机工程与应用, 2009, 45(5): 218-221, 235. DOI:10.3778/j.issn.1002-8331.2009.05.064 |
[23] |
焦维新, 田天. 空间环境研究的现状与展望. 航天器环境工程, 2007, 24(6): 337-340. DOI:10.3969/j.issn.1673-1379.2007.06.001 |
[24] |
王立, 张庆祥. 我国空间环境及其效应监测的初步设想. 航天器环境工程, 2008, 25(3): 215-219. DOI:10.3969/j.issn.1673-1379.2008.03.006 |
[25] |
NOAA. Defense Meteorological Satellite Program (DMSP). http://ngdc.noaa.gov/eog/dmsp.html.
|
[26] |
Coley WR, Heelis RA, Hairston MR. High-latitude plasma outflow as measured by the DMSP spacecraft. Journal of Geophysical Research: Space Physics, 2003, 108(A12): 1441. DOI:10.1029/2003JA009890 |