OPNET导入STK轨道文件的问题

1 篇文章 0 订阅

在用OPNET导入STK轨道文件的过程中,遇到一系列问题。摸索着解决了一下,有些问题很奇怪,可能来自软件的bug,有些问题可能有更好的解决方法,希望大家指点~

现将问题及解决方案整理如下:

注:我使用的是OPNET 14.5

(1)问题:我要仿真的卫星网络有200多颗卫星,希望在Topology-->Import STK Orbit中选择“All STK files under chosen directory”,来一下子全部导入。可是,选择好文件夹,点“OK”,程序卡死了,换了一台配置更好的电脑,还是老长时间没反应。

解决方法:试着分若干次导入(当然得新建文件夹把轨道文件分组)。虽然有时还很卡,但起码最终能够全部导入进来,而不用看着程序停在一个画面长时间不动还无法指望能出来结果。

(2)问题:分次导入的过程中遇到了一个奇怪的问题。我连着导入了五次,保存,关闭项目,再打开,发现只有前四次导入的保存了下来。试了好几次都是这样,起初还以为OPNET导入的卫星数目有限制呢。偶尔一次,在导入轨道后,修改了一下节点的某个属性(看问题(3)),保存后关闭项目,再打开,问题解决。。。

(3)问题:在导入轨道文件时,勾选“Create a satellite node for each orbit”,会为每个轨道文件自动生成一个节点。打开节点模型,发现其模型名称为NONE,要将其替换成自己创建的节点模型。

解决方法:选中节点,右键Edit Attributes,勾选属性对话框右下角的Advanced,这时,就可以在“model”属性里选择自己的节点模型了。

(4)问题:轨道是分次导入的,使得节点在界面中的分布特别乱,希望节点能按其轨道编号、轨道上的卫星编号排列成网格。在节点的属性对话框里(勾选Advanced),有两个属性:x position和y position,定义的就是节点的位置。一个一个改改不过来,于是,我尝试着通过代码来设置每一个节点的位置。

起初是这样做的:在节点模型的某个进程模型的初始状态下,获取节点的名称(我的节点名称和轨道编号、轨道上的卫星编号是对应的),然后使用obj_ima_obj_attr_set函数来设置节点的位置。运行仿真,错误提示说x position和y position这两个属性是只读的!可软件的帮助文档中介绍说是可以通过obj_ima_obj_attr_set函数来动态修改这两个属性的值呀!是代码的位置放的不对吗?

解决方法:我在菜单栏Topology下看到一个Export Topology,可以将网络拓扑导出成各种格式,也有一个Import Topology,可以从其他格式导入拓扑。我尝试将网络拓扑导出成XML文件,打开XML文件,发现其中记录着各个节点的属性,包括x position和y position!那么,修改这个XML文件,然后再导入,不就OK了?

我用C写了一个小程序,读取这个XML文件,为每个节点修改x position和y position的值,写入新的XML文件,从OPNET中导入,节点按自己希望的样子排列开来~

修改XML文件的程序这里就先不贴了,其中涉及到的主要是文件的读写以及字符串的一些操作。写这个小程序也费了我一些时间(本人水平有限),不过想到写一次程序,多次使用,方便地修改拓扑,还是很开心的~

 

另外,关于obj_ima_obj_attr_set的问题希望大家指点~

-------------------------------------------------------------------------

使用OPNET中导入STK生成的.sa文件时,需要将文件中的EphemerisTimePosVel替换成EphemerisEcfTimePosVel。.sa文件可能比较多,手动一个一个地替换比较麻烦。使用这个程序可以进行批量替换。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值