基于Flask框架的测量设备精度鉴定系统服务端设计与实现
Design and Implementation of Server of Measurement Equipment Accuracy Evaluation System Based on Flask Framework
DOI: 10.12677/SEA.2022.111014, PDF, HTML, XML, 下载: 303  浏览: 950 
作者: 邱维江, 张小飞, 陈 欣, 涂 鑫:中国人民解放军63819部队,四川 宜宾
关键词: Flask天平一号精度鉴定服务端Flask TP-1 Accuracy Identification Server
摘要: 针对配合基于“天平一号”标校卫星的测量设备精度鉴定系统需要实现的服务功能,在分析了系统的功能需求、输入需求及输出需求的基础上,设计了服务端的结构和功能模块,并给出了服务端的标校任务规划、跟踪精度鉴定、测量误差计算、修正分析等功能,以及卫星信号、产品类型、大气修正需求的具体实现过程和结果。通过结果验证和系统测试,服务端的各项功能有效可靠,系统运行稳定,响应迅速,满足用户使用需求。
Abstract: Aiming at the service functions that need to be realized in the accuracy appraisal system of measurement equipment based on “TP-1” calibration satellite, based on the analysis of the functional requirements, input requirements and output requirements of the system, the structure and functional modules of the server are designed, the server-side calibration task planning, tracking accuracy appraisal, measurement error calculation and correction analysis are offered, and the specific implementation process and results of satellite signal, product type and atmospheric correction are described. Through the result verification and system test, the functions of the server are effective and reliable, the system runs stably and responds quickly to meet the needs of users.
文章引用:邱维江, 张小飞, 陈欣, 涂鑫. 基于Flask框架的测量设备精度鉴定系统服务端设计与实现[J]. 软件工程与应用, 2022, 11(1): 119-129. https://doi.org/10.12677/SEA.2022.111014

1. 引言

2019年我国“天平一号”标校星投入使用以来,各测量部门主动使用该星开展了多次主动式、被动式跟踪及应急跟踪训练,并开展了联合跟踪试验,效果总体比较良好。但从前期应用的情况来看,各测量部门对该标校星系统的使用效益还未充分发挥,主要体现在:一是测量设备标校任务模式还未完全建立。标校星系统主要由西安卫星测控中心管理,研制了标校卫星地面应用系统 [1],但是仅提供了轨道下载等基本服务功能,未提供多站联合跟踪标校星的规划支持。二是缺乏统一的跟踪精度鉴定系统。目前西安卫星测控中心并未向各测量部门提供测量设备跟踪精度鉴定或评估系统,各测量部门利用标校卫星开展跟踪后只能简单地和轨道数据进行对比验证,或是依据关于测量设备的测量精度评定的国防军用标准 [2] 进行繁琐的计算分析,刘利生等人早在2014年也做了应用标校卫星对测控系统精度鉴定的方法研究 [3],但都未开发直接提供鉴定服务的系统,无法迅速简便地开展跟踪精度鉴定工作。三是未能直接有效地提供测量误差补偿数据。在测量误差补偿方面,很早就有关于系统误差卫星标定方法研究 [4],也有卫星标校的技术实现研究 [5] [6] [7] [8],但是多数停留在理论方法研究上,工程应用方面甚少,而且由于缺乏统一化的跟踪精度鉴定,导致模拟计算出的标校星的标校测量结果无法用于现有地面标校系统的测量误差结果对比和修正。本文为配合精度鉴定系统解决上述三个方面问题,而设计和实现相关功能的系统服务端。

2. 系统功能需求分析

通过对“天平一号”标校星应用的需求和测量设备精度鉴定系统的功能分析,系统的服务端要实现如图1所示的主要功能。

1) 用户登录验证功能。实现对用户身份的识别验证,验证通过后方可登录系统,进行后续操作,并根据用户注册的登记信息展现相应用户的功能界面。

2) 任务规划功能。精度鉴定系统每天需要定时从“天平一号”标校卫星产品发布平台 [1] 获取各卫星的预报轨道数据,前端用户根据选择,查询指定卫星未来三天内的预报轨道数,并且可以查看指定用户的预报轨道,以便协调开展各测量部门间的联合跟踪。同时用户查询到结果后,系统需向用户提供引导弹道的下载服务。

3) 精度鉴定功能。根据用户的选择、输入信息和上传的测量文件,确定所跟踪的卫星型号、产品类别和大气修正需求,查找对应的轨道产品并进行坐标转换,通过两份轨道文件对比,计算出测量设备的分段误差和不分段误差,并提供分析结果的下载,帮助用户开展跟踪精度鉴定。

4) 修正分析功能。根据用户选择的卫星型号、产品类别和上传的一个或多个测量文件,查找对应的卫星轨道产品,通过对比两份文件,反向计算出测量设备的基于所该测量数据的常规修正参数,为用户优化数据精度提供支持。

Figure 1. Functional composition block diagram of server

图1. 服务端功能组成框图

3. 服务端系统设计

3.1. 系统结构设计

系统采用前后端分离技术。前后端分离是互联网开发的业界标准使用方式。在前后端分离模式下,后端服务器仅返回前端需要的数据,不再渲染HTML页面,不再控制前端界面的效果。至于前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端自己决定。前后端分离的应用模式下,前后端的耦合度相对较低,大大增强了前后端各自开发和维护的灵活性。

本系统中,前端部分我们选择采用Vue框架 [9] 进行开发设计,后台服务器采用基于Flask的轻量级web框架 [10],前后端采用Json数据交换格式进行数据传递。同时,为实现每天定时自动获取预报轨道数据,系统使用Celery包设置了定时任务,Celery定时任务与Flask应用程序相对独立,可以分别运行,互相不受影响。

系统整体结构如图2所示。

进一步将系统功能进行模块化分解,如图3所示。

3.2. 用户登录验证设计

前端用户输入用户名和密码,点击登录按钮后,后台服务器对用户名和密码进行验证,验证通过后即可登录系统。为确保用户密码的安全性,系统对用户密码做了Hash加密处理。同时,用户注册时填写的资料可能参差不齐,为方便前端显示,同时考虑到基地范围内设备并不多,因此本系统暂不开放用户注册和用户信息维护服务。如需添加用户,需要与管理员联系,直接在数据库用户表中添加,登记用户名及设备的经纬度及高层等数据,用于任务规划及精度鉴定等的坐标转换。

Figure 2. System logic structure diagram

图2. 系统逻辑结构图

Figure 3. System function module decomposition

图3. 系统功能模块分解

3.3. 轨道预报功能设计

因为用户只需要查询当前时间后三天的预报轨道,且当前时间以前的预报轨道数据对用户来说没有意义。因此,只需每天定时自动获取预报轨道数据存入数据库即可。采用python中的Celery分布式任务调度模块,来完成定时自动获取预报轨道数据功能。在celery定时任务模块中,由创建的Celery实例分别发起爬取预报轨道、存入数据库、文件坐标转换、引导文件格式处理、文件夹压缩等任务,并交由celery Beat来管理任务对列,celery worker从celery Beat中获取任务,按照设定的时间执行任务。自动获取预报轨道数据工作原理如图4所示。

Figure 4. Working principle of celery timing task

图4. Celery定时任务工作原理图

前端用户登录后,即可进行查询跟踪规划、定制想要查看的用户预报轨道、下载引导弹道等操作。

3.4. 精度鉴定功能设计

由于受测量误差、系统动态滞后、大气折射等因素影响,测量数据在做精度分析前,用户需要先对数据进行动态滞后修正、系统误差修正及电波折射修正等 [4],不具备大气修正能力的用户可以在系统中选择电波折射修正。同时,在与轨道数据进行处理时,还要做数据对齐处理,以解决测量数据与卫星精密轨道数据采样时刻不一致、时间格式错误、跨零跳点、丢帧等问题。在对数据进行前期对齐处理后,运用卫星精密轨道数据进行作为比较标准值,对设备测量数据进行精度分析,最终得到测量设备的跟踪精度。其流程如图5所示。

前端用户登录后,设计了选择卫星类型、轨道产品类型以及是否需要进行大气修正等信息输入,这些对应输入以确定所需的对比数据,同时,为了更细致的分析各段数据的跟踪情况,设计了不分频段误差和各种频段(10 s、20 s、30 s、50 s四个分段)、并为客户提供分析结果的下载,供用户直接使用。

3.5. 修正分析功能设计

修正分析功能与精度鉴定的部分模块相同,只是分析的数据不同,待分析数据的对象为未修正的测量数据,在系统中进行大气修正及数据对齐处理,再以卫星精密轨道数据进行作为比较标准值,对设备测量数据进行矩阵运算,最终得到测量设备误差分量估算。

Figure 5. Accuracy identification process

图5. 精度鉴定流程图

3.6. 数据库设计

系统使用关系对象映射(ORM),采用SQLalchermy进行MySQL数据库操作。根据项目需要,在数据库模型中配置了三个模型:User (用户)、PredictionA (TP_1A预报轨道)和PredictionB (TP_1B预报轨道),且模型之间不需要相互关联。其中User模型如表1所示,而系统需要根据PredictionA/PredictionB模型每天建立一个数据表,如表2所示。

Table 1. User model

表1. User模型

Table 2. Prediction A/Prediction B model

表2. Prediction A/Prediction B模型

4. 服务端实现

4.1. 轨道预报功能实现

任务规划功能中,用户可选择需要跟踪的卫星类别,以查看跟踪规划计划。实现所有用户近三日的轨道预报情况视图,如图6所示,用户还可以根据需要点击某单位的标签按钮,取消查看该单位预报轨道数据。同时计划视图页面支持放大、缩小、平移等功能,如图7所示,放大后,可以将光标置于弧段前后时显示时间点,便于用户获知精准的任务规划时间,并且需查看的用户数量可供用户自由选择。

Figure 6. Mission planning view

图6. 任务规划视图

Figure 7. Enlarged mission planning view

图7. 放大后的任务规划视图

在需要确定实施跟踪任务计划时,系统实现了本登录用户所有规划弧段的引导弹道下载,供用户开展联合跟踪训练任务的引导文件使用。如图8所示。对于任务规划的结果验证,通过取一台某部门的设备,应用服务端下载的引导弹道,开展5次不同日期不同时段的天平一号标校卫星的跟踪测量,实验证明,5次跟踪实验均能通过引导弹道引导测量设备发现跟踪目标,任务规划时间可靠,弹道引导效果良好。

Figure 8. Planning mission guidance trajectory download

图8. 规划任务引导弹道下载

4.2. 精度鉴定功能实现

在精度鉴定页面,有提供用户选择的卫星类型、轨道产品类型及电波折射修正(大气修正),以便用户根据自己的跟踪情况及对比轨道情况选择用于精度鉴定的卫星类型及轨道产品。如图9所示。卫星类型的选择依据用户所跟踪的实际卫星而定,卫星类型分为TP-1A星和TP-1B星;轨道产品选择则根据用户对精度鉴定的比对标准数据的精度要求而定,分为:准实时定轨轨道产品、超快速定轨轨道产品、快速定轨轨道产品及最终定轨轨道产品4类,主要区别为定轨精度不同。电波折射修正的选择依据用户待分析的数据是否需要修正而定,选择后需装填设备地面0米的气象参数。

图9. 卫星及轨道产品类型选择界面

在服务器端的精度鉴定视图函数中,服务器接收到前端上传的修正测量数据文件和上述表单信息后,根据测量数据文件绘制的R、A、E图像,同时依次调用自定义的download_file (下载轨道产品)、translate (坐标转换)、cal_data (数据对齐)、atmospheric (大气修正)、delta_data (误差统计)等功能函数,给用户提供A、E、R、V分别的总误差、随机误差、系统误差的精度鉴定结果及数据下载,如图10所示。通过对同一组数据进行精度鉴定对比,服务端的给出的精度鉴定结果与人工通过公式计算得到的结果保持一致;服务端的计算时间因数据大小而有所不同,但是相较于人工一步一步计算,计算速度大大提高,效率提升显著。

Figure 10. Total correction analysis of accuracy evaluation

图10. 精度鉴定的总修正分析

同时,服务端为客户提供了分段修正分析结果展示,具备10 s、20 s、30 s、50 s四个分段方式可以选择,如图11所示。10 s间隔的分析结果柱状图如图12所示,图表支持显示光标处数据、平移、放大、缩小等功能,同时分析数据可供用户下载使用。

Figure 11. Segment correction analysis selection

图11. 分段修正分析选择

Figure 12. Histogram of 10s segmentation error

图12. 10 s分段误差柱状图

4.3. 修正分析功能实现

同样,在修正分析功能实现上,也具备如图9所示的卫星类型及轨道产品类型的选择,文件上传支持单个及多个测量数据文件同时上传。完成上传文件后,服务器端视图函数依次执行download_file (下载轨道产品)、translate (坐标转换)、cal_data (数据对齐)、atmospheric (大气修正)等函数后,我们使用python 中的Numpy包,利用基于最小二乘估计的雷达系统误差卫星标定方法 [4],对设备测量数据进行矩阵运算,最终得到测量设备误差分量估算,并将估算结果显示与用户。如图13所示。估算参数包括:方位零值、俯仰零值、距离零值、大盘不水平方位角、大盘不水平度、方位俯仰不正交度、重力下垂、方位机电偏差、俯仰机电偏差。

图13. 修正分析结果显示

通过服务端给出的估算结果,与人工标定标校的结果对比,在数值上有所差异,但是差距不大,在进一步装填至测量设备上开展跟踪测试,所得的跟踪数据其跟踪精度满足指标要求,说明服务端给出的估算结果可信,能够用于测量设备的数据修正使用。

4.4. 系统测试

对精度鉴定系统服务端的性能指标进行响应时延测试,测试用的样本数据频率为20 Hz,测试结果如表3所示。通过上述测试结果可以看出,系统响应指令时间最大的是获取分段精度分析结果,约800毫秒,服务端连续稳定运行,未出现系统报错等现象,具备24 * 7小时运行能力的要求。

Table 3. Response test results

表3. 响应测试结果

5. 结束语

测量设备的精度鉴定系统服务端为该系统的服务窗口,对接了西安卫星测控中心现有的基础服务系统,运用其提供的定轨数据,针对单站点跟踪或多站点联合跟踪开展跟踪任务规划、下达跟踪任务,以网络化服务模式收集各设备跟踪数据,开展跟踪数据计算、提供统一的精度鉴定服务和修正分析服务,实现了标校任务规划、跟踪精度鉴定、修正分析等功能,有效提高了测量设备的精度鉴定及修正分析的工作效率。

参考文献

[1] 余涛, 陶孙杰, 王钧慧, 缪霖. 标校卫星地面应用系统方案设计[J]. 电讯技术, 2019, 59(10): 1151-1155.
[2] 刘利生, 赵华, 刘元. 应用标校卫星鉴定测控系统精度方法探讨[J]. 飞行器测控学报, 2014, 33(4): 275-282.
[3] GJB 1381A-2011, 导弹、航天器实验光电经纬仪和脉冲雷达测量精度评定[S]. 北京: 中国人民解放军总装备部, 2011.
[4] 钟霞, 张建伟, 于灏. 基于最小二乘估计的雷达系统误差卫星标定方法[J]. 空间科学学报, 2013, 33(5): 554-560.
[5] 袁勇, 李革, 马鹏斌, 廖杰. 雷达的卫星标定技术方法[J]. 陕西科技大学学报(自然科学版), 2008(4): 109-113.
[6] 仇芝. 脉冲雷达卫星标定方法的一种工程实现研究[J]. 飞行器测控学报, 2010, 29(5): 29-33.
[7] 郭佳意, 钮俊清. 雷达卫星标校的工程实现研究[J]. 空军预警学院学报, 2014, 28(3): 165-167.
[8] 黄家贵, 杨潇. 脉冲测量雷达卫星标校的实现[J]. 系统工程与电子技术, 2007(10): 1600-1602.
[9] 梁灏. Vue.js实战[M]. 北京: 清华大学出版社, 2017.
[10] 李辉. Flask Web开发实战[M]. 北京: 机械工业出版社, 2021.