電路分析與設(shè)計(jì) Spice 仿真指南:蒙特卡羅分析
蒙特卡羅分析是電子模擬中使用的一種技術(shù),用于運(yùn)行一系列具有隨機(jī)參數(shù)的模擬。它的名字源于這種技術(shù)利用隨機(jī)性,靈感來自著名的蒙特卡羅賭場(chǎng)。在電子模擬中,蒙特卡羅分析用于評(píng)估電子元件(電阻器、電容器、電感器等)和操作條件的變化對(duì)電路的影響。換句話說,模擬運(yùn)行多次,每次都有一組針對(duì)所考慮參數(shù)的隨機(jī)值。這些隨機(jī)值可以使用表示元件值變化的概率分布來獲得。
蒙特卡羅分析的實(shí)際應(yīng)用
通常,電子模擬使用電子元件的恒定值。實(shí)際上,這些值可能會(huì)有所不同,因?yàn)槊總€(gè)電子元件都不是理想的,而且外部工作條件總是不同的。例如,電阻的標(biāo)稱值可能是 100 歐姆,偏差為 5 歐姆,而蒙特卡羅模擬將考慮從正態(tài)分布中抽取的隨機(jī)值,平均值為 100 歐姆,偏差為 5 歐姆,因此隨機(jī)取值在 95 到 105 歐姆之間。使用 100 歐姆電阻器和 5 歐姆偏差對(duì)電路進(jìn)行蒙特卡羅模擬可能會(huì)生成以下電阻值:96、102、100、97 和 103 歐姆。蒙特卡羅分析可用于估計(jì)元件值變化對(duì)電路行為的影響。它對(duì)于評(píng)估具有公差或不確定性組件的系統(tǒng)特別有用。蒙特卡羅分析可用于改進(jìn)電路設(shè)計(jì),提高其可靠性。為此,可以設(shè)計(jì)電路,使其行為即使在最極端的條件下也能滿足所需的規(guī)格。由于組件值的變化是隨機(jī)的,因此這種類型的分析可以提供更真實(shí)的模擬系統(tǒng)結(jié)果。它涉及大量分析的模擬,其中每個(gè)組件的值在所需范圍內(nèi)隨機(jī)變化。隨機(jī)生成算法應(yīng)保證最高的隨機(jī)率??梢栽O(shè)計(jì)電路,使其行為即使在最極端的條件下也能滿足所需的規(guī)格。由于組件值的變化是隨機(jī)的,因此這種類型的分析可以提供更真實(shí)的模擬系統(tǒng)結(jié)果。它涉及大量分析的模擬,其中每個(gè)組件的值在所需范圍內(nèi)隨機(jī)變化。隨機(jī)生成算法應(yīng)保證最高的隨機(jī)率??梢栽O(shè)計(jì)電路,使其行為即使在最極端的條件下也能滿足所需的規(guī)格。由于組件值的變化是隨機(jī)的,因此這種類型的分析可以提供更真實(shí)的模擬系統(tǒng)結(jié)果。它涉及大量分析的模擬,其中每個(gè)組件的值在所需范圍內(nèi)隨機(jī)變化。隨機(jī)生成算法應(yīng)保證最高的隨機(jī)率。但期望的范圍。隨機(jī)生成算法應(yīng)該保證盡可能高的隨機(jī)率。但期望的范圍。隨機(jī)生成算法應(yīng)該保證盡可能高的隨機(jī)率。
簡(jiǎn)單電源示例
圖 1 顯示了由以下元素組成的經(jīng)典電源圖:
· 13 V AC正弦電壓源(V1)。實(shí)際上,它是 230 V AC至 13 V AC的電壓變壓器。頻率為 50 Hz
· 四個(gè)整流二極管(D1、D2、D3 和 D4)。它們構(gòu)成了經(jīng)典的格雷茨電橋
· 2200 uF 電解電容(C1)。其作用是平整二極管的脈動(dòng)電壓,降低紋波信號(hào)的紋波和速率
· 50 歐姆的電阻負(fù)載 (R1)。
該方案采用了4個(gè)1N4007二極管,其SPICE模型如下:
model 1N4007 D(IS=7.02767n RS=0.0341512 N=1.80803 EG=1.05743 XTI=5 BV=1000 IBV=5e-08 CJO=1e-11 VJ=0.7 M=0.5 FC=0.5 TT=1e-07 type=silicon)
圖 1:經(jīng)典低壓電源
該圖顯示了四個(gè)元素:
· 最上面第一個(gè)是電源的電氣圖
· 第二張圖顯示負(fù)載上的電壓,可以看出,它受到紋波信號(hào)的影響
· 第三張圖表示流過負(fù)載的電流,它也受到紋波信號(hào)的影響
· 最后,第四張圖被大大放大,顯示了負(fù)載上電壓和電流的總體趨勢(shì)。
在示例圖中,假設(shè)組件值是理想的。在這種情況下,圖表也是理想的,沒有考慮電子元件可能的變化,尤其是電解電容器的變化。使用 LTspice 提出的示例的 NETLIST 如下:
* Montecarlo – by laocuo
V1 N001 N002 SINE(0 13 50)
D1 0 N001 1N4007
D2 N001 load 1N4007
D3 0 N002 1N4007
D4 N002 load 1N4007
C1 load 0 2200μF
R1 load 0 50
.model D D
.model 1N4007 D(IS=7.02767n RS=0.0341512 N=1.80803 EG=1.05743 XTI=5 BV=1000 IBV=5e-08 CJO=1e-11 VJ=0.7 M=0.5 FC=0.5 TT=1e-07 type=silicon)
.tran 0 100mS 0
.backanno
.end
市場(chǎng)上有各種分立元件,公差為 1%、5%、10%、20% 等。此外,電容器的特點(diǎn)是其值非常有彈性,有時(shí)甚至與元件本身標(biāo)稱的值相差甚遠(yuǎn)。工作溫度也會(huì)顯著影響器件的固有值。出于這些原因,設(shè)計(jì)人員需要一個(gè)更真實(shí)的圖表,該圖表可以考慮所用元件值的實(shí)際變化,以便他們能夠觀察系統(tǒng)的實(shí)際行為。因此,假設(shè)電解電容器 C1 的公差為 50%,則電容器的電容值可能在 1100 微法拉和 3300 微法拉之間。必須同時(shí)處理容量和任何其他元件的變化,并且可能的操作條件的理論組合是多種多樣的。為了生成隨機(jī)值,我們使用mc(value, tolerance)函數(shù)。其語法如下:
mc(x,y)
它隨機(jī)生成 x*(1+y) 和 x*(1-y) 之間的一個(gè)均勻分布的值。LTspice 電氣圖中要包含的指令如下:
.param Capacitance=mc( 2200u , 50/100 )
.step param Simulations 1 10 1
在這種情況下,電解電容 C1 不能具有 2200 uF 的固定值,而必須包含變量后綴{Capacitance}這樣模擬器就能夠始終為組件分配不同的值,但在指定的范圍內(nèi)。變化間隔也可以輸入為十進(jìn)制數(shù),而不僅僅是分?jǐn)?shù)。在圖 2 所示的電源仿真中,顯示了與電解電容器的不同容量有關(guān)的紋波率的不同值。下圖突出顯示了信號(hào)一個(gè)周期的縮放。為簡(jiǎn)潔起見,仿真僅執(zhí)行十次,但建議執(zhí)行更多次,特別是如果要改變的電子元件很多,但要考慮到仿真時(shí)間和 PC 內(nèi)存會(huì)隨著執(zhí)行的步驟數(shù)成比例增加。模擬中生成了十個(gè)不同的值。如您所見,圖表顯示了不同的曲線,元件值的變化讓我們了解它們?nèi)绾物@著影響和改變電子電路的行為。在圖表中,非常有趣的是,位于 6 毫秒的時(shí)間點(diǎn)不受電解電容器值的影響??梢哉f這個(gè)點(diǎn)每 10 毫秒定位一次,這個(gè)值很容易從 50 Hz 信號(hào)的半周期持續(xù)時(shí)間中推斷出來。該值可從 50 Hz 信號(hào)的半周期持續(xù)時(shí)間輕松推導(dǎo)出來。該值可從 50 Hz 信號(hào)的半周期持續(xù)時(shí)間輕松推導(dǎo)出來。
圖 2:具有各種電解電容值組合的電源電子模擬
溫度蒙特卡羅分析
溫度也可以受到隨機(jī)變化的影響,以便與其他組件的變化一起很好地模擬。蒙特卡羅溫度分析的一個(gè)典型例子是觀察配置為共射極放大器的晶體管。在共射極放大器中,輸出電流與輸入電流成正比。電氣圖使用雙電阻配置,這是一種故意受熱漂移影響的解決方案。然而,兩個(gè)電壓之間的關(guān)系受多種因素的影響,包括溫度。溫度會(huì)影響晶體管的特性,這些變化可能會(huì)導(dǎo)致放大器出現(xiàn)故障。
溫度蒙特卡羅分析可用于估計(jì)溫度變化對(duì)電路行為的影響。為此,需要運(yùn)行大量的電路模擬,每個(gè)模擬的溫度都不同。模擬結(jié)果可用于創(chuàng)建放大器輸出電壓和電流的概率分布。該分布可用于確定輸出值大于某個(gè)值的概率。溫度蒙特卡羅分析是一種重要的技術(shù),可用于改進(jìn)電子電路的設(shè)計(jì)和評(píng)估。運(yùn)行模擬后,結(jié)果可用于創(chuàng)建電路節(jié)點(diǎn)處所有值的概率分布。圖 3 顯示了該放大器的電氣圖,其增益約為 400,與 1 kHz 和 10 mV 幅度的正弦信號(hào)有關(guān)。晶體管溫度升高可能會(huì)變得危險(xiǎn),并導(dǎo)致集電極電流增加,直至雪崩效應(yīng)。假設(shè)您想在蒙特卡洛模擬中測(cè)試 0° C 至 60°C 之間的溫度。要設(shè)置的指令如下:
.param T=mc(30,100/100)
.temp {T}
.step param 模擬 1 10 1
第一個(gè)指令的目的是為變量 T 分配一個(gè)介于以下之間的溫度值:
30 – (30*100/100) = 0°C
和:
30 + (30*100/100) = 60°C
第二條指令有效地將溫度設(shè)置為變量 T 的值。最后,第三條指令執(zhí)行十次模擬,始終在設(shè)定的間隔范圍內(nèi)不時(shí)改變溫度值。
圖 3:動(dòng)態(tài)狀態(tài)下晶體管集電極上的電壓隨溫度變化
結(jié)論
通過適當(dāng)?shù)牟僮?,可以隨機(jī)改變所有可以想象到的元件電氣參數(shù)。通常,電子模擬是完美無誤的,指定唯一且精確的值,但使用蒙特卡羅方法可以提高測(cè)試的真實(shí)性,從而使模擬電路的行為更接近真實(shí)電路。使用這種方法,可以觀察當(dāng)電子元件的值處于允許的最小值和最大值時(shí)系統(tǒng)的行為。模擬結(jié)果通常以所用值的概率分布形式呈現(xiàn)。這種技術(shù)在設(shè)計(jì)階段非常有用,因?yàn)樵谠O(shè)計(jì)階段,評(píng)估電路在電子元件值不確定性方面的穩(wěn)健性和可變性非常重要。在這種類型的模擬中,進(jìn)行的測(cè)試次數(shù)越多,最終結(jié)果就越好,即使這會(huì)大大增加處理時(shí)間和由于存在臨時(shí)文件而占用的硬盤空間。最后,當(dāng)要處理的變量數(shù)量很多時(shí),蒙特卡羅模擬特別有用。