Physiolibrary.Hydraulic.Components

Information

Extends from Modelica.Icons.Package (Icon for standard packages).

Package Content

Name Description
Physiolibrary.Hydraulic.Components.Conductor Conductor Hydraulic resistor, where conductance=1/resistance
Physiolibrary.Hydraulic.Components.Resistor Resistor  
Physiolibrary.Hydraulic.Components.ElasticVessel ElasticVessel Elastic container for blood vessels, bladder, lumens
Physiolibrary.Hydraulic.Components.ElasticVesselElastance ElasticVesselElastance  
Physiolibrary.Hydraulic.Components.HydrostaticColumn HydrostaticColumn Hydrostatic column pressure between two connectors (with specific muscle pump effect)
Physiolibrary.Hydraulic.Components.Inertia Inertia Inertia of the volumetric flow
Physiolibrary.Hydraulic.Components.IdealValve IdealValve  
Physiolibrary.Hydraulic.Components.IdealValveResistance IdealValveResistance  
Physiolibrary.Hydraulic.Components.Pump Pump Prescribed volumetric flow
Physiolibrary.Hydraulic.Components.Reabsorption Reabsorption Divide inflow to outflow and reabsorption
Physiolibrary.Hydraulic.Components.ElasticMembrane ElasticMembrane Interaction between internal and external cavities

Physiolibrary.Hydraulic.Components.Conductor Physiolibrary.Hydraulic.Components.Conductor

Hydraulic resistor, where conductance=1/resistance

Physiolibrary.Hydraulic.Components.Conductor

Information

This hydraulic conductance (resistance) element contains two connector sides. No hydraulic medium volume is changing in this element during simulation. That means that sum of flow in both connector sides is zero. The flow through element is determined by Ohm's law. It is used conductance (=1/resistance) because it could be numerical zero better then infinity in resistance.

Extends from Hydraulic.Interfaces.OnePort (Hydraulical OnePort), Icons.HydraulicResistor.

Parameters

TypeNameDefaultDescription
HydraulicConductanceConductance0Hydraulic conductance if useConductanceInput=false [m3/(Pa.s)]
External inputs/outputs
BooleanuseConductanceInputfalse=true, if external conductance value is used

Connectors

TypeNameDescription
HydraulicPort_aq_inVolume inflow
HydraulicPort_bq_outVolume outflow
input HydraulicConductanceInputcond[m3/(Pa.s)]

Modelica definition

model Conductor "Hydraulic resistor, where conductance=1/resistance" extends Hydraulic.Interfaces.OnePort; extends Icons.HydraulicResistor; parameter Boolean useConductanceInput = false "=true, if external conductance value is used"; parameter Types.HydraulicConductance Conductance=0 "Hydraulic conductance if useConductanceInput=false"; Types.RealIO.HydraulicConductanceInput cond(start=Conductance)=c if useConductanceInput; protected Types.HydraulicConductance c; equation if not useConductanceInput then c=Conductance; end if; q_in.q = c * (q_in.pressure - q_out.pressure); end Conductor;

Physiolibrary.Hydraulic.Components.Resistor Physiolibrary.Hydraulic.Components.Resistor


Physiolibrary.Hydraulic.Components.Resistor

Information

Extends from Physiolibrary.Hydraulic.Components.Conductor (Hydraulic resistor, where conductance=1/resistance).

Parameters

TypeNameDefaultDescription
HydraulicConductanceConductance1/ResistanceHydraulic conductance if useConductanceInput=false [m3/(Pa.s)]
HydraulicResistanceResistance Hydraulic conductance if useConductanceInput=false [(Pa.s)/m3]
External inputs/outputs
BooleanuseConductanceInputfalse=true, if external conductance value is used

Connectors

TypeNameDescription
HydraulicPort_aq_inVolume inflow
HydraulicPort_bq_outVolume outflow
input HydraulicConductanceInputcond[m3/(Pa.s)]

Modelica definition

model Resistor extends Physiolibrary.Hydraulic.Components.Conductor(final Conductance = 1/Resistance); parameter Physiolibrary.Types.HydraulicResistance Resistance "Hydraulic conductance if useConductanceInput=false"; end Resistor;

Physiolibrary.Hydraulic.Components.ElasticVessel Physiolibrary.Hydraulic.Components.ElasticVessel

Elastic container for blood vessels, bladder, lumens

Physiolibrary.Hydraulic.Components.ElasticVessel

Information

Pressure can be generated by an elastic tissue surrounding some accumulated volume. Typically there is a threshold volume, below which the relative pressure is equal to external pressure and the wall of the blood vessels is not stressed. But if the volume rises above this value, the pressure increases proportionally. The slope in this pressure-volume characteristic is called “Compliance”.


Extends from Icons.ElasticBalloon, SteadyStates.Interfaces.SteadyState (Abstract class for any dynamic state calculation (for any derivation), which is driven by SimulationType option.).

Parameters

TypeNameDefaultDescription
VolumeZeroPressureVolume1e-11Maximal volume, that does not generate pressure if useV0Input=false [m3]
VolumeCollapsingPressureVolume1e-12Maximal volume, which generate negative collapsing pressure [m3]
HydraulicComplianceCompliance1Compliance if useComplianceInput=false [m3/Pa]
PressureExternalPressure0External pressure. Set zero if internal pressure is relative to external. Valid only if useExternalPressureInput=false. [Pa]
PressureMinimalCollapsingPressure-101325[Pa]
Initialization
Volumevolume_start1e-11Volume start value [m3]
External inputs/outputs
BooleanuseV0Inputfalse=true, if zero-pressure-volume input is used
BooleanuseComplianceInputfalse=true, if compliance input is used
BooleanuseExternalPressureInputfalse=true, if external pressure input is used
IO
Functions to read or store
replaceable package UtilitiesTypes.FilesUtilities (direct...How to store or load the values
Initialization
Realstate_startvolume_startState start or init value
Value I/O
StringstoreUnit"ml"Unit in Utilities input/output function
StringstateNamegetInstanceName()Name in Utilities input/output function
BooleanLOAD_STARTSfalseLoad start value of state
BooleanSAVE_RESULTSfalseSave final state values
BooleanSAVE_COMPARISONfalseCompare final state values with original values
Equilibrium
Simulation
SimulationTypeSimulationTypes.SimulationType.NormalI...Dynamic with Initialization or Steady State
BooleanisDependentfalse=true, If zero flow is propagated in eqiulibrium through resistors, impedances, reactions, etc.

Connectors

TypeNameDescription
HydraulicPort_aq_in 
input VolumeInputzeroPressureVolume[m3]
input HydraulicComplianceInputcompliance[m3/Pa]
input PressureInputexternalPressure[Pa]
output VolumeOutputvolume[m3]

Modelica definition

model ElasticVessel "Elastic container for blood vessels, bladder, lumens" extends Icons.ElasticBalloon; extends SteadyStates.Interfaces.SteadyState( state_start=volume_start, storeUnit= "ml"); Interfaces.HydraulicPort_a q_in; parameter Types.Volume volume_start = 1e-11 "Volume start value"; //default = 1e-5 ml Types.Volume excessVolume "Additional volume, that generate pressure"; parameter Boolean useV0Input = false "=true, if zero-pressure-volume input is used"; parameter Types.Volume ZeroPressureVolume = 1e-11 "Maximal volume, that does not generate pressure if useV0Input=false"; //default = 1e-5 ml parameter Types.Volume CollapsingPressureVolume = 1e-12 "Maximal volume, which generate negative collapsing pressure"; //default = 1e-6 ml Types.RealIO.VolumeInput zeroPressureVolume(start=ZeroPressureVolume)= zpv if useV0Input; parameter Boolean useComplianceInput = false "=true, if compliance input is used"; parameter Types.HydraulicCompliance Compliance = 1 "Compliance if useComplianceInput=false"; Types.RealIO.HydraulicComplianceInput compliance(start=Compliance) = c if useComplianceInput; parameter Boolean useExternalPressureInput = false "=true, if external pressure input is used"; parameter Types.Pressure ExternalPressure=0 "External pressure. Set zero if internal pressure is relative to external. Valid only if useExternalPressureInput=false."; parameter Types.Pressure MinimalCollapsingPressure = -101325; Types.RealIO.PressureInput externalPressure(start=ExternalPressure) = ep if useExternalPressureInput; Types.RealIO.VolumeOutput volume; protected Types.Volume zpv; Types.HydraulicCompliance c; Types.Pressure ep; parameter Types.Pressure a=MinimalCollapsingPressure/log(Modelica.Constants.eps); equation if not useV0Input then zpv=ZeroPressureVolume; end if; if not useComplianceInput then c=Compliance; end if; if not useExternalPressureInput then ep=ExternalPressure; end if; excessVolume = max( 0, volume - zpv); q_in.pressure = smooth(0, if noEvent(volume>CollapsingPressureVolume) then (excessVolume/c + ep) else (a*log(max(Modelica.Constants.eps,volume/CollapsingPressureVolume)) + ep)); //then: normal physiological state //else: abnormal collapsing state //Collapsing state: the max function prevents the zero or negative input to logarithm, the logarithm brings more negative pressure for smaller volume //However this collapsing is limited with numerical precission, which is reached relatively soon. state = volume; // der(volume) = q_in.q; change = q_in.q; // assert(volume>=-Modelica.Constants.eps,"Collapsing of vessels are not supported!"); end ElasticVessel;

Physiolibrary.Hydraulic.Components.ElasticVesselElastance Physiolibrary.Hydraulic.Components.ElasticVesselElastance


Physiolibrary.Hydraulic.Components.ElasticVesselElastance

Information

Extends from Physiolibrary.Hydraulic.Components.ElasticVessel (Elastic container for blood vessels, bladder, lumens).

Parameters

TypeNameDefaultDescription
VolumeZeroPressureVolume1e-11Maximal volume, that does not generate pressure if useV0Input=false [m3]
VolumeCollapsingPressureVolume1e-12Maximal volume, which generate negative collapsing pressure [m3]
HydraulicComplianceCompliance1/ElastanceCompliance if useComplianceInput=false [m3/Pa]
PressureExternalPressure0External pressure. Set zero if internal pressure is relative to external. Valid only if useExternalPressureInput=false. [Pa]
PressureMinimalCollapsingPressure-101325[Pa]
HydraulicElastanceElastance1Elastance if useComplianceInput=false [Pa/m3]
Initialization
Volumevolume_start1e-11Volume start value [m3]
External inputs/outputs
BooleanuseV0Inputfalse=true, if zero-pressure-volume input is used
BooleanuseComplianceInputfalse=true, if compliance input is used
BooleanuseExternalPressureInputfalse=true, if external pressure input is used
IO
Functions to read or store
replaceable package UtilitiesTypes.FilesUtilities (direct...How to store or load the values
Initialization
Realstate_startvolume_startState start or init value
Value I/O
StringstoreUnit"ml"Unit in Utilities input/output function
StringstateNamegetInstanceName()Name in Utilities input/output function
BooleanLOAD_STARTSfalseLoad start value of state
BooleanSAVE_RESULTSfalseSave final state values
BooleanSAVE_COMPARISONfalseCompare final state values with original values
Equilibrium
Simulation
SimulationTypeSimulationTypes.SimulationType.NormalI...Dynamic with Initialization or Steady State
BooleanisDependentfalse=true, If zero flow is propagated in eqiulibrium through resistors, impedances, reactions, etc.

Connectors

TypeNameDescription
HydraulicPort_aq_in 
input VolumeInputzeroPressureVolume[m3]
input HydraulicComplianceInputcompliance[m3/Pa]
input PressureInputexternalPressure[Pa]
output VolumeOutputvolume[m3]

Modelica definition

model ElasticVesselElastance extends Physiolibrary.Hydraulic.Components.ElasticVessel(final Compliance = 1/Elastance); parameter Physiolibrary.Types.HydraulicElastance Elastance = 1 "Elastance if useComplianceInput=false"; end ElasticVesselElastance;

Physiolibrary.Hydraulic.Components.HydrostaticColumn Physiolibrary.Hydraulic.Components.HydrostaticColumn

Hydrostatic column pressure between two connectors (with specific muscle pump effect)

Physiolibrary.Hydraulic.Components.HydrostaticColumn

Information

The hydrostatic pressure is proportional to height of the column. 

Extends from Icons.HydrostaticGradient.

Parameters

TypeNameDefaultDescription
HeightH0Height of hydrostatic column if useHeightInput=false [m]
Densityro1060[kg/m3]
AccelerationGravityAcceleration9.81Gravity acceleration if useExternalG=false [m/s2]
External inputs/outputs
BooleanuseHeightInputfalse=true, if height input is used
BooleanuseExternalGfalse=true, if external gravity acceleration is used
BooleanusePumpEffectfalse=true, if musce pump effect is used

Connectors

TypeNameDescription
HydraulicPort_aq_upTop site
HydraulicPort_aq_downBottom site
input HeightInputheightVertical distance between top and bottom connector [m]
input AccelerationInputGGravity acceleration [m/s2]
input FractionInputpumpEffect[1]

Modelica definition

model HydrostaticColumn "Hydrostatic column pressure between two connectors (with specific muscle pump effect)" extends Icons.HydrostaticGradient; Hydraulic.Interfaces.HydraulicPort_a q_up "Top site"; Interfaces.HydraulicPort_a q_down "Bottom site"; parameter Boolean useHeightInput = false "=true, if height input is used"; parameter Types.Height H=0 "Height of hydrostatic column if useHeightInput=false"; Types.RealIO.HeightInput height(start=H)=h if useHeightInput "Vertical distance between top and bottom connector"; parameter Modelica.SIunits.Density ro=1060; //liquid density parameter Boolean useExternalG = false "=true, if external gravity acceleration is used"; parameter Types.Acceleration GravityAcceleration = 9.81 "Gravity acceleration if useExternalG=false"; //Blood density = 1060 kg/m3: Cutnell, John & Johnson, Kenneth. Physics, Fourth Edition. Wiley, 1998: 308. Types.RealIO.AccelerationInput G(start=GravityAcceleration)=g if useExternalG "Gravity acceleration"; parameter Boolean usePumpEffect = false "=true, if musce pump effect is used"; Types.RealIO.FractionInput pumpEffect(start=PumpEffect)=pe if usePumpEffect; protected parameter Types.Fraction PumpEffect = 1 "Pump effect if usePumpEffect=false"; protected Types.Acceleration g; Types.Fraction pe; Types.Height h; equation if not useHeightInput then h=H; end if; if not useExternalG then g=GravityAcceleration; end if; if not usePumpEffect then pe = PumpEffect; end if; q_down.pressure = q_up.pressure + g*ro*h*pe; q_up.q + q_down.q = 0; end HydrostaticColumn;

Physiolibrary.Hydraulic.Components.Inertia Physiolibrary.Hydraulic.Components.Inertia

Inertia of the volumetric flow

Physiolibrary.Hydraulic.Components.Inertia

Information

Inertance I of the simple tube could be calculated as I=ro*l/A, where ro is fuid density, l is tube length and A is tube cross-section area.

Extends from SteadyStates.Interfaces.SteadyState (Abstract class for any dynamic state calculation (for any derivation), which is driven by SimulationType option.), Interfaces.OnePort (Hydraulical OnePort), Icons.Inertance.

Parameters

TypeNameDefaultDescription
HydraulicInertanceI Inertance [Pa.s2/m3]
Initialization
VolumeFlowRatevolumeFlow_start0.3Volumetric flow start value [m3/s]
IO
Functions to read or store
replaceable package UtilitiesTypes.FilesUtilities (direct...How to store or load the values
Initialization
Realstate_startvolumeFlow_startState start or init value
Value I/O
StringstoreUnit"ml/min"Unit in Utilities input/output function
StringstateNamegetInstanceName()Name in Utilities input/output function
BooleanLOAD_STARTSfalseLoad start value of state
BooleanSAVE_RESULTSfalseSave final state values
BooleanSAVE_COMPARISONfalseCompare final state values with original values
Equilibrium
Simulation
SimulationTypeSimulationTypes.SimulationType.NormalI...Dynamic with Initialization or Steady State
BooleanisDependentfalse=true, If zero flow is propagated in eqiulibrium through resistors, impedances, reactions, etc.

Connectors

TypeNameDescription
HydraulicPort_aq_inVolume inflow
HydraulicPort_bq_outVolume outflow

Modelica definition

model Inertia "Inertia of the volumetric flow" extends SteadyStates.Interfaces.SteadyState( state_start=volumeFlow_start, storeUnit="ml/min"); extends Interfaces.OnePort; extends Icons.Inertance; parameter Types.VolumeFlowRate volumeFlow_start=0.3 "Volumetric flow start value"; //5 l/min is normal volumetric flow in aorta parameter Types.HydraulicInertance I "Inertance"; equation state = q_in.q; // I*der(q_in.q) = (q_in.pressure - q_out.pressure); change = (q_in.pressure - q_out.pressure)/I; end Inertia;

Physiolibrary.Hydraulic.Components.IdealValve Physiolibrary.Hydraulic.Components.IdealValve


Physiolibrary.Hydraulic.Components.IdealValve

Information

Ideal Valve allows a volumetric flow in one direction in case of pressure gradient is greater.

Extends from Interfaces.OnePort (Hydraulical OnePort).

Parameters

TypeNameDefaultDescription
HydraulicConductance_Gon1.2501026264094e-02Forward state-on conductance (open valve conductance) [m3/(Pa.s)]
HydraulicConductance_Goff1.2501026264094e-12Backward state-off conductance (closed valve conductance) [m3/(Pa.s)]
PressurePknee0Forward threshold pressure [Pa]
External inputs/outputs
BooleanuseLimitationInputsfalse=true, if Gon and Goff are from inputs

Connectors

TypeNameDescription
HydraulicPort_aq_inVolume inflow
HydraulicPort_bq_outVolume outflow
input HydraulicConductanceInputGonopen valve conductance = infinity for ideal case [m3/(Pa.s)]
input HydraulicConductanceInputGoffclosed valve conductance = zero for ideal case [m3/(Pa.s)]

Modelica definition

model IdealValve extends Interfaces.OnePort; Boolean open(start=true) "Switching state"; Real passableVariable(start=0, final unit="1") "Auxiliary variable for actual position on the ideal diode characteristic"; /* = 0: knee point < 0: below knee point, diode locking > 0: above knee point, diode conducting */ parameter Types.HydraulicConductance _Gon(final min=0, displayUnit="l/(mmHg.min)") = 1.2501026264094e-02 "Forward state-on conductance (open valve conductance)"; //= the same as resistance 1e-5 mmHg/(l/min) parameter Types.HydraulicConductance _Goff(final min=0, displayUnit="l/(mmHg.min)") = 1.2501026264094e-12 "Backward state-off conductance (closed valve conductance)"; //= 1e-5 (l/min)/mmHg parameter Types.Pressure Pknee(final min=0) = 0 "Forward threshold pressure"; parameter Boolean useLimitationInputs = false "=true, if Gon and Goff are from inputs"; Types.RealIO.HydraulicConductanceInput Gon(start=_Gon)=gon if useLimitationInputs "open valve conductance = infinity for ideal case"; Types.RealIO.HydraulicConductanceInput Goff(start=_Goff)=goff if useLimitationInputs "closed valve conductance = zero for ideal case"; protected Types.HydraulicConductance gon,goff; constant Types.Pressure unitPressure=1; constant Types.VolumeFlowRate unitFlow=1; equation if not useLimitationInputs then gon = _Gon; goff = _Goff; end if; open = passableVariable > Modelica.Constants.eps; dp = (passableVariable*unitFlow)*(if open then 1/gon else 1) + Pknee; volumeFlowRate = (passableVariable*unitPressure)*(if open then 1 else goff) + goff*Pknee; end IdealValve;

Physiolibrary.Hydraulic.Components.IdealValveResistance Physiolibrary.Hydraulic.Components.IdealValveResistance


Physiolibrary.Hydraulic.Components.IdealValveResistance

Information

Extends from Physiolibrary.Hydraulic.Components.IdealValve.

Parameters

TypeNameDefaultDescription
HydraulicConductance_Gon1/_RonForward state-on conductance (open valve conductance) [m3/(Pa.s)]
HydraulicConductance_Goff1.2501026264094e-12Backward state-off conductance (closed valve conductance) [m3/(Pa.s)]
PressurePknee0Forward threshold pressure [Pa]
HydraulicResistance_Ron79.993432449forward state resistance [(Pa.s)/m3]
Initialization
Booleanopen.starttrueSwitching state
RealpassableVariable.start0Auxiliary variable for actual position on the ideal diode characteristic [1]
External inputs/outputs
BooleanuseLimitationInputsfalse=true, if Gon and Goff are from inputs

Connectors

TypeNameDescription
HydraulicPort_aq_inVolume inflow
HydraulicPort_bq_outVolume outflow
input HydraulicConductanceInputGonopen valve conductance = infinity for ideal case [m3/(Pa.s)]
input HydraulicConductanceInputGoffclosed valve conductance = zero for ideal case [m3/(Pa.s)]

Modelica definition

model IdealValveResistance extends Physiolibrary.Hydraulic.Components.IdealValve(final _Gon=1/_Ron); parameter Physiolibrary.Types.HydraulicResistance _Ron = 79.993432449 "forward state resistance"; end IdealValveResistance;

Physiolibrary.Hydraulic.Components.Pump Physiolibrary.Hydraulic.Components.Pump

Prescribed volumetric flow

Physiolibrary.Hydraulic.Components.Pump

Information

This element needs to be connected only to next hydraulic elements, which contain calculation of hydraulic pressure in connector. It is because equation contains only hydraulic volume flow variable, which is set to value of input signal variable.

Extends from Hydraulic.Interfaces.OnePort (Hydraulical OnePort), Interfaces.ConditionalSolutionFlow (Input of solution volumetric flow vs. parametric solution volumetric flow).

Parameters

TypeNameDefaultDescription
VolumeFlowRateSolutionFlow0Volumetric flow of solution if useSolutionFlowInput=false [m3/s]
External inputs/outputs
BooleanuseSolutionFlowInputfalse=true, if solution flow input is used instead of parameter SolutionFlow

Connectors

TypeNameDescription
HydraulicPort_aq_inVolume inflow
HydraulicPort_bq_outVolume outflow
input VolumeFlowRateInputsolutionFlow[m3/s]

Modelica definition

model Pump "Prescribed volumetric flow" extends Hydraulic.Interfaces.OnePort; extends Interfaces.ConditionalSolutionFlow; equation volumeFlowRate = q; end Pump;

Physiolibrary.Hydraulic.Components.Reabsorption Physiolibrary.Hydraulic.Components.Reabsorption

Divide inflow to outflow and reabsorption

Physiolibrary.Hydraulic.Components.Reabsorption

Information

Hydraulic Reabsorption

If useOutflowMin=false then the next schema is used.


If useOutflowMin=true then the extended schema is used:

Extends from Icons.Reabsorption.

Parameters

TypeNameDefaultDescription
VolumeFlowRateOutflowMin0Minimal outflow if useExternalOutflowMin=false [m3/s]
External inputs/outputs
BooleanuseExternalOutflowMinfalse=true, if minimal outflow is garanted

Connectors

TypeNameDescription
HydraulicPort_aInflow 
HydraulicPort_bOutflow 
HydraulicPort_bReabsorption 
input FractionInputFractReab[1]
input VolumeFlowRateInputoutflowMin[m3/s]

Modelica definition

model Reabsorption "Divide inflow to outflow and reabsorption" import Physiolibrary; extends Icons.Reabsorption; Hydraulic.Interfaces.HydraulicPort_a Inflow; Hydraulic.Interfaces.HydraulicPort_b Outflow; Hydraulic.Interfaces.HydraulicPort_b Reabsorption; Types.RealIO.FractionInput FractReab; parameter Boolean useExternalOutflowMin = false "=true, if minimal outflow is garanted"; parameter Types.VolumeFlowRate OutflowMin = 0 "Minimal outflow if useExternalOutflowMin=false"; Types.RealIO.VolumeFlowRateInput outflowMin(start=OutflowMin) = om if useExternalOutflowMin; protected Types.VolumeFlowRate om; equation if not useExternalOutflowMin then om = OutflowMin; end if; Inflow.pressure = Outflow.pressure; 0 = Inflow.q + Outflow.q + Reabsorption.q; // assert(Inflow.q>=-Modelica.Constants.eps,"Only one directional flow is supported!"); Reabsorption.q = -max(0,FractReab*(Inflow.q-om)); end Reabsorption;

Physiolibrary.Hydraulic.Components.ElasticMembrane Physiolibrary.Hydraulic.Components.ElasticMembrane

Interaction between internal and external cavities

Physiolibrary.Hydraulic.Components.ElasticMembrane

Information

Extends from SteadyStates.Interfaces.SteadyState (Abstract class for any dynamic state calculation (for any derivation), which is driven by SimulationType option.), Icons.InternalElasticBalloon.

Parameters

TypeNameDefaultDescription
HydraulicComplianceCompliance Compliance [m3/Pa]
VolumezeroPressureVolume0Maximal volume, that does not generate pressure [m3]
VolumeNominalVolume1e-6Scale numerical calculation from quadratic meter to miniliters. [m3]
Initialization
Volumevolume_start0Volume start value [m3]
IO
Functions to read or store
replaceable package UtilitiesTypes.FilesUtilities (direct...How to store or load the values
Initialization
Realstate_startvolume_startState start or init value
Value I/O
StringstoreUnit"ml"Unit in Utilities input/output function
StringstateNamegetInstanceName()Name in Utilities input/output function
BooleanLOAD_STARTSfalseLoad start value of state
BooleanSAVE_RESULTSfalseSave final state values
BooleanSAVE_COMPARISONfalseCompare final state values with original values
Equilibrium
Simulation
SimulationTypeSimulationTypes.SimulationType.NormalI...Dynamic with Initialization or Steady State
BooleanisDependentfalse=true, If zero flow is propagated in eqiulibrium through resistors, impedances, reactions, etc.

Connectors

TypeNameDescription
HydraulicPort_aq_intInternal space
HydraulicPort_bq_extExternal space

Modelica definition

model ElasticMembrane "Interaction between internal and external cavities" extends SteadyStates.Interfaces.SteadyState( state_start=volume_start, storeUnit= "ml"); extends Icons.InternalElasticBalloon; Interfaces.HydraulicPort_a q_int "Internal space"; Interfaces.HydraulicPort_b q_ext "External space"; parameter Types.HydraulicCompliance Compliance "Compliance"; parameter Types.Volume zeroPressureVolume=0 "Maximal volume, that does not generate pressure"; parameter Types.Volume volume_start=0 "Volume start value"; Types.Volume volume; Types.Volume stressedVolume; parameter Types.Volume NominalVolume=1e-6 "Scale numerical calculation from quadratic meter to miniliters."; equation q_int.q + q_ext.q = 0; q_int.pressure = (stressedVolume/Compliance) + q_ext.pressure; stressedVolume = max(volume-zeroPressureVolume,0); state = volume; // der(volume) = q_int.q; change = q_int.q; // assert(volume>=-Modelica.Constants.eps,"Totally collapsed compartments are not supported!"); end ElasticMembrane;

Automatically generated Tue Sep 15 22:53:45 2015.