技术文章和通讯

宾夕法尼亚大学开发用于心脏起搏器实时闭环测试的电生理心脏模型

作者:宾夕法尼亚大学蒋志浩和拉胡尔·曼格拉姆


从1990年到2000年,制造商召回了60多万件心脏医疗设备。其中约20万起召回是由于软件问题。

一个典型的起搏器包含8万到10万行代码,使用当前的行业实践,制造商很难识别软件错误。这些方法依赖于开环测试,测试人员将预先记录的心脏信号输入起搏器,并评估相应的输出。开环测试可以揭示心脏起搏器对各种心脏状况的反应,但不能揭示心脏在闭环系统中对起搏器的反应。在起搏器介导的心动过速等情况下,这一点尤为重要,因为在这种情况下,起搏器会使心脏进入不安全状态。

在宾夕法尼亚大学的电气和系统工程系,我们的团队开发了第一个心脏电生理模型,可以对起搏器进行实时闭环测试。MATLAB开发的®和仿真软件®在美国,这种芯片上心脏系统可以配置为匹配患者特定的电生理特征,它可以模拟各种心脏状况,以便对起搏器软件进行早期验证。

心脏起搏器和心脏传导系统

从工程学的角度来看,心脏是一个机械泵,使血液在全身循环。从起搏器的角度来看,它是一个需要精确计时电信号的实时系统。

心脏传导系统是一个由节点和通路组成的网络,它承载着电信号,使心脏腔室收缩和放松(图1)。在健康的心脏中,收缩是有节奏的。心脏传导系统的紊乱会导致心跳加快(包括心房扑动和纤颤)和心跳减慢(称为心动过缓)。

UPenn_Figure_1_w.jpg
图1。心脏的电传导系统(左),表示为节点和路径的网络(右)。

心脏起搏器装有感应心脏电活动的电极。当起搏器软件检测到心律异常时,它会向一个或多个心脏腔室发送精确计时的电脉冲。心脏和起搏器形成一个闭环系统,在这个闭环系统中,心脏行为的变化导致起搏器活动的变化,反之亦然。

构建心脏模型

为了更好地了解电信号是如何在心脏中工作的,我们在宾夕法尼亚大学医院旁听了心脏手术。在这些手术中,电生理科的医生通过导管将电流引导到心脏。然后他们监测心脏的电行为,并测量沿通路的电导率。

我们在MATLAB中创建了心脏的初始电生理模型。我们选择MATLAB有几个原因。首先,我们需要在开发的早期阶段进行广泛的设计探索,而MATLAB是一个尝试新想法的极好环境。其次,我们的大多数研究生已经是有经验的MATLAB用户,所以他们可以立即为项目做出贡献,而不必学习新的软件。第三,MATLAB和Simulink支持fpga和嵌入式系统的代码生成,我们需要这些代码来进行实时测试。

在对MATLAB心脏模型进行仿真和细化之后,我们创建了Simulink和statflow®的版本。该模型为我们提供了心脏内节点和路径的可视化表示,并且能够比MATLAB版本更快地进行模拟。Simulink和状态流模型包含大约30个节点和30个路径子模型,我们将其开发为状态流图。节点自动机子模型包括三个状态,分别对应一个静止状态和两个活动状态,即有效不应期(ERP)和相对不应期(RRP)(图2)。

UPenn_Figure_2_w.jpg
图2。节点自动机的状态流程图。

路径自动机更为复杂,包含描述路径传导的五种状态:ante(正向传导)、idle(无传导)、retro(反向传导)、double(双向传导)和冲突。在费城退伍军人医院的心脏电生理学主任验证了心脏模型中的几个心律失常。

建立起搏器模型

在Simulink和Stateflow中建模起搏器之前,我们使用由丹麦奥尔堡大学和瑞典乌普萨拉大学联合开发的UPPAAL建模环境,建立了一个专门用于形式化验证的时间自动机模型。该模型基于起搏器制造商提供的规范,使我们能够探索设计空间,并证明设计的特定属性满足要求。更传统的方法是从Simulink和Stateflow模型开始,然后使用Simulink Design Verifier™执行正式的验证。我们计划使用Simulink Design Verifier来正式验证事件的时间,以及设计的运行时和安全属性。

我们使用了UPP2SF,一个在宾夕法尼亚大学开发的模型翻译工具,自动地将我们在UPPAAL中基于时间自动机的模型转换为Simulink和Stateflow模型,用于仿真和测试(图3)。

UPenn_Figure_3_w.jpg
图3。起搏器设计状态图。

闭环仿真与实时实现

随着心脏模型和起搏器模型的Simulink和statflow版本的完成,我们进行了闭环模拟来验证起搏器的行为。例如,我们模拟了几个闭环场景,包括起搏器介导的心动过速和心房扑动;我们的正式验证分析强调有潜在问题的场景;以及故障情况,比如起搏器导线移位。我们还使用仿真来比较和评估不同版本的起搏器算法。

测试真正的起搏器——而不仅仅是模型——是我们的主要目标之一。为了实现这个目标,我们需要在实时硬件上实现我们的心脏模型。我们使用HDL Coder™生成VHDL®来自Simulink和Stateflow模型的代码,使我们能够在Altera上部署芯片上的心脏®FPGA(图4)。生成的代码非常高效,我们能够在一个低端FPGA上实现心脏模型的多个版本。

UPenn_Figure_4_w.jpg
图4。FPGA实现的心脏模型。

对于我们的第一个实时测试,我们通过使用嵌入式编码器从Simulink和Stateflow起搏器模型生成C代码,构建了一个简化的起搏器®并将其部署到Atmel上®嵌入式单片机。在这些测试成功之后,我们使用FPGA片上心脏和生产起搏器进行了闭环测试。

芯片上的心脏平台在2012年韩国首尔举行的世界嵌入式系统竞赛(高科技医疗服务)中获得一等奖。

新建模型配置接口

我们的心脏模型是高度可配置的,可以解释患者的电生理电导率的变化。首先,我们直接在Simulink模型中进行配置更改。为了简化我们团队和其他研究人员的这一步骤,我们开发了Penn虚拟心脏模型模拟器,这是一个用MATLAB构建的接口,允许用户为新的心脏模型指定拓扑,然后根据所请求的拓扑和配置参数自动配置模型(图5)。

UPenn_Figure_5_w.jpg
图5。宾州虚拟心脏模型模拟器界面。

在幕后,Penn虚拟心脏模型模拟器使用MATLAB脚本根据请求的拓扑和配置参数生成Simulink和Stateflow模型。

下一个步骤

我们正在与美国食品和药物管理局和起搏器制造商合作,建立一个框架和指南,使用我们的心脏模型对起搏器软件进行早期验证。我们计划开发一个系统,可以自动将患者的电生理学测试结果转换为定制模型,该模型具有针对患者心脏的优化参数。

我们在心脏模型方面的工作是对宾夕法尼亚大学研究人员开发通用输液泵模型和参考规范的相关项目的补充,这些模型和规范用于验证医疗输液泵的安全性能。这两个项目都旨在提供生物系统的现实模型,以改进医疗设备的测试。我们计划通过开发与一系列医疗设备(包括镇痛泵、血糖和胰岛素监测系统)相互作用的人类系统的Simulink模型,继续在这一领域取得进展。通过支持软件的早期验证和实时闭环测试,这些模型将使医疗设备制造商更容易提高其软件的质量,并减少设备召回的数量。

发布于2013 - 92119v00

Baidu
map