SLiCAP模擬電路設(shè)計(jì)簡(jiǎn)介
學(xué)習(xí)如何使用基于Python的符號(hào)模擬器程序SLiCAP設(shè)計(jì)和驗(yàn)證模擬電路。
本文引用地址:http://cafeforensic.com/article/202411/464795.htm讓我們面對(duì)現(xiàn)實(shí)吧——從SPICE模擬中提取有用的設(shè)計(jì)信息可能具有挑戰(zhàn)性。如果你是一名模擬設(shè)計(jì)師,你花了多少時(shí)間在SPICE中更改參數(shù),迭代地重新運(yùn)行程序,并檢查數(shù)值結(jié)果?
在本文中,我們將討論一個(gè)有用的開(kāi)源Python包,稱為SLiCAP(符號(hào)線性電路分析程序的縮寫)。正如我們將看到的,SLiCAP通過(guò)提供設(shè)計(jì)信息來(lái)補(bǔ)充基于SPICE的標(biāo)準(zhǔn)模擬器,而不需要繁瑣的試錯(cuò)程序。我們將首先介紹SLiCAP的一些關(guān)鍵功能;然后,我們將通過(guò)使用SLiCAP設(shè)計(jì)和驗(yàn)證一個(gè)簡(jiǎn)單的負(fù)反饋電壓放大器來(lái)演示這些功能。
SLiCAP能做什么?
SLiCAP最大的賣點(diǎn)之一是它能夠求解線性電路設(shè)計(jì)方程。它可以計(jì)算直流和動(dòng)態(tài)頻率行為的電路解,在后一種情況下,使用拉普拉斯域傳遞函數(shù)、根軌跡分析和零極點(diǎn)分析。符號(hào)和數(shù)字噪聲分析也是可能的。
SLiCAP還具有專用的參數(shù)步進(jìn)功能。許多器件,例如晶體管,表現(xiàn)為非線性。我們可以使用參數(shù)步進(jìn)函數(shù)來(lái)改變這些組件線性化的操作點(diǎn)。
對(duì)于我們這些不太喜歡文檔的人來(lái)說(shuō),SLiCAP也可以在這方面提供幫助。Python應(yīng)用程序允許我們?cè)诤筇幚砟_本中直接使用SLiCAP輸出。當(dāng)我們完成設(shè)計(jì)過(guò)程時(shí),應(yīng)用程序可以同時(shí)生成記錄它的HTML頁(yè)面。
請(qǐng)注意,這是對(duì)SLiCAP功能的介紹,而不是一個(gè)全面的列表。我們將在本文稍后討論更多內(nèi)容,例如與網(wǎng)表生成相關(guān)的內(nèi)容。然而,建議讀者查閱SLiCAP手冊(cè),以更全面地了解該程序的功能。
手冊(cè)的“如何使用SLiCAP”部分包括詳細(xì)的工作流程。我們可以大致概括為:
設(shè)置電路網(wǎng)表。
在Python中定義SLiCAP指令。
執(zhí)行指令。
使用結(jié)果來(lái)確定電路參數(shù)的大?。ê筇幚恚┖?或驗(yàn)證您的設(shè)計(jì)。
生成索引HTML報(bào)告。
為了更好地理解SLiCAP提供了什么,讓我們通過(guò)一個(gè)設(shè)計(jì)示例來(lái)了解。
利用SLiCAP設(shè)計(jì)負(fù)反饋放大器
在這個(gè)例子中,我們將使用SLiCAP的漸近增益模型來(lái)設(shè)計(jì)負(fù)反饋放大器的增益和動(dòng)態(tài)行為。然后,我們將使用SLiCAP生成的波特圖在頻域中評(píng)估我們的設(shè)計(jì)。雖然我們不會(huì)深入探討編碼技術(shù),但這個(gè)例子應(yīng)該提供足夠的細(xì)節(jié)來(lái)說(shuō)明程序的底層設(shè)計(jì)理念。
要求
我們的目標(biāo)是設(shè)計(jì)具有以下規(guī)格的電壓-電壓放大器的關(guān)鍵組件:
源到負(fù)載的放大系數(shù)Av=20 V/V。
–3 dB帶寬(fBW)為500 kHz或更大。
為了演示,我們假設(shè)負(fù)載具有無(wú)限阻抗,而電源具有零阻抗。讓我們進(jìn)一步假設(shè)所選電路拓?fù)涫蔷哂须娮璺謮浩鞣答伜透咴鲆孢\(yùn)算放大器控制器的負(fù)反饋配置。我們最初的設(shè)計(jì)目標(biāo)現(xiàn)在歸結(jié)為:
確定兩個(gè)電阻器的尺寸。
選擇運(yùn)算放大器。
必須完成上述操作,以滿足Av和fBW的要求。
設(shè)置SLiCAP網(wǎng)表
為了解決網(wǎng)絡(luò)問(wèn)題,SLiCAP需要一個(gè)電路網(wǎng)表作為輸入。您可以手動(dòng)創(chuàng)建網(wǎng)表或?qū)刖W(wǎng)表——網(wǎng)表語(yǔ)法與SPICE兼容。如果您選擇手動(dòng)創(chuàng)建網(wǎng)表,SLiCAP有許多內(nèi)置模型,包括運(yùn)算放大器和晶體管的線性化模型,用于無(wú)源和有源元件。
因?yàn)殚喿x原理圖比網(wǎng)表文本更容易,所以您可能更喜歡在SPICE中構(gòu)建原理圖并生成網(wǎng)表。如果您選擇該路由,則可以將以下任何一種與SLiCAP設(shè)備符號(hào)一起使用:
KiCad
LTspice
gSchem
Lepton-eda
說(shuō)明和語(yǔ)法詳細(xì)信息可以在SLiCAP用戶指南中找到。
回到我們的設(shè)計(jì)示例,我選擇在LTspice中生成網(wǎng)表。此過(guò)程將生成.cir文件,如圖1所示,以及電路拓?fù)洹?/p>
圖1左:LTspice中的電路拓?fù)浜驮韴D捕獲 右:SLiCAP網(wǎng)表創(chuàng)建
內(nèi)置設(shè)備模型(上述.model語(yǔ)句中的OV)用作放大器的控制器。輸出端的電壓源由輸入端子之間的差分電壓控制,模擬電壓反饋運(yùn)算放大器的小信號(hào)動(dòng)態(tài)行為。
模型參數(shù)可用于確定輸入和輸出阻抗以及電壓增益的屬性。因?yàn)槲覀兿氡3诌@個(gè)例子簡(jiǎn)單,所以我們使用了一個(gè)高度理想化的運(yùn)算放大器模型。它的積分電壓增益等于 2πGBs2πGBs,其中GB是運(yùn)算放大器的增益帶寬乘積。
設(shè)計(jì)方法與漸近反饋模型
在我們運(yùn)行SLiCAP模擬之前,讓我們檢查一下我們將用于負(fù)反饋放大器的兩步設(shè)計(jì)方法。
在第一步中,我們通過(guò)將運(yùn)算放大器替換為零器(具有無(wú)限電流、電壓、跨導(dǎo)和跨阻抗增益的理想放大器)來(lái)確定理想增益。如果回路增益參考變量選擇正確,則這與漸近增益A∞(s)一致。通過(guò)假設(shè)控制器增益為無(wú)窮大,可以找到漸近增益。
在第二步中,我們確定控制器的非理想性的影響,包括有限的增益和帶寬限制。該信息嵌入拉普拉斯域伺服函數(shù)S(S)中,可以通過(guò)以下方程找到:
其中L(s)是環(huán)路增益。
源到負(fù)載增益G(s)是漸近增益和伺服增益的乘積:
簡(jiǎn)而言之,步驟1告訴您如何根據(jù)所需的傳遞函數(shù)設(shè)計(jì)反饋網(wǎng)絡(luò)。步驟2告訴您如何選擇控制器的性能方面(如增益和帶寬),以便源負(fù)載增益G(s)仍然可以接受。這種方法的優(yōu)點(diǎn)在于將反饋網(wǎng)絡(luò)的設(shè)計(jì)與控制器的設(shè)計(jì)分開(kāi)。
有關(guān)兩步設(shè)計(jì)方法和漸近反饋模型的更多信息,請(qǐng)參閱Anton Montagne的“結(jié)構(gòu)化電子設(shè)計(jì):放大器設(shè)計(jì)的概念方法”。這本書(shū)可以在網(wǎng)上免費(fèi)下載PDF。
定義和執(zhí)行指令
讓我們從SLiCAP設(shè)計(jì)過(guò)程中中斷的地方繼續(xù)。到目前為止,我們已經(jīng)通過(guò)網(wǎng)表定義了電路。下一步將定義SLiCAP指令,為我們感興趣的特定性能方面提供信息。這就是Python編碼的開(kāi)始。
定義指令的第一步是創(chuàng)建指令對(duì)象的實(shí)例,并將電路對(duì)象分配給指令。如圖2中的代碼片段所示,這意味著將之前創(chuàng)建的.cir網(wǎng)表文件連接到指令。
圖2創(chuàng)建SLiCAP指令實(shí)例并將其連接到.cir網(wǎng)表文件
請(qǐng)記住,我們感興趣的是設(shè)計(jì)源到負(fù)載的傳遞函數(shù)G(s),使直流電壓增益為Av=20,帶寬fBW=500 kHz。因此,我們希望獲得符號(hào)設(shè)計(jì)方程。因此,我們將模擬類型設(shè)置為符號(hào)。由于這些需要是拉普拉斯域傳遞函數(shù),我們還將數(shù)據(jù)類型設(shè)置為拉普拉斯。
電源電壓和負(fù)載(檢測(cè)器)電壓也需要定義。我們還希望使用漸近增益模型作為設(shè)計(jì)方法,這要求我們定義一個(gè)環(huán)路增益參考變量。這將是用作控制器的運(yùn)算放大器模型的電壓控制電壓源。
上述所有指令屬性都已編碼,如圖3所示。
圖3 用Python編寫SLiCAP指令屬性并執(zhí)行指令
在執(zhí)行指令之前,我們還有最后一步要完成,即定義增益類型?;叵胍幌律弦还?jié),源到負(fù)載的傳遞、漸近增益和伺服增益之間存在關(guān)系。此外,伺服增益取決于環(huán)路增益。這就是為什么在圖3中,我們對(duì)每種增益類型執(zhí)行一次指令。
使用SLiCAP輸出進(jìn)行設(shè)計(jì)
現(xiàn)在我們已經(jīng)運(yùn)行了模擬,我們可以使用結(jié)果來(lái)促進(jìn)我們的設(shè)計(jì)過(guò)程。圖4顯示了運(yùn)行Python腳本生成的HTML報(bào)告的一部分。
圖4生成的HTML報(bào)告的片段,顯示了不同增益類型的電壓放大器傳遞函數(shù)
正如預(yù)期的那樣,漸近增益(A∞)僅取決于電阻反饋比。由于電壓增益要求(Av=20),該比率已經(jīng)固定。
另一方面,環(huán)路增益表現(xiàn)為積分器,單位增益頻率等于GB和電阻反饋比的乘積。我們還可以從圖4的輸出中觀察到,環(huán)路增益的單位增益頻率將決定伺服函數(shù)的帶寬S(S)和源到負(fù)載的傳輸帶寬G(S)。
這些觀察結(jié)果為我們的設(shè)計(jì)奠定了基礎(chǔ)。由于電阻比已經(jīng)由Av要求固定,很明顯,電路的帶寬只能通過(guò)改變所選運(yùn)算放大器的增益帶寬積來(lái)設(shè)計(jì)。
接下來(lái),讓我們使用Python作為計(jì)算器來(lái)完成我們的設(shè)計(jì)。圖5顯示了當(dāng)我們使用設(shè)計(jì)方程來(lái)確定電阻器的尺寸以使Av=20時(shí)產(chǎn)生的HTML輸出。
圖5 生成的HTML報(bào)告的片段,顯示了基于Av要求的R1計(jì)算
基于這個(gè)電阻分壓比,我們?cè)谶x擇R1和R2時(shí)有一個(gè)自由度。在這種情況下,我們選擇R1并根據(jù)給定的公式計(jì)算R2。一般來(lái)說(shuō),我們會(huì)添加限制設(shè)計(jì)自由度的噪聲和功耗要求,但這些超出了這個(gè)簡(jiǎn)單示例的范圍。
最后,圖6顯示了用于確定運(yùn)算放大器最小增益帶寬乘積的HTML輸出。
圖6生成的HTML報(bào)告的片段,顯示帶寬要求的最小GB計(jì)算
順便說(shuō)一句,您可能已經(jīng)注意到上圖中的“環(huán)路增益極點(diǎn)乘積”。雖然我們不會(huì)在本文中討論它,但我之前提到的教科書(shū)第11章對(duì)環(huán)路增益極點(diǎn)積的概念(和重要性)進(jìn)行了深入的解釋。
SLiCAP中的設(shè)計(jì)驗(yàn)證
我們最初的設(shè)計(jì)目標(biāo)——正確確定R1、R2和GB的大小——現(xiàn)在已經(jīng)實(shí)現(xiàn)。然而,我們?nèi)孕栩?yàn)證這三個(gè)參數(shù)是否滿足性能要求。為此,我們?cè)赟LiCAP中使用選定的參數(shù)值運(yùn)行數(shù)值模擬。然后,SLiCAP Python包將為我們一直在研究的不同增益類型創(chuàng)建波特圖:
漸近增益。
環(huán)路增益。
伺服增益。
源到負(fù)載的轉(zhuǎn)換(簡(jiǎn)稱為增益)。
圖7和圖8分別顯示了震級(jí)和相位波特圖。
圖7 SLiCAP為R1=190 kΩ,R2=10 kΩ,GB=10 MHz生成的幅度波特圖
圖8 SLiCAP生成的R1=190 kΩ、R2=10 kΩ、GB=10 MHz的相位波特圖
源到負(fù)載的傳輸具有Av=20的直流幅度(約等于26dB)和fBW=500kHz的帶寬,這意味著滿足了要求。其他增益類型對(duì)應(yīng)于我們之前發(fā)現(xiàn)的拉普拉斯傳遞函數(shù)。超出帶寬的G(s)和s(s)的一階衰減來(lái)自環(huán)路增益中的一階積分器,環(huán)路增益本身來(lái)自運(yùn)算放大器的電壓增益。
總結(jié)
我們?cè)诒疚闹惺褂玫哪P头浅:?jiǎn)單,可能太簡(jiǎn)單了,無(wú)法準(zhǔn)確地表示一個(gè)真實(shí)的應(yīng)用程序。更現(xiàn)實(shí)的示例電路可能包括以下任何或所有內(nèi)容:
負(fù)載阻抗。
源阻抗。
運(yùn)算放大器輸入和輸出阻抗。
運(yùn)算放大器電壓增益中的額外極點(diǎn)和零點(diǎn)。
在設(shè)計(jì)過(guò)程的第一部分,訣竅是了解在環(huán)路增益中引入主導(dǎo)極點(diǎn)和/或零點(diǎn)的模型組件。這應(yīng)該返回有限階環(huán)路增益?zhèn)鬟f函數(shù),有助于確保零極點(diǎn)位置滿足帶寬要求。稍后,我們可以在數(shù)值模擬中增加復(fù)雜性,以驗(yàn)證整個(gè)電路。
盡管簡(jiǎn)單,但我們的設(shè)計(jì)示例準(zhǔn)確地反映了SLiCAP的結(jié)構(gòu)化設(shè)計(jì)理念。在更實(shí)際的層面上,它表明SLiCAP能夠在相當(dāng)短的時(shí)間內(nèi)呈現(xiàn)有助于元件選擇、驗(yàn)證電路和記錄過(guò)程的方程。總而言之,SLiCAP為模擬電子工程師提供了一個(gè)絕佳的機(jī)會(huì),可以加快和自動(dòng)化他們的一些放大器設(shè)計(jì)。
評(píng)論