利用中子计算机断层扫描重建工作中的锂离子电池的三维图像
作者:Elmar Tarajan, MathWorks, Anatoliy Senyshyn, Technische Universität München
与镍镉电池(NiCd)、镍氢电池(NiMH)和其他更传统的电化学储能技术相比,锂离子电池(Li-ion)具有许多优势,包括高能量和功率密度、弱记忆效应和慢自放电。这些优点使锂离子电池非常适合广泛的应用,包括便携式电子产品,混合动力和电动汽车,以及可再生能源的固定存储。然而,锂离子技术并非没有缺点:锂离子电池的循环和日历寿命有限,稳定运行的温度范围也较窄。
尽管研究人员正在积极致力于解决锂离子电池技术的弱点,但由于无法直接观察锂离子电池运行中的复杂过程,他们的努力受到了限制。现代锂离子电池是孤立的电化学系统,一旦打开检查,其内部状态就会发生变化。
为了解决这个问题,研究人员已经转向中子断层扫描来创建锂离子电池[1]的三维(3D)图像。3D图像是由一系列通过中子射线摄影捕获的2D图像重建的,中子射线摄影是一种使用中子而不是x射线作为辐射源的非破坏性成像技术。在这篇文章中,我们描述了从数百个2D射线投影中组装锂离子电池的3D图像的过程。我们使用MATLAB®和图像处理工具箱™来加载2D投影图像文件,去除噪声,计算每个投影的旋转中心,并执行反拉东变换,从投影数据重建3D图像。
中子放射学与断层摄影基础
标准磁共振成像和传统的x射线成像不太适合锂离子电池的研究,因为这些技术要么与电池中发现的过渡金属不兼容,要么无法准确定位锂、氢和氧原子。相比之下,中子射线照相不仅能够区分光和周期表中的相邻元素,而且还能够在穿透深度足以用于电池成像的不同同位素。
中子束照亮电池,根据电池的形状、密度和同位素组成,部分中子束被吸收(图1)。通过电池的中子部分由2D探测器测量。
通过在物体的定义角度位置收集足够数量的投影,可以使用过滤后的反投影算法来计算逆Radon变换来重建物体中中子衰减的完整3D分布。这种技术,中子断层扫描,使研究人员能够无创地创建锂离子电池和其他不透明物体的3D表示。
加载和预处理源图像
我们用于开发本项目MATLAB算法的图像来自德国慕尼黑附近Heinz Maier-Leibnitz中心的ANTARES设施[2]进行的实验[1]。用多色中子束照射锂离子电池,同时在360°角范围内收集600个层析投影,每个投影旋转0.6°。
采集结果是一组2048 x 2048像素的32位分辨率TIFF图像,标记包括旋转角度;例如:
bat_run1__000.600.fits.tif…bat_run1__359.100.fits.tif
加载每张图像后,我们的第一步是选择电池周围的感兴趣区域(ROI)(图2)。以这种方式缩小范围可以减少后续步骤的处理时间。
下面的MATLAB代码读取一个文件并使用imrect
工具,该工具在图形窗口中提供一个可拖动的矩形:
>> img = imread(“bat_run1__000.000.fits.tif”);> > imshow (img);>> h = imrect >> ROI =等待(h) ROI = 750 450 650 1600
接下来,我们编写了MATLAB代码来自动化预分配内存和读取每个图像文件的过程。我们从每个文件名中提取电池的旋转角度(theta):
确定所有可用的映像文件文件= dir(“bat_run1__ * .tif”);预分配内存ImageData = 0 (roi(2),roi(1),数字(文件));开始循环将图像加载到MATLAB中为N1 = 1: img = imread(文件(N1).name“PixelRegion”, {[roi (2) roi (2) + roi (4)] [roi (1) roi (1) + roi (3)]});ImageData(:,:,N1) = img;theta(N1) = sscanf(文件(N1).name,“bat_run1__ % g”);结束
噪音校正
为了提高断层重建的精度,我们必须校正采集图像中由光束和探测器非线性引起的噪声。为了做到这一点,我们使用了两种特殊的参考图像,这些参考图像是使用实验设置创建的。第一个,我们命名了OpenBeamData
,是通过用开放光束(其中没有电池)平均几张图像而创建的,结果是一个几乎空白的投影。第二种叫做DarkFieldData
,是在关闭中子束的情况下,通过平均几张图像生成的,结果是一张完全黑暗的图像(图3)。
在中子断层摄影术中,每个投影图像中的强度值代表了物体的中子吸收,这与物体的密度直接相关。中子吸收\(μd\)定义为\(μd =- ln(\frac{I}{I_0}) \),其中\(I\)和\(I_0\)分别为每个像素处的透射光束和开放光束。为了减少噪声,投影和开放光束图像都减去暗帧基线。为了补偿非线性,我们使用以下MATLAB循环计算每个源图像的中子吸收值:
对于N1 = 1:数字(文件)去除噪声%ImageData(:,:,N1) = -log(ImageData(:,:,N1)- DarkFieldData)./(OpenBeamData-DarkFieldData);结束
计算旋转中心
在拉东反变换中,物体的旋转轴必须与旋转台的旋转轴重合。然而,由于很难精确地控制物体旋转,我们决定使用粗略的对齐,并稍后用MATLAB代码纠正数据中的任何偏移。
在以180°不同角度收集的两张图像的叠加中,电池的错位很明显(图4)。
为了测量对齐偏移,我们设置了一个优化问题,调整旋转中心以最小化任何两个这样的图像之间的差异:
函数offset = DetermineRotationCentre(img1,img2);offset = fminsearch(@(x) ImageCompare(x,img1,img2),-100);结束函数f= ImageCompare(x,img1,img2) f=mean(mean(abs(img1-circshift(fliplr(img2),[0 round(x)]))));结束
然后我们将计算出的偏移量应用到所有收集到的图像数据上:
>> Offset = DetermineRotationCentre(ImageData(:,:,1),ImageData(:,:,301 >> ImageData = ImageData(:,Offset:end,:);
从投影数据重建电池图像
一旦2D图像被加载、去噪并居中,最后一步是执行逆拉东变换,根据收集到的投影重建电池内部结构的3D表示。我们使用iradon
函数,对投影数据执行此转换,并逐层重建电池(图5)。
重建电池图像的MATLAB循环非常简单:
为N1 = 1:size(ImageData,1)使用squeeze来删除单维度,因为iradon需要一个2d数组作为输入层(:,:,N1) = iradon(挤压(ImageData (N1、::)),θ);结束
一旦我们重建了电池图像,我们使用MATLAB详细地可视化各个横截面(图6)。
使用色图编辑器,我们交互式地将配色方案(灰度或假色)应用于32位吸收图像。手动调整配色方案清楚地显示了一些小细节,包括电池的安全通风口、中心销、垫圈、微电路和堆叠的滚动电极(图7)。
结论
我们在MATLAB中实现的重建技术提供了一种非破坏性的方式来观察锂离子电池在各种条件下的行为,如充电率、温度、充电状态和健康状态。所有这些使得这项技术成为一种非常有效的诊断工具。它特别适合于原位老化诊断,可作为电池制造过程质量控制的一部分实施。我们使用的MATLAB代码可以通过实现更高级的数据过滤技术或创建重建3D图像的额外可视化来轻松扩展。
致谢
该项目的实验部分得到了Deutsche Forschungsgemeinschaf金宝appt的支持。我们承认海因茨迈尔莱布尼茨中心Martin J. Mühlbauer博士,感谢他在数据收集、分析和富有成效的讨论方面提供的帮助。
发布于2017年- 93174v00
参考文献
-
A. Senyshyn, M.J. Mühlbauer, K. Nikolowski, T. Pirling和H. Ehrenberg,“锂离子电池的“operando中子散射研究”,J.电源来源203(2012) 126-129。
-
Heinz Maier-Leibnitz Zentrum(2015),“ANTARES:冷中子射线照相和断层扫描设备,”大型研究设施期刊, 1, a17。http://jlsrf.org/index.php/lsf/article/view/42