【作 者】裴葆青,徐声伟,李慧,李德玉,裴毅东,何海星
北京航空航天大学生物与医学工程学院、生物力学与力生物学教育部重点实验室,北京,100191
一种基于LabVIEW的呼吸机控制系统设计
【作 者】裴葆青,徐声伟,李慧,李德玉,裴毅东,何海星
北京航空航天大学生物与医学工程学院、生物力学与力生物学教育部重点实验室,北京,100191
设计一种呼吸机控制系统,被控对象为比例阀和电机,以实现呼吸机的基本功能。采用LabVIEW设计的软件直接与硬件互连,进行硬件环仿真和算法设计的验证和评估。采用上层上位机和下层实时机运行无实时要求和有实时要求的程序,上下层之间通过TCP/IP通信。软件程序设计模块化,可扩展性强,易于维护,并且可以方便地将原型开发阶段的成果无缝连接到实际的嵌入式产品,加快开发速度,提高开发效率。
呼吸机;LabVIEW;控制系统;PID
医疗电子设备市场竞争激烈,快速构建原型系统是缩短开发时间的关键。本文采用LabVIEW和相关硬件测试平台,设计了一种呼吸机控制系统。它将呼吸机的概念设计,原型设计阶段的工作移植到统一开发平台中,在一个开发平台下集成算法和硬件:一方面,在算法设计阶段引入I/O、A/D、D/A等硬件资源进行前期的验证,可以在更早阶段发现并修正潜在的错误;另一方面,由于使用同样的开发环境,算法设计的代码可以在原型设计的过程中被重用,从而简化编程的复杂性。这样从根本上加快循环递进的过程,缩短系统的开发时间[1,2]。
本系统主要通过控制比例阀和电机的开合,从而达到实现呼吸机各种通气模式的目的。系统总体结构如图1所示,分为上层和下层。系统层次图如图2所示。
系统中比例阀、电机及其驱动电路、传感器及其放大电路都采用实际的物理设备,LabVIEW则实现人机界面、通气模式算法和PID控制。上位机使用windows XP操作系统,实现人机界面、血氧监护和通气模式算法;下层实时机为安装有NI公司数据采集卡和LabVIEW RT模块的Desktop PC,实现数据采集和PID控制。
图1 系统结构框图Fig.1 The Chart of System
使用采集卡的两路AO通道控制比例阀、电机,其驱动电路如图3所示。使用采集卡的两路AI通道接收呼气流量和气道压力值。而对吸气流量的测量采用I2C数字传感器,使用采集卡的3个DIO通道和软件模拟I2C总线的方式来接收呼气流量值[3]。
本系统采用分层的方法,进行模块化设计。整个系统分为两层(图2),LabVIEW在上位机即软件上层实现人机界面、血氧监护和通气模式算法,而在实时机即软件下层实现PID控制算法和数据采集以及控制信号的输出。上下层通过TCP/IP通信。下面分别对TCP/IP通信模块、数据采集模块、PID控制算法模块进行详细介绍。
2.1 TCP/IP通信模块设计
图2 系统层次图Fig.2 The Layer of System
图3 比例阀、电机驱动电路图Fig.3 The Driver of Prop. Valve
由于本控制系统的人机界面、通气模式算法和PID控制分别在上位机和实时机上运行,彼此要进行实时数据交换,通信速度和可靠性要求高,因而采用TCP/IP协议通信。
TCP/IP提供一种面向连接的、可靠的传输层服务。LabVIEW提供TCP节点,经过简单的编程便可实现通信,灵活性好,可靠性高[4]。其实现方式如下所述。
将实时机配置为TCP服务器,将上位机配置为TCP客户端。
在服务器端:使用侦听TCP函数,指定端口,等待连接建立;如连接已建立,使用写入TCP数据函数以字符串的形式将消息发送给客户端;指定读取字节数,使用读取TCP数据函数读取客户端消息,并解码;使用关闭TCP连接函数关闭连接。
在客户端:使用打开TCP连接函数,指定服务器的远程端口和服务器的网络地址,打开与服务器的连接;指定读取字节数,使用读取TCP数据函数读取来自服务器的消息,并解码;使用写入TCP数据函数向服务器发送消息;使用关闭TCP连接函数关闭与服务器的连接[5]。
在使用TCP发送数据时,为了保证可靠性,采取了信号量机制,如图4所示。
图4 TCP数据发送程序Fig.4 The Program of TCP Sender
2.2 数据采集模块设计
数据采集工作在实时机进行。根据使用的传感设备不同,分别有两种数据采集方式:模拟数据采集和数字数据采集。在本系统中,由于分别采用了模拟传感器和数字传感器,因而数据采集部分分为模拟数据采集和数字数据采集。
模拟数据采集实现方式比较简单,通过直接调用LabVIEW的驱动库函数即DAQmx库,进行简单的编程实现。程序如图5所示。在本系统中同时采集两路模拟传感器数据,并经过校准,变成实际流量和压力信号供PID控制使用。
图5 模拟数据采集程序Fig.5 The Program of DAQ
数字数据采集实现方式比较复杂。由于采用的数字传感器通信方式为I2C总线方式,而系统所使用的采集卡硬件不支持I2C通信,因而使用数据采集卡的3个DIO通道通过软件模拟的方法实现,程序如图6所示。本系统中采集一路I2C数字传感器数据,并经过滤波和校准,变成实际的流量信号供PID控制使用。
2.3 PID控制算法模块设计
图6 I2C数字传感器数据采集程序Fig.6 The Program of I2C
软件上层通气模式算法模块,用于将人机界面的参数转换成当前模式下的控制信号,控制比例阀和电机。软件下层PID控制算法模块,用于实现底层PID控制并将控制信号通过AO口输出给硬件驱动电路。
PID控制采用增量式PID控制算法,并对增量和输出量进行限幅[6-7]。其算法为:
△u(k)=Kp*△e(k)+K1*e(k)+KD*[△e(k)-e(k-1)],
其中△e(k)=e(k)-e(k-1).
如果△u(k)>上限值,则△u(k)=上限值;
如果△u(k)<下限值,则△u(k)=下限值。
u(k)=u(k-1)+△u(k),其中u(k)为第k次采样时控制器的输出值。
如果u(k)>上限值,则u(k)=上限值;
如果u(k)<下限值,则u(k)=下限值。
式中:Kp,KI,KD分别为比例、积分、微分系数,e(k)为K时刻输出值与设定值的差。PID的输出直接控制比例阀和电机,使呼吸机的流量和压力值稳定在给定值。其中△e(k)、△e(k-1)是e(k)分别延时一个和两个采样周期得到,可以在while循环中添加两组移位寄存器实现。通过公式节点进行相应的计算,可以得到PID控制。程序如图7所示。
图7 PID控制程序Fig.7 The Program of PID
在人机界面中,首先对TCP/IP端口进行配置,设置一定的通气参数,然后运行程序。修改通气参数可得到不同的通气波形。通过调整PID的参数可得到不同的通气效果,其中一组VCV通气模式的通气波形曲线如图8所示。自上而下的曲线依次为压力波形,流量波形和设置的流量波形。此时PID参数为:KP=0.4,KI=0.6,KD=0.3。
图8 实验结果曲线Fig.8 The Curve of Result
本文主要是设计一种基于LabVIEW的呼吸机控制系统。该控制系统将呼吸机的概念设计,原型设计阶段的工作移植到统一开发平台之中,即在一个开发平台下集成算法和硬件,方便地实现硬件在环仿真实验,使仿真更接近实际情况,获得更精确的信息。整个系统的软件模块化,可以随时更换控制策略,而不必重新设计其它部分,减少了设计者的劳动量,提高了开发产品的效率,降低了系统的维护成本,缩短了开发产品的周期。
[1] [1] 汤敏, 倪斌.基于LabVIEW平台快速搭建医疗电子设备的原型[J]. 电子设计技术, 2008, (7): 138-140.
[2] 方敏, 陈志超, 张明. 基于虚拟仪器的过程控制系统的设计[J]. 仪表技术与传感器, 2008, (9): 37-39.
[3] 陆锋, 芦俊, 张晓松. 基于LabVIEW的虚拟仪器测试系统的I2C总线通信设计[J]. 自动化与仪器仪表. 2004, (4): 6-8.
[4] 杨乐平. LabVIEW高级程序设计[M]. 北京: 清华大学出版社, 2003.
[5] National Instruments. LabVIEW 8.6 Express user Manual. 2008
[6] 陶永华, 等. 新型PID控制及其应用[M]. 北京: 机械工业出版社,2001.
[7] 刘金琨. 先进PID控制MATLAB仿真(第二版)[M]. 北京: 电子工业出版社, 2007.
A Design of Simple Ventilator Control System Based on LabVlEW
【 Writers 】Pei Baoqing, Xu Shengwei, Li Hui, Li Deyu, Pei Yidong, He Haixing
School of Biological Science and Medical Engineering, Beihang University, Beijing 100191, China
ventilator, labVIEW, control system, PID
TH772
A
10.3969/j.isnn.1607-7104.2011.01.012
1671-7104(2011)01-0050-03
2010-09-29
裴葆青,E-mail: pbq@buaa.edu.cn
【 Abstract 】This paper designed a ventilator control system to control Proportional Valves and Motors.It used LabVIEW to control the object mentioned above and design ,validate, evaluate arithmetic, and establish hardware in loop platform.There are two system’s hierarchies. The high layer was used to run non-real time program and the low layer was used to run real time program. The two layers communicated through TCP/IP net. The program can be divided into several modules, which can be expanded and maintained easily.And the harvest in the prototype designing can be seamlessly used to embedded products. From all above, this system was useful in employing OEM products.