Location: Guyton, Heart, Rate, And, Stroke, Volume, 2008 @ 7f365eb7b471 / HR_and_SV.cellml

Author:
Tommy Yu <tommy.yu@auckland.ac.nz>
Date:
2010-08-25 18:18:56+12:00
Desc:
xml:base fix
Permanent Source URI:
https://models.cellml.org/workspace/guyton_heart_rate_and_stroke_volume_2008/rawfile/7f365eb7b47115cc6cc730e48dd37ff7dac80c33/HR_and_SV.cellml

<?xml version="1.0" encoding="utf-8"?>
<model 
	name="heart_rate_and_stroke_volume_model"
	cmeta:id="heart_rate_and_stroke_volume_model"
	
	xmlns="http://www.cellml.org/cellml/1.1#"
	xmlns:cellml="http://www.cellml.org/cellml/1.1#"
	xmlns:cmeta="http://www.cellml.org/metadata/1.0#"
	xmlns:xlink="http://www.w3.org/1999/xlink">

	<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
		<rdf:Description rdf:about="#heart_rate_and_stroke_volume_model">
			<rdf:value>
			The heart rate (HR) and stroke volume output (SVO) are controlled by 
			autonomic stimulation (AUR), by a direct effect of right atrial pressure (PRA) 
			on the sinus rhythm of the heart, and by an effect of any degree of deterioration 
			of the heart (HMD) on heart rate control.
			</rdf:value>
		</rdf:Description>
	</rdf:RDF>

<!-- =============================================	Import the required units from the Units file	==================================================== -->
	<import xlink:href="units.cellml">
		<units name="minute" units_ref="minute"/>
		<units name="per_minute" units_ref="per_minute"/>
		<units name="beats_per_minute" units_ref="beats_per_minute"/>
		<units name="beats_per_minute_per_mmHg" units_ref="beats_per_minute_per_mmHg"/>
		<units name="minute_per_L" units_ref="minute_per_L"/>
		<units name="mmHg" units_ref="mmHg"/>
		<units name="per_mmHg" units_ref="per_mmHg"/>
		<units name="mmHg_per_mL" units_ref="mmHg_per_mL"/>
		<units name="mmHg_L" units_ref="mmHg_L"/>
		<units name="per_mmHg2" units_ref="per_mmHg2"/>
		<units name="mmHg3" units_ref="mmHg3"/>
		<units name="monovalent_mEq" units_ref="monovalent_mEq"/>
		<units name="monovalent_mEq_per_minute" units_ref="monovalent_mEq_per_minute"/>
		<units name="monovalent_mEq_per_litre" units_ref="monovalent_mEq_per_litre"/>
		<units name="mOsm" units_ref="mOsm"/>
		<units name="mOsm_per_litre" units_ref="mOsm_per_litre"/>
		<units name="mOsm_per_minute" units_ref="mOsm_per_minute"/>
		<units name="monovalent_mEq_per_litre_per_minute" units_ref="monovalent_mEq_per_litre_per_minute"/>
		<units name="litre2_per_monovalent_mEq_per_minute" units_ref="litre2_per_monovalent_mEq_per_minute"/>
		<units name="L_per_minute" units_ref="L_per_minute"/>
		<units name="per_mmHg_per_minute" units_ref="per_mmHg_per_minute"/>
		<units name="mL" units_ref="mL"/>
		<units name="gram_per_L" units_ref="gram_per_L"/>
		<units name="L_mmHg_per_gram" units_ref="L_mmHg_per_gram"/>
		<units name="L2_mmHg_per_gram2" units_ref="L2_mmHg_per_gram2"/>
		<units name="mmHg_minute_per_L" units_ref="mmHg_minute_per_L"/>
		<units name="mmHg_L_per_minute" units_ref="mmHg_L_per_minute"/>
		<units name="gram_per_minute" units_ref="gram_per_minute"/>
		<units name="mL_per_L" units_ref="mL_per_L"/>
		<units name="mL_per_L_per_mmHg" units_ref="mL_per_L_per_mmHg"/>
		<units name="mL_per_L_per_minute" units_ref="mL_per_L_per_minute"/>
		<units name="mL_per_minute_per_mmHg" units_ref="mL_per_minute_per_mmHg"/>
		<units name="L_mL_per_minute_per_mmHg" units_ref="L_mL_per_minute_per_mmHg"/>
		<units name="L_per_mL" units_ref="L_per_mL"/>
		<units name="L_per_mmHg" units_ref="L_per_mmHg"/>
		<units name="mL_per_minute" units_ref="mL_per_minute"/>
		<units name="L_per_minute_per_mmHg" units_ref="L_per_minute_per_mmHg"/>
		<units name="L_per_minute_per_mmHg2" units_ref="L_per_minute_per_mmHg2"/>
	</import>

<!-- =====================================	Import all Parameters and State Variables from the Parameter file	============================================== -->
	<import xlink:href="parameters.cellml">
		<component component_ref="parameter_values" name="parameter_values"/>
		<component component_ref="state_variables" name="state_variables"/>
	</import>


<!-- ========================================	HEART RATE AND STROKE VOLUME TOP-LEVEL COMPONENT	============================================= -->
	<component 	name="heart_rate_and_stroke_volume" 
				cmeta:id="heart_rate_and_stroke_volume">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#heart_rate_and_stroke_volume">
				<rdf:value>
				Encapsulation grouping component containing all the components in the Heart Rate and Stroke Volume Model. 
				The inputs and outputs of the Heart Rate and Stroke Volume Model must be passed by this component.
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>

<!-- Inputs from components in other models -->
		<variable name="QLO"	units="L_per_minute" private_interface="out" public_interface="in"/>
		<variable name="AUR"	units="dimensionless" private_interface="out" public_interface="in"/>
		<variable name="PRA"	units="mmHg" private_interface="out" public_interface="in"/>
		<variable name="HMD"	units="dimensionless" private_interface="out" public_interface="in"/>
	</component>

<!-- ========================================	EFFECT OF AUTONOMIC STIMULATION ON HEART RATE	============================================= -->
	<component 	name="effect_of_autonomic_stimulation_on_HR" 
				cmeta:id="effect_of_autonomic_stimulation_on_HR">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#effect_of_autonomic_stimulation_on_HR">
				<rdf:value>
				HR1:  
				Calculation of the portion of the heart rate that is controlled by 
				autonomic stimulation.  Autonomic input is the variable (AUR).
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#HR1">
				<rdf:value>
				HR1:  
				Calculation of the portion of the heart rate that is controlled by 
				autonomic stimulation.  Autonomic input is the variable (AUR).
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>
		
<!-- Inputs from other components -->
		<variable name="AUR"	units="dimensionless" private_interface="none" public_interface="in"/>

<!-- Outputs to other components -->
		<variable name="AUHR" 	units="beats_per_minute" private_interface="none" public_interface="out"/>

		<math xmlns="http://www.w3.org/1998/Math/MathML">
			<apply id="HR1">
				<eq/>
				<ci>AUHR</ci>
				<apply>
					<times/>
					<cn cellml:units="beats_per_minute">72</cn>
					<ci>AUR</ci>
				</apply>
			</apply>
		</math>
	</component>

<!-- INPUT CONNECTIONS -->
	<connection>
		<map_components component_1="effect_of_autonomic_stimulation_on_HR" component_2="heart_rate_and_stroke_volume"/>
		<map_variables variable_1="AUR" variable_2="AUR"/>
	</connection>

<!-- ========================================	EFFECT OF PRESSURE (PRA) ON HEART RATE	============================================= -->
<!-- ========================================	CHECK THIS! - NO EQUATION HR1B!!! INPUT PR1LL NOT PRA or PR1!!!	============================================= -->
	<component 	name="effect_of_PRA_on_HR" 
				cmeta:id="effect_of_PRA_on_HR">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#effect_of_PRA_on_HR">
				<rdf:value>
				HR1A, HR1B, and HR2:  
				Calculation of the portion of the heart rate that is controlled by direct 
				effect of changes in right atrial pressure (PRA) on the sinus nodal rhythm.  
				Block HR1B limits the effect to positive atrial pressure (PRA) values.
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#HR1A_and_HR2">
				<rdf:value>
				HR1A, HR1B, and HR2:  
				Calculation of the portion of the heart rate that is controlled by direct 
				effect of changes in right atrial pressure (PRA) on the sinus nodal rhythm.  
				Block HR1B limits the effect to positive atrial pressure (PRA) values.
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>
		
<!-- Inputs from other components -->
<!--		<variable name=""	units="dimensionless" private_interface="none" public_interface="in"/> -->

<!-- Outputs to other components -->
		<variable name="PRHR" 	units="beats_per_minute" private_interface="none" public_interface="out"/>

<!-- Parameters from parameter_file -->
		<variable name="PR1LL"	units="mmHg" private_interface="none" public_interface="in"/>

		<math xmlns="http://www.w3.org/1998/Math/MathML">
			<apply id="HR1A_and_HR2">
				<eq/>
				<ci>PRHR</ci>
				<apply>
					<times/>
					<apply>
						<power/>
						<ci>PR1LL</ci>
						<cn cellml:units="dimensionless">0.5</cn>
					</apply>
					<cn cellml:units="beats_per_minute_per_mmHg">5</cn>
				</apply>
			</apply>
		</math>
	</component>

<!-- INPUT CONNECTIONS -->
<!--	<connection>
		<map_components component_1="effect_of_PRA_on_HR" component_2=""/>
		<map_variables variable_1="" variable_2=""/>
	</connection> -->

<!-- PARAMETER CONNECTIONS -->
	<connection>
		<map_components component_1="effect_of_PRA_on_HR" component_2="parameter_values"/>
		<map_variables variable_1="PR1LL" variable_2="PR1LL"/>
	</connection>

<!-- ========================================	EFFECT OF HEART DETERIORATION ON HEART RATE	============================================= -->
	<component 	name="effect_of_heart_deterioration_on_HR"
				cmeta:id="effect_of_heart_deterioration_on_HR">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#effect_of_heart_deterioration_on_HR">
				<rdf:value>
				HR4, HR5, and HR6:  
				Sensitivity control for the effect of any deterioration of heart function (HMD) 
				on heart rate.  The sensitivity factor is the side input to Block HR5.
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#HR4_to_HR6">
				<rdf:value>
				HR4, HR5, and HR6:  
				Sensitivity control for the effect of any deterioration of heart function (HMD) 
				on heart rate.  The sensitivity factor is the side input to Block HR5.
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>
		
<!-- Inputs from other components -->
		<variable name="HMD"	units="dimensionless" private_interface="none" public_interface="in"/>

<!-- Outputs to other components -->
		<variable name="HDHR" 	units="dimensionless" private_interface="none" public_interface="out"/>

		<math xmlns="http://www.w3.org/1998/Math/MathML">
			<apply id="HR4_to_HR6">
				<eq/>
				<ci>HDHR</ci>
				<apply>
					<plus/>
					<apply>
						<times/>
						<apply>
							<minus/>
							<ci>HMD</ci>
							<cn cellml:units="dimensionless">1</cn>
						</apply>
						<cn cellml:units="dimensionless">0.5</cn>
					</apply>
					<cn cellml:units="dimensionless">1</cn>
				</apply>
			</apply>
		</math>
	</component>

<!-- INPUT CONNECTIONS -->
	<connection>
		<map_components component_1="effect_of_heart_deterioration_on_HR" component_2="heart_rate_and_stroke_volume"/>
		<map_variables variable_1="HMD" variable_2="HMD"/>
	</connection>

<!-- ========================================	HEART RATE	============================================= -->
	<component 	name="heart_rate" 
				cmeta:id="heart_rate">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#heart_rate">
				<rdf:value>
				HR3:  
				Calculation of a temporary value for heart rate based on the control effects 
				of autonomic stimulation and right atrial pressure.

				HR7:  Calculation of heart rate (HR) by multiplying the heart deterioration 
				multiplier effect (output from Block HR6) times the temporary basic heart rate 
				calculated from Block HR3.
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#HR3_and_HR7">
				<rdf:value>
				HR3:  
				Calculation of a temporary value for heart rate based on the control effects 
				of autonomic stimulation and right atrial pressure.

				HR7:  Calculation of heart rate (HR) by multiplying the heart deterioration 
				multiplier effect (output from Block HR6) times the temporary basic heart rate 
				calculated from Block HR3.
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>
		
<!-- Inputs from other components -->
		<variable name="AUHR"	units="beats_per_minute" private_interface="none" public_interface="in"/>
		<variable name="PRHR"	units="beats_per_minute" private_interface="none" public_interface="in"/>
		<variable name="HDHR"	units="dimensionless" private_interface="none" public_interface="in"/>

<!-- Outputs to other components -->
		<variable name="HR" 	units="beats_per_minute" private_interface="none" public_interface="out"/>

		<math xmlns="http://www.w3.org/1998/Math/MathML">
			<apply id="HR3_and_HR7">
				<eq/>
				<ci>HR</ci>
				<apply>
					<times/>
					<apply>
						<plus/>
						<ci>AUHR</ci>
						<ci>PRHR</ci>
					</apply>
					<ci>HDHR</ci>
				</apply>
			</apply>
		</math>
	</component>

<!-- INPUT CONNECTIONS -->
	<connection>
		<map_components component_1="heart_rate" component_2="effect_of_autonomic_stimulation_on_HR"/>
		<map_variables variable_1="AUHR" variable_2="AUHR"/>
	</connection>
	<connection>
		<map_components component_1="heart_rate" component_2="effect_of_PRA_on_HR"/>
		<map_variables variable_1="PRHR" variable_2="PRHR"/>
	</connection>
	<connection>
		<map_components component_1="heart_rate" component_2="effect_of_heart_deterioration_on_HR"/>
		<map_variables variable_1="HDHR" variable_2="HDHR"/>
	</connection>

<!-- ========================================	STROKE VOLUME OUTPUT	============================================= -->
	<component 	name="stroke_volume_output" 
				cmeta:id="stroke_volume_output">
		<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
			<rdf:Description rdf:about="#stroke_volume_output">
				<rdf:value>
				HR8:  
				Calculation of stroke volume output (SVO) by dividing minute left ventricular output (QLO) 
				by heart rate (HR).
				</rdf:value>
			</rdf:Description>
			<rdf:Description rdf:about="#HR8">
				<rdf:value>
				HR8:  
				Calculation of stroke volume output (SVO) by dividing minute left ventricular output (QLO) 
				by heart rate (HR).
				</rdf:value>
			</rdf:Description>
		</rdf:RDF>
		
<!-- Inputs from other components -->
		<variable name="QLO"	units="L_per_minute" private_interface="none" public_interface="in"/>
		<variable name="HR"	units="beats_per_minute" private_interface="none" public_interface="in"/>

<!-- Outputs to other components -->
		<variable name="SVO" 	units="litre" private_interface="none" public_interface="out"/>

		<math xmlns="http://www.w3.org/1998/Math/MathML">
			<apply id="HR8">
				<eq/>
				<ci>SVO</ci>
				<apply>
					<divide/>
					<ci>QLO</ci>
					<ci>HR</ci>
				</apply>
			</apply>
		</math>
	</component>

<!-- INPUT CONNECTIONS -->
	<connection>
		<map_components component_1="stroke_volume_output" component_2="heart_rate_and_stroke_volume"/>
		<map_variables variable_1="QLO" variable_2="QLO"/>
	</connection>
	<connection>
		<map_components component_1="stroke_volume_output" component_2="heart_rate"/>
		<map_variables variable_1="HR" variable_2="HR"/>
	</connection>


<!-- ============================================================		GROUPING		=============================================================== -->
   <group>
		<relationship_ref relationship="containment"/>
		<component_ref component="heart_rate_and_stroke_volume">
			<component_ref component="effect_of_autonomic_stimulation_on_HR"/>
			<component_ref component="effect_of_PRA_on_HR"/>
			<component_ref component="effect_of_heart_deterioration_on_HR"/>
			<component_ref component="heart_rate"/>
			<component_ref component="stroke_volume_output"/>
		</component_ref>
   </group>
      
   <group>
		<relationship_ref relationship="encapsulation"/>
		<component_ref component="heart_rate_and_stroke_volume">
			<component_ref component="parameter_values"/>
			<component_ref component="state_variables"/>
			<component_ref component="effect_of_autonomic_stimulation_on_HR"/>
			<component_ref component="effect_of_PRA_on_HR"/>
			<component_ref component="effect_of_heart_deterioration_on_HR"/>
			<component_ref component="heart_rate"/>
			<component_ref component="stroke_volume_output"/>
		</component_ref>
   </group>

   
</model>