博主的第一篇博客
一、在此之前的安装步骤
1、STK11.6、STK11.2.0安装包,STK中文学习资料获取途径:
(1)【STK】STK11.6下载安装+MATLAB互连+各插件模块.
(2)B站STK11.6 安装教程(视频介绍里有安装包链接).
2、整体的STK 11.6 安装、与MATLAB的互联过程可以参考:STK 11.6 安装、与MATLAB的互联及其混合编程.
本文已经到了这一步
本文解决之后遇到的MATLAB无法执行stkInit的问题(参考自【百度贴吧】求助 STK与MATLAB互联)
二、正文
错误:
>> stkInit
尝试将 SCRIPT mexConnect 作为函数执行:
C:\Program Files\AGI\STK 11\bin\Matlab\mexConnect.m
出错 stkValidScen (line 20)
out = mexConnect('stkValidScen');
出错 stkInit (line 15)
if stkValidScen
如图
三、解决方法
修改“当前文件夹”为 C:\Program Files\AGI\STK 11,右击bin文件夹
“添加到路径”,“选定的文件夹和子文件夹”
关闭STK后重新打开STK,但是不要新建场景,只要STK开着就行
MATLAB中重新执行stkInit
这个样子就是OK的意思。再试一段代码(摘自《STK在计算机仿真中的应用》,杨颖,王琦,第二十一章,21.2.1,STKTest.m)
delete(get(0,'children'));
% Matlab连接STK,首先要获得STK的地址,示例中采用了默认地址stkDefaultHost。
% 得到地址后,就可以利用语句stkOpen打开默认地址,建立Matlab与STK的连接了。
remMachine = stkDefaultHost;
conid=stkOpen(remMachine);
dtr = pi/180;
rtd = 180/pi;
% 在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
% 利用语句stkNewObj创建新场景。这里需要注意一个问题,stkNewObj在STK5.0中创建新场景时,
% 语法为stkNewObj('Scenario','','Scenario22-1'),这应该是STK5.0的程序错误所致。
% stkNewObj的正确语法应该是stkNewObj('ParentPath','Class','Name'),
% 其中ParentPath为场景或对象的路径,Class为新建对象的类别,Name为新建对象的名称。
disp('Create a new scenario');
stkNewObj('Scenario','','Scenario22-1');
STK中开始运行,一会儿后生成了一个新的场景:
于是实现了在MATLAB中控制STK,即二者互联。