發表文章

目前顯示的是 2023的文章

數值電磁 - 電容模擬器自己寫 (part3/3)

圖片
此篇延續[數 值電磁 - 電容模擬器自己寫 (part1/3) ], [ 數值電磁 - 電容模擬器自己寫 (part2/3) ] 用MATLAB寫一個計算電容的數值模擬器,此篇介紹邊界條件Boundary Condition。 1. 如何給電壓值 2. 如何模擬無限大free space [如何給電壓值] 我們知道電容C=Q/△V 若有兩個金屬,一個給1V,另一個給0V。 那麼金屬上會自然感應出電荷Q,而感應電荷的量越多,代表C越大。 那麼1V在模擬上是如何加在金屬上的呢? 前兩篇介紹到Laplace Equation。      -🜄²φ = 0 電壓=電位=φ。 常見電容模擬器會將整個金屬視為等電位。 所以模擬上金屬給1V,只要將整塊金屬的φ都強制設定為1V就可。 如下圖,藍色是金屬,其一金屬φ永遠是1(V),另一金屬φ永遠是0(V)。 此類型又稱Dirichlet Boundary Condition [如何模擬無限大free space] 前兩篇介紹到Laplace Equation的有限差分型態。      φ(x,y) = (φ(x-h,y) + φ(x+h,y) + φ(x,y-h) + φ(x,y+h))/4 「x,y點的電位 = 左、右、上、下四個點電位的平均(相加再除4)。」 如下圖 剛我們已將中間的金屬強制給定電壓φ=1V或0V。 而其他空間φ(x,y)可由上式算出,由左、右、上、下四個點電位求得。 有趣的是邊界呢?    例如最左邊邊界φ(1,y),已經沒有更左邊的電位可以用來算φ(1,y)。    例如最下邊邊界φ(x,1),已經沒有更下的電位可以用來算φ(x,1)。 所以邊界上的φ是必經特別處理的,我們稱為邊界條件(Boundary Condition)。 一種邊界條件處理是不管他(不算他),讓邊界φ維持為0。 其實仔細思考,這就等同於外面包著一塊0V的金屬(如同 [如何給電壓值] 剛剛描述)。 如下圖,整體架構變成3塊金屬,而最外面那圈的電壓為0v。 不難想像,整體電容值會更大,因為多了金屬到外圈的電容。 顯然把邊界φ維持為0不是個好主意,破壞了原本模擬的架構。 但更經常,我們想知道的是只有2塊金屬單純地放在空氣中(或介質)中。 問題就成為,我們如何用運算「有限大」空間,去得到「無限大」空間的結果。 一種近似方法是 floating

數值電磁 - 電容模擬器自己寫 (part2/3)

圖片
此篇延續[ 數值電磁 - 電容模擬器自己寫 (part1/3) ] 計算電容的數值模擬器,此篇延伸單一介質(homogeneous)至多種介質(non-homogeneous)。 如下圖,中間為方形金屬      上圖為單一介質      下圖為多種介質 主要參考文獻,University of Utah - 教授JR Nagel https://my.ece.utah.edu/~ece6340/LECTURES/Feb1/Nagel%202012%20-%20Solving%20the%20Generalized%20Poisson%20Equation%20using%20FDM.pdf 首先介紹相關方程 因為介電材料ε不再是單一常數,是會隨x,y改變的,所以寫成ε (x,y) 。 Maxwell Gauss law且source free       🜄·(ε(x,y)E) = 0...(1) 接著定義電位φ和E的關係       E = -🜄φ...(2) 將式(2)帶入式(1)       🜄·(ε(x,y)🜄φ(x,y)) = 0 拆解🜄成偏微分,且為了方便先只討論二維x,y      🜄ε(x,y)·🜄φ(x,y) + ε(x,y)🜄🜄φ(x,y) = 0     [(მ ε(x,y)/მx)*(მφ(x,y)/მx)] + [(მε(x,y)/მy)*(მφ(x,y)/მy)] + [ε(x,y)*(მ²φ/მx²+მ²φ/მy²)] = 0 採用「中央差分方」把討人厭的微分幹掉 且離散x,y為xx,yy,並把xy的mesh都設定成一樣大△x=△y=h       [( ε(xx+1,yy)-ε(xx,yy))/h * (φ(xx+1,yy)-φ(xx,yy))/h] +     [( ε(xx,yy+1)-ε(xx,yy))/h * (φ(xx,yy+1)-φ(xx,yy))/h] +     [ ε(xx,yy)*(φ(xx+1,yy)+φ(xx,yy+1)+φ(xx-1,yy)+φ(xx,yy-1)-4φ(xx,yy))/h²] =     0 接著把φ (xx,yy)整理到左邊     a0* φ(xx,yy) = a1*φ(xx,+1yy) + a2*φ(xx,yy+1) + a3*φ(xx-1,yy) + a4*φ(xx

數值電磁 - 電容模擬器自己寫 (part1/3)

圖片
此篇紀錄使用MATLAB自己寫一個電容模擬器。 利用數值電磁的方法,計算空間電位、空間電場、金屬上電荷、到最後到電容值。 並將計算結果對比商業3D模擬器,Cadence Clarity Capacitance、Ansys Q3D。 文章最後分享我所編寫的MATLAB程式碼。 主要參考文獻,瑞典皇家理工學院(KTH)Stefano Markidis教授的授課講義。 https://canvas.kth.se/files/1412425/download?download_frd=1 計算兩塊金屬之間的電容數值。 首先介紹相關方程 Maxwell Gauss law:        🜄·E = ρ/ε...(1) 接著定義電位φ和E的關係       E = -🜄φ...(2) 將式(2)帶入式(1)       🜄·(-🜄φ) = ρ/ε 若計算的φ空間是純介質(or空氣),也就是source free(ρ=0), 得       -🜄²φ = 0...(3) 式(3)又稱為Laplace Equation。 接著介紹數值方法來算式子(3) 為了方便,用二維x,y帶入式子(3)       -🜄²φ = მ²φ/მx² + მ²φ/მy² = 0...(4) 採用「中央差分方」把討人厭的微分幹掉       მ²φ/მx² ⋍ (φ(x-△x) - 2*φ(x) + φ(x+△x)) /△x²       მ²φ/მy² ⋍ (φ(y-△y) - 2*φ(y) + φ(y+△y)) /△y² 上式中的△x和△y為xy方向的「mesh」,為了方便 ,把xy的mesh都設定成一樣大       △x=△y=h 帶入式(4)       -🜄²φ ⋍ (φ(x-h,y) + φ(x+h,y) + φ(x,y-h) + φ(x,y+h) - 4*φ(x,y))/h² = 0...(5) 接著介紹Jacobi Iteration來算式(5) 把φ(x,y)丟到左邊寫成       φ(x,y) = (φ(x-h,y) + φ(x+h,y) + φ(x,y-h) + φ(x,y+h))/4...(6) 式(6)是本文最核心的主角,數學有些討厭,用物理解釋式(6)就是:  「 x,y點的電位 = 左、右、上、下四個點電位的平均(相加再除4)。」 求解問題如下圖,同軸