DRTxECM

v0.2.0 English

使用說明

DRTxECM 的介面是英文。以下按鈕與欄位名稱都直接引用程式中的原文, 方便你對照畫面操作。整體流程是固定的七個步驟。

整體流程

  1. Import —— 匯入 EIS 資料(CSV / TXT)
  2. Clean Noise Data —— 在圖上點掉雜訊點(選用,建議做)
  3. Run —— 執行 DRT,得到 γ(τ)
  4. 檢視 DRT 品質(DRT、殘差、EIS Score)
  5. Launch Stage 2 —— 對 γ(τ) 做高斯峰分解
  6. Export to Stage 3 —— 調整 R、Q、α 並做 CNLS 擬合
  7. 匯出參數與圖檔

步驟 1 / 匯入 EIS 資料

在主視窗左側的 Import Data 區塊按 Import,選擇 CSV 或 TXT 檔後, 會開啟「EIS Data Import Preprocessing Panel (DRTxECM)」視窗。

不同儀器(BioLogic、Autolab、Solartron、Gamry…)匯出的表頭列數與欄位順序都不一樣, 這個視窗就是用來處理這些差異:

控制項作用
跳過列數設定指定檔案開頭要略過幾列(儀器表頭、註解、空白列)
Toggle Column 3 (Z'') Sign (* -1)把第三欄(虛部)乘上 −1。有些儀器把 Z'' 存成正的,Nyquist 圖會上下顛倒,用這個按鈕修正
Confirm and Import確認並匯入

匯入後資料會出現在主視窗,畫面上方會顯示 EIS 圖形。程式的資料解析邏輯放在 DataImportPreprocessor,若你的檔案格式比較特殊, 原始碼在 pyDRTtools/extensions.py。

步驟 2 / 清理雜訊資料

選單列上有一個獨立的動作 Clean Noise Data(快速鍵 Ctrl+D)。 點下去會開啟「EIS Interactive Data Cleaning Interface」。

在 Nyquist 圖上直接點擊要剔除的資料點即可移除,不必回去編輯原始檔。

按鈕作用
↩ Undo Last Deletion復原上一次刪除
Reset All Changes還原全部刪除
Apply Cleaning and Return套用並回到主視窗

視窗上會即時顯示 Current active data points: 目前剩餘點數,方便你確認刪了多少。

清理完成後,程式會用 PCHIP 單調內插把資料重新取樣到均勻的對數頻率格點。 DRT 的數值方法要求頻率格點均勻,所以這一步不是單純的資料刪除, 而是同時做了重採樣。若你的資料本身已經很均勻乾淨,也可以跳過這一步。

匯入 ZARC 範例資料後的主視窗:左側是 DRT 設定區,右側是原始 EIS 的 Nyquist 圖
匯入內附 ZARC 範例資料後的狀態。右側是原始 EIS 的 Nyquist 圖 —— 可以看到這是一個壓扁的半圓(圓心落在實軸下方), 這正是 CPE 相角 α < 1 的典型特徵。左側是所有 DRT 設定欄位。 點圖可看原始尺寸。

步驟 3 / 設定並執行 DRT

主視窗左側是 DRT 的設定區,右側上方是圖、下方是執行按鈕。設定欄位如下:

欄位選項說明
Method of Discretization Gaussian(預設)、C2 Matern、C4 Matern、C6 Matern、Inverse Quadratic、Inverse Quadric、Cauchy、PWL 離散化 γ(τ) 用的基底函數(徑向基底)。Gaussian 是最常用的起點;PWL 為分段線性
Data Used Combined Re-Im Data(預設)、Re Data、Im Data 擬合時使用實部、虛部,或兩者一起。預設兩者合用
Inductance Fitting w/o Inductance(預設)、Fitting with Inductance、Discard Inductive Data 高頻端的電感行為要一起擬合、忽略,或直接把電感區段的資料丟棄
Regularization Derivative 1st order(預設)、2nd order 正則化項的微分階數,控制 γ(τ) 的平滑程度
Parameter Selection Method custom、GCV(程式啟動時預設)、mGCV、rGCV、LC、kf、re-im 正則化參數 λ 的決定方式。選 custom 時由下方的欄位手動指定
Regularization parameter 預設 0.001 λ 的手動值(僅在 custom 模式使用)
Optimal Regularization parameter 唯讀 程式自動選擇出的 λ,執行後會顯示在這裡
Number of Samples 預設 1000 貝氏相關方法(Bayesian / BHT)的取樣數
RBF Shape Control FWHM Coefficient(預設)、Shape Factor 決定基底函數寬度的方式
FWHM Control 預設 0.5 基底函數的寬度係數。調大=更平滑,調小=解析度更高但更容易出現振盪

設定好之後,右下方有三種 DRT 演算法可以執行,各自有一個 Run 按鈕:

按鈕方法
Simple Run脊回歸/Tikhonov 正則化。最快,一般情況先用這個
Bayesian Run貝氏正則化,同時估計雜訊與正則化的超參數
Hilbert TransformBHT(Bayesian Hilbert Transform),利用 Kramers-Kronig 關係的變體

步驟 4 / 檢視 DRT 結果

主視窗右側有一排顯示按鈕,用來切換要看哪張圖:

按鈕圖形內容
EIS Data原始 EIS 資料的 Nyquist 圖
MagnitudeBode 圖的阻抗大小 |Z|
PhaseBode 圖的相位角
Re Part實部對頻率
Im Part虛部對頻率
Re Residual實部殘差(實驗值 − 擬合值)
Im Residual虛部殘差
DRTγ(τ) 分布,也就是下一步要分解的目標
EIS Score各方法的配適評分,用來比較不同設定的好壞

判斷品質的訣竅:殘差應該在零附近隨機散布,不該有系統性的彎曲。 若殘差有明顯結構,通常代表峰的數量不足、正則化參數 λ 不合適, 或高頻電感沒有處理好。

按 DRT 按鈕後顯示 γ(τ) 的單一鬆弛峰
執行 Simple Run(Parameter Selection Method 為 GCV)之後的 DRT 結果。 這筆資料只有一個明顯的鬆弛峰,因此下一步用 1 到 2 個峰去分解就足夠了。

步驟 5 / Stage 2:高斯峰分解

在 Peak deconvolution 區塊填入 Number of peaks(預設 3), 再按藍色的 Launch Stage 2 (Peak Analysis),開啟 「Stage 2: DRT Peak Fitting (DRTxECM)」視窗。

這個視窗會對上一步得到的 γ(τ) 做多高斯峰擬合, 把連續的分布拆成數個離散的峰:

γ(ln τ) ≈ Σi Ai · exp( −(ln τ − μi)2 / (2 σi2) )
按鈕作用
View Initial Guess (Plot Guess)先看程式自動產生的初始猜測,不進行優化
Execute Gaussian Fit執行多高斯擬合
Export Stage 2 Decomposition Report (.csv)匯出分解報告:每個峰的參數,以及各峰的擬合曲線取樣點
Export to Stage 3 (CPE Fine-Tuning)把峰參數換算成 R//CPE 初始值並開啟第三階段

峰的參數表

每個峰有三個欄位,各自帶一個勾選框:

欄位意義
amp峰的振幅 Ai
cen峰中心位置 μi(單位是 ln τ)
wid峰寬 σi(預設 0.8)

勾選框=鎖定該參數(固定不動,不外給任何變化空間); 不勾選=讓擬合自由調整。若你確定某個峰的物理位置, 把它鎖住可以讓其他峰收斂得更穩定。

Stage 2 視窗:三個高斯峰的分解結果與參數表
按 Execute Gaussian Fit 之後的結果。左側表格是三個峰的 振幅 amp、位置 cen、寬度 wid, 右側黑色點是 DRT 原始資料、紅線是三峰總和、彩色虛線是個別峰。 左上角同時顯示第一階段解出的 R_ohm(本範例為 10.014 Ω)。

步驟 6 / Stage 3:等效電路 CNLS 擬合

按 Export to Stage 3 (CPE Fine-Tuning) 後會開啟 「Stage 3: ECM Fine-Tune Panel (DRTxECM)」。

峰參數如何變成電路初始值

程式自動做以下的換算(每個高斯峰對應一個 R//CPE 分支):

R = A · σ · √(2π)
τ = exp(μ)
Q = τ / R
α = 1.0(起始值)

也就是說,DRT 的峰不只是視覺上的分解,而是直接提供物理上合理的起點。 這是 DRTxECM 相對一般萬用電路擬合工具最大的優勢之一。

參數表

左側表格的欄位是 Element | Freedom | Value | Error | Error%:

Element對應的電路元件
R_ohm串聯的歐姆電阻 R0(高頻截距)
L_ind串聯電感 L
R_i第 i 個分支的電阻
Q_i第 i 個分支的 CPE 參數 Q
n_i第 i 個分支的 CPE 相角 α(0.2 到 1.0 或 1.05)

Freedom 欄決定每個參數在優化過程中的自由度。 不同元件能選的模式不一樣(以下是介面上的原文):

元件可選模式允許範圍
R_i、Q_i Free、Free +-5%、Free +-10%、Fixed Free:0 到 ∞;Free +-5% / Free +-10%:目前值的 ±5% / ±10%;Fixed:鎖住
n_i(即 α) Free、<= 1、Fixed <= 1:0.2 到 1.0;Free:0.2 到 1.05;Fixed:鎖住
L_ind Free、Fixed Free:−∞ 到 ∞;Fixed:鎖住

R、Q、L 的預設都是 Fixed,α 的預設是 <= 1, 所以剛進到第三階段時,只有三個 α 是可以被優化的。 建議的順序是:先讓 α 收斂,再逐一放開 R 與 Q。

正式文獻上 CPE 的 α 理論上限是 1(理想電容)。程式另外提供容許到 1.05 的模式, 是為了吸收量測誤差與等效串聯電阻的偏差,讓擬合不會被硬邊界卡住。 若你要報表上的 α 嚴格符合物理定義,請用 <= 1。

執行擬合

  1. 先按 Simulation,用目前的參數值畫出模擬曲線,確認起始狀態合理
  2. 按綠色的 Fitting (Optimize Parameters) 執行 CNLS 優化
  3. 收斂後 Value 欄會更新為最佳值,Error 與 Error% 欄顯示估計的標準誤
  4. 右側的 Nyquist 圖與 Bode 圖會同步更新,各分支以不同顏色顯示

視窗下方會顯示 Complex Impedance RMSE, Fitting 之後更新為帶單位的 RMSE 值。

Stage 3 擬合後的參數表與分支解析的 Nyquist、Bode 圖
以三個分支、R 與 Q 設為 Free +-10%、α 設為 <= 1 執行 Fitting 的結果。 注意 Error% 欄:這個範例用三個分支去擬合單一 ZARC 半圓,屬於過度參數化, 所以標準誤很大。實務上峰數應該配合 DRT 曲線上的實際峰數,不要為了降低 RMSE 而增加分支。

步驟 7 / 匯出結果

位置按鈕匯出內容
主視窗 Export 區DRT → ExportDRT 的 γ(τ) 結果(頻率、τ、γ)
主視窗 Export 區EIS Regression → ExportEIS 的擬合值與殘差
主視窗 Export 區Figure → Save目前顯示的圖檔
Stage 2Export Stage 2 Decomposition Report (.csv)峰參數與各峰的分解曲線
Stage 3Export Datasheet (.csv)電路參數、標準誤、以及擬合後的合成報表

疑難排解

按 Clean Noise Data 卻說沒有資料

會出現 No EIS data loaded! 的警告。請先按 Import 匯入資料。

DRT 曲線出現負值或劇烈振盪

通常是正則化不足(λ 太小)或 FWHM Control 太小。可以: 把 Parameter Selection Method 維持在 GCV 讓程式自動選 λ; 把 FWHM Control 調大;或改用 Bayesian Run。

擬合不收斂

常見原因是初始值離真實值太遠。建議的順序是: 先用 Stage 2 得到好的初始猜測 → 進 Stage 3 後逐一放開參數, 不要一次把所有參數設成 free。實務上先放開 R 與 Q, 收斂後再放開 α,會穩定得多。

α 停在 0.2 或 1.0

代表最佳解落在邊界上。若停在 1.0,可能是該分支其實接近理想電容, 或資料品質不足以支撐 α 的自由擬合; 若停在 0.2,通常是該分支的頻率範圍太窄或點數太少。 可以檢查該分支在 Nyquist 圖上的覆蓋範圍。

Error% 顯示 N/A 或 <15%

不確定度是由反 Hessian 矩陣估計的。若 Hessian 無法取得或不穩定, 程式會退回顯示 N/A;在部分情況下則以 <15% 表示粗略的相對誤差上限。這不是錯誤,但代表那組參數的標準誤需要保守看待。

Stage 2 的擬合跑很久

多高斯擬合最多迭代 10000 次。峰的數量越多越慢。 建議從 2 到 4 個峰開始,確認 γ(τ) 的形狀之後再增加。