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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值