Download Quantification of the instantaneous pressure

Document related concepts

Mitral insufficiency wikipedia , lookup

Arrhythmogenic right ventricular dysplasia wikipedia , lookup

Quantium Medical Cardiac Output wikipedia , lookup

Transcript
Quantification of the instantaneous pressurevolume relationship in the left ventricle:
Comparison of four models
Masters Thesis
F.A. Rövekamp
August 2005
Eindhoven University of Technology
Faculty of Biomedical Engineering
Department of Materials Technology
Supervisor: Prof.Dr.Ir F.N.v.d.Vosse
VU University medical center Amsterdam
Department of Pulmonology
Supervisors: Prof. Dr. N. Westerhof
Ir. J.W.Lankhaar
1
Samenvatting
Druk-volumelussen van de linkerventrikel (verkregen door de druk in de linkerventrikel uit te
zetten tegen het volume in de linkerventrikel) zijn belangrijk in het analyseren van de ventrikelfunctie. Modelmatig simuleren van deze lussen geeft inzicht in de hemodynamica van het hart en
kan mogelijk voorspellingen doen over cardiovasculaire ziekten zoals hypertensie, hypertrofie en
hartfalen. Een algemeen bekend model is het elastantiemodel van Suga et al.1 Hierin worden de
isochronen van de druk-volumelussen lineair verondersteld. Isochronen zijn lijnen die de punten
verbinden die op hetzelfde tijdstip in de cardiale cyclus plaatsvinden van druk-volumelussen onder verschillende vullingsdrukken verkregen. Er zijn twee nadelen aan dit model. Als eerste blijkt
dat in werkelijkheid deze isochronen niet linear zijn2 en ten tweede blijkt dat het volumeintercept (snijpunt van de isochroon met de volume-as) constant en negatief is. In dit afstudeerverslag zijn drie andere modellen opgesteld en met elkaar vergeleken: een lineair model maar dan
met een tijdsafhankelijk volume-intercept, een niet-lineair model met isochronen die lopen van
convex tot concaaf en een niet lineair model met sigmoïdale isochronen. Het arteriële systeem
wordt gemodelleerd met een drie-elementen windketel model.3 De parameters werden geschat
aan de hand van het fitten aan schapen-data. De modellen worden vergeleken met een statistisch
criterium. Het Suga-model en het niet-lineaire model met isochronen van convex naar concaaf
fitten het slechts. Het sigmoïde model en het lineaire model met vrij volume-intercept zijn bijna
vergelijkbaar maar de laatste heeft veel minder parameters.Voor het simuleren van de instantane
druk-volumerelatie van de ventrikel voor fysiologische toepassingen, kan het beste een lineair
model met een vrij volume-intercept worden gebruikt.
Abstract
Pressure-volumeloops of the left ventricle (obtained by plotting the ventricle pressure against
ventricle volume) are important in analysing ventricular function. Simulating these loops with a
model can give understanding of the hemodynamics of the heart and might give insight in cardiovascular diseases like hypertension, hypertrophy and heart failure. A well known model is the
Elastance model of Suga et al.1 In this model the isochrones are assumed to be linear. Isochrones
are instantaneous pressure-volume relations, which means that the points that occur at the same
time in de cardiac cycle but in PV-loops with different filling pressure, are connected. This model
has two shortcomings. First, it seems that in reality the isochrones are nonlinear2 and second, the
volume-intercept (intersections of the isochrone with the volume axis) is constant and negative.
In this thesis we made three other models and compared them: a linear model with a timedependent volume-intercept, a non-linear model with isochrones from convex till concave and a
non-linear model with sigmoidal isochrones. The arterial system is loaded with a three element
windkessel model.3 The unknown parameters of the model are obtained by fitting the loops to
sheep data. The models are compared with a statistical criterion. The Suga-model and the nonlinear model with isochrones from convex till concave fit the worst. The sigmoidal model and the
linear model with free volume intercept are comparable but the latter has less parameters.
The linear model with free volume intercept is the best in simulating the instantaneous pressurevolume relation of the ventricle for physiological applications.
2
Contents
Acknowledgments............................................................................................................................5
List of symbols .................................................................................................................................6
1 Introduction ...................................................................................................................................8
1.1 Circulation..............................................................................................................................8
1.2 The Heart................................................................................................................................9
1.3 The Cardiac cycle.................................................................................................................10
1.3.1 Phase 1: Atrial contraction ............................................................................................11
1.3.2 Phase 2: Isovolumic contraction ...................................................................................11
1.3.3 Phase 3: Rapid, early ejection .......................................................................................11
1.3.4 Phase 4: Reduced ejection.............................................................................................11
1.3.5 Phase 5: Isovolumic relaxation .....................................................................................11
1.3.6 Phase 6: Rapid filling (passive).....................................................................................12
1.3.7 Phase 7: Reduced filling................................................................................................12
1.4 Electrocardiogram ................................................................................................................12
1.5 Ventricular pressure-volume relationship ............................................................................14
1.6 Elastance...............................................................................................................................16
1.7 Aim of this study .................................................................................................................17
2 Simulation of the instantaneous pressure-volume relationship in the left ventricle: four different
models ............................................................................................................................................20
2.1 Introduction ..........................................................................................................................20
2.2 The models ...........................................................................................................................20
2.2.1 Linear model with fixed volume intercept ....................................................................20
2.2.2 Linear model with free volume intercept ......................................................................21
2.2.3 Nonlinear model with isochrones from convex till concave: n-model .........................21
2.2.4 Non-linear model with sigmoidal isochrones................................................................21
2.3 Arterial system .....................................................................................................................22
2.4 Simulations...........................................................................................................................25
3 Methods.......................................................................................................................................26
3.1 Introduction ..........................................................................................................................26
3.2 The Least Squares Method...................................................................................................26
3.3 Fitting of isochrones.............................................................................................................27
3.4 Testing the implementation..................................................................................................27
3.5.1 Testing errors by noise ..................................................................................................28
3.5.2 Testing initial values .....................................................................................................29
3.5.3 Conclusion.....................................................................................................................29
3.6 The Akaike information criterion.........................................................................................30
4 Results of estimations..................................................................................................................32
4.1 Introduction ..........................................................................................................................32
4.2 The arterial system ...............................................................................................................33
4.3 The models ...........................................................................................................................34
4.3.1 Linear model with fixed volume-intercept....................................................................34
4.3.2 Linear model with free volume intercept ......................................................................37
4.3.3 Non-linear model with isochrones from convex till concave: n-model ........................39
4.3.4 Non-linear model with sigmoidal isochrones...............................................................42
3
4.4 Comparison of the models....................................................................................................44
4.4.1 Comparing the models by plotting them in one figure..................................................44
4.4.2 Comparing the models by looking at the physiological variables ................................46
4.2.2 Comparing the models with the Akaike information criterion .....................................47
5 Conclusion...................................................................................................................................50
5.1 Comparing the models .....................................................................................................50
5.2 A Suggestion for future analysis ......................................................................................53
5.3 Modelling the right ventricle............................................................................................53
References ......................................................................................................................................55
A MATLAB Source Code..............................................................................................................58
A.1 Fitting the models................................................................................................................58
A.1.1 Linear model with fixed volume intercept. ..................................................................58
A.1.2 The Linear model with free volume intercept. .............................................................58
A.1.3 Non-Linear model with isochrones from convex till concave .....................................59
A.1.4 Non-Linear model with sigmoidal isochrones .............................................................61
A.2 The Akaike information criterion........................................................................................62
A.3 The Simulations...................................................................................................................63
A.3.1 The linear model with fixed volume intercept. ............................................................63
A.3.2 Linear model with free volume intercept. ....................................................................67
A.3.3 A non-linear model with isochrones from convex till concave....................................68
A.3.4 Non-Linear model with sigmoidal isochrones .............................................................77
A.4 Fitting with Fourier series ...................................................................................................77
A.4.1 Fitting the whole system at once ..................................................................................77
A.4.2 Fourier transformation..................................................................................................79
B Windkessel parameters loops .....................................................................................................82
C Fitting with Fourier series...........................................................................................................84
C.1 Fitting the whole system at once .........................................................................................84
C.2 Fourier transformation on the non-linear model with isochrones from convex till concave.
....................................................................................................................................................84
C.3 Fourier transformation on the non-linear model with sigmoidal isochrones.......................86
C.4 Results .................................................................................................................................87
C.5 Discussion............................................................................................................................89
4
Acknowledgments
Vanaf oktober tot augustus 2005 heb ik aan dit afstudeerproject gewerkt aan het VU medisch
centrum Amsterdam op de afdeling longziekten.
Allereerst wil ik graag mijn begeleiders van het VU medisch centrum, Ir. J.W. Lankhaar en Prof.
Dr N. Westerhof, bedanken voor hun samenwerking, inzicht en vertrouwen. Tijdens problemen
en andere vragen kon ik altijd bij hen terecht en ik ben erg blij met alle tijd die zij in me hebben
gestoken. Prof. Dr. Ir F.N.v.d.Vosse was mijn begeleider van de Technische Universiteit Eindhoven. Ik ben hem heel erg dankbaar dat hij me in contact heeft gebracht met Nico Westerhof en me
daarmee de mogelijkheid heeft geboden mijn afstuderen in Amsterdam te doen, zodat het te combineren was met mijn geneeskunde studie in Amsterdam.
Verder wil ik ook alle leden van de werkgroep pulmonale hypertensie in het VU medisch centrum bedanken, zij hebben mij ondersteund in mijn onderzoek op het cardiovasculaire gebied. In
het bijzonder wil ik van deze groep Dr. A. Vonk Noordergaaf bedanken, omdat hij het mogelijk
maakte dat ik ook nog een hoop medische dingen te zien kreeg, wat zorgde voor leuke afwisseling en mijn kamergenoot Serge van Wolferen voor zijn praktische hulp en gezelligheid.
Als laatste wil ik Dr. P. Steendijk uit het LUMC in Leiden bedanken voor het vertrekken van
data.
5
List of symbols
Symbol
ai
C
CO
Crv
E (t )
Ees
d
EF
HR
J
K
N
n(t )
p
pas
pad
pes
ped
plv
pmax (t )
pmin (t )
pref (t )
pp
pv
PP
Rv
SV
SW
Ti
Ves
Ved
Description
Amplitude of the ith harmonic of n(t)
Total arterial compliance
Cardiac Output
Left Ventricle, time varying compliance(=1/E(t))
Time-Varying elastance
End-systolic Elastane
Unit
[-]
[ml/mmHg]
[l/min]
[ml/mmHg]
[mmHg/ml]
[mmHg/ml]
Deviation(error)
Ejection Fraction
Heart rate
Sum of squares
Number of parameters
Total number of samples
Time function, that described the shape of the isochrones in
non-linear-n-model
Pressure
Aortic systolic pressure
Aortic diastolic pressure
End-systolic pressure
End-diastolic pressure
Left ventricle pressure
Time function in non-linear-sigmoidal-model that describes
the maximum pressure of each isochrone
Time function in non-linear-sigmoidal-model that describes
the minimum pressure of each isochrone
Time function in non-linear-n-model to make the equation
of the model dimensionless
Peripheral pressure
[-]
[%]
[beats/min]
[-]
[-]
[-]
[-]
Venous pressure
[mmHg]
Pulse Pressure
Venous resistance
Stroke volume
Stroke work
Interbeat period
End-systolic volume
End-diastolic volume
[mmHg]
[mmHg⋅s/ml]
[ml]
[ml⋅mmHg]
[s ]
[ml]
[ml]
[mmHg]
[mmHg]
[mmHg]
[mmHg]
[mmHg]
[mmHg]
[mmHg]
[mmHg]
[mmHg]
[mmHg]
6
Vhalf (t )
Vref (t )
Vlv
Vd
Vd (t )
Z0
∆p
∆V
φi
α (t )
Time function in non-linear-sigmoidal-model that describes
the volume halfway the sigmoidal isochrone
Time function in non-linear-n-model to make the equation
of the model dimensionless
Left ventricle volume
Volume intercept
Volume intercept as function of time
Characteristic impedance
Difference of pressure
Difference of volume
Phase of the ith harmonic of n(t)
Time function in non-linear-sigmoidal-model that describes
the slope of the sigmoidal shape of the isochrone
[ml]
[ml]
[ml]
[ml]
[ml]
[mmHg⋅s/ml]
[mmHg]
[ml]
[-]
[mmHg/ml]
7
1 Introduction
1.1 Circulation
The tissues of the human body need nutrients to survive. To accomplish this, blood is circulated
through the body. Besides supplying tissues with nutrients, blood also transports waste products
and hormones from one part of the body to another. To transport nutrients, waste products, hormones from one part of the body to another, and to maintain an appropriate environment in all the
tissue fluids there are two circulations. These are the systemic circulation and the pulmonary circulation (Figure 1.1). In the systemic circulation, blood flows from the left ventricle of the heart
via the aorta and other main arteries and arterioles to the capillaries in the periphery of the body
and from the capillaries via the veins back to the heart. Resistance arteries and arterioles regulate
the amount of blood that flows locally. The capillaries form the exchange vessels between blood
and tissue. In the pulmonary circulation the blood which returns from the systemic veins, flows
into the right side of the heart and is pumped into the lungs, from which it returns to the left side
of the heart. The systemic circulation serves to transport oxygen to all parts of the body, while the
pulmonary circulation serves to supply the blood with oxygen and to remove carbon dioxide. The
systemic circulation is the largest circulation because it supplies all the tissues of the body with
oxygenated blood. About 84% of the entire blood volume is in the systemic circulation and the
majority of that is in the systemic veins.4
Figure 1.1: Distribution of blood volume in the different portions of the circulatory system.4
8
1.2 The Heart
The heart consists of four chambers: right atrium, right ventricle, left atrium and left ventricle
(Figure 1.2). The right atrium receives blood from the superior and inferior vena cavae, which
carry blood returning from the systemic circulation (venous return). The right atrium is a highly
distensible chamber that can easily expand to accommodate the venous return at low pressure.
Blood flows from the right atrium, across the tricuspid valve (atrio-ventricular valve, AV-valve),
into the right ventricle. The outflow tract of the right ventricle is the main pulmonary artery,
which is separated from the ventricle by the semilunar pulmonic valve. Blood returns again to the
heart from the lungs via the four pulmonary veins that enter the left atrium. The pressure in the
left atrium normally ranges from 8-12 mmHg. Blood flows from the left atrium via the mitral
valve (atrio-ventricle valve, AV-valve), and into the left ventricle. The left ventricle ejects blood
across the aortic valve and into the aorta.5
Figure 1.2: A cross-section of the heart. The four chambers are denoted by RA (right atrium), RV (right ventricle), LA (left atrium) and LV (left ventricle). Blood is ejected into the aorta. After circulating to the body, it
returns to the RA. It then enters the RV and is ejected into the pulmonary artery. After reoxygenation in the
lungs it enters the LA, from which it enters the LV and is ejected into the aorta again.5
9
1.3 The Cardiac cycle
There is a continuous demand for blood in the human body. To fulfill this demand the heart beats
about seventy times a minute to pump the blood through the human body. The events that occur
from the beginning of one heart beat to the beginning of the next is called the cardiac cycle. Each
cycle is initiated by spontaneous generation of an electrical pulse in the sinus node. The voltage
pulse (action potential) causes contraction of cardiac muscle cells. The action potential travels
rapidly through both atria and then, via a specialized system, the AV-nodes and His bundles, over
the ventricles. In the AV-node there is a delay between passage from the atria into the ventricles.
This is why the atria contract earlier than the ventricles and because of that the atria fill the ventricles with blood before the strong ventricular contraction. The cardiac cycle can be divided into
two periods; a period of relaxation called diastole, during which the heart fills with blood, followed by a period of contraction, called systole, and ejection of blood. During every beat the
heart goes trough seven different phases. Below each of these phases is reviewed in more detail
(Figure 1.3).
Figure 1.3: Cardiac cycle. The seven phases of the cardiac cycle are (1) atrial systole; (2) isovolumetric contraction; (3) rapid ejection; (4) reduced ejection; (5) isovolumetric relaxation; (6) rapid filling and (7) reduced
filling. LV, left ventricle; ECG, electrocardiogram; AP, aortic pressure; LVP, left ventricle pressure; LAP,
left atrial pressure; LVEDV, left ventricle end-diastolic volume; LVESV, left ventricle end-systolic volume;
S1-S4, four heart sounds.6
10
1.3.1 Phase 1: Atrial contraction
In this phase, the AV-valves are open and the aortic and pulmonary valves are closed. As the atria
contract, the pressure within the atrial chambers increase; this drives blood from the atria into the
ventricles. This is the last phase in ventricular filling. Backflow of blood due to the atrial contraction into the veins is impeded by venous return (inertial effect). However, the atrial contraction
does produce a small increase in venous pressure, noted as the a-wave in Figure 1.3. The atrial
systole normally accounts for 10% of the left ventricular filling when a person is at rest, up to
40% when the heart rate increases or becomes pathological. After finishing the contraction the
atrial pressure falls causing the closure of the AV-valves, which results in the first heart sound
(S1). At this time the ventricle volumes are at their maximum value. Sometimes a heart sound is
heard during atrial contraction (S4)
1.3.2 Phase 2: Isovolumic contraction
In this phase, all valves are closed. The ventricular muscle depolarizes. Consequently, cardiac
muscle contraction leads to a rapid increase in intraventricular pressure. The abrupt rise in pressure causes the AV valves to close and the intraventricular pressure exceeds the atrial pressure.
During the time between the closure of the AV valves and the opening of the aortic and pulmonary valves, ventricular pressure rises rapidly, without a change in ventricular volume: isovolumetric, or better isovolumic, contraction. Early in this phase, the rate of pressure development
becomes maximal. The maximal rate of pressure development, dP/dt max, is the maximal slope
of the ventricular pressure tracing plotted against time, during isovolumetric contraction. Atrial
pressure increases due to continuous venous return.
1.3.3 Phase 3: Rapid, early ejection
In this phase the aortic and pulmonary valves are open and the AV valves remain closed.
When the intraventricular pressures exceed the pressures in the aorta and pulmonary artery, the
aortic and pulmonary valves open and blood is ejected from the ventricles. While blood is being
ejected and ventricular volumes decrease, the atria continue to fill with blood from their respective venous inflow tracts. Although atrial volumes are increasing, atrial pressures initially decrease as the base of the atria is pulled downward, expanding the atria.
1.3.4 Phase 4: Reduced ejection
In this phase, the aortic and pulmonary valves are open and the AV valves remain closed. It is the
ventricular repolarization. This causes ventricular active tension to decrease and the rate of ejection to fall. Ventricular pressure falls slightly below the outflow tract pressure, but flow still continous due to kinetic energy of the blood that propels the blood into the aorta and pulmonary artery. Atrial pressures gradually rise during this phase due to continued venous return into the
atria.
1.3.5 Phase 5: Isovolumic relaxation
In this phase, all valves are closed. As the ventricles continue to relax and intraventricular pressures fall, a pressure gradient reversal causes the aortic and pulmonic valves to close, causing a
second heart sound (S2). Ventricular volumes remain constant during this phase because all
valves are closed. The residual volume of the blood that remains in the ventricle is called the end-
11
systolic volume, this is approximately 50 ml. The difference between the end systolic volume and
the end-diastolic volume represents the stroke volume of the ventricles and is about 70 ml.
The ratio of stroke volume and end-diastolic volume is called the ejection fraction of the ventricle, which is normally greater than 0.55. Although ventricular volume does not change, atrial
volume and pressure continue to increase due to venous return.
1.3.6 Phase 6: Rapid filling (passive)
In this phase, the AV valves open, aortic and pulmonic valves closed. When the ventricular pressure fall below arterial pressure, the AV valves open and passive ventricular filling begins. The
ventricles briefly continue to relax, which causes an extra fall in intraventricular pressures of several mmHg despite ongoing ventricular filling. Filling is very rapid because the atria are maximally filled just prior to AV valve opening. The opening of the AV valves causes a rapid fall in
atrial pressure and proximal venous pressure. If the AV valves are functioning normally, no
prominent sounds will be heart during filling. When a third heart sound (S3) is audible it may
represent tensing of the chordae tendineae and the AV ring, which is the connective tissue support for the valve leaflets.
1.3.7 Phase 7: Reduced filling
In this phase, the AV valves are still open and the aortic and pulmonic valves are still closed.
This is the period between diastole when passive ventricular filling is nearing completion. As the
ventricles continue to fill with blood and expand, they become less compliant. Aortic pressure
and pulmonary arterial pressure continue to fall during this period as blood leaves the large blood
vessels through the systemic and pulmonary micro circulations.5
1.4 Electrocardiogram
An action potential of the heart muscle occurs when the cell membrane potential suddenly depolarizes and then repolarizes back to its resting state. The summated effects of all the action potentials can be registered using an electrocardiogram (ECG). (Figure 1.4) Three basic characters are
visible in the ECG: The P-wave, QRS-complex and the T-wave. In addition, the QRS-complex
can be separated into a Q-,R- and S-wave. The P-wave is a result of depolarization of the atria,
the QRS-complex of the depolarization of the ventricles and the T-top of the repolarization of the
ventricles . Repolarization of the atria occurs roughly at the same time as depolarization of the
ventricles and is hence difficult to observe on the ECG. 5
12
Figure 1.4: A Typical electrocardiogram (ECG) of a healthy heart. See text for an explanation of the events
that correspond to the P, Q, R, S and T wasves.5
13
1.5 Ventricular pressure-volume relationship
Although measurement of pressures and volumes over time can provide important insight into
ventricular function, pressure-volume loops provide an even more powerful tool for analyzing
ventricular function. Pressure-volume loops are generated by plotting the ventricular pressure
against ventricular volume. In Figure 1.5 the right bottom corner represents the ventricular cavity
pressure and volume at which the ventricle begins its contraction. The subsequent period is the
isovolumic contraction period. All valves are closed and the ventricle rapidly builds up pressure
without changing its volume. This isovolumic period is represented by line b. When the ventricular pressure exceeds the aortic blood pressure, the pressure difference pushes open the aortic
valve. The ventricle then ejects its contents in the face of mildly changing ventricular pressure.
Curve c in the pressure-volume diagram represents this ejection process. Subsequently the ventricle undergoes the isovolumic relaxation process, which is represented by line d. As the ventricular pressure falls below the atrial pressure, the mitral valve opens and the relaxing ventricle fills
along curve a, the end-diastolic pressure-volume relation. 7
Figure 1.5: Ventricular pressure-volume loop. a, ventricle filling ; b, isovolumetric contraction; c, ventricular
ejection; d, isovolumetric relaxation. EDV and ESV, left ventricle end- diastolic and end-systolic volumes,
respectively; EDPVR, end-diastolic pressure-volume relationship; ESPVR, end-systolic pressure-volume relationship; SV, stroke volume (EDV-ESV) .
14
The end-diastolic volume (EDV) is the maximal volume achieved at the end of filling and the
end-systolic volume (ESV) is the minimal volume (residual volume) of the ventricle found at the
end of the ejection. The width of the loop therefore represents the difference between EDV and
ESV, which is stroke volume (SV). Three primary mechanism regulate EDV and ESV, and
therefore stroke volume: preload (end diastolic pressure), afterload (end systolic pressure) and
inotropy (contractility). Preload is the initial stretching of the cardiac myocytes prior to contraction; therefore it is related to the sarcomere length at the end of diastole. Sarcomere length can
not be determined in the intact heart, therefore indirect indices of preload, such as ventricular
end-diastolic volume or pressure, must be used. Several factors alter preload: Venous blood pressure, diastolic ventricular compliance and atrial contractility.
Afterload is the stress in the cardiac muscle cells in systole. Since this stress can also not be determined it is often equal to the ‘load’ against which the heart must contract to eject blood. A
major component of the afterload for the left ventricle is the systolic ventricular or aortic pressure. The higher the aortic pressure the larger the afterload on the ventricle. Inotropy or contractility is an intrinsic property of the cardiac muscle. Contractility depends on intracellular calcium,
brought about by changes in hormones.
A change in preload primarily alters EDV, whereas changes in afterload and inotropy primarily
affect ESV.
An advantage of the pressure-volume loops is that Stroke Volume, Ejection Fraction and pulse
pressure (systolic pressure-diastolic pressure) can be determined from it. The area within the
pressure-volume loop is the ventricular stroke work on the external (arterial) system, which is the
energy imparted to the blood by contraction of the ventricle. The pump function of the heart can
be evaluated using pressure-volume loops. Changes in the pressure-volume level are comparable
to changes in the pump function and contractile state of the heart
Pressure-volume loops are especially interesting because it has been suggested that from the
loops changes in the contractile state can be derived.1 Such changes lead to shifts or deformations of the pressure-volume loop. Connecting the end-systolic points (left top corner in Figure
1.5) for different cardiac contractions with different preloads, and thus different loops, the endsystolic-pressure-volume relation is obtained (ESPVR). When connecting the end-diastolic points
the end-diastolic-pressure-volume relation can be obtained (EDPVR).
The ESPVR shifts with changes in the contractile state of the myocardium, or with changes in the
ratio of the wall thickness to the cavity volume. For example, sympathetic stimulation of the heart
makes the slope of the ESPVR curve steeper, as does concentric hypertrophy of the ventricle.
Incomplete relaxation resulting from tachycardiac hypoxia shifts the EDPVR curve upward,
which results in decreased filling. It is thus possible to detect alterations in the ventricular state
from the shifts of the end-systolic and end-diastolic pressure-volume relationship curves.7
If the points of different PV-loops that occur at the same time in a series of cardiac cycles are
connected, isochrones or instantaneous PV relations result (Figure 1. 6). Little is known about the
isochrones of the cardiac cycle, but the general approach is to assume that they are straight. It is
not known whether they should be linear or nonlinear and how they vary over time. Furthermore
it is not known whether they might give as much, or even more, information about the contractile
state of the myocardium or the pump function of the heart.
15
Figure 1. 6: Two pressure–volume loops obtained by changing venous loading conditions. Connecting simultaneous time points in the cardiac cycle of the two loops results in isochrones. Connecting the end-systolic time
points gives the End-systolic pressure-volume relation (ESPVR) however this is not necessarily an isochrone.
The end-diastolic time points gives the end-diastolic pressure-volume relation (EDPVR).
1.6 Elastance
In several ways it has been tried to give a good definition for the contractility of the heart, because it is important in determining the condition of the heart. One way is to look at the slope of
the ESPVR.
The volume intercept is determined by taking the intersection of the ESPVR with the volume axis
and than all isochrones are forced to cut the volume axis at this volume intercept. The isochrones
are straight lines , the slope than being pressure over volume and is called Elastance (E).
The analogy is as follows: An elastic sac (like a rubber balloon) is filled with water, and measurements show that its pressure-volume relationship is like the segment of line a in Figure 1. 7
As the volume of water in the sac is increased from zero, no measurable pressure is built up in the
sac until the volume exceeds a value V0, which is called the unstressed or dead volume. Volumes
greater than the unstressed volume are called stressed volume. Volume elastance E, is the reciprocal of volume compliance and is defined by:
∆P
(1)
E=
∆V
here the slope, of line a is E1. When the relationship is linear (i.e. the slope is constant over the
entire PV-range of interest). E can be described by
P
(2)
E=
V − V0
16
The ratio of absolute sac pressure (P) i.e. pressure inside the balloon minus external atmospheric
pressure and stressed volume, V-V0 is the same as the incremental pressure-volume ratio
∆p / ∆v , and thereby represents the elastance of the sac.
However, the ventricular muscle in systole is stiffening with time, and as a result, its pressurevolume relationship rotated to the line labelled b in Figure 1. 6 . The slope is increased to a
greater value E2, but the unstressed volume V0 is assumed not to have changed . This means in
our rubber balloon model that the size is similar but the rubber wall is thicker or more stiff. It is
presently assumed in the literature that the isochrones measured during cardiac contraction
showed this behaviour of a constant V0 and increasing and subsequently decreasing slope i.e. an
E(t). From this it can be stated that the ventricle acts as a time-varying elastance E(t), which can
be described by:
P (t )
(3)
E (t ) =
V (t ) − V0
Figure 1. 7: Schematic diagram to explain the concept of time-varying elastance in the pressure-volume plane.
Line a represents the end-diastolic pressure-volume relationship of the ventricle, with slope E1, and a volume
axis intercept V0. When the ventricle contracts, the slope increases gradually with time as indicated by the
arrow, eventually reaching line b with slope E2, at the end systole, without a change in V0. Thus, ventricular
contraction manifests itself as a counter clockwise rotation of the pressure-volume relationship around V0,
and relaxation as a clockwise rotation to the diastolic state.
1.7 Aim of this study
In almost all reports in the literature, the end-systolic and end-diastolic pressure-volume relationships (ESPVR and EDPVR) and isochrones are assumed to be linear, with a constant volume
intercept.1 There are, however, two problems with this assumption:
First, there is evidence that these relations are non-linear (Figure 1. 8).2 In isolated hearts the
relation is often found to be linear. 1 However Nonlinearity of the ESPVR and EDPVR has been
increasingly observed.2;8 Burkhoff et al. demonstrated contractility-dependent curvilinearity of
ESPVRs in isovolumically contracting isolated canine ventricles.2 This means that at higher and
17
much lower contractile states (Ees ≥ 7.8 or ≤3.4 mmHg/ml), the former, being typical of isolated
animal ventricles, nonlinearity is significant.2
In reality, the instantaneous PV-relations are convex in diastole to concave in systole.(Figure 1.
8). Nonlinearity is not surprising since the length-force relation of the cardiac muscle is also
nonlinear. Ventricular pressure is related to force and ventricular volume is related to the resting
fiber (and hence sacromere) length (Figure 1. 9).6
Second, V0 in the linear model is often forced to be negative. A negative volume is physiologically not possible. This implies that in reality the relations must be curved. These two shortcomings of the varying elastance model brought us to the objective of the present study.
The objective of this study is to quantify the differences between linear and non-linear models
for the instantaneous pressure-volume relationships. This is done with four different models: two
linear models (one with a fixed volume intercept and one with a free volume intercept) and two
non-linear models (one with isochrones from convex till concave and one with sigmoidal isochrones). By simulating these models, the hemodynamic consequences can be studied under varying circumstances. With a statistical criterion these models can be compared, and a choice between the models can be made as to which model fits the data obtained from animal experiments
(sheep) the best.
Figure 1. 8: Representative example of a series of 24 pressure-volumes loops under transient preload reduction. Isochronal ventricular PV-couples are shown as black dots with an interval of 2.5 ms. The open circles
represent the onset and end of systole.9
18
Figure 1. 9: Relationship of myocardial resting fiber length (sacromere length) or end-diastolic volume to
developed force or peak systolic ventricular pressure during ventricular contraction in the intact dog heart.
19
2 Simulation of the instantaneous pressurevolume relationship in the left ventricle: four different models
2.1 Introduction
To quantify the differences between linear and non-linear instantaneous pressure-volume relationships, we made four models of the left ventricle of increasing accuracy: Two models that
generate PV-loops with linear isochrones (one that has a fixed volume intercept, and the other
one has a free volume intercept which varies in time.) The other two models generate PV-loops
with non-linear isochrones (one with isochrones that change in shape from convex to concave
and the other with isochrones with a sigmoidal shape.)
In this chapter these models, with increasing number of parameters, are described. First we study
how the left ventricle is modelled for these linear and the non-linear models and then all models
are combined with the three-element windkessel model of the arterial system.10
2.2 The models
2.2.1 Linear model with fixed volume intercept
The classical assumption of the instantaneous pressure-volume relationship is the linear timevarying elastance (E(t)) model that was proposed by Suga et al.1 In this model pressure P (t ) and
volume V (t ) are related by the time-varying elastance E (t ) according to
P(t ) = E (t ) [V (t ) − V0 ]
(4)
For each moment in time t , P is a linear function of V . The volume V0 represents the intercept
of the instantaneous pressure-volume relations with the volume axis. This intercept is assumed to
be time-invariant. The value of V0 is determined by determining the intercept of the linear
ESPVR of the real data by linear extrapolation to the volume axis. Thus the model is fitted with a
linear fit for each isochrone and the fit is forced to intersect the volume axis at the V0 we determined from the ESPVR. (for details of fitting see Chapter 3)
As can be seen from paragraph 1.6 Elastance is a function which shows the slope of the isochrones in time. When the model is fitted to the real data, this slope can be determined per
isochrone and plotted as function of time, the E (t ) curve . We call this a one plus one parameter
model, indicating that one parameter is time dependent and one is a constant. (See for the
MATLAB-code Appendix A.3.1 The linear model with fixed volume intercept.)
20
2.2.2 Linear model with free volume intercept
In this model the pressure-volume isochrones are also assumed to be linear so that they can be
related with the time varying elastance E (t ) , However now also V0 is free to change with contraction. Thus the model reads:
P(t ) = E (t )[V (t ) − V0 (t )]
(5)
The difference with the linear model above is that de volume intercept is not fixed, but a function
of time V0 (t ) .
This model is also fitted with a linear fit per isochrone (for details of fitting see chapter 3). Now
not only the slope E (t ) of this fit is time-varying, but the intercept of the isochrones with the volume axis, V0 (t ) is also time dependent. We call this a two-parameter model. (See for the
MATLAB-code Appendix A.3.2 Linear model with free volume intercept.)
2.2.3 Nonlinear model with isochrones from convex till concave: n-model
A simple model with a limited number of parameters that fulfils the requirements of mimicking
instantaneous nonlinear PV-relations with convexity of the diastolic and concavity of the systolic
relation is:
n (t )
⎛ V (t ) − V0 (t ) ⎞
⎟
(6)
P (t ) = Pref (t )⎜
⎜ V (t ) ⎟
ref
⎠
⎝
The choice of the time-dependent function n(t ) is essential in this model. For n(t ) = 1 the pressure-volume relationship is linear, for n(t ) < 1 it is concave and for n(t ) > 1 convex.
The model is thus based on a limited number of parameters; Vref (t ) as a reference volume to make
the equation dimensionless, Pref (t ) , as a reference value for the pressure, V0 (t ) as the intercept
with the volume axis and the time function n(t ) .
This model is fitted for each isochrone, (for details see chapter 3) which means that for every
isochrone, the four parameters have a new value. In other words all four parameters are a function of time. (See for the MATLAB-code Appendix A.1.3 Non-Linear model with isochrones
from convex till concave)
2.2.4 Non-linear model with sigmoidal isochrones
A model generating isochrones with a sigmoidal shape is:
α (t )
⎛ V (t ) ⎞
⎜
⎟
⎜ V (t ) ⎟
half
⎠
+ Pmin (t )
P (t ) = Pmax (t ) ⎝
α (t )
⎛ V (t ) ⎞
⎟
1+ ⎜
⎜ V (t ) ⎟
⎝ half ⎠
(7)
21
We choose this model because we saw that Stergiopulos et al. 11 used a ‘double-hill’ function to
describe the elastance curve. The half of this function is equation (7) and describes the sigmoidal
form we want. In this model the four time varying parameters Pmax (t ),Vhalf (t ),α (t ) and
Pmin (t ) describe the shape of the sigmoid (Figure 2. 1). Pmax is the maximum value of the pressure, V half is the volume exactly halfway the sigmoid, α is the slope at the bending point of the
sigmoid and Pmin the minimum value of the pressure.
Figure 2. 1: A sigmoidal curve, which can be described with four parameters: Pref, the maximum value of the
pressure, Vhalf, The volume exactly halfway the sigmoid, α, the slope at the bending point of the sigmoid and
Pmin, the minimum value of the pressure.
Each isochrone is described by these 4 parameters, all parameters are a function of time.(See for
the MATLAB-code Appendix A.3.4 Non-Linear model with sigmoidal isochrones)
2.3 Arterial system
The blood pressure and flow will be obtained from each of the four heart models above mentioned loaded with the three element windkessel. If voltage corresponds to pressure, current to
flow and charge to blood volume, all relations that originally apply to electrical circuits (e.g.
Ohm’s law and Kirchhoff’s current law), can be applied to the circulation. The model shown in
Figure 2. 2 shows the ventricular and arterial models.
22
Figure 2. 2: The model in electrical form used for the simulation. Between the diodes , the left ventricle is
modeled as one of the four tested models; the simplest, the time varying elastance model with fixed volume
intercept (E(t)) is shown here. A constant venous pressure Pv with small valve resistance Rv is used. On the
right the arterial system is modeled by the three element windkessel model. The Z0 and Ca are the characteristic impedance of the proximal aorta and the total arterial compliance. The micro vascular bed is modeled by a
resistance, peripheral resistance Rp. Note that the excitation of the system is not by the pressure source pv, but
by variations of the ventricle elastance.
The arterial system is represented by a linear three-element windkessel model. The whole arterial
system is conceived as a point load with the aortic characteristic impedance, connected in series
with a parallel combination of the peripheral resistance and the total arterial compliance. The left
ventricle is modeled with each of the four models discussed above.
Venous pressure is assumed to be constant and is modelled as a voltage p v with a small valvular
resistance Ro .
With proper choice of parameters, the three element windkessel can model the arterial input impedance well and can thus provide an accurate description of the heart load .12;13 (Figure 2. 3)
23
Figure 2. 3: Hemodynamic representation of the three element windkessel model. The arterial system is modeled with a characteristic impedance of the proximal aorta (Zc), total arterial compliance (C) and peripheral
resistance (R). 12
The arterial compliance, the peripheral resistance and the aortic characteristic impedance can be
estimated from the experimental data. This is done as follows:
Arterial compliance, C :
C=
Vs
Pp
(8)
in which:
Vs = Ved -Ves = Stroke volume
Pp = Pas − Pad = Pulse Pressure
(9)
(10)
The peripheral resistance:
T
1
Pa dt
T ∫0
R=
CO
in which Cardiac Output is:
CO = SV gHF
(11)
(12)
The aortic characteristic impedance Z 0 is taken as 7% of the peripheral resistance R p .3
24
2.4 Simulations
The models were implemented in an existing MATLAB simulation model (MATLAB v7, The
Mathworks, Natick) of the ventricle and the arterial system 14. In short, simulations were performed as follows. Heart and arterial system are modelled as described above. Parameters which
describe the heart and the arterial system are used after they are estimated by fitting the model to
the data. Valves are modelled as ideal valves: in case of a positive pressure gradient across the
valves, valvular resistance is negligible (valves open) and in case of a negative pressure gradient
resistance is infinitely high (valves closed). For each combination of the valve states (open-open,
open-closed, closed-open, closed-closed), the governing differential equations were identified
and rewritten in state-space representation.* This resulted in a system with two states: ventricular
volume and peripheral pressure. For each moment of the cardiac cycle, the state of the valves was
identified and then the correct state-space system matrix was passed to the differential equation
solver. Solving was repeated until pressure and volume were periodic, i.e. in a steady state of
oscillation. After solving, the remaining quantities in the model (other pressures and flows) were
derived from the state variables.
To mimick vena cava occlusions , i.e. the procedure used in the experiments, different values of
venous pressure were studied. For each of the 14 loops the parameters of ventricular models were
derived (as a function of time). Also for each loop the windkessel parameters were estimated.
After the calculations are completed the resulting PV-loops were drawn. Isochrones were obtained by connecting corresponding time points. The results of the simulation were also presented
in terms of aortic and ventricular pressure and ventricular volume as time functions.
*
A system that is described by a differential equation of order n can be represented by a set of n first-order differential equations. This latter is called state-space representation.
25
3 Methods
3.1 Introduction
The aim of this study is to compare different models which generate instantaneous pressurevolume relations, based on linear and non-linear isochrones. To make this comparison, the models, that will be presented in the next chapter, have to be fitted to real data. There must be a statistical criterion, to determine which model is the best. The fitting is done with the least square
method. The ways these models are fitted and how the statistical criterions works are explained in
this chapter
3.2 The Least Squares Method
The method of least squares assumes that the best fit-curve of a given type is the curve that has
the minimal sum of the deviations squared (least square error) from a given set of data. Suppose
that the data points are ( x1 , y1 ) , ( x 2 , y 2 ) …., ( x n , y n ) , where x is the independent variable and
y the dependent variable. The fitting curve f ( x ) has a deviation (error) d from each data point ,
i.e., d1 = y1 − f ( x1 ) , d 2 = y 2 − f ( x2 ) , ..., d n = y n − f ( x n ) . According to the method of least
squares, the best fitting curve has the property that:
n
n
i =1
i =1
J = d12 + d 22 + ..... + d n2 = ∑ d i2 = ∑ [ y i − f ( xi )] 2 is minimal.
For example, if the model f ( x) = a + bx + cx 2 has to be fitted to data points ( x1 , y1 ),.......( x n , y n )
with a least squares method, the parameters a, b and c of the optimal fit are those that result in an
minimum of J .
n
n
i =1
i =1
J = ∑ [ y i − f ( xi )] 2 = ∑ [ y i − ( a + bxi + cxi2 )] 2
(13)
These parameters can be calculated by setting the derivatives of J to the parameters equal to
zero, i.e.
26
n
∂J
= −2∑ [ y i − (a + bxi + cxi2 )] = 0
∂a
i =1
n
∂J
= −2∑ xi [ y i − (a + bxi + cxi2 )] = 0
∂b
i =1
(14)
n
∂J
= 2∑ xi2 [ y i − (a + bxi + cxi2 )] = 0
∂c
i =1
Expanding the equations(14), we have:
n
∑y
i =1
n
i
i =1
n
∑x y
i =1
i
n
n
= a ∑1 +b∑ xi + c∑ xi2
i =1
n
i
i =1
n
n
= a ∑ xi +b∑ x + c∑ xi3
i =1
2
i
i =1
(15)
i =1
n
n
n
n
i =1
i =1
i =1
i =1
∑ xi2 yi = a∑ xi2 + b∑ xi3 + ∑ xi4
The unknown coefficients a, b and c can hence be obtained by solving equation (15)15
In the above example J is a linear function of the parameters, a, b and c . In that case explicit
expressions for the optimal parameters can be obtained. For a non-linear model, minimization of
J is more complicated, because no explicit expressions can be obtained. Numerous methods have
been developed to solve the problem. In our study, MATLAB’s standard non-linear least-squares
method was used (lsqnonlin).
3.3 Fitting of isochrones
With this least-squares method the models can be fitted to measured data by fitting the model of
the instantaneous pressure-volume relation to each measured isochrone. Because the instantaneous pressure-volume relation varies over time, each isochrone fit will yield a set of different
model parameter values. Thus, for a complete cardiac cycle, the number of estimated values for a
parameter is equal to the number of isochrones in the cycle. The latter is determined by the sample period and the interbeat period. For example, when the data has an interbeat period of 0.72s
and pressure and volume are sampled with 0.004s, there are 180 data points per loop. When 14
loops are determined 14 data points are given on each of the of 180 isochrones and. Thus each of
the 180 isochrones is fitted with lsqnonlin of MATLAB.(See Appendix A.1 Fitting the models
for the MATLAB- code).
3.4 Testing the implementation
To see if the MATLAB implementation is correct, it is tested as follows. A model is used to obtain pressure-volume loops and isochrones. Then the isochrones are estimated. Which should lead
to accurate results. If the algorithm is correct, the fit should yield the same values for the parameters as the values that were initially used.
27
The accuracy of a fitting algorithm is determined by noise on the signals and its sensitivity to the
initial values. Noise gives, of course, estimation errors and the wrong initial values can lead to a
local minimum in the error function J and consequently a wrong estimation of the parameters.
3.5.1 Testing errors by noise
Because measurement data will be corrupted by noise, also the sensitivity of the estimation algorithm to noise was tested. The function is therefore fitted to loops generated with one of the models, before and after some noise is added. The noise is generated with random variables with a
standard deviation of 1 trough 3 on the normal data. Figure 3. 1shows PV-loops obtained with the
model and with an increase amount of noise added and Figure 3. 2 shows the result of this test.
noise 1 STD
pressure in mmHg
pressure in mmHg
data without noise
80
60
40
20
0
180
200
220
240
260
80
60
40
20
0
180
80
60
40
20
0
180
200
220
240
volume in ml
200
220
240
260
volume in ml
noise 3 STD
pressure in mmHg
pressure in mmHg
volume in ml
noise 2 STD
260
80
60
40
20
0
180
200
220
240
260
volume in ml
Figure 3. 1: The data used for testing the algorithm. Top, left panel: Original noise free data; PV-loops generated with a model. Top, right-panel: same data with random noise with a standard deviation of 1 mmHg/ml
added. Bottom left-panel: random noise with standard deviation of 2 added. Bottom right-panel: random
noise with standard deviation of 3 added.
28
Estimation Error (% of true value)
110
100
90
80
70
60
50
40
30
20
10
0
1
2
3
SD of noise
Figure 3. 2: Example of a sensitivity analysis of the estimation algorithm to measurement noise. Results are
shown for a model with nine parameters (See Appendix C Fitting with Fourier series) for detailed description
of the model)
3.5.2 Testing initial values
The algorithm of the non-linear fit requires initial values for the parameters. When the correct
initial values are given the algorithm obviously yields the exact values. To study the sensitivity of
the algorithm for the initial values, we tested it using random noise on the initial values with a
standard deviation from 10% till 50% of the initial value(All initial values have the noise with
same standard deviation at the same time, so they are all tested simultaneously). When the error
of the initial values increases the error on the parameters increases too.
3.5.3 Conclusion
It can be concluded that the algorithm is correct, because when the correct initial values are
given, the fit gives exactly the same values as used to obtain the PV-loops .
The algorithm is not very sensitive for noise on the data, but the error increased with the magnitude of the noise. The noise on the PV loops, as measured in vivo, appears small enough for the
algorithm to produce accurate parameters estimates (see Figure 3. 1 and Figure 3. 2). The algorithm is also not very sensitive for the initial values. Even when the standard deviation of noise is
50% of the initial value, the estimation error is smaller than 5% of the true value.
29
Because the noise on the starting values and on the data is random it would have been better to
perform the test many more times, than just once. This has not been done because the calculation
is very time consuming and we just want to have an overall look, to see how the algorithm works.
3.6 The Akaike information criterion
To decide which model is the best, the fit of a model to the data can be compared using the
akaike information criterion (AIC). This is a method for comparing models, based on information
theory. It combines maximum likelihood theory, information theory, and the concept of the entropy of information. The AIC is for comparing models, and therefore it is only the difference in
AIC values that suggest the choice of model. The criterion balances the change in goodness of fit
as assessed by sum-of-squares with the change in the number of parameters of the model, because a model with more parameters usually fits the data better. The model with the lower AIC
score is the model more likely to be correct.
If the usual assumptions of nonlinear regression are accepted (that the scatter of points around
the curve follows a Gaussian distribution), the AIC is defined by the following equation:
⎛J⎞
(16)
AIC = N ⋅ ln⎜ ⎟ + 2 K
⎝N⎠
Where N is the number of data points, K is the number of parameters fitted by the regression
plus one (because regression is ‘estimating’ the sum-of-squares as well as the values of the parameters), and J is the sum of the squares of the distances of the points from the curve.
In our case we have for each isochrone 1,2 or 4 parameters. Because we have 180 isochrones, this
means K is 180, 360 or 720. We have 14 loops, so N is 14x180= 2520.16
When N is small compared to K , it can be shown that AIC is too small. A corrected AIC value,
called AICc is then more accurate:
2 K ( K + 1)
(17)
AIC c = AIC +
N − K −1
If the sample size is large, with at least a few dozen times more data points than parameters, this
correction will be trivial. N will be much larger than K , so the numerator is small compared to
the denominator, so the correction is tiny. With smaller samples, the correction will matter.16 (See
Appendix C Fitting with Fourier seriesfor the MATLAB-code)
30
31
4 Results of estimations
4.1 Introduction
When the models, presented in the previous chapter, are fitted to the experimentally obtained
isochrones, the parameters can be calculated and the models can be compared by studying the
generated PV-loops and pressure and volume data as time functions. The experimental data are
PV-loops from an open chest anesthetized sheep, kindly provided by Dr. P. Steendijk, LUMC in
Leiden, The Netherlands. The different loops are obtained by vena cava occlusion (Figure 4. 1
and Figure 4. 2). The data consists of 14 loops, with 180 time points in each loop ( sample rate
4ms. ,for more details see appendix B Windkessel parameters loops).
100
pressure in mmHg
80
60
40
20
0
-20
10
20
30
40
50
60
70
80
90
100
volume in ml
Figure 4. 1: 14 differently loaded pressure-volume loops of a sheep, obtained by vena cava occlusion. Every
tenth isochrone is plotted, i.e. with an interval of 40 ms.
32
pressure in mmHg
aortic and ventricular pressure
100
50
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.6
0.7
0.8
time in s
Ventricular volume
volume in ml
80
60
40
20
0
0.1
0.2
0.3
0.4
0.5
time in s
Figure 4. 2: a) Aortic and ventricular pressure (top) and ventricular volume (bottom) as function of time
measured in a sheep at a filling pressure of 3.2 mmHg.
4.2 The arterial system
For each loop (each venous pressure obtained by vena cava occlusion), an estimation of the arterial system parameters can be made, by assuming a three-element windkessel as arterial load
(Figure 4. 3). In the models each loop is made with the corresponding windkessel parameters.
33
C
3
2.5
2
0
9.9
9.7
8.5
7.3
5.6
4.1
3.2
2.0
1.0
0.6 -0.3 -0.3 -1.1 -1.5
9.9
9.7
8.4
7.3
5.6
4.1
3.2
2.0
1.0
0.6 -0.3 -0.3 -1.1 -1.5
9.9
9.7
8.5
7.3 5.6 4.1 3.2 2.0 1.0 0.6 -0.3 -0.3 -1.1 -1.5
Left ventricle end-diastolic pressure
R
2
1.5
1
0
Z0
0.12
0.1
0.08
0.06
Figure 4. 3: The Windkessel parameters of the arterial system. From top to bottom: Arterial Compliance (C),
Peripheral resistance(Rp), Aortic characteristic impedance (Z0), plotted as function of left ventricular enddiastolic pressure. All values of the 14 loops are presented.
4.3 The models
4.3.1 Linear model with fixed volume-intercept
When the linear model with fixed volume intercept is fitted to the sheep data as explained in
paragraph 3.2, the unknown parameters of the model are determined.(Table 4. 1) Simulating with
this model gives the PV-loops and isochrones as shown in Figure 4. 5. Pressure and volume are
shown in (Figure 4. 6) and can be compared to the sheep data (Figure 4. 7)
Table 4. 1: Values of the unknown parameters of the linear model with fixed volume intercept.
V0
Elastance
Value
-66
Figure 4. 4
Unit
ml
mmHg/ml
34
2
Elastance in mmHg/ml
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
time in s
Figure 4. 4: Elastance curve when linear model with fixed volume intercept is fitted to sheep data.
450
400
pressure in mmHg
350
300
250
200
150
100
50
0
-50
-100
-50
0
50
100
150
volume in ml
Figure 4. 5: PV-loops and isochrones generated with the linear model with fixed volume intercept. Isochrones
are plotted each 0.08s. Three loops are shown corresponding to filling pressures of 9.9, 5.6, 1.0 and –1.5
mmHg.
35
pressure in mmHg
Aortic and Ventricular Pressure
80
60
40
20
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.6
0.7
0.8
time in s
Ventricular volume
volume in ml
10
0
-10
-20
-30
0
0.1
0.2
0.3
0.4
0.5
time in s
Figure 4. 6 Aortic and ventricular pressure (top) and ventricular volume (bottom) as function of time generated with the linear model with fixed volume intercept at a filling pressure of 3.2 mmHg.
250
pressure in mmHg
200
150
100
50
0
-50
-100
-50
0
50
100
150
volume in ml
Figure 4. 7: PV-loops of the linear model with fixed volume intercept compared to the sheep PV-loops (dashed
lines).
36
E in mmHg/ml
4.3.2 Linear model with free volume intercept
After fitting the isochrones with the linear model with the time-dependent volume intercept the
following results for the elastance and the volume intercept (Figure 4. 8), the representative loops
and isochrones (Figure 4. 9), the hemodynamic consequences (Figure 4. 10) and the comparison
to the sheep loops (Figure 4. 11) are given.
4
3
2
1
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.5
0.6
0.7
0.8
time in s
V0 in ml
100
0
-100
-200
-300
0
0.1
0.2
0.3
0.4
time in s
Figure 4. 8: Elastance curve (top) and volume intercept (bottom) as a function of time when the linear model
with free volume intercept is fitted to the sheep data.
37
250
pressure in mmHg
200
150
100
50
0
-50
-100
-20
0
20
40
60
80
100
120
volume in ml
pressure in mmHg
Figure 4. 9: PV-loops and isochrones generated with the linear model with free volume intercept. Isochrones
are plotted each 0.08s. Three loops are shown corresponding to filling pressures of 9.9, 5.6, 1.0 and –1.5
mmHg
aortic and ventricular pressure
100
50
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.6
0.7
0.8
time in s
Ventricular volume
volume in ml
80
60
40
20
0
0.1
0.2
0.3
0.4
0.5
time in s
Figure 4. 10 Aortic and ventricular pressure (top) and ventricular volume (bottom) as function of time generated with the linear model with free volume intercept at a filling pressure of 3.2 mmHg.
38
140
pressure in mmHg
120
100
80
60
40
20
0
-20
10
20
30
40
50
60
70
80
90
100
110
volume in ml
Figure 4. 11: PV-loops of the linear model with free volume intercept compared to the sheep PV-loops (dashed
lines).
4.3.3 Non-linear model with isochrones from convex till concave: n-model
After fitting the model for all isochrones, the four unknown parameters of this model can be estimated.(Figure 4. 12). Then the loops and isochrones (Figure 4. 13) ,the pressure and ventricular
volume (Figure 4. 14) and the comparison to the sheep loops (Figure 4. 15) are given.
39
Pref
400
200
Vref
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
400
200
0
0
V0
200
0
-200
0
n
10
5
0
0
time in s
Figure 4. 12: the four parameters as function of time of the non-linear model with isochrones from convex till
concave when fitted to the sheep data.
200
pressure in mmHg
150
100
50
0
-50
20
30
40
50
60
70
80
90
100
volume in ml
Figure 4. 13: PV-loops and isochrones generated with the non-linear model with isochrones from convex till
concave. Isochrones are plotted each 0.08s. Three loops are shown corresponding to filling pressures of 9.9,
5.6, 1.0 and –1.5 mmHg
40
pressure in mmHg
aortic and ventricular pressure
100
50
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.6
0.7
0.8
time in s
ventricular volume
volume in ml
80
70
60
50
40
30
0
0.1
0.2
0.3
0.4
0.5
time in s
Figure 4. 14 Aortic and ventricular pressure (top) and ventricular volume (bottom) as function of time generated with the non-linear model with isochrones from convex till concave at a filling pressure of 3.2 mmHg.
160
140
pressure in mmHg
120
100
80
60
40
20
0
-20
10
20
30
40
50
60
70
80
90
100
volume in ml
Figure 4. 15: PV-loops of the non- linear model isochrones from convex till concave compared to the sheep
PV-loops (dashed lines).
41
Vhalf
Pmax
4.3.4 Non-linear model with sigmoidal isochrones
After fitting the model for all isochrones, the four unknown parameters can be estimated.(Figure
4. 16). Then the loops and isochrones (Figure 4. 17), the pressure and volume (Figure 4. 18) and
the comparison to the sheep loops (Figure 4. 19) are given.
1000
500
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
1000
500
0
0
alfa
40
20
0
0
Pmin
100
50
0
0
time in s
Figure 4. 16: The four parameters as function when time of the non-linear model with sigmoidal isochrones is
fitted to the sheep data.
42
120
pressure in mmHg
100
80
60
40
20
0
-20
0
10
20
30
40
50
60
70
80
90
100
volume in ml
pressure in mmHg
Figure 4. 17: PV-loops and isochrones generated with the non-linear model with sigmoidal isochrones. Isochrones are plotted each 0.08s. Three loops are shown corresponding to filling pressures of 9.9, 5.6, 1.0 and –1.5
mmHg
aortic and ventricular pressure
100
50
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.6
0.7
0.8
time in s
ventricular volume
volume in ml
80
60
40
20
0
0.1
0.2
0.3
0.4
0.5
time in s
Figure 4. 18 Aortic and ventricular pressure (top) and ventricular volume (bottom) as function of time generated with the non-linear model with sigmoidal isochrones at a filling pressure of 3.2 mmHg.
43
100
pressure in mmHg
80
60
40
20
0
-20
10
20
30
40
50
60
70
80
90
100
volume in ml
Figure 4. 19: PV-loops of the non- linear model with sigmoidal isochrones compared to the sheep PV-loops
(dashed lines).
4.4 Comparison of the models
4.4.1 Comparing the models by plotting them in one figure.
To make a comparison between the models, the loops of the sheep and of a model are plotted in a
combined figure. (Figure 4. 20)
44
pressure in mmHg
pressure in mmHg
pressure in mmHg
400
200
0
-200
20
40
60
80
100
volume in ml
120
140
-20
0
20
40
volume in ml
60
80
100
50
0
-50
-40
100
50
0
-50
-80
-60
-40
-20
0
volume in ml
20
40
60
Figure 4. 20: All simulated loops with venous pressure: 9.9 (top), 3.2 (middle) and 1.5 (bottom) mmHg. Solid
thick: original sheep data. dashed: non-linear sigmoidal model. solid: non-linear n-model. Dashed-dotted:
Linear model with free volume intercept. Dotted: Linear model with fixed volume intercept.
45
pressure in mmHg
Also aorta and ventricular pressure are plot in one figure (Figure 4. 21)
aortic and ventricular pressure
100
80
60
40
20
0
-20
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.6
0.7
0.8
time in s
ventricular volume
volume in ml
80
60
40
20
0
-20
-40
0
0.1
0.2
0.3
0.4
0.5
time in s
Figure 4. 21: The aortic and ventricular pressure of all models in one Figure with a filling pressure of 3.2
mmHg. Solid thick: original sheep data. Dashed: non-linear sigmoidal model. Solid: non-linear n-model.
Dashed-dotted: Linear model with free volume intercept. Dotted: Linear model with fixed volume intercept.
4.4.2 Comparing the models by looking at the physiological variables
By looking at the range of the physiological variables (which means from the loop with the lowest venous pressure till the loop with the highest venous pressure) the models can be compared.
46
Table 4. 2: Ranges of Physiological data of experimental data (sheep) and the four models.
LVESP
LVEDP
SV
EF
ET
PF
Sheep
Linear_
fixedVd
Linear_
freeVd
70.0
-1.5
26.3
58
0.44
N/a
12.0
-1.5
1.0
2
0.46
1096
75.0
-1.5
26.7
58
0.38
618
94.6
9.9
54.8
67
0.47
207.1
9.9
104.6
82
0.48
1139
131.1
9.9
58.2
66
0.47
649
Non-linear_ Nonn
Linear_
sigmoidal
84.6 156.0 72.1 96.9
-1.5 9.9
-1.5 9.9
22.9 56.8 25.3 49.1
49 59
52
69
0.51 0.48 0.45 0.47
222 533
613 647
[mmHg]
[mmHg]
[ml]
[%]
[s]
[ml/s]
LVESP = left ventricle end-systolic pressure , LVEDP= left ventricle end-diastolic pressure , SV= Stroke
Volume, EF = Ejection Fraction, ET = Ejection time and PF = Peak Flow.
4.2.2 Comparing the models with the Akaike information criterion
For comparing the models with a statistical criterion, the Akaike Information Criterion (as explained in paragraph 2.6) is used. All the loops of the models are included in the calculation. Results are given in Table 4. 3 and Figure 4. 22
Table 4. 3: The Corrected AIC value for each model.
Model
Linear: fixed Vd
Linear: free Vd
Non-linear:n
Non-linear :sigmoidal
AICc •104
2.21
1.21
1.57
1.16
47
2.5
x 10
4
2
AICc
1.5
1
0.5
0
Linear
Linear free Vd
Non-linear n Non-linear sigmoid
Figure 4. 22: Bar-plot of the AICc values for each model.
We see that the linear model with the free volume intercept and the non-linear sigmoidal model
are the best, and that they are not much different in their behavior.
48
49
5 Conclusion
Simulating the instantaneous pressure-volume relationship of the left ventricle can be very useful.
It can predict how a (human) heart will react on pathological changes, by changing just one parameter in the model. It can thus, for example, give more insight in hypertension, hypertrophy
and heart failure.17
Description of the pumping characteristics of the heart can also assist in modelling the entire cardiovascular system. In this analysis one wishes to describe the system with a minimal number of
parameters and with maximal accuracy.
The elastance model from Suga et al.1 is well known for simulating the instantaneous pressurevolume relationship. This model assumes a time-varying relation of linear instantaneous pressure-volume relations (isochrones). In this model the isochrones are thus linear. There is a problem with this model, because, in reality, the isochrones are non-linear2. So the aim of the present
study was to develop models of the left ventricular pump which simulate non-linear instantaneous
pressure-volume relations with a minimal number of parameters. These descriptions are quantified and compared to measured data. After quantification of the differences between these models
and the real data a decision is made which model fits best to reality. We have investigated four
different models:
1. Linear model with fixed volume intercept (Suga’s elastance model):
P(t ) = E (t ) [V (t ) − V0 ]
2. Linear model with a free volume intercept which varies in time:
P(t ) = E (t ) [V (t ) − V0 (t )]
3. Non-linear model with isochrones from convex to concave
n (t )
⎛ V (t ) − V0 (t ) ⎞
⎟
P (t ) = Pref (t )⎜
⎜ V (t ) ⎟
ref
⎠
⎝
4. Non-linear model with sigmoidal isochrones:
α (t )
⎛ V (t ) ⎞
⎟
⎜
⎜ V (t ) ⎟
ref
⎠
+ Pmin (t )
P (t ) = Pmax (t ) ⎝
α (t )
⎛ V (t ) ⎞
⎟
1+ ⎜
⎜ V (t ) ⎟
⎝ ref ⎠
The arterial system is modelled with a three element windkessel model 10 and after the models are
fitted to sheep PV-loops, the models are implemented in an existing MATLAB model of the left
ventricle and the arterial system.
5.1 Comparing the models
When comparing the models in a qualitative sense we compared them in terms of pressures and
volumes as time functions and in terms of pressure-volume loops. The pressure-volume loops
give the best qualitative comparison because the differences are more obvious than the differ-
50
ences in the pressure and volume in time of the models. From this qualitative comparison we see
that the linear model with fixed volume intercept fits worst. This model is also not comparable
with reality because of the negative volume in the left ventricle at low filling pressures. This is
because of the negative volume intercept.
The non-linear model with isochrones from convex till concave fits much better to the sheep data
than the linear model with fixed volume intercept. The loops are closer to those of the sheep
loops, but with high venous pressure the ESP is too high and of all loops the ejection fraction is
too small. The linear model with time-dependent volume intercept and the non-linear model with
sigmoidal isochrones both fit best to the sheep data, because the accuracy of the fit show only
small differences.
The overall quantative comparison is performed on the basis of the Akaike information Criterion
(AIC). This criterion confirms what is qualitatively seen. The best model is the non-linear sigmoidal model, then the linear model with time dependent intercept is the best description of reality. The linear model with fixed volume intercept and the non-linear model with isochrones from
convex till concave are both not very suitable for simulating instantaneous pressure-volume relations.
To make a good decision between the linear model with time-varying volume-intercept and the
non-linear sigmoidal model all positive and negative points are presented in table Table 5. 1.
Table 5. 1: Comparison of the linear model with free volume intercept and the non-linear model with sigmoidal isochrones.
Fit loops
High venous pressure
Low venous pressure
Physiological range
ESPVR
EDPVR
SV
EF
ET
AICc
Negative volume intercept
Easiness of using model
Non-linear model with sigmoidal isochrones
Linear model with free volume intercept
+
C
C
+
C
C
+
+
----
C
+
+
C
++++
C = comparable, which means no differences. + = a small advantage and - = a disadvantage
On the base of this analysis, the non-linear model with sigmoidal isochrones is slighly better than
the linear model with time-varying model. However this small advantage of the non-linear model
with sigmoidal isochrones requires a much more complicated model with more parameters than
the linear model with free volume intercept.
When we compare the results of the models with the sheep data, we see that the sheep data differ
from all models in the isovolumetric contraction and relaxation phases. The isovolumetric contraction in the sheep data does not have a constant volume, while the models have. This is proba-
51
bly a limitation of the measurement technique, because in this phase of the cardiac cycle all
valves are closed, so the volume must stay constant and that is also how we modelled it.18
So overall we can conclude that the linear model with the time-varying volume intercept is in
practice an acceptable model, because it gives a good fit and is easy to use. There is however still
a disadvantage. The sheep data show that the isochrones have a sigmoidal shape, while linear
isochrones work almost as well. We can not explain this physiologically but we also see this in
other mammals, like the mouse and the human (Figure 5. 1 Figure 5. 2).
Figure 5. 1: PV-loops of an open-chest anesthetized mouse during caval vein occlusion. Isochronal ventricular
PV-couples are shown as black dots with an interval of 2.5 ms. The open circles represent the onset and end of
systole.9
52
90
80
pressure in mmHg
70
60
50
40
30
20
10
0
30
40
50
60
70
80
90
100
110
120
volume in ml
Figure 5. 2: 9 Differently loaded PV-loops of a human, obtained by vena cava occlusion. Isochrones are plotted with an interval of 0.04s (Data from Dr. P. Steendijk, LUMC Leiden, The Netherlands).
5.2 A Suggestion for future analysis
Simulating with sigmoidal isochrones gives a better discription, but due to the many degrees of
freedom in the current formulation of the model, its explanatory value is limited. Note that in all
models the time-dependency is implicitly defined by the time variation in parameters. It could
even be argued that the number of parameters should therefore be a factor as large as the number
of isochrones in one cycle times the number of isochrones (for each time-varying parameter). To
reduce the number of parameters in a natural way without loosing too much freedom, each parameter could be expressed as a Fourier series with a limited number of harmonics. For the linear
model with fixed Vd this has been done by Senzaki et al.19. This approach is suggested as a separate study (see appendix C Fitting with Fourier series).
5.3 Modelling the right ventricle
In this study the left ventricle is modelled, but the model can probably be easily translated to the
right ventricle. The reason for modelling the left heart and arterial system is that at present more
good data on the left ventricle are available than on the right ventricle. The description of the
right heart and pulmonary arterial system may especially be of importance in the study of pulmonary hypertension. Most of the patients with pulmonary hypertension eventually die because of
right ventricular failure.20 The mechanisms that lead to failure are still poorly understood. It is
suggested that the results of this study are now applied to the right heart and pulmonary circulation.
53
54
References
1. Suga H, Sagawa K, Shoukas AA. Load independence of the instantaneous pressure-volume
ratio of the canine left ventricle and effects of epinephrine and heart rate on the ratio. Circ
Res. 1973;32:314-322.
2. Burkhoff D, Sugiura S, Yue DT, Sagawa K. Contractility-Dependent Curvilinearity of EndSystolic Pressure-Volume Relations. American Journal of Physiology. 1987;252:H1218H1227.
3. Westerhof N, Elzinga G, Sipkema P. Artificial Arterial System for Pumping Hearts. Journal
of Applied Physiology. 1971;31:776-&.
4. Guyton AC, Hall JE. Textbook of medical physiology. 1996. Saunders Company, Pennsylvania.
5. Klabunde RE. Cardiovascular Physiology concepts. 2005. Lippincott, Williams&Wilkins,
Baltimore.
6. Berne RM, Levy MN. Cardiovascular Physiology. 2001. Mosby, St. Louis.
7. Sagawa K, Maughan WL, Suga H, Sunagawa K. Cardiac Contraction and the PressureVolume Relationship. 1988. Oxford University Press, New York.
8. Kass DA, Beyar R, Lankford E, Heard M, Maughan WL, Sagawa K. Influence of Contractile State on Curvilinearity of Insitu End-Systolic Pressure-Volume Relations. Circulation.
1989;79:167-178.
9. Claessens, T. E., Georgakopoulos, D., Fanasyeva, M., Miller, H. D., Stergiopulos, N.,
Westerhof, N., Verdonck, P. R., and Segers, P. Non-linear isochrones in murine left ventricular pressure-volume loops: How well does the time varying elastance concept hold?
2005.
10. Westerhof.N, Elzinga G, Sipkema P. Artificial Arterial System for Pumping Hearts. Journal
of Applied Physiology. 1971;31:776-&.
11. Stergiopulos N, Meister JJ, Westerhof N. Determinants of stroke volume and systolic and
diastolic aortic. American Journal of Physiology-Heart and Circulatory Physiology.
1996;39:H2050-H2059.
12. Westerhof N, Stergiopulos N, Noble M. Snapshots of Hemodynamics. 2005. United States
of America.
13. Westerhof N, Strackee J. Arterial hemodynamics. In: The Physics of heart and circulation.
2005.
55
14. Lankhaar, J. W. Modelling the pulmonary circulation:simulation and parameter estimation.
Masters Thesis 2002.
15. least square method. 2005. http://www.efunda.com/math/leastsquares/leastsquares.cfm
16. Motulsky H, Christopoulos A. Fitting models to biological data using linear and nonlinear
regression. 2005. GraphPad Prism, San Diego.
17. Segers P, Stergiopulos N, Schreuder JJ, Westerhof BE, Westerhof N. Left ventricular wall
stress normalization in chronic pressure-overloaded heart: a mathematical model study.
American Journal of Physiology-Heart and Circulatory Physiology. 2000;279:H1120H1127.
18. Baan J, Koops J, Vandervelde ET, Temmerman D, Buis B. Dynamic Absolute LeftVentricular Volume Measured with Conductance Catheter. Circulation. 1981;64:177.
19. Senzaki H, Chen CH, Kass DA. Single-beat estimation of end-systolic pressure-volume
relation in humans. A new method with the potential for noninvasive application. Circulation. 1996;94:2497-2506.
20. D'Alonzo GE, Barst RJ, Ayres SM, Bergofsky EH, Brundage BH, Detre KM, Fishman AP,
Goldring RM, Groves BM, Kernis JT, . Survival in patients with primary pulmonary hypertension. Results from a national prospective registry. Ann Intern Med. 1991;115:343-349.
56
57
Appendix
A MATLAB Source Code
This appendix gives the most important files that are used during this project. The files are listed
in a top-down-order. The first file listed, is the main file that calls other files. Fitting and modelling the different models can have a different main-file, but calling the same files. When such a
file is already shown (but only with a few parameters changed), it will not be shown again.
Functionality of all files is explained by comments.
The implementation of the simulation is a continuation of the work of Lankhaar.14
A.1 Fitting the models
A.1.1 Linear model with fixed volume intercept.
function E = elastance
%Elastance makes a linear fit of the isochrones and gives the elastance.
% E = ELASTANCE gives the elastance of the PVloops from the sheepdata.
% 01/02/2005, F.A.Rövekamp
%Get the Sheep Data
[V,P] = Get_Data_Sheep;
%constants
nIsochrones = 180;
Vd = -66;
%Solve the lineair equation per isochrone
for i=1:10:nIsochrones
viso = V(i,:);
piso = P(i,:);
viso = [Vd viso]';
piso = [0 piso]';
x(i) = viso\piso;
end
plot(x)
A.1.2 The Linear model with free volume intercept.
function x = elastance_frVd
% elastance_frVd plot the Elastance and Vd which are determind when the
% linear model is fitted to each isochrone of the sheep loops.
58
% 01/02/2005, F.A.Rövekamp
% Get data sheep
[V,P] = Get_Data_Sheep;
nIsochrones = 180;
nLoops = 14;
Vrange =[-70:100];
viso2 = zeros(nLoops,1)+1;
for i=1:nIsochrones
viso1 = V(i,:)';
piso = P(i,:)';
viso = [viso1 viso2];
x = viso\piso;
E(i) = x(1);
Vd(i) = -(x(2)/x(1));
end
plot(E)
figure
plot(Vd)
A.1.3 Non-Linear model with isochrones from convex till concave
function x = plot_iso
%plot_iso fits the nonlineair n model to each isochrone from the
%sheep model.
% X = plot_iso gives in x the four parameters (Pmax, Vref, Vd and n(t)) of
% the nonlinear model, when fitted to each isochrone of the sheep and plots
% these isochrones and the fitted PV-loops.
%10-06-2005, F.A.Rövekamp
%Get sheep data
[V,P] = Get_Data_Sheep;
%Get the fitted loops and plot nloops of them
[Vfit_loop,Pfit_loop] = collectpv;
nloops = [1:4:14];
plot(Vfit_loop(:,nloops),Pfit_loop(:,nloops))
hold on
% Solve the least square problem for every isochrone.
for i = 1:20:length(V(:,1))
curV = V(i,:);
curP = P(i,:);
x(i,:) = test(curP,curV);
disp(i)
% Variables
59
Viso = [20:100];
are plotted
nIsochrones = size(V,1);
Ti = 0.72;
ts = 0.004;
t = [0:nIsochrones-1]*ts;
Pmax = x(i,1);
Vmax = x(i,2);
Vd = x(i,3);
n = x(i,4);
% range of over which the isochrones
% number of isochrones
% Heart period
% sample time
Piso = Pmax*(((Viso-Vd)/Vmax).^n);
plot(Viso,Piso,':')
% plot the isochrone
hold on
VcurIso = Vfit_loop(i,nloops);
PcurIso = Pfit_loop(i,nloops);
VcurIso_b = min(Vfit_loop(i,nloops)):max(Vfit_loop(i,nloops));
PcurIso_b = Pmax*(((VcurIso_b-Vd)/Vmax).^n);
plot(VcurIso_b,PcurIso_b,'Linewidth',2)
% plot the parts of the isochrones
on the loops bold
plot(VcurIso,PcurIso,'o')
% plot the time points from the
isochrones on each loop
hold on
end
function [V,P] = collectpv
% collectpv collects the Pressure and volume of each loop with its own
% windkessel parameters and puts them in one matrix
% [V,P] = COLLECTPV Gives a matrix V and a matrix P in wich each column
% represents the pressure/volume of one PVloop with its own end diastolic
% pressure and windkesselparameters( which must be already saved in the workspace) and saves it to collectedPV
%10-06-2005, F.A. Rövekamp
%
%
P
V
Make a matrix with all zeros with length of the number of isochrones and
the width, the number of loops
= zeros(181,14);
= P;
for i = 1:14
fname = sprintf('loop%d.mat',i);
S = load(fname,'P','V');
P(:,i) = S.P(:);
V(:,i) = S.V(:);
60
end
save('collectedPV','P','V');
function x = test(P,V)
%
%
%
%
test solves the least square fit of the nonlinear n model with the
sheep PVloops
X = TEST(P,V) gives in x the four parameters of the non linear model
(Pmax, Vref, Vd and N) when fitted to the sheep loops.
%13-05-2005, F.A.Rövekamp
%starting values of x
Pmax = 116;
Vmax = 185;
Vd = 11;
n = 1;
% set options
Options = optimset('MaxFunEvals',1E50,'MaxIter',1E50);
%define x
x0 = [Pmax Vmax Vd n];
%solving nonlinear lest square problem
[x,J] = lsqnonlin(@(x) ntest(x,P,V),x0,[],[],Options);
function J =
ntest(x,P,V)
% ntest defines the least square of the function you want to fit
% 11-05-2005, F.A. Rövekamp
% define x
Pmax = x(1);
Vmax = x(2);
Vd = x(3);
n = x(4);
% calculate least square
J = P - Pmax*(((V-Vd)/Vmax).^n);
A.1.4 Non-Linear model with sigmoidal isochrones
function x = est_sigm
%est_sigm fits the nonlineair sigmoide model to each isochrone from the
%sheep model.
% X = EST_SIGM gives in x the four parameters (Pmax, Vref, B and alfa) of
% the nonlinear model, for each isochrone fitted to the sheep isochrone.
%10-07-2005, F.A.Rövekamp
61
%load the sheep loops
[V,P] = Get_Data_Sheep;
%solve for each isochrone the least square fit
for i = 1:10:length(V(:,1))
curV = V(i,:);
curP = P(i,:);
x(i,:) = test(curP,curV);
disp(i)
end
A.2 The Akaike information criterion
function
sum_of_squares
%sum_of_squares gives the sum of squares, the AIC and the AICc of the model
and the sheep data
%14-06-2005, F.A.Rövekamp
%get the P and V from the model
[Vm,Pm] = collectpv;
%Get the P and V from the sheep data
[Vs,Ps] = Get_Data_Sheep;
Vm = real(Vm);
Pm = real(Pm);
%Calculate the horizontal and vertical distance
hor_dist = Vm-Vs;
vert_dist = Pm-Ps;
hor_dist = hor_dist(:);
vert_dist = vert_dist(:);
%Calculate sum of squares
for i = 1:(length(Vm)*14)
SS(i) = (hor_dist(i)^2+vert_dist(i)^2);
end
SS = sum(SS);
N = 180*14;
K = (180*4)+1;
AIC = N*log(SS/N)+2*K
AICC = AIC+((2*K*(K+1))/(N-K-1))
62
A.3 The Simulations
A.3.1 The linear model with fixed volume intercept.
function [P,V,P_ao,F_ao] = main
%
%
%
%
%
%
%
%
%
%
Simulates heart and circulation by a three-element
windkessel model for the arterial system and an elastance curve
which is generated from sheep PV-loops.
Reference:
[1] Segers, P et al. (2000). Quantification of the contribution
of cardiac and arterial remodeling to hypertension.
Hypertension 36:760-765.
November 2004, F.A.Rövekamp
% Main procedure: call other files
% System parameters
WkPars.Pv = [];
WkPars.Rv = 0.02;
WkPars.Emin = 0.047;
WkPars.Emax = 1.5;
WkPars.Vd = -66;
WkPars.Ti = 0.72;
WkPars.Z0 = 0.1119;
WkPars.Ca = 2.1950;
WkPars.Rp = 1.5991;
WkPars.Va0 = 50;
WkPars.P0 = 80;
% Venous pressure
% Venous resistance [2]
% Elastance offset
% Maximum elastance
% Intercept of pV-relation
% Interbeat period
% Arterial impedance
% Arterial compliance
% Peripheral resistance
% Aortic rest volume
% Peripheral rest pressure
% Initial conditions (t = 0 in E corresponds with R-wave of ECG [1])
WkInit = zeros(2,1);
WkInit(1) = 104.9;
% Vrv(0) (optimized for current
% parameters
WkInit(2) = 5;
% Pp(0) (optimized for current
parameters
%
% Duration of simulation
Tstart = 0;
% Start of simulation
ts = 0.004;
% Time step
Tend = 12*WkPars.Ti;
% End of simulation
WkPars.TSpan = [Tstart:ts:Tend];
% Time vector
WkPars.ts = ts;
% Plot Parameters
PlotT1 = Tend-2.3*WkPars.Ti;
%Start Time Plot
63
PlotT2 = Tend;
%End time plot
WkPars.Tend = Tend;
% loop to run simulation for different Pv
PvStart = -1.0;
PvEnd = 9.0;
PvStep = 1;
%Pv_arr = [PvStart:PvStep:PvEnd];
Pv_arr = -1.1295;
t = WkPars.TSpan;
Ti = WkPars.Ti;
PlotTimeIndex = find(t>=PlotT2-Ti & t<=PlotT2);
P = zeros(length(Pv_arr),length(PlotTimeIndex));
V = zeros(length(Pv_arr),length(PlotTimeIndex));
P_ao = zeros(length(Pv_arr),length(PlotTimeIndex));
F_ao = zeros(length(Pv_arr),length(PlotTimeIndex));
for j=1:length(Pv_arr)
WkPars.Pv=Pv_arr(j);
[Prv,Vrv,Pa,Fi,Va,E] = simul(WkPars,WkInit);
simulation
% Run
P(j,:) = Prv(PlotTimeIndex);
V(j,:) = Vrv(PlotTimeIndex);
P_ao(j,:) = Pa(PlotTimeIndex);
F_ao(j,:) = Fi(PlotTimeIndex);
% Plot PV-loop
% Time index of beat to plot
plotcol(Vrv(PlotTimeIndex),Prv(PlotTimeIndex),Phase(PlotTimeIndex))
plot(Vrv(PlotTimeIndex),Prv(PlotTimeIndex))
title('Left ventricle: pV-relation')
xlabel('Vrv')
ylabel('Prv')
hold on
%
TimeIndexLastBeat = find(t > Tend-Ti & t <= Tend);
relTimes = [0.1:0.1:0.6];
iIso = TimeIndexLastBeat(round(length(TimeIndexLastBeat)*relTimes));
isoV =Vrv(iIso);
isoP =Prv(iIso);
plot(isoV,isoP,'ks')
drawnow
%%isoV(j)=isoVrv;
%%isoP(j)=isoPrv;
%%plot(isoVrv,isoPrv,'ks')
end
%plot isochroon
64
%isoV=isoV';
%isoP=isoP';
%plot(isoV,isoP)
[LVESP,LVESV] = parametersl(t,WkPars,Tend,Vrv,Prv,Fi)
paramets and shows them in a dialog box
hold on
plot(LVESV,LVESP,'r+')
%calaculates
plotsstationair
%plots results
fname = input('filename: ','s');
save(fname)
function [Prv,Vrv,Pa,Fi,Va,E] = simul(WkPars,WkInit)
% Runs simulation and calculates remaining quantities in
% model of left ventricle.
% December 2004, F.A.Rövekamp
% Assign WkPars fields to parameters
[V,P] = Get_Data_Sheep;
dummy = struct2cell(WkPars);
[Pv,Rv,Emin,Emax,Vd,Ti,Z0,Ca,Rp,alpha1,alpha2,n1,n2,Va0,P0,TSpan,Tend,ts
] = deal(dummy10);
% Set integration options
options = odeset('OutputSel',[12],'MaxStep',Ti/10,'outputFcn','odeplot');
% Solve differential equations for windkessel (simulation)
[t,Wk] = ode15s(@ode_wk3,TSpan,WkInit,options,WkPars,V,P);
%
close (1)
%close figure
% Initialise remaining quantities
Vrv = Wk(:,1);
%isoVrv=Vrv(845);
Pp = Wk(:,2);
Vrv0 = WkInit(1);
Pp0 = WkInit(2);
TimeIndexLastBeat = find(t > Tend-Ti & t <= Tend);
% Calculate E and Prv
for i = 1:length(t)
E(i) = elastance(V,P,t(i),Ti);
% E(i) = elast_senz(t(i),Emin,Emax,Ti);
Prv(i) = E(i)*(Vrv(i)-Vd);
Right ventricular pressure
% Elastance
%
65
end
%isoPrv=Prv(845);
% Calculate remaining quantities
Va = Ca*(Pp-Pp0)+Va0;
for i = 1:length(t)
if Pv >= Prv(i) & Prv(i) < Pp(i)
Phase(i) = 'd';
Pra(i) = Prv(i);
Pa(i) = Pp(i);
Fra(i) = (Pv-Prv(i))/Rv;
Fi(i) = 0;
elseif Pv < Prv(i) & Prv(i) >= Pp(i)
Phase(i) = 's';
Pra(i) = Pv;
Pa(i) = Prv(i);
Fra(i) = 0;
Fi(i) = (Prv(i)-Pp(i))/Z0;
elseif Pv < Prv(i) & Prv(i) < Pp(i)
contr/relax
Phase(i) = 'i';
Pra(i) = Pv;
Pa(i) = Pp(i);
Fra(i) = 0;
Fi(i) = 0;
end
end
Fo = Pp./Rp;
Frv = (Fra-Fi)';
Fca = Fi'-Fo;
% Diastole
% Systole
% Isovolum
% Compute stroke volume (of last beat)
SV = ts*trapz(Fi(TimeIndexLastBeat));
volume
% Stroke
function dWk=ode_wk3(t,Wk,WkPars,V,P)
% ODE-file with hemodynamic equations of right ventricle and
% pulmonary circulation for numerical solver. Returns the right ODE
% in dWk at time t.
%
%December 2004, F.A.Rövekamp
% Assign WkPars fields to parameters
dummy = struct2cell(WkPars);
[Pv,Rv,Emin,Emax,Vd,Ti,Z0,Ca,Rp,alpha1,alpha2,n1,n2,Va0,P0,TSpan,Tend,ts
] = deal(dummy10);
% Initialization
dWk = zeros(2,1);
Vrv = Wk(1);
Pp = Wk(2);
% New states of the system
% Right ventricular volume
% Aortic volume
% Current values of E and Prv
E = elastance(V,P,t,Ti);
66
Prv = E*(Vrv-Vd);
% Right ventricular pressure
% Conditional structure: returns right ODE for current state
% of the system
if Pv > Prv & Prv < Pp
dWk(1) = (Pv-Prv)/Rv;
dWk(2) = -Pp/(Rp*Ca);
elseif Pv < Prv & Prv > Pp
dWk(1) = -(Prv-Pp)/Z0;
dWk(2) = ((Prv-Pp)/Z0-Pp/Rp)/Ca;
elseif Pv < Prv & Prv < Pp
contr/relax
dWk(1) = 0;
dVrv/dt
dWk(2) = -Pp/(Rp*Ca);
else
disp('Unlikely state of windkessel')
end
% Diastole
% dVrv/dt
% dPp/dt
% Systole
% dVrv/dt
% dPp/dt
% Isovolumetric
%
% dPp/dt
function E = elastance(V,P,t,Ti)
% elastance returns the elastance fitted to the sheep data at
% given time.
% June, 2005, F.A.Rövekamp
nIsochrones = 180;
Vd = -66;
for i=1:nIsochrones
viso = V(i,:);
piso = P(i,:);
viso = [Vd viso]';
piso = [0 piso]';
x(i) = viso\piso;
end
t = rem(t,Ti);
t_test = [0:0.004:0.716];
if t == 0
index = 1;
else
[current_t,index] = min(abs((t_test./t)-1));
end
E = x(index);
A.3.2 Linear model with free volume intercept.
67
The main file is exactly the same as from the linear model with fixed volume intercept.
Also simul, and ODE_wk3 is the same, only then instead of calling E = elastance(V,P,t,Ti), this
program calls [Vd(i),E(i)] = free_intercept(V,P,t(i),Ti);
function [Vd,E] = free_intercept(V,P,t,Ti)
% FREE_INTERCEPT determines the volume intercept and the elastance for a given
time
% Vd = free_intercept(V,P,t,Ti) gives for a given PV-loop the values for
% the free volume intercept and the elastance per isochrone.
% 06-06-2005, F.A.Rövekamp
%variables
nIsochrones = 180;
nLoops = 14;
viso2 = zeros(nLoops,1)+1;
%number of isochroner per loop
%number of loops
%column of ones, with length viso, %which
must be used for solving the %lineair
equation
%solving lineair equation
for i=1:nIsochrones
viso1 = V(i,:)';
piso = P(i,:)';
viso = [viso1 viso2];
x = viso\piso;
E(i) = x(1);
Vd(i) = -(x(2)/x(1));
end
%giving the right value of E and V for the given time.
t = rem(t,Ti);
t_test = [0:0.004:0.716];
if t == 0
index = 1;
else
[current_t,index] = min(abs((t_test./t)-1));
end
Vd = Vd(index);
E = E(index);
A.3.3 A non-linear model with isochrones from convex till concave.
function [P,V,P_ao,F_ao] = mainnl
%
%
%
%
Simulates heart and pulmonary circulation by a three-element
windkessel model for the arterial system and the non-linear
model with isochrones from convex till concave
Main procedure: call other files
68
% System parameters
WkPars.Pv = [];
WkPars.Rv = 0.02;
WkPars.Ti = 0.72
WkPars.Z0 = 0.11;
WkPars.Ca = 2.5985;
WkPars.Rp = 1.3570;
% Venous pressure
% Venous resistance [2]
% Interbeat period
% Arterial impedance
% Arterial compliance
% Peripheral resistance
WkPars.Va0 = 50;
WkPars.P0 = 80;
% Aortic rest volume
% Peripheral rest
% pressure
% Initial conditions (t = 0 in E corresponds with R-wave of ECG [1])
WkInit = zeros(2,1);
WkInit(1) = 104.9;
% Vrv(0)
WkInit(2) = 5;
% Pp(0)
% Duration of simulation
Ti = WkPars.Ti;
Tstart = 0;
% Start of simulation
ts = 0.004;
% Time step
Tend = 12*Ti;
% End of simulation
WkPars.TSpan = [Tstart:ts:Tend];
% Time vector
WkPars.ts = ts;
% Plot Parameters
PlotT1 = Tend-2.3*WkPars.Ti;
PlotT2 = Tend;
%Start Time Plot
%End time plot
WkPars.Tend = Tend;
% loop to run simulation for different Pv
PvStart = 1;
PvEnd = 8.0;
PvStep = 1;
%Pv_arr = [PvStart:PvStep:PvEnd];
Pv_arr = [9.9 9.7 8.4 7.3 5.6 4.1 3.2 2.0 1.0 0.6 -0.3];
Pv_arr = 3.2417
t = WkPars.TSpan;
Ti = WkPars.Ti;
PlotTimeIndex = find(t>=PlotT2-Ti & t<=PlotT2);
P = zeros(length(Pv_arr),length(PlotTimeIndex));
V = zeros(length(Pv_arr),length(PlotTimeIndex));
P_ao = zeros(length(Pv_arr),length(PlotTimeIndex));
F_ao = zeros(length(Pv_arr),length(PlotTimeIndex));
for j=1:length(Pv_arr)
69
WkPars.Pv=Pv_arr(j);
[Prv,Vrv,Pa,Fi,Va,E] = simulnl(WkPars,WkInit);
simulation
% Run
P(j,:) = Prv(PlotTimeIndex);
V(j,:) = Vrv(PlotTimeIndex);
P_ao(j,:) = Pa(PlotTimeIndex);
F_ao(j,:) = Fi(PlotTimeIndex);
% Plot PV-loop
% Time index of beat to plot
plotcol(Vrv(PlotTimeIndex),Prv(PlotTimeIndex),Phase(PlotTimeIndex))
plot(Vrv(PlotTimeIndex),Prv(PlotTimeIndex),'r')
hold on
%plot(Vrv(PlotTimeIndex(1)),Prv(PlotTimeIndex(1)),'*k')
%plot(Vrv(PlotTimeIndex(2:5:end)),Prv(PlotTimeIndex(2:5:end)),'ok')
title('Left ventricle: pV-relation')
%axis([30 180 0 120])
xlabel('Vrv')
ylabel('Prv')
hold on
%
TimeIndexLastBeat = find(t > Tend-Ti & t <= Tend);
relTimes = [0.1:0.1:0.6];
iIso = TimeIndexLastBeat(round(length(TimeIndexLastBeat)*relTimes));
isoV =Vrv(iIso);
isoP =Prv(iIso);
%plot(isoV,isoP,'ks')
drawnow
end
%plot isochroon
%isoV=isoV';
%isoP=isoP';
%plot(isoV,isoP)
[LVESP,LVESV] = parametersnl(t,WkPars,Tend,Vrv,Prv,Fi)
culates paramets and shows them in a dialog box
hold on
plot(LVESV,LVESP,'r+')
%cala-
plotsstationair
%plots results
fname = input('filename: ','s');
save(fname)
function [Prv,Vrv,Pa,Fi,Va,E] = simulnl(WkPars,WkInit)
% Runs simulation and calculates remaining quantities in
% model of left ventricle.
70
% December 2004, F.A.Rövekamp
% Assign WkPars fields to parameters
%dummy = struct2cell(WkPars);
%[Pv,Rv,Emin,Emax,Vd,Ti,Z0,Ca,Rp,alpha1,alpha2,n1,n2,Va0,P0,Pmax,Vmax,TS
pan,Tend,ts] = deal(dummy10);
Pv = WkPars.Pv;
Rv = WkPars.Rv;
Ca = WkPars.Ca;
Rp = WkPars.Rp;
Z0 = WkPars.Z0;
TSpan = WkPars.TSpan;
Tend = WkPars.Tend;
P0 = WkPars.P0;
Va0 = WkPars.Va0;
Ti = WkPars.Ti;
ts = WkPars.ts;
% Set integration options
options = odeset('OutputSel',[12],'MaxStep',Ti/10,'outputFcn','odeplot');
% Solve differential equations for windkessel (simulation)
[t,Wk] = ode15s(@ode_wk3nl,TSpan,WkInit,options,WkPars);
%
close (1)
%close figure
% Initialise remaining quantities
TimeIndexLastBeat = find(t > Tend-Ti & t <= Tend);
Vrv = Wk(:,1);
Pp = Wk(:,2);
Vrv0 = WkInit(1);
Pp0 = WkInit(2);
% Calculate E and Prv
for i = 1:length(t)
[Pmax(i),Vmax(i),Vd(i),n(i)] =
parameters_sigm(t(i),Ti);
Prv(i) = Pmax(i)*(((Vrv(i)-Vd(i))/Vmax(i))^n(i));
Right ventricular pressure
end
E = [];
% Calculate remaining quantities
71
Va = Ca*(Pp-Pp0)+Va0;
for i = 1:length(t)
if Pv >= Prv(i) & Prv(i) < Pp(i)
Phase(i) = 'd';
Pra(i) = Prv(i);
Pa(i) = Pp(i);
Fra(i) = (Pv-Prv(i))/Rv;
Fi(i) = 0;
elseif Pv < Prv(i) & Prv(i) >= Pp(i)
Phase(i) = 's';
Pra(i) = Pv;
Pa(i) = Prv(i);
Fra(i) = 0;
Fi(i) = (Prv(i)-Pp(i))/Z0;
elseif Pv < Prv(i) & Prv(i) < Pp(i)
contr/relax
Phase(i) = 'i';
Pra(i) = Pv;
Pa(i) = Pp(i);
Fra(i) = 0;
Fi(i) = 0;
end
end
Fo = Pp./Rp;
Frv = (Fra-Fi)';
Fca = Fi'-Fo;
% Compute stroke volume (of last beat)
SV = ts*trapz(Fi(TimeIndexLastBeat));
volume
% Diastole
% Systole
% Isovolum
% Stroke
function dWk=ode_wk3nl(t,Wk,WkPars)
%
%
%
%
%
%
ODE-file with hemodynamic equations of right ventricle and
pulmonary circulation for numerical solver. Returns the right ODE
in dWk at time t.
December 2004, F.A.Rövekamp
Assign WkPars fields to parameters
Pv = WkPars.Pv;
Rv = WkPars.Rv;
Ti = WkPars.Ti;
Z0 = WkPars.Z0;
Ca = WkPars.Ca;
Rp = WkPars.Rp;
Va0 = WkPars.Va0;
P0 = WkPars.P0;
TSpan = WkPars.TSpan;
Tend = WkPars.Tend;
ts = WkPars.ts;
% Initialization
dWk = zeros(2,1);
% New states of the system
72
Vrv = Wk(1);
% Right ventricular volume
Pp = Wk(2);
% Aortic volume
%load estimation of parameters
[Pmax,Vref,alfa,B] =
parameters_sigm(t,Ti);
% Current values of E and Prv
Prv = Pmax*(((Vrv-Vd)/Vmax)^n);
;% Right ventricular pressure
% Conditional structure: returns right ODE for current state
% of the system
if Pv > Prv & Prv < Pp
dWk(1) = (Pv-Prv)/Rv;
dWk(2) = -Pp/(Rp*Ca);
elseif Pv < Prv & Prv > Pp
dWk(1) = -(Prv-Pp)/Z0;
dWk(2) = ((Prv-Pp)/Z0-Pp/Rp)/Ca;
elseif Pv < Prv & Prv < Pp
contr/relax
dWk(1) = 0;
dVrv/dt
dWk(2) = -Pp/(Rp*Ca);
else
disp('Unlikely state of windkessel')
end
function [Pmax,Vmax,Vd,n] =
% Diastole
% dVrv/dt
% dPp/dt
% Systole
% dVrv/dt
% dPp/dt
% Isovolumetric
%
% dPp/dt
parameters_sigm(t,T)
%parameters_sigm returns the parameters of Pmax,Vref, Vd and n for the
%current time
%F.A.Rövekamp,11-07-2005
t = rem(t,T);
t_test = [0:0.004:0.716];
if t == 0
index = 1;
else
[current_t,index] = min(abs((t_test./t)-1));
end
x = [...
75.84 224.81
49.588
1.2654
112.04
188.99
26.603
2.2636
29.783
271.29
-150.81
8.5186
13.594
287.64
-195.39
7.7091
15.997
288.37
-197.39
5.9277
20.412
280.67
-188.23
4.5944
25.588
272.19
-178.88
3.635
73
29.285
271.77
-183.98
3.0787
37.538
260.24
-166.09
2.376
43.522
257.04
-164.44
1.9545
52.975
248.02
-146.72
1.4927
62.298
238.7 -128.09
1.1303
79.355
221.69
-60.785
0.60845
84.667
216.35
8.9782
0.21524
86.035
214.97
22.274
0.13402
90.06 210.94
22.241
0.12405
93.487
207.52
22.213
0.11924
96.308
204.69
21.522
0.11914
98.637
202.37
20.854
0.12124
99.875
201.13
22.404
0.11631
101.32
199.69
21.637
0.12166
101.75
199.26
22.445
0.12021
102.21
198.79
21.746
0.12429
102.13
198.88
21.555
0.12473
102.07
198.94
21.455
0.12544
102.48
198.53
19.745
0.13241
102.76
198.24
18.949
0.13571
103.36
197.64
17.265
0.1426
103.71
197.3 16.367
0.14562
103.92
197.09
16.223
0.14533
104.55
196.46
14.417
0.152
104.74
196.27
14.344
0.15066
105.43
195.57
12.852
0.15648
105.95
195.06
12.146
0.15853
106.35
194.66
11.924
0.15833
106.95
194.04
10.746
0.16191
107.25
193.75
10.655
0.16017
107.57
193.43
10.21 0.15977
107.82
193.18
10.17 0.15789
107.77
193.23
11.15 0.151
108.46
192.54
10.245
0.15422
108.85
192.14
10.212
0.15295
109.41
191.59
9.4059
0.15542
109.69
191.31
9.2308
0.15459
109.98
191.03
9.432 0.1532
110.96
190.04
8.0774
0.16088
111.91
189.1 7.3517
0.1665
113.06
187.94
6.1408
0.17489
113.89
187.11
5.6948
0.17896
114.43
186.57
6.2284
0.17768
115.62
185.38
5.0638
0.18629
116.31
184.69
5.0498
0.18773
117.39
183.6 4.2734
0.19422
117.71
183.29
4.6861
0.19165
118
183
5.6133
0.18682
118.7 182.3 5.2446
0.18924
119.01
181.98
5.739 0.1862
119.74
181.25
5.4263
0.18859
119.84
181.14
5.8793
0.18476
120.17
180.82
6.3713
0.18205
121.18
179.8 5.6745
0.18766
121.9 179.08
5.4694
0.18987
122.89
178.11
4.9613
0.19468
123.25
177.75
4.9648
0.19443
74
123.42
177.57
5.6591
0.19031
124.38
176.62
5.1507
0.19556
124.95
176.05
5.4807
0.19523
125.95
175.04
5.3119
0.19939
126.2 174.8 5.7683
0.19707
126.6 174.4 6.64 0.1939
128.12
172.88
6.5094
0.20088
130
171
6.7846
0.20787
132.04
168.84
6.9107
0.21649
134.66
166.31
7.0737
0.22816
137.27
163.73
7.8021
0.23647
142.31
158.76
7.501 0.26287
147.94
153.14
7.7784
0.28871
155.93
145.19
7.5107
0.33163
164.77
136.14
7.3776
0.38135
174.58
126.37
7.5196
0.43694
185.33
115.62
7.028 0.51352
196.31
104.67
6.8771
0.59774
206.59
94.412
6.3758
0.70115
215.69
85.276
5.8662
0.8204
223.01
77.962
6.0352
0.92416
230.15
70.833
4.4945
1.1293
235.56
65.227
3.528 1.3406
239.52
61.314
1.016 1.6912
241.41
59.213
-0.75817
2.0198
243.71
56.816
-1.1219
2.2928
241.41
57.271
-4.4851
2.8479
244.09
56.483
-5.4001
3.2472
242.42
57.208
-7.4823
3.7805
243.5 55.003
-4.4721
3.6378
241.46
50.155
3.47 2.8191
244.67
49.488
8.6411
2.2705
243.69
51.465
13.882
1.718
242.21
54.219
14.671
1.6636
238.84
58.284
15.418
1.5879
235.91
62.679
15.891
1.5337
234.78
65.508
16.157
1.5422
166.84
131.2 17.872
0.87711
227.55
70.667
18.539
1.4004
122.01
178.97
17.822
0.76144
121.87
179.13
18.472
0.79271
121.52
179.48
18.957
0.83092
124.09
176.9 19.951
0.86819
124.18
176.81
20.867
0.89682
122.63
178.37
21.889
0.91595
122.31
178.69
22.896
0.93676
113.09
187.92
23.809
0.92958
112.92
188.1 24.95 0.94843
112.61
188.41
26.012
0.96831
113
188.03
27.192
0.98925
112.96
188.05
28.537
0.99948
117.73
182.96
29.849
1.0311
116.48
184.01
30.998
1.0413
115.85
184.45
32.132
1.0545
114.54
185.45
33.262
1.0656
99.265
201.47
33.952
1.0348
97.839
202.61
35.223
1.0452
75
96.725
203.64
36.361
1.0517
96.076
203.98
37.62 1.0622
106.41
192.19
39.181
1.1046
104.47
193.66
40.451
1.1135
105.25
191.92
41.833
1.1326
108.75
186.75
43.183
1.1563
99.523
196.54
44.188
1.1392
104.3 190.33
45.758
1.1663
92.486
202.98
46.69 1.1403
73.295
224.55
47.12 1.0839
70.945
226.56
47.903
1.0833
68.473
228.99
48.613
1.0828
64.76 233.09
49.015
1.0769
62.219
235.84
49.553
1.0744
61.165
236.59
50.213
1.0755
59.542
238.37
50.846
1.073
58.04 240.18
51.205
1.069
55.734
243.16
51.298
1.0607
53.534
245.95
51.259
1.0528
56.618
242.3 51.905
1.0715
54.611
244.3 52.272
1.0565
56.948
241.06
53.105
1.067
57.46 240.2 53.789
1.0697
55.592
242.44
54.041
1.0651
55.177
242.93
54.472
1.0638
54.326
243.99
54.508
1.0617
54.086
244.2 54.878
1.0617
53.492
244.82
55.051
1.0612
53.119
245.27
55.365
1.0611
55.331
242.09
56.136
1.0712
56.009
241.01
56.633
1.0749
56.865
239.61
57.127
1.0787
56.881
239.6 57.323
1.0783
55.493
241.47
57.362
1.0735
56.739
239.75
57.73 1.0778
56.795
239.62
57.932
1.0784
59.197
236.14
58.336
1.0869
59.151
236.17
58.466
1.0864
59.543
235.59
58.521
1.0875
61.146
233.59
58.609
1.0912
62.08 232.11
58.56 1.0955
63.47 229.97
58.473
1.1019
62.776
231
58.121
1.1006
62.447
231.71
57.764
1.0996
63.187
230.97
57.674
1.1015
62.023
232.79
57.089
1.0984
63.201
231.4 57.039
1.1027
62.505
233.94
56.259
1.1026
65.179
231.08
56.349
1.1164
67.15 229.7 56.45 1.1237
69.464
226.54
56.679
1.1361
72.033
223.12
57.192
1.1469
70.884
225.63
56.868
1.1428
69.865
227.52
56.495
1.1404
69.159
228.8 56.262
1.1354
71.651
226.03
56.415
1.149
75.032
222.02
56.759
1.1674
76
75.655
77.304
];
220.42
221.31
56.791
56.051
1.1748
1.1948
Pmax = x(index,1);
Vmax = x(index,2);
Vd = x(index,3);
n = x(index,4);
A.3.4 Non-Linear model with sigmoidal isochrones
The main file is the same as the one from the non-linear model with isochrones from convex till
concave. The simul and ODE_wk3 files are also almost the same. The only difference is that the
function Prv(i) is different in these files (adjusted to the model) and that the file parameters_sigm
consists of other parameter values.
A.4 Fitting with Fourier series
A.4.1 Fitting the whole system at once
function [x,J] = nonlinfitfunc(Prv,Vrv,Pmax,Vd,Vmax,modN,angN)
%NONLINFITFUNC returns the parameters fitted to the linear model.
% J = NONLINFITFUNC(PRV, VRV, PMAX, VD, VMAX, N) returns the parameters
% Pmax, Vd, Vmax, n fitted to the linear model.
%
%
% 01-03-2005, F.A.Rovekamp
% Define x
if nargin == 0
Pmax = 95;
Vd = -16.15;
Vmax = 155 ;
modN(1) = 2.4353;
modN(2) = 3.4415;
modN(3) = 1.0099;
modN(4) = 0.5430;
modN(5) = 0.3921;
modN(6) = 0.3403;
angN(1) = 0;
angN(2) = 0.9446;
angN(3) = 1.5535;
angN(4) = 0.6062;
angN(5) = 0.5508;
angN(6) = 0.1825;
end
x0 = [Pmax Vd Vmax modN(:)' angN(:)'];
Options = optimset('Display','iter','Diagnostics','on','MaxFunEvals',1E50,'MaxIter',1E50);
77
[V,P] = Get_Data_Sheep;
%Solve non linear least-squares
[x,J] = lsqnonlin(@(x) PV_func(x,P,V),x0,[],[],Options);
est_Pmax = x(1);
est_Vd = x(2);
est_Vmax = x(3);
est_modN(1:6) = x(4:9);
est_angN(1:6) = x(10:15);
Viso = [-20:100];
nIsochrones = size(V,1);
Ti = 0.72;
ts = 0.004;
t = [0:nIsochrones-1]*ts;
figure
for i = 1:nIsochrones
est_n(i) = n_fourier(t(i),est_modN,est_angN,Ti);
Piso = est_Pmax*(((Viso-est_Vd)/est_Vmax).^est_n(i));
plot(Viso,Piso,':')
hold on
VcurIso = min(V(i,:)):max(V(i,:));
PcurIso = est_Pmax*(((VcurIso-est_Vd)/est_Vmax).^est_n(i));
plot(VcurIso,PcurIso,'Linewidth',2)
end
[Vkwart,Pkwart] = Get_Data_Sheepkwart;
plot(Vkwart',Pkwart')
function [J] = PV_func(x,P,V)
%PV_FUNC return the residual.
% J = PV_FUNC(X,P,V) returns the residual of the ad hoc nonlinear
% pressure-volume model.
%
% [J,Jacob] = PV_FUNC(...) also returns the Jacobian of J.
%
% 28 February 2005, F.A. Rövekamp
Pmax =
x(1);
Vd = x(2);
Vmax = x(3);
modN(1:6) = x(4:9);
angN(1:6) = x(10:15);
Ti = 0.72;
ts = 0.004;
nIsochrones = size(V,1);
nLoops = size(V,2);
t = (0:nIsochrones-1)*ts;
%Define function
nCol = n_fourier(t,modN,angN,Ti);
n = nCol*ones(1,nLoops);
J = P - Pmax*(((V-Vd)/Vmax).^n);
78
A.4.2 Fourier transformation
function test_fourier_n
% test_fourier_n makes a fourier transformation on the given data
%February 2005, F.A.Rövekamp
% Constants.
PMAX = 95;
VMAX = 155;
Vd = -16.1;
% Calculate n from simulated pressure and volume.
[n,Ti,ts] = calculate_n(PMAX,VMAX,Vd);
% Get modulus and phase of n.
[modN,angN] = getmodang(n);
% Calculate modulus and phase back to n in time domain.
n_backtransformed = n_fourier(modN,angN,Ti,ts);
plot(n_backtransformed)
function [n,Ti,ts] = calculate_n(Pmax,Vmax,Vd)
%Caluculate_n calculates the function n with the sheep data
%31-03-2005, F.A.Rövekamp
[V1,P1] = Get_Data_Sheep;
ts = 0.004;
Ti = length(V1)*ts;
Pmax = 95;
Vmax = 155;
Vd = -16,1;
% make column vectors
P1 = P1(:);
V1 = V1(:);
% function n
n = log(P1/Pmax)./log((V1-Vd)/Vmax);
function [modX,angX] = getmodang(x)
% GETMODANG gets the modulus and phase of FFT of x.
%[modX,angX,f] = getmodang(x) gives the modulus and phase of a
%function x, which is dependent on Plv and Vlv.
%31-03-2005, F.A.Rövekamp
% constants
79
N = length(x);
n = round(N/2);
iHarmonics = 6;
%fs = 1/ts;
% Fast Fourier transform
X = fft(x);
% modulus of X
modX = abs(X(1:n))/N;
modX(2:n) = 2*modX(2:n);
modX = modX(1:iHarmonics);
% phase of X
angX = angle(X(1:n));
angX = angX(1:iHarmonics);
function n = n_fourier(modN,angN,Ti,ts)
% n = n_fourier(modN,angN,Ti,ts)
%
% Calculates n with fourier analysis at t. One needs the modulus and the
% angular of N. n is normalized with respect to Ti.
% Construct variables.
n = length(modN);
k = [0:n-1];
t = [0:ts:Ti];
t = t(:);
N = length(t);
omega = 2*pi/Ti;
% Harmonics
% Calculate n.
n = cos(omega*t*k + ones(N,1)*angN')*modN;
80
81
Appendix
B Windkessel parameters loops
This is all the information about the sheep loops, we got from the LUMC in Leiden.
Table B. 1: Information about the sheep loops. HR= heart rate, SV= stroke volume. CO= cardiac output, Ves=
end-systolic volume, Ved= end-diastolic volume, EF= ejection fraction, Pes=end-systolic pressure, Ped=enddiastolic-pressure, DpdtMax= maximum value of derivative of pressure, DpdtMin=minimum value of derivative of pressure, SW=stroke-work and tau
mean
Se
1
2
3
4
5
6
7
8
9
10
11
12
13
14
HR SV
CO
Ves
Ved EF
Pes
Ped
83.4
0.27
83.3
83.8
83.3
83.3
83.3
82.9
83.3
83.3
83.3
83.8
83.3
83.8
83.8
83.3
3502.5
944.8
4719.0
4792.1
4658.2
4538.0
4311.6
3817.8
3547.4
3168.5
2705.1
2651.0
2678.0
2610.3
2454.3
2384.0
26.5
9.1
38.3
37.0
36.9
35.2
32.8
31.5
28.1
25.9
23.7
21.2
18.0
16.4
13.8
12.1
66.6
19.6
92.9
92.6
89.9
85.5
80.8
75.3
69.8
62.5
55.1
51.5
49.3
46.5
41.9
39.3
82.7
9.5
93.1
92.1
92.9
91.8
90.2
89.2
86.2
83.6
80.5
77.2
74.2
71.5
68.8
66.7
3.5
4.1
9.9
9.7
8.5
7.3
5.6
4.1
3.2
2.0
1.0
0.6
-0.3
-0.3
-1.1
-1.5
42.0
11.4
56.6
57.2
55.9
54.5
51.7
46.1
42.6
38.0
32.5
31.6
32.1
31.1
29.3
28.6
63.6
3.9
60.9
61.7
62.2
63.7
64.1
61.2
61.0
60.8
59.0
61.4
65.2
67.0
69.9
72.8
DPdt
Max
1742.9
45.7
1687.4
1697.6
1671.1
1696.8
1699.4
1713.4
1754.5
1779.3
1786.6
1791.4
1799.8
1777.5
1777.5
1768.9
DPdt
Min
-1255.8
261.0
-1578.9
-1589.4
-1571.2
-1530.2
-1441.0
-1340.9
-1297.4
-1243.9
-1158.5
-1059.8
-1007.5
-959.7
-939.3
-862.9
SW
tau
3203.8
1195.5
4553.4
4649.6
4673.8
4596.6
4331.0
3854.9
3332.9
2788.7
2250.0
2083.0
2092.4
2046.4
1843.4
1756.7
55.7
8.1
46.6
45.2
46.1
47.8
50.4
52.3
54.2
55.0
57.4
59.9
64.0
67.5
66.1
66.9
82
83
Apendix
C Fitting with Fourier series
C.1 Fitting the whole system at once
The models that have to be fitted contain parameters that are a function of time. This means that
in fact every moment in time a new parameter is found. This results, for example, for the two
non-linear models in 4x180 = 720 parameters. To reduce the number of parameters the time function of each parameter can be described by Fourier series.
For example when there is in the model the parameter n(t ) . With Fourier transformation the
function becomes:
k
2π
(18)
n(t ) = ∑ ai sin( it + ϕ i )
T
i =0
With T the interbeat period, ai and ϕ i the amplitude and phase of the ith harmonic of n(t ) . When
the function can be described with three harmonics, this means that the number of parameters is
reduced from 180 to 9, i.e. a0 , a1 , a 2 , φ0 , ϕ 1 , ϕ 2 , Pref , Vref and V0 .
This fit can only be done when all isochrones are fitted at once. This means that lsqnonlin fits all
data points (in the example this means 14loopsx180points a loop) at once. (See Appendix A.4.1
Fitting the whole system at once for the MATLAB-code)
C.2 Fourier transformation on the non-linear model with isochrones
from convex till concave.
Because all isochrones are fitted at once, we can consider V0 , Vref and Pref as time independent
parameters. Only the function n(t ) is still a time dependent function.
For fitting the whole system at once, the initial values are very important. This means that from
the real data we are using for our fit we have to make an estimation of n(t ),V0 , Pref and Vref . We
do this, using the schematic presentation given in Figure C. 1
V0
V0 is the intercept of the isochrones with the volume axis. These can be estimated from the data,
by extrapolating (making a quadratic fit) the End-Systolic-Pressure-Volume relation and the EndDiastolic-Pressure-Volume relation .The point where the two lines intersect the volume axis, is
defined as V0.
Pref
84
For small n(t ) the systolic pressure-volume isochrone is approached. In other words for a reference volume Vref the maximal isovolumic pressure is estimated. Theoretically this pressure is
found at n = 0 for all volumes.
When n(t ) = 0
n (t )
0
⎞
⎛
⎛ V (t ) − V0 ⎞
⎟ = Pref ⎜ V (t ) − V0 ⎟ = Pref
P (t ) = Pref ⎜
⎟
⎟
⎜ V
⎜ V
ref
ref
⎠
⎠
⎝
⎝
Figure C. 1 shows that at n(t ) = 0 ,P(t) is the maximum value of the Pressure in the loops, so
Pref = Pmax is the maximal isovolumic ventricular pressure.
Figure C. 1: Isochrones of the non-linear n-model, from n=0 to n=4.5 with steps of 0.1. From this data we can
estimate initial parameter values.
Vref
For making it easy to calculate Vref We take the isochrone at n(t ) = 1
When n(t ) = 1
V (t ) − V0 1
V (t ) − V0
P(t ) = Pref (
) = Pref (
)
Vref
Vref
then
Pref
Vref =
V (t ) − V0
P(t )
85
So with a random point at the isochrone with n=1 (Figure C. 1)and one of the PVloops Vref can
be calculated.
n(t)
To estimate n(t ) , we rewrote Eq. (2.3) into
⎞
⎛
⎛ P(t ) ⎞
⎟ / log⎜ V (t ) − V0 ⎟
()
n(t ) = log⎜
⎟
⎜ V
⎜P ⎟
ref
⎠
⎝
⎝ ref ⎠
After V0 , Pref , Vref are estimated the pressure and volume of the real data can be used for this
equation and n(t) can be estimated.(Figure C. 2a) After Fourier transformation n can probably be
described with three harmonics.(Figure C. 2b) (See Appendix
A.4.2 Fourier transformation for the MATLAB-code)
function n(t)
8
n
6
4
2
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
time in ms
fourier transformation of n with three harmonics
8
6
n
4
2
0
-2
0
5
10
15
20
25
30
35
40
45
50
Figure C. 2 a) : n(t) estimated from sheep PV-loops. b): Fourier transformation of a) with three harmonics.
C.3 Fourier transformation on the non-linear model with sigmoidal
isochrones.
86
In this model the four parameters stay ,also when fitting the whole system at once, time dependent. To make a good estimation of the initial values, the fit per isochrone is used. From these
function fourier transformation is done with 20 harmonics(Figure C. 3).
alfa
30
20
10
Pmax
0
0
0.08
0.16
0.24
0.32
0.40
0.48
0.56
0.64
0.72
0.08
0.16
0.24
0.32
0.40
0.48
0.56
0.64
0.72
0
0
0.08
0.16
0.24
0.32
0.40
0.48
0.56
0.64
0.72
60
40
20
0
0
0.08
0.16
0.24
0.32
0.40
0.48
0.56
0.64
0.72
500
500
Pmin
Vref
0
0
time in s
Figure C. 3: Parameters of the non-linear sigmoidal model. Red: Parameter after fitting per isochrone to the
sheep data. Blue: fourier transformation of the fitted functions with 20 harmonics. a) alfa(t) b)Pmax c)Vref
d)Pmin.
C.4 Results
When using the fourier transformation for the parameters, which are time-dependent, and thus
using to fit the whole system at once. It give the following loops (Figure C. 4 Figure C. 5)
87
120
pressure in mmHg
100
80
60
40
20
0
-20
10
20
30
40
50
60
70
80
90
100
volume in ml
Figure C. 4: PV-loops generated with the non-linear n model, when the parameters are fitted at once and
there is made use of fourier series.
140
pressure in mmHg
120
100
80
60
40
20
0
-20
0
20
40
60
80
100
120
140
160
180
200
volume in ml
Figure C. 5: PV-loops generated with the non-linear sigmoidal model, when the parameters are fitted at once
and there is made use of fourier series (with 20 harmonics).
88
C.5 Discussion
As can be seen from the loops, a lot of important information of the time dependent parameters is
lost when using Fourier series. It seems that all peaks in the functions are important in generating
smooth PV-loops.
It might be useful taking more harmonics. We have tried this for the n-model with 6 and with 15
harmonics, but the simulation then doesn’t become stable.
For the sigmoidal model we even tried 50 harmonics (Figure C.6)
120
Pressure in mmHg
100
80
60
40
20
0
-20
0
20
40
60
80
100
120
Volume in ml
Figure C. 6: PV-loops generated with the non-linear sigmoidal model, when the parameters are fitted at once
and there is made use of fourier series (with 50 harmonics). X-axis: volume in ml. Y-axis: pressure in mmHg.
89