新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > SLiCAP模擬電路設計簡介

        SLiCAP模擬電路設計簡介

        作者: 時間:2024-11-21 來源:EEPW編譯 收藏

        學習如何使用基于的符號模擬器程序SLiCAP設計和驗證模擬電路。

        本文引用地址:http://www.104case.com/article/202411/464795.htm

        讓我們面對現實吧——從SPICE模擬中提取有用的設計信息可能具有挑戰性。如果你是一名模擬設計師,你花了多少時間在SPICE中更改參數,迭代地重新運行程序,并檢查數值結果?

        在本文中,我們將討論一個有用的開源包,稱為SLiCAP(符號線性電路分析程序的縮寫)。正如我們將看到的,SLiCAP通過提供設計信息來補充基于SPICE的標準模擬器,而不需要繁瑣的試錯程序。我們將首先介紹SLiCAP的一些關鍵功能;然后,我們將通過使用SLiCAP設計和驗證一個簡單的負反饋電壓放大器來演示這些功能。

        SLiCAP能做什么?

        SLiCAP最大的賣點之一是它能夠求解線性電路設計方程。它可以計算直流和動態頻率行為的電路解,在后一種情況下,使用拉普拉斯域傳遞函數、根軌跡分析和零極點分析。符號和數字噪聲分析也是可能的。

        SLiCAP還具有專用的參數步進功能。許多器件,例如晶體管,表現為非線性。我們可以使用參數步進函數來改變這些組件線性化的操作點。

        對于我們這些不太喜歡文檔的人來說,SLiCAP也可以在這方面提供幫助。應用程序允許我們在后處理腳本中直接使用SLiCAP輸出。當我們完成設計過程時,應用程序可以同時生成記錄它的HTML頁面。

        請注意,這是對SLiCAP功能的介紹,而不是一個全面的列表。我們將在本文稍后討論更多內容,例如與網表生成相關的內容。然而,建議讀者查閱SLiCAP手冊,以更全面地了解該程序的功能。

        手冊的“如何使用SLiCAP”部分包括詳細的工作流程。我們可以大致概括為:

        設置電路網表。

        在Python中定義SLiCAP指令。

        執行指令。

        使用結果來確定電路參數的大小(后處理)和/或驗證您的設計。

        生成索引HTML報告。

        為了更好地理解SLiCAP提供了什么,讓我們通過一個設計示例來了解。

        利用SLiCAP設計負反饋放大器

        在這個例子中,我們將使用SLiCAP的漸近增益模型來設計負反饋放大器的增益和動態行為。然后,我們將使用SLiCAP生成的波特圖在頻域中評估我們的設計。雖然我們不會深入探討編碼技術,但這個例子應該提供足夠的細節來說明程序的底層設計理念。

        要求

        我們的目標是設計具有以下規格的電壓-電壓放大器的關鍵組件:

        源到負載的放大系數Av=20 V/V。

        –3 dB帶寬(fBW)為500 kHz或更大。

        為了演示,我們假設負載具有無限阻抗,而電源具有零阻抗。讓我們進一步假設所選電路拓撲是具有電阻分壓器反饋和高增益運算放大器控制器的負反饋配置。我們最初的設計目標現在歸結為:

        確定兩個電阻器的尺寸。

        選擇運算放大器。

        必須完成上述操作,以滿足Av和fBW的要求。

        設置SLiCAP網表

        為了解決網絡問題,SLiCAP需要一個電路網表作為輸入。您可以手動創建網表或導入網表——網表語法與SPICE兼容。如果您選擇手動創建網表,SLiCAP有許多內置模型,包括運算放大器和晶體管的線性化模型,用于無源和有源元件。

        因為閱讀原理圖比網表文本更容易,所以您可能更喜歡在SPICE中構建原理圖并生成網表。如果您選擇該路由,則可以將以下任何一種與SLiCAP設備符號一起使用:

        KiCad

        LTspice

        gSchem

        Lepton-eda

        說明和語法詳細信息可以在SLiCAP用戶指南中找到。

        回到我們的設計示例,我選擇在LTspice中生成網表。此過程將生成.cir文件,如圖1所示,以及電路拓撲。

         

        1.png

        圖1左:LTspice中的電路拓撲和原理圖捕獲 右:SLiCAP網表創建

        內置設備模型(上述.model語句中的OV)用作放大器的控制器。輸出端的電壓源由輸入端子之間的差分電壓控制,模擬電壓反饋運算放大器的小信號動態行為。

        模型參數可用于確定輸入和輸出阻抗以及電壓增益的屬性。因為我們想保持這個例子簡單,所以我們使用了一個高度理想化的運算放大器模型。它的積分電壓增益等于 2πGBs2πGBs,其中GB是運算放大器的增益帶寬乘積。

        設計方法與漸近反饋模型

        在我們運行SLiCAP模擬之前,讓我們檢查一下我們將用于負反饋放大器的兩步設計方法。

        在第一步中,我們通過將運算放大器替換為零器(具有無限電流、電壓、跨導和跨阻抗增益的理想放大器)來確定理想增益。如果回路增益參考變量選擇正確,則這與漸近增益A∞(s)一致。通過假設控制器增益為無窮大,可以找到漸近增益。

        在第二步中,我們確定控制器的非理想性的影響,包括有限的增益和帶寬限制。該信息嵌入拉普拉斯域伺服函數S(S)中,可以通過以下方程找到:

        2.png

        其中L(s)是環路增益。

        源到負載增益G(s)是漸近增益和伺服增益的乘積:

        3.png

        簡而言之,步驟1告訴您如何根據所需的傳遞函數設計反饋網絡。步驟2告訴您如何選擇控制器的性能方面(如增益和帶寬),以便源負載增益G(s)仍然可以接受。這種方法的優點在于將反饋網絡的設計與控制器的設計分開。

        有關兩步設計方法和漸近反饋模型的更多信息,請參閱Anton Montagne的“結構化電子設計:放大器設計的概念方法”。這本書可以在網上免費下載PDF。

        定義和執行指令

        讓我們從SLiCAP設計過程中中斷的地方繼續。到目前為止,我們已經通過網表定義了電路。下一步將定義SLiCAP指令,為我們感興趣的特定性能方面提供信息。這就是Python編碼的開始。

        定義指令的第一步是創建指令對象的實例,并將電路對象分配給指令。如圖2中的代碼片段所示,這意味著將之前創建的.cir網表文件連接到指令。

         4.png

        圖2創建SLiCAP指令實例并將其連接到.cir網表文件

        請記住,我們感興趣的是設計源到負載的傳遞函數G(s),使直流電壓增益為Av=20,帶寬fBW=500 kHz。因此,我們希望獲得符號設計方程。因此,我們將模擬類型設置為符號。由于這些需要是拉普拉斯域傳遞函數,我們還將數據類型設置為拉普拉斯。

        電源電壓和負載(檢測器)電壓也需要定義。我們還希望使用漸近增益模型作為設計方法,這要求我們定義一個環路增益參考變量。這將是用作控制器的運算放大器模型的電壓控制電壓源。

        上述所有指令屬性都已編碼,如圖3所示。

         5.png

        圖3 用Python編寫SLiCAP指令屬性并執行指令

        在執行指令之前,我們還有最后一步要完成,即定義增益類型。回想一下上一節,源到負載的傳遞、漸近增益和伺服增益之間存在關系。此外,伺服增益取決于環路增益。這就是為什么在圖3中,我們對每種增益類型執行一次指令。

        使用SLiCAP輸出進行設計

        現在我們已經運行了模擬,我們可以使用結果來促進我們的設計過程。圖4顯示了運行Python腳本生成的HTML報告的一部分。

         6.png

        圖4生成的HTML報告的片段,顯示了不同增益類型的電壓放大器傳遞函數

        正如預期的那樣,漸近增益(A∞)僅取決于電阻反饋比。由于電壓增益要求(Av=20),該比率已經固定。

        另一方面,環路增益表現為積分器,單位增益頻率等于GB和電阻反饋比的乘積。我們還可以從圖4的輸出中觀察到,環路增益的單位增益頻率將決定伺服函數的帶寬S(S)和源到負載的傳輸帶寬G(S)。

        這些觀察結果為我們的設計奠定了基礎。由于電阻比已經由Av要求固定,很明顯,電路的帶寬只能通過改變所選運算放大器的增益帶寬積來設計。

        接下來,讓我們使用Python作為計算器來完成我們的設計。圖5顯示了當我們使用設計方程來確定電阻器的尺寸以使Av=20時產生的HTML輸出。

         7.png

        圖5 生成的HTML報告的片段,顯示了基于Av要求的R1計算

        基于這個電阻分壓比,我們在選擇R1和R2時有一個自由度。在這種情況下,我們選擇R1并根據給定的公式計算R2。一般來說,我們會添加限制設計自由度的噪聲和功耗要求,但這些超出了這個簡單示例的范圍。

        最后,圖6顯示了用于確定運算放大器最小增益帶寬乘積的HTML輸出。

         8.png

        圖6生成的HTML報告的片段,顯示帶寬要求的最小GB計算

        順便說一句,您可能已經注意到上圖中的“環路增益極點乘積”。雖然我們不會在本文中討論它,但我之前提到的教科書第11章對環路增益極點積的概念(和重要性)進行了深入的解釋。

        SLiCAP中的設計驗證

        我們最初的設計目標——正確確定R1、R2和GB的大小——現在已經實現。然而,我們仍需驗證這三個參數是否滿足性能要求。為此,我們在SLiCAP中使用選定的參數值運行數值模擬。然后,SLiCAP Python包將為我們一直在研究的不同增益類型創建波特圖:

        漸近增益。

        環路增益。

        伺服增益。

        源到負載的轉換(簡稱為增益)。

        圖7和圖8分別顯示了震級和相位波特圖。

         9.png

        圖7 SLiCAP為R1=190 kΩ,R2=10 kΩ,GB=10 MHz生成的幅度波特圖

         10.png

        圖8 SLiCAP生成的R1=190 kΩ、R2=10 kΩ、GB=10 MHz的相位波特圖

        源到負載的傳輸具有Av=20的直流幅度(約等于26dB)和fBW=500kHz的帶寬,這意味著滿足了要求。其他增益類型對應于我們之前發現的拉普拉斯傳遞函數。超出帶寬的G(s)和s(s)的一階衰減來自環路增益中的一階積分器,環路增益本身來自運算放大器的電壓增益。

        總結

        我們在本文中使用的模型非常簡單,可能太簡單了,無法準確地表示一個真實的應用程序。更現實的示例電路可能包括以下任何或所有內容:

        負載阻抗。

        源阻抗。

        運算放大器輸入和輸出阻抗。

        運算放大器電壓增益中的額外極點和零點。

        在設計過程的第一部分,訣竅是了解在環路增益中引入主導極點和/或零點的模型組件。這應該返回有限階環路增益傳遞函數,有助于確保零極點位置滿足帶寬要求。稍后,我們可以在數值模擬中增加復雜性,以驗證整個電路。

        盡管簡單,但我們的設計示例準確地反映了SLiCAP的結構化設計理念。在更實際的層面上,它表明SLiCAP能夠在相當短的時間內呈現有助于元件選擇、驗證電路和記錄過程的方程。總而言之,SLiCAP為模擬電子工程師提供了一個絕佳的機會,可以加快和自動化他們的一些放大器設計。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 清苑县| 社会| 星座| 磴口县| 临泉县| 商洛市| 阿拉善左旗| 东城区| 凤城市| 龙岩市| 稻城县| 皋兰县| 高尔夫| 称多县| 得荣县| 陆川县| 铜陵市| 嘉善县| 股票| 申扎县| 垫江县| 沂水县| 东山县| 介休市| 瓮安县| 江西省| 合作市| 汝州市| 历史| 郓城县| 镇原县| 仙居县| 临潭县| 敖汉旗| 衡阳市| 沐川县| 轮台县| 安新县| 榆社县| 宝坻区| 永吉县|