// MODEL NUMBER: 0336
// MODEL NAME: Rideout_PressureFlowLH
// SHORT DESCRIPTION: Left heart and systemic arteries pressure-flow
// model ported from Rideout (ACSL programs LH-PF).
// Also in MATLAB.
import nsrunit; unit conversion on;
math Rideout_PressureFlowLH
{
// Choice Variable
choice Mode("LH-PF-1",
"LH-PF-2",
"LH-PF-3") = 1;
// Independent Variable
realDomain t s; t.min = 0; t.max = 3.19; t.delta = .01;
// Parameters
real CAO = .00015 cm^4*s^2/g, // Aortic Compliance
CCA = .0022 cm^4*s^2/g, // Capil. Arteries Compliance
CSA = .0003 cm^4*s^2/g, // Syst. Arterial Compliance
FAOIC = 0 ml/s, // Aortic Initial Flow
FLV3IC = 0 ml/s, // Left Ventricle Initial Flow
LAO = .5 g/cm^4, // Aortic Inertance
LLV = .5 g/cm^4, // Left Ventricle Inertance
PAT = 6 mmHg, // Atrial Pressure
PSV = 3 mmHg, // Syst. Venous
QAOIC = 100 ml, // Aortic Initial Volume
QAOU = 85 ml, // Aortic Unstressed Volume
QCAIC12 = 220 ml, // Capil. Art. Initial Volume (LH-PF-1,2)
QCAIC3 = 1010 ml, // Capil. Art. Initial Volume (LH-PF-3)
QCAU = 810 ml, // Capil. Arteries Unstressed Volume
QLVIC = 120 ml, // Left Ventricle Initial Volume
QLVU = 0 ml, // Left Ventricle Unstressed Volume
QSAIC = 281 ml, // Syst. Arterial Initial Volume
QSAU = 250 ml, // Syst. Arterial Unstressed Volume
RAO = 5 g/cm^4/s, // Aortic Resistance
RAT = 5 g/cm^4/s, // Atrial Flow Resistance
RCA12 = 1250 g/cm^4/s, // Capil. Arteries Resistance (LH-PF-1,2)
RCA3 = 1150 g/cm^4/s, // Capil. Arteries Resistance (LH-PF-3)
RLV = 5 g/cm^4/s, // Left Ventricle Resistance
RSA12 = 80 g/cm^4/s, // Syst. Arterial Resistance (LH-PF-1,2)
RSA3 = 50 g/cm^4/s, // Syst. Arterial Resistance (LH-PF-3)
SLD = 67 g/cm^4/s^2, // Diastolic Muscle Stiffness
SLS12 = 2500 g/cm^4/s^2, // Systolic Muscle Stiffness (LH-PF-1,2)
SLS3 = 2400 g/cm^4/s^2, // Systolic Muscle Stiffness (LH-PF-3)
TH = 0.8 s, // Heart period (75 beats per minute)
TS = 0.3 s; // Sytsolic duration
// Dependent Variables
real RCA g/cm^4/s, // Capil. Arteries Resistance
RSA g/cm^4/s, // Syst. Arterial Resistance
FAO(t) ml/s, // Aortic Flow
FATX(t) ml/s, // Atrial Flow with no valve
FAT(t) ml/s, // Atrial Flow with valve
FCA(t) ml/s, // Capil. Arteries Flow
FSA(t) ml/s, // Syst. Arterial Flow
FLV(t) ml/s, // Left Ventricle Flow
FLV12(t) ml/s, // FLV (LH-PF-1,2)
FLVX12(t) ml/s, // FLV after valve (LH-PF-1,2)
FLV3(t) ml/s, // FLV (LH-PF-3)
FLV3D(t) ml/s^2, // FLV Derivative (LH-PF-3)
PAO(t) mmHg, // Aortic Pressure
PCA(t) mmHg, // Capil. Arteries Pressure
PLV(t) mmHg, // Left Ventricle Pressure
PSA(t) mmHg, // Syst. Arterial Pressure
QAO(t) ml, // Aortic Volume
QCA(t) ml, // Capil. Arteries Volume
QCAIC ml, // Capil. Arteries Initial Volume
QLV(t) ml, // Left Ventricle Volume
QSA(t) ml, // Syst. Arterial Volume
SLS g/cm^4/s^2, // Systolic Muscle Stiffness
SLV(t) g/cm^4/s^2, // Left Ventricle Stiffness
X(t), // SLV auxillary function (remainder)
XX(t), // SLV rectangular waveform (LH-PF-1)
STW(t), // SLV sawtooth waveform (LH-PF-2,3)
SSW(t), // SLV sinusoid waveform (LH-PF-2,3)
ACT(t), // SLV actuator waveform
K1, // SLV first harmonic factor (LH-PF-2,3)
K2, // SLV second harminuc factor (LH-PF-3)
B; // SLV bounding factor
// Initial conditions
when (t = t.min) { FAO = FAOIC; FLV3 = FLV3IC;
QAO = QAOIC; QCA = QCAIC;
QLV = QLVIC; QSA = QSAIC; }
// Equations
QCAIC = if (Mode = 3) QCAIC3 else QCAIC12;
RCA = if (Mode = 3) RCA3 else RCA12;
RSA = if (Mode = 3) RSA3 else RSA12;
SLS = if (Mode = 3) SLS3 else SLS12;
K1 = if (Mode = 2) 1.15 else 0.9;
K2 = if (Mode = 2) 0 else 0.3;
B = if (Mode = 1) 1 else if (Mode = 2) 1.15 else 1.05;
X = rem(t, TH);
XX = if (X <= TS + t.delta / 2) 1 else 0;
STW = if (X <= TS + t.delta / 2) X else 0;
SSW = if (Mode = 1) XX else
B * (K1 * sin(PI * STW / TS) - K2 * sin(2 * PI * STW / TS));
ACT = if (SSW < 0) 0 else
if(SSW > 1) 1 else SSW;
SLV = SLD + (SLS - SLD) * ACT;
FATX = (PAT - PLV) / RAT;
FAT = if (FATX < 0) 0 else
if (FATX > 5000) 5000
else FATX;
QLV:t = FAT - if (Mode = 3) FLV3 else FLV12;
PLV = if (Mode = 3) (QLV - QLVU) * SLV else QLV * SLV;
FLVX12 = (PLV - PCA) / RSA;
FLV12 = if (FLVX12 < 0) 0 else
if (FLVX12 > 1000) 1000
else FLVX12;
FLV3D = (PLV - PAO - RLV * FLV3) / LLV;
FLV3:t = if (FLV3D > 0 and FLV3 >= 5000) 0
else if (FLV3D < 0 and FLV3 <= 0) 0
else FLV3D;
FLV = if (Mode = 3) FLV3 else FLV12;
QAO:t = FLV3 - FAO;
PAO = if (Mode = 3) (QAO - QAOU) / CAO else 0;
FAO:t = if (Mode = 3) (PAO - PSA - RAO * FAO) / LAO else 0;
QSA:t = FAO - FSA;
PSA = (QSA - QSAU) / CSA;
FSA = if (Mode = 3) (PSA - PCA) / RSA else 0;
QCA:t = if (Mode = 3) FSA - FCA
else FLV12 - FCA;
PCA = if (Mode = 3) (QCA - QCAU) / CCA
else QCA / CCA;
FCA = (PCA - PSV) / RCA;
}
/*
FIGURE:
There are three modes implemented in this model. Refer to the following
ACSL programs and figures in Rideout:
Mode Figure
-------------------------------------------------------------
LH-PF-1 Rectangular Actuator 4.2.1 (a), page 79
LH-PF-2 Clipped Half-Sine 4.2.1 (a), page 79
LH-PF-3 Skewed Half-Sine and Inertance 4.2.5 (a), page 87
Legend
---------------------------
F Flow [ml/s]
P Pressure [mmHg]
Q Volume [ml]
R Resistance [g/cm^4/s]
C Compliance [cm^4*s^2/g]
S Stiffness (S=1/C)
L Inertance [g/cm^4]
MV Mitral Valve
AV Aortic Valve
A two letter suffix is used to represent various segments in the left
heart. For example, FAT represents the left atrial (AT) flow (F). The
table below shows suffixes used and anatomy represented. It also shows
the values of R, L, C and QU (unstressed volume) used in this model.
Suffix Anatomy Represented R L C * 10^6 QU
------------------------------------------------------------------
AT Left Atrium 5
LV Left Ventricle 5 0.5* variable
AO Aorta 5* 0.5* 150* 85*
SA Systemic Arteries 80#/50* 300* 250*
CA Capillary Arteries 1250#/1150* 2200 810*
SV Systemic Veins
# Used in LH-PF-1 and LH-PF-2 (basic circuit)
* Used in LH-PF-3 (improved circuit)
DETAILED DESCRIPTION:
This model simulates the left heart using Pressure-Flow-Volume (or
Pressure-Flow for short) modeling. This technique takes advantage of the
analogy to RC or RLC circuits as shown here:
Pressure-Flow-Volume Electrical Circuit Equivalent
------------------------------------------------------------------
F Flow (ml/s) I Current (Amper)
P Pressure (mmHg or g/cm/s^2) V Voltage (Volt)
Q Volume (ml) Q Charge (Coulomb or Amper*s)
R Resistance (g/cm^4/s) R Resistance (Ohm or Volt/Amper)
C Compliance (cm^4*s^2/g) C Capacitance (Farad or s/Ohm)
L Inertance (g/cm^4) L Inductance (Henry or s*Ohm)
Pressure-Flow components obey the same fundamental equations as
their RLC circuit equivalents, i.e.:
P = R * F V = R * I (Eq. 1 or Ohm's Law)
P = L * F:t V = L * I:t (Eq. 2)
P = Q / C V = Q / C (Eq. 3)
F = Q:t I = Q:t (Eq. 4)
Blood flows from the left atrium to the left ventricle via the mitral
valve and continues to the aorta via the aortic valve. The load consists
of systemic and capillary arteries. Atrial pressure (PAT) is assumed
fixed at 6 mmHg as is the central venous pressure (PSV) at 3 mmHg. These
are equivalent to input and output electric potentials (voltages) which
drive the flow (current) through the left heart. Mitral and aortic
valves are modeled by limiting the flow to be positive and less than an
upper bound.
There are three separate modes implemented in this model, corresponding
to Rideout's ACSL programs:
(1) LH-PF-1: Rectangular Actuator
(2) LH-PF-2: Clipped Half-Sine
(3) LH-PF-3: Skewed Half-Sine and Inertance
LH-PF-1 and LH-PF-2 use a basic RC circuit; LH-PF-3 uses an RLC circuit
with additional components. The actuating signal for all modes is a
variable periodic left ventricular stiffness SLV (SLV = 1/CLV) which
simulates a contracting and expanding left ventricle during the cardiac
cycle. LH-PF-1 uses a rectangular SLV stiffness SLV waveform. LH-PF-2
uses a clipped half-sine. LH-PF-3 uses a clipped half-sine with a second
harmonic term which adds some skew to the waveform.
The figures show some results when running the JSim model in LH-PF-3.
Figure 1 is the ventricular stiffness, SLV. Stiffness changes between a
maximum, SLS during systole which lasts 0.3 sec, and a minimum, SLD
during diastole which last 0.5 sec. The pulse is periodic with a period
of 0.8 sec (corresponding to 75 beats/min heart pulse). Four heart beats
are simulated for a total run time of 3.2 sec. The left ventricle
volume, QLV expands during diastole and contracts during systole.
Figure 2 shows the locus (path) of the left ventricular pressure, PLV,
plotted versus volume, QLV. Values in this model were chosen so that the
end-diastolic volume (EDV) is 120 ml and the end-systolic volume (ESV)
is 48 ml. These volumes can be derived from Equation 3, P = Q / C, or
Q = P / S and are typical in a healthy human adult. The ejection
fraction (EDV - ESV) / EDV is 60% and stroke volume EDV - ESV is 72 ml.
At a heart pulse of 0.8 sec, this corresponds to a cardiac output of
90 ml/sec (5.4 liter/min). The locus is traversed in counterclockwise
direction. Note that it lies between the lines whose slopes are the
diastolic (minimum) muscle stiffness SLD and the systolic (maximum)
stiffness, SLS.
Figure 3 shows various flows in the model. Note that FAT, the atrial
flow rises then decays exponentially at diastole. This represents the
diastolic inflow, which occurs when the walls of the left ventricle
are relaxed and flow can pass through the mitral valve. As this chamber
fills and expands, FAT decays. FLV, FAO and FSA have reverse activity,
peaking and decaying during systole. FLV is the ventricular outflow and
is limited by the aortic valve. FCA, capillary arteries flow, represents
the systemic load and is much smaller and less pulsatile.
Figure 4 shows various pressures in the model. PLV, the ventricular
pressure increases during systole, closing the mitral valve, and with
further increase opens the aortic valve. Aortic pressure PAO follows
ventricular pressure PLV during systole, while load pressure PCA is
much more rounded. During diastole, PAO and PCA nearly coincide. The
slow exponential decay has a time constant TCA = RCA * CCA of 2.53 sec.
Note that some oscillations are visible in PAO starting at the end of
systole.
KEY WORDS:
Cardiovascular System, Left Heart, Ventricle, Systemic Arteries,
Valve, Mitral, Aortic, RC, RLC, RC circuit, RLC circuit, RC model,
RLC model, Ohm's Law, Resistance, Resistive, Capacitance, Compliance,
Compliant, Stiffness, Varying Elastance, Inertance, Pressure, Flow,
Pressure-Flow, Pressure-Flow-Volume, Rideout
REFERENCES:
Rideout VC. Mathematical computer modeling of physiological
systems. Englewood Cliffs, NJ: Prentice Hall, 1991, 261 pp.
REVISION HISTORY:
Ported from ACSL by DH 12/15/11
JSim SOFTWARE COPYRIGHT AND REQUEST FOR ACKNOWLEDGMENT OF USE:
JSim software was developed with support from NIH grants HL088516,
and HL073598. Please cite these grants in any publication for which
this software is used and send one reprint of published abstracts or
articles to the address given below. Academic use is unrestricted.
Software may be copied so long as this copyright notice is included.
Copyright (C) 1999-2009 University of Washington.
Contact Information:
The National Simulation Resource,
Director J. B. Bassingthwaighte,
Department of Bioengineering,
University of Washington, Seattle, WA
98195-5061
*/