- Author:
- Soroush Safaei <ssaf006@aucklanduni.ac.nz>
- Date:
- 2018-04-23 17:19:02+12:00
- Desc:
- respiratory model improved
- Permanent Source URI:
- https://models.physiomeproject.org/workspace/3a4/rawfile/4ae8d108b41c023162a826ef7d2f137355e6c0c6/lung_gas_exchange.cellml
<?xml version='1.0'?>
<model name="lung_gas_exchange" 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="environment">
<variable name="time" public_interface="out" units="second"/>
</component>
<component name="lung_gas_exchange">
<variable name="t" public_interface="in" units="second"/>
<!-- air flow from lung-->
<variable initial_value="1.0" name="v_I" public_interface="in" units="m3_per_s"/>
<variable initial_value="1.0" name="v_A" public_interface="in" units="m3_per_s"/>
<!-- air volume from dead space, alveolar, and pulmonary capillaries-->
<variable initial_value="1.0" name="V_D" public_interface="in" units="m3"/>
<variable initial_value="1.0" name="V_A" public_interface="in" units="m3"/>
<variable initial_value="1.0" name="V_PP" public_interface="in" units="m3"/>
<!-- blood flow from pulmonary arteries, at the exit of pulmonary capillaries, and at the exit of pulmonary shunt-->
<variable initial_value="1.0" name="Q_pa" public_interface="in" units="m3_per_s"/>
<variable initial_value="1.0" name="Q_pp" public_interface="in" units="m3_per_s"/>
<variable initial_value="1.0" name="Q_ps" public_interface="in" units="m3_per_s"/>
<!-- Inhale and Exhale-->
<variable name="Inhale" units="dimensionless"/>
<variable name="Exhale" units="dimensionless"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>Inhale</ci>
<piecewise>
<piece>
<cn cellml:units="dimensionless">1</cn>
<apply>
<gt/>
<ci>v_I</ci>
<cn cellml:units="m3_per_s">0</cn>
</apply>
</piece>
<piece>
<cn cellml:units="dimensionless">0</cn>
<apply>
<leq/>
<ci>v_I</ci>
<cn cellml:units="m3_per_s">0</cn>
</apply>
</piece>
</piecewise>
</apply>
<apply>
<eq/>
<ci>Exhale</ci>
<piecewise>
<piece>
<cn cellml:units="dimensionless">1</cn>
<apply>
<gt/>
<apply>
<minus/>
<ci>v_I</ci>
</apply>
<cn cellml:units="m3_per_s">0</cn>
</apply>
</piece>
<piece>
<cn cellml:units="dimensionless">0</cn>
<apply>
<leq/>
<apply>
<minus/>
<ci>v_I</ci>
</apply>
<cn cellml:units="m3_per_s">0</cn>
</apply>
</piece>
</piecewise>
</apply>
</math>
<!-- Gas fraction-->
<variable initial_value="0.210379" name="F_I_O2" units="dimensionless"/>
<variable initial_value="86.11" name="F_I_CO2" units="dimensionless"/>
<variable initial_value="0.0" name="F_A_O2" units="dimensionless"/>
<variable initial_value="0.0" name="F_A_CO2" units="dimensionless"/>
<variable initial_value="0.0" name="F_D_O2" units="dimensionless"/>
<variable initial_value="0.0" name="F_D_CO2" units="dimensionless"/>
<variable initial_value="1.2103" name="K" units="dimensionless"/>
<variable initial_value="1.7" name="sh" units="dimensionless"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>F_D_O2</ci>
</apply>
<apply>
<divide/>
<apply>
<plus/>
<apply>
<times/>
<ci>Inhale</ci>
<apply>
<minus/>
<ci>F_I_O2</ci>
<ci>F_D_O2</ci>
</apply>
</apply>
<apply>
<times/>
<ci>Exhale</ci>
<apply>
<minus/>
<ci>F_D_O2</ci>
<ci>F_A_O2</ci>
</apply>
</apply>
</apply>
<ci>V_D</ci>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>F_D_CO2</ci>
</apply>
<apply>
<divide/>
<apply>
<plus/>
<apply>
<times/>
<ci>Inhale</ci>
<apply>
<minus/>
<ci>F_I_CO2</ci>
<ci>F_D_CO2</ci>
</apply>
</apply>
<apply>
<times/>
<ci>Exhale</ci>
<apply>
<minus/>
<ci>F_D_CO2</ci>
<ci>F_A_CO2</ci>
</apply>
</apply>
</apply>
<ci>V_D</ci>
</apply>
</apply>
<!-- ode(F_A_O2, t) = (Inhale*(F_D_O2-F_A_O2)-K*(Q_pa*(1{dimensionless}-sh)*(C_pp_O2-C_v_O2)+V_PP*ode(C_pp_O2, t)))/V_A;
ode(F_A_CO2, t) = (Inhale*(F_D_CO2-F_A_CO2)-K*(Q_pa*(1{dimensionless}-sh)*(C_pp_CO2-C_v_CO2)+V_PP*ode(C_pp_CO2, t)))/V_A;-->
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>F_A_O2</ci>
</apply>
<apply>
<divide/>
<apply>
<minus/>
<apply>
<times/>
<ci>Inhale</ci>
<apply>
<minus/>
<ci>F_D_O2</ci>
<ci>F_A_O2</ci>
</apply>
</apply>
<apply>
<times/>
<ci>K</ci>
<apply>
<plus/>
<apply>
<times/>
<ci>Q_pa</ci>
<apply>
<minus/>
<cn cellml:units="dimensionless">1</cn>
<ci>sh</ci>
</apply>
<apply>
<minus/>
<ci>C_pp_O2</ci>
<ci>C_v_O2</ci>
</apply>
</apply>
<apply>
<times/>
<ci>V_PP</ci>
<ci>C_pp_O2</ci>
</apply>
</apply>
</apply>
</apply>
<ci>V_A</ci>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>F_A_CO2</ci>
</apply>
<apply>
<divide/>
<apply>
<minus/>
<apply>
<times/>
<ci>Inhale</ci>
<apply>
<minus/>
<ci>F_D_CO2</ci>
<ci>F_A_CO2</ci>
</apply>
</apply>
<apply>
<times/>
<ci>K</ci>
<apply>
<plus/>
<apply>
<times/>
<ci>Q_pa</ci>
<apply>
<minus/>
<cn cellml:units="dimensionless">1</cn>
<ci>sh</ci>
</apply>
<apply>
<minus/>
<ci>C_pp_CO2</ci>
<ci>C_v_CO2</ci>
</apply>
</apply>
<apply>
<times/>
<ci>V_PP</ci>
<ci>C_pp_CO2</ci>
</apply>
</apply>
</apply>
</apply>
<ci>V_A</ci>
</apply>
</apply>
</math>
<!-- Gas concentration in pulmonary capillaries-->
<variable name="C_pp_O2" units="mM"/>
<variable name="C_pp_CO2" units="mM"/>
<variable name="X_pp_O2" units="dimensionless"/>
<variable name="X_pp_CO2" units="dimensionless"/>
<variable initial_value="9" name="C_sat_O2" units="mM"/>
<variable initial_value="86.11" name="C_sat_CO2" units="mM"/>
<variable initial_value="0.3836" name="h_1" units="dimensionless"/>
<variable initial_value="1.819" name="h_2" units="dimensionless"/>
<variable initial_value="0.03198" name="alpha_1" units="m3_per_J"/>
<variable initial_value="0.05591" name="alpha_2" units="m3_per_J"/>
<variable initial_value="0.008275" name="beta_1" units="m3_per_J"/>
<variable initial_value="0.03255" name="beta_2" units="m3_per_J"/>
<variable initial_value="14.99" name="K_1" units="J_per_m3"/>
<variable initial_value="194.4" name="K_2" units="J_per_m3"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>C_pp_O2</ci>
<apply>
<divide/>
<apply>
<times/>
<ci>C_sat_O2</ci>
<apply>
<power/>
<ci>X_pp_O2</ci>
<apply>
<divide/>
<cn cellml:units="dimensionless">1</cn>
<ci>h_1</ci>
</apply>
</apply>
</apply>
<apply>
<plus/>
<cn cellml:units="dimensionless">1</cn>
<apply>
<power/>
<ci>X_pp_O2</ci>
<apply>
<divide/>
<cn cellml:units="dimensionless">1</cn>
<ci>h_1</ci>
</apply>
</apply>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>C_pp_CO2</ci>
<apply>
<divide/>
<apply>
<times/>
<ci>C_sat_CO2</ci>
<apply>
<power/>
<ci>X_pp_CO2</ci>
<apply>
<divide/>
<cn cellml:units="dimensionless">1</cn>
<ci>h_2</ci>
</apply>
</apply>
</apply>
<apply>
<plus/>
<cn cellml:units="dimensionless">1</cn>
<apply>
<power/>
<ci>X_pp_CO2</ci>
<apply>
<divide/>
<cn cellml:units="dimensionless">1</cn>
<ci>h_2</ci>
</apply>
</apply>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>X_pp_O2</ci>
<apply>
<divide/>
<apply>
<times/>
<ci>P_pp_O2</ci>
<apply>
<plus/>
<cn cellml:units="dimensionless">1</cn>
<apply>
<times/>
<ci>beta_1</ci>
<ci>P_pp_CO2</ci>
</apply>
</apply>
</apply>
<apply>
<times/>
<ci>K_1</ci>
<apply>
<plus/>
<cn cellml:units="dimensionless">1</cn>
<apply>
<times/>
<ci>alpha_1</ci>
<ci>P_pp_CO2</ci>
</apply>
</apply>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>X_pp_CO2</ci>
<apply>
<divide/>
<apply>
<times/>
<ci>P_pp_CO2</ci>
<apply>
<plus/>
<cn cellml:units="dimensionless">1</cn>
<apply>
<times/>
<ci>beta_2</ci>
<ci>P_pp_O2</ci>
</apply>
</apply>
</apply>
<apply>
<times/>
<ci>K_2</ci>
<apply>
<plus/>
<cn cellml:units="dimensionless">1</cn>
<apply>
<times/>
<ci>alpha_2</ci>
<ci>P_pp_O2</ci>
</apply>
</apply>
</apply>
</apply>
</apply>
</math>
<!-- Gas pressure in alveoli and pulmonary capillaries-->
<variable name="P_A_O2" public_interface="out" units="J_per_m3"/>
<variable name="P_A_CO2" public_interface="out" units="J_per_m3"/>
<variable name="P_pp_O2" units="J_per_m3"/>
<variable name="P_pp_CO2" units="J_per_m3"/>
<variable initial_value="760" name="P_atm" units="J_per_m3"/>
<variable initial_value="47" name="P_WS" units="J_per_m3"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>P_A_O2</ci>
<apply>
<times/>
<ci>F_A_O2</ci>
<apply>
<minus/>
<ci>P_atm</ci>
<ci>P_WS</ci>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>P_A_CO2</ci>
<apply>
<times/>
<ci>F_A_CO2</ci>
<apply>
<minus/>
<ci>P_atm</ci>
<ci>P_WS</ci>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>P_pp_O2</ci>
<ci>P_A_O2</ci>
</apply>
<apply>
<eq/>
<ci>P_pp_CO2</ci>
<ci>P_A_CO2</ci>
</apply>
</math>
<!-- Gas concentration in arterial blood-->
<variable name="C_a_O2" public_interface="out" units="mM"/>
<variable name="C_a_CO2" public_interface="out" units="mM"/>
<variable initial_value="0.0" name="C_v_O2" public_interface="in" units="mM"/>
<variable initial_value="0.0" name="C_v_CO2" public_interface="in" units="mM"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>C_a_O2</ci>
<apply>
<divide/>
<apply>
<plus/>
<apply>
<times/>
<ci>Q_pp</ci>
<ci>C_pp_O2</ci>
</apply>
<apply>
<times/>
<ci>Q_ps</ci>
<ci>C_v_O2</ci>
</apply>
</apply>
<apply>
<plus/>
<ci>Q_pp</ci>
<ci>Q_ps</ci>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>C_a_CO2</ci>
<apply>
<divide/>
<apply>
<plus/>
<apply>
<times/>
<ci>Q_pp</ci>
<ci>C_pp_CO2</ci>
</apply>
<apply>
<times/>
<ci>Q_ps</ci>
<ci>C_v_CO2</ci>
</apply>
</apply>
<apply>
<plus/>
<ci>Q_pp</ci>
<ci>Q_ps</ci>
</apply>
</apply>
</apply>
</math>
<!-- O2 solubility-->
<variable name="S_a_O2" units="mM"/>
<variable initial_value="0.0" name="P_a_O2" public_interface="in" units="J_per_m3"/>
<variable initial_value="15" name="Hgb" public_interface="out" units="dimensionless"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>S_a_O2</ci>
<apply>
<times/>
<apply>
<divide/>
<apply>
<minus/>
<ci>C_a_O2</ci>
<apply>
<divide/>
<apply>
<times/>
<ci>P_a_O2</ci>
<cn cellml:units="dimensionless">0.003</cn>
</apply>
<cn cellml:units="dimensionless">100</cn>
</apply>
</apply>
<apply>
<times/>
<ci>Hgb</ci>
<cn cellml:units="dimensionless">1.34</cn>
</apply>
</apply>
<cn cellml:units="dimensionless">100</cn>
</apply>
</apply>
</math>
</component>
<connection>
<map_components component_1="environment" component_2="lung_gas_exchange"/>
<map_variables variable_1="time" variable_2="t"/>
</connection>
</model>