搏动式血泵驱动源的运动参数计算及精确实时补偿控制
2011-01-26曹云潘钢臧旺福白景峰
【作 者】曹云,潘钢,臧旺福,白景峰
1 上海交通大学生物医学仪器研究所,上海200030
2 上海交通大学Med-X研究院,上海,200030
3 上海交通大学医学院附属瑞金医院心外科,上海,200020
0 前言
左心室辅助装置(LVAD)作为心衰病人等待心脏移植的过渡治疗设备已普遍被使用,它能部分或完全替代心室泵血功能,所以也称人造血泵[1]。依据血液流动的形式血泵可分为搏动型与平流型两种。搏动式血泵需以一定的搏动率“跳动”,一般均需外部动力源,对于驱动源的基本要求为可实现搏动率、流量和压缩比调节[2]。血泵的驱动是人工心脏研究的关键问题之一,它直接影响血泵的性能和临床应用[3]。现今临床上囊式、膜式的搏动血泵多使用开放式气压(如气泵)作为驱动源,通过控制气泵开关的方式调节出气量实现上述相关参数的设置。这种方式控制的血泵精度较低,且实时性差,工作时产生的噪音过大,不符合临床上相对安静的环境要求,制作成本较高,过于庞大的体积给临床应用带来了诸多不便。
1 驱动系统
1.1 系统结构
针对上述气泵驱动中的诸多问题,本文提出了一种实时性好,运行稳定,噪音小,且可调节精确控制血泵的搏动率、流量和压缩比的驱动方法。其硬件构成如图1所示,采用以ARM单片机为控制核心,伺服电机为动力源,通过丝杆连接电机与气缸将电机的转动转化为气缸活塞的来回往复运动。通过控制伺服电机的转动角度及转速实现气缸输出与吸入气量及运动频率的精确控制。
图1 系统结构图Fig.1 System structure
伺服电机的控制采取一个较为独特的方式,即采用ARM单片机作为控制核心,与现代典型的伺服电机控制系统有着较大区别。现代典型控制方案主要由上位计算机、运动控制卡、驱动器和电机组成,如图2示。运动控制卡基于PC总线,通常作为步进电机或数字式伺服电机的上位控制单元,卡上专用CPU与PC机CPU构成主从式“双CPU”控制模式。PC机只进行人机界面、实时监控和发送指令等系统管理工作,由卡上CPU来处理所有运动控制的细节,如升降速计算、行程控制和多轴插补等。随卡提供各种功能的运动控制函数,让用户更快且有效地解决复杂的运动控制问题。此种方案多用于运动过程和运动轨迹都比较复杂,且柔性比较强的设备[4]。
图2 典型控制方案Fig.2 Typical control scheme
在本文提出的血泵驱动方案中,我们只需控制单个电机实现单轴上的来回运动,以提供血泵的压缩和舒张的动力。该方案中ARM需同时完成人机交互与电机的控制两项工作,用外接触摸屏来实现人机交互,通过脉冲串频率来控制电机的速度,脉冲的数量来控制电机的行程位置,方向信号来控制其转动方向。
在血泵驱动中使用这种方案,较之传统方法有几点优势:① 使用ARM外接触摸屏控制的单CPU模式,替代“双CPU”模式可以减少控制卡多轴控制等复杂功能和避免PC丰富资源的浪费;② 血泵运行时,在较高搏动率下电机需高速转动,且要求快速、准时的正反转切换,这对控制部分的实时性提出较高要求。ARM单片机程序均为实时操作,因而实时性远强于PC机上基于PC操作系统的运动控制程序;③ 该方案显著地降低了产品的成本,便于市场推广,增强了市场竞争力。
1.2 参数设置与计算
设计方案包括电机参数设置及ARM单片机程序两部分。
伺服驱动器的参数设置为:输入脉冲串的形式选用命令脉冲/命令符号形式,用命令脉冲表示旋转量,而命令符号表示旋转方向,控制方式选用位置控制方式,电子齿轮设定为电机旋转一周需1200个指令脉冲[5]。
ARM单片机资源分配为:人机交互部分使用液晶显示接口外接液晶显示屏,并使用8路AD通道中的前四路作触摸屏接口; 控制信号部分取用一路I/O口设为输出口,用于发出方向信号,控制电机的正反转方向;使用定时器Timer0开启其脉宽调制功能(PWM),将占空比设为50%以作为脉冲输出信号。由于运动过程与时间密切相关,故需使用定时器的定时功能,这里使用Timer2进行运动主体控制。
血泵使用过程中主要的工作参数有搏动率H(次/min)、压缩量V(ml)和压缩比c(取值范围为1.0-2.0)。搏动率H对应着电机单次来回运动的时间总和Tp+Tn。压缩量V即单位时间内血泵输出的血量,对应着电机单次运动的行程。压缩比c则对应着电机来回运动的时间比Tp/Tn。电机运行速度对应着脉冲频率。它们的计算公式为:
(60为每毫升的输出量对应的脉冲数)
单次运动时间=Tp(压缩时间)+Tn(收缩时间)
依据公式计算得出,在搏动次数为60次/min,输出量为6000 ml和压缩比为1.0时,压缩脉冲频率同舒张脉冲频率相同均为12000,即电机的转速需达到600r/min。由此可知,在更高的搏动率下电机的转速会更高。实验中发现,直接进行启动与停止操作,电机在两端急停换向再启转时,会产生较大的噪声。为此在启动与停止处采用类似于步进电机控制中的加减速控制方式,如图3所示。实验证明,采取此方案可以有效减少噪声。
图3 加速曲线Fig.3 Curve of acceleration
加速部分软件实现流程如图4所示,减速阶段与加速阶段处理方法类似。
1.3 驱动控制
软件部分以Timer2中断为主体。考虑到该种应用的高实时性要求。将该中断设为ARM支持的FIQ(快速中断模式)模式,其请求具有最高的优先级,可以打断IRQ(普通中断)而不会被IRQ打断。程序中还有多处中断均采用IRQ,这样使得运动过程控制具有最高优先级,从而保证较好的实时性。
以单次来回运动为一个运动周期为例,具体处理方法为设置一个起始原点,在每次开机时均会通过位置检测装置的反馈来自动回到原点,运动从原点开始;驱动气缸形成压缩压,然后回到原点形成舒张压,从而完成一个周期运动。在工作中需进行心率等参数的调整时,若采取停止电机,工作修改参数再启动电机,则会打断血泵工作的连续性,而若在其行程中间直接修改参数并立即生效,则需要考虑剩余的时长和行程等,这将导致计算复杂而出错。为此采取了一种缓冲的方法,在修改完参数并最终确认后,新的参数并没有立即生效,而是暂存在了一个缓冲区,当检测到电机已经回到了原点时则将缓冲区的新参数取出并使之生效。对于电机的停止也采取类似方法,按下停止电机并不立即响应这一操作,而是做出标记在回到原点后才检测是否有按下停止,若有则停止运动,这样可以避免再次启动时需重新回零。由于篇幅所限,仅给出程序流程图,如图5所示。
图4 加速过程控制Fig.4 Process of accelerate
图5 主要控制部分Fig.5 Main control section
1.4 误差补偿
伺服电机精度已经较高,但机械部件的误差一直存在,每个周期运动发送的脉冲数也会有误差。随着血泵跳动长时间进行,不可避免的会带来误差累积,若任由其累积扩大将会超出传动机构的行程而发生故障。这里,我们采取的解决办法是,取定一个允许的误差域,每次到原点端时检测其位置偏离情况,若在允许范围内则继续下一次运动,若超出则在下一次运动前补偿一定的量使其回到误差域内。系统中位置检测装置总长为100 mm,AD采样精度为10位即返回值为0-1023,误差域设为15,即(15/1024)*100 mm≈1.5 mm。经实验得出随着参数的不同,每隔10-20次来回运动需进行一次调整,即每次运动的误差<或=0.15 mm,在容许范围内。
2 总结
本文介绍的基于ARM为控制核心的新型搏动型血泵的驱动装置结构简单,可依据需要在不中断血泵工作的情况下调节心率、压缩比和输出量。经实验证明,基于实时补偿方法的控制精确,且装置长时间运行稳定,运行过程中噪音较小,达到临床应用的要求。
[1] Vitali E, M. Lanfranconi, G. Bruschi, E. Ribera, et al. Mechanical circulatory support in severe heart failure: single-center experience[J]. Transplantation Proceedings, 2004, 36(3): 620-622.
[2] 韩元杰, 杨明. 搏动型血泵驱动系统的探讨[J]. 中国医疗器械杂志, 2009, 33(001): 1-6.
[3] 徐先懂, 谭建平. 血泵驱动电机调速系统研究[J]. 机电工程技术,2006, 35(010): 32-34.
[4] 周志明. 基于运动控制卡的步进电机控制系统[J]. 煤矿机械,2004, (003): 95-97.
[5] 蔡志祥, 刘冬生, 曾晓雁. 基于单片机的交流伺服电机控制系统[J]. 机械与电子, 2005, 5(5): 28-30.
[6] Meyns, B. Indications for rotary blood pumps in clinical practice[J]. Artificial Organs, 2001, 25(5): 323-326.
[7] Mihaylov, D., G. Verkerke, P. Blanksma, J. Elstrodt, E. De Jong andG. Rakhorst. Evaluation of the optimal driving mode during left ventricular assist with pulsatile catheter pump in calves[J].Artificial Organs, 1999, 23(12): 1117-1122.