1.具體思路
(1)擷取預設位址stkDefaultHost
remMachine = stkDefaultHost;
(2)關閉STK目前的場景
stkClose('ALL')
(3)打開預設位址stkDefaultHost下的場景,并擷取ID号
conid=stkOpen(remMachine);
(4)檢測STK是否存在一個場景,如果已經存在,則通過MATLAB端進行關閉
scen_open = stkValidScen;
if scen_open == 1
rtn = questdlg('Close the current scenario?');
if ~strcmp(rtn,'Yes')
stkClose(conid);
return
else
stkUnload('/*')
end
end
(5)建立一個場景,其中parameter.name_stkNewObj為場景名稱
stkNewObj('/','Scenario',parameter.name_stkNewObj);
(6)設定場景仿真的時間,并開始建立場景
str_set1=['SetValues "',parameter.edit_starTime,'" 1 1'];
rtn = stkConnect(conid,'Animate',['Scenario/',parameter.name_stkNewObj],str_set1);
stkSetTimePeriod(parameter.edit_starTime,parameter.edit_endTime,'GREGUTC');
rtn = stkConnect(conid,'Animate',['Scenario/',parameter.name_stkNewObj],'Reset');
2.參考代碼(上述過程的封裝代碼如下代碼段)
function [conid] = Initialization_STK(parameter)%handles
%Initialization_STK 此處顯示有關此函數的摘要
% 此處顯示詳細說明
remMachine = stkDefaultHost;
stkClose('ALL')
conid=stkOpen(remMachine);
scen_open = stkValidScen;
if scen_open == 1
rtn = questdlg('Close the current scenario?');
if ~strcmp(rtn,'Yes')
stkClose(conid);
return
else
stkUnload('/*')
end
end
%create a new scenario
disp('Create a new scenario');
stkNewObj('/','Scenario',parameter.name_stkNewObj);
% set Time period
disp('Set scenario Time period');
str_set1=['SetValues "',parameter.edit_starTime,'" 1 1'];
rtn = stkConnect(conid,'Animate',['Scenario/',parameter.name_stkNewObj],str_set1);
stkSetTimePeriod(parameter.edit_starTime,parameter.edit_endTime,'GREGUTC');
rtn = stkConnect(conid,'Animate',['Scenario/',parameter.name_stkNewObj],'Reset');
disp('The STK is successfully initialized!');
end