CST-Python實例教程一:搭建 Python 環(huán)境
背景
在工程設計、求解計算的過程中,往往存在大量重復性的工作,這些工作不僅耗時耗力,而且容易出錯。為了提高工作效率,減少人為錯誤,我們希望這些重復性工作能夠被計算機自動完成,從而讓工程師從繁重的重復性勞動中解放出來,將更多的精力投入到創(chuàng)造性的工作中。
腳本是一種常用的自動化形式,它通過編寫一系列的指令,讓計算機或程序按照既定的順序執(zhí)行這些指令,從而完成一系列的自動化操作。
Python 是一種廣泛使用的腳本語言。Jupyter Notebook 是基于網頁的用于交互計算的應用程序,可以以網頁的形式打開 Python 項目,在網頁中直接編寫運行腳本。
CST Studio Suite(R) 提供了 Python 編程接口,也提供了在 Python 環(huán)境中執(zhí)行 VB 腳本的接口。并且,在 CST Studio Suite 2024 中,CST Python Libraries 的特性得到了更新。通過腳本控制 CST Studio Suite,工程師可以將這些重復性的工作交給計算機自動完成,例如編寫相應的算法讓計算機自動尋找最優(yōu)解,從而大大提高求解計算的效率。
現(xiàn)在,我們將使用 Jupyter Notebook 連接到 CST Studio Suite,通過一個演示案例,完成腳本控制建立模型、查看結果等工作,并在 Python 中進行更多自動化任務。
內容介紹
CST Studio Suite(R) Python Automation and Scripting 系列文章,將會為您詳細介紹使用 Jupyter Notebook 連接到 CST Studio Suite 進行腳本控制與自動化仿真的方方面面。
文章共分為5個部分,分別介紹以下內容:
搭建 Python 環(huán)境
控制 CST 建模
仿真并繪制結果
仿真優(yōu)化
外部后處理
本期為第 1 篇文章,詳細介紹如何搭建 Python 測試環(huán)境。
安裝 Python
Python 版本選擇
Python 生命周期與 CST 兼容性
安裝來源
設置環(huán)境變量
驗證 Python 是否成功安裝
安裝 Jupyter
設置下載源
安裝 Jupyter
驗證 Jupyter Notebook 能否順利啟動
啟動 Jupyter Notebook
加載測試文件
在 Jupyter 中運行 Python
安裝必要的庫
檢查 CST 相關庫和接口是否正確
調用 CST Design Environment
創(chuàng)建空項目
查詢求解器
創(chuàng)建參數(shù)
測試環(huán)境
安裝 Python
Python 版本選擇
在 CST Studio Suite 2024 幫助頁面中標明,支持的版本為 Python 3.6-3.11 版本。
在開始測試之前,可以檢查計算機是否已安裝符合要求的 Python,例如在已安裝應用列表中查閱,如未找到則需要手動安裝 Python。
Python 生命周期與 CST 兼容性
根據(jù)Python Developer’s Guide
的信息(https://devguide.python.org/versions/#branchstatus),目前的發(fā)行的 Python 版本,狀態(tài)為security
的有 3.8-3.11 。
其中,在嘗試使用 3.11 版部署環(huán)境時,安裝上述cst-studio-suite-link
包的時候,有一定概率會提示錯誤,錯誤信息表明cst-studio-suite-link
包要求的 Python 版本是小于 3.11。
因此,可以根據(jù)自身情況安裝 3.10 或 3.9,這里以 3.10 版本為例。
安裝來源
Python 的來源可以為 Python 官網和 Microsoft Store,可以根據(jù)自身情況選擇安裝途徑。
如果選擇從 Python 官網下載安裝:
訪問 Python 官網(https://www.Python.org/downloads/)下載并安裝 Python。
安裝過程中,確保選擇了
Add Python to PATH
選項,以便在命令行中直接運行 Python。根據(jù)安裝程序的指引完成安裝過程。
如果選擇從 Microsoft Store下載安裝:
打開 Microsoft Store,搜索“Python 3.10”,選擇
安裝
或下載
。Windows 系統(tǒng)會自動在后臺下載并安裝。
手動設置環(huán)境變量(后面會詳細介紹)。
設置環(huán)境變量
如果使用 Python 官網下載的安裝包安裝,并勾選了Add Python to PATH
選項,則可以忽略該步驟。
在 Windows 系統(tǒng)中,按照以下步驟操作:
右鍵點擊“此電腦”或“我的電腦”,選擇“屬性”。
點擊“高級系統(tǒng)設置”。
在“系統(tǒng)屬性”窗口中,點擊“環(huán)境變量”按鈕。
在“系統(tǒng)變量”區(qū)域,找到并選擇“Path”變量,然后點擊“編輯”。
點擊“新建”,然后添加以下內容:
C:\Users\<username>\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\Scripts
其中,
<username>
表示當前用戶名。點擊“確定”保存更改,并繼續(xù)點擊“確定”關閉所有打開的窗口。
可能需要重新打開 cmd 或者重新啟動計算機,以使更改生效。
驗證 Python 是否成功安裝
打開 cmd,在命令行中輸入python
,若返回以下信息,則代表 Python 已經成功安裝。
Python 3.10.xx ...Type "help", "copyright", "credits" or "license" for more information.
安裝 Jupyter
成功安裝 Python 后,進一步部署 Jupyter。
設置下載源
安裝 Jupyter Notebook 之前,為了提升下載安裝的體驗,建議先手動設置國內的下載源。
我們推薦將下載源設置為清華大學,以管理員身份打開 cmd,輸入對應指令
python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip #升級pippip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple #將該地址設為默認下載源
具體信息可以參考https://mirrors.tuna.tsinghua.edu.cn/help/pypi/。
安裝 Jupyter
pip install jupyter
通常而言,默認下載源的下載速率約為 20kB/s,如果下載速率太慢,或者無法全局設置國內的源,可以在下載時臨時使用清華的源。代碼如下:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jupyter
這時候會進入下載與安裝界面,從命令行窗口返回的信息中可以看到,下載速率可達到 10+MB/s。
驗證 Jupyter Notebook 能否順利啟動
在 cmd 中輸入以下內容(注意全是小寫)
jupyter notebook
若一切順利,會出現(xiàn)以下反饋:
cmd 窗口中顯示啟動過程,并提示相關信息。
默認瀏覽器會打開,并出現(xiàn) Jupyter Notebook 控制臺。
如果出現(xiàn)了問題,可參考以下解決方案:
問題 | 原因 | 解決方案 |
---|---|---|
cmd 窗口提示警告,存在環(huán)境變量相關內容 | 安裝的某些腳本(例如qtpy.exe 和jupyter-console.exe )被放置在了系統(tǒng)PATH環(huán)境變量之外的目錄中。 | 添加目錄到環(huán)境變量中,或者使用完整的路徑運行腳本。 |
cmd 窗口未報錯,但瀏覽器窗口提示提示 ERR_FILE_NOT_FOUND(未找到文件它可能已被移動、編輯或刪除) | 添加環(huán)境變量后未重啟Jupyter服務 | 關閉瀏覽器窗口與命令行窗口,嘗試重啟 Jupyter 服務。如無效則嘗試重啟計算機。 |
準備工作
啟動 Jupyter Notebook
在 cmd 中輸入以下內容(注意全是小寫)
jupyter notebook
即可進入控制臺(即自動打開的瀏覽器彈窗)。
加載測試文件
在 Jupyter 控制臺的導航窗口中打開待測案例的腳本文件,雙擊或者選中后點擊open
打開。
隨后瀏覽器會彈出一個新的標簽頁面打開該文件。
在 Jupyter 中運行 Python
如何運行一個 Jupyter Notebook 工程?我們可以查看下面這個案例:用 Python 計算π
# some python code to calculate piimport mathpi_estimate = 0.0terms_in_series = 50for k in range(terms_in_series): pi_estimate += (-1.0/3.0)**k/(2.0*k+1.0)pi_estimate = math.sqrt(12)*pi_estimateprint("Pi is approximately {0}".format(pi_estimate))
要運行該單元格中的代碼,請執(zhí)行以下兩個步驟:
點擊單元格,以選定該單元。
同時按下鍵盤上的
SHIFT+ENTER
鍵, 或者點擊上方工具欄中的“”按鈕。
成功運行后,該單元格的下行會展示運行結果,如圖所示。
安裝必要的庫
在介紹與 CST Studio Suite 相關的特定導入之前,讓我們先導入幾個我們將要使用的通用庫。
運行以下代碼,報錯提示缺少庫的時候,使用pip
安裝缺少的庫,直到無報錯出現(xiàn)。
import timeimport numpy as npimport matplotlib.pyplot as pltfrom scipy.optimize import minimizeimport tempfiletmp = tempfile.gettempdir()%matplotlib notebook
使用pip
安裝庫時,將報錯的內容(提示缺少xx庫),復制庫的名稱,替換下面命令的numpy
,然后運行即可。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
檢查 CST 相關庫和接口是否正確
現(xiàn)在,開始執(zhí)行下面的代碼,加載一些 CST Python 庫。
# cst related importsimport cstimport cst.interfaceimport cst.resultsprint(cst.__file__) # should print '<PATH_TO_CST_AMD64>\python_cst_libraries\cst\__init__.py'
成功
如果成功執(zhí)行該命令,該單元格的輸出將打印庫的路徑,例如C:\Program Files (x86)\CST Studio Suite 2020\AMD64\python_cst_libraries\cst\__init__.py
在這種情況下,可以直接導入 CST Python 庫,這是因為在該解釋器中安裝了一個最小軟件包,該軟件包與實際安裝的 CST Studio Suite 相鏈接。
更多信息請參見在線幫助中的概述。
失敗
如果您沒有安裝該軟件包,或者添加/修改了PythonPath
系統(tǒng)環(huán)境變量(不推薦),您可以使用sys.path.append
方法來確保您的解釋器可以找到 CST Python 庫。
import syssys.path.append("C:\Program Files (x86)\CST Studio Suite 2022\AMD64\python_cst_libraries")# cst related importsimport cstimport cst.interfaceimport cst.resultsprint(cst.__file__) # should print '<PATH_TO_CST_AMD64>\python_cst_libraries\cst\__init__.py'
調用 CST Design Environment
現(xiàn)在,讓我們調用 CST Design Environment,開始初始化“連接”。
project = cst.interface.DesignEnvironment()
執(zhí)行該代碼,打開 CST Design Environment,會出現(xiàn)提示“靜態(tài)/腳本模式已激活,彈出窗口已被阻止”彈窗,點擊“Swich to Interactive Mode”切換到交互模式即可。
創(chuàng)建空項目
然后運行下面的單元格,創(chuàng)建一個空的 CST Microwave Studio 項目。
mws_project = project.new_mws()
mws_project.activate()
參數(shù)activate()
會確保我們創(chuàng)建的項目是當前激活的項目。
在做其他事情之前,我們先將項目保存在當前用戶的TEMP
文件夾中,即C:\Users\<Users>\AppData\Local\Temp
路徑。
mws_project.save(tmp+"\CST_TEST.cst")
如果提示“文件已存在”,說明此前已經保存過該文件到該目錄,沒有賦予文件操作相關的命令,無法覆蓋保存。
可以修改擬保存的項目名稱,也可以在文件管理器中訪問該路徑刪除原有文件。
此外,用戶也可以根據(jù)自己的需求,將項目文件保存到指定的位置。
查詢求解器
作為最后的通信檢查,我們將查詢激活的 3D 求解器。請執(zhí)行下面的單元格并觀察輸出。
mws_project.model3d.get_active_solver_name()
然后,在 CST Microwave Studio 中更改求解器,并再次執(zhí)行該代碼。
創(chuàng)建參數(shù)
下面的單元格將用 Python 在模型中創(chuàng)建/更改一個名為offset
的參數(shù)。
mws_project.model3d.StoreDoubleParameter("offset",3)
請檢查該參數(shù)在項目參數(shù)列表中是否可見。
總結
在整個測試的過程中,若注意以下問題,將會使得整個測試過程更加順利:
安裝適合的 Python 版本,并正確地添加環(huán)境變量。
將 Python 的下載源設置為國內的源,例如清華大學。
在測試過程中,如遇到 IPython 相關的警告或報錯,可以考慮將
%matplotlib notebook
替換成%matplotlib inline
。