2020年7月12日 星期日

利用UDP(User Defined Primitives)建立參數化螺旋電感簡介

螺旋電感在高頻晶片及模組上隨處可見,HFSS也經常用來計算螺旋電感的L值及Q值。然而電感結構五花八門,大小不一。許多設計者希望能透過程式自動生成螺旋電感模型,方便調整尺寸及圈數以快速找到所需的L/Q值。然而一般自動化程式雖然允許使用者設定參數(如圈數、線寬、間距、邊數、內徑、厚度...),如以下影片,但是生成出來的結構只能用在一次模擬。如果L/Q值不如預期,只能手動更改參數來生成結構,執行模擬。不斷的重複上述步驟,直到找到設計目標為止。雖然是省去了繪圖的時間,但是離完全自動化仍有一大段距離。


理想的流程是透過AEDT的優化引擎Optimetrics自動調整電感結構參數,檢查L/Q值直到找到符合設計目標的電感尺寸為止。要達到此目標,首先就是要讓結構可以參數化,然而這一點並不是那麼容易。AEDT的3D編輯環境可以做到一定程度的結構參數化,但僅限於簡單幾何操作,如平移、旋轉,張角等等。螺旋電感的結構過於複雜,無法用簡單的操作來達到參數化。要完成複雜結構參數化必須要借助UDP(User Defined Primitives)的技術。UDP的目的是讓使用著透過編程建立複雜3D結構。UDP的相關說明可參考HFSS Scripting Guide第三章。

(圖一)HFSS內建UDP範例

UDP基於物件的框架,開發者必須具備物件導向設計(OOP)的概念。繼承IUDPExtension類別,並必須實作類別當中的函式,使其可以相容AEDT。各位可以在HFSS當中開啟一個螺旋電感的UDP範例,如圖一。該範例的Python程式碼RectangularSpiral.py可以在C:\Program Files\AnsysEM\AnsysEM20.2\Win64\syslib\UserDefinedPrimitives\Examples\找到。要開發UDP比較簡單的做法是複製該檔案並修改當中的函式。要注意UDP當中能呼叫的函式與一般使用的Scripting函式不同。我們可以在HFSS Scripting Guide的UDPFunctionLibrary找到UDP函數的完整說明。 以下是其中幾個:

(圖二) UDP函式列表

這裡是以螺旋電感為例,但UDP使用並不侷限於螺旋電感。UDP產生的模型可以合併其他參數化模塊生成參數化的3D Component。


沒有留言:

張貼留言