第 37 卷 第 19 期
Vol.37 No.19
····开发研究与设计技术
开发研究与设计技术····
开发研究与设计技术
开发研究与设计技术
计 算 机 工 程
Computer Engineering
文章编号::::1000————3428(2011)19————0261————03
文章编号
文章编号文章编号
2011 年 10 月
October 2011
文献标识码
文献标识码::::A
文献标识码
文献标识码
中图分类号
中图分类号::::TP391
中图分类号
中图分类号
基于基于基于基于 STKX 组件的组件的组件的组件的视景视景视景视景仿真仿真仿真仿真关键技术
关键技术
关键技术关键技术
陈陈陈陈 波波波波 1,2,,,,张张张张 刚刚刚刚 1,2,,,,王王王王 娜娜娜娜 1,2,,,,张张张张 洋洋洋洋 1,2
(1. 辽宁省通信网络与信息处理重点实验室,辽宁 大连 116622;
2. 大连大学信息工程学院,辽宁 大连 116622)
摘摘摘摘 要要要要::::在不启动卫星工具包(STK)的基础上,将 STK 应用于分布式视景仿真,通过插入 STKX 组件和调用组件应用程序编程接口函数完
成 STK 的功能调用,解决 STKX 组件与运行支撑环境的集成问题。采用进程通信中的共享内存和事件技术,以 S 函数模块为中间件,实
现 Simulink 模型数据的实时获取,获得数值仿真结果。基于 STKX 的导弹攻防视景仿真实验表明,该方法无需启动 STK 即可应用于分布
式视景仿真。
关键词关键词关键词关键词::::卫星工具包;高层体系结构;STKX 组件;视景仿真
Key Visualization Simulation Technology
Based on STKX Component
CHEN Bo1,2, ZHANG Gang1,2, WANG Na1,2, ZHANG Yang1,2
(1. Key Laboratory of Communications Network and Information Processing of Liaoning Province, Dalian 116622, China;
2. College of Information Engineering, Dalian University, Dalian 116622, China)
【【【【Abstract】】】】The Satellite Toolkit(STK) is applied to distributed visualization simulation based on not starting the STK, the method of inserting the
STKX component and Application Programming Interface(API) connection functions is applied, it completes the transfer functions of STK and the
integration of STKX with Run Time Infrastructure(RTI). It uses the method of shared memory and event to solve the difficulty of getting the real
time Simulink data as a S-function in-between module, thus real time data of data simulation is got. It establishes one missile application example of
attack and defense based on STKX. The application example shows that the way to apply the STKX components to STK distributed visualization
simulation is completely feasible.
【【【【Key words】】】】Satellite Toolkit(STK); High Level Architecture(HLA); STKX component; visualization simulation
DOI: 10.3969/j.issn.1000-3428.2011.19.086
1 概述概述概述概述
卫星工具包(Satellite Toolkit, STK)是由美国 AGI 公司研
制开发的一款先进的商品化系统分析软件[1],在航天领域处
于绝对领先的地位。它支持航天任务周期的全过程,包括概
念、需求、设计、制造、测试、发射、运行和应用等。STK
具有强大的计算能力、逼真的图形显示、可靠的数据报告,
利用它可以快速方便地分析复杂任务,确定最佳解决方案。
随着软件的不断升级,STK 已逐渐扩展成为分析和执行陆、
海、空、天、电(磁)任务的专业仿真平台[1]。
随着航天仿真规模的不断扩大和仿真力度的不断加深,
仅利用单台计算机进行仿真往往负载过重,因此,分布式视
景仿真得到了广泛的应用[2]。实现分布式视景仿真除了要选
择适当的视景仿真工具以外,重要的是实现 STK 与运行支撑
环境(RTI)的无缝连接和视景实时数据的获取。本文选取 STK
为视景仿真工具,与目前流行的 Vega[3]、OpenGL 相比,减
少了在可视化观察控制、代码编制与调试等方面的大量工作;
在视景实时数据的获取问题上采用中间件技术 [4];传统的
STK 与 RTI 连 接 的 方 法是建 立 STK-RTI 中 间 件 [4], 以
STK/Connect 模块完成 RTI 与 STK 的通信,特点是必须启动
STK。
本文提出一种新的解决方法:以 STKX 组件的方式将
STK 与 RTI 有机结合。对比传统方法,它不需要在启动 STK
的前提下才能完成 STK 的功能调用,STKX 组件技术允许开
发者在其应用程序中无缝集成空间仿真环境与数据分析引
擎,为开发功能强大、控制精确的空间仿真应用程序提供了
技术支持[5]。
2 STKX 组件及其分布式视景仿真模式
组件及其分布式视景仿真模式
组件及其分布式视景仿真模式
组件及其分布式视景仿真模式
2.1 STKX 组件组件组件组件
STKX 组件是 STK 中提供的一套 COM 组件,以 ActiveX
控件形式存在,它允许开发者将 STK 中的二维、三维可视化
界面和各种数据分析能力无缝集成到应用程序中,STKX 组
件对象模型主要包含 4 种控件[1]:
(1)AGI Globe Control
AGI Globe Control 是三维控件,代表空间仿真环境的三
维图形窗口,使开发者能够将三维空间仿真界面无缝集成到
应用程序中,从而可将 AGI Globe 控件当作普通界面控件对
待,开发者可以调用接口 API 函数、编写事件响应代码,以
响应和控制用户在三维界面上的各种操作。
(2)AGI Map Control
AGI Map Control 是二维显示控件,其功能与三维控件类
似,但它代表了空间仿真环境的二维图形窗口,使开发者能
基金项目
基金项目::::辽宁省科技厅基金资助项目(2008403002)
基金项目基金项目
作者简介
作者简介::::陈 波(1972-),男,教授、博士,主研方向:视景仿真,
作者简介作者简介
网络控制与远程监测,嵌入式系统;张 刚、王 娜、张 洋,
硕士研究生
收稿日期
收稿日期::::2011-03-22 E-mail::::zhanggang7202420@163.com
收稿日期收稿日期
262 计 算 机 工 程 2011 年 10 月 5 日
够将二维空间仿真界面无缝集成到应用程序中,并能调用接
口 API 函数、编写事件响应代码,以响应和控制用户在二维
界面上的各种操作。
(3)分析引擎接口控件
分析引擎接口控件是应用程序连接 STK 分析引擎的通
道,可直接在无界面和有界面的程序中使用。利用分析引擎
组件接口可完成与 STK 分析引擎的通信,并通过发送各种命
令完成既定任务的仿真与计算。同时,分析引擎组件还提供
接口以响应 STK 分析引擎的状态,增强应用程序对仿真过程
的控制能力。
(4)Graphics Analysis 控件
Graphics Analysis 控件代表了空间仿真环境的分析工具,
包括区域分析工具、方位角与海拔分析工具、遮蔽分析工具
和太阳板电池分析工具。
2.2 基于基于基于基于 STKX 组件的分布式视景仿真模式
组件的分布式视景仿真模式
组件的分布式视景仿真模式
组件的分布式视景仿真模式
基于 STKX 组件的分布式视景仿真主要包括 3 个部分:
数值仿真,场景仿真和界面管理。各部分之间的数据通信采
用高层体系结构(High Level Architecture, HLA)总线,数值仿
真采用 Matlab/Simulink 建模,视景仿真采用 STKX 组件技术,
管理界面采用 MFC 构建。仿真模式如图 1 所示。
回传至应用程序,再根据业务逻辑由处理单元对返回的结果
进行处理。事实上,STKX 组件已经成为应用程序界面的一
个组成部分,用户可以方便地调用 API 函数、编写事件响应
代码来响应和控制用户对 STKX 组件界面的操作,以增强应
用程序的交互能力。同时,利用应用分析引擎接口组件还可
对 STKX 组件内部事件如创建场景、添加卫星等进行监听,
从而更加精细地控制仿真过程。
(3)界面管理
界面采用 MFC 编程构建,除了采用常见的 VC 控件外,
STKX 组件也普遍使用,使用方法与视景仿真部分相同,视
景仿真同样应用于界面管理中。
3 STKX 组件与组件与组件与组件与 RTI 的交互关系
的交互关系
的交互关系
的交互关系
将 STK 应用于分布式仿真的关键是解决 STKX 组件与
RTI 的交互关系。本文的应用程序通过调用 STKX 组件接口
API 函数、编写事件响应代码来响应和控制二维/三维控件,
以此与控件进行交互。此外,应用程序调用 RTI API 函数完
成分布式仿真框架的构建,这样应用程序以一种“中间桥梁”
方式完成 RTI 与 STKX 组件的交互,交互关系如图 3 所示。
图图图图 1 分布式视景仿真模式
分布式视景仿真模式
分布式视景仿真模式
分布式视景仿真模式
(1)数值仿真
数值仿真根据数学模型建立相应的 Simulink 仿真模型,
待仿真模型解析出结果通过中间件实时传递给 HLA 仿真总
线。由于采用 Simulink 建立的模型使用自身的时钟步长和数
据流,不与其他程序共享,无法实时获取数据,因此本文采
用进程通信中的共享内存和事件技术,以 S 函数模块作为中
间件实现与 HLA 总线的实时数据交互,解决了分布式环境下
实时获取 Simulink 模型数据的难题。共享内存数据传输过程
如图 2 所示。
图图图图 2 共享内存数据传输
共享内存数据传输
共享内存数据传输
共享内存数据传输
(2)视景仿真
STKX 组件作为应用程序的一个组成部分被集成到分布
式 仿 真 中 , 应 用 程 序 通 过 调 用 组 件 应 用 程 序 编 程 接 口
(Application Programming Interface, API)函数直接与 STKX 组
件进行通信,并由 STKX 组件将仿真结果直接通过本地调用
图图图图 3 STKX 组件与组件与组件与组件与 RTI 的交互关系
的交互关系
的交互关系
的交互关系
图 3 中应用程序调用 RTI API 函数构建 HLA 仿真框架,
实际上是以代码实现 HLA 的六大管理功能,包括创建加入联
邦、创建对象、公布与订购对象与交互类信息、属性更新、
时间管理策略设置及时间推进等服务,为仿真成员构建分布
式仿真运行环境,并且设定好与其他联邦成员信息交互的接
口,便于联邦成员“即插即用”。
应用程序对 STK 仿真实体的操作实际是对二维/三维控
件的操作,此操作是通过调用 STK 命令完成的。STK 命令集
提供了实现 STK 几乎所有功能的命令,如新建场景、新建卫
星、设置时间步长、视角转换、仿真推进。
下面举例论述 STKX 组件与 RTI 的命令信息交互过程。
例如,实现其他邦员控制 STK 邦员新建一个导弹的过程为:
首先其他邦员向 RTI 发送新建命令,待应用程序接收到命令
后,调用 STKX 组件 API 函数 m_VOControl.GetApplication().
ExecuteCommand("New / */Missile %s", misName), m_VO
Control 为三维控件关联的变量,通过控件成员函数 Get
Application()获 取主程序指针以便调用 API 函 数 Execute
Command()执行新建导弹命令,其中,misName 为导弹名称。
在视景仿真中主要完成 STKX 组件与 RTI 的状态信息交
互,与命令信息交互过程类似,只是调用 STKX 组件 API 函
数不同。实时状态信息驱动 STK 三维实体运动使用 SetState
*/Missile/mis Cartesian TwoBody "1 Jun 2010 12:00:00.00"
"2 Jun 2010 12:00:00.00" 5 J2000 "1 Jun 2010 12:00:00.00"
"Fed.miss.str1" "Fed.miss.str2" "Fed.miss.str3""Fed.miss.str4"
"Fed.miss.str5" "Fed.miss.str6""函数,其中,SetState 为函数
第 37 卷 第 19 期 263
陈 波,张 刚,王 娜,等:基于 STKX 组件的视景仿真关键技术
名; */Missile/mis 为当前场景中的三维实体为导弹 mis;
Cartesian TwoBody 为导弹飞行坐标系类型; "1 Jun 2010
12:00:00.00" "2 Jun 2010 12:00:00.00"为仿真起始时间;5 为
仿 真 步 长 ; J2000 为 选 择 坐 标 系 统 ; "Fed.miss.str1"
"Fed.miss.str2" "Fed.miss. str3""Fed.miss.str4" "Fed.miss.str5"
"Fed.miss.str6"为从 RTI 中实时获取的导弹三维位置坐标和速
度坐标。在仿真线程中每一个仿真步长都要调用此函数一次,
从而实时驱动导弹三维实体的飞行。
4 基于基于基于基于 STKX 组件的仿真流程
组件的仿真流程
组件的仿真流程
组件的仿真流程
完成 STKX 组件与 RTI 的交互即可将 STK 实体开发为一
个联邦成员作用于分布式仿真中,简单起见,简称此类型成
员为 STK 邦员。基于 STKX 组件的联邦开发应遵循 HLA 提
出的各种规范和机制,STK 邦员的运行除了包括 RTI 提供的
六大管理功能外,还要协调 STKX 组件接口 API 函数的调用,
仿真流程如图 4 所示。
5.2 导弹导弹导弹导弹 Simulink 模型模型模型模型建立建立建立建立
导弹 Simulink 模型是分布式仿真数据的基础,根据导弹
数学模型建立的导弹 Simulink 模型如图 6 所示。
图图图图 6 导弹导弹导弹导弹 Simulink 模型模型模型模型
5.3 仿真结果
仿真结果
仿真结果
仿真结果
本实例采用 VC++6.0、Matlab6.5、STK8.0 实现软件,采
用 MAK RTI 2.2 作为联邦运行环境。根据 FOM/SOM 文件,
利用对象模型开发工具 OMDT 生成 FED 文件,启动全局进
程,各成员加入联邦。导弹攻防 STK 战场态势显示如图 7
所示。
图图图图 4 STK 邦元的仿真流程
邦元的仿真流程
邦元的仿真流程
邦元的仿真流程
5 仿真实例
仿真实例
仿真实例
仿真实例
5.1 仿真实例系统结构
仿真实例系统结构
仿真实例系统结构
仿真实例系统结构
仿真实例以导弹攻防作战为背景,基于 HLA 的导弹攻防
作战仿真系统由红、蓝、白三方构成(如图 5 所示),包括:
由导弹防御成员、指挥控制成员、侦察成员组成的红方成员
组,攻击导弹成员组成的蓝方成员组,仿真管理成员、STK
战场态势成员组成的白方成员组。
图图图图 5 仿真实例系统结构
仿真实例系统结构
仿真实例系统结构
仿真实例系统结构
导弹攻防 STK 战场态势
图图图图 7 导弹攻防
战场态势
导弹攻防
导弹攻防
战场态势
战场态势
6 结束语结束语结束语结束语
STKX 组件技术为开发功能强大、界面精美、过程控制
精确的仿真应用软件提供了有力的技术支持 [1]。本文基于
STKX 组件技术将 STK 应用无缝集成到 HLA 分布仿真框架
中,拓展了 STK 软件的使用范围,在空间视景仿真中具有广
阔的应用前景。
参考文献
参考文献
参考文献参考文献
[1] 丁哲峰, 张传玉. 基于 STKX 组件的空间仿真模式[J]. 四川兵
工学报, 2009, 30(10): 141-143.
[2] 刘成国, 祁 飞. 卫星工具包在分布式仿真中的实时控制研
究[J]. 计算机应用, 2006, 26(6): 1463-1465.
[3] 张飞宇, 闫晓勇. 基于 Creator/Vega 的寻的导弹飞控系统[J].
计算机工程, 2010, 36(9): 243-245.
[4] 唐 凯, 康凤举, 黄永华. 一种在分布交互仿真系统中使用
Simulink 模型的方法[J]. 系统仿真学报, 2007, 19(4): 787-789.
[5] 王 达, 邱晓刚, 黄柯棣. 基于 STK-RTI 中间件的天地一体作
战建模仿真研究[J]. 系统仿真学报, 2005, 17(2): 501-503.
编辑 张正兴