使用软件或Python编程时EIS拟合的底层逻辑(EIS拟合的原理/过程)
在二次充放電電池、分析電極、腐蝕電化學還有氧化還原電極的實驗過程中,往往需要在測試電化學穩態阻抗譜(EIS)之后,還需要對其進行等效電路的擬合(EIS擬合)。經過物理化學家的不懈努力,EIS擬合目前已經發展成熟,許多的擬合軟件已經商業化,并且也有很多的教程教導人們如何使用軟件。但是一個EIS數據可以對應多個等效電路,因此選擇等效電路成為了EIS擬合的一個很重要的點。等效電路的選擇可以通過大量地閱讀相關專業領域的文獻來限定。但是如果是出現了不同于本領域的EIS圖譜的時候,就需要到EIS的擬合底層邏輯里面去找尋解決辦法。
 因為EIS擬合現在已經發展成為一個應用層面的東西,所以我在入門的時候對于底層邏輯并沒有研究很清楚就開始動手了。現在再研究EIS擬合的python源代碼的時候,我對這個底層邏輯又有了從新的認識。所以寫下這個文章來提醒自己和分享給大家。
 EIS是改變頻率的大小,在單個頻率的位置給體系傳入一個具有固定振幅的電壓,記錄體系傳出的電流的變化,同時將這個電流和電壓的關系通過歐姆定律換算為阻抗值。由于振幅的變化是很微弱同時是正負相消的,所以對體系的影響是很微弱,對體系的物理化學性質沒有影響的,是一種近乎穩態的無損的測量方式。另外由于電壓在其振幅范圍內是隨著頻率交變變化的(高頻就是變化快,低頻就是變化慢),所以得到的電流及轉換后的阻抗都是有頻率變化的特性的。因此,EIS導出的數據是一組(頻率,阻抗實部,阻抗虛部)。也可以從側面的地說明,振幅的大小在結果中是不會直接反映出來的,是屬于測試中的控制變量。越大的振幅,在同一頻率下,可以提高電流的大小,增強阻抗的收集敏感度,但同時也增加了測試時間。
 阻抗分為實部和虛部,實際阻抗的表達式:
 Z=Z′+jZ′′Z = Z^{\prime} + jZ^{\prime\prime}Z=Z′+jZ′′
 實部和虛部的值的平方和根號是模量:
 ∣Z∣2=Z′2+Z′′2|Z|^{2} = Z^{\prime 2} + Z^{\prime\prime 2}∣Z∣2=Z′2+Z′′2
 虛部與實部的比是相位角的正切值:
 tan??=?Z′′Z′\tan\phi = \frac{- Z^{\prime\prime}}{Z^{\prime}}tan?=Z′?Z′′?
 EIS擬合的底層邏輯就是找到擬合阻抗表達式能夠無限接近甚至等價于實際阻抗的表達式。
 因此,為了這個目的,我們就要用到電路學上的數學等式進行變換:
 在串聯電路中,實際阻抗和各部分的元器件的阻抗的總和:
 Z=Z1+Z2+?+ZnZ = Z_{1} + Z_{2} + \cdots + Z_{n}Z=Z1?+Z2?+?+Zn?
 在并聯電路中,實際阻抗和各部分的元器件的阻抗的倒數的總和的倒數:
 Z=11Z1+1Z2+?+1ZnZ = \frac{1}{\frac{1}{Z_{1}} + \frac{1}{Z_{2}} + \cdots + \frac{1}{Z_{n}}}Z=Z1?1?+Z2?1?+?+Zn?1?1?
 為了代入上述的表達式,我們就要知道每個元器件的阻抗表達式:
 電阻,阻抗中電阻性越強,整體圖形越偏X軸正軸(實部,Z′),因為頻率是從大到小:
 Z=RZ = RZ=R
 純電容,阻抗中電容性越強,整體圖形越偏Y軸正軸(虛部,-Z′),因為頻率是從大到小:
 Z=1C×j2πfZ = \frac{1}{C \times j2\pi f}Z=C×j2πf1?
 非恒相位元件,是對電容的非恒相位變化的一個補充,當n=1的時候就是恒電容:
 ZCPE=1j(2πfQ)n{Z_{CPE} = \frac{1}{j(2\pi fQ)^{n}}} ZCPE?=j(2πfQ)n1?
 ZQ=1Y02πfncos?nπ2?j1Y02πfnsin?nπ2{Z_{Q} = \frac{1}{Y_{0}2\pi f^{n}}\cos\frac{n\pi}{2} - j\frac{1}{Y_{0}2\pi f^{n}}\sin\frac{n\pi}{2}}ZQ?=Y0?2πfn1?cos2nπ??jY0?2πfn1?sin2nπ?
 電感,阻抗中電感性越強,整體圖形越偏Y軸負軸(虛部,Z′),可能在最后出現第四象限的點,因為頻率是從大到小:
 Z=L×j2πfZ = L \times j2\pi fZ=L×j2πf
 Warburg阻抗,σ是Warburg系數,阻抗中Warburg表現為一條斜向上的直線,因為頻率是從大到小:
 Z=σ2πf(1?j)Z = \frac{\sigma}{\sqrt{2\pi f}}(1 - j)Z=2πf?σ?(1?j)
 由于有了上面的這些電子元器件的單獨表達式之后,我們可以在前人的研究的基礎上,利用他們得出的經驗模型,然后得到一個表達式。
 
 得到的直觀表達式:
 Z=RΩ+1j2πfCd+1RctZ = R_{\Omega} + \frac{1}{j2\pi fC_ze8trgl8bvbq + \frac{1}{R_{ct}}}Z=RΩ?+j2πfCd?+Rct?1?1?
 將直觀表達式轉化為可以分拆實部和虛部的表達式:
 Z=RΩ+Rct1+2πf2Cd2Rct2?j2πfCdRct21+2πf2Cd2Rct2Z = R_{\Omega} + \frac{R_{ct}}{1 + 2\pi f^{2}C_ze8trgl8bvbq^{2}R_{ct}^{2}} - j\frac{2\pi fC_ze8trgl8bvbqR_{ct}^{2}}{1 + 2\pi f^{2}C_ze8trgl8bvbq^{2}R_{ct}^{2}}Z=RΩ?+1+2πf2Cd2?Rct2?Rct???j1+2πf2Cd2?Rct2?2πfCd?Rct2??
 將要使用的擬合虛部表達式:
 Zdata′′=2πfCdRct21+2πf2Cd2Rct2Z_{\text{data}}^{\prime\prime} = \frac{2\pi fC_ze8trgl8bvbqR_{ct}^{2}}{1 + 2\pi f^{2}C_ze8trgl8bvbq^{2}R_{ct}^{2}}Zdata′′?=1+2πf2Cd2?Rct2?2πfCd?Rct2??
 將要使用的實部表達式:
 Zdata′=RΩ+Rct1+2πf2Cd2Rct2Z_{\text{data}}^{\prime} = R_{\Omega} + \frac{R_{ct}}{1 + 2\pi f^{2}C_ze8trgl8bvbq^{2}R_{ct}^{2}}Zdata′?=RΩ?+1+2πf2Cd2?Rct2?Rct??
 然后通過給定一些初始值,如RΩ、Rct、Cd。而2πf是用實驗用的頻率變化段(一個數列)。隨后,通過非線性最小二乘回歸法,不停地按一定規律增大或減少地變化RΩ、Rct、Cd等導出參數值,以實際的阻抗實部、阻抗虛部、2πf作為對象,擬合得到一個二維向量(Z′model , Z′′model)和方差χ2。
 χ2=∑n=0N[Zdata′(ωn)?Zmodel′(ωn)]2+[Zdata′′(ωn)?Zmodel′′(ωn)]2\chi^{2} = \sum\limits_{n = 0}^{N}\left\lbrack Z_{\text{data}}^{\prime}\left( \omega_{n} \right) - Z_{\text{model}}^{\prime}\left( \omega_{n} \right) \right\rbrack^{2} + \left\lbrack Z_{\text{data}}^{\prime\prime}\left( \omega_{n} \right) - Z_{\text{model}}^{\prime\prime}\left( \omega_{n} \right) \right\rbrack^{2}χ2=n=0∑N?[Zdata′?(ωn?)?Zmodel′?(ωn?)]2+[Zdata′′?(ωn?)?Zmodel′′?(ωn?)]2
 如果χ2可以達到一個比較滿意的值就可以輸出(Z′model , Z′′model)的一個二維數組。同時輸出RΩ、Rct、Cd的三個一維數組。這時候χ2如果足夠小,擬合的能斯特圖和實際的能斯特圖可以達到比較好的重合效果。
 要知道(Z′model , Z′′model)數組都是變化的,所以RΩ、Rct、Cd的三個一維數組也是變化的,最終導出RΩ、Rct、Cd的三個值是平均值,因此也會有三個值的標準差。在Zsimpwin中會顯示每個RΩ、Rct、Cd的標準差值σ,如果有哪個值的標準差σ超出了預期(例如1),這時候我們就要以RΩ、Rct、Cd的輸出值作為輸入值,重新改變(一般是減少)RΩ、Rct、Cd的值輸入到直觀表達式中,再走一次最小二乘法擬合,直至RΩ、Rct、Cd的標準差值σ到達預期,同時RΩ、Rct、Cd的值有一定的物理意義(如溶液電阻不可能太大)。這時候RΩ、Rct、Cd就可以作為電極表面的平均變化過程的物理值來和其他情況相對比較。前提是其他情況也是有相似的擬合過程(初始輸入值和直觀表達式)。
 上述的EIS擬合的底層邏輯說明了擬合的過程需要滿足三次驗證,一次是最小二乘法的χ2符合預期,另外一次是各個單位輸出值的標準差值σ符合預期,最后一個是各個單位輸出值在其物理意義內。
一個流程圖
Created with Rapha?l 2.2.0開始,打開EIS擬合軟件導入數據(頻率,阻抗實部,阻抗虛部)三個一維數列顯示能斯特圖和波特圖觀察有多少個時間常數所在領域常用的等效電路是否用非恒相位元件CPE代替電容C?給出擬合元器件的起始值使用最小二乘法擬合方差符合預期?各個元器件的標準差是否符合預期?各個元器件的值是否符合物理意義要求的范圍?結束,輸出各個元器件的平均值作為文章分析的數據yesnoyesnoyesno參考自:
 https://www.baidu.com/link?url=w34yjUqRP3xeLsBePE382F7A96rANvX2EFM2lGcx07ju6U0WDP2hJoQbdbH2oBTvflZkWui5-obJQbWDBjY8yUpVsTVXWsAqFHJir5OKfvZq46JrywkX-oOOhIAQgeW4&wd=&eqid=c80b7eee0006c35b000000066009bbca
 https://impedancepy.readthedocs.io/en/latest/circuit-elements.html
總結
以上是生活随笔為你收集整理的使用软件或Python编程时EIS拟合的底层逻辑(EIS拟合的原理/过程)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 前端学习(3316):connect
- 下一篇: [react] 在React中如果去除生
