ArticlePDF Available

Modeling of short-term mechanism of arterial pressure control in the cardiovascular system: Object-oriented and acausal approach

Authors:

Abstract and Figures

This letter introduces an alternative approach to modeling the cardiovascular system with a short-term control mechanism published in Computers in Biology and Medicine Volume 47 (2014), pages 104–112. We recommend using abstract components on a distinct physical level, separating the model into hydraulic components, subsystems of the cardiovascular system and individual subsystems of the control mechanism and scenario. We recommend utilizing an acausal modeling feature of Modelica language, which allows model variables to be expressed declaratively. Furthermore, the Modelica tool identifies which are the dependent and independent variables upon compilation. An example of our approach is introduced on several elementary components representing the hydraulic resistance to fluid flow and the elastic response of the vessel, among others. The introduced model implementation can be more reusable and understandable for the general scientific community.
Content may be subject to copyright.
Computers in Biology and Medicine 00 (2014) 1–8
Journal
Logo
Letter to Editor
Modeling of short-term mechanism of arterial pressure control in the
cardiovascular system: Object-oriented and acausal approach
Tom´s Kulh´anek, Jiˇr´ı Kofr´anek
, Marek Matej´ak
Institute of Pathological Physiology, Charles University in Prague, U Nemocnice 5, 12853 Praha 2, Czech Republic
Abstract
This letter introduces an alternative approach to modeling the cardiovascular system with a short-term control mechanism pub-
lished in Computers in Biology and Medicine Volume 47 (2014), pages 104-112. We recommend using abstract components on a
distinct physical level, separating the model into hydraulic components, subsystems of the cardiovascular system and individual
subsystems of the control mechanism and scenario. We recommend utilizing an acausal modeling feature of Modelica language,
which allows model variables to be expressed declaratively. Furthermore, the Modelica tool identifies which are the dependent and
independent variables upon compilation. An example of our approach is introduced on several elementary components representing
the hydraulic resistance to fluid flow and the elastic response of the vessel, among others.
The introduced model implementation can be more reusable and understandable for the general scientific community.
Keywords: acausal modeling, MODELICA programming language, OPENMODELICA modeling environment, DYMOLA
modeling environment, Cardiovascular system
1. Introduction
Fernandez de Canete et al.[1] described a closed loop
cardiovascular model and short-term and long-term mech-
anism of arterial pressure control in the Modelica language
and DYMOLA tool. The model is decomposed into several
distinct components, which express computation of output
volume, pressure and flow, based on elastance input, input
flow and pressure. The basic blocks from standard Mod-
elica libraries are composed together to model the whole
hemodynamics with the control mechanism[1]. The pro-
cess of computing of similar equations (flowrate,volume,
pressure, elastance and resistance) is repeated in multiple
blocks of pulmonary circulation, systemic circulation and
heart circulation[1].
Redundant definition of similar relations and the mixing
of more phenomenon in a single component were identified
as antipatterns (bad practices) by Tiller[2], who recom-
mends expressing single phenomenon as a general com-
ponent model. This should be conducted by composing
a subsystem model with instances of component models
Corresponding author
Email address: kofranek@gmail.com (Jiˇı Kofr´anek)
and utilizing the object-oriented features of the Modelica
language.
Additionally the model[1] defines the flow of the compu-
tation of output values from input values. It is identified
as causal or signal-oriented modeling. Modelica allows the
expression of models not only in the causal (signal) man-
ner, but also in an acausal manner. The acausal mod-
eling technique is based on the fact that model variables
are expressed declaratively, and the Modelica tool iden-
tifies which are the dependent and independent variables
upon compilation. We have shown that an acausal de-
scription captures the essence of the modeled reality much
better, and the simulation models are much more legible
and, thus, also less prone to mistakes[3].
With the greatest respect to the authors of the above-
mentioned publication, we would like to introduce an al-
ternative implementation of the original model with rec-
ommendations to reduce redundancy and utilize acausal
and object-oriented modeling techniques. An example of
our approach is shown with respect to an elastic vessel
component with unstressed volume and external pressure.
As a result of the acausal approach we believe that
the alternative implementation method introduced can be
more reusable by the scientific community for educational
1
T.Kulh´anek et al. / Computers in Biology and Medicine 00 (2014) 1–8 2
as well as for research purposes.
Additionally, Modelica tools allow rich sets of numerical
solving methods for further simulation and analysis, as
well as export to third party tools used by computational
physiologists.
Supplementary materials contain a full source code of
the alternative model implementation derived from the
original publication in the Modelica language together
with dependent libraries.
2. Methods
Model behavior (equations) can be expressed in Model-
ica in text form and in graphical form – diagram. Later
in this paper we present text form as a source code listing
and graphical form as detailed by the figures.
To introduce an alternative implementation of the orig-
inal model, the following recommendations should be fol-
lowed:
(a) Introduce an acausal connector for a hydraulic domain
with ”flow” variable q–flowrate and ”non-flow” vari-
able p–pressure. Introduce a single component for an
elastic vessel, a hydraulic resistor and a cardiac valve
with one or two acausal connectors and describe equa-
tions of volumetric flow, volume and pressure based
on the parameters of elastance and resistance.
(b) Separate a general model from a control model and a
specific experiment. Utilize object-oriented features
of the Modelica language to reuse the architecture
model and replace the concrete implementation of the
subsystem model with a derived model experiment.
(c) Prefer the text form of Modelica notation to define
equations on a component level model. Prefer the di-
agram form of Modelica notation to express relations
between components on a higher subsystem and sys-
tem level model.
We have recently published a Modelica library, referred
to as Physiolibrary[4], to support modeling in the phys-
iological domain. The library contains several hydraulic
components that can be directly used to model the cardio-
vascular system following the recommendation (a). Table
1 contains icon, description and equations characterizing
the components. The equations of these components are
defined in Modelica using text form following the recom-
mendation (c) and can be seen in supplementary materials.
The models of the pulmonary circulation and the sys-
temic circulation are defined by diagrams in Figures 1 and
2 utilizing the components from Physiolibrary (from table
1). The models are almost equivalent to the pulmonary
and systemic blocks from the original work[1], apart from
the pulmonary and aortic valves, that we moved to the
model of the heart subsystem described later.
Icon Description
Hydraulic connectors – the MODELICA tool gen-
erates the following equations to keep ”Kirchhoff
law” analogy for all connected component’s non-
flow variables p1..pn- pressure and ”flow” variable
q1..qn- flowrate:
p1=p2=... =pn(1)
n
X
i=1
qi= 0 (2)
Hydraulic Resistor – characterized by G
conductance parameter (reciprocal value of resis-
tance G= 1/R) and defined by relation among
quantities from both hydraulic connectors, q
flowrate and (pout pin) –pressure gradient:
q=G(pout pin) (3)
Elastic compartment – characterized by C
compliance parameter(reciprocal value of elas-
tance C= 1/E), V0–unstressed volume parame-
ter, p0–external pressure parameter and by equa-
tion among p–pressure, V–volume and q–flowrate:
pp0=0 if V <V0
VV0
Cotherwise (4)
dV
dt=q(5)
Valve is characterized by the direction where the
flow is allowed, by inflow and backflow conduc-
tance.
2D natural cubic interpolation spline defined by
x, y and slope points. Used to define curve deter-
mined by empirical data.
Table 1. Icon and description of hydraulic components used from
Physiolibrary[4].
2
T.Kulh´anek et al. / Computers in Biology and Medicine 00 (2014) 1–8 3
Additionally the systemic circulation contains a block
to measure blood properties in aorta, it extends the ex-
isting block from Physiolibrary that measures flow. Addi-
tionally it computes systolic, diastolic and mean pressure
during a single cardiac cycle. The mean arterial pressure
Pmean during the cardiac cycle is counted as the average
of pressure going into the component(qinpressure ) from the
beginning of the cardiac cycle (T0) during the heart period
(H P ) by formula:
Pmean =RT0+HP
T0qinpressure dt
HP (6)
The component is declared by icon ( ) and by the
statements and equations in the following Modelica listing
(shortened):
model AortaFlowMeasurement "measures flow,
diastolic, systolic and mean pressure"
...
discrete Boolean b(start=false)"beat signal";
Time T0(start=0)"start of cardiac cycle ";
discrete Time HP(start=1)"length of cardiac cycle";
initial algorithm
Ps := q_in.pressure;
Pd := q_in.pressure;
equation
Pmax =max(Pmax, q_in.pressure);
Pmin =min(Pmin, q_in.pressure);
b=der(q_in.pressure)> 0;
when {band not pre(b)} then
T0 =time "initial time of current cardiac cycle";
HP =if (pre(T0)> 0)then time -pre(T0)else 1;
Pmean =SumPressure / pre(HP)"mean pressure";
Ps =Pmax "systolic pressure=maximum pressure";
Pd =Pmin "diastolic pressure=minimal pressure";
reinit(SumPressure, 0);
reinit(Pmax, q_in.pressure);
reinit(Pmin, q_in.pressure);
end when;
der(SumPressure)=q_in.pressure;
end AortaFlowMeasurement;
We separate out the variable elastance(compliance) gen-
erator from the heart subsystem in Figure 3.
The block ”pulsos” (identified by icon ( ) generates
the relative heart phase within the heart period during a
simulation time based on the heart rate signal[1]. However,
in contrast to the original implementation we define it in
text form per recommendation (c), and with the changed
behavior: the heart period HP is changed per the input
signal heart rate only at the moment when the new cardiac
cycle begins. The output signal ”heartphase” modeled in
the original work can be presented as the following equa-
tion:
heartphase =time T0
HP (7)
Thus, the model behavior is defined by the following list-
ing:
model pulsos "relative position in heart period"
discrete Physiolibrary.Types.Time HP(start =0)
"heart period -duration of cardiac cycle";
Boolean b(start =false);
discrete Physiolibrary.Types.RealIO.TimeOutput T0
"start time of cardiac cycle";
Physiolibrary.Types.RealIO.FrequencyInput HR;
Modelica.Blocks.Interfaces.RealOutput heartphase;
equation
b=time -pre(T0)>=pre(HP);//new cycle begins?
when {initial(),b}then
T0 =time; //update start time of cardiac cycle
HP =1/HR;//update heart period
end when;
heartphase = (time -pre(T0))/pre(HP);
end pulsos;
The heart model in Figure 4 consists of the left and
right part; they are driven separately by the appropriate
elastance generator, but with the same heart rate signal.
Finally, the generic model of the hemodynamics without
any control mechanism is shown in Figure 5. Note that
the diagram looks very similar to the usual conceptual
decomposition of the cardiovascular system.
Following recommendation (b), the model defines heart,
systemicCirculation and pulmonaryCirculation compo-
nents as ”replaceable” to allow replacement with some de-
rived subtype of the model as seen from the text form of
the model in the following listing:
model Hemodynamics_pure
replaceable Parts.Heart heart;
replaceable Parts.SystemicCirculation systemicCirculation;
replaceable Parts.PulmonaryCirculation pulmonaryCirculation;
...
Figure 5. Complete model of the cardiovascular system without any
regulation.
To simulate a particular scenario or control mechanism,
selected parameters of the model need to be manipu-
lated externally during simulation. We introduced derived
model SystemicCirculation baro and redeclared the con-
stant block with a compatible control block as seen in the
following listing which allows manipulation with the model
parameter by an external component.
model SystemicCirculation_baro
extends FernandezModel.Parts.SystemicCirculation(
redeclare HydraulicConductanceControl RPS,
redeclare HydraulicComplianceControl ECV);
...
The subsystem SystemicCirculation baro contains ad-
ditional input connectors connected with the previously
redeclared control blocks as shown in Figure 6.
3
T.Kulh´anek et al. / Computers in Biology and Medicine 00 (2014) 1–8 4
(a) (b)
Figure 1. Pulmonary circulation model icon (a) and its constitutive diagram (b). The elastic compartments and the resistors are connected
via hydraulic connectors. The model parameters are presented as block Const with an appropriate type and value.
(a) (b)
Figure 2. Systemic circulation icon (a) and its constitutive diagram (b). The elastic compartments and the resistors are connected via
hydraulic connectors. The model parameters are presented as block Const with an appropriate type and value.
(a) (b)
Figure 3. Compliance generator icon (a) and its constitutive diagram (b). The relative elastance is generated from the relative time position in
the heart period via empirical curves generated from points. As Physiolibrary uses a connector for compliance – reciprocal value of elastance
– we convert elastance to compliance with a block 1
E
4
T.Kulh´anek et al. / Computers in Biology and Medicine 00 (2014) 1–8 5
(a) (b)
Figure 4. Heart model icon (a) and its constitutive diagram (b). The valves are connected with the elastic compartment modeling the
ventricle driven by the variable elastance component. Heart rate is shared but other parameters are different for each part.
Figure 6. SystemicCirculation prepared to be driven by elastance of vena cava and peripheral resistance coming from outside.
5
T.Kulh´anek et al. / Computers in Biology and Medicine 00 (2014) 1–8 6
A similar technique is used for the heart component in
Figure 7. The model of controllable hemodynamics is an
Figure 7. The Heart model prepared to be driven by an elastance,
and a change of the heart rate from outside control mechanism.
extension of the generic model of hemodynamics. The
model uses new implementation of the controllable heart
and systemic circulation and introduces input and output
connectors specific for the baroreceptor control system, as
seen on the following listing and in Figure 8.
model Hemodynamics_controllable
extends Models.Hemodynamics_pure(
redeclare Heart_baro heart,
redeclare SystemicCirculation_baro systemicCirculation);
...
(a) (b)
Figure 8. Icon of the controllable model of hemodynamics (a) ex-
tended by input and output connectors and it’s constitutive diagram
(b) connecting new connectors with the redeclared implementation
of controllable heart and systemic circulation.
The controllable model of hemodynamics is connected
with baroreceptor module and with the module driving the
simulation of stenosis, as shown in Figure 9
Figure 9. The model of hemodynamics with baroreceptor control and
a module manipulating the elastance during simulation – stenosis of
vena cava simulation.
3. Results
The implementation was changed in the case of block
pulsos and block AortaF low Measur ement. Other parts
are equivalent to the original work and use the same initial
values of state variables and parameters [1]. The model
can be executed in a free OPENMODELICA tool devel-
oped by Open Source Modelica Consortium[5]. The dy-
namics of the aortic pressure during a sudden change of
elastance of vena cava shown in Figure 10 gives similar re-
sults as the original work. The evolution of heart rate and
ventricle elastance are smoother because the mean arterial
pressure and the heart period signals are changed only at
the beginning of the next cardiac cycle.
4. Discussion and Summary
We believe that the recommendation (a) applied to the
model allows it to better capture the essence of the mod-
eled reality, in contrast to the original ”signal”-like ap-
proach where it might be hard to deduce the concept of
the model for a user who is not familiar with this modeling
technique. Additionally further modification or enhance-
ments of the basic component, e.g., elastic vessel by adding
non-linear compliance or active tone, will be propagated
to the existing model using this component with no or
minimal need for further modification of the model. Such
modification will appear in the model within the modi-
fied components as modified behavior or new parameters
which can be set.
For example, the original model expresses the pressure
p, volume Vand compliance C(reciprocal value of elas-
tance) as equation p=V
C. In contrast to the original
model, the alternative implementation modifies the basic
element of elastic compartment with unstressed volume V0
and external pressure p0as equation (4). V0and p0are
set to 0 by default and can be changed in further model
experiments.
6
T.Kulh´anek et al. / Computers in Biology and Medicine 00 (2014) 1–8 7
(a) (b)
(c) (d)
Figure 10. Simulation of the aortic pressure response on vena cava elastance reduction at the simulation time 20s for model with(a) and
without(b) baroreceptor control showing the evolution of heart rate (c) and ventricle elastance (d).
Such enhancement is propagated by inheritance to all
elastic compartments used within the model. When the
original model[1] needs to be enhanced with such features
of unstressed volume or external pressure effect, then more
than one component (compartment with valve, compart-
ment without valve and systemic circulation) needs to be
modified.
The recommendation (b) applied to the generic model
brings the advantage of a major feature of object-oriented
programming – polymorphism. A model (e.g. Hemody-
namics pure) composed by a subsystem model of a cer-
tain type (e.g. Heart) will work correctly with another
subsystem that is compatible with the certain type(e.g.
Heart baro). The subsystem models might be reimple-
mented and replaced in an existing model without touch-
ing the generic model. Therefore, it may be appropriate
for specific in silico experiments.
The Modelica standard library allows equations to be
expressed using blocks in diagrams; however, it should not
be overused. For example, the recommendation (c) ap-
plied to the component ”pulsos” shows the equation (7)
cleanly in the text form of Modelica notation (see the list-
ing above). During the reimplementation of this block, we
reformulated the method of changing the heart rate signal
where heart period and pulse generation are updated at
the beginning of the next cardiac cycle. This facilitates
the computation. In the original work, the heart period
and pulse generation are changed immediately. This dif-
ference is seen in simulating the baroreflex control, where
the control mechanism is smoother, as seen in Figure 10.
On the higher subsystem level, the recommendation (c)
is optional. If there are more relations among components
then a diagram form may be more understandable than a
textual form. For example, the block VariableElasticity-
Generator in Figure 3 can be expressed in an equivalent
text form as seen in the following model listing:
model VariableElasticityGenerator_text
...
equation
pulsos.HR =heartRate;
curve.u =pulsos.heartPhase;
hydrauliccompliance =0.87 *(maxelastance/curve.val);
end VariableElasticityGenerator_text
The original work contains a long-term pressure control
mechanism, which was not implemented within this alter-
native implementation. However, it can be done following
the above recommendations similar to the presented short-
term ”baroreflex” pressure control.
We believe that the introduced alternative approach to
modeling the cardiovascular system will enhance the un-
derstandability and reusability of the excellent work done
by the authors of the original model.
5. Acknowledgments
This paper describes the outcome of research that has
been accomplished as part of a research program funded
by the Ministry of Industry and Trade of the Czech Re-
public via the grant FR—TI3/869; and by The Ministry
of Education, Youth and Sports via the grant SVV-2014-
260033.
7
T.Kulh´anek et al. / Computers in Biology and Medicine 00 (2014) 1–8 8
References
[1] J. Fernandez de Canete, J. Luque, J. Barbancho, V. Munoz,
Modelling of long-term and short-term mechanisms of arterial
pressure control in the cardiovascular system: An object-oriented
approach., Computers in biology and medicine 47 (2014) 104–12.
doi:10.1016/j.compbiomed.2014.01.006.
[2] M. Tiller, Patterns and Anti-Patterns in Modelica, Proceedings
Modelica 2008 Conference (2008) 647–655.
[3] J. Kofr´anek, M. Matej´ak, P. Privitzer, M. Tribula, Causal or
acausal modeling: labour for humans or labour for machines,
Technical Computing Prague (2008) 1–16.
[4] M. Matej´ak, T. Kulh´anek, J. ˇ
Silar, P. Privitzer, F. Jeˇzek,
J. Kofr´anek, Physiolibrary -modelica library for physiology,
in: Proceedings 10th Modelica Conference, March 10-12, 2014,
Lund, Sweden, 2014, pp. 499–505.
URL http://dx.doi.org/10.3384/ecp14096499
[5] P. Fritzson, P. Aronsson, H. Lundvall, K. Nystr¨om, A. Pop,
L. Saldamli, D. Broman, The OpenModelica Modeling, Simula-
tion, and Software Development Environment, Simulation News
Europe 44 (45).
8

Supplementary resource (1)

Data
July 2016
Tomas Kulhanek · Jiri Kofránek · Marek Matejak
... Notice that in the special case pass ¼ 0, the pressure gradient _ p remains at the threshold level of Pknee: Notice also that the normal flow through cardiac valves is established when derivative _ p is positive. In Equations (13) and (14) the parameter g on with typical values between (1, 25013e À0:7 and 4, 16708e À0:7 [m3/(Pa.s)]) reported in the Huikeshoven's work [28], defines the output flow and the g off parameter with a value of 1, 25e À12 [m3/(Pa.s)] reported by Matej ak [29], defines the flow of return. ...
... Modelica is a major breakthrough in the so-called field of Object Oriented Modelling of Dynamic Systems [32]. At present, there is a growing trend in developing Modelica libraries for modelling human physiology [26][27][28][29][30][33][34][35][36]. We selected OpenModelica (OpenModelica is an open source programming environment for the language Modelica. ...
Article
There is a lack of medical simulation tools that can be understood and used, at the same time, by researchers, teachers, clinicians and students. Regarding this issue, in this work we report a virtual simulator (developed in OpenModelica) that allow to experiment with the fundamental variables of the cardiovascular and respiratory system of a neonate. We extended a long-tested lumped parameter model that represents the cardiovascular and respiratory physiology of a neonate. From this model, we implemented a physiological simulator using Modelica. The fidelity and versatility of the reported simulator were evaluated by simulating seven physiological scenarios: two of them representing a healthy infant (newborn and 6-months old) and five representing newborns affected by different heart diseases. The simulator properly and consistently represented the quantitative and qualitative behaviour of the seven physiological scenarios when compared with existing clinical data. Results allow us to consider the simulator reported here as a reliable tool for researching, training and learning. The advanced modelling features of Modelica and the friendly graphical user interface of OpenModelica make the simulator suitable to be used by a broad community of users. Furthermore, it can be easily extended to simulate many clinical scenarios.
... V Modelice je poměrně snadné vytvářet modely cirkulačního systému nejrůznější složitosti -od jednoduchých modelů cirkulačního systému proměnné složitosti [27,28] až velmi komplexní modely integrativní fyziologie [29][30][31]. ...
... K pochopení patogeneze tohoto poměrně spletitého děje pomůže interaktivní model (viz Obr. [24][25][26][27][28][29]. ...
Article
Výukové modely cirkulace a přenosu krevních plynů umož-ňují názorně demonstrovat dynamické propojení regulačních smyček a jejich projevy při nejrůznějších patogenezích poruch kardiorespiračního systému. Jejich nasazení ve výuce mediků prokázalo jejich vysokou pedagogickou účinnost.
... We have criticized a block-oriented approach and have proposed the acausal, component-based implementation of pulsatile cardiovascular system [31,32]. ...
... The short-term mechanism published by Mitamura et al. [35] regulates heart rate, systemic resistance, ventricular and vena cava elastance via a black-box model with transfer function. Such regulation can be modeled by the delayed measurement of mean arterial pressure proposed by Kulhanek et al. [31] which facilitates numerical stability and in which causality is set by the model definition; therefore, no acausal domain is used here, see Figure 9. ...
Research
Full-text available
Not published work, rejected by reviewers no time to rewrite and republish. Several models of a cardiovascular system, integrated with short-term and long-term control mechanisms, are pre- sented with a methodology of an object-oriented modeling technique in Modelica language.
... Introduction equation-based, object-oriented implementation of the pulsatile cardiovascular system over a block-oriented approach are described in detail in [12]. Therefore, an alternative implementation of the HumMod model was introduced in the object-oriented acausal Modelica language as Physiomodel [13]. ...
Article
Purpose The main objective is to accelerate the mathematical modeling of complex systems and offer the researchers an accessible and standardized platform for model sharing and reusing. Methods We describe a methodology for creating mathematical lumped models, decomposing a system into basic components represented by elementary physical laws and relationships expressed as equations. Our approach is based on Modelica, an object-oriented, equation-based, visual, non-proprietary modeling language, together with Physiolibrary, an open-source library for the domain of physiology. Results We demonstrate this methodology on an open implementation of a range of simple to complex cardiovascular models, with great complexity variance (simulation time from several seconds to hours). The parts of different complexity could be combined together. Conclusions Thanks to the equation-based nature of Modelica, a hierarchy of subsystems can be built with an appropriate connecting component. Such a structural model follows the concept of the system rather than the computational order. Such a model representation retains structural knowledge, which is important for e.g., model maintainability and reusability of the components and multidisciplinary cooperation with domain experts not familiar with modeling methods.
... Recently we have shown that the block oriented aproach in modeling pulsatile cardiovascular system introduced by Fernandez de Canete et al. [8] may bring problems of further development and understandability. An acausal approach was shown by Kulhánek et al. [9]. ...
Conference Paper
Full-text available
This work introduces experiences of teaching modeling and simulation for graduate students in the field of biomedical engineering. We emphasize the acausal and object-oriented modeling technique and we have moved from teaching block-oriented tool MATLAB Simulink to acausal and object oriented Modelica language, which can express the structure of the system rather than a process of computation. However, block-oriented approach is allowed in Modelica language too and students have tendency to express the process of computation. Usage of the exemplar acausal domains and approach allows students to understand the modeled problems much deeper. The causality of the computation is derived automatically by the simulation tool.
Conference Paper
In order to teach different modeling techniques we demonstrate equation-based, block-schema based, compartment and component-based modeling using acausal and object-oriented modeling language - Modelica. Hands-on implementation using all these techniques and comparing them towards same system (in our case glucose-insulin regulation) we teach pros and cons of each technique. Equation-based or block-schema based may be rapidly implemented from literature. However, compartment based or component-based models brings better understanding of modeled reality. When students have such experience, they tend to assess published papers more critically and do more complex system analysis.
Article
Full-text available
Abstract A software simulator (SS) of the physiological mechanisms that provide the acute control of human hemodynamics is created. SS is based on a mathematical model (MM) describing reflexes, the source of information in which are mechanoreceptors located in the right ventricle of the heart, in the aortic arch and in the carotid sinuses. A previously developed model of an uncontrollable cardiovascular system with a pulsating heart is used as an object of control (OC). In MM, the duration of the cardiac cycle, the rigidity and the unstressed volume of the vascular areas of the body are the target of regulatory actions. MM and OC are realized in C++. Oriented to the physiologist, the interface provides him / her with the ability to turn on / off any of the reflexes, to conduct test studies (including imitation of dosed blood loss or blood transfusion). SS is still functions autonomously. Subsequently, after modeling also endocrine physiological mechanisms of long-term effects on hemodynamics, SS will become a virtual tool for research of complex mechanisms that optimize human hemodynamics. Problems in programming 2019; 1: 90-98 Keywords mathematical model; physiology; blood pressure; reflex regulation; information technology
Conference Paper
Physiomodel (http://www.physiomodel.org) is our reimplementation and extension of an integrative physiological model called HumMod 1.6 (http://www.hummod.org) using our Physiolibrary (http://www.physiolibrary.org). The computer language Modelica is well-suited to exactly formalize integrative physiology. Modelica is an equation-based, and object-oriented language for hybrid ordinary differential equations (http:// www.modelica.org). Almost every physiological term can be defined as a class in this language and can be instantiated as many times as it occurs in the body. Each class has a graphical icon for use in diagrams. These diagrams are self-describing; the Modelica code generated from them is the full representation of the underlying mathematical model. Special Modelica constructs of physical connectors from Physiolibrary allow us to create diagrams that are analogies of electrical circuits with Kirchhoff's laws. As electric currents and electric potentials are connected in electrical domain, so are molar flows and concentrations in the chemical domain; volumetric flows and pressures in the hydraulic domain; flows of heat energy and temperatures in the thermal domain; and changes and amounts of members in the population domain.
Conference Paper
Full-text available
Modelica is a modern, strongly typed, declarative, and object-oriented language for modeling and simulation of complex systems. This paper gives a quick overview of some aspects of the OpenModelica environment – an open-source environment for modeling, simulation, and development of Modelica applications. An introduction of the objectives of the environment is given, an over-view of the architecture is outlined and a number of examples are illustrated.
Conference Paper
Full-text available
Physiolibrary is a free open-source Modelica library designed for modeling human physiology. It is accessible on the Modelica Libraries web page at https://www.modelica.org/libraries. This library contains basic physical laws governing human physiology, usable for cardiovascular circulation, metabolic processes, nutrient distribution, thermoregulation, gases transport, electrolyte regulation, water distribution, hormonal regulation and pharmacological regulation.
Article
Full-text available
Modelica is a modern, strongly typed, declarative, and object-oriented language for modeling and simulation of complex systems. This paper gives a quick overview of some aspects of the OpenModelica environment - an open-source environment for modeling, simulation, and development of Modelica applications. An introduction of the objectives of the environment is given, an over- view of the architecture is outlined and a number of examples are illustrated.
Article
In 1977, Christopher Alexander, Sara Ishikawa and Murray Silverstein published the book "A Pat-tern Language: Towns, Buildings, Construction" [1]. Although the topic of the book was architecture, it inspired Erich Gamma, Richard Helm, Ralph John-son and John Vlissides in their approach to pattern based software development. This ultimately led to the publication, in 1994, of the book "Design Pat-terns: Elements of Reusable Object-Oriented Soft-ware" [2] (also known as the "Gang of Four" or "GoF" book) which launched a major movement in the software development community toward pattern based software design. The idea behind the pattern movement is to formally identify sound design solu-tions to common problems. Since the publication of "Design Patterns" there have been numerous books published on the topic of software patterns. Several of these books dealt with the sub-topic of anti-patterns [3,4]. In contrast to a normal pattern, anti-patterns are an attempt to iden-tify common bad practices and ways they can be refactored using sound design patterns. The emphasis of the pattern community is, un-derstandably, on object-oriented languages with pro-cedural semantics. This paper will build on previous work [5] identifying patterns in Modelica. These design patterns include how medium properties can be handled in a flexible way, how to deal with sys-tems with varying causality and differential index, idealized plant control and, finally, coordination be-tween models. In addition, this paper includes some extensive discussion of anti-patterns to avoid redun-dant code, awkward data management and inflexible models. This paper continues the discussion on patterns within the Modelica community with the hope that this will encourage others to contribute patterns of their own. One obvious benefit of such efforts will be additional resources for Modelica developers to make the process of developing models in Modelica easier. In addition, we expect that many of the pat-terns discussed will also generate proposals for im-proving the Modelica language through new features and semantics.
U Nemocnice 5, 12853 Praha 2, Czech Republic E-mail address: kofranek@gmail.com (J. Kofránek) Received 15
  • Tomáš Kulhánek
Tomáš Kulhánek, Jiří Kofránek n, Marek Mateják Institute of Pathological Physiology, Charles University in Prague, U Nemocnice 5, 12853 Praha 2, Czech Republic E-mail address: kofranek@gmail.com (J. Kofránek) Received 15 May 2014; accepted 22 August 2014
Causal or acausal modeling: labour for humans or labour for machines
  • J Kofránek
  • M Mateják
  • P Privitzer
  • M Tribula
J. Kofránek, M. Mateják, P. Privitzer, M. Tribula, Causal or acausal modeling: labour for humans or labour for machines, Technical Computing Prague (2008) 1-16.