APP下载

基于Agent的导航星座自主运行仿真建模方法

2016-06-22冷如松闻德保黄文德

全球定位系统 2016年2期

冷如松,闻德保,黄文德

(1.长沙理工大学 交通运输工程学院,长沙 410010;2.国防科技大学机电工程与自动化学院,长沙 410073;3.中国科学院上海天文台,上海 200030)

基于Agent的导航星座自主运行仿真建模方法

冷如松1,2,闻德保1,黄文德2,3

(1.长沙理工大学 交通运输工程学院,长沙 410010;2.国防科技大学机电工程与自动化学院,长沙 410073;3.中国科学院上海天文台,上海 200030)

摘要:针对传统建模方法在满足自主运行中实体之间庞大的通信与测量需求方面存在的不足,本文基于Agent仿真建模理论,研究建立满足导航星座自主运行仿真建模要求的方法。首先提出自主运行系统仿真建模的Agent体系结构,然后利用Agent具有推理和规划能力、能快速处理复杂问题的优点,设计导航星座中各级实体的Agent结构与功能组成,最后以协议栈Agent建模的方式建立整个自主运行系统的通信与测量机制。仿真结果表明,该体系能处理自主运行系统中诸多实体之间的通信与测量问题,对导航星座自主运行系统的开发具有一定的参考价值。

关键词:导航星座;自主运行代理;仿真建模;协议栈

0引言

在自主运行模式下,卫星导航系统空间段(导航星座)通过星间双向测量与通信,可以进行自主星历更新与时间同步,在没有地面支持的情况下仍可为用户提供一定精度的导航定位服务。相对于传统由地面控制与管理的运行方式,自主运行模式可以减少地面站的数量,降低系统长期维持费用,增强系统生存能力、改善系统性能和提高导航定位精度等[1]。因此,自主运行相关技术的研究在国内外得到了广泛的关注[2-4]。但是导航星座自主运行系统是一个复杂系统,如何验证导航星座自主运行关键技术的可行性、提前识别和控制系统中的不确定因素,是导航星座自主运行急需解决的问题之一。本文提出利用仿真建模手段,对导航星座自主运行的运行策略、星座规模等进行仿真,其目的是以经济实用的方法实现导航星座自主运行关键技术的地面试验验证。

面向对象的仿真建模方法以及分布式实现方式是处理仿真建模问题的常用手段。面向对象的建模方法可以为系统与用户之间提供更直观的交互方式,提高仿真系统的可维护性和可拓展性;分布式的实现方式则提高了建模方法数值运算效率。贺勇军等基于开发了“多卫星系统综合效能仿真分析软件”[5],高黎等对分布式卫星系统自主运行技术进行了研究[6],胡圣波等研究了基于模型的航天器自主运行执行体[7],但对于自主运行系统中最体现自主性和智能性的规划和调度功能[8]而言,以上方法已经不能满足自主运行系统对自主性、智能性的要求,不能很好地解决自主运行中的自主规划调度以及系统中卫星、地面站、接收机等数目众多的实体之间的测量、通信等问题。基于Agent的建模与仿真方法(ABMS)是近期涌现出的最有潜力的仿真建模方法之一,它是一种针对自治、互动Agent组成的系统的建模方法[9-11]。ABMS建立的模型融合了面向对象建模的优点使Agent具有对象的优点,同时有Agent的系统还具有更好的容错、低耗费、计算高效等特点。ABMS为自主运行系统的建模提供了一条新的思路。

本文基于Agent建模与仿真的理论框架下探讨了面向Agent的导航星座自主运行的仿真方法,给出了基于Agent思想的简易建模过程和简单运行流程,最后以24/3/1的Walk星座的仿真为例,说明此体系研究自主运行的方案是可行的。

1自主运行系统仿真建模的Agent体系结构

确定体系结构是建立仿真系统的基础,由于自主运行系统是庞大且复杂的系统,本文将自主运行系统的体系结构分为层次关系、模块划分两个方面来进行描述,其中自主运行系统的层次关系主要通过系统中各实体的所属职能进行划分,在此基础上根据软件设计目的以及仿真实验特点进行模块划分。

1.1自主运行层次划分

按照自主运行系统的不同的职能要求,自主运行系统框架可以大致分为三个层次:规划层、执行层和应用层,自主运行系统应该遵循如图1所示的基本框架。

图1 自主运行系统层次划分

1) 规划层

规划层的主要职能是导航任务管理和形成星座的整体规划。

星座整体规划:星座整体规划是规划层根据实验配置、星座状态、导航任务以及本次实验的约束条件来构建相应时空体系、生成实现性能指标要求的规划表、路由表等规划的过程。

导航任务管理:导航任务是由实验任务转换而来,经过任务分解、分析任务执行的优先级生成指令并分配给执行层等一系列流程就是系统的任务管理功能。

2) 执行层

执行层主要职能是维持星座整体正常运转,主要包括时间管理、通信服务、故障检测、任务执行、数据采集和仿真运行控制等功能。

时间管理:负责保证自主运行系统以适当的方式进行时间推进。

通信服务:提供自主运行系统中各实体间消息的收发、重传、封装、解释等服务。

卫星故障检测:提供自主运行系统中卫星或地面站等设备的健康状态指标。

任务执行:负责具体执行规划层分配的任务,①数据采集:收集用户感兴趣的仿真数据,并完成仿真数据的统计。②仿真运行控制:发送各种控制指令如开始、暂停等以控制自主运行系统的运行进程。

3) 支持层

支持层分为实验支持和模块支持两个部分,其中实验支持主要负责完成实验配置、监测试验过程以及评估实验结果;模块支持负责提供组成系统的基础模块以及这些基础模块所需要的如知识库、数据库、模型库、规则库之类的库。

1.2自主运行模块划分

自主运行仿真系统需要仿真各种不同星座、环境等配置来获得这些配置下运行策略的优劣对比,出于这个目的,系统除了应该遵循基本框架外还需要受到软件设计以及仿真实验要求提供的建模约束:

1) 系统应该通过简洁的方式实现系统与外界交互,因此需要能获取系统内所有实体信息并与外界交互的模块。

2) 系统需要配置不同的星座来试验某种运行策略在不同星座的运行效率,卫星是星座的基本组成单位,因此系统中应该具备代表实际物理环境中卫星的实体,以便管理任务进程。

3) 卫星需要根据给定的规划在适定时间完成相应的任务,因此要求卫星内部有时间模块等功能模块。

4) 系统与卫星之间、卫星与卫星之间、卫星中的模块与模块之间都需要实现信息交互,因此要求具有相应的信息传递通道。

基于以上建模约束,以自主运行系统的层次关系为基础可将自主运行系统的模块划分,如图2所示。图中的模块按照模块结构的复杂程度以及一定的从属关系划分,自上至下模块的复杂程度由高到低。星座Agent需要完成规划层、执行层和支持层的职能,它是整个系统中最复杂的模型,它主要负责总体协调管理星座的卫星,能够随时查看卫星级Agent、地面站和导航用户的运行情况,对自主运行任务进行分解发送给其他卫星并与外界进行交互。

图2 自主运行系统模块结构划分

卫星Agent是直接受星座级Agent管理的模块,主要完成执行层和支持层的职能,以卫星级Agent主要包含导航任务自主处理Agent、协议栈Agent、故障检测、星地导航、星地遥测、星间互传、时频控制等模块。导航用户是具有接受卫星下发的导航电文能力。地面站能够形成星座建链规划、对卫星星座发出遥控指令、接收卫星下发的导航信息和遥测信息并综合分析。

节点、链路等模块主要完成支持层的职能,节点是自主运行体系中除支持层外的模块最基本的组成单位,节点由地址分类器和端口分类器两部分构成。节点的地址分类器与链路连接,当数据通过节点时由地址分类器将其发送到相应的链路上去。端口分类器与其他部件连接,通过在节点基础上挂载其他部件的方式形成模块、卫星Agent等实体。节点之间通过链路来建立信息传递通道,链路提供传输时延、带宽、丢包率等接口供用户配置成不同链接方式。

2自主运行系统各层级Agent的建模方法

对于前文提到不同类型的Agent需要不同的建模方式以支持它实现设计目的,按照功能和结构复杂程度不同可以将模型分为星座级Agent模型、卫星级Agent模型、元素级Agent模型。

2.1星座级Agent建模方法

星座级Agent对应星座内某颗卫星,这颗卫星是整个星座的调度和信息中心,因此星座级Agent具有两个方面的属性,一方面作为星座级Agent,它具有单方面获取星座内其他所有Agent信息并监控其他Agent、具有接收并处理卫星级Agent反馈信息的能力,以及产生星座的全局规划的能力,它能通过传感器感知外界信息包括命令、任务等,星座运行状态可能因外界信息而改变,一旦状态改变则通过协议栈和链路通知其他Agent,更新的状态存储在状态池,并因之进行规划,最后做出决定并由效应器来执行。另一方面,星座级Agent本质上是星座内的一颗卫星,具备卫星级Agent的一切属性。

图3示出了星座级Agent的模型结构,具有监视器模块、自主规划模块、任务分解模块以及指令生成模块等卫星Agent不具备的模块。星座级Agent的六大部件包括传感器、执行器、状态池、知识库、自主规划以及决策器。其中星地遥测模块、星地导航模块、星间互传模块都包含接收信息和发送信息两个过程,因此既属于传感器也属于执行器。星座级Agent中使用协议栈Agent作为传输的核心,能够对星座整体进行信息收集、将星座级Agent生成的任务发送给各颗卫星。

图3 星座级Agent结构图

2.2卫星级Agent建模方法

卫星级Agent属于卫星星座中的普通个体,作为这个级别的Agent既要与星座级Agent交互,也要与其他卫星级Agent进行通信,卫星级Agent具有维持本星正常运作、能对地播发导航电文和遥测电文、进行星间测距并完成星间数据互传、根据星座级Agent分派的任务进行本地规划等能力。如图4所示,卫星级Agent由两个元素级Agent和时频控制模块、星间互传模块、星地导航模块、星地遥测模块以及故障检测模块等一系列模块组成。

图4 卫星级Agent结构图

导航任务自主处理模块是卫星级Agent中负责存储数据、简单数据处理以及根据接收到的任务完成本地规划的模块。卫星中的星间互传模块(星地导航模块、星地遥测模块)按照一定时间间隔向协议栈模块发送请求,协议栈模块通过向时频控制模块请求时间、向故障检测模块请求卫星健康状态、向导航任务自主处理Agent请求可见性、建链、路由、传输时延等信息,然后通过这些返回的信息进行综合判断,将所请求发送的信息组帧发送给星间互传模块和导航任务自主处理Agent(用于记录)并将通信所用的速率、传输时延、误码模型、通信协议设置到链路,最后星间互传模块通过链路将信息发往目标节点。

2.3元素级Agent建模方法

元素级Agent负责接收卫星级Agent分配的任务,执行并上传任务完成状况,元素级Agent主要分为导航任务自主处理Agent和协议栈Agent。前者主要用于处理跟导航业务相关的数据处理及存储,形成卫星本地任务规划;后者主要负责自发处理星地、星间信息组帧、解帧、发送、接收等一系列保证卫星星座正常通信的行为以及卫星级Agent内各组件及卫星级Agent之间信息交流。两者虽然功能各异但内部结构类似,下图为导航任务自主处理Agent结构以及信息处理流程。如图5所示,信息进入导航任务自主处理Agent后的处理流程如下:

图5 导航任务自主处理Agent结构

1) 导航任务自主处理Agent接收信息后发送到传感器中,传感器中通过任务类型识别模块将任务划分优先级并存入任务调度器模块中。

2) 任务调度器(先进先出)将堆顶的任务发送给处理器和知识库。

3) 知识库开辟存储空间存储进入的消息并将相关算法发送给处理器。

4) 处理器根据知识库提供的算法进行数据处理并将处理的结果发送给知识库和决策器。

5) 决策器收到处理器发送的消息后向知识库请求先验信息和可执行方案。

6) 知识库向决策器提供多种方案及相关的先验信息。

7) 决策器通过处理器处理后的信息和知识库中提交的先验信息作为约束条件进行计算,经过评估分析之后确定最终将执行的方案,并将方案发送至知识库

8) 决策器将方案发送给执行器,执行器对方案形成指令并进行分类,并将其发送至相应目标。

3基于协议栈Agent模型的自主运行系统工作流程

协议栈Agent作为卫星级Agent中的核心组件之一,主要负责信息的处理和中转。卫星级Agent的各组件之间的所有信息以及外部信息都通过协议栈Agent来传递。图6是导航星座自主运行系统的完成来自地面站的信息经过卫星中转最终抵达另一地面站的工作流程示意图。

图6 以卫星协议栈为核心的工作流程示意图

1) 自主运行系统根据仿真开始前设置的配置信息完成导航星座的生成以及获取仿真开始时刻、获取导航任务等。

2) 系统将生成的数据传递给星座级Agent完成星座级Agent的激活,星座级Agent内部的自主规划模块进行星座整体的规划和建链。

和我一起发蒙的一共有十一个人,有茄子,螃蟹,屎克郎,屁斑虫,雀尕儿,土豆等等,算是同班同学了。别看学校又破又小,可也有校霸班霸,这跟监狱里有狱霸一样,正常。那时,我们学校主要有两霸,一是螃蟹,二是屎克郎。螃蟹他爹是我们村支书,算是高干子弟,派头无形中就大,动不动就说要让他爹把谁捆起来戴高帽子游斗,我们没理由不怕他。屎克郎虽然不是高干子弟,也不造事欺负人,但有个叔叔在东北当着解放军,一人参军全家光荣了,我们不得不敬他。有了这两个因素,大家一般都围着他俩转,跟他俩玩。我也想围着他俩转跟他俩玩,可螃蟹不许,他说我是个野种,不配。

3) 星座级Agent将星座整体任务分解为单独卫星任务并发送给各颗卫星,同时星座中的卫星级卫星被激活。

4) 地面站向卫星发送信息并得到反馈,信息被星地遥测或星地导航模块所接收,转发给协议栈Agent,协议栈Agent获取卫星健康状态、当前时间后开始对信息进行解析,若信息的目的端是本星,则将信息发送给导航任务自主处理Agent处理并存储;若信息的目的端不是本星,则像导航任务处理Agent请求相关的建链路由策略,计算出接收信息的下一节点,协议栈Agent通过把信息编码为星间信息格式,等待星间互传模块发送给下一目的地。

5) 卫星将非本星的数据传递给下一卫星。卫星与卫星之间的通信服务分为完全可靠、高可靠和低可靠三种服务。图6中黑色虚线框内是通信采用完全可靠的连接服务时,需要进行三次握手建立连接的流程,第一次握手是源卫星发给目的卫星的SYN包,等待目的卫星进行确认。第二次握手是目的卫星收到SYN包进行确认后发送一个SYN+ACK包给源卫星,第三次握手是源卫星收到目的卫星发送回来的SYN+ACK包后,再向目的卫星发送确认包ACK。三次握手后卫星间进入“连接已建立”状态,然后可以开始传送数据。若传送数据时源卫星未收到目的卫星回传的ACK确认包,则在一定时间后重新发送数据。

6) 卫星将信息发送给目标地面站,并得到反馈。

4仿真及结果分析

本文基于以上研究仿真了24/3/1的Walk星座(星座包括24颗卫星, 均匀分布在3个轨道平面上,相邻轨道面间对应卫星之间的相位角系数为1),六个轨道面上的卫星编号分别为11-18,21-28,31-38.轨道高度为22 000 km,倾角为55°,采用的数据发送终端为北京站(约为北纬39.9°,东经116.4°)数据从北京站发送给当时境内距站最近的卫星,卫星判断数据不是发给本星,经过处理后发送给下一个节点,如此再三,直到接收终端纽约站(约为北纬40.9°,西经73.9°)接收到数据为止,仿真参数如表1所示。

表1 仿真参数表

仿真开始时卫星星下点轨迹和地面站的分布如图7所示

图7 仿真配置

图8是Walk星座配置采用不同传输协议进行600 s仿真时的平均吞吐量随时间变化的示意图。

图8 平均吞吐量随时间变化示意图

此时丢包率采用的是1%,采用的协议分别为Vegas、Reno、New Reno、Tahoe.除协议外其他部分均一致,如图所示,可以发现Tahoe协议在丢包率较低的时候比其他协议更快达到平均吞吐量的最大值,采用Vegas协议时吞吐量的平均值比其他协议更大,但是随着时间的行进使用New Reno协议时平均吞吐量更快趋于平稳。以多Agent构成的自主运行体系能对比不同策略下星座运行的效率,作为导航星座自主运行的策略选择的参考资料,根据不同的需求进行选择,对自主运行系统的开发有一定的参考价值。

5结束语

导航星座自主运行技术是卫星导航领域研究的前沿问题之一,本文通过Agent建模方法对自主运行系统的仿真建模做了一定的探索。基于多Agent的建模理念,本文提出了导航星座自主运行的体系架构和体系中各层级Agent的建模方法,给出了以导航星座协议栈Agent为核心的工作流程。仿真结果表明,由Agent构成的系统能够对存在大量实体之间通信与测量的自主运行系统进行仿真,还可以根据需求调整各种不同的策略进行实验。本文的研究结果对卫星导航系统自主运行相关的技术研究具有一定参考价值。

参考文献

[1] 陈忠贵.基于星间链路的导航卫星星座自主运行关键技术研究[D].长沙:国防科技大学,2012.

[2] 代树武,孙辉先.航天器自主运行技术的进展[J].宇航学报,2003(1):17-22.

[3] SCHETTER T, CAMPBELL M,SURKA D.Multiple Agent-based autonomy for satellite constellations[J].Agent Systems, Mobile Agents, and Applications,Lecture Notes in Computer Science 1882: 151-165.

[4] MARSHALL M M. Goals for airforce autonomous spacecraft [R].AD-A 1054881981.

[5] 贺勇军,戴金海,李连军多卫星系统综合建模与仿真环境的设计与实现[J].计算机仿真,2004,21(5):28-31.

[6] 高黎.分布式卫星系统自主运行体系结构模型研究[J].空间科学学报,2007 (3):239-244.

[7] 胡圣波,孟新,赵娜.基于模型的航天器自主运行智能执行体[J].中南大学学报,2007 38(S1):61-66.

[8] 吴大愚.航天器自主运行软件开发框架和自主规划调度的研究[D].长沙:国防科技大学,2007.

[9] JENNINGS N R. On agent-based software engineering[J].Artificial Intelligence,2000,117(2):277-296.

[10]MACAL C M.AGENT-based modeling and simulation: ABMS examples[C].//Proceedings of the 2008 Winter Simulation Conference,2008.

[11]CASTI J. Would-be worlds: How simulation is changing the world of science[M].New York: Wiley, 1997.

冷如松(1991-),男,硕士,主要从事卫星导航仿真系统仿真建模研究。

闻德保(1974-),男,教授,硕士生导师,主要研究领域为GNSS电离层、空间天气等。

黄文德(1981-),男,博士,讲师,主要从事航天器轨道动力学及卫星导航系统技术研究。

Agent-based Autonomy Modeling and Simulation for Navigation Satellite Constellations

LENG Rusong1,2,WEN Debao1,HUANG Wende2,3

(1.CollegeofMechatronicsEngineeringandAutomation,NationalUniversityofDefenseTechnology,Changsha410010,China;2.CollegeofCommunicationsandTransportationEngineering,ChangshaUniversityofScienceandTechnology,Changsha410073,China;3.ShanghaiAstronomicalObservatory,ChineseAcademyofScience,Shanghai200030,China)

Abstract: Aimed at deficiencies of traditional modeling and simulation method, which fails to meet the requirements of communication and measurement among a number of entities for autonomy of navigation satellite systems, this paper investigates the approach to satisfy these requirements based on the theory of agent.First, modeling and simulation agent architecture of the autonomy system was proposed. Then structures and functions of entities of each level were designed. Finally, an agent of protocol stack was constructed to create the communication and measurement mechanism. The simulation results showed that the mechanism can deal with the problem of communication and measurement in the autonomy system, and it is valuable for the development autonomy of navigation satellite constellations.

Keywords:Navigation constellation; autonomy agent; modeling and simulation; protocol stack

doi:10.13442/j.gnss.1008-9268.2016.02.001

收稿日期:2015-11-13

中图分类号:P228.4

文献标志码:A

文章编号:1008-9268(2016)02-0001-06

作者简介

资助项目: 中国博士后基金项目(编号:2015M580365)

联系人: 冷如松 E-mail:2563410101@163.com