作者 | Ma Bin
如果對于一個CST仿真模型,我們需要不斷的嘗試各種參數(shù)組合,以比較不同參數(shù)組合下的計算結(jié)果,那么我們應(yīng)該怎么做呢?
方法一:一次一次的打開模型,修改參數(shù)并且啟動仿真,然后保存每一次的結(jié)果?
方法二:進行一些參數(shù)掃描,甚至是迭代的進行多個參數(shù)的掃描?
顯然,方法二適用于每次只變1-3個參數(shù),如果每次需要改變的參數(shù)很多,并且參數(shù)的變化沒有規(guī)律,那么這種嵌套的掃參方式會計算一些無用的參數(shù)組合結(jié)果,不僅浪費時間還多占用內(nèi)存。
如果只需進行3次或者5次的參數(shù)組合,那其實直接用方法一,就是最高效最簡單的辦法。但是如果參數(shù)的組合數(shù)上升到50次甚至500次,那我們就需要尋求另一種方法了,這也是這篇文章中我想跟大家介紹的利用Python進行批處理的方法。
方法三:利用Python進行批處理
我們以一個CST自帶的喇叭天線為例,這里的監(jiān)視器做了刪減,只保留了三個頻點的遠場監(jiān)視器,我們關(guān)心的是天線的遠場性能和S參數(shù)。
在這個喇叭天線模型中,有很多參數(shù)。我們創(chuàng)建一個Excel,命名為Parameter List,然后輸入三組天線的參數(shù),這里我們只改變其中三個參數(shù)。需要注意的是,參數(shù)的修改必須是合理的,否則會造成3D建模報錯,進而會導(dǎo)致Python代碼運行不成功,無法達到批處理的效果。
在CST中,我們還需要設(shè)置兩個后處理模板,一個是導(dǎo)出遠場方向圖,另一個是導(dǎo)出S參數(shù)。這里的結(jié)果導(dǎo)出,可以根據(jù)需要隨意調(diào)整。
在Python腳本中,有以下幾個重要的組成部分。
· 導(dǎo)入必要的庫,包括CST的庫:這里主要是導(dǎo)入DesignEnviroment,它可以控制CST的打開和關(guān)閉;其他的庫比如xlrd、numpy、matplotlib等等視需要而定;
· 讀取參數(shù)列表:從Excel中讀取我們需要的參數(shù)組合;
· For循環(huán):遍歷Excel中所有的行,每個循環(huán)中嵌套CST的打開、修改模型、仿真、導(dǎo)出數(shù)據(jù)最后關(guān)閉CST等一系列操作。
· CST控制:完成指定CST仿真工程的打開和關(guān)閉,按照Excel中的參數(shù)修改模型的parameter list,選擇求解器并啟動仿真。其中,將Excel中的參數(shù)傳遞給CST,并控制CST的parameter list進行參數(shù)修改,主要參照下面的代碼;
· 數(shù)據(jù)導(dǎo)出:CST中設(shè)置的后處理模板,會將需要的結(jié)果保存到所在工程文件夾下的Export文件夾中,需要通過Python將每次循環(huán)計算的結(jié)果抓取并存放到指定output文件夾中。
· 數(shù)據(jù)繪圖:利用Python可以對每次計算的結(jié)果進行繪圖,在批處理完成之后,可以對每種參數(shù)組合的主要結(jié)果進行預(yù)覽。這一步可有可無,按需取舍。
運行Python代碼,如下圖,可以顯示Number of Antenna和 Parameter name等等信息,還可以顯示目前的進度。當(dāng)然這里也可以顯示CST模型的網(wǎng)格數(shù)量,端口數(shù)量等等用戶關(guān)心的信息,只需要加代碼即可。
隨后,在指定的output文件夾內(nèi),可以看到導(dǎo)出的數(shù)據(jù),這里的數(shù)據(jù)都自動加了前綴以便區(qū)分。值得說明的是,在本例中我們關(guān)心的是每個喇叭天線的S參數(shù)和遠場性能,所以這里就只抓取了這些結(jié)果。如果需要場源文件、電場數(shù)據(jù)等等,都可以通過后處理+Python的方式抓取并保存。
最后,將每個天線的主要性能都用Python繪制出來,方便查看。
也可以將同類的數(shù)據(jù)都繪制在一起,更方便對比。當(dāng)然,這個比較靈活,根據(jù)需要修改代碼即可。
最后做個總結(jié),以前CST軟件的二次開發(fā)多以VBA語言為主,近年來,細心的讀者已經(jīng)發(fā)現(xiàn)我們開放了很多Python的接口,因為Python的開源性、可擴展性以及可讀性使得它更容易被電磁工程師接受和上手。
在本例中,我們展示了利用Python批處理CST的仿真工程,并抓取我們所關(guān)心的結(jié)果。當(dāng)我們需要進行大量的重復(fù)性仿真時,我們可以嘗試編寫一段python腳本幫助我們,正所謂磨刀不誤砍柴工嘛。
(內(nèi)容、圖片來源:CST仿真專家之路公眾號,侵刪)
版權(quán)與免責(zé)聲明:
凡未注明作者、來源的內(nèi)容均為轉(zhuǎn)載稿,如出現(xiàn)版權(quán)問題,請及時聯(lián)系我們處理。我們對頁面中展示內(nèi)容的真實性、準確性和合法性均不承擔(dān)任何法律責(zé)任。如內(nèi)容信息對您產(chǎn)生影響,請及時聯(lián)系我們修改或刪除。
[行業(yè)資訊] 達索系統(tǒng) SIMULIA Fe-safe技術(shù)論壇即將開講
2025-08-01
[ABAQUS] 哪些行業(yè)會用到碰撞安全仿真?Abaqus軟件在其中有何應(yīng)用
2025-08-01
[ABAQUS] Abaqus在疲勞耐久分析中的優(yōu)勢有哪些
2025-08-01
[ABAQUS] Abaqus結(jié)構(gòu)優(yōu)化仿真如何實現(xiàn)產(chǎn)品性能與經(jīng)濟性的平衡?
2025-08-01
2025-07-30
[CST] SIMULIA電磁仿真線上技術(shù)匯|專題三:CST低頻仿真高
2025-07-30
[行業(yè)資訊] 基于組合優(yōu)化策略的白車身輕量化設(shè)計
2025-07-29
[行業(yè)資訊] 復(fù)合材料單螺栓連接結(jié)構(gòu)預(yù)緊力的影響因素研究
2025-07-29
[行業(yè)資訊] 車輪損傷狀態(tài)下高速列車平穩(wěn)性和舒適度分析
2025-07-29
[有限元知識] SIMULIA 一文讀懂系列:高精度仿真技術(shù)破解風(fēng)電噪聲難
2025-07-28
[ABAQUS] abaqus單位設(shè)置【使用教程】
2023-08-29
2023-08-24
[ABAQUS] ABAQUS如何建模?ABAQUS有限元分析教程
2023-07-07
[ABAQUS] 有限元分析軟件abaqus單位在哪設(shè)置?【操作教程】
2023-09-05
[ABAQUS] ABAQUS軟件中Interaction功能模塊中的綁定接
2023-07-19
[ABAQUS] Abaqus怎么撤回上一步操作?Abauqs教程
2024-05-01
[ABAQUS] abaqus里面s11、s12和u1、u2是什么意思?s和
2023-08-30
[ABAQUS] Abaqus單位對應(yīng)關(guān)系及參數(shù)介紹-Abaqus軟件
2023-11-20
[ABAQUS] ABAQUS軟件教程|場變量輸出歷史變量輸出
2023-07-18
[ABAQUS] Abaqus中的S、U、V、E、CF分別是什么意思?
2024-05-11
[行業(yè)資訊] 達索系統(tǒng) SIMULIA Fe-safe技術(shù)論壇即將開講
2025-08-01
[行業(yè)資訊] 基于組合優(yōu)化策略的白車身輕量化設(shè)計
2025-07-29
[行業(yè)資訊] 復(fù)合材料單螺栓連接結(jié)構(gòu)預(yù)緊力的影響因素研究
2025-07-29
[行業(yè)資訊] 車輪損傷狀態(tài)下高速列車平穩(wěn)性和舒適度分析
2025-07-29
[有限元知識] SIMULIA 一文讀懂系列:高精度仿真技術(shù)破解風(fēng)電噪聲難
2025-07-28
2025-07-28
[行業(yè)資訊] 制造企業(yè)是如何發(fā)掘仿真軟件價值的
2025-07-25
[行業(yè)資訊] 達索有限元仿真軟件Abaqus一套多少錢?
2025-07-24
[行業(yè)資訊] 通過XFlow和Simpack動力集中動車組單線隧道內(nèi)列尾
2025-07-23
[行業(yè)資訊] SIMULIA的可靠航空通信與導(dǎo)航系統(tǒng)解決方案
2025-07-23