这款软件是由Francesco Ciucci课题组开发的,软件下载地址 https://github.com/ciuccislab(Maybe需要翻墙)
目前提供了MATLAB和Python两个版本(点击蓝色文字链接可直接下载,若有最新版本可点击上方软件下载地址自行下载),
常规的EIS数据解析方法仍然需要先验假设的等效电路的拟合技术,如通过利用Zview软件构建电路基元从而进行拟合,正往往需要一定的经验并需要综合考虑文献中的报道来构建电路。DRT技术作为近两年比较新兴的分析手段,可通过反卷积技术提取电化学系统中的弛豫时间分布。即不通过先验假设而是通过理论计算的方法进行去卷积,从而得到各部分的阻抗。
经典文献
Distribution of Relaxation Times Analysis of High-Temperature PEM Fuel Cell Impedance Spectra
Matlab操作示意图如下:
1、打开matlab,打开找到下载文件中的DRTtools.m,打开后点击运行
2、运行后点击import,弹出窗口中找到示例阻抗数据,import file samples→text files→LIB_data.txt
3、点击Run中的Simple Start,即可出现DRT数据
4、如何绘图如何得到积分阻抗?
没想到这个软件的关注度这么高,很多来私信留言的同学,现在我将方法写在这里,如有错误请批评指正
这是计算的数据,同学们可进行参照
首先我们要明确的是在DRT计算结果中的频率f和τ的转换关系为τ=1/(2πf),不用质疑,没有问题。这样就轻松画出来log10(f)和γ(τ)的关系图了
其次最重要的就是积分问题,怎么得到每个峰对应的阻抗数值呢?观察式子
从小学数学我们能知道,其中γ(lnτ)=τG(τ)。上述这串公式的详细推导过程建议看这篇文献Influence of the Discretization Methods on the Distribution of Relaxation Times Deconvolution_ Implementing Radial Basis Functions with DRTtools.pdf
因此做积分时需要对τ先求ln(τ) (不是log10(τ)!!)再进行积分,如下表所示的C列,对C列和D列画图再进行每个峰的积分即可(注意此处的横坐标为ln(τ) !)
我们也可以求出累计的阻值(注意此处的横坐标仍然是ln(τ) )
我们也可以用横坐标为频率的图,比较一下我们累计计算的阻值和实际Zview分析得到的|Z|(注意得到的|Z|我减去了0.1124),结果如下图所示(注意此处的横坐标是log10(f) )
至于文章里的颜色填充啊什么的,用XPSPEAK41去分个峰,再导入到originpro里画个图就好了
Python版本操作示意图:
首先安装anaconda Download Now | Anaconda
下载完成后,运行Spyder
把下载的pyDRTtool.py文件拖到Spyder
点击运行后会提示缺少cvxpy库
管理员运行Anaconda prompt
输入:conda install -c conda-forge cvxpy
即安装cvxpy
安装完成后重新运行Spyder中的pyDRTtools.py
即可成功运行
博主你好,用贝叶斯公式分析出来的两条线mean和map是什么意思
@ys 可参考PDF手册:
the black line is the Maximum-a-Posteriori (MAP) DRT, blue line is the mean DRT and the gray region denote the 99% credibility interval. The credibility interval reflects the confidence of the MAP obtained. Narrower the credibility interval implies a higher confidence of the MAP estimated.
黑线是最大后验概率 (MAP) DRT,蓝线是平均 DRT,灰色区域表示 99% 可信区间。可信区间反映了获得的 MAP 的置信度。可信区间越窄,意味着估计的 MAP 的置信度越高。
@龙龙龙 博主你好,我在使用DRTtool的时候,MATLAB提醒我代码有错误,不能导入文件,这怎么解决呢?
@晴天 同学你好,可以贴上来报错信息。MATLAB提醒代码有错误,大概率可能是评论区中的问题,即在安装MATLAB时候缺少插件,Optimization-Toolbox组件和Machine Learning Toolbox组件
请问博主,低频的拖尾(扩散部分)是否需要去除后再进行DRT拟合?我看资料说DRT拟合的是RC并联回路
@melody0115 这个问题有人知道吗?我看拟合结果低频部分不太匹配
博主您好,对这里求面积的积分不太理解,纵坐标单位是Ω/s,横坐标单位是s。所以如果对lnτ求积分,从量纲上讲不通啊,反而如果直接对τ求积分,量纲上正好是Ω。
@HxH 我也遇到了这个问题,现版本的DRTtools中给的横纵坐标类型是γ(lnτ) vs τ和g(τ)vs τ 两者的单位分别是 ohm vs s 和 ohm/s vs s 。实际上使用g(τ) vs τ积分得到的结果是与 γ(lnτ) vs lnτ (注意!我这里是将DRT给的数据τ取了对数去计算积分的)的积分结果是几乎相等的,但是g(τ)vs τ的积分从量纲上看似乎是有意义的,而γ(lnτ)vs lnτ的积分意义就不明确了,除非使用lnτ会把s这个量纲变成1
@电化学小菜鸡 嗯,是的,内部具体的代码我不会,但是积分结果是吻合的。
其实在分析的过程中发现阻塞电池的积分面积往往远高于EIS数据的半径,而相对应的对称电池就没有发现这个问题,想请问博主DRT分析是只用于对称电池嘛?还是我分析的有问题呢
@小赵想三年毕业 我不是很了解阻塞电池诶,你再研究研究~
请问使用这个软件,得到频率τ=1/(2πf)吗?但是这样我数据频率太低了,扩散都到0.1Hz去了
跟德国的研究燃料电池的文献差好多,可能她也算错了?如果不除2π倒是正常的
@宫酱 可参考DRT数据处理的压缩包中的数据处理
博主,您好,我想请问一下我的DRT数据导出来之后都是在零点之上的,只有两端在零点,这种情况怎么积分啊,且又高中低频之分,这个又是怎么分的呢
@Nancy 调调参吧Regularization中为-5.试试
@Dragon 还是不行,调完就像是峰变多了一样,还是碰不到
博主学会了嘛,想请教一下噢
博主您好,十分感谢您的分享, 我在导入EIS数据后,点击simple run,mathlab出现如下报错。请问是什么问题,该怎么解决呢?
‘quadprog’ 需要 Optimization Toolbox。
出错 DRTtools>regularization_button_Callback (第 336 行)
handles.x_ridge = quadprog(H_combined, f_combined, [], [], [], [], handles.lb, handles.ub, handles.x_0, handles.options);
出错 gui_mainfcn (第 95 行)
feval(varargin{:});
出错 DRTtools (第 44 行)
gui_mainfcn(gui_State, varargin{:});
出错 matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)DRTtools(‘regularization_button_Callback’,hObject,eventdata,guidata(hObject))
计算 UIControl Callback 时出错。
>>
@Brave 我也是这个情况,求解
@trueblue 重新安装matlab,勾选上Optimization-Toolbox组件和lachine Learning Toolbox组件
@Dragon 为啥我没有lachine Learning Toolbox 这个
@Boren 是Machine打错了
@Brave 我也是这个问题,请问解决了吗
@Boren 请问你怎么解决的啊
@知秋 Matlab可能在安装的时候没有勾选上Optimization-Toolbox组件和Machine Learning Toolbox组件
博主你这个分峰,是什么意思呢?还有|Z|为什么要-0.1124?然后你说和Zview拟合出来的|Z|对比,难道你测EIS没有直接的|Z|值吗?希望可以和博主可以讨论。
@锂电-军 只是为了方便画图而已,也可以改变Regularization中为-5,把峰突出一些。减去0.1124是为了减去前端的Rs,你可以看看原始数据。实测有|Z|,方便小白而已。
@Dragon 你的Rs=0.1124是Zview拟合出来的吗?我还想请教一下,DRT积分面积是没有欧姆阻抗的|Z|的吗?那如果不用等效电路,欧姆阻抗Rs怎么计算?
@锂电-军 Rs无需计算啊,数据里就有,就是阻抗的起始位置,各种别的溶液啊催化层啊的阻抗。
@变秃却没变强 那请问DRT是不会出现欧姆阻抗的峰吗
@Dragon 博主能分享一下啊这个分峰软件吗?我用origin分峰拟合,拟合出来的峰都不是在基线下的,有一边翘得很高。
@军 应该是xps peak
@Dragon 我的DRT有5个峰,是不是用XPSPeak41添加5个峰,然后自动拟合? 但是添加了位置会自动变,我固定了的,不知道是下载的软件不行,还是怎么回事。然后optimise All,就会提示错误Overflow就崩了。求大佬帮助。
@军 先添加基线,然后每一个峰单独拟合,通过调整峰面积,半峰款,峰位置。最好不要点击优化所有,每个峰单独优化比较好,不是软件不行。
还想求DRTtool怎么调整参数,不是很懂,呜呜
@Lydia 参数什么的,看看文献~或者问问你师兄师姐哈哈,我没什么QQ群。
@Dragon 谢谢博主
博主有没有关于DRT分析交流的群什么的,感觉还是有一些小东西不是很懂
@Lydia 没有诶,你再问问~
博主请教一下,我的数据输入进去,拟合的红线和实验黑线很不重合,该怎么办呢
@win 拟合的黑线和数据红点不重合
@win 可能是你的EIS数据本身质量不高,存在部分杂点,需要预先通过Kramers-Kronig检验,把比如感抗等部分预先去除
@Dragon 那也就是说 DRT这种手段直接导入数据以后拟合成什么样子就是什么样子了吗,不能够通过手动调整一些参数使得拟合的重合度更高吗,以前用等效电路拟合的时候,就是手动调整参数。
@win 数据不好需要修正一下数据,B站上就有Kramers-Kronig检验怎么做
@Dragon 好滴
分析完成后横坐标感觉有点奇怪,我测试的频率是0.1-1MHz,但是DRT分析的横坐标是10^-6-10^0,请问这个是哪里的问题呀
@TTTTTgH 求大神能回复一下
@TTTTTg 横坐标是秒了,不是Hz
请教这个导入的EIS结果的txt文件,内部数据是什么格式,只要3列,频率, Z‘,Z’‘即可吗?谢谢~
@陆平 是的,只要三列即可,频率, Z‘,Z’‘。可以参考下载的文件中示例文件里import file samples→text files提供的几个数据示范
@Dragon 感谢回复。这个计算出来的DRT结果,纵坐标单位是ohm。是用峰高代表这部分阻抗,还是用峰面积来代表这部分阻抗?
@陆平 面积
@Dragon 但是如果用峰面积代表阻抗的话,纵坐标单位应该是 Ω/s 欧姆(每秒)吧,因为横坐标单位是 秒 。 软件里纵坐标单位直接是欧姆,我看着有点懵。。。
@win 是的、纵坐标的单位是Ω/s 欧姆(每秒),软件中写错了。详见https://www.biologic.net/wp-content/uploads/2019/08/battery-eis-distribution-of-relaxation-times-drt_electrochemistry-an60.pdf
@Dragon 感谢博主
大家是怎么下载安装的的,我下载之后的压缩包里全是数据文件啊
@18541555562787 同学好,以matlab版本为例,将下载后文件中的DRTtools.m文件用matlab打开,运行后弹出软件界面。点击import按钮,可以打开文件中的示例文件,import file samples→text files→LIB_data.txt, 然后界面EIS Data会显示阻抗图,点击simple Run,即可通过DRT进行简单拟合,在图的上方点击DRT,即可以看到DRT结果,导出DRT结果可直接点击下方Export
@Dragon 感谢博主,我运行之后matlab中显示运行错误,未定义DRT TOOLS 应该如何解决?
博主学会了吗 想请教一下
@有有有有有有 昨晚邮件回复你啦
博主可以帮助分析吗,有偿~?
@小白白 我也在学习中
@小白白 这个技术确实好强啊
Scribner-850e燃料电池稳态极化曲线,ORR,ECSA,双电层电容自动化提取
美国能源部(Department of Energy)DOE燃料电池测试方法
丰田Mirai II车用介孔枝晶Pt/C载体MCND介绍