Документация Engee
Notebook

Модель для изучения фибрилляции сердечной мышцы

В этом проекте мы воспроизводим модель, разработанную в статье [1]. Модель позволяет изучать эффекты применения внешних электрических сигналов к различным водителям сердечного ритма - центрам, возбуждающим сердечные сокращения.

Внешний сигнал в виде переменного тока различной амплитуды, частоты и длительности применения может вызвать обратимые и необратимые блокады проведения сигнала, фибрилляции предсердий и желудочков.

Модель может стать основой для создания аппаратного электронного симулятора, полезного для образовательных целей и для отладки сопряженных систем.

Описание модели

Кроме внешнего источника сигнала на схеме присутствуют подсистемы двух типов: водители ритма и модели процессов деполяризации и реполяризации.

image.png

Модель каждого из трех водителей ритма (синоатриального, атриовентрикулярного узла и пучка Гиса) являются модифицированным осцилляторами Ван дер Поля:

$$\left\{\begin{array}{l} x_i' = y_i \\ y_i' = -a_i y_i (x_i^2 - u^2) - F_i x_i (x_i + d)(x_i + e) + K_{node} (x_{i-1} - x_i) \end{array}\right.$$

где $i = 1 \dots 3$ обозначает параметры, относящиеся к каждому из трех постановщиков ритма (SA, AV и HP), а $K_{node}$ обозначает коэффициент влияния каждого водителя на систему ($K_{SA}$, $K_{AV}$ и $K_{HP}$). В модели эта система встречается в трех блоках с разными параметрами, но одной и той же структурой.

image.png

Процессы деполяризации и реполяризации моделируются при помощи уравнений модели ФитцХью — Нагумо:

$$\left\{\begin{array}{l} z_j' = k_j ( -c_j z_j (z_j - w1_j) (z_j - w2_j) - b_j v_j - g_j v_j z_j + I_j \\ v_j' = k_j h_j (z_j - v_j) \end{array}\right.$$

где индекс $j = 1 \dots 4$ обозначает параметры, относящиеся к разным компонентам кардиограммы (волнам P, T, Ta и комплексу QRS).

image.png

В зависимости от направления улучшения модели, которое будет интересно развить читателю, подсистемы одного и того же типа можно было бы упаковать в маскированные блоки и изменять только их параметры, либо представить в текстовом виде. Но предложенная модель достаточно проста для воспроизведения на основе иллюстраций, а также позволяет генерировать код с наименьшими усилиями.

Запуск модели

Запустим модель и изучим ЭКГ сердечной системы при приложении сигнала с угловой частотой 300 рад/с длительностью 1.5 секунд, начиная с момента t = 5 c.

In [ ]:
engee.open("$(@__DIR__)/ecg_external.engee")
data = engee.run("ecg_external")
Out[0]:
SimulationResult(
    "ECG" => WorkspaceArray{Float64}("ecg_external/ECG")
,
    "Pacemakers" => WorkspaceArray{Vector{Float64}}("ecg_external/Pacemakers")

)
In [ ]:
ECG = collect(data["ECG"] )
Pacemakers = collect(data["Pacemakers"])

plot(
    plot( Pacemakers.time, hcat(Pacemakers.value...)', label=["SA" "AV" "HP"] ),
    plot( ECG.time, ECG.value, label=false, c=:black ),
    layout=(2,1)
)
Out[0]:

Согласно этой модели подача такого переменного тока одновременно на три водителя сердечного ритма создает нарушение, являющееся обратимым.

Заключение

Представленная модель, при всем упрощенном характере, позволяет изучать влияние внешних сигналов на сердечный ритм.

Всю дальнейшую работу лучше всего начать с изучения исходной статьи [1].

Библиография

[1] Ryzhii M., Ryzhii E. Simulink heart model for simulation of the effect of external signals //2016 IEEE Conference on Computational Intelligence in Bioinformatics and Computational Biology (CIBCB). – IEEE, 2016. – С. 1-5.

Блоки, использованные в примере