- Author:
- aram148 <42922407+aram148@users.noreply.github.com>
- Date:
- 2022-07-22 15:47:05+12:00
- Desc:
- Added documentation for VSM model
- Permanent Source URI:
- http://models.cellml.org/workspace/6b0/rawfile/a8a92308e217ac5626809237dd90a31240b22834/peripheral_airway/Order2_airways/order3.cellml
<?xml version='1.0' encoding='UTF-8'?>
<model name="airway_order3" 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">
<component name="environment">
<variable name="time" public_interface="out" units="second"/>
</component>
<units name="per_s">
<unit exponent="-1" units="second"/>
</units>
<units name="mL">
<unit prefix="milli" units="litre"/>
</units>
<units name="Pas">
<unit units="pascal"/>
<unit units="second"/>
</units>
<units name="Js_per_m6">
<unit units="joule"/>
<unit units="second"/>
<unit exponent="-6" units="metre"/>
</units>
<units name="m6_per_J">
<unit exponent="6" units="metre"/>
<unit exponent="-1" units="joule"/>
</units>
<units name="kg_per_m3">
<unit prefix="kilo" units="gram"/>
<unit exponent="-3" units="meter"/>
</units>
<units name="J_per_m3">
<unit units="joule"/>
<unit exponent="-3" units="metre"/>
</units>
<units name="mol_per_s">
<unit units="mole"/>
<unit exponent="-1" units="second"/>
</units>
<units name="Js2_per_m6">
<unit units="joule"/>
<unit exponent="2" units="second"/>
<unit exponent="-6" units="metre"/>
</units>
<units name="Pa_mm">
<unit units="pascal"/>
<unit prefix="milli" units="metre"/>
</units>
<units name="mm">
<unit prefix="milli" units="meter"/>
</units>
<units name="mm2">
<unit exponent="2" units="mm"/>
</units>
<units name="per_m">
<unit exponent="-1" units="metre"/>
</units>
<units name="meter_sq">
<unit exponent="2" units="meter"/>
</units>
<units name="m3_per_s">
<unit exponent="3" units="metre"/>
<unit exponent="-1" units="second"/>
</units>
<import xlink:href="peripherl_airways.cellml">
<component component_ref="airway" name="airwayl1"/>
<component component_ref="airway1" name="airwayl2"/>
</import>
<import xlink:href="hai1.cellml">
<component component_ref="stress" name="stress"/>
<component component_ref="AMp" name="AMp"/>
<component component_ref="AM" name="AM"/>
<component component_ref="Mp" name="Mp"/>
<component component_ref="M" name="M"/>
<component component_ref="model_parameters" name="model_parameters"/>
</import>
<component name="main">
<variable name="stress" public_interface="in" units="dimensionless"/>
<variable initial_value="100" name="kappa" units="pascal"/>
<variable name="f_a_r1" public_interface="out" units="pascal"/>
<variable name="v_d1" private_interface="in" units="m3_per_s"/>
<variable name="v_d2" private_interface="in" units="m3_per_s"/>
<variable name="vee" units="m3_per_s"/>
<variable name="v_tot" units="m3_per_s"/>
<variable name="vv" private_interface="in" units="m3_per_s"/>
<variable name="v_out1" private_interface="in" units="m3_per_s"/>
<variable name="v_out2" private_interface="in" units="m3_per_s"/>
<variable name="rl1" private_interface="in" units="meter"/>
<variable name="rl2" private_interface="in" units="meter"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>f_a_r1</ci>
<apply>
<times/>
<ci>kappa</ci>
<ci>stress</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>vee</ci>
<apply>
<plus/>
<ci>v_out1</ci>
<ci>v_out2</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>v_tot</ci>
<apply>
<minus/>
<ci>vv</ci>
<ci>vee</ci>
</apply>
</apply>
</math>
</component>
<component name="uv_type">
<variable name="u" public_interface="out" units="pascal"/>
<variable name="u_in" units="pascal"/>
<variable initial_value="0" name="u_v" public_interface="out" units="pascal"/>
<variable initial_value="1.81e-5" name="mu" units="Pas"/>
<variable initial_value="1.225" name="rho" units="kg_per_m3"/>
<variable initial_value="0.35e6" name="E" units="J_per_m3"/>
<variable name="v_out_1" public_interface="in" units="m3_per_s"/>
<variable name="v_out_2" public_interface="in" units="m3_per_s"/>
<variable initial_value="0" name="v" public_interface="out" units="m3_per_s"/>
<variable name="R" units="Js_per_m6"/>
<variable name="R_v" units="Js_per_m6"/>
<variable name="C" units="m6_per_J"/>
<variable name="I" units="Js2_per_m6"/>
<variable initial_value="0.003" name="l" units="meter"/>
<variable name="time" public_interface="in" units="second"/>
<variable initial_value="0.000318" name="r1" public_interface="out" units="meter"/>
<variable initial_value="4.225E-09" name="Ri_sq_r1" public_interface="out" units="meter_sq"/>
<variable initial_value="1.01124E-07" name="rmax_sq_r1" public_interface="out" units="meter_sq"/>
<variable initial_value="1" name="N1_r1" public_interface="out" units="dimensionless"/>
<variable initial_value="7" name="N2_r1" public_interface="out" units="dimensionless"/>
<variable initial_value="17.342" name="P1_r1" public_interface="out" units="pascal"/>
<variable initial_value="-2784.131883" name="P2_r1" public_interface="out" units="pascal"/>
<variable initial_value="1" name="rho1" public_interface="out" units="dimensionless"/>
<variable name="rad_r1" public_interface="out" units="meter"/>
<variable initial_value="0.000318" name="rmax_r1" units="meter"/>
<variable initial_value="25" name="gamma" units="dimensionless"/>
<variable name="f_a_r1" public_interface="in" units="pascal"/>
<variable name="Ptm_r1" units="pascal"/>
<variable initial_value="0.0009732" name="h1" units="meter"/>
<variable initial_value="0.000318" name="R_ref" units="meter"/>
<variable name="v_conc" public_interface="out" units="mol_per_s"/>
<variable initial_value="0" name="v_conc_out_1" units="mol_per_s"/>
<variable initial_value="1" name="q_in" units="mole"/>
<variable initial_value="0" name="q" public_interface="out" units="mole"/>
<variable name="tau_r1" public_interface="in" units="pascal"/>
<!-- var mu_r1: pascal {init: 5e2};
-->
<variable initial_value="0.33" name="freq" units="per_s"/>
<variable initial_value="490.3" name="P_bar" units="pascal"/>
<variable initial_value="490" name="Paw_bar" units="pascal"/>
<variable initial_value="25000" name="E1" units="J_per_m3"/>
<variable name="omega" units="dimensionless"/>
<variable initial_value="0.1" name="V_tlc" units="mL"/>
<variable name="v1" units="dimensionless"/>
<variable name="x" units="dimensionless"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>omega</ci>
<apply>
<times/>
<cn cellml:units="dimensionless">2</cn>
<pi/>
<ci>freq</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>u_in</ci>
<apply>
<plus/>
<ci>P_bar</ci>
<apply>
<times/>
<ci>Paw_bar</ci>
<apply>
<sin/>
<apply>
<times/>
<ci>omega</ci>
<ci>time</ci>
</apply>
</apply>
</apply>
</apply>
</apply>
<!-- u_out = P_bar+PA_bar*sin(omega*time-alpha);-->
<apply>
<eq/>
<ci>v1</ci>
<apply>
<divide/>
<apply>
<plus/>
<apply>
<times/>
<cn cellml:units="dimensionless">0.2</cn>
<ci>V_tlc</ci>
</apply>
<apply>
<divide/>
<ci>u</ci>
<ci>E1</ci>
</apply>
</apply>
<ci>V_tlc</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>x</ci>
<apply>
<minus/>
<cn cellml:units="dimensionless">1</cn>
<apply>
<divide/>
<ci>r1</ci>
<apply>
<power/>
<ci>v1</ci>
<apply>
<divide/>
<cn cellml:units="dimensionless">1</cn>
<cn cellml:units="dimensionless">3</cn>
</apply>
</apply>
</apply>
</apply>
</apply>
<!-- tau_r1 = u+u*(1.4{dimensionless}+2.1{dimensionless}*sqr(x));-->
<apply>
<eq/>
<ci>Ptm_r1</ci>
<apply>
<plus/>
<apply>
<minus/>
<ci>u_in</ci>
<apply>
<divide/>
<apply>
<times/>
<ci>f_a_r1</ci>
<ci>R_ref</ci>
</apply>
<ci>r1</ci>
</apply>
</apply>
<ci>tau_r1</ci>
</apply>
</apply>
<!-- u_in = 1000{pascal}+1000{pascal}*sin(1.5{per_s}*time);-->
<!-- Ptm_r1 = u_in-f_a_r1*R_ref/r1+tau_r1;-->
<apply>
<eq/>
<ci>rad_r1</ci>
<piecewise>
<piece>
<apply>
<root/>
<apply>
<times/>
<ci>Ri_sq_r1</ci>
<apply>
<power/>
<apply>
<minus/>
<cn cellml:units="dimensionless">1</cn>
<apply>
<divide/>
<ci>Ptm_r1</ci>
<ci>P1_r1</ci>
</apply>
</apply>
<apply>
<minus/>
<ci>N1_r1</ci>
</apply>
</apply>
</apply>
</apply>
<apply>
<leq/>
<ci>Ptm_r1</ci>
<cn cellml:units="dimensionless">0</cn>
</apply>
</piece>
<piece>
<apply>
<root/>
<apply>
<minus/>
<ci>rmax_sq_r1</ci>
<apply>
<times/>
<apply>
<minus/>
<ci>rmax_sq_r1</ci>
<ci>Ri_sq_r1</ci>
</apply>
<apply>
<power/>
<apply>
<minus/>
<cn cellml:units="dimensionless">1</cn>
<apply>
<divide/>
<ci>Ptm_r1</ci>
<ci>P2_r1</ci>
</apply>
</apply>
<apply>
<minus/>
<ci>N2_r1</ci>
</apply>
</apply>
</apply>
</apply>
</apply>
<apply>
<geq/>
<ci>Ptm_r1</ci>
<cn cellml:units="dimensionless">0</cn>
</apply>
</piece>
</piecewise>
</apply>
<!-- tau_r1 = 2{dimensionless}*mu_r1*((R_ref-r1)/R_ref+1.5{dimensionless}*sqr((R_ref-r1)/R_ref));-->
<!-- V_r1 = -gamma/(2{dimensionless}*pi*rmax_r1)*rho*(rad_r1-r1)*v_smc_r1;-->
<apply>
<eq/>
<ci>I</ci>
<apply>
<divide/>
<apply>
<times/>
<ci>rho</ci>
<ci>l</ci>
</apply>
<apply>
<times/>
<pi/>
<apply>
<power/>
<ci>r1</ci>
<cn cellml:units="dimensionless">2</cn>
</apply>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>C</ci>
<apply>
<divide/>
<apply>
<times/>
<cn cellml:units="dimensionless">2</cn>
<pi/>
<apply>
<power/>
<ci>r1</ci>
<cn cellml:units="dimensionless">3</cn>
</apply>
<ci>l</ci>
</apply>
<apply>
<times/>
<ci>E</ci>
<ci>h1</ci>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>R</ci>
<apply>
<divide/>
<apply>
<times/>
<cn cellml:units="dimensionless">12</cn>
<ci>mu</ci>
<ci>l</ci>
</apply>
<apply>
<times/>
<pi/>
<apply>
<power/>
<ci>r1</ci>
<cn cellml:units="dimensionless">4</cn>
</apply>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>R_v</ci>
<apply>
<divide/>
<cn cellml:units="second">0.01</cn>
<ci>C</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>u</ci>
<apply>
<plus/>
<ci>u_v</ci>
<apply>
<times/>
<ci>R_v</ci>
<apply>
<minus/>
<apply>
<minus/>
<ci>v</ci>
<ci>v_out_1</ci>
</apply>
<ci>v_out_2</ci>
</apply>
</apply>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>time</ci>
</bvar>
<ci>v</ci>
</apply>
<apply>
<divide/>
<apply>
<minus/>
<apply>
<minus/>
<ci>u_in</ci>
<ci>u</ci>
</apply>
<apply>
<times/>
<ci>R</ci>
<ci>v</ci>
</apply>
</apply>
<ci>I</ci>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>time</ci>
</bvar>
<ci>u_v</ci>
</apply>
<apply>
<divide/>
<apply>
<minus/>
<apply>
<minus/>
<ci>v</ci>
<ci>v_out_1</ci>
</apply>
<ci>v_out_2</ci>
</apply>
<ci>C</ci>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>time</ci>
</bvar>
<ci>r1</ci>
</apply>
<apply>
<times/>
<ci>rho1</ci>
<apply>
<minus/>
<ci>rad_r1</ci>
<ci>r1</ci>
</apply>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>time</ci>
</bvar>
<ci>q</ci>
</apply>
<apply>
<minus/>
<ci>v_conc</ci>
<ci>v_conc_out_1</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>v_conc</ci>
<apply>
<times/>
<apply>
<divide/>
<ci>v</ci>
<apply>
<times/>
<pi/>
<apply>
<power/>
<ci>r1</ci>
<cn cellml:units="dimensionless">2</cn>
</apply>
<ci>l</ci>
</apply>
</apply>
<apply>
<minus/>
<ci>q_in</ci>
<ci>q</ci>
</apply>
</apply>
</apply>
</math>
<!-- qp = u_in - 1{dimensionless}*u/R;-->
</component>
<connection>
<map_components component_1="uv_type" component_2="environment"/>
<map_variables variable_1="time" variable_2="time"/>
</connection>
<connection>
<map_components component_1="main" component_2="uv_type"/>
<map_variables variable_1="f_a_r1" variable_2="f_a_r1"/>
<map_variables variable_1="vv" variable_2="v"/>
</connection>
<connection>
<map_components component_1="airwayl1" component_2="environment"/>
<map_variables variable_1="time" variable_2="time"/>
</connection>
<connection>
<map_components component_1="airwayl2" component_2="environment"/>
<map_variables variable_1="time" variable_2="time"/>
</connection>
<connection>
<map_components component_1="uv_type" component_2="airwayl1"/>
<map_variables variable_1="u" variable_2="u_in"/>
<map_variables variable_1="v_out_1" variable_2="v"/>
</connection>
<connection>
<map_components component_1="uv_type" component_2="airwayl2"/>
<map_variables variable_1="u" variable_2="u_in"/>
<map_variables variable_1="v_out_2" variable_2="v"/>
<map_variables variable_1="tau_r1" variable_2="tau_r1"/>
</connection>
<connection>
<map_components component_1="main" component_2="uv_type"/>
<map_variables variable_1="f_a_r1" variable_2="f_a_r1"/>
</connection>
<connection>
<map_components component_1="environment" component_2="AMp"/>
<map_variables variable_1="time" variable_2="time"/>
</connection>
<connection>
<map_components component_1="environment" component_2="AM"/>
<map_variables variable_1="time" variable_2="time"/>
</connection>
<connection>
<map_components component_1="environment" component_2="Mp"/>
<map_variables variable_1="time" variable_2="time"/>
</connection>
<connection>
<map_components component_1="environment" component_2="M"/>
<map_variables variable_1="time" variable_2="time"/>
</connection>
<connection>
<map_components component_1="environment" component_2="model_parameters"/>
<map_variables variable_1="time" variable_2="time"/>
</connection>
<connection>
<map_components component_1="main" component_2="stress"/>
<map_variables variable_1="stress" variable_2="stress"/>
</connection>
<connection>
<map_components component_1="main" component_2="airwayl1"/>
<map_variables variable_1="f_a_r1" variable_2="f_a_r1"/>
<map_variables variable_1="v_d1" variable_2="v_d"/>
<map_variables variable_1="v_out1" variable_2="v"/>
<map_variables variable_1="rl1" variable_2="r1"/>
</connection>
<connection>
<map_components component_1="main" component_2="airwayl2"/>
<map_variables variable_1="f_a_r1" variable_2="f_a_r1"/>
<map_variables variable_1="v_d2" variable_2="v_d"/>
<map_variables variable_1="v_out2" variable_2="v"/>
<map_variables variable_1="rl2" variable_2="r1"/>
</connection>
<group>
<relationship_ref relationship="encapsulation"/>
<component_ref component="main">
<component_ref component="uv_type"/>
<component_ref component="airwayl1"/>
<component_ref component="airwayl2"/>
</component_ref>
</group>
</model>