日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

STK 航空仿真(二)STK MATLAB自动化(1)自动化目的和方法简介

發(fā)布時(shí)間:2024/1/1 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STK 航空仿真(二)STK MATLAB自动化(1)自动化目的和方法简介 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.STK自動(dòng)化的目的

STK自動(dòng)化是指使用其他軟件或者程序語(yǔ)言,直接操作STK對(duì)象和UI界面。之所以需要STK自動(dòng)化,是因?yàn)橹苯邮褂?strong>STK UI界面進(jìn)行仿真存在以下困境:

(1)通常情況下,STK航空仿真需要大量的數(shù)據(jù),例如一系列的飛機(jī)軌跡點(diǎn)等等,手動(dòng)在STK界面中輸入這些軌跡點(diǎn)比較耗時(shí)耗力。

(2)STK航空仿真大多是實(shí)時(shí)仿真,數(shù)據(jù)不是預(yù)先給定的,是由一定的算法或者其他軟件(如MATLAB)在仿真時(shí)生成的。

(3)項(xiàng)目交付時(shí),需要接收方熟練使用STK,然而對(duì)甲方爸爸提這種要求百分之百會(huì)被噴。

(4)對(duì)于大型項(xiàng)目,使用UI界面設(shè)置仿真參數(shù)很容易出錯(cuò),也難以保證操作的規(guī)范性,如果使用自動(dòng)化腳本完成仿真配置,可以保證每次配置都是一致的,減少出錯(cuò)的概率。

鑒于這些情況,通常需要定制一些接口,讓其他軟件或者程序語(yǔ)言能直接與STK進(jìn)行交互,這樣可以專心于仿真的算法設(shè)計(jì)而無(wú)需事先掌握STK的使用。

2.STK自動(dòng)方法

2.1 查閱自動(dòng)化幫助文檔

打開(kāi)STK幫助文檔可以查閱STK自動(dòng)化的幫助文檔:

?

?其中Automate Tasks一節(jié)就是STK自動(dòng)化的幫助文檔。

2.2 自動(dòng)化的方法

在幫助文檔中可以看到,STK自動(dòng)化有以下幾種方法:

(1)OLE 自動(dòng)化

OLEObject Linking and Embedding,對(duì)象連接與嵌入),是一種面向?qū)ο蟮募夹g(shù),利用這種技術(shù)可開(kāi)發(fā)可重復(fù)使用的軟件組件(COM)。OLE從多媒體借鑒而來(lái),是Windows的一組服務(wù)功能,提供了一種以源于不同應(yīng)用軟件的信息建立復(fù)合文檔的強(qiáng)有力方法。在對(duì)象連接和嵌入系統(tǒng)中,對(duì)象可以是幾乎所有的數(shù)據(jù)類型,例如文字、點(diǎn)陣圖像和矢量圖形,甚至于聲音、注解和錄像剪輯等均可。對(duì)象被賦予了智能屬性,即參與連接和嵌人的對(duì)象本身帶有計(jì)算機(jī)指令。最典型的OLE應(yīng)用就是PowerPointPPT就是一種廣泛使用OLE技術(shù)的多媒體文檔,所以我們可以在PPT中直接播放音視頻。

STKOLE自動(dòng)化支持JavaC++PythonMatlabJavascript等,其他軟件也可以使用OLE調(diào)用STK。

通過(guò)OLE自動(dòng)化,可以使用STK Model Object(AgSTKObjects, AgSTKGraphics, AgVGT and AgSTKUtil 和AGI.STKObjects, AGI.STKGraphics,AGI.STKVgt and AGI.STKUtil等)操作STK中的模型和工具組件,也可以使用AgUiCore庫(kù)操作STK的窗口,工具欄等。

優(yōu)點(diǎn):不依賴于特定的STK版本和編程語(yǔ)言,可以使用多種語(yǔ)言編程實(shí)現(xiàn)。

缺點(diǎn):需要配置相應(yīng)的OLE支持庫(kù),每種語(yǔ)言的OLE支持庫(kù)有差異,需要分別配置。

(2)TCP/IP socket通信

STK在運(yùn)行時(shí)會(huì)啟動(dòng)一個(gè)TCP服務(wù)器,默認(rèn)監(jiān)聽(tīng)5001端口,啟動(dòng)多個(gè)STK窗口,監(jiān)聽(tīng)的端口以5001,5002的形式遞增。想這個(gè)端口以文本的形式發(fā)送STK命令,STK會(huì)解釋這些命令并反饋結(jié)果。

優(yōu)點(diǎn):可以在本地或者通過(guò)網(wǎng)絡(luò)與STK交互,不依賴于特定的STK版本,任何可以發(fā)起TCP請(qǐng)求的編程語(yǔ)言或者軟件都可以與STK交互,依賴的庫(kù)很少,通用性強(qiáng)。

缺點(diǎn):命令和數(shù)據(jù)以文本的形式傳遞,延遲大,數(shù)據(jù)也要進(jìn)行轉(zhuǎn)義和編碼處理。

(3)自定義STK UI

STK支持使用HTML 網(wǎng)頁(yè)來(lái)自定義和拓展UI界面,同時(shí)也支持使用UI插件來(lái)自定義工具欄和窗口。優(yōu)點(diǎn):定制好的自動(dòng)化界面是圖形界面,使用簡(jiǎn)單,操作方便。

缺點(diǎn):由于圖形界面表示的狀態(tài)有限,只能實(shí)現(xiàn)有限的自動(dòng)化功能,并且需要手動(dòng)觸發(fā),對(duì)于不能用圖形界面表示的或者觸發(fā)時(shí)機(jī)不確定的自動(dòng)化操作無(wú)能為力,編制圖形化界面所需的代碼量比較大。

(4)使用官方提供的MATLAB 連接組件

AGI公司提供了一個(gè)插件MATLAB Connector來(lái)支持MATLABSTK的交互,但是這個(gè)插件只支持特定MATLABSTK版本之間的連接。

優(yōu)點(diǎn):可以直接在MATLAB中操作STK,方便連接仿真算法進(jìn)行實(shí)時(shí)仿真。

缺點(diǎn)MATLAB Connector只適合特定版本的MATLABSTK,適配性差。

2.3 怎樣選擇自動(dòng)化方法

就我個(gè)人理解,自動(dòng)化應(yīng)該遵循以下的原則:

(1)版本獨(dú)立原則:自動(dòng)化程序應(yīng)該不依賴于目標(biāo)軟件版本,否則換個(gè)版本就需要更新自動(dòng)化程序,成本很高,特別是對(duì)于大型仿真任務(wù)。

(2)簡(jiǎn)潔配置原則:自動(dòng)化程序的配置應(yīng)當(dāng)十分簡(jiǎn)單,確保用戶只需少量操作就可以執(zhí)行使用自動(dòng)化程序執(zhí)行任務(wù),如果配置太繁瑣,就背離了自動(dòng)化的目的,自動(dòng)化效果也不明顯。

(3)少量開(kāi)發(fā)原則:自動(dòng)化程序承擔(dān)的是功能調(diào)度和數(shù)據(jù)輸入的責(zé)任,要盡可能利用目標(biāo)軟件的接口完成任務(wù),自身的邏輯不能太復(fù)雜,否則會(huì)增加自動(dòng)化時(shí)出錯(cuò)的概率。

結(jié)合上述原則,考慮到航空仿真時(shí)數(shù)據(jù)輸入量比較大的特點(diǎn),這里采用OLE技術(shù)開(kāi)發(fā)自動(dòng)化程序。

3.STK自動(dòng)化實(shí)現(xiàn)

3.1 自動(dòng)化目標(biāo)

使用STKOLE接口,開(kāi)發(fā)一個(gè)STK自動(dòng)化simulink模塊,適配大多數(shù)的MATLAB版本,實(shí)現(xiàn)用Simulink操控STK,輸入仿真數(shù)據(jù),設(shè)置和獲取STK模型數(shù)據(jù)等。

3.2 開(kāi)發(fā)環(huán)境配置

MATLAB2021a,STK10

3.3 在MATLAB中啟動(dòng)一個(gè)STK窗口

open_STK.m

uiapp = actxserver('STK10.application'); root = uiapp.Personality2; uiapp.visible = 1;

運(yùn)行會(huì)啟動(dòng)一個(gè)空白的STK窗口,注意第一行中的uiapp = actxserver('STK10.application')要隨STK版本而更改,我用的是STK10,如果是STK12,改為?uiapp = actxserver('STK12.application');其他版本類似。

?可以看到窗口中什么也沒(méi)有。

3.4 新建一個(gè)場(chǎng)景并設(shè)定時(shí)區(qū)

%打開(kāi)一個(gè)STK窗口 uiapp = actxserver('STK10.application'); root = uiapp.Personality2; uiapp.visible = 1; % 創(chuàng)建一個(gè)新場(chǎng)景并設(shè)定時(shí)區(qū) root.NewScenario('open_STK'); root.UnitPreferences.Item('DateFormat').SetCurrentUnit('UTCG'); root.CurrentScenario.SetTimePeriod('1 Jul 2013 12:00:00.000', '2 Jul 2013 12:00:00.000'); root.CurrentScenario.AnalysisEpoch.SetExplicitTime('1 Jul 2013 12:00:00.000');

現(xiàn)在就打開(kāi)了一個(gè)帶有2D3D視圖的默認(rèn)STK窗口:

?限于篇幅,這里先介紹如何使用MATLAB啟動(dòng)STK窗口,下一節(jié)將詳細(xì)講述使用MATLAB自動(dòng)化配置STK仿真場(chǎng)景以及將自動(dòng)化腳本使用MATLAB S 函數(shù)封裝成simulink模塊。

3.5 STK MATLAB OLE自動(dòng)化示例文檔

隨軟件安裝的STK幫助文檔中關(guān)于STK MATLAB?OLE自動(dòng)化的代碼示例在:

?

3.6 自動(dòng)化的理念

就我的理解,自動(dòng)化不是說(shuō)完全解放雙手,實(shí)現(xiàn)不用點(diǎn)一次鼠標(biāo)就操控軟件,而是應(yīng)該針對(duì)以下幾種情形進(jìn)行自動(dòng)化:

(1)重復(fù)性操作:比如STK進(jìn)行航空仿真時(shí)飛機(jī)軌跡點(diǎn)的輸入就是重復(fù)操作。

(2)觸發(fā)時(shí)機(jī)不確定的操作:有些操作的觸發(fā)時(shí)機(jī)是不確定,比如當(dāng)雷達(dá)掃描到目標(biāo)后報(bào)告目標(biāo)方位,但是人不可能一直盯著仿真界面;有些操作需要滿足一定條件才能觸發(fā),比如飛機(jī)發(fā)射導(dǎo)彈,這時(shí)候不可能通過(guò)圖形界面來(lái)觸發(fā)導(dǎo)彈發(fā)射。

(3)實(shí)時(shí)性操作:很多時(shí)候仿真是實(shí)時(shí)進(jìn)行的,仿真數(shù)據(jù)不是預(yù)先給定的,這時(shí)候不可能通過(guò)圖形化界面設(shè)置達(dá)到目的。

(4)操作由外部信號(hào)觸發(fā):仿真時(shí)操作的觸發(fā)由外部給定信號(hào),這時(shí)候就必須使用自動(dòng)化程序才能達(dá)到目的。

簡(jiǎn)而言之,自動(dòng)化的目的應(yīng)該是:使用程序操作軟件完成使用圖形界面不能完成或者完成起來(lái)很繁瑣的工作。對(duì)于一些一次性的,或者變化很頻繁的操作,使用自動(dòng)化反而會(huì)弄巧成拙,增加工作量。

總結(jié)

以上是生活随笔為你收集整理的STK 航空仿真(二)STK MATLAB自动化(1)自动化目的和方法简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。