摘要:
大家在科研和工作中,往往會(huì)遇到如何在CST中構(gòu)建人工重復(fù)性高、建模步驟繁瑣的模型,以及多次導(dǎo)出仿真結(jié)果數(shù)據(jù)等問(wèn)題。和HFSS的vbs腳本一樣,CST也自帶VBA腳本控制,并支持MATLAB調(diào)用。
0 1 CST的VBA語(yǔ)言
在CST主界面按F1即可打開(kāi)官方自帶的Help文檔。
對(duì)于微波專業(yè)的學(xué)生和科研從業(yè)者,大部分情況下選用的是CST的MICROWAVE STUDIO (MWS)。因此,查看學(xué)習(xí)CST MWS VBA語(yǔ)法和對(duì)象即可滿足日常學(xué)習(xí)、工作需求。
點(diǎn)擊Hom?e:Macros>Open VBA Macro Editor,即可打開(kāi)CST自帶的VBA開(kāi)發(fā)環(huán)境。
復(fù)制粘貼MsgBox行的代碼到VBA編輯器中,點(diǎn)擊
即可彈出信息提示框。(全部復(fù)制可能會(huì)報(bào)錯(cuò)!親測(cè)!)
'#Language "WWB-COM" Option Explicit Sub Main MsgBox("Hello World") EndSub
對(duì)于初學(xué)者而言,若要熟練使用VBA開(kāi)發(fā)環(huán)境對(duì)CST進(jìn)行代碼式建模開(kāi)發(fā),還需要掌握兩方面知識(shí):VBA語(yǔ)言的基本語(yǔ)法規(guī)則和CST的Objects調(diào)用規(guī)則。
前者可以在VBA開(kāi)發(fā)環(huán)境下按F1鍵,調(diào)出Help文檔。
官方幫助文檔是學(xué)習(xí)VBA基本語(yǔ)法規(guī)則的一大利器,不需要從頭到尾都學(xué)一遍。可以秉承邊學(xué)邊用的方法,活學(xué)活用。不過(guò)學(xué)習(xí)常用的變量定義、數(shù)組、循環(huán)、判斷、字符等最基礎(chǔ)的知識(shí)是很有必要的。
有了語(yǔ)法基礎(chǔ)后,就需要根據(jù)自己的學(xué)習(xí)工作需求,去VBA Objects下找自己需要對(duì)象的調(diào)用規(guī)則。例如下圖所示的Brick對(duì)象的一個(gè)構(gòu)建。該對(duì)象有Reset、Name、Component、Material、Xrange、Yrange、Zrange、Create這么幾個(gè)方法。
根據(jù)Help文檔的講解,我們?cè)赩BA開(kāi)發(fā)環(huán)境中復(fù)制下面6-15行的代碼到Sub Main代碼塊內(nèi),點(diǎn)擊運(yùn)行即可在CST中建立一個(gè)矩形實(shí)體。(全部復(fù)制可能會(huì)報(bào)錯(cuò)!親測(cè)!)
'#Language "WWB-COM" OptionExplicit Sub Main With Brick .Reset .Name ("brick1") .Component ("component1") .Material ("PEC") .Xrange (0, 1) .Yrange (0, 3) .Zrange (0, 5) .Create End With End Sub
不過(guò)這種建模方法有一個(gè)缺點(diǎn):和HFSS的自動(dòng)化建模只有vbs代碼一樣,建立的模型在CST的History List沒(méi)有記錄,喪失了CST建模的一大利器!
好在可以打開(kāi)CST官方Macro文件進(jìn)行參考,比如自帶的Dipole Antenna這個(gè)mcs文件。經(jīng)過(guò)對(duì)比,不難發(fā)現(xiàn),只需要將前面的代碼變成字符串形式,通過(guò)AddToHistory即可將建模代碼添加至History List。
依葫蘆畫瓢,Sub Main和End Sub之間的代碼替換如下,執(zhí)行VBA命令后即可在History List下找到本次建模的詳細(xì)代碼:
Dim sCommand As String '@ define brick1 sCommand = "" sCommand = sCommand + "With Brick " + vbLf sCommand = sCommand + " .Reset" + vbLf sCommand = sCommand + " .Name (""brick1"")" + vbLf sCommand = sCommand + " .Component (""component1"")" + vbLf sCommand = sCommand + " .Material (""PEC"")" + vbLf sCommand = sCommand + " .Xrange (0, 1)" + vbLf sCommand = sCommand + " .Yrange (0, 3)" + vbLf sCommand = sCommand + " .Zrange (0, 5)" + vbLf sCommand = sCommand + " .Create" + vbLf sCommand = sCommand + "End With" + vbLf MsgBox(sCommand) AddToHistory "define brick1", sCommand
0 2 MATLAB調(diào)用CST
MATLAB調(diào)用CST有兩種方法,一種是通過(guò)Shell語(yǔ)言的轉(zhuǎn)移字符!。
例如已經(jīng)編寫好了待執(zhí)行的vba腳本,文件類型命名為.bas(其他類型文件,比如.mcr,可能不會(huì)被識(shí)別)。然后按下面的語(yǔ)法結(jié)構(gòu),修改CST安裝路徑和bas文件路徑即可調(diào)用成功。這種方法和通過(guò)hfssapi包編寫好相應(yīng)的vbs腳本文件,再用MATLAB調(diào)用HFSS執(zhí)行vbs腳本命令類似。不過(guò)這種方法在嘗試調(diào)用高版本CST2022時(shí),會(huì)因?yàn)椴捎昧伺幚?Batch)腳本調(diào)用而需要手動(dòng)確認(rèn)license的現(xiàn)象。
! "D:softwareCST2018CST DESIGN ENVIRONMENT.exe" -m E:test.bas
另一種方法則是通過(guò)matlab actxserver創(chuàng)建一個(gè)COM服務(wù)器,通過(guò)invoke調(diào)用COM對(duì)象或接口上的方法。
%如果裝了2個(gè)CST,不管怎么切換license,其只會(huì)創(chuàng)建最新安裝的cst對(duì)象! cst = actxserver('CSTStudio.application');%創(chuàng)建CST應(yīng)用對(duì)象 mws = invoke(cst, 'NewMWS');%調(diào)用MWS應(yīng)用對(duì)象 app = invoke(mws, 'GetApplicationName');%獲取當(dāng)前應(yīng)用名稱 ver = invoke(mws, 'GetApplicationVersion');%獲取當(dāng)前應(yīng)用版本號(hào) invoke(mws, 'FileNew');%新建一個(gè)CST文件 filename='D:CSTFileDipole_model.cst'; invoke(mws, 'SaveAs', filename,'True'); invoke(mws, 'Quit'); release(mws); release(cst);
就通用性而言,第二種方法較優(yōu)。網(wǎng)上也有很多關(guān)于這方面的代碼可供參考,個(gè)人可以根據(jù)需求將代碼進(jìn)行封裝,便于后續(xù)的傳參調(diào)用。
實(shí)例展示
審核編輯 :李倩
-
matlab
+關(guān)注
關(guān)注
185文章
2981瀏覽量
231017 -
CST
+關(guān)注
關(guān)注
7文章
63瀏覽量
17796
原文標(biāo)題:CST的VBA語(yǔ)言 & MATLAB調(diào)用CST
文章出處:【微信號(hào):射頻學(xué)堂,微信公眾號(hào):射頻學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
G.726/G.711 CST算法用戶指南
![G.726/G.711 <b class='flag-5'>CST</b>算法用戶指南](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
芯海科技CST92F30芯片成功適配OpenHarmony 3.0.1 LTS
![芯海科技<b class='flag-5'>CST</b>92F30芯片成功適配OpenHarmony 3.0.1 LTS](https://file1.elecfans.com/web3/M00/02/B1/wKgZO2dhRbiAKYGIAADFOCha1tg316.png)
《CST Studio Suite 2024 GPU加速計(jì)算指南》
TMS320C54CST引導(dǎo)加載程序技術(shù)參考
![TMS320C54<b class='flag-5'>CST</b>引導(dǎo)加載程序技術(shù)參考](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
Molex推出Coeur CST 高電流連接系統(tǒng)的優(yōu)勢(shì)有哪些?-赫聯(lián)電子
onsemi LV/MV MOSFET 產(chǎn)品介紹 &amp;amp; 行業(yè)應(yīng)用
![onsemi LV/MV MOSFET 產(chǎn)品介紹 &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; 行業(yè)應(yīng)用](https://file.elecfans.com/web2/M00/92/72/poYBAGPzDF2APvYFAAAbxdHf0so719.png)
智能電子秤方案藍(lán)牙廣播芯片 CST92P15
TMS320C54CST DSP數(shù)據(jù)表
![TMS320C54<b class='flag-5'>CST</b> DSP數(shù)據(jù)表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
FS201資料(pcb &amp; DEMO &amp; 原理圖)
CST92F25-QFN32 SDK DOME
芯海科技CST92F42:高性價(jià)比BLE MCU,實(shí)現(xiàn)60幀流暢刷屏!
![芯海科技<b class='flag-5'>CST</b>92F42:高性價(jià)比BLE MCU,實(shí)現(xiàn)60幀流暢刷屏!](https://file.elecfans.com/web2/M00/36/6B/pYYBAGIy9O2AcuPtAAAjwZfmzn8505.png)
什么是Coeur CST 高電流連接系統(tǒng)?哪家好?-赫聯(lián)電子
在TSMaster中加載基于DotNet平臺(tái)的Seed&amp;amp;Key
![在TSMaster中加載基于DotNet平臺(tái)的Seed&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;Key](https://file.elecfans.com/web2/M00/40/07/pYYBAGJrUk2AaMaTAAAQONQtdzo461.jpg)
評(píng)論