Origin+Excel神操作:从充放电曲线绘制微分电容曲线
☝点击上方蓝色字体,关注我们
感谢近些天来,一直有网友不断关注“编辑之谭”,并在后台留言和提问。
前天,一个来自河北的研究生小薇(化名),提出了一个令人头疼的绘图问题:根据充放电曲线,怎样用Origin的“微分”数学方法绘制“微分容量曲线”。
谭编之前读硕士是做锂电池材料的,不记得是蓝电、输力强还是Autolab哪一台电化学工作站好像可以直接测试微分容量曲线。
在充放电曲线中V-t曲线包含丰富的电极过程信息,但这些信息一般很小,不容易表现出来,例如小薇提问的充放电曲线(如下图)几乎看不出充放电平台的电位。
如果利用仪器测量是可以直接获得微分容量曲线的,只是要注意:
1. 测试恒电流一定要尽量小,可以忽略极化的影响,一般采用0.04C倍率(即1/25 C)。在电流足够低的情况下,可以获得比循环伏安曲线更加丰富的反应信息。
2. 数据采集要求:选择电压间隔采点,一般ΔV=10~50 mV。最好使用高精度的安捷伦、欧姆龙等仪器采集电压(可精确到小数点后6位)。充电柜、蓝电等仪器采集电压数据误差较大,作出的曲线毛刺多(噪音大)。
蓝电仪器可以对测试的充放电曲线进行处理,得到微分容量曲线,其基本原理可以用下图解释。
经过处理的微分容量曲线如下图所示,是不是跟循环伏安曲线非常像,但比循环伏安曲线更多氧化还原峰,显示的信息更丰富。
依据上述原理,怎样从Originlab软件对充放电曲线进行“微分(Differentiate)”处理(如下图),在弹窗中直接点击确定,一般情况下即可完成对某曲线的微分。
但是,实际上,因为充放电曲线的测试精度较低,曲线并非数学函数平滑的曲线,往往在利用Origin进行微分处理时,会出错。
例如,假设相邻2个数据点的Δy和Δx,有可能因为数据相等导致Δy或Δx→0甚至等于0,这就导致某一点的微分结果趋近于0或等于0(如下图瀑布状竖线就是逼近0),或者出现“被0除”的逻辑错误(如下图表格中红线框无数据,导致绘图中上端整齐的“天花板”,这里200以上无数据,都是因为逻辑错误而“缺失”了数据)。
其实,上图的微分结果已经“初具雏形”(绿色画线的形状),谭编尝试了很多次(就像小薇的苦恼困惑一样)都是这样一个结果,为什么会酱紫?
谭编初步分析的结果,还是因为充放电曲线的数据精度问题导致的。我请教了广财大的我哥(数学教师),说对曲线求导时求导步长越小越精确,一般情况,相隔4个点的数据求导就能满足了。
于是,谭编画了一个示意图如下,很理想的状态了,相邻数据点之间是平滑的。假设每隔2个点提取一个需要操作的数据点(即研究相邻4点之间的偏差,它们之间的2个点不考虑),得到(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)四个操作点。
这几个操作点两两之间求差:ΔV=x2-x1,ΔQ=y2-y1。
根据曲线求导的结果是曲线上某点的斜率(曲线上该点的切线斜率,表示该点在y方向上增量变化的加速度),则该点的斜率:
y=sinθ=ΔQ/ΔV
如果在曲线上这种操作点的选取步长较小,那么操作点之间的连线越接近真实曲线(如上图)上点(x,y)的切线斜率,这个点(x,y)位于这两个相邻操作点的中点,因此,该点(x,y)的x取操作点横坐标的平均值:
x=(x1+x2)/2
因此,该方法暂且命名为“平均求导法”。曲线上某点的微分求导公式如下
x=(x1+x2)/2
y=sinθ=ΔQ/ΔV
根据上述公式,我们将充放电曲线的数据拷贝到Excel中进行处理。由于实际测试的实验数据噪声波动大,所以取间隔数d较小时,会出现因为相邻数据点的大幅波动导致前述分析的情况。
谭编尝试了d=10、20、30、40、100、200的间隔数(微分步长)在Excel中自动运算生成两列新的求导数据。具体以d=10为例,如下图所示,在D列第11行(其实是第10个数据)输入“=(B11+B2)/2”,回车即可创建x值,点击新建的这个x值,然后双击该x值单元格的右下角“+”,实现自动向下填充所有数据。
这里,Excel表将自动将其下方单元格的计算对象的行号加1,例如D12单元格,其计算公式为“=(B12+B3)/2”,以此类推。
同样的方法,在求dQ/dV时,第E11单元格的计算公式为“=(C11-C2)/(B11-B2)”,双击向下填充即可。
按照相同的方法,计算了d的其他取值情况下的微分求导数据,并对这些结果绘图如下。虚线为原始充电曲线,不同颜色的实线为不同微分步长d条件下得到的微分容量曲线。
为了比较不同d取值对微分容量峰位置的影响,将上图利用origin绘制Stack叠图,比较研究发现,当d取值越大,得到的微分容量曲线的毛刺越来越小,当d=200时,得到的微分容量曲线近乎完美。按道理,微分步长越大越不准确,但是d=10和d=200的峰位置仅略有偏差,d越大,峰值向低压方向漂移,漂移量ΔE=-0.019 3 V,仅减小了3.23%。因此,这种偏差可以容忍的。
上述神操作,纯属谭编瞎想独创的方法,连自己都质疑这种方法的科学性,这两天一直不敢推出来,怕误导大家,但是确实解决了头痛的问题。
例如下图的思路,是谭编最开始解决问题的一个思路(其实Excel自动填充公式时,就是这种效果。哈哈!),就是下面几个相邻数据点(不是操作点哦),用第4点减去第1点求得第4点的斜率,用第5点减去第2点求得第5点的斜率,以此类推。这种方法暂且命名为“交叉求导法”。
再绘制斜率k-V曲线就能得到微分容量曲线,谭编对比研究“平均求导法”和“交叉求导法”在d=200条件下,得到的微分容量曲线的结果(如下图)。结果非常相近,这次漂移是“正”的,漂移量ΔE=0.018 1 V,刚好跟前面d=100相对于d=10的“负”漂移相抵消。从某种程度上说,谭编独创的“交叉求导法”的精度也能满足我们对于“狂噪”实验数据曲线的微分求导。
仔细斟酌研究这两种方法发现,其实,微分步长是1,大家有没有发现呢?只不过谭编的这两种方法是跳跃采点,但每一个点都是连续求斜率的,因此,谭编的这两种求导方法的微分步长就是1。
大家若有什么质疑,或者有什么更好的思路,请畅所欲言,在本文下方留言,将“编辑之谭”活跃起来。
科学绘图,图绘科学!
如果本文对您的科学绘图有用,请记得转发朋友圈和微信群,这是对谭编最大的支持和鼓励!谭编将继续努力,给大家分享更多科技论文绘图技巧。
编辑之谭