HumMod - Large Scale Physiological Models in Modelica Jiri Kofranek Marek Matejak Pavol Privitzer Institute of Pathophysiology, First Faculty of Medicine, Charles University U nemocnice 5, 128 53 Praha 2, Czech Republic
[email protected] [email protected] [email protected]
Abstract Modelica is being used more and more in industrial applications, but Modelica is still not used as much in biomedical applications. For a long time we have mostly been using Matlab/Simulink models, made by Mathworks, for the development of models of physiological systems. Recently, we have been using a simulation environment based on the Modelica language. In this language, we implemented a large scale model of interconnected physiological subsystems containing thousands of variables. Model is a richly hierarchically structured, easily modifiable, and “self-documenting”. Modelica allows a much clearer than other simulation environments, to express the physiological nature of the modeled reality. Keywords: simulation; physiology; large-scale model
1 Introduction It is simply amazing how fast the Modelica simulation language adopted various commercial development environments. Modelica is being used more and more in industrial applications. However, Modelica is still not used as much in biomedical applications. The vast majority of biomedical simulation applications are still done in casual, block-oriented environments. These include referencing database development environments for biomedical models (such as the JSIM language - http://physiome.org/model/doku. php or CellML language - http://www.cellml.org/). A frequently used environment in biology and medicine is Matlab/Simulink – monographs dedicated to biomedicine models are usually equipped with additional software used in this environment, but so far without the use of new acasual or non-casual Simulink libraries, such as [24, 28, 32]. However, already in 2006, Cellier and Nebot [5] pointed out the benefits of Modelica, when used for clear implementation of physiological systems descriptions and interpretations. The classic McLeod‘s circulation system model was implemented by PHYSBE (PHYS-
iological Simulation Benchmark Experiment) [25, 26, 27]. The difference is clearly seen, if we compare the Cellier model implementation [5] with the freely downloadable version of the PHYSBE model implementation in Simulink http://www.mathworks.com/ products/demos/simulink/physbe/. Haas and Burnhan, in their recently published monograph, pointed out the benefits and large potential of the Modelica language used for modeling medically adaptive regulatory systems [9]. The most recent, Brugård [4] talks about work on the implementation of the SBML language (http://sbml.org/) in the Modelica language. This would enable us in the future, to simply run models, whose structure is described in the SBML language, on development platforms, based on the Modelica language.
2 Web of physiological regulations Thirty-nine years ago, in 1972 Guyton, Coleman and Granger published an article in the Annual Review of Physiology [9] which at a glance was entirely different from the usual physiological articles of that time. It was introduced by a large diagram on an insertion. Full of lines and interconnected elements, the drawing vaguely resembled an electrical wiring diagram at first sight (Fig. 1). However, instead of vacuum tubes or other electrical components, it showed interconnected computation blocks (multipliers, dividers, adders, integrators and functional blocks) that symbolized mathematical operations performed on physiological variables. In this entirely new manner, using graphically represented mathematical symbols; the authors described the physiological regulations of the circulatory system and its broader physiological relations and links with the other subsystems in the body – the kidneys, volumetric and electrolyte balance control, etc. Instead of an extensive set of mathematical equations, the article used a graphical representation of mathematical relations. This syntax allowed depicting relations between individual physiological variables graphically in the form of interconnected blocks representing mathematical operations. The whole dia-
Figure 1: Guyton’s blood circulation regulation diagram from 1972. gram thus featured a formalized description of physiological relations in the circulatory system using a graphically represented mathematical model. Guyton’s model was the first extensive mathematical description of the physiological functions of interconnected body subsystems and launched the field of physiological research that is sometimes described as “integrative physiology” today. Just as theoretical physics tries to describe physical reality and explain the results of experimental research using formal means, “integrative physiology” strives to create a formalized description of the interconnection of physiological controls based on experimental results and explain their function in the development of various diseases. From this point of view, Guyton’s model was a milestone, trying to adopt a systematic view of physiological controls to capture the dynamics of relations between the regulation of the circulation, kidneys, the respiration and the volume and ionic composition of body fluids by means of a graphically represented network. Guyton’s graphical notation was soon adopted by
other authors – such as Ikeda et al. (1979) in Japan [13] and Amosov et al. (1977) in the former USSR [2]. However, the graphical notation of the mathematical model using a network of interconnected blocks was only a graphical representation – Guyton’s model and later modifications (as well as the models of other authors that adopted Guyton’s representative notation) were originally implemented in Fortran and later in C++. Today the situation is different. Now, there are specialized software simulation environments available for the development, debugging and verification of simulation models, which allow creating a model in graphical form and then testing its behavior. One of these is the Matlab/Simulink development environment by Mathworks, which allows building a simulation model gradually from individual components – types of software simulation elements that are interconnected using a computer mouse to form simulation networks. Simulink blocks are very similar to the elements used by Guyton for the formalized representation of
NON-MUSCLE OXYGEN DELIVERY 1 s xo
OSV
168
AOM 1
RDO 512
u^3
40
2688
lower limit 50
263
238
198.7
2400
POT
Xo
SRK
BFN
248
RMO
57.14
200
244
VPF
1 s xo
VIM
203
GF4
512
EXC
219
0.009
1 220
211
1
216
CNY
NOD
214
CNA
142
0.001
2.5
177
PRA
0
CNX
178
AHM
1
1.211 REK
PPC
NON-MUSCLE LOCAL BLOOD FLOW CONTROL POB
276
274
275
181 AH8
AK1
1
273
ARM
POK
lower limit 0.2
1
AR1
40
AMM VIM RAM AUM
96.3 POA
281
282
285
279
280
xo
A2K
1
lower limit 0.5
VIM
PON
20
RAM
RSM
RAR
100
287
283
286
POJ
284b
0.495 0.33
lower limit 0.3
A3K
1
0.3
1
289
xo
0.85
33
32
VAS
2.86
5
VBD
30
QAO
upper limit 8 PA lower limit 4 294
298
295
A1B
1
303
when PA1PA1=170: AUB=0
AUK
AUB
304
0.0005
305 1 s
PLA
AUN
AUN
AUM
PL1
23
6
RPT
QPO
311
AUJ
22
0.21 0.85
314
312
AUV
1.001 AUL
0.3 AUD
1
18
xo
-4
0.25
QRN = f(PRA)
0.005
PRA
1
AUY
318
0.5
319
313
102
14
1
320
1.001
1
AVE
1
AUH
150
136
15
CPP
28
146
0.55
AUM
137
VPF 1 s
0.000225 138
AVE
0.4
148
PPD
QLO
0.5
1
152 PPO
AU 1
HM2
336
336c
112
141
PLF
0.0125
xo
VPF
PPI = 2 - (0.15/VPF)
DFP
333
-3.994e-010
0.01252
1 s
335
HM
RC2
40
PGR
94
PGC
upper limit 1
344
VB
2
RED CELLS AND VISCOSITY
5 1
1
349
1 xo s HPL
1
1
1 xo s
1 xo s
HMD HPR
1
VG
KE
5
123
HEART HYPERTROPHY OR DETERIORATION
90 CHY -5.9
124
CKE
126 0.00042
KOD
CHY^2
NOD
99
0.25
117
CNA
118
NED
1 xo s
2130
0.1
119
NAE
116
CNA
142
142 NID
PGH PTS
89
57 HYL
140
125
PGP
1 334
VRC
VRC
KE1
REK u^2
PTC
RKC
2850
127
0.00014
122
KED 75
96
PG2
95
121
0.013332
PIF
57600
348
128
KIR
CKE
AM
120
HMD
0.0125
PULMONARY DYNAMICS AND FLUIDS
57600
343
40
100
VPF
KCD
KID
0.1 93
129
KIE
KCD
5
0.0028
VGD
V2D
1 s
VIC
1 xo s
25
0.013
xo
97
xo
1.001
130 3550
11.4
1
352
HPR 347
135
VID
1 1 s
85 (u/12)^2
100
0.4
0.0000058
143
2-(0.15/u)
142
0
DHM 1
0
134
113
101
98
HPL
xo
GPR
u^0.625 PP3^0.1
342
1600
0.01
VG
HM
2
PPI
PTT = (VTS/12)^2
6
CCD
CNA
KI 1 s
1 s
88 10
PTS = f(VIF)
86
0.0025
351
131 171
xo
POT
350
345
PP3
346
xo
336b
VRC PFI
1
15
1
PPA4
u^0.625 PA4^0.625
1 s
2 xo
341
GPD
-6.3
xo
11.99
1 s
11
DFP
HEART RATE AND STROKE VOLUME
40
RCD 332
144
40
HMD
5
0.0003
CPF 0.0003
321
324
325
PTS
0
133
VIC
PTT
331 PLF 145
PPI
140
VID CKI 132
111
PIF
VTS
PPA
HSR
100
1
340
PLF
POS
0
HSL
337
0.00092 RC1
2 PRA
VIE
464e-7
POS
PPC
322
323
1.115e-006
VG
8
15
PA
1.5
lower limit 0.2375
330
6.822e-008
0
139 32
327 HR
100
POY 0.375
PPD PPN
151
xo
147
VIF
20
0
338
1
110
VIF
12
VTS
0.333
170 xo
ALDOSTERONE CONTROL
GP2
87
VID
0
VIM
PO2
1 s
109
0.0005
83
VTC
12 339
1
8.25
PPR
149
PPC
PCP
SVO
IFP
1 xo s
12
0.9897
VIM
POT 329
PO1
CPN
AMC lower limit 6
GPD
1 s 8 70 0.4667
169
60
166
CNA
20
103
DPI
DPL
84
PLA 0 PPA
AMT
AMR
200
AMP = f(PA) KN1
PTT
VTL
VTD
VVR
0
165
CKE
GP1
0
CIRCULATORY DYNAMICS
VVR
171
AM1
104
0.1
0.09914
0.00352 5
DPC
0.04
VRA 15
QRO
0.38
0
PLD 7.8
CPI
PIF
VPA
0.0048
106
142
-6.328
lower limit 4
20
AMP
-0.017
168
9
1 s
PR1
PIF
20.17 CPI
0.04
VV9
2.949
AUH
1
1
0.004
PTC
3.159
AU
u
AM2
AM3
PA
107 VTL
108
DPL
PRA
PRA
1 s
VPA
0.30625
105
xo QRN
19
VPE
1
AUTONOMIC CONTROL
1
0.1
VRA
20
21 PPA
15
2.95
0.7 315
326
15
QPO 15.22
PLA
PGL
172
19.8
167
DPL
lower limit 5
0.002
5
13
AUH 51
0.026
0.03825
0.001896 VTL 5.043 PTC
DRA
AUJ^AUZ 316
AU9
0.0704
QVO
12
0.002
1 s xo
uv
0.15
328
50 RVM = f(PP2)
1
310
1 AU
1
SVO
0
PPA
AUN calculation 317
0
PP2
AUZ
when PA1PA1=50: AUC=0
HSR
1 QRO
0
Z8
309
0
173
AM5
10
1
16
AUH
AU8
20.039
174
AM
1 ANM 164
HPR HMD
HMD
52
xo
AM
1
PPA 1
AUB calculation
1.003
RVM
lower limit 0
RPT
308
DPC
VP
100
1.4
55
0.0357
57
15 ANT
11
AUH
50 PP1
56
AU2
AUN CALCULATION PA1
49 48
RPA
20
20
DLA
0.1
ANGIOTENSIN CONTROL
RVG
1
53
RPV
DAU
AUB^3
54
QLN = f(PLA) 1
0.4 24
301 u^3
AUB CALCULATION PA1
-4
xo
307
AU6
3
1
158
DPC
2.738
RVM
sqrt 0
QLO 1 s
VLA
302
CPA
VLA
1
ANM
4
1
QLN
157 AN1
3.004
VTL 0.002
10
PR1
PVS
0.6
152
156
155
CNE
0.03838 20
QRF
15
PLA
AUC
AUC calculation
QLO
QLN
10
74
0.04 VP
1 xo s
3
1 s xo
(1.2/RFN)^3
154
CPI 71
VPD
0 PVS 45
260
47
28
VLE
25
EXC
Z12
AUC
VRA
46 0
159
ANC
(1.2/u)^3
CNE CNA
142
75
70
VUD
10
CPP
CP1
0.042
153b
153a
RFN
1.2
69.78
74
PC^3
DFP
LVM = f(PA2)
26 1.24
when PA1PA1=80: AUC=0
PA1
0.001 5
VPA
0
1
0.4
AUC CALCULATION PA1
PPC
160 AN2
10u
REK
44
0.1
8
296
297
EXE
P2O
0.001897
TVD
0.001
VVS
3.3 161
AN3 4.0
0.4
u^3
VTC
PA2
LVM
0.02255
27
293
28
73
0.002
3.7
VB
VLA
58
QLN
PLA
5.085
8
3
0.0825 CV
0
100
POQ
VTC PTC
AN5
lower limit 0.7
210
1.6283e-007
1.4
1
HMD HPL
QLO
8
lower limit 0.0001
VVE QVO
1.004 ANM
1 s xo
CPP
5
PA
59
HSL LVM
PLA
8
PRP
CPK
29
5
QLO
POT
VVS
61
16.81
9
VV8
PPC
69
0.007
60 VAS
POQ
8
162
163
1
ANM
80
70 CPP
VP CFC
PIF
PVS
PVS
VAS3
291
7
VVS
16.81 62
-6.3
3.781
0.3
QVO
2.8
VVR
2.95 1 s
xo
3.25
DAS
292
6
DVS
BFN
PGS
DPP
0.00047 PC
68
72
VP PVS
2
RSN
1
PA
VAE 100
AR3
1 s
xo
if (POD