,MICROCOMPUTER CONTROL OF A PNEUMATIC · 2020. 9. 28. · microcomputer interfacing and...

152
,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

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