,MICROCOMPUTER CONTROL OF A PNEUMATIC · 2020. 9. 28. · microcomputer interfacing and...
Transcript of ,MICROCOMPUTER CONTROL OF A PNEUMATIC · 2020. 9. 28. · microcomputer interfacing and...
-
,MICROCOMPUTER CONTROL OF A PNEUMATIC \
BLOOD PUMP, ;
by
Douglas Eugene\, Hux,1
Thesis submitted to the Graduate Faculty of the
Virginia Polytechnic Institute and State University
in partial fulfillment of the requirements for the degree of
MASTER OF SCIENCE
in
Mechanical Engineering
Endorsements:
L ~ J. f/Arp f cf irrnan
P. R. Rony H. H. Mabie
June, 1978
Blacksburg, Virginia
-
ACKNOWLEDGEMENTS
I would like to express my sincere appreciation to the
following people who assisted in this research:
Dr. Leon Arp, who served as committee chairman and
motivated my best efforts,
Dr. Peter Rony, for his patient instruction in the art of
microcomputer interfacing and programming,
Dr. Hamilton Mabie, for serving on the graduate committee,
Dr. Christopher Titus, of Tychon, Inc., for his generous
loan of the MicroDesigner, and,
My parents, for their patience and
encouragement throughout this graduate work.
This thesis is dedicated to
who sparked my interest in engineering twelve years ago, and hasn't
allowed it to fade.
ii
-
TABLE OF CONTENTS
Acknowledgements
List of Figures
List of Tables
I. Introduction
II. Control Strategy Overview The 8080 Microcomputer The Blood Pump The Flow Transducer System Operation
III. Implementation • Overview Interface Hardware and Software
Device Select Pulses Keyboard Displays Valve Drive Analog-to-Digital Converter
System Integration Closed-Loop Control
IV. Calibration and Tuning Overview Calibration Tuning and Response
V. Conclusions and Reconnnendations
References Cited
Appendix
Vita
A. B.
Abstract
Software Listing Construction Details
iii
ii
iv
• vii
1
3
3 3 9
13 13
14 14
. 15 • 15
15 23 23
• 34 • 43 • 64
• 66
• 66 • 66 • 70
• 91
• 96
98 136
144
-
Figure
1
2
3
4
5
6
7a
7b
8
9a
9b
10
11
12
13
14
15
16
17
18
19
20
LIST OF FIGURES
Blood Pump Monitoring and Control System •
8080 Computer Organization .
Page
4
6
The Arp Blood Pump Chamber
Details of Blood Pump Chamber
. . . . . . . . 10
Generation of Input Device Select Pulses .
Generation of Output Device Select Pulses
Keyboard Encoder • •
Keyboard Interface
Keyboard Service Routine .
Seven Segment Display
Inversion of Display Select Pulses • •
Interrupt Instruction Interfacing
Interrupt-Driven Valve Sequence
Eight-Bit Programmable Interval Timer
System Clock . • • • • .
Valve Drive Circuitry
Instrumentation Amplifier .••...•.
Scaling Amplifier . • . • • • . . • • •
11
. . . . 16
17
18
20
22
24
25
27
29
30
32
33
35
• • • • 36
Averaging Circuit • • • • • 39
Analog-to-Digital Conversion Strategy
Digital-to-Analog Converter
Analog-to-Digital Converter Interface
iv
40
41
42
-
LIST OF FIGURES (cont.)
Figure
21 Overall Controller Operation
22 Initialization Routine • . . •
23 Service Routine for Pumping Rate Key .
24 Service Routine for Per Cent Systolic Time Key
Service Routine for Set Point Key
Service Routine for Numeric Key
Service Routine for Enter Key
Pumping Rate Error Check . • .
Per Cent Systolic Time Error Check
Set Point Check
Service Routine for Go Key .
Part of Go Routine • • .
Service Routine for Stop Key
. .
25
26
27a
27b
27c
27d
28a
28b
29
30a
30b
31
32
33
34
35
36a
36b
Service Routine for Analog-to-Digital Converter ••
Part of Analog-to-Digital Conversion Routine .
Closed-Loop Control Indicator
Blood Pump Flow Circuit
Top View of Interface Board
Open-Loop System Response . . . . . . . . . . Performance Criteria . . . . . . . Response to Large Set Point Changes . . . . . Response to Small Set Point Changes
v
. .
. .
. .
. .
. .
. .
. .
1.'age
44
45
47
48
49
51
52
53
54
55
58
59
61
62
63
65
67
68
73
76
79
80
-
LIST OF FIGURES (cont.)
Figure Page
37a Response to Large Pumping Rate Changes . . . . . . 82 37b Response to Small Pumping Rate Changes 83
38a Response to Large Load Changes 84 . . . . . 38b Response to Small Load Changes 85 . . . . . 39a Response to Large Set Point and Small Pumping Rate
Changes . . . . . . . . . . . 87 . . . . . . . . . . 39b Response to Small Set Point and Large Pumping Rate
Changes . . . . . . . . . . . . . . . . . . . . . . . 88 39c Response to Large Set Point and Large Pumping Rate
Changes . . . . . . . . . . . . . . . . . . . . . . . 89 39d Response to Small Set Point and Small Pumping Rate
Changes . . . . . . . . . . . . . . 90 Bl Display Board ,138
B2 Interface Board . . . . . .141 B3 Interface Socket . . . . . .142 B4 Keypad Cabinet . . . . . . . . .143
vi
-
Table
1
2
3
Bl
LIST OF TABLES
Key Codes Available to Keyboard Service Routine • • . 21
Parameter Ranges
Model Parameters at Various Pumping Rates
MicroDesigner @Bus Configuration • • • •
vii
• • 56
74
139
-
I. INTRODUCTION
Approximately one-half of one per cent of the infants born each
year succumb to some form of respiratory distress (1). Respiratory
distress results in an inadequate transfer of carbon dioxide from
the blood and oxygen to the blood which initiates a reversion of the
cardiopulmonary circulation to that of the fetal state.
The survival rate of those infants afflicted was raised from 63%
to 86% by the development of the Arp Infant Respirator, which supplies
a carefully controlled air-oxygen mixture to the patient (2, 3).
It is possible that the survival rate could be raised further by
supporting some of these infants with either a partial or total
cardiopulmonary bypass during the critical days following birth (4).
Dr. Leon J. Arp, of the Mechanical Engineering Department of
Virginia Polytechnic Institute and State University, is currently
developing an infant sized perfusion system for this application.
The unit consists of a tubular membrane blood oxygenator, a
pneumatically operated, diaphragm-type blood pump, and associated
monitoring instrumentation and drive circuitry. Both the oxygenator
and the pump have been designed to minimize the lethal and sub-lethal
blood damage associated with long term cardiopulmonary perfusion.
An extended cardiopulmonary bypass, with perfusion times measured
in terms of days instead of hours, would require that special
consideration be given to the manner in which blood was pumped to the
patient. It has been generally accepted that a pulsatile pumping
1
-
2
action improves kidney function over that observed under steady
flow conditions (5). In addition, the blood flow rate must be main-
tained at a level which would insure that an adequate supply of oxygen
would be delivered to the tissues by the blood. This thesis describes
the design of a device to monitor and control the operation of the
Arp diaphragm-type blood pump.
The output of a diaphragm-type pump is determined by the product
of its pumping rate and stroke volume. Norman, et al (6, 7)
developed a control system which used capacitance measuring techniques
to determine when a preset stroke volume was reached and ejection of
the blood was to begin. Pumping rate, and hence the pump output, were
thereby automatically determined by the pump inflow. Average pump
output was obtained as a derived quantity.
The control system described in this thes~f.~~mo~~t
-
II. CONTROL STRATEGY
Overview
A schematic representation of the monitoring and control system
developed for the Arp diaphragm-type blood pump is shown in Fig. 1.
The microcomputer synchronizes data entry from the keyboard, the r presentation and updating of display information, \,the analog-to-
digital conversion) and (input o~--~!~~--'=~~~--~:1.~~~aEi~~--_!.~om.E.~~ electromagnetic flow meter, \)and the timing oV events during each
-·--•-·•••--'-'''"····~··"~· .. ··c·.7 , .. pump cycle. The basic operation of the microcomputer and the hard-
ware and software development techniques used will be discussed next,
followed by a description of the Arp bloocy"p-~p) and the electro-\,_ ___ /
magnetic :j:low meter!. "-~, ... ,.__ -- / . . ____ ,/,/
The specific operation of the blood pump "'1.;-::··--·-·
control sys~em will then be presented. __ ---......._ _______ .. /
The 8080 Microcomputer
A major advantage in using a microcomputer to control blood
pump operation is the reduction in the number of hardware devices
required and the concomitant increase in reliability obtained. The
computer does require hardware to operate; however, this hardware
simply provides data to and accepts data from external devices such
as the displays and the keyboard. The software Erogram then ----·-------- -·-·--manipulates this data and directs all pump operations.
A symbolic representation of an 8080 based microcomputer used
in this design is reproduced from The Bu;book(IDIII, by Rony, Larsen,
3
-
KEYBOARD
8080 MICRO-
COMPUTER ,...,-----·-·--·----....
/ " ( : ,y~Y-~---DRIVE RCUITRY
.i:-
A/D &~?
FLOW CONVERTER TRANSDUCER
FIG. I BLOOD PUMP MONITORING AND CONTROL SYSTEM
-
5
and Titus (8), and presented as Fig. 2. Program instructions are
retrieved from memory and sequentially executed by the central
processing unit (CPU). As the microcomputer was supplied complete,
including m~9_;-y, this discussion will concen~ra.E_~- o~--~-~=--t:.=-~h-~-~9ues /,...------ -~---....,., -. ____ ,,,. used to( inJerfac~)the microcomputer to the real world. Of particular
~....:...--;;:::-.:::::::-::.~:-~-~::~-::;::·:.:.".'.::-:::~::.::-·:--~---··-----------··~·-.---:··-···"·::::::::.:.::-:-... ··-· ·: - ,-:-·:~:-~-~-,:.~.-~::::.::;-
concern to this thesis, then, are the output and input processes and ----···-·-----·---•-..M.•~---~ .. ~-~-····-~---··--•-·' .... --~--~·-·~,_,, .... , .. _-.C7~·-·-~·-·,,.~-·~ ...... -~-·,_,.,_,_.,,.,.
the s~rvicing of interrupt requests.
The output process of an 8080 based microcomputer can be
sununarized as follows. tWlien an OUT instruction is encountered,
the contents of the accumulator are placed on the bidirectional
¥t~ -b~ and ~1:_ eight-b~_: __ C!~~e, used to select one of 256 possible , ___ ~ -----------------
output devices, is plac;d-~~=~~~--a~~~~-ss~~~s. The eight-bit device '---------- . ../ --* code is decoded and gated with the OUT ---·-·--------- --.... "·---. -
!lnic.fiie--output d~~.:f..-~E? .~E?:I..~_i;.t puls~~ The ' ·----- .. ----------------·-=::..:::-.:::...-:=---.'O'."!;"'~-:.::·.::':::':.::-::-::~ .. -
function pulse to produce a --------------OU tpu t d~~Tc:;-ser&t:-~~'> ---------------
is used to _ _!_i!,;sLI11~ . ......dat.a~-b.y.te.av~_gable on the bidirectional data ~------- - ··~------ ·----- ._ .. __ ----
bus into an external device. ,-------------·--·--·-----~-,-- -·--·---... -~-·--
The input process of an 8080 based microcomputer is analogous
to the output process described above. When an IN instruction is ------------
-
EXTERNAL DEVICE 1/0
INTERRUPT SERVICE
8 BITS DATA INPUT
8 BITS DATA OUTPUT
INTERRUPT
INTERRUPT ACKNOWLEDGE
FIG. 2
MEMORY UP TO 65,536
8 BIT WORDS
~ ~I I~
- a: a:: 3: 0 ........ m ::E Cl ILi
-
7
The ~~l?...~--~~~~~ity of an 8080 based microcomputer provides
a way for an external input or output device to gain the attention
of the computer quickly. r When an/interrupt ~ign51>1 is received' the - ..---------··--·--~}
computer finishes executing the current instruction and saves the
address of the next instruction of the main program. The
interrupt is then answered with an tfnt~~i~.P-~~:;led;;-s-ig-~~i-~:· _,_. __ __,,_ .. _ .. __ -'~----~ - - -. --------........ " ----~·-----·-- - -
used to c~~~~?~_,_,t,~~-J~.8.:E.~.1:1.&. of one of eight one-byte jump inst:_~C:t.~ons, -.,._. _________ , .,._, .... -... , - .- ... --.-·• , .. -.. ----
known as restart instructions, from external circuitry onto the ·~-~--~-----... -------
bidirectional data bus. The restart instruction causes program
execution to be transfered from the main program to a device service
routine located at a specific and predefined point in memory. When
the device service routine has been completed, the attention of the
computer is directed back to the main program, where execution
continues from the point of the interrupt.
The microcomputer systems chosen for this application are the
Mini-MicroDesigne1® * and the 1'{:i.c-~oDesf.g~'¢r, @ * produced by E & L ------- ,·' _________ .-· Instruments, Inc., Derby, Connecticut. Both units use the popular
eight-bit 8080-A microprocessor chip developed by Intel Corporation.
These microcomputers were chosen for their powerful set of 78 ,,...---_--------------~-,.---~--·
instructions, capability to be easily interfaced to external circuitry,
and excellent documentation.
The Mini-MicroDesigner -~ loaned to us by Dr. Peter Rony of the Chemical Engineering Department of Virginia Polytechnicinstitute
and State University, is a single board computer complete with 512 ~ -- ·--~··· - .... -·-· -····• ____ ,,.-------·--~__...,,_.........--... --~- .••-~•- __ _.._..,_._._..c--•~--·---.• ..... -~-
*Registered trademarks of E & L Instruments, Inc., Derby, Conn.
-
8
bytes of read/wr:l:te .. m~1:I.H?.b:Y- ?nd 256_.b.ytes of read/onl.y me.w.ry. An on-~--------·----· - ----··--···-\
I I board, octal coded keyboard and a keyboard executive routine JQ_th~_.h.a,_~_!_~-h~_r~ware in tw.e_c:~!L.~~
-
9
developed on the Mini-MicroDesigner@ into a functional blood pump
controller. The final interface circuitry was wire wrapped on circuit
boards designed to be inserted directly into the MicroDesigner(!}bus.
Subroutines, written in assembly language mnemonic code established by
Intel (9), were combined and assembled using the Virginia Tech
Conversational Monitoring System, and the MAC80 cross-assembler
program. The machine language output of the cross-assembler was
punched onto paper tape using a teletypewriter tape punch, and
loaded into the read/write memory of the MicroDesigner ~ Software and hardware were tested at the normal operating speed of
the computer. A complete listing of all SQ~!w~re used in the -------------------------- - ---
blood pump control algorithm appears as Appendix A • ...---------~--·.
The Blood Pump
The Arp diaphragm-type blood pump chamber used in this
application is shown in Fig. 3. Figure 4 illustrates the basic
configuration in detail. Co~~ed air and vaculJDl are alternately
applied to one side of the silicon rubber diaphragm. Blood is forced
through the pump chamber, by the motion of the diaphragm, in a
direction determined by the one way, ball-type check valves. Two ------·-· ------- . . . -- - ----- -- --. -- ___________ ..., ______ __
such chambers are connected in parallel, using Y connectors, to form
the blood pump. The chambers were driven alternately, one in /--- c ~ol' while the other was in diastole. E~_:..!.~~I~-~..P-~!~~d
. __ _,,
solenoid valves control the switching of the compressed air and
-
II
G) . (]) 5 0 0 "lJ c ~ "lJ (") ::c l> ~ (]) IT1 :::0
,---
-, ... ~-
--' -
-
-.-,.,
--.
---
-;:
;--.
_. -
---
-~--·
\..I
·-
---.
J-
-
'-./
r -
--
_.,,
'-
--
--
--
/ "'
1------'
I \
I I
I I
OT
/ I \
'
I l>
r ,, CJ) N !Tl
-
11
FULL SIZE
DIAPHRAGM
~CHECK VALVE
PUMP CHAMBER
.___CHECK VALVE
FIG. 4 DETAILS OF BLOOD PUMP CHAMBER
-
12
As mentioned previously, t~~loutput of._a diaphragm..""1:.yp.e-p.ump
is equal to t_!:1=-__p_~~~:1_C._~-~-f t;he P~E:i.ng rate and th~ s~E_2~~ _YQ.1-~9 /
The stroke volume, in turn, is dependent on the rate of filling of
the pump chamber, and the length of time the chamber is allowed to
fill before systole. This length of time is referred to as the
diastolic time, and the length of time that the blood is b_i:!!:!K . ...---·- --· -· - - -- ·-. --·· ~------- --- ·-···---.-.,. .. -.----···- -~----·"'·~---.~··•'·_.....,,_.._.,,.._,..,._....,... __ .
ejected from the pump chamber is referred to as the !systolic time. -"""".•c--~--··''''·'"''-•-·,-·••.,.••,•·-·•••-•- ,_,.•,-." .. _'""'"''"""'»•''•-•.-~."·"'-" .•-.c• .. , ., , , ,-,•, _, ••. , .. ,,.• •' ,.,, ., --·· -,_,., > ····,_,,, .-..~. ''-'' , • ""'• •'····~···''•-''-"';·.·· ~- "'*
The ratio of the systolic time to the diastolic time is called the
systolic/diastolic ratio, and can be of magnitude greater than,
less than, or equal to one. By normalizing this ratio with respect
to the total time required to complete one cycle of systole and ,,-----------------.
diastole, \the d~-~~--~!-~fe, measured in per cent, is obtained
chamber. -rhe-o~tput of this single chamber pump, then, can
for one
be
regulated by adjusting either the pumping rate or the duty cycle
parameter.
Recall that the blood pump used consists of two parallel,
connected, alternately driven pump chambers. The duty cycle parameter
discussed for one pump chamber, therefore, does not constitute
an easily used parameter for control of the blood pump by an attendant. (,--·---~ .. ,. .. _______ .......... -· ......... ··---- . .
A new parameter, th~_p~;:_-~nt systol~0ime, will be defined as the
-
13
The Flow Transducer ,,,,..,,..---·-·---·--·---.... _~
/ ....... ,, The Statham Macroflo electromagnetic blood \flow meter~\ model
... _____ . ---------·----·····-J
E-3002, and the model E-3006 flow transduc~r, was used as the flow --· .. -- ; rate sensing device. The (aj..ectromagnetic. blood flow me!;_~x:._.o:perates ~--------· '- ·-·····. ···----··-··-···· ...... • ····------·--·· b~~qring_the _ vqll~gft. .. ip,g~~-~d __ w:h.en __ blo.o.d.,_an.. .. tl_~~E.:_:!:.~.~y
C9Il.~~£E.iL~f.~ f~ow~~_l_!;i:9_i,1_gh .ii· ~~gnetrc-·r:relCl} o~e~~2,):>e~~en- ~ --·--·-------~-~--... ___ ,....,....-... --..,,,.-·~-., -- ···~"'-~,_ ... _... .. ., ...
dicular to the direction of flow (10). Both a large front panel meter --~---~---------------·----~-------··--···-···------···
display and a 'differential chart recorder output are provided. For
specific information on the operation and use of theiStatham flow
met~, refer to the Statham operator's manual (11) • . \ '-J
System Operation
As mentioned previously, data entry to the controller is made
via the keyboard. ~he operat_?_:_ ... ~~~--~~!=~~ -~~-~~--E-~~~~-~~~~-=~,E,..E!_ and
the_p_eE.~~~t sy~tolic time parameter of the blood pump {in the free-- ·-- .. -----------· .... :.:,-::::--..;~=::..-::-.;-·,".'.:...-::-::::~..:=.~::=-:.·.::::':'--------~~-------------·---H----... ····---·---~----·-••• . .""••'
running, open-loop mod~ \The __ clos~c!-=-~-~C!_e.__!llod~--~~-~~!-~~-~-1'.:~--~L-entering a desired flow rate. In this mode, the operator._ cl!.~. -------=====-~~=:-:-::.:::::==:;::_-:.::::-....:.::.::.-=.::::.:::.:.:~-=:.-·
select only the pumping rate desired, as the controller automatically ------------- ·----·----·;f--..c:;=o=:--="'"····
ad_J ~-~t~--~~-':-. .P.~.!:_-~-~~~---~Y~!=-~!.!£.!!.1!1~ .. P.~:l'.~~-t-~L_ tq_ maint.a:(,g_!;:.h.~u;l_e.s_i,red )
f~ow :at~. In both the open-loop and closed-loop modes, the current
pumping rate, per cent systolic time, and flow rate are continuously
updated and displayed.
-
III. Implementation
Overview
The following sections decribe the development of the pneumatic
blood pump control strategy in both hardware and software. Basic
components of the controller, the keyboard, displys, valve drive, and
flow transducer, are discussed in terms of the interaction between
the electronic circuitry and the software routines used to service this
circuitry. The overall operation of the pump controller is then
developed by describing the integration of the basic components into
a functional unit. Finally, the techniques used to obtain closed-
loop control of the pump output are presented and discussed in detail.
The software used to direct and coordinate all blood pump
operation is presented in Appendix}•· The development of
facilitated by th~:..;~gbog.k@ ~~1, V, and VI, --~~·--·>
the
by Rony,
Larsen, and Titus (8, 12, 13), which give numerous progrannning examples
and techniques. Flow charts are labeled with the appropriate
subroutine title and memory location as taken from the program
listing in Appendix A.
Actual wire-wrap board layout and other construction details are
presented in Appendix B. The Texas Instruments TTL Data Book (14)
and Linear Interface Circuits text (15), as well as the National
Semiconductor Linear Integrated Circuits handbook (16), were used to
obtain specifics on integrated circuit function and pinouts. The
Bugbook~eries was also consulted for its interface circuitry suggestions and diagrams.
14
-
15
In the following discussions of circuit functions, r,-high' refers
to a logic level 1 state of +5V, and 'low' refers to a logic level
0 state of 0 V. All resistances are given in ohms:__J
Interface Hardware and Software
Device Select Pulses
The gating of information into and out of the 8080 based Micro-
Designer ®requires input and output device select pulses to be used.
Figures 5 and 6 show how these pulses are generated. The four least --------~--~-
significant lines of the address bus are decoded into one of sixteen
mutually exclusive outputs, considered active when low, when the strobe
input G2 is taken low by the IN or OUT function pulse. The device
select pulses are labeled according to a mnemonic code established
as part of the pump control software in Appendix A.
Keyboard
Figure 7a shows the circuitry used to encode one of sixteen r---~
normally open keyboard switches into a four-bit binary number and a
priority flag used to indicate when a key is depressed. The circuit
is identical to ~hat used in the Mini-MicroDesignerQYfor data entry. The labels listed under KEY represent the particular function of the
blood pump activated when that key is depressed. Encoder operation
will now be described for one key closure.
-
+5V
I 12 -:! 9 24 A3 > 201 D A2 21 c
ADDRESS ~ 22 74154 BUS B IN Al
AO 23 A
IN> 191 G2 21 3 --} INPUT 18 GI > COMP DEVICE
SELECT - . ·2 "" KBDI PULSES
FIG. 5 GENERATION OF INPUT DEVICE SELECT PULSES
f-' O'\
-
+5V I ~
24 12
15 17 LOFL MIFL 201 0 14 16 HIFL
A3 > 13 15
LOST 12 I 4 =:Jc 74154 I 3 MIST A2 OUT 11 II
LORT ~ OUTPUT ADDRESS ~ B
10 10 MIRT DEVICE
I-' SELECT
-....J
BUS Al
9 9 HIRT PULSES
231 A 8 8 CNVC
AO > 7
OAC 7 6 6 CTRL 191 G2 5 OUT > 5 RSTR 4
TIMR 4 181 GI 3 3 KBDC 2
VALV I 2 I -
FIG. 6 GENERATION OF OUTPUT DEVICE SELECT PULSES
-
K-EY -0 ..---- --
~-I--4 5 6 l -
-----
1----
-8---9----
PUMPING RATE - --SYSTOLIC TIME ---
SET POINT - --ENTER---
GO - -STOP----
+5V
16
10 0 AO
74148-1 Al A2 GS
2 5
3 6 EI 7
10 0 I AO
12 2 13 7414 8 -1 A I
I 3 A2 4 GS 5
6 EO 4
7 16
-
1"5V
FIG. 7a
7400-2
9
7
14
-
9
14 PINl4=+5 PIN 7= GND
15
5
KEYBOARD ENCODER
A
B
c
PF
v
D
TO KEYBOARD INTERFACE I-' co
-
19
When the 'O' key is depressed, input 0 of 74148-1 is taken
low, forcing outputs AO, Al, and A2 high, and GS low. Outputs
AO, Al, A2, and GS of 74148-2 remain high and output EO remains
low because all the ungrounded inputs to this chip float to a logic
1. The AO, Al, A2, and GS outputs of 74148-1 are logically NANDed
to the corresponding outputs of 74148-2, producing a logic 0 at
the outputs of 7400-2 a, b, and c, and a logic 1 at the output of
7400-2d. The four bit binary code thus produced when the 'O' key
is depressed is 00002 . The PF priority flag is high, indicating
that a key is pressed.
Figure 7b shows the circuitry used to input key codes into the
microcomputer. The PF flag, delayed by C2 to reduce race problems,
is inverted by 7400-3a and used to preset outputs Q of 7476-la to a
logic 0 and Q to a logic 1. Output Q is used to latch the four-bit
binary key code into 7475-10. Output Q is used as a flag to indicate
that the keyboard requires servicing by the computer. Table 1
provides a listing of the codes produced for each key closure and
made available to the keyboard service routine.
Figure 8 shows the operation of the keyboard service routine
used to gather data from the keyboard. The keyboard service routine
was adapted from the KEX monitor routine furnished with the Mini-
MicroDesigner ~ The six bits of data are acquired from 8095-1 when
an IN KBDI instruction is executed. The service request flag is
examined to determine if a key closure has occurred. If a key closure
has not occurred, program execution is transferred away from the
-
+5V
~ 2
IQ 16 A ID
B 3 20 2Q 15
6 30 3Q 10 c
D 7 4D 4Q 9
7475-10
+5V
l. ' -8 ENI EN2 41 113
2 INI OUTI 3 DO 4 IN2 OUT2 5 DI 6 IN3 OUT3
7 D2 ~ INPUT 10
IN4 OUT4 9 D3 BUS
14 INS OUT6 13
06 12 IN5 OUT5
II 07 J N 0
8095-1 11 D1s1
DIS2 - i 15
+5V
+ 5V M Q 10 a pa 71PR
111 91 Q 7400-3 I 7476-la +c2
PF ........_ l.Olµt
KBDI
KBDC
FIG. 7b KEYBOARD INTERFACE
-
21
Table 1 Key Codes Available to Keyboard Service Routine
Key
0
1
2
3
4
5
6
7
8
9
Pum ping Rate
Per T
Set
Ent
Go
cent ime
Point
er
Sto p
Systolic
Service Request Flag
D7(l)
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
(1) Most significant bit of data
(2) I.east significant bit of data
Priority Flag
D6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Binary Key Code
D3 D2 Dl D0(2)
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
-
KYBD: Hi 04ll Lo 81H
No
D6 = 1
22
50 ms De bounce
Input Keyboard
Data
Yes
Clear Flags & Store
Key Code
No
D7 0
Figure 8 Keyboard Service Routine
-
23
keyboard service routine. If a key closure has occurred, the priority
flag is repeatedly examined to determine if the key has been released.
When the key is released, the service request flag is reset by
executing an OUT KBDC instruction which clears output Q of 7476-la
to a logic O. The service request and priority flags are then removed
from the six bits of data acquired, and the four-bit binary code
representing the key depressed is placed in temporary storage.
Displays
Figure 9a shows the circuitry used to display pump operating
parameters. Eight such display circuits were constructed, three
each for the pumping rate and flow rate displays, and two for the
per cent systolic time display. A four-bit binary coded decimal
(BCD) number is latched, at the discretion of the control algorithm,
into one of the eight 7475 latches by the appropriate device select
pulse. Figure 9b shows the pin connections made to 7404-1 and -2
to invert each device select pulse. The latched outputs are applied
to a 7447 decoder-driver which translates the four-bit BCD number
into the code required to drive the seven segment displays. Resistors
Rl-R56 are used to limit the current in each display segment to
approximately 15 ma. Appendix A lists the display mnemonic codes used.
Valve Drive
The sequencing of the solenoid valves, which switch the com-
pressed air and vacuum lines to drive the pump, is accomplished through
-
+5V r i +5V I I +IOV 0 -::!::-5 12 16 8 31 19 114
t 7 40 4Q 9 6 D 0 14 II --OUTPUT 02 6 30 3Q 10 2 c f 15 2. BUS DI 3 20 2Q 15 I B 9 ~
7
1...00 2. ID IQ 16 7 A :1',~ 8 3 LT 10 7475- 4 BI b112 13 (!-8) W's
E2 El 5 RBI 13 a a A t 1 a
4 13 Rl-R56
7447- 620 MANI-N ~
+5V (1-8) EACH (1-8)
* HIFL ':> 11~ CIRCUIT REPEATED FOR
7404-1 ALL DISPLAYS *SEE FIG. 9b
FIG. 9a SEVEN- SEGMENT DISPLAY
-
MIFL~
LOFL~
LOST~
MIST~ 7404-1
HIRT~
MIRT~
LORT~ 7404-2
NOTE: FOR 7404 PIN 14 + 5V PIN 7 GND
FIG. 9b INVERSION OF DISPLAY SELECT PULSES
N U'I
-
26
the use of the /interrupt servicing :technique gj,i?glJ§..$~.4.J-!1 C::l;tapter 2. ~----·-··- .. \ ........... . Interrupt servicing was chosen because the timing of pump events, i.e.,
the switching on and off of the solenoid valves, is dependent on
the pumping rate, per cent systolic time, and desired pump output
entered by the operator. The need to switch a solenoid valve on or
off could, therefore, occur at any point during the execution of the
main program.
Recall the sequence of.J;W.eP.:t.& in interrupt servicing. An ------·---~--··-·· ··--~- •,,·.~- --· '•'·-· -· ·-'"-·"• - . ' . ., •,' .. --·· - '.-.... -···· ·-····-··-..... --·-, .. ,, . .,.,_.,_,_ ...... ,._, .. · ~ -~---- __ , __ -
external deyJ_~~,..:;:~_gl!es.ts .. .the .. at:t~µt_ion of the C()lllPl!t~r J>y_generating .... ------~~-- ... ----·--· .... -.... -.... . - '. - ·- ' __ ,, _______________ ~·-·-····--·-····· .. ·-··
ag._J,J1.S,err.up.t r.eq.uest.sign,al. The computer responds with an interrupt
acknowledge signal which controls the gating of a restart instruction
into the computer.\"Program execution is then directed to the
appropriate service routine, and the main task is resumed after the
service routine has been executed , . .J
Ellis (17) has developed a unique technique for servicing
interrupt requests used to sequence the operation of some device.
As part of one interrupt service routine, the next interrupt service
routine to be executed in the sequence is determined. Figure 10
shows the hardware needed to use this technique. The appropriate
restart instruction for the next service routine in the sequence
is output to and latched by 74100-1. In response to the next
interrupt request, the interrupt acknowledge signal IAK is generated
from the computer control lines INTA.and DBIN as shown. The !AK
signal strobes 8212-1 to input the restart instruction latched by
74100-1.
-
+5V -!- +5V n ) L2
-24 7 24
07 204 2Q4 17 22 ors 008 21 07 06 203 2Q3 18 20 DI7 007 19 06
05 10 202 2Q2 9 18 0!6 006 7 05 04 11 201 2QI 8 16 Dl5 005
15 04 ~ INPUT OUTPUT ~
BUS 03 2.1 104 IQ4 20 9 Dl.4 004 10 03 BUS 02 22 103 IQ3 19 7 013 003 8 02 DI 3 102 IQ2 4 5 012 002 6 DI DO 2 IOI IQI 5 3 Dll DOI 4 DO
74100-1 I I 2 MD ~ 8212-1 DS2 I N E2 Et I I 1 14 CLR -....! 121 123 1 II STB
RSTR~ I I I I OSI
7404- 2 .. +5V I INTA c
IAK 10
lg
-
28
Figure 11 shows how this technique is used to sequence the
solenoid valves used in the pump drive. Pumping action is initiated
by calling the service routine that activates solenoid valve number
one and thereby forces blood out of pump chamber number one. The
service routineloads a programmable interval timer with avalue
representing the duration of systole for pump chamber one, activates
solenoid valve one, provides the restart instruction for the next
service routine in the sequence, and returns to main program
execution. The timer waits the desired length of time and then
.interrupts the main program execution. This interrupt request
calls the service routine which loads the timer with avalue
representing the duration of diastole for pump chamber one, turns
solenoid valve one off, provides the restart instruction for the
next service routine in the sequence, and returns to the main
program. Solenoid valve two is activated and deactivated in a
similar fashion, and the sequence is repeated starting again with
solenoid valve one.
Figure 12 shows the eight-bit programmable interval timer
developed for this application. An eight-bit quantity is loaded into
the timer by strobing the LOAD pins of cascaded binary counters
74193-1 and 74193-2 with device select pulse TIMR. TIMR also presets
the Q output of 7476-lb to a logic 1, thereby gating a train of
clock pulses through 7400-la to the COUNT DOWN pin of 74193-1. The
counters then begin to count down from the eight-bit number loaded, at
a rate determined by the clock frequency. When the count has reached
-
SST 1: Hi 08H Lo 07H
Restart 1
Save All Registers
Load PIT w/ Systolic Time
& Activate Valve 1
Output RST2
Restore All Registers
And Return
DST 1: Hi 08H Lo lEH
Restart 2
Save All Registers
Load PIT w/ iastolic Time & Turn Both Valves Off
Output RST3
Restore All Registers
And Return
SST 2: Hi 08H Lo 35H
Restart 3 '-
1
Save All Registers
, . Load PIT w/
Systolic Time & Activate
Valve 2
, Output RST4 l
, I
Restore All Registers
And Return
Figure 11 Interrupt Driven Valve Sequence
DST 2: Hi 08H Lo ACH
Restart 4
Save All Registers
Load PIT w/ Diastolic Tim
& Turn Both Valves Off
Output RSTl
Restore All Registers
and Return
N \.0
-
+ 5V +5V
8 J l1 J .. - .. TIMR ;;-
II 8 9 LOAD
~ STB y
74193-2 8200-2
D7 - 9 D QD 7 10 Al Bl 4
D6 :::-- 10 c QC 6 II A2 B2 3 D5 > I B QB 2 12 A3 B3 2 D4 ~ 15 At tQA 3 13 A4 B4 I I b \_3
21 .....
4 5 f --== 7400-1
13 12 BOR CAR
8 STB y 9 TIMR > II LOAD ...L 74193-1 8200-1
D3 ::- 9 D QD 7 10 Al Bl
4
D2 -10 c QC 6 II A2 B2 3
DI> I B QB 2 12 A3 B3 2
DO, 15 A QA 3 13 A4 B4 I 5V t t + 15 113
...L. 4 5 -.:
Q 15 13 ) a }1L +5V 12
7476-1 7400-1 b CLOCK I
CLR PR ~TIMR 21
FIG. 12 EIGHT BIT PROGRAMMABLE INTERVAL TIMER
. EXT
w 0
-
31
zero, the Y outputs of the four-bit comparators 8200-1 and 8200-2
go high and are logically NANDed to produce the interrupt request
signal EXT. At this time, EXT is used to clear the Q output of
7476-lb to a logic 0 which sto~s the train of clock pulses to 74193-1.
Figure 13 shows how the clock pulses are generated. Schmitt
triggers 7413a and b, Cl, R57, and Pl form a pulse generator of
frequency l/3RC, where R is the sum of R57 and Pl. For the component
values used, oscillator frequency could be varied from approximately
10 Hz to 150 Hz. This is the CLOCK 1 pulse train used to drive the
programmable interval timer. Decade counter 7490 divides the CLOCK
1 frequency by ten to produce a CLOCK 2 frequency. The CLOCK 2
frequency can be further divided by two by 7476-2b to produce a
CLOCK 3 frequency. Either CLOCK 2 or CLOCK 3 pulses, selected by a
jumper wire, are applied to a 74121 monostable multivibrator used as a
shaping circuit to provide clock pulses of approximately 35 ns
duration to the flow rate sampling interface discussed in the next
section.
The circuitry used to activate the solenoid valve is shown in
Fig. 14. The two-bit binary code used to switch the solenoid valve is
output to and latched by 7475-9. Assume for discussion purposes that
this binary code is 012, indicating that solenoid valve one is to be
switched on and solenoid valve two to be switched off. Output lQ
of 7475-9 is then high, forward biasing diode Kl, and switching
transistor Tl on. Transistor Tl is used in the emitter follower
configuration to supply adequate base current to switch transistor
-
R57~ 220
OSCILLATOR Pl 5K
I~~~· 7413
NOTE: FOR 7413 Pl4 = + 5V P7 = GND
+5V
l10
-
8 QAl12 1----------4 CK
7490
~:',~ 6
7476-2b
-
FIG. 13 SYSTEM CLOCK
T.P. CLOCK I
CLOCK 2
13 7
01 15 3 IAI CLOCK
-1 I Q TO ;)
3 74121
2 B Ri 41 I 19
5
+5V
SAMPLE FLAG w
N
-
+5V
LED- 2(3)
+5V
DO ') 2 1 ID IQ i.!..-...J
>..
R58 (61) 220
+IOV
r, ~= .. K2. (4)
Kl (3) R59 (62.)
10 K
OUTPUT BUS 7475-9 IQ~6
} TO IDENTICAL
DI ____ 31120 ".)..--
10 VALV ~ 1
7404-2
2Q 14 2.Q 15
El 13
FIG. 14
DRIVE CIRCUIT ' FOR VALVE 2
(COMPONENT NUMBERS IN PARENTHESIS)
C3(4)
.01µ1 I DO I DI II VALVE I I VALVE 2
I I 0 0 o I o
ON OFF OFF
OFF ON
OFF
R76 (77) IK
VALVE DRIVE CIRCUITRY
r-----, I +14V
ARP PUMP Q I CONTROLLER I I I
I I
Tl (3) L MOT 524
T2. (4) MOT 52.5
I I
VALVE I I
- J
(....) (....)
-
34
T2 on and activate the solenoid valve. Resistors R59 and R60 limit
current, respectively, in the base and collector circuits of Tl.
Resistor R76 insures that Tl remains off unless driven by 7475-9
or the manual systole function. Radio frequency interference is
reduced by C3. Output lQ of 7475-9 is at logic 0, lighting LED-1
to indicate that pump chamber one is in systole. The solenoid valve
can also be activated manually as shown. In this example, the
transistors driving solenoid valve two and the associated systole
indicator are off by similar reasoning.
Analog-to-Digital Converter
Recall that the electromagnetic blood flow meter provides a
differential chart recorder output of the flow rate measurement.
Fig. 15 shows the instrumentation amplifier used to provide a
single ended output. Operational amplifiers (op amps) 324-a and
324-b are configured as unity gain voltage followers used to present
a high input impedance to the flow meter output circuitry. Op amp
324-c is configured as a differential, balanced-to-ground amplifier
with a gain, equal to R66/R64, of approximately ten. The single
ended output of this amplifier ranges from -0.29V for no measurable
flow to -0.BOV for a full scale reading of 500 ml/minute.
Figure 16 shows the scaling amplifier used to shift the single
ended output from the range -0.29V to -0.BOV to the range O.OV to
l.OV for the given flow rates. Op amp 324-d is configured as an
-
LM324
+ .>-------! FROM FLOW
METER
GND
LM324
~ ---~
14
R64 IOK
6
R67 IOOK
R66 IOOK
7 > • ~ TO SCALING AMPLIFIER
NOTE: FOR LM324 PIN 4 + 15V PIN II - 15V
FIG. 15 INSTRUMENTATION AMPLIFIER
VJ l.J1
-
-15V
R70 2K
R71 IK
FROM INSTRUMENTATION
AMPLIFIER
+5V
IOK OFFSET
R68 150K
R69 150K
P2 500 K GAIN
FIG. 16 SCALING AMPLIFIER
w "'
-
37
inverting summing amplifier with a gain, equal to P2/R68, variable
from about one-half to three. The quantities summed are the analog
signal representing the measured flow rate from the instrumentation
amplifier and some positive reference voltage used to shift the range
of this analog signal. The design of the scaling amplifier will now
be considered.
Let X be the reference voltage, Ei be the analog signal from
the instrumentation amplifier and G be the gain associated with the
scaling amplifier. The output voltage E is then given by, 0
U>
For the shift from -0.29V to O.OV for the no flow condition, Eq. 1
becomes,
0.0 = -G(X - 0.29). (2)
Similarly, for the shift from -0.80V to l.OV for the maximum flow
condition, Eq. 1 becomes,
1.0 = -G(X - 0.80). (3)
Solving Eq. 2 and 3 simultaneously for X and G yields a reference
voltage of 0.29V and a gain of 1.96 which are required.to shift ranges
as described.
The positive reference voltage· is adjusted by varying potentio-
meter P3. Resistors R70 and R71 form a voltage divider that supplies
approximately -SV to one end of the potentiometer while the other end
-
38
of the potentiometer is connected to the +SV supply. Resistors R68
and R69 insure that both the reference voltage and the analog flow
rate signal are weighted equally in the swnmation. Amplifier gain
is adjusted be varying P2. A detailed procedure for making these
adjustments that also corrects for component mismatch and the
attenuation caused by the averaging circuit presented next will be
discussed in the following chapter on calibration.
Figure 17 shows the circuit used to average the variations in
flow rate that occur during each cycle of systole and diastole.
The values of resistance and capacitance were varied empirically to
produce a signal that did not change appreciably during each pump
cycle and did not seriously affect the response time of the blood flow
meter. Op amp 741 is configured as a unity gain voltage follower to
buffer the output of and avoid loading the averaging circuit.
The strategy actually used to perform the analog-to-digital
conversion is shown in Fig. 18; the hardware required is detailed in
Fig. 19 and 20. A staircase-ramp-type conversion is used where the
ramp is created by incrementing a computer register. The contents of
the register are output to 74100-2 and applied to the digital-to-analog
converter 3711. The current output of the digital-to-analog converter
is dropped by R74 to produce a nominal full range voltage output
of O.OV to l.OV.
The analog signal from the averaging circuit, representing the
magnitude of the flow rate, and the output of the digital-to-analog
converter are compared by op amp 301A. Op amp 301A is configured as
-
FROM SCALING
AMPLIFIER
R72 22K
C51+
30~fr
R73 22K
+I CG
130~1
? G • 7 TO COMPARATOR T. P.
NOTE: FOR LM 741 PIN 7 +15V PIN 4 -15V
FIG. 17 AVERAGING CIRCUIT
VJ
'°
-
No
C=O
40
Initialize Ramp &
Clear Sample Flag
Increment Ramp & Check
Com arator
Yes
Save Result
No
C=O
Yes
Z=l
Display 'U' on Flow Rate Display
Figure 18 Analog-to-Digital Conversion Strategy
-
+5V +15 -15
I - . I 7 I 5 II 16
D7 16 204 2Q4 17 14 2-3 I
06 15 203 2Q3 18 13 2-4
D5 IO 202 2Q2 9 12 2-IS
D4 II 201 201 8 II 2-e
104 20 10 2 -7
103 19 9 2 -e 03 21 104
02 22 103
3 ~ TO ouT I T.P. TcoMPARATOR
DI 3 102 IQ2 4 8 2-9
DO 2 IOI IQI 5 7 2-10
74100-2 16 2-•
I 15 2 -2 E2 El
12 23 DAC371I-10
DAC ~ - I 8
7404-1
R 74 IK
FIG. 19 DIGITAL TO ANALOG CONVERTER
~ I-'
-
LM301A +15V -15V
FROM AMP +5V
FROM DAC K5 I 1~ -5.6V 8095-2 b }
5 DO INPUT ~IN2 OUT2 7 D? BUS I:; 61IN3 OUT3 . . Wo1s1
·~v I .l l ~ 13 -=
s~~Jc~M : :1-C p-1:.:::...R----.Qr T. P. COMP CNVC 7476-2a
FIG. 20 ANALOG TO DIGITAL CONVERTER INTERFACE
-
43
a comparator whose output is clamped to TTL levels by zener diode KS.
When the output from the ramp-driven digital-to-analog converter
equals the output from the averaging circuit, the comparator output
changes state from a logic level 0 to a logic level 1.
The conversion process is initiated when the computer senses,
through 8095-2, that the Q output of 7476-2a has been set to a logic
level 1 by the falling edge of the CLOCK 2 or the CLOCK 3 signal. The
CLOCK 2 or CLOCK 3 frequency thus determines the sample rate.
This sample flag is immediately reset by executing an OUT CNVC
instruction. The staircase ramp is incremented, as described
previously, when the status of the comparator changes state from a
logic 0 to a logic 1, indicating that the analog flow rate signal is
equal to the output of the digital-to-analog converter, the con-
version process is stopped. The binary equivalent of the magnitude
of the flow rate, i.e., the contents of the computer register, is then
placed in temporary storage. An overflow is generated if more than
250 steps in the ramp are required to match signal levels.
System Integration
The overall operation of the blood pump control system is
shown schematically in Fig. 21. After an initialization process,
detailed in Fig. 22, the keyboard status and the analog-to-digital
converter status are alternately examined. When the keyboard
requires servicing, the key code is obtained, as discussed previously,
-
Yes
Decode and Service Key
Closure
44
Input Keyboard
Data
No
Input A/D Converter Status
Service A/D Converter and
Control Algorithm
Figure 21 Overall Controller Operation
No
-
START: Hi 04H Lo 28H
45
Jump Around Vectored
Interrupts
Load Controller
Gains
Clear Flags Counters And
Hardware
Figure 22 Initialization Routine
-
46
and decoded. When the sample flag indicates that it is time to per-
form an analog-to-digital conversion, the converter routine is
executed. In either case, after the appropriate service has been
performed, the status flags are examined again until one device or
the other requires attention. Recall that the pump chambers are
sequented independently of the main controller program.
The sixteen key codes from the keyboard represent three functional
groups which govern data entry to and the operation of the blood
pump controller. The PUMPING RATE, PER CENT SYSTOLIC TIME, and
SET POINT keys are defined as parameter keys that indicate to
the controller which of the operating parameters is being entered.
The numeric keys, ZERO through NINE, are used to specify the value
of this parameter. The ENTER, GO, and STOP keys are defined as
function keys that indicate what the controller is to do with the
data presented. The procedure for operating the blood pump con-
troller, then, is to select a parameter, key in its value, and
load it using the ENTER function. When all parameters have been
loaded, the GO function is used to initiate pumping action. Pumping
action is halted with the STOP function. The specific routines used
to service these key codes will be presented next.
Figures 23, 24, and 25 show the service routines executed when
one of three parameter keys is pressed. The important features of
these routines are that an instruction code is generated that directs
two or three digits to be entered to the appropriate display,
and that the display selected by the parameter key is indicated to
-
RKEY: Hi 04H Lo B2H
Number
C=l
47
Yes
Load Instruction
Code
Initialize igit Counter
Reset RFLG And Clear
Digit Storag
No
Z=O
Figure 23 Service Routine for Pumping Rate Key
-
SKEY: Hi 04H Lo DAH
48
Yes
Loa Instruction
Code
Initialize Digit Counter
Reset SFLG And Clear
Digit Storage
No
Z=O
Figure 24 Service Routine for Per Cent Systolic Time Key
-
FKEY: Hi 04H Lo FDH
49
Yes
Load Instruction
Code
Initialize Digit Counter
Clear Digit Storage
No
Z=O
Figure 25 Service Routine for Set Point Key
-
50
the operator by showing all zeroes. Other initializing functions are
performed as shown.
The numeric keys are serviced by the routine shown in Fig. 26.
The instruction code is examined to determine which parameter is
being entered, and the digits are placed in temporary storage and
routed to the proper display. The weighting of each digit entered is
noted by a digit counter in software. If a numeric key is pressed
out of sequence, i.e., before a parameter key, no instruction code
is available and therefore the digits are not displayed.
The ENTER key is serviced by the routine detailed in Fig. 27a,
b, c, and d. The ENTER function can be summarized by saying .that it
converts the parameter value entered as binary coded decimal (BCD)
digits into its binary equivalent, and then checks to be sure the
result is within certain predefined limits. The BCD-to-binary con-
version is accomplished by multiplying each BCD digit by the
appropriate power of ten and summing the products. The instruction
code is examined to determine which parameter was entered and thereby
determine which error checking routine should be used. If the ENTER
key is pressed out of sequence, i.e., before a parameter or numeric
key, no instruction code is available and therefore the key closure
is ignored.
The error checking routines examine the parameter value to
d~termine if it falls within a range determined by both physiological
needs and equipment limitations. Table 2 lists the minimum and
maximum values allowed for the pumping rate, per cent systolic time,
-
DSPLA: Hi OSH Lo lFH
51
Fetch Instruction
Code
No
Yes
C=l
Yes
C=l
Yes C=l
Store & Display Pumping
Rate
Store & Display
Set Point
Figure 26 Service Routine for Numeric Key
-
ENTER: Hi 05H Lo DEH
52
Yes
BCD To Binary Conversion
No
Z=O
No
Z=l
Yes
Z=l
Yes
C=l
Figure 27a Service Routine for Enter Key
-
No
Set RFLG And Clear
Instruction Code
Store Pumping Rate
53
Yes C=O
Yes Flash
C=l
Figure 27b Pumping Rate Error Check
-
No
Set SFLG And Clear
Inst. Code
Store Systolic
Time
54
Yes C=l
Figure 27c Per Cent Systolic Time Error Check
-
No
Reset FFLG And Clear
Instruction Code
55
Store Set
Point
Set FFLG And Clear
Instruction Code
Figure 27d Set Point Check
-
56
Table 2 Parameter Ranges
Parameter Units Minimum Maximum Default
pumping rate beats/ 20 200 60 minute
per cent systolic per cent 5 95 50 time
flow rate ml/minute 0(1) 500 set point
(1) Entering this value places the controller in the open-loop mode
-
57
and the flow rate set point. If the pumping rate or per cent systolic
time ranges are exceeded, an error message is presented and the
appropriate display is zeroed, indicating that the operator should
try again. If the ranges are not exceeded, a memory flag is set
indicating that the parameter is valid and the parameter is placed
in storage. Entering a flow rate greater than zero places the
controller in the closed-loop mode by setting an appropriate memory
flag, while entering a flow rate equal to zero places the controller
in the open-loop mode by clearing this flag.
Figures 28a and b show the routine executed to service the GO
key. The GO function examines the parameter flags, set by the ENTER
routine, to determine if the pumping rate and per cent systolic
time are within their preset ranges. If the parameters are not within
range or have not been entered, the default conditions listed in
Table 2 are used. In either case, the interrupt timer inputs are
calculated and the pumping process is begun.
The eight-bit interrupt timer inputs, which determine the lengths
of systole and diastole for each pump chamber, are calculated in
unsigned, binary integer format from
where ITI = (T/100) x (F x 60)/N
T = either per cent systolic or diastolic time
F = clock frequency (Hz)
N =pumping rate (beats/minute).
(4)
-
GO: Hi 07H Lo 58H
58
No
Use 60 BPM
Figure 28a Service Routine for Go Key
-
59
Use 50%
on Time
is la
Calculate Timer Inputs
No
Set GFLG
Start Pump-ing Cycle
Yes C•l
Yes C=l
Figure 28b Part of Go Routine
-
60
In order to avoid overflow problems in the multiplication and
division routines used, the calculation is ordered and performed as
T x F + 100 x 60 + N. (5)
A clock frequency of 88 Hz was chosen to maximize the range of the
per cent systolic time parameter for the fixed range of pumping
rates given.
The service routine for the STOP key is shown in Fig. 29. The
pumping process is halted by turning both solenoid valves off and
disabling the interrupt service capability of the microcomputer.
Program execution then continues from the initialization routine of
Fig. 22.
The routine that services the analog-to-digital converter when
it is time to sample the flow rate is shown in Fig. 30a and b. The
staircase-ramp conversion technique used has been discussed previously
in connection with the analog-to-digital converter interfacing and
Fig. 18. Samples are not taken unless the pumping sequence has been
initiated by the GO function.
Figure 30b also shows how the per cent systolic time and flow
rate displays are continuously updated. The per cent systolic time
display is automatically changed enly when the controller is in the
closed-loop mode. The closed-loop mode of operation is selected by
entering a set point greater than zero. Both the per cent systolic
time and the flow rate are converted from binary code to binary coded
decimal notation by successive division by ten, and presented to their
-
STOP: Hi 08H Lo 63H
61
Halt Pumping
cycle
Figure 29 Service Routine for Stop Key
-
CNVRT: Hi 08H Lo 6AH
62
Yes
Clear Sample Flag
Perform Conversion
Scale and Store
Result
Figure 30a Service Routine for Analog To Digital Converter
-
No
Increinent -Sample Counter
63
C=l
Yes Z=l
Correct Systolic Time
Update Systolic Time
Display
Figure 30b Part of Analog to Digital Conversion Routine
-
64
respective displays each time a preset number of samples are taken.
Closed Loop Control
As mentioned previously, the closed-loop control mode is
selected by entering a flow rate set point greater than zero. A
memory flag is set as part of the ENTER function to indicate this
condition. This flag is examined as part of the analog-to-digital
conversion routine in Fig. 30b and used to call the closed-loop
control service routine that corrects flow rate variations by
adjusting the per cent systolic time parameter. The closed-loop con-
trol mode is indicated by the circuitry shown in Fig. 31. A logic
level 1 output to and latched by 7475-9 causes output 4Q to go low,
lighting LED-3.
The particular control algorithm used is the velocity form of the
proportional-integral-derivative algorithm, modified by Kattwinkel (18)
for implementation on an 8080 based computer. The modifications to
the algorithm and the tuning process will be discussed in the next
chapter. Kattwinkel's algorithm is used by pointing to a data file
in memory, containing the controller gains, set point, sampled data,
and a scaling factor, and calling the algorithm. The result of this
calculation is a signed change in the per cent systolic time parameter
which is added to or subtracted from the current value of the per cent
systolic time. A new set of interrupt timer inputs is calculated from
the new per cent systolic time and current pumping rate each time a
flow rate sample is taken. The PID algorithm is a very fast routine,
and is executed in approximately two milliseconds.
-
+5V
A LED-3
+ 5V
OUTPUT{oo > 7 140 4QI 8 I BUS
5 112 I
7475-9
E2 4
CTRL 12
7404-2
FIG. 31 CLOSED-LOOP CONTROL INDICATOR
C]\ V1
-
IV. CALIBRATION AND TUNING
Overview
The calibration and tuning of the blood pump controller was
accomplished using the flow circuit shown in Fig. 32. The diameters ' of the silicon rubber tubing were selected empirically to allow the
flow rate through the system to be varied from approximately 20 ml/
minute to 500 ml/minute by changing pump operating parameters and the
flow path through the tubing. A 36.7% solution of glycerin in water,
with enough salt added to insure proper operation of the electro-
magnetic flow meter, was used to simulate the viscosity of blood (19).
Calibration
The blood pump controller hardware and software are designed to
eliminate the need for external instrumentation during the calibration
procedure. The calibration procedure involves adjusting the CLOCK 1
frequency, which drives the progrannnable interval timer and thus
affects the pumping rate, and adjusting the offset and gain of the
scaling amplifier so that the digital flow rate display on the display
board and the analog flow rate display on the electromagnetic flow
meter agree. The procedure for operating the blood pump controller
has been detailed in Chapter 3. Figure 33 shows a top view of the
interface board and the location of the calibration potentiometers
and test points.
66
-
RESERVOIR 010
BYPASS
NOTE: ALL CONNECTING TUBING 5 mm. l.D.
BLOOD PUMP
FLOW I ,TRANSDUCER
FLUID FLUID RESISTANCE CAPACITANCE 3mm. l.D. x 300mm. LONG
FIG.32 BLOOD PUMP FLOW CIRCUIT
(j\ -....J
-
TEST POINT
SAMPLE FLAG
Pl I 7476-2
TEST POINT
CLOCK I
PS 7413b
Pl CLOCK I
TEST POINT FLOW RATE
OUTPUT P6 741
TEST POINT
DAC OUTPUT
P3 731 I
P3 OFFSET
P2 GAIN
FIG. 33 TOP VIEW OF INTERFACE BOARD
"' 00
-
69
The CLOCK 1 adjustment is initiated by pressing the GO key. This
causes the pumping action to commence at the default conditions of 60
beats per minute and SO per cent systolic time. Potentiometer Pl is
adjusted to set the pumping rate to 60 beats per minute, using a stop
watch as a reference. If an oscilloscope or event counter is available,
the CLOCK 1 frequency is adjusted to 88 Hz to maximize the range of
the per cent systolic time parameter without encountering overflow
problems in the interrupt timer calculation routine.
The scaling amplifier adjustments are made by varying the per cent
systolic time parameter to change the flow rate. The pumping rate
is not critical and can remain at 60 beats per minute. A large per
cent systolic time of about 95% is used to attain a high flow rate.
When the flow rate stabilizes, the gain potentiometer P2 is adjusted
until the digital and analog flow rate displays match. A low per cent
systolic time of about 5% is then used to attain a low flow rate.
When the flow rate stabilizes, offset potentiometer P3 is adjusted until
the digital and analog flow rate displays again match. This process
is repeated a sufficient number of times to accurately and precisely
set the full scale range of the digital flow rate display. The
instrument calibration procedure is now complete.
During the closed-loop testing process a fixed error of 18 ml/
minute between the desired set point and the flow rate actually obtained
was discovered. This error is most probably caused by round-off errors
in the calculation routines of the blood pump control algorithm. The
error was corrected by modifying the pump control algorithm to add
-
70
18 ml/minute to the set point entered. This correction is internal
to the blood pump control algorithm and does not affect the operator's
use of the instrument.
Tuning and Response
The discrete representation of the velocity form of the propor-
tional-integral-derivative (PID) contE~!--~-1:~~-~~-~y is used to adjust
the per cent systolic time parameter (the manipulated variable) to
maintain a specified flow rate (the controlled variable) despite
load fluxuations. S2_th_£20). ___ g:i_yf?~.,:th~.--a1gorithm-as
6m n T Td = K [(e - e 1) + ~ e + ~ (e - 2e 1 + e 2)] e n n- T. n T n n- n-
1
where 6m = change in the manipulated variable at sampling point n n e = error in controlled variable n K = proportional gain e
Ti = reset time
Td = derivative time
_ T = sampling _!=j,xne. -------·---~----~·--·---··--
r (6)) \ ____ /
The algorithm developed by Kattiwinkel (18) substitutes the difference
between the set point and the controlled variable for the error term
and combines the time constants for easier calculation yielding
6m = 2-P[K (C l - C) + K.(R n p n- n 1 . 'I i
-
where K = K p c KT c = -- = T.
l.
71
proportional term constant
integral term constant
KT K cd d. . t d = -T- = eri.vati.ve term constan
R = set point
C = controlled variable at sampling point n n P = scaling factor.
Equation 7 _ _:!--~---E~~---~-!_g~:i::!.!'.1:1.!!!_ ~e._~Q__J.!LJ;h.~. l?JgQg ___ p_umR-~.Qn.t.r.oll.er_._ _____ The --=---,,:::::.:::;;;-....::;::--~::::.:~-·-·-··-,...,, .. __ ••.. ,. .. .---· "4•-- _,., ,_ - ·- -· ,_,,,.,,_ •..• ,
The integral control action gives weight to small errors persisting ~-~·-.........--·---------·----... ___ .. -----........ ---..---~,.---- ~-------------·
over time and eliminates the steady state/offset error associated ~------------·---·---------.----·F--·------!....:.----------------·-•'''•-,, __ __.--••-.,.,,
with proportional-only __ ~ol'.lt:i;gi.) The derivative term is sensitive c------·----·-----·----.... _______ .. ___ ._ .. -~ .. , ... ·,
to the rate of change of the controlled variable. LT!.1_:__ __ ~_:_1._:~:_i_cm ?~
the controller constants K , Ki, and Kd' then, determines the overall ----------·-· ··-·--·-·· ... - --···-... -·-- -···---·-··---l?.···--···-··--·--------· ............ ·-·-···--·--···-·-···· ··-·····---·-····· ........ ---·-·-····----·-----,. --·--·---------···---
control system response and accuracy ... ----··· ... -----····----··--• .. ·-····-· .... -··-· ····-·-· -·-----------·-·· ... .! ~
~--~-----·-- '" --·--·--·--------------------, . The technique used to !obtain the controller gain\and time para-------------------------·---------~-- ... -·-----+-------... ·-------------~-:::;::.:::::·::=.:.:;::-..;.."'?"·'~..C.:;:::::7".....:c::.::::::=;..-:;;:-;_";-:-----~---------,.,... .... -.~-·--~.,.. .... -- ----
meters used in Eq. 6 is described in Chapter 6 of reference 20. (The ----~---~----·.---·---·----- ---·--------------·-·-----.-.--·-----------··---~--------·-·--· ._, ---- --~·--~- ...... ._. --~--- -·.- , ....... ,.,, ......... ---
\
technique consists of modeling the blood pump and mock circulatory __ ,__ ___ ,.,...-...._ _________ -- -
system as a first-order- lag-p 1 us-dea9_,.,-time '--_ ~---~-~ .. ~ ... -------~-·"_.,, • .----~--··--· .J
where K = process gain
a = dead time T = time constant.
-es K lj\ e· G (s) = ---m T +l s ;,. L
system of the form
(8) )
-
72
\The controller gain and time parameters are .:hen calculaied fr~~ r:--1 (I LI
e~re_s_~-~~-~-~-1::-~l~~~~~-~!te proces~ 'gain/ dead time, sampling time and j---~,.\
time constant 'toithe proportional gain, ' 't ) -1 ( ke, _)
timeJ Finally the controller constants
reset time, and derivative T1 J T ~ ~
in Eq. 7 are obtaineJ using
the relationships shown in Eq. 7.
The first-order-lag-plus-dead-time model was obtained by -----•·----· ••"• .. ·-~- ·-- --•·--·•-· "-.--···-·--•-•-•--·--•·-•··••· .. ,_ ••·· -··--•r-.•----.-~~-·-• -··•·---~·-•·••p=···~
~---------~---._,_--..
; a~plying a step chang~ to the system;-from 20 per cent sy~~tolic time to, _, '-------===:::::::.-:-;---_::::::;:;o.:::=:::=.::.::_::::c:· _ _-,_~::·::-::·::.:::::c.::.:.:::·:~~-::.:::·.:c:.::::_.- ·\ ' -
-
-. z -~ . -E -
w I-
-
Table 3
~um~:!.!_l!-_Ra te (beats/minute)
20
65
110
155
200
Mean
Mean Not Including 20 BPM Results
74
Model Parameters at Various Pumping Rates i I
\'.
Gain K
2.36
4.84
5.28
5.24
5.04
4.55
5.10
r· . \ .. !
Dead Time e (sec)
0.890
2.46
2.32
2.21
2.11
2.00
2.28
Time Constant T (sec)
7.38
5.03
4.88
5.07
4.79
5.43
4.94
-
75
pumping rates shown and for the four highest pumping rates alone.
As the no~ ____ qp_e.:r:.at.i~Jt.!.~~ge of the blood J>1:1ml? would be from approxi-
mately 60 to 120 beats/minute, the average of the model. pa-rameters for .. ________ ,_,__ .. , _,._,..,... __________ .,,_._...._..__, .. -- ····-·····-··· --- --·--·. .. /
the four highest pumping rates W:?~-~-l?~e_d for tun~ll&.P~l'.'.PQSes •. r·--- ---------- .. ·---- ·-·-- .... -··· .
paramete,,rs selected charac.t_erize the first-order-lag-plus-dead-time '---------·- ---.._ .. ,,.,-
model of the blood pump and flow circuit operating at approximately 90 ~-
beats/minute.
The t~~--C:E~E~ria _t() be sat~sf~~~ is t}-ie _0~
de ado t/ime' and ti~ sons tan t to the
are controller gain and reset time r I ' \ i"'~
./ (~ KK ·= \ \ Cj
r!i·. '-----· =
T where
r 0 , -0.946 0.928 (-)
T
8,0.583 o. 928 (-)
T ~-·-:3.-i> ~ \~y~-~ c-...\, t-hj n 1
\ K :o(r_'>T \;,-,/) I
(12)
(13)
to account for the
---1' ' ' - f,1.~\.'-_,,·;I -.. '.) :: L (: .L1!'.i (14) 8 1 = 8 +-\ :::.2 .. ll)o 1. I \ \_'---- _ 2 1 r- \.!\.:[==t·is ,1.·:v1\":::: o.ll'r sample and hcild_e-ffect.,·: The derivative mode of
r--"<
control is not used. The average values of system gain, dead time,
and time constant discussed previously, and a sample time of 0.227 sec
(4.~ Hz CLOCK 3 signal) yield a controller gain and reset time of
,-K = 0.361 ·.l ~----·--·-···----··--··-·
\ T. = 3.00 seconds. ' -1 l --·---··· ·-····-_.,....,._...,,..._,., _____ _
The proportional term constant K and the integral term constant K. p 1
for the Kattwinkel algorithm are calculated from the relations under
j i
/
-
PERCENT OVERSHOOT DECAY RATIO = b/a
REF. 20: SMITH p. 170
105 °lo 100 °/o J / * \. / w., """""'"
I- 9 5 °/o ' T !""""'""" ____. ' :::> 0.. I-:::> 0
0 ~~~~~~~~~~~~-i-~~~~~~~~
0 SETTLING TIME
TIME
FIG. 35 PERFORMANCE CRITERIA
-...J 0\
-
Eq. 7 to be
77
K 0.361 p K. 0.0272.
1
The values obtained for K and K. will, when substituted back in-p 1
to Eq. 7 with a set point and flow rates less than 500 ml/minute, pro-
duce signed changes in the per cent systolic time on the order of one
per cent. The sign information appears in the most significant bit of
the sixteen-bit result of the computation, while the absolute value of
the per cent systolic time change appears in the other fifteen bits.
The maximum value of the per cent systolic time change that can be used
is 90%, since the values of percent systolic time are limited by software
to values between 5% and 95%, and thus is always contained in the least
significant seven bits of the result. To simplify the calculation of the
new per cent systolic time in the blood pump algorithm, it is desirable
to have both the sign and magnitude information in the same byte of the
result. This is accomplished by simply multiplying the proportional and
integral term constants by 256 which effectively shifts the result of the
algorithm computation eight places to the left. The sign and magnitude
information are now contained in one byte.
Kattwinkel's PID algorithm performs its internal calculations
using double precision arithmetic. To take advantage of the additional
accuracy thus afforded, the proportional and integral constants are
multiplied again, this time by 128. This produces a result, internal
to the PID computation, with a magnitude equivalent to shifting the
result an additional seven places to the left. The scaling factor
P in Eq. 7 is set to seven to shift the result of the PID computa-
tion back to the proper position. The controller constants
-
78
required in Eq. 7 to satisfy the one-quarter decay ratio criteria
are therefore
K 11829 p
Ki 891
Kd = 0
p = 7.
Figures 36a and b show the closed-loop response of the blood
pump control system, tuned with the parameters listed above, to
large and small increases and decreases in set point. The analog
signal representing the flow rate, used to drive the x-y plotter, was
taken from the flow rate test point. The pumping rate was set at
70 beats/minute. The bypass tube was clamped, directing all flow
through the four small tubes comprising the fluid resistance. The
large step increase in set point, from 50 ml/minute to 300 ml/minute,
produced no detectable overshoot and a settling time to within ±5%
of the final value within 13 seconds. The large step decrease in
set point, from 300 ml/minute back to 50 ml/minute, produced aper cent
undershoot of 6% and a settling time of 13 seconds. The small
step increase in set point, from 200 ml/minute to 250 ml/minute,
produced aper cent overshoot of 3% and a settling time of 6 seconds.
The small step decrease in set point, from 250 ml/minute back to 200
ml/minute, produced aper cent undershoot of 4% and a settling time of
7 seconds.
-
400 I
LARGE SET POINT CHANGE -300 ~
50 - 300 - 50 ml./MIN. . z PUMP RATE = 70 BPM - MINIMUM LOAD ~ ~ \ D. HUX 15 MAY 78
' . -E -w 200 ~ I I \ " 0::: '° 3: 100 0 ...J LL
0 0 10 20 30 40 50 60
TIME (SECONDS)
FIG. 36a RESPONSE TO LARGE SET POINT CHANGES
-
400 I I
SMALL SET POINT CHANGE 200 -250 - 200 ml./ MIN. - ~ I PUMP RATE = 70 BPM . MINIMUM LOAD z - D. HUX 15 MAY 78
~ 300 ' . -E -w 200 I-
-
81
The fluid pressure for the range of flow rates discussed was
measured using a mercury manometer connected between the flow trans-
ducer and the fluid resistance. The fluid pressure measured at a
flow rate of 300 ml/minute was approximately 75 mm Hg and the pressure
measured at a flow rate of 50 ml/minute was approximately 20 mm Hg.
These pressures are within the physiological range of pressures
expected to be measured in an infant.
Figures 37a and b show the closed-loop response to large and
small step increases in pumping rate. Loading conditions were not
changed from the set point variation testing. The flow rate was to
be maintained at 200 ml/minute. The large increase and decrease in
pumping rate, ·from 25 beats/minute to 150 beats/minute and back to
25 beats/minute, are well outside of the normal operating range during
a cardiopulmonary bypass procedure. These large pumping rate changes
are compensated for within 13 seconds. A small pumping rate change,
from 70 beats/minute to 80 beats/minute and back to 70 beats/minute,
produced no appreciable change in the flow rate maintained.
Figures 38a and b show the closed-loop response to large and
small step increases and decreases in load. The flow rate to be
maintained was 150 ml/minute at a pumping rate of 70 beats/minute.
The large increase and decrease in load was achieved by clamping and
unclamping two of the four small tubes in the fluid resistance,
thereby changing the resistance to flow by a factor of two. The
bypass tube remained clamped. The large step increase in load
produced a steady state error in the flow rate maintained of 6%. The
-
400 I
LARGE PUMP RATE CHANGE -300 J
25 - 150 - 25 BPM z SET POINT = 200 ml. I MIN. - MINIMUM LOAD ~ ' D. HUX 15 MAY 78 . -E -w t- 200
-
400 I
SMALL PUMP RATE CHANGE -300 J
70 --+ 80 - 70 BPM . z SET POINT= 200 ml./MIN. - MINIMUM LOAD ~ D. HUX 15 MAY 78
' . -E -w 200 .....
-
400 I r--
LARGE LOAD CHANGE -1
FACTOR OF 2 z PUMP RATE = 70 BPM - SET POINT = 150 ml./MIN. ::?! 300 D. HUX 15 MAY 78 ......... . -E -w ._. 200
-
400
- SMALL LOAD CHANGE . FACTOR OF 1.3 z PUMP RA TE = 70 BPM -~ SET POINT = 150 ml./MIN.
' 300 D. HUX 15 MAY 78 . -E -
w I- 200
-
86
large step decrease in load produced a per cent overshoot of 3% and a
settling time of 9 seconds. The small step changes in load were
achieved by clamping and unclamping only one of the four tubes in the
fluid resistance, thereby changing the resistance to flow by a factor
of one and one-third. The small step increase in load produced a
steady state error in the flow rate maintained of 3%. The small step
decrease in load causes no detectable overshoot and produced a settling time of 2 seconds.
Figures 39a, b, c, and d show the effects on the closed-loop
system response of increasing both the pumping rate and the set point
simultaneously. The bypass tube was clamped and the four tubes in the
fluid resistance open. The four possible combinations of large and
small increases in pumping rate and set point were investigated. A
steady state error of 3% was observed for each of the four combinations
and no appreciable overshoot was seen. The settling time was
determined by the magnitude of the set point change and was approxi-
mately the same value as determined previously. The pumping rate
changes did not significantly affect the closed-loop system response.
-
400
...._ . z -::? 300 ' . -E - I " ' LARGE SET POINT CHANGE LU
200 1 I 50 __... 300 ml./MIN.
I- SMALL PUMP RATE CHANGE
-
400
-. z -:E 300 ' . -E - SMALL SET POINT CHANGE w 200 - 250 ml./ MIN. 1-- 200 LARGE PUMP RATE CHANGE
-
400
-. z -~ 300 .......... . -E i I I LARGE SET POINT CHANGE - 50-+ 300 ml./ MIN. w
200 j I LARGE PUMP RATE CHANGE
I- 25 -+150 BPM
-
400
-. z -~ 300 ......... . E -w 200r SMALL SET POINT CHANGE ~ 200---... 250 ml./MIN.
-
V. CONCLUSIONS AND RECOMMENDATIONS
A microcomputer-based control system, designed to control the
operation of the Arp diaphram-type pneumatic blood pump, has been
developed and presented in this thesis. The controller hae .. two
mo_de and the cl()_i;ed-loop mode. --·----·---·--···--·-· ··---·-··--· -··-· .. ·---~- ·-·-· --· ......
IIn the ~y mode, the attendant sZle~t~.J:!t~ .. P.1:1111PJP.S. rate and per cent systolic time operating parameters of th~ J>J9od .. pump. The -----------~------------------·---··-~--·---·--· ,.;.·••"' -. ••• _._. __ ,.... •k_ ••••• -------... ---~-·-·>--.... ~.--........ -.. -·-·. ...
output of the pump is then dependent on these parameters and the
resistance to flow presente~lin the f:~d=ii~p mode, the ·.,,...__., ___ .,
attendant selects the pumping rate and the flow rate to be
maintained. This flow rate is maintained automatically, in spite of
variations in pumping rate and system load, by computer controlled
selection of the per cent systolic time parameter. In addition,
either chamber of the blood pump can be placed in systole, at any
time, by depressing one of two manual systole switches~
The time response of the closed-loop pump controller to
changes in set point and load is approximately 10 seconds and does
not appear to be affected by the use of average model parameters to
obtain the controller gain constants. Both the time response obtained
and the fluid pressures developed appear to be within physiologically
acceptable bounds.
T~e per cent overshoot incurred to achieve this settling time
should not present problems in an animal test of the instrument. A
more representative simulation of the circulatory system and the
91
-
92
perfusion circuit would be a prerequisite to any human testing,
however.
The relatively large per cent overshoot expected as a consequence
of the one-quarter decay ratio tuning criteria was not observed. This
suggests that the controller constants calculated, using the first-
order-lag-plus-dead-time model obtained for the blood pump and flow
circuit and the one-quarter decay ratio criteria, are conservative.
The proportional term constant K could be increased to speed up the p
response of the blood pump controller at the expense of a larger over-
shoot. The integral term constant Ki could then be adjusted to speed
up convergence on the set point. In addition, derivative control action
could be included by selecting a non-zero derivative term constant Kd.
The controller constants, and hence the response of the controller,
may be optimized for a particular pumping rate, set point, or load
condition empirically.
The per cent overshoot may also have been reduced by restricting
the operating range of the blood pump itself. The per cent systolic
time parameter was limited in software, as mentioned previously,
to values between 5% and 95% and thus did not drive the pump operation
into saturation. In addition, the maximum output of the blood pump
was restricted by the selection of tubing diameters in the mock circu-
latory system, to less than 500 ml/minute. This flow rate is signifi-
cantly less than the maximum output capacity of the blood pump.
As mentioned previously, the blood pump and flow circuit were
modeled as a first-order-lag-plus-dead-time system. The sample open-
loop response curve indicated that the observed dead time was approxi-
-
93
mately one-half of the calculated dead time. Other curves, not shown
in the thesis, behaved similarly. This effect was expected, as the
analytical solution for the dead time and time constant is described
by Smith as being "conservative" (20). Further experimentation is
suggested to refine the first order model developed and to explore a
second order approximation.
The closed-loop response of the blood pump controller could
possibly be improved by decreasing the sampling time. Smith suggests
that the ratio of one-half the sampling time to the time constant be
significantly less than the ratio of the dead time to time constant.
Using the average dead time calculated, the ratio of one-half the
sampling time to the dead time is less than the ratio of dead time
to time constant by a factor of twenty. If, however, the system dead
time obtained is not accurate, this factor would change. The SB:IDpling
time can be decreased by a factor of two by using the CLOCK 2 signal
to preset the sample flag instead of the CLOCK 3 signal. The controller
constants would have to be recalculated using this new sampling time.
The steady state error in flow rate attained of 18 ml/minute
was compensated for by internally adding 18 ml/minute to the set point
entered. This technique was adopted after empirical variation of the
proportional and integral term constants failed to eliminate the
offset error. The offset error is most probably due to round-off
errors in the various calculation routines employed in the blood pump
control algorithm, and merits additional investigation.
With any microcomputer-based device, there is a trade-off
between functions to be performed in hardware and functions to be
performed in software. The experience gained in this endeavor suggests
-
94
that the analog-to-digital conversion of the flow rate be performed
entirely in hardware by a hybrid ADC and the result strobed into
the microcomputer as part of an interrupt service routine. This would
entail the wiring of a priority interrupt circuit, as the solenoid
valves are also sequenced by interrupt service routines, but would
eliminate the software overhead presently required to perform the
analog-to-digital conversion and decrease the conversion time.
The method of specifying operating parameters could be improved
by replacing the keyboard with rotary thumbwheel switches. The
thumbwheel switches are available with BCD encoding and display a
decimal number representing the switch position. They would, there-
fore, perform the functions presently accomplished by the keyboard,
the keyboard encoder, and the seven segment displays, while sig-
nificantly reducing software overhead. The microcomputer could scan
the thumbwheel switches, examine an operator set flag, or respond to
an operator initiated interrupt to determine when new operating
parameters were specified. A pause function could be included that
would allow the operator to temporarily stop the pumping action. The
current values of the pumping rate, per cent systolic time, and flow
rate set point would be preserved on the thumbwheel switches and would
be used when pumping action was resumed.
A desireable function, not included in the scope of the thesis,
is the synchronization of blood pump events with cardiac events by
using the electrocardiogram (EKG) signal. This mode of operation
would be applicable whenever a partial cardiopulmonary bypass was
-
95
performed. The pumping rate of the extracorporeal blood pump would