Location: Respiratory System @ 289d780365eb / lung_mechanics.cellml

Author:
Soroush Safaei <ssaf006@aucklanduni.ac.nz>
Date:
2018-08-09 10:48:59+12:00
Desc:
change units
Permanent Source URI:
https://models.physiomeproject.org/workspace/3a4/rawfile/289d780365ebd529d1049d6e62c412fc225b7f9e/lung_mechanics.cellml

<?xml version='1.0'?>
<model name="lung_mechanics" xmlns="http://www.cellml.org/cellml/1.1#" xmlns:cellml="http://www.cellml.org/cellml/1.1#" xmlns:xlink="http://www.w3.org/1999/xlink">
    <import xlink:href="Units.cellml">
        <units name="m3" units_ref="m3"/>
        <units name="mM" units_ref="mM"/>
        <units name="m3_per_s" units_ref="m3_per_s"/>
        <units name="m6_per_J" units_ref="m6_per_J"/>
        <units name="m3_per_J" units_ref="m3_per_J"/>
        <units name="per_m" units_ref="per_m"/>
        <units name="J_per_m3" units_ref="J_per_m3"/>
        <units name="J_s_per_m6" units_ref="J_s_per_m6"/>
        <units name="J_s2_per_m6" units_ref="J_s2_per_m6"/>
        <units name="J_s2_per_m5" units_ref="J_s2_per_m5"/>
        <units name="J_per_s" units_ref="J_per_s"/>
        <units name="J_per_m6" units_ref="J_per_m6"/>
        <units name="J_s_per_m3" units_ref="J_s_per_m3"/>
    </import>
    <component name="lung_mechanics">
        <variable name="t" public_interface="in" units="second"/>
        <variable name="time" public_interface="out" units="second"/>
        <!-- air pressure-->
        <variable initial_value="0.0" name="u_ao" units="J_per_m3"/>
        <variable initial_value="0.0" name="u_l" units="J_per_m3"/>
        <variable name="u_tr" units="J_per_m3"/>
        <variable name="u_b" units="J_per_m3"/>
        <variable name="u_A" public_interface="out" units="J_per_m3"/>
        <variable name="u_pl" units="J_per_m3"/>
        <variable initial_value="-5" name="u_cw" units="J_per_m3"/>
        <variable name="u_mus" units="J_per_m3"/>
        <variable initial_value="0.0" name="u_trpl" units="J_per_m3"/>
        <variable initial_value="0.0" name="u_bpl" units="J_per_m3"/>
        <variable initial_value="0.0" name="u_Apl" units="J_per_m3"/>
        <!-- air flow-->
        <variable name="v_in" public_interface="out" units="m3_per_s"/>
        <variable name="v_lt" public_interface="out" units="m3_per_s"/>
        <variable name="v_l" public_interface="out" units="m3_per_s"/>
        <variable name="v_tb" public_interface="out" units="m3_per_s"/>
        <variable name="v_A" public_interface="out" units="m3_per_s"/>
        <variable name="v_tr" public_interface="out" units="m3_per_s"/>
        <variable name="v_b" public_interface="out" units="m3_per_s"/>
        <variable name="v_cw" public_interface="out" units="m3_per_s"/>
        <!-- unstressed volume-->
        <!--        var q_l: m3 {init: 34.4e-6, pub: out};
        var q_tr: m3 {init: 6.63e-6, pub: out};
        var q_b: m3 {init: 18.7e-6, pub: out};
        var q_A: m3 {init: 1.263e-6, pub: out};-->
        <variable initial_value="34.4e-3" name="q_l" public_interface="out" units="m3"/>
        <variable initial_value="6.63e-3" name="q_tr" public_interface="out" units="m3"/>
        <variable initial_value="18.7e-3" name="q_b" public_interface="out" units="m3"/>
        <variable initial_value="1.263e-3" name="q_A" public_interface="out" units="m3"/>
        <variable name="q_dead" public_interface="out" units="m3"/>
        <variable name="q_lung" public_interface="out" units="m3"/>
        <!-- resistance-->
        <!--        var R_ml: J_s_per_m6 {init: 100125.9};
        var R_lt: J_s_per_m6 {init: 33038.604};
        var R_tb: J_s_per_m6 {init: 30037.769};
        var R_bA: J_s_per_m6 {init: 8012.033};-->
        <variable initial_value="1.021" name="R_ml" units="J_s_per_m6"/>
        <variable initial_value="0.3369" name="R_lt" units="J_s_per_m6"/>
        <variable initial_value="0.3063" name="R_tb" units="J_s_per_m6"/>
        <variable initial_value="0.0817" name="R_bA" units="J_s_per_m6"/>
        <!-- compliance-->
        <!--        var C_l: m6_per_J {init: 0.00000001295};
        var C_tr: m6_per_J {init: 0.000000024269246};
        var C_b: m6_per_J {init: 0.000000133582824};
        var C_A: m6_per_J {init: 0.0000020239432426};
        var C_cw: m6_per_J {init: 0.000002493206141};-->
        <variable initial_value="0.00127" name="C_l" units="m6_per_J"/>
        <variable initial_value="0.00238" name="C_tr" units="m6_per_J"/>
        <variable initial_value="0.0131" name="C_b" units="m6_per_J"/>
        <variable initial_value="0.2" name="C_A" units="m6_per_J"/>
        <variable initial_value="0.2445" name="C_cw" units="m6_per_J"/>
        <!-- parameters-->
        <variable initial_value="0.6" name="IE_ratio" units="dimensionless"/>
        <variable initial_value="12" name="RR" units="dimensionless"/>
        <!--        var u_mus_min: J_per_m3 {init: -490.333};-->
        <variable initial_value="-5" name="u_mus_min" units="J_per_m3"/>
        <variable name="tau" units="second"/>
        <variable name="T" units="second"/>
        <variable name="T_E" units="second"/>
        <variable name="T_l" units="second"/>
        <!-- respiratory muscle-->
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>time</ci>
                <apply>
                    <minus/>
                    <ci>t</ci>
                    <apply>
                        <times/>
                        <apply>
                            <floor/>
                            <apply>
                                <divide/>
                                <ci>t</ci>
                                <ci>T</ci>
                            </apply>
                        </apply>
                        <ci>T</ci>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>T</ci>
                <apply>
                    <divide/>
                    <cn cellml:units="second">60</cn>
                    <ci>RR</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>T_l</ci>
                <apply>
                    <times/>
                    <ci>T_E</ci>
                    <ci>IE_ratio</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>T</ci>
                <apply>
                    <plus/>
                    <ci>T_E</ci>
                    <ci>T_l</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>tau</ci>
                <apply>
                    <divide/>
                    <ci>T_E</ci>
                    <cn cellml:units="dimensionless">5</cn>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>u_mus</ci>
                <piecewise>
                    <piece>
                        <apply>
                            <divide/>
                            <apply>
                                <plus/>
                                <apply>
                                    <times/>
                                    <apply>
                                        <minus/>
                                        <ci>u_mus_min</ci>
                                    </apply>
                                    <ci>time</ci>
                                    <ci>time</ci>
                                </apply>
                                <apply>
                                    <times/>
                                    <ci>u_mus_min</ci>
                                    <ci>T</ci>
                                    <ci>time</ci>
                                </apply>
                            </apply>
                            <apply>
                                <times/>
                                <ci>T_l</ci>
                                <ci>T_E</ci>
                            </apply>
                        </apply>
                        <apply>
                            <and/>
                            <apply>
                                <geq/>
                                <ci>time</ci>
                                <cn cellml:units="second">0</cn>
                            </apply>
                            <apply>
                                <leq/>
                                <ci>time</ci>
                                <ci>T_l</ci>
                            </apply>
                        </apply>
                    </piece>
                    <piece>
                        <apply>
                            <times/>
                            <apply>
                                <divide/>
                                <ci>u_mus_min</ci>
                                <apply>
                                    <minus/>
                                    <cn cellml:units="dimensionless">1</cn>
                                    <apply>
                                        <exp/>
                                        <apply>
                                            <divide/>
                                            <apply>
                                                <minus/>
                                                <ci>T_E</ci>
                                            </apply>
                                            <ci>tau</ci>
                                        </apply>
                                    </apply>
                                </apply>
                            </apply>
                            <apply>
                                <minus/>
                                <apply>
                                    <exp/>
                                    <apply>
                                        <divide/>
                                        <apply>
                                            <minus/>
                                            <apply>
                                                <minus/>
                                                <ci>time</ci>
                                                <ci>T_l</ci>
                                            </apply>
                                        </apply>
                                        <ci>tau</ci>
                                    </apply>
                                </apply>
                                <apply>
                                    <exp/>
                                    <apply>
                                        <divide/>
                                        <apply>
                                            <minus/>
                                            <ci>T_E</ci>
                                        </apply>
                                        <ci>tau</ci>
                                    </apply>
                                </apply>
                            </apply>
                        </apply>
                        <apply>
                            <and/>
                            <apply>
                                <gt/>
                                <ci>time</ci>
                                <ci>T_l</ci>
                            </apply>
                            <apply>
                                <leq/>
                                <ci>time</ci>
                                <ci>T</ci>
                            </apply>
                        </apply>
                    </piece>
                </piecewise>
            </apply>
            <!-- larynx-->
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>u_l</ci>
                </apply>
                <apply>
                    <divide/>
                    <ci>v_l</ci>
                    <ci>C_l</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>v_in</ci>
                <apply>
                    <divide/>
                    <apply>
                        <minus/>
                        <ci>u_ao</ci>
                        <ci>u_l</ci>
                    </apply>
                    <ci>R_ml</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>v_lt</ci>
                <apply>
                    <divide/>
                    <apply>
                        <minus/>
                        <ci>u_l</ci>
                        <ci>u_tr</ci>
                    </apply>
                    <ci>R_lt</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>v_l</ci>
                <apply>
                    <minus/>
                    <ci>v_in</ci>
                    <ci>v_lt</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>q_l</ci>
                </apply>
                <ci>v_l</ci>
            </apply>
            <!-- trachea-->
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>u_trpl</ci>
                </apply>
                <apply>
                    <divide/>
                    <ci>v_tr</ci>
                    <ci>C_tr</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>q_tr</ci>
                </apply>
                <ci>v_tr</ci>
            </apply>
            <apply>
                <eq/>
                <ci>v_tr</ci>
                <apply>
                    <minus/>
                    <ci>v_lt</ci>
                    <ci>v_tb</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>u_tr</ci>
                <apply>
                    <plus/>
                    <ci>u_trpl</ci>
                    <ci>u_pl</ci>
                </apply>
            </apply>
            <!-- bronchea-->
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>u_bpl</ci>
                </apply>
                <apply>
                    <divide/>
                    <ci>v_b</ci>
                    <ci>C_b</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>q_b</ci>
                </apply>
                <ci>v_b</ci>
            </apply>
            <apply>
                <eq/>
                <ci>v_b</ci>
                <apply>
                    <minus/>
                    <ci>v_tb</ci>
                    <ci>v_A</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>v_tb</ci>
                <apply>
                    <divide/>
                    <apply>
                        <minus/>
                        <ci>u_tr</ci>
                        <ci>u_b</ci>
                    </apply>
                    <ci>R_tb</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>u_b</ci>
                <apply>
                    <plus/>
                    <ci>u_bpl</ci>
                    <ci>u_pl</ci>
                </apply>
            </apply>
            <!-- alveolar-->
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>u_Apl</ci>
                </apply>
                <apply>
                    <divide/>
                    <ci>v_A</ci>
                    <ci>C_A</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>q_A</ci>
                </apply>
                <ci>v_A</ci>
            </apply>
            <apply>
                <eq/>
                <ci>v_A</ci>
                <apply>
                    <divide/>
                    <apply>
                        <minus/>
                        <ci>u_b</ci>
                        <ci>u_A</ci>
                    </apply>
                    <ci>R_bA</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>u_A</ci>
                <apply>
                    <plus/>
                    <ci>u_Apl</ci>
                    <ci>u_pl</ci>
                </apply>
            </apply>
            <!-- chest wall-->
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>u_cw</ci>
                </apply>
                <apply>
                    <divide/>
                    <ci>v_cw</ci>
                    <ci>C_cw</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>v_cw</ci>
                <apply>
                    <plus/>
                    <ci>v_tr</ci>
                    <ci>v_b</ci>
                    <ci>v_A</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>u_pl</ci>
                <apply>
                    <minus/>
                    <apply>
                        <plus/>
                        <ci>u_cw</ci>
                        <ci>u_mus</ci>
                    </apply>
                    <cn cellml:units="dimensionless">5</cn>
                </apply>
            </apply>
            <!-- -->
            <apply>
                <eq/>
                <ci>q_dead</ci>
                <apply>
                    <plus/>
                    <ci>q_l</ci>
                    <ci>q_tr</ci>
                    <ci>q_b</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>q_lung</ci>
                <apply>
                    <plus/>
                    <ci>q_dead</ci>
                    <ci>q_A</ci>
                </apply>
            </apply>
        </math>
    </component>
    <component name="env">
        <variable name="t" public_interface="out" units="second"/>
    </component>
    <connection>
        <map_components component_1="env" component_2="lung_mechanics"/>
        <map_variables variable_1="t" variable_2="t"/>
    </connection>
</model>