Matlab:一勞永逸搞定微分電容
4月25日,『編輯之譚』分享了兩種微分求導(dǎo)方法(平均求導(dǎo)法、交叉求導(dǎo)法),該文一出就受到了廣泛關(guān)注。
Origin+...神操作:從充放電曲線(xiàn)繪制微分電容曲線(xiàn)
(感謝Crusher指出筆誤:斜率應(yīng)該為tan())
譚編首次提出的這兩種微分求導(dǎo)方法,可以對(duì)電池的充放電曲線(xiàn)數(shù)據(jù)進(jìn)行處理,計(jì)算得到微分電容曲線(xiàn)數(shù)據(jù),完美地繪制出電池的微分容量曲線(xiàn),彌補(bǔ)了Origin繪圖軟件微分不成功的缺陷。
那么,這兩種微分方法到底
科不科學(xué)?嚴(yán)不嚴(yán)謹(jǐn)?可不可行?
有沒(méi)有修正其誤差的修正方法?
看看來(lái)自武漢大學(xué)的Crusher博士怎么用Matlab編程來(lái)驗(yàn)證這些問(wèn)題!
(為了滿(mǎn)足各大學(xué)術(shù)信息轉(zhuǎn)載的需要,將上一期專(zhuān)題中的系列文章匯編成本文,歡迎聯(lián)系譚編轉(zhuǎn)載。)
一勞永逸地搞定微分電容
Crusher
武漢大學(xué)博士生
能源材料是一個(gè)很熱的話(huà)題,而對(duì)于奮戰(zhàn)在一線(xiàn)的研究者們來(lái)說(shuō),循環(huán)伏安(CV)和線(xiàn)性伏安(LSV)測(cè)試幾乎必不可少。然而,在大量文獻(xiàn)中,CV曲線(xiàn)似乎并非必需的數(shù)據(jù)曲線(xiàn),取而代之的是微分電容曲線(xiàn)。
不少同學(xué)參考這些文獻(xiàn)方法,試圖得到類(lèi)似的微分容量曲線(xiàn),但是,實(shí)際上會(huì)遇到很多困難。要么不知道怎么得到,要么在利用Origin繪圖軟件進(jìn)行微分處理時(shí),得到的一定是類(lèi)似下圖的奇怪結(jié)果。

圖1 采用Origin微分得到的微分容量曲線(xiàn)
滿(mǎn)屏的豎線(xiàn),第一感覺(jué)往往是:頭大!
至于為什么會(huì)這樣,主要是由于儀器采點(diǎn)的原因,或者儀器精密度的限制,導(dǎo)致直接作微商的過(guò)程出現(xiàn)了很多0/0的不定型,而0/0的不定型在數(shù)學(xué)上既可以是0,也可以是無(wú)窮大或無(wú)窮小。
雖然,譚編提出的兩種方法比較完美地獲得了微分電容曲線(xiàn),這兩種方法的科學(xué)性引起了我們質(zhì)疑。筆者采用Matlab編程,從Excel數(shù)據(jù)文件中讀取充放電數(shù)據(jù),一鍵處理并繪制出微分電容曲線(xiàn)。
采用譚編提出的平均求導(dǎo)(方法1)和交叉求導(dǎo)法(方法2),以及筆者綜合考慮這兩種方法的誤差而提出的均值法(方法3),即對(duì)兩種方法的計(jì)算結(jié)果再次求均值的方法,對(duì)比研究并驗(yàn)證這3種方法對(duì)電池充放電曲線(xiàn)求解微分電容曲線(xiàn)的科學(xué)性、準(zhǔn)確性、可行性。同時(shí)對(duì)磷酸鐵鋰單平臺(tái)、多平臺(tái)特征的充放電數(shù)據(jù),以及多次循環(huán)數(shù)據(jù)進(jìn)行了一鍵處理,驗(yàn)證其可行性。
本文主要討論以下3個(gè)問(wèn)題:
問(wèn)題1:怎樣求微分電容?
問(wèn)題2:微分電容到底是什么?
問(wèn)題3:從數(shù)學(xué)上進(jìn)一步深層探討求解微分電容方法的可信性和局限性。
我們編寫(xiě)的Matlab腳本如下(左右滑動(dòng),可以閱讀完整代碼),可全選復(fù)制Matlab源代碼,也可留言或聯(lián)系譚編微信免費(fèi)獲取。
1%Matlab源代碼
2clc
3clearall
4A=xlsread('testnfpcv.xlsx');
5n=size(A,2)
6A;
7figure(1)
8fori=1:n/2
9plot(A(:,2*i),A(:,2*i-1))
10holdon
11end
12forj=1:n/4
13name(2*j-1,:)=['第'num2str(j),'次充電'];
14name(2*j,:)=['第'num2str(j),'次放電'];
15legend(name)
16title('充放電曲線(xiàn)')
17end
18d=150;
19figure(2)
20fori=1:length(A(:,1))-d
21forj=1:n/2
22C(i,2*j-1)=(A(i,2*j-1)+A(i+d,2*j-1))/2;
23C(i,2*j)=((A(i+d,2*j))-(A(i,2*j)))/((A(i+d,2*j-1))-(A(i,2*j-1)));
24end
25end
26forj=1:n/2
27plot(C(:,2*j-1),C(:,2*j))
28holdon
29end
30forj=1:n/4
31name1(2*j-1,:)=['第'num2str(j),'次充電微分電容'];
32name1(2*j,:)=['第'num2str(j),'次放電微分電容'];
33legend(name1)
34title('方法1:平均求導(dǎo)法')
35end
36d1=150;
37figure(3)
38fori=1:length(A(:,1))-d1
39forj=1:n/2
40D(i,2*j-1)=A(i+d1/2,2*j-1);
41D(i,2*j)=((A(i+d1,2*j))-(A(i,2*j)))/((A(i+d1,2*j-1))-(A(i,2*j-1)));
42end
43end
44forj=1:n/2
45plot(D(:,2*j-1),D(:,2*j))
46holdon
47end
48forj=1:n/4
49name2(2*j-1,:)=['第'num2str(j),'次充電微分電容'];
50name2(2*j,:)=['第'num2str(j),'次放電微分電容'];
51legend(name2)
52title('方法2:交叉求導(dǎo)法')
53end
54%方法3將兩者相加
55figure(4)
56fori=1:min(length(A(:,1))-d,length(A(:,1))-d1)
57forj=1:n/2
58E(i,2*j-1)=0.5*(C(i,2*j-1)+D(i,2*j-1));
59E(i,2*j)=0.5*(C(i,2*j)+D(i,2*j));
60end
61end
62forj=1:n/2
63plot(E(:,2*j-1),E(:,2*j))
64holdon
65end
66forj=1:n/4
67name3(2*j-1,:)=['第'num2str(j),'次放電微分電容'];
68name3(2*j,:)=['第'num2str(j),'次充電微分電容'];
69legend(name3)
70title('方法3:兩者方法取均值')
71end
72figure(5)
73forj=1:n/2%同時(shí)比較三種方法求出的第一周充放電曲線(xiàn)的微分電容
74plot(C(:,2*j-1),C(:,2*j),'g')
75holdon
76plot(D(:,2*j-1),D(:,2*j),'b')
77holdon
78plot(E(:,2*j-1),E(:,2*j),'m')
79legend('方法1','方法2','方法3')
80title('三種方法比較')
81end
不需要懂電化學(xué)知識(shí)和數(shù)學(xué)原理,尤其矩陣運(yùn)算方面的知識(shí),只需要將你的數(shù)據(jù)拷入到excel表格中,按電壓-容量(或比容量,都可以,二者無(wú)所謂),有一條曲線(xiàn)就粘貼一次“電壓-容量”,有多條曲線(xiàn)就粘貼多次。多說(shuō)無(wú)益,我們直接上圖吧。

圖2 將充放電數(shù)據(jù)拷入Excel文件
為了驗(yàn)證腳本的可信性,我們分峰形比較簡(jiǎn)單和多對(duì)峰分別討論。
1.1簡(jiǎn)單峰(LiFePO4)
LiFePO4是一種成熟的電極材料,目前被比亞迪,寧德時(shí)代等各大電池廠(chǎng)商大量使用。磷酸鐵鋰有一個(gè)平坦的工作電壓平臺(tái),但可逆容量不甚高,下圖是我們?cè)?jīng)做的一次摻雜,可見(jiàn)充放電平臺(tái)基本上保持不變。現(xiàn)在利用我們編寫(xiě)的Matlab腳本程序,自動(dòng)讀取該曲線(xiàn)的Excel數(shù)據(jù)文件,計(jì)算它的微分電容曲線(xiàn)。

圖3 改性的磷酸鐵鋰的充放電曲線(xiàn)(研究對(duì)象)
利用我們編寫(xiě)的Matlab腳本,對(duì)方法1、方法2、方法3進(jìn)行了驗(yàn)證,其結(jié)果如圖4所示。

圖4 三種方法的微分容量曲線(xiàn)
(點(diǎn)擊圖片,可放大查閱)
可見(jiàn),三種方法幾乎沒(méi)有明顯差別(放電的小峰正是由于摻雜引起的),這主要是步長(zhǎng)d,d1都取得較小。如果得不到較好的結(jié)果,請(qǐng)直接嘗試修改不同的步長(zhǎng)值。另外,如果步長(zhǎng)較大時(shí),推薦使用方法3,因?yàn)榉椒?和2會(huì)分別產(chǎn)生一個(gè)負(fù)的或正的誤差,方法3采用兩者均值,能在一定程度上可以消除數(shù)據(jù)處理帶來(lái)的誤差。
(這是一個(gè)廣告)
上述的驗(yàn)證結(jié)果表明:我們編寫(xiě)的Matlab腳本對(duì)簡(jiǎn)單峰的識(shí)別是非常成功的,那么如果是多條曲線(xiàn),而且是多個(gè)充放電平臺(tái)(多峰)曲線(xiàn)的復(fù)雜情況呢?
1.2 多峰多曲線(xiàn)
圖5是一種具有多個(gè)充放電平臺(tái)的充放電曲線(xiàn),不用改腳本,直接將充放電的數(shù)據(jù)拷入到excel表格中,用Matlab讀入后,運(yùn)行即可。
運(yùn)行結(jié)果:

圖5 具有多平臺(tái)的充放電曲線(xiàn)(研究對(duì)象)

圖6 多平臺(tái)充放電曲線(xiàn)的微分求導(dǎo)結(jié)果
(點(diǎn)擊圖片,可放大查看)
對(duì)比可見(jiàn),除了主要的峰形,3.2V等處的小峰也清晰可見(jiàn),這有助于對(duì)充放電機(jī)理的深刻理解。所以該腳本對(duì)于多對(duì)峰、多條曲線(xiàn)的處理能力也是很不錯(cuò)的。唯一要注意的是,如果d取得較大,可能會(huì)造成曲線(xiàn)中峰的起止位置發(fā)生左右漂移,人為地制造出極化,為此,可將第39行(即第5行,下面只是節(jié)選代碼)的d1除以2。
1d1=150;
2figure(3)
3fori=1:length(A(:,1))-d1
4forj=1:n/2
5D(i,2*j-1)=A(i+d1/2,2*j-1);
6D(i,2*j)=((A(i+d1,2*j))-(A(i,2*j)))/((A(i+d1,2*j-1))-(A(i,2*j-1)));
7end
8end
說(shuō)了這么多,如果某些同學(xué)習(xí)慣在origin中作圖,怎樣導(dǎo)出微分后的數(shù)據(jù)呢,只需加一條輸出語(yǔ)句‘xlswrite’即可,具體用法請(qǐng)找“度娘”(百度)。
我們提供了這個(gè)Matlab腳本,歡迎在本文下方留言,看大家的反響,如果有必要的話(huà),后續(xù)譚編再出一個(gè)Python腳本。
如果你是個(gè)實(shí)用主義青年,只是在文章中單純地用一下,上面的內(nèi)容就夠了,學(xué)到這一步就可以了,這個(gè)Matlab腳本足以應(yīng)付此類(lèi)曲線(xiàn)的數(shù)據(jù)處理。
但勤奮好學(xué)的你肯定不滿(mǎn)足于此,肯定想要理解微分電容底層的電化學(xué)知識(shí),那么請(qǐng)往下看。
細(xì)心地人可能早就發(fā)現(xiàn),dQ/dV~V的峰形跟cv的是一樣的,但具體為什么可能有些人并不理解,講得稍微深刻一點(diǎn)的地方,一般是這么介紹的:

(公式采用【編輯之談】信息的【upub編輯器】)
后面呢?沒(méi)了。那為什么微分電容和CV的結(jié)果二者一致呢?
事情得從一個(gè)原始的誰(shuí)都知道,但絕大多數(shù)沒(méi)怎么理解的東西說(shuō)起,這個(gè)東西叫:平衡電勢(shì)。
什么是平衡電勢(shì),百度上的定義是這樣的:

這段話(huà)大家都覺(jué)得很有道理,也都讀得很明白。那還是這個(gè)問(wèn)題,(用人話(huà)講)平衡電勢(shì)到底是什么?
平衡電池指的是在某種狀態(tài)下,一個(gè)物質(zhì)(設(shè)為M)不從外回路得到/失去電子,變成自己的還原/氧化態(tài)(也就是M堅(jiān)持做自己)的情況下,材料自由能的外在體現(xiàn)。
如果外部條件變化,這種平衡就會(huì)被打破,這正好就是貫通熱力學(xué)和動(dòng)力學(xué)的橋梁:

(公式采用【編輯之談】信息的【upub編輯器】)
為什么這么說(shuō)呢?如果有外力,比如出現(xiàn)另外一個(gè)比它的氧化態(tài)還強(qiáng)的氧化劑,或比還原態(tài)還原性還強(qiáng)的還原劑,或者直接充放電(本質(zhì)還是強(qiáng)行從材料奪電子或給電子)。
更形象點(diǎn)說(shuō),當(dāng)外部氧化劑(設(shè)為O)的電位比M的高時(shí),M就會(huì)被O奪走電子(熱力學(xué)上說(shuō)是這樣,但具體能不能實(shí)現(xiàn)還要看這個(gè)過(guò)程有沒(méi)有其他阻力,所以就有了所謂動(dòng)力學(xué)的問(wèn)題),這時(shí)候是不做功的.
(這還是一個(gè)廣告)
但如果將二者隔開(kāi)(設(shè)法隔開(kāi)),并在中間架一根導(dǎo)線(xiàn),就能讓電子從外部流動(dòng),這就是成了電池。
但如果是人為地緩慢的提高電勢(shì),而不是直接給一個(gè)強(qiáng)的氧化劑去奪取電子,會(huì)怎么樣呢?
開(kāi)始時(shí),電位降低,電子奪取不下來(lái),外電路電流很小(從而電量,即容量也很小,q=it)。
當(dāng)電位提高到到平衡電勢(shì)時(shí)并稍加一個(gè)過(guò)電位克服極化(這可能又是一個(gè)誰(shuí)都知道但大多數(shù)人理解得一般的概念,以后有機(jī)會(huì)開(kāi)專(zhuān)題講)的阻力,這時(shí)候M就會(huì)快速地變成它的氧化態(tài),劇烈地向外給出電子,放電過(guò)程則正好相反。
如果這個(gè)電子出得去、回得來(lái),那就可以做成二次電池反復(fù)利用;如果出得去回不來(lái),那就只能做成一次干電池。
有了上面的概念,我們?cè)賮?lái)理解為什么微分電容和CV是一回事呢?
上面提到,人為地提高電勢(shì)到平衡電位以上,會(huì)劇烈地奪取M上的電子,對(duì)外顯示的就是電流/容量。而認(rèn)為提高電勢(shì),即
(1)以一個(gè)橫定的速度直接提高電勢(shì)(CV);
(2)以一個(gè)橫定的速度灌入電流(電勢(shì)不是勻速上升)來(lái)實(shí)現(xiàn),這就是恒電流充放電曲線(xiàn)。當(dāng)然也可以既非恒電流也非恒電勢(shì),但不便于研究問(wèn)題,用的不多。
如果是(1),當(dāng)電勢(shì)低于平衡電勢(shì)時(shí),M不會(huì)受影響,不會(huì)失去自身的電子。當(dāng)電勢(shì)到達(dá)平衡電勢(shì)時(shí),這是由于外力的存在,M體系內(nèi)的能量發(fā)生變化,電子被外回路奪取,對(duì)外顯示,就是出現(xiàn)了峰。如果走1圈,那就是循環(huán)伏安CV,只走半圈,那就是線(xiàn)性伏安LSV。所以本質(zhì)上說(shuō),CV中出現(xiàn)峰值,是說(shuō)材料在這個(gè)電位處被打破了平衡。至于出現(xiàn)多個(gè)峰,即可能由于不同電對(duì)中心(如Fe和Mn)的平衡電勢(shì)本就不一樣,也可能由于同一個(gè)電對(duì)(比如Fe)在材料中處的晶體位置不一樣,這個(gè)位置影響了它的平衡電勢(shì)。[1]
如果是(2),向M不斷灌入電流時(shí),電位也在發(fā)生變化,如果低于平衡電勢(shì),灌入的電流相當(dāng)于直接給了一個(gè)導(dǎo)體正電荷,但它無(wú)法吸納,就會(huì)使得的電位迅速變化,這就是充放電曲線(xiàn)中的類(lèi)似于直線(xiàn)的部分(如圖7中被藍(lán)色框內(nèi)的部分)。但當(dāng)電勢(shì)繼續(xù)升高,接近第一個(gè)平衡電勢(shì),就會(huì)出現(xiàn)正電荷被吸收,導(dǎo)致電壓升高得較慢,如第一個(gè)圈。如果第二個(gè)平衡電勢(shì)處的M特別多,就會(huì)出現(xiàn)給多少正電荷都能吸收(M處于吃正電荷吃不飽的狀態(tài)),就會(huì)使得電勢(shì)基本維持了一個(gè)平臺(tái),而這時(shí)候,還是在向外回路劇烈給電子。

圖 7 充放電曲線(xiàn)的特征分析
到這里就可以看出:不管是CV還是重放電曲線(xiàn),充電到達(dá)平衡電勢(shì)并超過(guò)它時(shí),都會(huì)向外輸出大量電子,電子最直觀(guān)的體現(xiàn)就是電流增加,所以在CV曲線(xiàn)中會(huì)出現(xiàn)一個(gè)峰值,而在充放電曲線(xiàn)中會(huì)出現(xiàn)一個(gè)平臺(tái),二者的本質(zhì)是完全一致的。做一個(gè)簡(jiǎn)單的微分變化:

(公式采用【編輯之談】信息的【upub編輯器】)
平衡電勢(shì)負(fù)極處
,會(huì)伴隨著一個(gè)很大的電流I。
還有一種理解方式是:將上面的圖形逆時(shí)針旋轉(zhuǎn)90°(如下),即做成容量-電壓曲線(xiàn),你們發(fā)現(xiàn)了什么?
正是Q-V曲線(xiàn)在每個(gè)V處的斜率,而平臺(tái)處正是曲線(xiàn)斜率最大的地方!

圖 8 充放電曲線(xiàn)上斜率的物理意義
到這里,小編將手把手地幫你徹底了解了微分電容是怎么一回事,從而做到庫(kù)里有糧,心里不慌,以不變應(yīng)萬(wàn)變。如果還有不理解的地方歡迎在本文末尾留言提問(wèn)。
如果你是個(gè)標(biāo)準(zhǔn)的化學(xué)學(xué)霸而對(duì)數(shù)學(xué)不感興趣,那么到這里也就可以了,但是作為祖國(guó)新時(shí)代的大學(xué)生,我想你會(huì)忍不住看第3個(gè)問(wèn)題。
答案是:不嚴(yán)謹(jǐn),但是……。
導(dǎo)數(shù)和微分直接的關(guān)系是什么?變化量和微分之間的關(guān)系又是什么?
我們先看導(dǎo)數(shù)定義:

其中要求Δx趨于0,而這在我們采的數(shù)據(jù)點(diǎn)中是不成立的。導(dǎo)數(shù)也可以這樣定義:

圖9 微分的定義及其幾何意義
可見(jiàn),導(dǎo)數(shù)是微分的比值。而微分與變化量之間的關(guān)系為:

圖10 微分與變化量之間的關(guān)系
變化量Δy等于微分dy以及和一個(gè)比dy更高階的無(wú)窮小的和,所以dy只是Δy的主要部分。而在我們的dQ/dV 曲線(xiàn)的求法中,我們直接以ΔQ代替了dQ,這是不嚴(yán)謹(jǐn)?shù)摹?/span>
同時(shí)還有另一個(gè)地方也有問(wèn)題:因?yàn)楸苊獬霈F(xiàn)豎線(xiàn)(即出現(xiàn)很多0/0的不定型),我們對(duì)曲線(xiàn)上的點(diǎn)都做了一定的處理,比如跨步長(zhǎng)取點(diǎn)。
這樣實(shí)際上求出來(lái)的是兩個(gè)點(diǎn)之間割線(xiàn)的斜率,而不是某一個(gè)點(diǎn)處的斜率。
那怎樣完美的求微分電容曲線(xiàn)呢?理想的答案是有一臺(tái)非常非常精密的充放電儀(目前一般實(shí)驗(yàn)室用的都在微安級(jí)別),做出十分光滑的充放電曲線(xiàn),直接對(duì)該曲線(xiàn)嚴(yán)格按數(shù)學(xué)方法求導(dǎo),便是真正的微分電容曲線(xiàn)。
這可能是“你想”而不是“理想”的狀態(tài)吧?!
盡管如此,該文還是為計(jì)算微分電容曲線(xiàn)提供了可行的方法,在一般的數(shù)據(jù)處理中,已經(jīng)足夠了。
【參考文獻(xiàn)】
[1] X. Pu, H. Wang,T. Yuan, S. Cao, S. Liu, L. Xu, H. Yang, X. Ai, Z. Chen, Y. Cao, Energy Stor.Mater. (2019)DOI 10.1016/j.ensm.2019.1002.1017.
本文提出的這3種微分求導(dǎo)方法,可以針對(duì)任何曲線(xiàn),計(jì)算其微分曲線(xiàn),可以從微分曲線(xiàn)中找到非常細(xì)微的變化。例如,從熱重(TG)曲線(xiàn)數(shù)據(jù),通過(guò)計(jì)算微分曲線(xiàn)得到相變溫度、結(jié)晶水失水反應(yīng)溫度、脫水反應(yīng)溫度、分解反應(yīng)溫度、恒重溫度等等。大家可以嘗試驗(yàn)證一下,從TG曲線(xiàn)數(shù)據(jù)計(jì)算其微分曲線(xiàn),并與實(shí)驗(yàn)測(cè)得的一次微分DTG曲線(xiàn)對(duì)比,研究是否吻合?如果是,那我們可以不用做DTG曲線(xiàn)了!(哈哈,想得美!)
有興趣的網(wǎng)友,歡迎利用這兩種方法,對(duì)您所遇到的任何實(shí)驗(yàn)數(shù)據(jù)曲線(xiàn)進(jìn)行微分處理,驗(yàn)證一下譚編提出的這兩種微分求導(dǎo)方法的可行性、普適性。
-
Origin(Pro):學(xué)習(xí)版的窗口限制【數(shù)據(jù)繪圖】 2020-08-07
-
如何卸載Aspen Plus并再重新安裝,這篇文章告訴你! 2020-05-29
-
CAD視口的邊框線(xiàn)看不到也選不中是怎么回事,怎么解決? 2020-06-04
-
教程 | Origin從DSC計(jì)算焓和比熱容 2020-08-31
-
CAD外部參照無(wú)法綁定怎么辦? 2020-06-03
-
CAD中如何將布局連帶視口中的內(nèi)容復(fù)制到另一張圖中? 2020-07-03
