2020年6月26日 星期五

如何利用Python呼叫nexxim.exe執行電路模擬

在AEDT的電路模擬當中,我們習慣用原理圖(schematic)來建構電路(圖一)。原理圖的好處是容易閱讀及編輯。但是在執行模擬時,原理圖會先被轉換成網表(netlist,圖二),再透過電路模擬器nexxim.exe執行運算(DC, AC, Transient)之後輸出模擬結果。

其實我們也可以在命令列視窗當中或利用Python程式(圖三)讓nexxim.exe直接運算網表來得到模擬結果。因為少了原理圖轉換網表的工作,模擬時間可以大幅縮短。此外,不需要打開AEDT視窗也可以執行。模擬完成之後輸出的資料會以二進制格式儲存在sdf檔案當中。接下來便可以透過sdf2csv.exe將資料轉換成csv文字檔(圖四)。最後就可以在程式當中讀取csv作資料的分析了。

範例代碼如下:

import os
os.environ["PATH"] = 'C:/Program Files/AnsysEM/AnsysEM20.1/Win64'

import subprocess
subprocess.run(["nexxim.exe", "d:/demo/rc.cir"])
subprocess.run(["sdf2csv.exe", "d:/demo/rc.cir.sdf"])


(圖一)RC電路原理圖

(圖二)RC電路網表


(圖三)Python代碼執行模擬及轉換
(圖四)輸出的模擬資料

沒有留言:

張貼留言