文章目录
1. EIDORS3.8 基本架构
EIDORS3.8
是一个基于电学或光学数据可自由分配和自由修改的图像重建软件包。此软件工具作为开发人员对于新算法、新模型的验证与实现平台,促进EIT
技术领域研究与发展。
EIDORS3.8
软件包括四个基本数据结构对象:Fwd_model
、Data
、Image
、Inv_model
,每个 EIT 模型均有此一个或多个结构对象构成。
1.1 Fwd_model
表1描述了Fwd_model
结构对象的主要构成模块,Fwd_model
对象是四种结构对象中最繁琐的。
electrode
模块由一个
E
×
1
E\times1
E×1的向量表示(𝐸为电极数目),electrode
模块包括接触阻抗(z_contact
)与相应电极所位于的节点(node
)。实验中,EIDORS
的电极设置不必完全一致,接触阻抗需考虑在内,一般 z_contact
≥
\geq
≥ 0 ,根据实际应用背景进行设置,本文一般取 z_contact = 0.001
;同时构建 Fwd_model
时,也能对电极的大小、形状、位置进行相应的设置。对 electrode
模块自身属性完成基本设计,其最终目的为获取场域边界的电压信息,那么还需要对 stimulation
模块进行配置,stimulation
模块主要包括 stimulation
、stim_pattern
、meas_pattern
三部分。stimulation
定义注入电极的模拟量及其单位,EIT
电极激励模式分为电流激励与电压激励,EIDORS3.8
只支持电流激励模式,系统默认注入电流单位为 mA
。stim_pattern
定义电极激励模式,常用的激励模式包括相邻激励模式和相对激励模式,同时还定义了激励电流的大小,以 16 电极相邻激励模式为例,将有 16 个电极对接受激励电流。meas_pattern
为(
E
×
N
i
E \times N_i
E×Ni )的矩阵,
N
i
N_i
Ni是第𝑖个激励电极对所对应测量数据的个数。另外,stimulation
模块可选模块delta_time
定义了一个电极对施加激励电流到下一个电极对施加激励电流的时间,以 Kalman 滤波算法
为例,当 delta_time
等于 0 时,算法将利用一次测量中所有激励电极对对应的测量信息重建一帧图像,而 delta_time
非零时,算法利用每个激励电极对相应测量数据分别成像,提高EIT
技术的时间分辨率。当定义 stimulation
模块中的参数时,一定要选择第几个激励电极对,如 fwd_model.stimulation.delta_time=1
种定义方式是错误的,正确的方式为fwd_model.stimulation(1).delta_time=1
。EIDORS3.8
同时提供了一些定义 Fwd_model
模块的工具函数,如mk_circ_tank.m
、mk_stim_pattern.m
、mk_common_model.m
等,其中 mk_stim_pattern.m
工具函数很重要,定义了电极激励测量模式的基本属性。
1.2 Data
EIDORS3.8
的data
对象表示测量过程或激励过程的一帧数据,其主要构成由表2 所示。通常eidors_readedata()
作为EIT
模型的数据接口,EIT
模型可通过此函数接口读取外界真实测量数据,验证算法与模型的实际性能。
1.3 Inv_model
表3描述了Inv_model
结构对象的主要构成模块,此结构对象包括的信息能够完成图像重建。Inv_model
首先应确定reconst_type
模块的重建成像类型,包括静态成像与差分成像。本文中 Inv_model.reconst_type="difference"
即均采用差分成像方式。solve
模块作为EIT
模型逆问题算法的接口,可以读取不同类型的算法函数,完成基本的图像重建。但有些算法函数被调用之前必须提取EIT
逆问题模型的先验信息,EIDORS3.8
定义了一些用于提取先验知识的工具函数,如prior_laplace.m
、prior_tikhonov.m
、prior_gaussian_HPF.m
、prior_noser.m
等,solve
模块调用 Kalman滤波算法
之前,必须利用prior_noser.m
统计EIT
逆问题模型的噪声特性。另外,hyperparameter
模块的选择影响重建图像效果,也可通过 aa_calc_noise_figure.m
函数进行确定。
1.4 Image
Image
结构对象一般表示重建图像或正问题模型场域内电导率分布值,本文重建后的Image
表示目标区域电导率分布变化值。对于正问题场域及重建后的Image
分别可通过如下函数得到。
img=inv_solve(inv_model,data1,data2)
;data1
,data2
参数表示不同时刻的测量数据;datasim=fwd_solve(fwd_model,imgsim)
。
2 基于 EIDORS3.8 的 EIT 有限元模型建立
表1~表 4 对 EIDORS3.8
软件的基本框架进行了分析,本节基于EIDORS3.8
构建EIT
有限元模型,并叙述有限元模型参数的修改方式。
2.1 二维有限元模型
基于 EIDORS3.8
进行有限元模型构建,首先运行预运算函数 startup.m
,保证Matlab
工具对于 EIDORS3.8
中函数的识别与应用。EIDORS3.8
常用构建有限元模型函数为mk_common_model.m
,可通过该函数构建不同的二维有限元模型。
图 1 描述了不同形状的场域模型,如参数’'c2s'
、'c2c'
、'c2t2'
中的第一个参数"c"
表示场域内剖分的密度,密度随 a~g
字母增加而增加;第二个参数表示有限元模型的维数;第三个参数代表场域有限元模型的形状;"16"
代表电极的数量,均可改变,最大值为边界上的节点个数;而"c2t2"
中的第四个参数表示对图形进行微调,图 2说明了这一点。
综上描述,EIT
二维有限元模型的剖分元素形状、剖分元素密度、场域形状、电极数量均可按需求做出改变。图 1 与图 2 所列出的模型只是基本的通用模型,实际应用中,应基于实际应用背景做出更多的改变。
2.2 三维有限元模型
本 节 对 构 建 三 维 EIT
有 限 元 模 型 进 行 探 索 , 三 维 重 建 模 型 可 通 过mk_common_model.m
函数完成,但其不能全面地对三维模型进行设置,这里调用Netgen5.3
完成三维模型构建。ng_mk_cyl_models.m
作为构建EIT
有限元模型函数之一,则有,
fmdl= ng_mk_cyl_models(cyl_shape, elec_pos, elec_shape, extra_ng_code)
;
cyl_shape = {height, [radius, [maxsz]]}
设置模型的高度、半径、剖分网络密度;
elec_pos = [n_elecs_per_plane,z_planes]
设置电极数目、层数及位置;
elec_shape = [width,height, maxsz]
设置电极形状。
图 3 列出了三种不同的模型,分别为
(a)ng_mk_cyl_models([1,0.3,0.08],[16,0.5],[0.05,0.1,0.08])
;
(b)ng_mk_cyl_models([1,0.3,0.08],[8,0.5],[0.05,0,0.08])
;
(c)ng_mk_cyl_models([1,0.3,0.08],[8,[0.2 0.8]],[0.05,0.05,0.08])
;
图 3 描述了 ng_mk_cyl_models.m
函数对三维有限元模型的基本设置。对三维模型而言,如何实现逆问题重建是其研究重点之一。本节叙述一种三维EIT
有限元模型重建感兴趣区域的方式,此种方式基本思路为基于三维细剖分模型求解正问题,基于二维粗剖分模型对感兴趣区域进行重建。
图 4 描述了双层圆形 16 电极三维圆柱EIT
模型内目标小球以中心线为基准做螺旋状运动。EIT
模型剖分 341829 个元素,接触阻抗为 0.001,采用相邻激励测量模式,同时进行 20 次测量,小球 20 次测量时的理想位置如图 4 所示,感兴趣区域默认为第一层电极截面。
若三维模型的边界电压关系与内部电导率分布的关系满足
V
3
D
=
F
3
D
(
σ
3
D
)
V_{3D}=F_{3D} (\sigma_{3D})
V3D=F3D(σ3D)
式中,
V
3
D
V_{3D}
V3D 表示边界测量电压;
σ
3
D
\sigma_{3D}
σ3D 表示三维场内的电导率分布。
假设粗剖分模型中电导率分布 σ 2 D \sigma_{2D} σ2D ,正问题与逆问题之间的映射关系 Y 3 D Y_{3D} Y3D ,如式所示,
σ 3 D = Y 3 D σ 2 D \sigma_{3D}=Y_{3D} \sigma_{2D} σ3D=Y3Dσ2D
EIT
逆问题模型根据上式的映射关系将二维粗剖分模型映射到第一层电极细剖分截面处 ,如 图 5 所 示 ,
二维方形及圆形粗剖分模型分别
mk_common_model('b2c2',16)
,mk_common_model('b2s2',16)
。
图 5 描述了不同剖分方式的粗剖分模型映射到感兴趣区域的 Inv_model
模型,图5(a)与图5(a)中,粗剖分模型位于中间红色截面处,中间红色截面上方与下方的灰色截面表示粗剖分模型在垂直方向的映射范围。完成Inv_model
模型构建之后,根据表 3 对二维模型进行设置,如提取二维模型的先验信息,调用逆问题重建算法等。图 6 为Inv_model
调用 Kalman 滤波算法
的重建图像。
图 6(a)与图6(b)分别表示感兴趣区域的 8 帧重建图像,图6(a)的重建图像更符合目标区域的实际情况,对于选择哪种粗剖分模式,应根据实际需求进行选择。