天天看點

MATLAB/STK聯合調制場景初始化過程

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

           

繼續閱讀