本发明主要涉及到卫星导航系统领域,特指一种适用于全球卫星导航仿真软件系统架构设计与模型开发集成技术的卫星导航系统级开源仿真系统的建立方法。
背景技术:
全球卫星导航系统是一个由空间段、环境段、地面段和用户段组成的复杂导航定位系统,整个过程涉及到时间与坐标、轨道姿态、测量与通信、定位与评估等许多个学科、上百种模型与数据,具有复杂的系统组成与控制管理特性。随着全球卫星导航系统应用愈发广泛,卫星导航系统已然成为综合国力的象征,但是当前现有技术中还没有比较成熟的全球卫星导航系统软件平台构建方法。
传统应用软件架构是单纯的面向对象建模,采用“视图+逻辑”的组成结构建立的体系架构,此体系架构在开发卫星导航系统级开源体系架构存在以下方面的缺点:
1、现有架构结构封闭,开发灵活性较差,代码复杂度较高,开放性不够,不便于开源和协同开发。
2、卫星导航应用日新月异,对相关软件的扩展性要求比较高,现有架构技术不足以满足需求。
3、新开发的软件应具备向前兼容的特性,能够实现与现有的其它相关软件的交互,现有技术在这方面有所欠缺。
4、现有架构技术没有考虑模型体系的概念,无法解决卫星导航系统复杂的模型体系问题。
5、视图逻辑与业务逻辑耦合度高,功能模块之间依赖性强,逻辑结构不够清晰,没有形成稳定可靠的架构核心。
综上所述,现有的应用软件框架,由于采用“视图+逻辑”的结构,其结构对外封闭,不利于框架的扩展,灵活性较差,常用的事件驱动方法促使代码复杂度增加,可维护性较差,开发测试难度较大,综合以上缺点,不利于开源体系架构的建设。
技术实现要素:
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种具有高可重用性、可扩展性、可维护性、可开源特性的卫星导航系统级开源仿真系统的建立方法。
为解决上述技术问题,本发明采用以下技术方案:
一种卫星导航系统级开源仿真系统的建立方法,其步骤为:
s1:基于开源的目的,结合卫星导航系统的特性以及现有架构技术特点,确定“内核+总线接口+扩展组件”的体系架构;
s2:根据高度集成封装的思想设置内核的结构;
s3:梳理卫星导航仿真系统组成结构和相关功能,建立矩阵式卫星导航仿真模型体系;
s4:根据仿真模型需要实现的功能要求,开发算法模型组件,并动态集成到仿真模型中;
s5:根据系统的扩展性,开发通用的第三方应用程序插件接口模型,并把第三方应用程序插件的调用逻辑集成到业务逻辑中,实现即插即用;
s6:根据卫星导航系统仿真测试与评估的要求,开发表现层内容。
作为本发明的进一步改进:所述步骤s2的详细流程为:首先把内核分为仿真模型与业务逻辑,又把业务逻辑分为运算逻辑、控制逻辑、输入输出逻辑三部分,仿真模型用于建立运算逻辑中仿真场景,控制逻辑管理控制仿真场景的仿真,并输出数据到测试评估模块与自验证模块,根据用户需求输入输出模块实现外部数据导入到仿真场景,内部数据按照选定的格式输出。
作为本发明的进一步改进:所述步骤s3的流程为:
s301:纵向分层;卫星导航仿真系统系统包括四个段,空间段、环境段、地面控制段、用户段,这四个段共同组成一个卫星导航仿真系统的场景,而每个段又由具体的子级对象组成;
s302:横向分层;针对每个段及其子级对象,根据其功能列出各模块组成,列出实现过程中需要人机交互的数据。
作为本发明的进一步改进:所述步骤s4的流程为:
s401:在矩阵式仿真模型体系结构的基础上,在框架中对卫星导航系统级仿真中涉及的所有算法进行接口定义,并公开算法组件接口;
s402:根据框架公布的算法组件接口、算法功能以及对应的数学模型进行算法开发,开发完成后形成算法组件;
s403:把测试通过的算法组件动态集成至架构的扩展组件层,这些算法组件中的算法会通过架构的总线接口层,最终被内核层调用,实现软件的一部分功能。
作为本发明的进一步改进:所述步骤s5的流程为:
s501:总线层对系统的运行控制接口、菜单栏数据接口、输入输出接口、工具栏接口、运行时接口、可视主窗接口进行公开;
s502:根据框架公开的接口模型以及第三方应用程序公开的函数接口,通过调用第三方应用程序的函数完成特定的功能,在插件中实现卫星导航系统级仿真软件架构的公开接口,形成第三方应用程序插件;
s503:插件开发并测试完成后,集成到本发明架构的扩展组件层,该插件通过架构的总线接口层,最终被内核层调用,实现对插件的利用与控制,做到即插即用。
作为本发明的进一步改进:所述步骤s6中,采用自定义表现层技术,首先确定要实现哪类数据的可视化设计,设计视图,然后利用数据绑定技术建立视图控件与模型数据的联系,实现界面的自定义开发。
作为本发明的进一步改进:所述步骤s6中,采用卫星导航仿真自动化调度规划机制,通过界面的部分手动操作配置后,根据系统设置的内部规则,安全有序的执行系统的管理控制任务,对要执行的事件与任务均按照优先级别从高到低依次执行,同级别将按照事件队列规则,先进先出执行,并对系统的突发事件进行中断处理。
与现有技术相比,本发明的优点在于:
1、本发明的卫星导航系统级开源仿真系统的建立方法,可以快速高效地搭建一个卫星导航仿真系统软件架构,很大程度上简化了卫星导航系统内部的复杂度,实现了算法模型与应用程序插件在无需编译的情况下动态集成,做到即插即用,在使用此系统的基础上还可以根据需求开发自定义的功能,本发明是一种具有高可重用性、可扩展性、可维护性、可开源特性的开发框架及实现方法。系统逻辑结构清晰,功能模块之间耦合度低,仿真调度机制灵活,系统核心、接口与视图区分明确。
2、本发明的卫星导航系统级开源仿真系统的建立方法,建立一个完整的全球卫星导航仿真软件平台提供了重要的方法与技术支持,能够在短时间内能开发出一套应用于系统前期验证的仿真与测试平台,并能在后期通过开源来吸引广大卫星导航系统研究者参与到系统的协同开发,使卫星导航技术得到共享,同时最大化卫星导航领域技术的创新。
3、本发明的卫星导航系统级开源仿真系统的建立方法,针对卫星导航系统的复杂特性提出的一种矩阵式对象模型结构,使得系统最大程度解耦,业务责任尽可能划分明确,通过逐步分解细化来降低单元模块的开发难度,使整个系统框架像堆积木一样逐步层叠搭建而成;mvvm设计模式行之有效的解决了众多模型管理控制的问题,并且利用统一扩展接口形式集成导航业务算法模块,实现新算法模块的集成过程犹如即插即用的硬件设备一样灵活;面向互联网的开源项目组织结构创新性降低了在线协同开发的难度;最小系统到全面专业化系统的过渡开发模式为研究者提供了简单明确的开发路线。这一整套架构设计与开发技术为卫星导航仿真软件系统的研发提供了有力的技术支持与参考。
附图说明
图1是本发明在应用之后形成的卫星导航仿真系统的框架原理示意图。
图2是本发明在具体应用实例中算法模型动态组件化示意图。
图3是本发明在具体应用实例中第三方应用程序插件技术示意图。
图4是本发明在具体应用实例中增量螺旋式开发示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图1所示,本发明的卫星导航系统级开源仿真系统的建立方法,其步骤为:
s1:基于开源的目的,结合卫星导航系统的特性以及现有架构技术特点,确定“内核+总线接口+扩展组件”的体系架构设计思想:
根据卫星导航系统级开源软件体系架构的设计思想,此体系架构一定是易于开源开放,能够在开源平台上实现多人在线开发与测试的目的。为此体系架构的设计遵循开放封闭原则,对外开放扩展组件开发集成接口,对内实现核心部分的封装。内核即为高度封装部分,总线体现为对外开放的接口,扩展组件是根据接口开发的类似于可热拔插硬件的软件程序,此体系架构灵活多变,具有很强的自主开发特性与开源特性。为此,系统高内聚低耦合,系统结构非常清晰,各模块责任相当明确,任务处理相对独立,具有很强的开放式特点。
s2:根据高度集成封装的思想设计内核的结构;对架构的关键部分进行深度集成封装,形成内核部分,内核不对外公开,只公开部分应用接口,对系统的安全性和稳定有很强的保证。
s3:梳理卫星导航仿真系统组成结构和相关功能,建立矩阵式卫星导航仿真模型体系;
s4:根据仿真模型需要实现的功能要求,开发算法模型组件,并动态集成到仿真模型中;
s5:根据系统的扩展性,开发通用的第三方应用程序插件接口模型,并把第三方应用程序插件的调用逻辑集成到业务逻辑中,实现即插即用;
s6:根据卫星导航系统仿真测试与评估的要求,开发表现层内容。
在具体应用实例中,上述步骤s2的详细流程为:首先把内核分为仿真模型与业务逻辑,又把业务逻辑分为运算逻辑、控制逻辑、输入输出逻辑三部分,仿真模型用于建立运算逻辑中仿真场景,控制逻辑管理控制仿真场景的仿真,并输出数据到测试评估模块与自验证模块,根据用户需求输入输出模块实现外部数据导入到仿真场景,内部数据按照选定的格式输出。
如图2所示,在具体应用实例中,上述步骤s3的详细流程为:
s301:纵向分层;卫星导航仿真系统系统包括四个段,空间段、环境段、地面控制段、用户段,这四个段共同组成一个卫星导航仿真系统的场景,而每个段又由具体的子级对象组成;再对子级对象进行分层;具体层次划分按照各个对象的实际构成以及系统仿真需求而定。
s302:横向分层;针对每个段及其子级对象,根据其功能列出各模块组成;列出实现过程中需要人机交互的数据。此举降低了系统架构与功能模块之间的耦合度,同时使代码的具体实现过程更清晰、更有层次感。
如图3所示,在具体应用实例中,上述步骤s4的详细流程为:
s401:在上述矩阵式仿真模型体系结构的基础上,在所述框架中对卫星导航系统级仿真中涉及的所有算法进行接口定义,并公开算法组件接口,由此,可以支持多方同时对各个算法进行开发实现,提高了软件的开放性;
s402:根据框架公布的算法组件接口、算法功能以及对应的数学模型进行算法开发,开发完成后形成算法组件,算法组件之间相互独立,降低了耦合度,同时为各组件的更新、优化创造了条件;
s403:把测试通过的算法组件动态集成至架构的扩展组件层,这些算法组件中的算法会通过架构的总线接口层,最终被内核层调用,实现软件的一部分功能;动态集成技术使得算法组件的加载、更新等行为更加灵活。
如图4所示,在具体应用实例中,上述步骤s5的详细流程为:
s501:本发明架构的总线层对系统的运行控制接口、菜单栏数据接口、输入输出接口、工具栏接口、运行时接口、可视主窗接口等接口进行公开;
s502:根据框架公开的接口模型以及第三方应用程序公开的函数接口,通过调用第三方应用程序的函数完成特定的功能,在插件中实现卫星导航系统级仿真软件架构的公开接口,形成第三方应用程序插件;这样既可以利用插件实现功能,又节省了软件开发的时间;
s503:插件开发并测试完成后,集成到本发明架构的扩展组件层,该插件通过架构的总线接口层,最终被内核层调用,实现对插件的利用与控制,做到即插即用。在不需要用到该插件功能时,可卸载插件,不影响整个架构的运行,最大程度上保证了架构的可扩展性,并降低了与其它软件的耦合度。
在步骤s6中,采用自定义表现层技术,首先确定要实现哪类数据的可视化设计,设计视图,然后利用数据绑定技术建立视图控件与模型数据的联系,实现界面的自定义开发。也就是说,采用mvvm技术建立视图与业务逻辑的联系,通过数据绑定实现视图中的控件属性与模型数据的传递,通过命令绑定实现用户对控件的操作事件传递到视图模型方法的执行上;
进一步,采用卫星导航仿真自动化调度规划机制,它是通过界面的部分手动操作配置后,根据系统设置的内部规则,安全有序的执行系统的管理控制任务,对要执行的事件与任务均按照优先级别从高到低依次执行,同级别将按照事件队列规则,先进先出执行,并对系统的突发事件进行中断处理。最终保证卫星导航仿真测试与评估任务的有效进行。上述方法具有仿真运行控制、仿真与测试任务管理、事件队列处理、事件优先级管理等功能。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。