Windkessel package

Version 1.0.1 by Lawrence Murray

Three-element windkessel model of the arterial system.



This samples from the prior and posterior distributions. The oct/ directory contains a few functions for plotting these results (GNU Octave and OctBi required). In particular, after ./, the plot_and_print function will produce SVG figures in the figs/ directory.

Synthetic inputs and observations are provided in the data/ directory, but new files may be generated with the script (GNU Octave and OctBi required).


The three-element windkessel model (Frank 1899, Westerhof et al. 2009, Kind et al. 2010) can be given by the discrete-time transition model:

and observation model:

where $P_a$ is aortal blood pressure, $P_p$ peripheral blood pressure, and $F$ blood flow. $R$, $C$ and $Z$ are parameters.

The windkessel model has linear-Gaussian transition and observation models, and so is suitable for inference with the Kalman filter. The package has been developed primarily for demonstrating and testing inference methods.

The model is one of the examples given in the LibBi introductory paper (Murray 2013). The package may be used to reproduce the results in that paper.


N. Westerhof, J.-W. Lankhaar, and B. E. Westerhof. The arterial windkessel. Medical and Biological Engineering and Computing, 47(2):131–141, 2009. doi: 10.1007/s11517-008-0359-2.

O. Frank. Die grundform des arterielen pulses erste abhandlung: mathematische analyse. Zeitschrift fuer Biologie, 37:483–526, 1899.

T. Kind, T. J. C. Faes, J.-W. Lankhaar, A. Vonk-Noordegraaf, and M. Verhaegen. Estimation of three- and four-element windkessel parameters using subspace model identification. IEEE Transactions on Biomedical Engineering, 57:1531–1538, 2010. doi: 10.1109/TBME.2010.2041351.

L. M. Murray. Bayesian state-space modelling on high-performance hardware using LibBi. 2013.