发明内容
本发明提供一种MATLAB应用系统与STK应用系统接口适配器和适配方法,实现在MATLAB/STK环境下,完整、连续显示、测试、多种航天器、多种运行场景下系统性能。
为了实现上述发明目的,本发明采取的技术方案如下:
一种MATLAB应用系统与STK应用系统接口适配器,包括:进程控制模块、文件读取模块、数据存储模块、正向发送数据预处理模块、返向控制数据处理模块和数据发送/接收模块;
所述文件读取模块,分别与所述进程控制模块、所述数据存储模块和外设的航天应用系统相连,设置为根据所述进程控制模块的指示,读取所述航天应用系统发往卫星工具包STK应用系统的STK文件中的航天器轨道位置信息;并将所述航天器轨道位置信息转换为符合STK要求的格式,传输至所述数据存储模块;
所述数据存储模块,分别与所述进程控制模块、所述文件读取模块和正向发送数据预处理模块相连,设置为存储所述文件读取模块发送的航天器轨道位置信息和所述进程控制模块的控制信息;
所述正向发送数据预处理模块,分别与所述数据存储模块、进程控制模块和数据发送/接收模块相连,设置为根据所述进程控制模块的指示,从所述数据存储模块提取所述航天器轨道位置信息,并且根据所述STK应用系统的显示命令的数据格式要求,将所述航天器轨道位置信息转换为相应的数据格式,发送至所述数据发送/接收模块;
所述数据发送/接收模块,分别与正向发送数据预处理模块、返向控制数据处理模块和进程控制模块相连,并且通过MATLAB应用系统的Cannact命令连接MATLAB应用系统与STK应用系统,设置为根据所述进程控制模块的指示,按照STK应用系统的命令格式要求向所述STK应用系统发送所述航天器轨道位置信息;还设置为接收所述STK应用系统在处理所述航天器轨道位置信息后,向MATLAB应用系统返回的告知数据,并将所述告知数据发送至所述返向控制数据处理模块,所述告知数据包括连接次数参数;
所述返向控制数据处理模块,分别与数据发送/接收模块和进程控制模块相连,设置为判断所述连接次数参数是否超过预设值,并将判断结果反馈至进程控制模块;
所述进程控制模块,分别与文件读取模块、数据存储模块、正向发送数据预处理模块、返向控制数据处理模块和数据发送/接收模块相连,设置为向文件读取模块、数据存储模块、正向发送数据预处理模块、返向控制数据处理模块和数据发送/接收模块发送指示;还设置为根据所述判断结果确定是否向所述STK应用系统发送航天器轨道位置信息。
优选地,所述数据存储模块包括:数据判断和控制处理单元、数据流存储处理单元和非数据流存储处理单元;
所述数据判断和控制处理单元;设置为判断接收到的所述航天器轨道位置信息是否为流数据;当接收到的所述航天器轨道位置信息是流数据,触发所述数据流存储处理单元;当接收到的所述航天器轨道位置信息不是流数据,触发所述非数据流存储处理单元;
数据流存储处理单元,设置为根据所述数据判断和控制处理单元的触发,将所述航天器轨道位置信息存储在流数据存储空间;
非数据流存储处理单元,设置为根据所述数据判断和控制处理单元的触发,将所述航天器轨道位置信息存储在非流数据存储空间。
优选地,所述进程控制模块根据所述判断结果确定是否向所述STK应用系统发送航天器轨道位置信息包括:
当所述连接次数参数小于或者等于预设值,控制所述文件读取模块读取航天应用系统发往STK应用系统的STK文件中的航天器轨道位置信息;
当所述连接次数参数大于预设值,控制所述文件读取模块停止读取航天应用系统发往STK应用系统的STK文件中的航天器轨道位置信息。
优选地,所述预设值为3。
优选地,所述航天器轨道位置信息包括以下至少之一:航天器经度、纬度、高程、发射时间、发射轨道、入轨卫星的轨道根数。
优选地,所述正向发送数据预处理模块将所述航天器轨道位置信息转换为相应的数据格式之后还包括:
对转换格式后的所述航天器轨道位置信息按MATLAB应用系统和/或STK应用系统要求的数据排列顺序进行排列。
为解决上述技术问题,本发明还提供一种MATLAB应用系统与STK应用系统接口适配方法,包括:
读取航天应用系统发往卫星工具包STK应用系统的STK文件中的航天器轨道位置信息;
将所述航天器轨道位置信息转换为符合STK要求的格式,存储所述航天器轨道位置信息和控制信息;
根据所述控制信息的指示,提取所述航天器轨道位置信息,并且根据所述STK应用系统的显示命令的数据格式要求,将所述航天器轨道位置信息转换为相应的数据格式;
根据所述控制信息的指示,按照STK应用系统的命令格式要求向所述STK应用系统发送所述航天器轨道位置信息;
接收所述STK应用系统在处理所述航天器轨道位置信息后,向MATLAB应用系统返回的告知数据,所述告知数据包括连接次数参数;
判断所述连接次数参数是否超过预设值,并反馈判断结果;
根据所述判断结果确定是否向所述STK应用系统发送航天器轨道位置信息。
优选地,存储所述航天器轨道位置信息包括:
判断接收到的所述航天器轨道位置信息是否为流数据;当接收到的所述航天器轨道位置信息是流数据,将所述航天器轨道位置信息存储在流数据存储空间;当接收到的所述航天器轨道位置信息不是流数据,将所述航天器轨道位置信息存储在非流数据存储空间。
优选地,根据所述判断结果确定是否向所述STK应用系统发送航天器轨道位置信息,包括:
当所述连接次数参数小于或者等于预设值,读取航天应用系统发往STK应用系统的STK文件中的航天器轨道位置信息;
当所述连接次数参数大于预设值,停止读取航天应用系统发往STK应用系统的STK文件中的航天器轨道位置信息。
优选地,将所述航天器轨道位置信息转换为相应的数据格式之后还包括:
对转换格式后的所述航天器轨道位置信息按MATLAB应用系统和/或STK应用系统要求的数据排列顺序进行排列。
本发明和现有技术相比,具有如下有益效果:
本发明的技术方案,在无法修改MATLAB应用系统Cannact命令中的启动次数属性缺省值的情况下,构建使用MATLAB应用系统编辑的航天设计系统通过Cannact命令多次启动STK系统的方式,以实现在MATLAB/STK相同环境下,完整、连续显示、测试、多种航天器、多种运行场景下系统性能。具备可在MATLAB编辑的系统程序的任何一个函数或任何一个函数的子程序的任意部位被MATLAB调用的功能,不再受MATLAB的Cannact命令打开属性的次数的限制;此外,上述MATLAB应用系统与STK应用系统接口适配器存储了系统仿真、显示信息和STK返回信息,能够实现不同种类的仿真、显示数据使用本发明提供的适配器形成符合STK规范的信息格式,使得仿真、显示得到的图形、文字、数据结果更加准确、性能更加稳定并实现数据的快速查询。
具体实施方式
为使本发明的发明目的、技术方案和有益效果更加清楚明了,下面结合附图对本发明的实施例进行说明,需要说明的是,在不冲突的情况下,本申请中的实施例和实施例中的特征可以相互任意组合。
如图1所示,本发明实施例提供一种MATLAB应用系统与STK应用系统接口适配器,包括:进程控制模块、文件读取模块、数据存储模块、正向发送数据预处理模块、返向控制数据处理模块和数据发送/接收模块;
所述文件读取模块,分别与所述进程控制模块、所述数据存储模块和外设的航天应用系统相连,设置为根据所述进程控制模块的指示,读取所述航天应用系统发往卫星工具包STK应用系统的STK文件中的航天器轨道位置信息;并将所述航天器轨道位置信息转换为符合STK要求的格式,传输至所述数据存储模块;
所述数据存储模块,分别与所述进程控制模块、所述文件读取模块和正向发送数据预处理模块相连,设置为存储所述文件读取模块发送的航天器轨道位置信息和所述进程控制模块的控制信息;
所述正向发送数据预处理模块,分别与所述数据存储模块、进程控制模块和数据发送/接收模块相连,设置为根据所述进程控制模块的指示,从所述数据存储模块提取所述航天器轨道位置信息,并且根据所述STK应用系统的显示命令的数据格式要求,将所述航天器轨道位置信息转换为相应的数据格式,发送至所述数据发送/接收模块;
所述数据发送/接收模块,分别与正向发送数据预处理模块、返向控制数据处理模块和进程控制模块相连,并且通过MATLAB应用系统的Cannact命令连接MATLAB应用系统与STK应用系统,设置为根据所述进程控制模块的指示,按照STK应用系统的命令格式要求向所述STK应用系统发送所述航天器轨道位置信息;还设置为接收所述STK应用系统在处理所述航天器轨道位置信息后,向MATLAB应用系统返回的告知数据,并将所述告知数据发送至所述返向控制数据处理模块,所述告知数据包括连接次数参数;
所述返向控制数据处理模块,分别与数据发送/接收模块和进程控制模块相连,设置为判断所述连接次数参数是否超过预设值,并将判断结果反馈至进程控制模块;
所述进程控制模块,分别与文件读取模块、数据存储模块、正向发送数据预处理模块、返向控制数据处理模块和数据发送/接收模块相连,设置为向文件读取模块、数据存储模块、正向发送数据预处理模块、返向控制数据处理模块和数据发送/接收模块发送指示;还设置为根据所述判断结果确定是否向所述STK应用系统发送航天器轨道位置信息。
所述数据存储模块包括:数据判断和控制处理单元、数据流存储处理单元和非数据流存储处理单元;
所述数据判断和控制处理单元;设置为判断接收到的所述航天器轨道位置信息是否为流数据;当接收到的所述航天器轨道位置信息是流数据,触发所述数据流存储处理单元;当接收到的所述航天器轨道位置信息不是流数据,触发所述非数据流存储处理单元;
数据流存储处理单元,设置为根据所述数据判断和控制处理单元的触发,将所述航天器轨道位置信息存储在流数据存储空间;
非数据流存储处理单元,设置为根据所述数据判断和控制处理单元的触发,将所述航天器轨道位置信息存储在非流数据存储空间。
所述进程控制模块根据所述判断结果确定是否向所述STK应用系统发送航天器轨道位置信息包括:
当所述连接次数参数小于或者等于预设值,控制所述文件读取模块读取航天应用系统发往STK应用系统的STK文件中的航天器轨道位置信息;
当所述连接次数参数大于预设值,控制所述文件读取模块停止读取航天应用系统发往STK应用系统的STK文件中的航天器轨道位置信息。
所述预设值为3。
如果返向控制数据处理模块得到连接次数参数的数值小于或者等于3的判断结果,进程控制模块判断为STK接收MATLAB的数据正确,即MATLAB应用系统和STK应用系统连接正常,控制继续向STK应用系统传送下一组航天器轨道位置信息;如果返向控制数据处理模块得到连接次数参数的数值大于3,则表示MATLAB应用系统或者STK应用系统连接异常,STK应用系统无法继续接收MATLAB应用系统传送的数据,不能继续向STK应用系统传送数据,进程控制模块控制程序进程返回到程序的起点“开始”位置等待下一次数据事件启动。
所述航天器轨道位置信息包括以下至少之一:航天器经度、纬度、高程、发射时间、发射轨道、入轨卫星的轨道根数。
所述正向发送数据预处理模块将所述航天器轨道位置信息转换为相应的数据格式之后还包括:
对转换格式后的所述航天器轨道位置信息按MATLAB应用系统和/或STK应用系统要求的数据排列顺序进行排列。
由于本发明实施例的适配器从外部的航天应用系统发往卫星工具包STK应用系统的STK文件中读取的航天器轨道位置信息,其数据格式以及数据排列顺序与调用的MATLAB应用系统和/或STK应用系统命令所要求的数据格式和数据排列顺序可能是不一致的,需要将所述航天器轨道位置信息转换为符合MATLAB应用系统和STK应用系统要求的格式,并按MATLAB应用系统和/或STK应用系统要求的数据排列顺序进行排列。
如图2所示,本发明实施例还提供一种MATLAB应用系统与STK应用系统接口适配方法,包括:
读取航天应用系统发往卫星工具包STK应用系统的STK文件中的航天器轨道位置信息;
将所述航天器轨道位置信息转换为符合STK要求的格式,存储所述航天器轨道位置信息和控制信息;
根据所述控制信息的指示,提取所述航天器轨道位置信息,并且根据所述STK应用系统的显示命令的数据格式要求,将所述航天器轨道位置信息转换为相应的数据格式;
根据所述控制信息的指示,按照STK应用系统的命令格式要求向所述STK应用系统发送所述航天器轨道位置信息;
接收所述STK应用系统在处理所述航天器轨道位置信息后,向MATLAB应用系统返回的告知数据,所述告知数据包括连接次数参数;
判断所述连接次数参数是否超过预设值,并反馈判断结果;
根据所述判断结果确定是否向所述STK应用系统发送航天器轨道位置信息。
存储所述航天器轨道位置信息包括:
判断接收到的所述航天器轨道位置信息是否为流数据;当接收到的所述航天器轨道位置信息是流数据,将所述航天器轨道位置信息存储在流数据存储空间;当接收到的所述航天器轨道位置信息不是流数据,将所述航天器轨道位置信息存储在非流数据存储空间。
根据所述判断结果确定是否向所述STK应用系统发送航天器轨道位置信息,包括:
当所述连接次数参数小于或者等于预设值,读取航天应用系统发往STK应用系统的STK文件中的航天器轨道位置信息;
当所述连接次数参数大于预设值,停止读取航天应用系统发往STK应用系统的STK文件中的航天器轨道位置信息。
将所述航天器轨道位置信息转换为相应的数据格式之后还包括:
对转换格式后的所述航天器轨道位置信息按MATLAB应用系统和/或STK应用系统要求的数据排列顺序进行排列。
实施例1
本实施例结合图1,说明接口适配器的组成:
该接口适配器包括:进程控制模块、文件读取模块、数据存储模块、正向发送数据预处理模块、返向控制数据处理模块和数据发送/接收模块。
所述进程控制模块,按照事先确定的算法用于控制整个接口适配器的程序进程;具体地,判断航天应用系统发送数据的类型,实现数据流控制、顺序控制、等距时间节点控制;
所述文件读取模块,用于按进程控制模块要求从外部输入存储的准备发送到STK应用系统的文件中读取有关航天器经度、纬度、高程等数据;并将经过本模块转换后的数据以及接收的STK应用系统返向数据存入相应的文件中;
所述数据存储模块,用于实时暂时存储来自航天应用系统需要STK应用系统处理、仿真、显示的信息以及存储进程控制模块的控制信息,本发明实施例中,所述数据存储模块判断接收到的信息是否为流数据、或为非流数据,根据数据类型选择存储空间。
所述正向发送数据预处理模块,用于把航天应用系统需要送到STK应用系统进行仿真、显示的发射时间、发射轨道、卫星轨道根数等数据,根据STK应用系统的显示命令的数据格式要求,转换变更为相应的数据格式,为发送到STK应用系统做准备;
例如,在程序中选择使用了MATLAB应用系统的stkSetPropSGP4(…)命令,该命令是按照SGP4轨道模型文件格式向STK应用系统发送仿真、显示数据。SGP4/SDP4是由kenCranford在1970年开发的简化的用于近地卫星轨道计算的模型。
所述数据发送/接收模块,用于通过MATLAB应用系统的Cannact命令正确连接MATLAB应用系统与STK应用系统,并按STK应用系统命令的格式要求向STK应用系统发送数据;该模块还负责接收当STK应用系统接收数据正常后,向MATLAB应用系统发送的一串告知数据;
例如,在程序中使用了stkConnect命令连接MATLAB应用系统与STK应用系统,stkConnect命令用法的格式是:
sysc=connect(conid,sysa,sysb,...,inputs,outputs);
其中,conid表示连接次数;
sysa,sysb表示欲连接的系统a和系统b;
...,inputs,outputs表示输入、输出参数。
所述返向控制数据处理模块,用于判断有无返向控制数据、该返向控制数据的正确性,以及把判断结果送往进程控制模块,进一步协调本系统的工作。
返向控制数据处理模块,用于判读MATLAB应用系统的Cannact命令连接MATLAB应用系统与STK应用系统的连接次数参数conid的数值,如果conid数值小于或者等于3,则反馈进程控制系统可以继续向STK应用系统发送数据;反之则停止发送。
由于MATLAB应用系统组成为分布式函数的缘故,该模块对conid的数值进行判断认为是正常的后,通过“全局变量”或句柄函数变量形式把结果传送给适配器及其它函数。
实施例2
本实施例结合图1,说明接口适配器的信息流:
图1中,信息流①表示进程控制模块对文件读取模块、数据存储模块、正向发送数据预处理模块、数据发送/接收模块、返向控制数据处理模块的运行进行协调控制。
图1中,信息流②表示文件读取模块从系统外部输入的准备发送到STK应用系统的文件中读取有关航天器经度、纬度、高程等发射轨道数据以及卫星轨道根数数据;
图1中,信息流③表示将读取的数据存储在暂存器;
图1中,信息流④表示把航天应用系统需要送到STK应用系统进行仿真、显示的发射时间、发射轨道、卫星轨道根数等数据,根据STK应用系统的显示命令的数据格式要求,转换变更为相应的数据格式,为发送到STK应用系统做准备;
图1中,信息流⑤表示把已经检验或经过转换后的符合STK应用系统的显示命令的数据格式的数据送到数据发送/接收模块;
图1中,信息流⑥表示用于通过MATLAB应用系统的Cannact命令正确连接MATLAB应用系统与STK应用系统,并按STK应用系统命令的格式要求向STK应用系统发送数据;信息流⑥表示当STK应用系统接收数据正常后,向MATLAB应用系统发送的告知数据,包括表示连接次数参数conid;
图1中,信息流⑦表示把接收的告知数据,表示连接次数的参数conid送到返向控制数据处理模块,用于判断有无返向控制数据、该返向控制数据的正确性,以及把判断结果送往进程控制模块,进一步协调本系统的工作。
图1中,信息流⑧表示将接收的STK应用系统返向数据送到暂存器,备本实施例系统再次调用;
上述MATLAB应用系统与STK应用系统接口适配器可以独立构建在航天应用系统之外,可以用MATLAB应用系统将该适配器编译成了后缀为.dll的动态链接数据库文件,可以在MATLAB应用系统的任何一个函数或任何一个函数及其子程序的任意部位被MATLAB应用系统多次调用,根据返向数据处理模块conid的数值,决定适配器的工作,不再受MATLAB应用系统的Cannact命令打开属性的次数的限制;此外,上述MATLAB应用系统与STK应用系统接口适配器存储了仿真显示信息和STK返回信息,能够实现不同种类的仿真显示数据使用相同的形成符合STK应用系统规范的信息格式,使得仿真显示得到的图形、文字、数据结果更加准确、性能更加稳定并实现数据的快速查询。
实施例3
结合具体的实施例对图3所示的方法进行详细说明。
本实施例程序一旦被调用,就开始判断由使用MATLAB应用系统编辑的航天应用系统是否有送往STK应用系统的数据,如果暂时没有发送数据,系统处于等待状态。
如果MATLAB应用系统有需要发送到STK应用系统的数据,即将数据送往缓冲器存储同时判断MATLAB应用系统与STK应用系统是否首次连接,如果是首次连接,执行connect命令,关闭旧场景(如果旧场景存在,否则不执行任何操作),打开创建新场景。
本实施例判断是否为流数据,如果是流数据,则按STK应用系统要求格式发送;否则,判断是否顺序数据,如果是顺序数据,则按STK应用系统要求格式发送;否则,判断是否等时间间隔数据,如果是等时间间隔数据,则按STK应用系统要求格式发送;否则,认为此数据无效,不符合传送规范,本实施例回到开始等待位置。
需要向STK应用系统发送的数据,要经过数据格式转换器检查,如果不符合格式要求,则进行格式转换,经过转换后的符合STK应用系统格式要求的数据进入数据发送暂存器等待发送。
来自STK应用系统的“连接次数”的参数conid被送往连接次数计数器进行连接次数判读,如果发现连接次数大于3,本实施例将回到开始等待位置;否则,数据按MATLAB应用系统要求向STK应用系统发送。同时将结果转换成全局变量或句柄函数变量形式送往系统供其它即将调用本实施例的应用程序使用。
虽然本发明所揭示的实施方式如上,但其内容只是为了便于理解本发明的技术方案而采用的实施方式,并非用于限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭示的核心技术方案的前提下,可以在实施的形式和细节上做任何修改与变化,但本发明所限定的保护范围,仍须以所附的权利要求书限定的范围为准。