-
Notifications
You must be signed in to change notification settings - Fork 13
AorticFlowWave
A Matlab ® script for creating aortic inflow waveforms, with optional input parameters specifying their properties.
Several models of the arterial circulation require an aortic flow wave as an input. This page describes AorticFlowWave.m, a Matlab ® script for creating aortic inflow waveforms under a range of conditions. It generates flow waves based on the aortic flow wave presented in Mynard et al..
AorticFlowWave can be used to obtain either:
- a baseline aortic inflow waveform with typical properties, or
- an aortic waveform with prescribed properties, such as a specific stroke volume.
AorticFlowWave can be called using
inflow = AorticFlowWave(params);
where params is an optional input argument, a structure of input parameters (detailed here).
A baseline aortic inflow waveform can be obtained using
inflow = AorticFlowWave;
where the optional input argument has been omitted, meaning that all optional parameters are set to their default, baseline values. This produces the flow waveform shown below.
The baseline aortic inflow waveform, with default properties: HR = 75 bpm, SV = 83 ml, LVET = 282 ms, sampling frequency = 1000 Hz.
The output variable, inflow, provides the specification of the generated inflow waveform (with values of parameters such as the heart rate, HR, and stroke volume, SV), and the values of the inflow waveform itself, specified as:
- inflow.t: a row vector of time values
- inflow.v: a row vector of inflow waveform values (ml / s).
Bespoke aortic inflow waveforms can be obtained by specifying one of more input parameters to change them from their default values. For instance, varying the stroke volume from 50 to 100 ml (in increments of 10 ml) produces the following waveforms:
Aortic inflow waveforms with SV varied from 50 to 100 ml whilst LVET is held at the default value of 283 ms.
Similarly, one could adjust the left ventricular ejection time as shown in this example.
The plot shown above of varying SV can be reproduced using the following code:
params.save_plot = true; params.plot_name = 'vary_sv'; params.plot_multiple = true;
SVs = 50:10:100;
for k = 1:6,
params.SV = SVs(k);
AorticFlowWave(params);
end
Similarly, one could adjust the left ventricular ejection time from 250 to 350 ms to produce the following waveforms (which have the SV fixed at the default value of 83 ml):
Aortic inflow waveforms with LVET varied from 250 to 350 ms whilst SV is held at the default value of 83 ml.
This plot can be reproduced using the following code:
params.save_plot = true; params.plot_name = 'vary_lvet'; params.plot_multiple = true;
LVETs = 250:20:350;
for k = 1:6,
params.LVET = LVETs(k);
AorticFlowWave(params);
end
The following properties of the flow waveform can be specified, resulting in a bespoke flow waveform:
- params.HR : The heart rate (bpm).
- params.SV : The stroke volume (ml).
- params.CO : The cardiac output (l/min).
- params.LVET : The left ventricular ejection time (secs).
- params.T_Peak_Flow : The time of peak flow (secs).
- params.T_dia : The time of the start of diastole (which is slightly later than LVET, as T_dia = LVET + duration of reverse flow)
- params.rev_flow : The amount of reverse flow (0 indicates none, 1 indicates the amount prescibed by the default template, and values > 1 produce a larger notch).
- params.T : The duration of the flow wave (i.e. 60/HR).
- params.fs : The sampling frequency of the flow waveform (Hz).
- params.contractility_const : A multiplication factor applied to the duration of the systolic uplslope of the flow waveform, designed to model changes in contractility.
In addition, the following properties determine whether a plot of the flow wave is generated and saved:
- params.do_plot : A logical indicating whether or not to plot the generated flow waveform.
- params.save_plot : A logical indicating whether or not to save the generated flow waveform.
- params.plot_name : The filename given to a saved plot.
- params.file_path : The directory in which to save the plot.
- params.plot_multiple : Whether to allow multiple flow waves to be plotted on the same plot (see, for instance, the examples).
All of these properties are optional, and will revert to their default values if not specified. Additional details are now provided for those properties marked by a *.
Part of the wider Pulse Wave Database Project