Modelica.Thermal.FluidHeatFlow.Sources

Ideal fluid sources, e.g., ambient, volume flow

Information


This package contains different types of sources:

Thermodynamic equations are defined in partial models (package Interfaces.Partials).
All fans / pumps are considered without losses, they do not change enthalpy flow.
Main Authors:

Anton Haumer
Technical Consulting & Electrical Engineering
A-3423 St.Andrae-Woerdern, Austria
email: a.haumer@haumer.at

Dr.Christian Kral
Österreichisches Forschungs- und Prüfzentrum Arsenal Ges.m.b.H.
arsenal research
Giefinggasse 2
A-1210 Vienna, Austria

Copyright © 1998-2009, Modelica Association, Anton Haumer and arsenal research.

The Modelica package is free software; it can be redistributed and/or modified under the terms of the Modelica license, see the license conditions and the accompanying disclaimer here.

Extends from Modelica.Icons.Library2 (Icon for library where additional icon elements shall be added).

Package Content

NameDescription
Modelica.Thermal.FluidHeatFlow.Sources.Ambient Ambient Ambient with constant properties
Modelica.Thermal.FluidHeatFlow.Sources.AbsolutePressure AbsolutePressure Defines absolute pressure level
Modelica.Thermal.FluidHeatFlow.Sources.VolumeFlow VolumeFlow Enforces constant volume flow
Modelica.Thermal.FluidHeatFlow.Sources.PressureIncrease PressureIncrease Enforces constant pressure increase
Modelica.Thermal.FluidHeatFlow.Sources.IdealPump IdealPump Model of an ideal pump


Modelica.Thermal.FluidHeatFlow.Sources.Ambient Modelica.Thermal.FluidHeatFlow.Sources.Ambient

Ambient with constant properties

Modelica.Thermal.FluidHeatFlow.Sources.Ambient

Information


(Infinite) ambient with constant pressure and temperature.
Thermodynamic equations are defined by Partials.Ambient.

Extends from Interfaces.Partials.Ambient (Partial model of ambient).

Parameters

TypeNameDefaultDescription
MediummediumFluidHeatFlow.Media.Medium()Ambient medium
BooleanusePressureInputfalseenable / disable pressure input
PressureconstantAmbientPressure Ambient pressure [Pa]
BooleanuseTemperatureInputfalseenable / disable temperature input
TemperatureconstantAmbientTemperature Ambient temperature [K]

Connectors

TypeNameDescription
FlowPort_aflowPort 
input RealInputambientPressure 
input RealInputambientTemperature 

Modelica definition

model Ambient "Ambient with constant properties"

  extends Interfaces.Partials.Ambient;
  parameter Boolean usePressureInput=false "enable / disable pressure input";
  parameter Modelica.SIunits.Pressure constantAmbientPressure(start=0) 
    "Ambient pressure";
  parameter Boolean useTemperatureInput=false 
    "enable / disable temperature input";
  parameter Modelica.SIunits.Temperature constantAmbientTemperature(start=293.15, displayUnit="degC") 
    "Ambient temperature";
  Modelica.Blocks.Interfaces.RealInput ambientPressure if usePressureInput;
  Modelica.Blocks.Interfaces.RealInput ambientTemperature if useTemperatureInput;
protected 
  Modelica.Blocks.Sources.Constant constPressure(final k=
        constantAmbientPressure) if not usePressureInput;
  Modelica.Blocks.Interfaces.RealInput pAmbient;
  Modelica.Blocks.Sources.Constant constTemperature(final k=
        constantAmbientTemperature) if not useTemperatureInput;
  Modelica.Blocks.Interfaces.RealInput TAmbient;
equation 
  flowPort.p = pAmbient;
  T = TAmbient;
  connect(ambientPressure, pAmbient);
  connect(ambientTemperature, TAmbient);
  connect(constPressure.y, pAmbient);
  connect(constTemperature.y, TAmbient);
end Ambient;

Modelica.Thermal.FluidHeatFlow.Sources.AbsolutePressure Modelica.Thermal.FluidHeatFlow.Sources.AbsolutePressure

Defines absolute pressure level

Modelica.Thermal.FluidHeatFlow.Sources.AbsolutePressure

Information


AbsolutePressure to define pressure level of a closed cooling cycle.
Coolant's mass flow, temperature and enthalpy flow are not affected.

Parameters

TypeNameDefaultDescription
MediummediumFluidHeatFlow.Media.Medium()medium
Pressurep Pressure ground [Pa]

Connectors

TypeNameDescription
FlowPort_aflowPort 

Modelica definition

model AbsolutePressure "Defines absolute pressure level"

  parameter FluidHeatFlow.Media.Medium medium=FluidHeatFlow.Media.Medium() 
    "medium";
  parameter Modelica.SIunits.Pressure p(start=0) "Pressure ground";
  Interfaces.FlowPort_a flowPort(final medium=medium);
equation 
  // defining pressure
  flowPort.p = p;
  // no energy exchange; no mass flow by default
  flowPort.H_flow = 0;
end AbsolutePressure;

Modelica.Thermal.FluidHeatFlow.Sources.VolumeFlow Modelica.Thermal.FluidHeatFlow.Sources.VolumeFlow

Enforces constant volume flow

Modelica.Thermal.FluidHeatFlow.Sources.VolumeFlow

Information


Fan resp. pump with constant volume flow rate. Pressure increase is the response of the whole system.
Coolant's temperature and enthalpy flow are not affected.
Setting parameter m (mass of medium within fan/pump) to zero leads to neglection of temperature transient cv*m*der(T).
Thermodynamic equations are defined by Partials.TwoPort.

Extends from Interfaces.Partials.TwoPort (Partial model of two port).

Parameters

TypeNameDefaultDescription
MediummediumFluidHeatFlow.Media.Medium()Medium in the component
Massm Mass of medium [kg]
TemperatureT0 Initial temperature of medium [K]
RealtapT1Defines temperature of heatPort between inlet and outlet temperature
BooleanuseVolumeFlowInputfalseenable / disable volume flow input
VolumeFlowRateconstantVolumeFlow Volume flow rate [m3/s]

Connectors

TypeNameDescription
FlowPort_aflowPort_a 
FlowPort_bflowPort_b 
input RealInputvolumeFlow 

Modelica definition

model VolumeFlow "Enforces constant volume flow"

  extends Interfaces.Partials.TwoPort(final tapT=1);
  parameter Boolean useVolumeFlowInput=false 
    "enable / disable volume flow input";
  parameter Modelica.SIunits.VolumeFlowRate constantVolumeFlow(start=1) 
    "Volume flow rate";
  Modelica.Blocks.Interfaces.RealInput volumeFlow if useVolumeFlowInput;
protected 
  Modelica.Blocks.Sources.Constant constVolumeFlow(final k=constantVolumeFlow) if 
       not useVolumeFlowInput;
  Modelica.Blocks.Interfaces.RealInput internalVolumeFlow;
equation 
  Q_flow = 0;
  V_flow = internalVolumeFlow;
  connect(volumeFlow, internalVolumeFlow);
  connect(constVolumeFlow.y, internalVolumeFlow);
end VolumeFlow;

Modelica.Thermal.FluidHeatFlow.Sources.PressureIncrease Modelica.Thermal.FluidHeatFlow.Sources.PressureIncrease

Enforces constant pressure increase

Modelica.Thermal.FluidHeatFlow.Sources.PressureIncrease

Information


Fan resp. pump with constant pressure increase. Mass resp. volume flow is the response of the whole system.
Coolant's temperature and enthalpy flow are not affected.
Setting parameter m (mass of medium within fan/pump) to zero leads to neglection of temperature transient cv*m*der(T).
Thermodynamic equations are defined by Partials.TwoPort.

Extends from Interfaces.Partials.TwoPort (Partial model of two port).

Parameters

TypeNameDefaultDescription
MediummediumFluidHeatFlow.Media.Medium()Medium in the component
Massm Mass of medium [kg]
TemperatureT0 Initial temperature of medium [K]
RealtapT1Defines temperature of heatPort between inlet and outlet temperature
BooleanusePressureIncreaseInputfalseenable / disable pressure increase input
PressureconstantPressureIncrease Pressure increase [Pa]

Connectors

TypeNameDescription
FlowPort_aflowPort_a 
FlowPort_bflowPort_b 
input RealInputpressureIncrease 

Modelica definition

model PressureIncrease "Enforces constant pressure increase"

  extends Interfaces.Partials.TwoPort(final tapT=1);
  parameter Boolean usePressureIncreaseInput=false 
    "enable / disable pressure increase input";
  parameter Modelica.SIunits.Pressure constantPressureIncrease(start=1) 
    "Pressure increase";
  Modelica.Blocks.Interfaces.RealInput pressureIncrease if usePressureIncreaseInput;
protected 
  Modelica.Blocks.Sources.Constant constPressureIncrease(final k=
        constantPressureIncrease) if not usePressureIncreaseInput;
  Modelica.Blocks.Interfaces.RealInput internalPressureIncrease;
equation 
  Q_flow = 0;
  dp = -internalPressureIncrease;
  connect(pressureIncrease, internalPressureIncrease);
  connect(constPressureIncrease.y, internalPressureIncrease);
end PressureIncrease;

Modelica.Thermal.FluidHeatFlow.Sources.IdealPump Modelica.Thermal.FluidHeatFlow.Sources.IdealPump

Model of an ideal pump

Modelica.Thermal.FluidHeatFlow.Sources.IdealPump

Information


Simple fan resp. pump where characteristic is dependent on shaft's speed, 
torque * speed = pressure increase * volume flow (without losses)
Pressure increase versus volume flow is defined by a linear function, from dp0(V_flow=0) to V_flow0(dp=0).
The axis intersections vary with speed as follows: Coolant's temperature and enthalpy flow are not affected.
Setting parameter m (mass of medium within fan/pump) to zero leads to neglection of temperature transient cv*m*der(T).
Thermodynamic equations are defined by Partials.TwoPort.

Extends from Interfaces.Partials.TwoPort (Partial model of two port).

Parameters

TypeNameDefaultDescription
MediummediumFluidHeatFlow.Media.Medium()Medium in the component
Massm Mass of medium [kg]
TemperatureT0 Initial temperature of medium [K]
RealtapT1Defines temperature of heatPort between inlet and outlet temperature
Pump characteristic
AngularVelocitywNominal Nominal speed [rad/s]
Pressuredp0 Max. pressure increase @ V_flow=0 [Pa]
VolumeFlowRateV_flow0 Max. volume flow rate @ dp=0 [m3/s]

Connectors

TypeNameDescription
FlowPort_aflowPort_a 
FlowPort_bflowPort_b 
Flange_aflange_a 

Modelica definition

model IdealPump "Model of an ideal pump"

  extends Interfaces.Partials.TwoPort(final tapT=1);
  parameter Modelica.SIunits.AngularVelocity wNominal(start=1, displayUnit="1/min") 
    "Nominal speed";
  parameter Modelica.SIunits.Pressure dp0(start=2) 
    "Max. pressure increase @ V_flow=0";
  parameter Modelica.SIunits.VolumeFlowRate V_flow0(start=2) 
    "Max. volume flow rate @ dp=0";
  Modelica.SIunits.AngularVelocity w=der(flange_a.phi) "Speed";
protected 
  Modelica.SIunits.Pressure dp1;
  Modelica.SIunits.VolumeFlowRate V_flow1;
public 
  Modelica.Mechanics.Rotational.Interfaces.Flange_a flange_a;
equation 
  // pump characteristic
  dp1 = dp0*sign(w/wNominal)*(w/wNominal)^2;
  V_flow1 = V_flow0*(w/wNominal);
  if noEvent(abs(w)<Modelica.Constants.small) then
    dp = 0;
    flange_a.tau = 0;
  else
    dp = -dp1*(1-noEvent(abs(V_flow/V_flow1)));
    flange_a.tau*w = -dp*V_flow;
  end if;
  // no energy exchange with medium
  Q_flow = 0;
end IdealPump;

HTML-documentation generated by Dymola Sun Jan 17 21:12:41 2010.