- Author:
- Andrew Miller <ak.miller@auckland.ac.nz>
- Date:
- 2010-10-27 16:28:10+13:00
- Desc:
- Changes towards getting the model to integrate correctly with IDA
- Permanent Source URI:
- http://models.cellml.org/workspace/shi_hose_2009/rawfile/b1e0acf3209eafcfadebe6cda5206e504fbd28fb/TestCDv3.cellml
<?xml version="1.0"?>
<model xmlns="http://www.cellml.org/cellml/1.1#" xmlns:cmeta="http://www.cellml.org/metadata/1.0#" cmeta:id="TempCDv" name="TempCDv">
<import xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="Units.cellml">
<units name="UnitP" units_ref="UnitP"/>
<units name="UnitQ" units_ref="UnitQ"/>
<units name="UnitCV" units_ref="UnitCV"/>
<units name="UnitE" units_ref="UnitE"/>
<units name="UnitV" units_ref="UnitV"/>
<units name="UnitKp" units_ref="UnitKp"/>
<units name="UnitKf" units_ref="UnitKf"/>
<units name="UnitKb" units_ref="UnitKb"/>
<units name="UnitKv" units_ref="UnitKv"/>
<units name="UnitW" units_ref="UnitW"/>
</import>
<import xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="ParaHeart.cellml">
<component component_ref="ParaHeart" name="ParaLV"/>
</import>
<import xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="EVentricle.cellml">
<component component_ref="EVentricle" name="Elv"/>
</import>
<component name="TLV">
<variable name="Pi" public_interface="out" units="UnitP"/>
<variable name="Po" public_interface="in" units="UnitP"/>
<variable name="Qi" public_interface="in" units="UnitQ"/>
<variable name="Qo" public_interface="out" units="UnitQ"/>
<variable name="CV" public_interface="in" units="UnitCV"/>
<variable name="E" public_interface="in" units="UnitE"/>
<variable name="t" public_interface="in" units="second"/>
<variable initial_value="500" name="V" units="UnitV"/>
<variable name="Pini" public_interface="in" units="UnitP"/>
<variable name="Vini" public_interface="in" units="UnitV"/>
<variable name="Tao" public_interface="out" units="dimensionless"/>
<variable initial_value="0" name="W" public_interface="out" units="UnitW"/>
<variable initial_value="0" name="Ag" public_interface="out" units="radian"/>
<variable name="AgMax" public_interface="in" units="radian"/>
<variable name="Kp" public_interface="in" units="UnitKp"/>
<variable name="Kf" public_interface="in" units="UnitKf"/>
<variable name="Kb" public_interface="in" units="UnitKb"/>
<variable name="Kv" public_interface="in" units="UnitKv"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="Ventricle: Pi">
<eq/>
<ci>Pi</ci>
<apply>
<plus/>
<ci>Pini</ci>
<apply>
<times/>
<ci>E</ci>
<apply>
<minus/>
<ci>V</ci>
<ci>Vini</ci>
</apply>
</apply>
</apply>
</apply>
<apply id="Ventricle: V">
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>V</ci>
</apply>
<apply>
<minus/>
<ci>Qi</ci>
<ci>Qo</ci>
</apply>
</apply>
<apply id="Ventricle: Qo">
<eq/>
<ci>Qo</ci>
<apply>
<times/>
<ci>CV</ci>
<ci>Tao</ci>
<apply>
<minus/>
<ci>Pi</ci>
<ci>Po</ci>
</apply>
<apply>
<power/>
<apply>
<abs/>
<apply>
<minus/>
<ci>Pi</ci>
<ci>Po</ci>
</apply>
</apply>
<cn>-0.5</cn>
</apply>
</apply>
</apply>
<apply id="ValveV: Tao">
<eq/>
<ci>Tao</ci>
<apply>
<divide/>
<apply>
<power/>
<apply>
<minus/>
<cn>1</cn>
<apply>
<cos/>
<ci>Ag</ci>
</apply>
</apply>
<cn>2</cn>
</apply>
<apply>
<power/>
<apply>
<minus/>
<cn>1</cn>
<apply>
<cos/>
<ci>AgMax</ci>
</apply>
</apply>
<cn>2</cn>
</apply>
</apply>
</apply>
<apply id="ValveV: Ag">
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>Ag</ci>
</apply>
<ci>W</ci>
</apply>
<piecewise id="Valve: W piecewise">
<piece>
<apply id="Valve: W derivative">
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>W</ci>
</apply>
<piecewise>
<piece>
<apply>
<minus/>
<apply>
<plus/>
<apply>
<minus/>
<apply>
<times/>
<ci>Kp</ci>
<apply>
<minus/>
<ci>Pi</ci>
<ci>Po</ci>
</apply>
<apply>
<cos/>
<ci>Ag</ci>
</apply>
</apply>
<apply>
<times/>
<ci>Kf</ci>
<ci>W</ci>
</apply>
</apply>
<apply>
<times/>
<ci>Kb</ci>
<ci>Qo</ci>
<apply>
<cos/>
<ci>Ag</ci>
</apply>
</apply>
</apply>
<apply>
<times/>
<ci>Kv</ci>
<ci>Qo</ci>
<apply>
<sin/>
<apply>
<times/>
<cn>2</cn>
<ci>Ag</ci>
</apply>
</apply>
</apply>
</apply>
<apply>
<geq/>
<ci>Qo</ci>
<cn>0</cn>
</apply>
</piece>
<piece>
<apply>
<plus/>
<apply>
<minus/>
<apply>
<times/>
<ci>Kp</ci>
<apply>
<minus/>
<ci>Pi</ci>
<ci>Po</ci>
</apply>
<apply>
<cos/>
<ci>Ag</ci>
</apply>
</apply>
<apply>
<times/>
<ci>Kf</ci>
<ci>W</ci>
</apply>
</apply>
<apply>
<times/>
<ci>Kb</ci>
<ci>Qo</ci>
<apply>
<cos/>
<ci>Ag</ci>
</apply>
</apply>
</apply>
<apply>
<lt/>
<ci>Qo</ci>
<cn>0</cn>
</apply>
</piece>
</piecewise>
</apply>
<apply>
<and/>
<apply>
<gt/>
<ci>Ag</ci>
<cn>0</cn>
</apply>
<apply>
<lt/>
<ci>Ag</ci>
<ci>AgMax</ci>
</apply>
</apply>
</piece>
<otherwise>
<apply id="Valve: W">
<eq/>
<ci>W</ci>
<cn>0</cn>
</apply>
</otherwise>
</piecewise>
</math>
</component>
<component name="environment">
<variable name="t" public_interface="out" units="second"/>
</component>
<component name="LSource">
<variable name="Qs" public_interface="out" units="UnitQ"/>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<eq/>
<ci>Qs</ci>
<apply>
<plus/>
<cn>150</cn>
<apply>
<times/>
<cn>10</cn>
<apply>
<sin/>
<apply>
<times/>
<cn>2</cn>
<cn>3.14</cn>
<ci>t</ci>
</apply>
</apply>
</apply>
</apply>
</apply>
</math>
<variable name="t" public_interface="in" units="second"/>
</component>
<component name="LSink">
<variable initial_value="1" name="Pe" public_interface="out" units="UnitP"/>
</component>
<connection>
<map_components component_1="environment" component_2="TLV"/>
<map_variables variable_1="t" variable_2="t"/>
</connection>
<connection>
<map_components component_1="environment" component_2="LSource"/>
<map_variables variable_1="t" variable_2="t"/>
</connection>
<connection>
<map_components component_1="environment" component_2="Elv"/>
<map_variables variable_1="t" variable_2="t"/>
</connection>
<connection>
<map_components component_1="LSource" component_2="TLV"/>
<map_variables variable_1="Qs" variable_2="Qi"/>
</connection>
<connection>
<map_components component_1="TLV" component_2="LSink"/>
<map_variables variable_1="Po" variable_2="Pe"/>
</connection>
<connection>
<map_components component_1="ParaLV" component_2="TLV"/>
<map_variables variable_1="PlvIni" variable_2="Pini"/>
<map_variables variable_1="VlvIni" variable_2="Vini"/>
<map_variables variable_1="CVao" variable_2="CV"/>
<map_variables variable_1="Kp_ao" variable_2="Kp"/>
<map_variables variable_1="Kf_ao" variable_2="Kf"/>
<map_variables variable_1="Kb_ao" variable_2="Kb"/>
<map_variables variable_1="Kv_ao" variable_2="Kv"/>
<map_variables variable_1="AgMax" variable_2="AgMax"/>
</connection>
<connection>
<map_components component_1="TLV" component_2="Elv"/>
<map_variables variable_1="E" variable_2="E"/>
</connection>
<connection>
<map_components component_1="ParaLV" component_2="Elv"/>
<map_variables variable_1="ElvMax" variable_2="Emax"/>
<map_variables variable_1="ElvMin" variable_2="Emin"/>
<map_variables variable_1="T" variable_2="T"/>
<map_variables variable_1="Ts1" variable_2="Ts1"/>
<map_variables variable_1="Ts2" variable_2="Ts2"/>
</connection>
</model>