Matlab与STK连接函数库(最新整理) 下载本文

内容发布更新时间 : 2024/12/24 1:18:20星期一 下面是文章的全部内容请认真阅读。

四、stkExec使用总结 作用:Execute an STK/Connect command 用法:rtn = stkExec(conID, 'conCmdStr') 说明:rtn - A character array containing the STK return conID - STK/Connect connection ID, from stkOpen. 可以说,所有的STK/Connect都可以通过调用函数stkExec( )来实现,具体使用参见STK/Help/Connect。下面仅就已经使用过的功能做介绍。 4.1 场景动画控制 4.1.1 动画时间设置 设置格式:stkExec(conid,'Animate Scenario/SatelliteFormation SetValues \')获取格式:Str = stkExec(conid,'GetAnimTime Scenario/SatelliteFormation ') 4.1.2 动画控制按钮 格式:stkExec( conid, 'Animate Scenario/SatelliteFormation Reset' )Step ReversePauseStep ForwardFasterStart RealTimeResetStart ReverseStartSlowerStart NormalStart XRealTime 4.1.3 3D场景控制按钮 格式:stkExec( conid, 'VO Scenario/SatelliteFormation View Top' )stkExec( conid, 'VO Scenario/SatelliteFormation View FromTo 'FromRegName \ FromName \ 'ToRegName \ToName \SceneID 1' )HomeNorthTop 4.2 新建物体 4.2.1 新建场景 格式:stkExec( conid, 'New / Scenario SatelliteFormation' )=stkNewObj( 'Scenario', ' ' , 'SatelliteFormation' ) 4.2.2 新建卫星 格式:stkExec( conid, 'New / Scenario/SatelliteFormation/Satellite Chief' )=stkNewObj( '*/', 'Satellite', 'Chief' ) 4.2.3 同时新建多个对象 格式:stkExec( conid, 'New / */Satellite 3 Chief Deputy1 Deputy2' ) 4.3 3D场景中的设置(针对卫星3D Graphics) 4.3.1 模型引用、大小 格式:stkExec( conid, 'VO */Satellite/Deputy Model on \C:/Program Files/Agi/STK Software Suite 5.0/STKData/VO/Models/Space/satellite.mdl\格式:stkExec( conid, 'VO */Satellite/Deputy ScaleLog 1' ) 4.10 STK中颜色编号 05274914161138颜色词:white black yellowred green blue 五、示例 4.1 卫星编队之构型设计 1、Matlab连接STK,首先要获得STK的地址,示例中采用了默认地址stkDefaultHost。得到地址后,就可以利用语句stkOpen打开默认地址,建立Matlab与STK的连接了。 remMachine = stkDefaultHost; conid=stkOpen(remMachine); 2、在STK中创建新场景前,需要检查STK中的当前场景,如果目前STK中已经存在一个场景,就可以利用语句stkUnload关闭场景,或者利用语句stkClose关闭当前连接。 scen_open = stkValidScen; if scen_open == 1 rtn = questdlg('Close the current scenario?'); if ~strcmp(rtn,'Yes') stkClose(conid) return else stkUnload('/*') end end 3、利用语句stkNewObj创建新场景。这里需要注意一个问题,stkNewObj在STK5.0中创建新场景时,语法为stkNewObj('Scenario','','Scenario1'),这应该是STK5.0的程序错误所致。stkNewObj的正确语法应该是stkNewObj('ParentPath','Class','Name'),其中ParentPath为场景或对象的路径,Class为新建对象的类别,Name为新建对象的名称。 disp('Create a new scenario: SatelliteFormation'); stkNewObj('Scenario','','SatelliteFormation'); stkNewObj('*/','Satellite','Chief'); 4、场景建立完成后,需要为场景设置时间参数。其中场景的历元时刻设置这是通过语句stkSetEpoch和stkSyncEpoch实现的。而设置场景运行方式时是通过语句stkConnect直接调用STK连接命令的方式实现的。STK调用连接命令语句stkConnect非常重要,它的正确语法是 rtn=stkConnect(conid,'','','') 其中,conid代表通过语句stkOpen打开的当前连接,Command代表要执行的命令, ObjectPath代表对象名称,Parameters代表相应命令的执行参数。 disp('Set scenario time period'); stkSetTimePeriod('1 May 2007 00:00:00.00','2 May 2007 00:00:00.00','GREGUTC'); stkSetEpoch('1 May 2007 00:00:00.00','GREGUTC'); stkSyncEpoch; rtn=stkConnect(conid,'Animate','Scenario/SatelliteFormation','SetValues \0.1'); rtn=stkConnect(conid,'Animate','Scenario/SatelliteFormation','Reset'); rtn = stkConnect(conid,'SetBoundary','Scenario1/sun_rfi/AreaTarget/BoxTarget','Pattern 10 10 -80 10 -70 10 -60 10 -50 10 -40 -37 -40 -37 -50 -37 -60 -37 -70 -37 -80'); 4.2 使用心得 如果需要设置或是获取上述函数中没有提到的属性或参数,需要借助stkConnect或是stkExec完成,常采用stkExec,其调用函数为 rtn=stkExec(conid,' ') 具体应用需查询STK中的Help。如改变卫星模型尺寸,调用语句为:stkExec( conid, 'VO */Satellite/Deputy ScaleLog 1' )