首頁>技術>

什麼是蒙特卡洛模擬

蒙特卡洛(Monte Carlo)模擬是以機率統計原理為基礎,

模擬自變數的隨機變化,算出由這些自變數所導致的其它因變數的數值,

並對結果進行統計分析,研究其分佈規律,以達到認識事物特徵及其變化規律的方法。

在對一些複雜電子電路進行分析計算時,

我們通常很難根據電子、電路理論得到電壓、電流、功率等電氣引數的解析解。

即使得到了解析解,我們很難分析因變數與自變數的極值關係,

因而無法得到各電氣引數的最大、最小值,無法對其可靠性進行有效評估;

根據中心極限定理,一個由多個隨機變數組成的整體分佈為高斯分佈,與多個隨機變數的分佈形式無關。

蒙特卡洛採用隨機行走的方法,以某種機率分佈(一般以均勻分佈即可)的方式在一定範圍內隨機設定各元器件的效能引數,並計算出分析參量值。

儘可能多得重複該隨機過程,對得到的分析參量進行統計分析,得到參量的分佈情況,

以3倍的標準差所對應的分析參量值(相對為97.3%的機率分佈),並將此值當作最壞情況對應的參量值。

圓周率的計算

如下圖所示,一個圓位於正方形內部,並與正方形相切;

圓與正方形相切

圓和正方形的面積之比是π/4。

在這個正方形內部,隨機產生n個點(這些點服從均勻分佈),

計算它們與中心點的距離是否大於圓的半徑,

以此判斷是否落在圓的內部。統計圓內的點數,

與n的比值乘以4,就是π的值。

理論上,n越大,計算的π值越準。

PS: 自幾年前起,matlab6.5不能在64位系統上安裝,matlab2010R需要license,

我就失去了matlab這一科研利器,對複雜計算就累覺不愛了。

沒有了matlab,我用excel採用蒙特卡洛來計算圓周率,步驟如下:

1) 採用rand函式產生兩組N個隨機數,分別放於A列單元格以及B列單元格,一組計為x,另一組計為y;

2) 在c列單元格中,以公式sqrt(power(a2-0.5,2)+power(b2-0.5,2)),計算每一個(x,y)與圓心(0.5,0.5)的距離;

3)在d列單元格中,以公式if(c2<=0.5,1,0)對位於圓內的點進行對映,位於圓內的對映為數值1,否則對映為0。

4)對d列進行求和,得到的值就是位於圓內的點的個數M,

5)圓內的點數/總的點數=圓的面積/正方形的面積=π/4,得到π=4*圓內的點數/總的點數。

利用excel進行蒙特卡洛模擬

當N取5000時,算出π=3.127826

5000個隨機點得到的x,y分佈

當N取100000時,算出出π=3.14248。

N=100000

隨機點數越多,計算得到的π越準確。

電路可靠性分析

在上一篇文章中,我分析了一個用於數碼管LED驅動的電路,如下圖:

用於數碼管驅動的射極跟隨電路

分析得到三極體Q1的基極的電流計算公式:

Q1的基極電流公式

式中,VOH是5.0V供電的微控制器的輸出高電壓;

VBE是三極體Q1的B、E極導通電壓;

β三極體Q1的電流放大倍數;

透過一些簡化,算出流過LED的電流是一個恆定值,典型值大概為10mA。

但是並沒有算出一些極限引數,不知道在其它電引數變化時,是否還保持恆定。

另外,未能三極體最大功率,不知道其是否能穩定工作,等等。

進一步計算,我們還可以得到流過LED的電流為:

Ic=β*Ib;

Q1的功耗為:

P=(VBat-(β+1)*Ib*R1-VLed)*β*Ib。

其中,VBat為電池電壓,VLed為LED的導通電壓;

我們接下來在兩個方面對I和P進行可靠性分析:

1) 流過LED的電流最大值、最小值,確認其能保持恆定;

2) 三極體Q1在極限情況下的最大功耗,確保其不超過允許的最大功耗。

在上述分析時,根據規格書,我們知道與之相關的引數的取值範圍:

VOH:4.8V-5.2V;

VBE:0.3V-0.9V;

R1:351Ω-429Ω;

R2:0.9kΩ-1.1kΩ;

R3:4.23kΩ-5.15kΩ;

β:30-150;

VLED:1.8V-2.5V;

VBat:9V-16V;

假設,這些變數都是獨立不相關,而且其取值都在規格範圍內隨機分佈的。

採用excel生成N組各變數的隨機數,計算Ic和P:

採用excel進行電路monte carlo分析

取N=100000,得到流過LED的電流最大值為11.11mA,最小值為6.46mA。

三極體Q1的功耗最大值為112mW,最小值為24mW。

利用frequency函式對結果進行分割槽間統計,並繪製分佈圖,如下:

LED電流的機率密度曲線

三極體功率的機率密度曲線

從數值結果來看,

LED的平均電流為:8.70mA,標準差σ為0.73mA;

取+/-3σ為最小、最大值,得到最小電流為:6.51mA,最大電流為:10.89mA;

波動範圍比較小。

三極體功耗的平均值為:60.1mW,標準差σ為18.2mW,

取+/-3σ為最小、最大值,得到最小功率為:5.2mW,最大功率為:115mW。

在其允許最大功耗200mW範圍內,所以在最壞情況下,三極體的功耗仍能滿足規格要求;

16
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • class檔案結構2——類索引、超類索引與介面表索引