Collection of models that illustrate model use and test models
Information
  This packages contains examples for Reduced Order Model applications.
  
Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).
Package Content
| Name | 
Description | 
  SimpleRoomFourElements
 | 
Illustrates the use of a thermal zone with four heat conduction elements | 
  SimpleRoomOneElement
 | 
Illustrates the use of a thermal zone with one heat conduction element | 
  SimpleRoomThreeElements
 | 
Illustrates the use of a thermal zone with three heat conduction elements | 
  SimpleRoomTwoElements
 | 
Illustrates the use of a thermal zone with two heat conduction elements | 
Illustrates the use of a thermal zone with four heat conduction elements
Information
  This example shows the application of
  
  Annex60.ThermalZones.ReducedOrder.RC.FourElements
  in combination with
  
 Annex60.ThermalZones.ReducedOrder.EquivalentAirTemperature.VDI6007WithWindow
  and
  
  Annex60.ThermalZones.ReducedOrder.SolarGain.CorrectionGDoublePane.
  Solar radiation on tilted surface is calculated using models of
  Annex60. The thermal zone is a simple room defined in Guideline
  VDI 6007 Part 1 (VDI, 2012). All models, parameters and inputs
  except sunblinds, separate handling of heat transfer through
  windows, an extra wall element for ground floor (with additional
  area), an extra wall element for roof (with additional area) and
  solar radiation are similar to the ones defined for the
  guideline's test room. For solar radiation, the example
  relies on the standard weather file in Annex60.
  The idea of the example is to show a typical application of
  all sub-models and to use the example in unit tests. The results
  are reasonable, but not related to any real use case or measurement
  data.
  References
  VDI. German Association of Engineers Guideline VDI
  6007-1 March 2012. Calculation of transient thermal response of
  rooms and buildings - modelling of rooms.
  
Extends from Modelica.Icons.Example (Icon for runnable examples).
Connectors
| Type | Name | Description | 
| Bus | weaBus | Weather data bus | 
Modelica definition
model SimpleRoomFourElements
  
  
extends Modelica.Icons.Example;
  
BoundaryConditions.WeatherData.ReaderTMY3 weaDat(
    calTSky=Annex60.BoundaryConditions.Types.SkyTemperatureCalculation.HorizontalRadiation,
    computeWetBulbTemperature=false,
    filNam="modelica://Annex60/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos")
    ;
  
BoundaryConditions.SolarIrradiation.DiffusePerez HDifTil[2](
    
each outSkyCon=true,
    
each outGroCon=true,
    
each til=1.5707963267949,
    
each lat=0.87266462599716,
    azi={3.1415926535898,4.7123889803847})
    ;
  
BoundaryConditions.SolarIrradiation.DirectTiltedSurface HDirTil[2](
    
each til=1.5707963267949,
    
each lat=0.87266462599716,
    azi={3.1415926535898,4.7123889803847})
    ;
  
SolarGain.CorrectionGDoublePane corGDouPan(UWin=2.1, n=2)
    ;
  
RC.FourElements thermalZoneFourElements(
    VAir=52.5,
    alphaExt=2.7,
    alphaWin=2.7,
    gWin=1,
    ratioWinConRad=0.09,
    nExt=1,
    RExt={0.00331421908725},
    CExt={5259932.23},
    alphaRad=5,
    AInt=60.5,
    alphaInt=2.12,
    nInt=1,
    RInt={0.000668895639141},
    CInt={12391363.86},
    RWin=0.01642857143,
    RExtRem=0.1265217391,
    AFloor=11.5,
    alphaFloor=2.7,
    nFloor=1,
    RFloor={0.00331421908725},
    RFloorRem=0.1265217391,
    CFloor={5259932.23},
    ARoof=11.5,
    alphaRoof=2.7,
    nRoof=1,
    RRoof={0.00331421908725},
    RRoofRem=0.1265217391,
    CRoof={5259932.23},
    nOrientations=2,
    AWin={7,7},
    ATransparent={7,7},
    AExt={3.5,8},
    
redeclare package Medium = 
Modelica.Media.Air.SimpleAir,
    energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
    extWallRC(thermCapExt(
each der_T(fixed=true))),
    intWallRC(thermCapInt(
each der_T(fixed=true))),
    floorRC(thermCapExt(
each der_T(fixed=true))),
    T_start=295.15,
    roofRC(thermCapExt(
each der_T(fixed=true)))) ;
  
EquivalentAirTemperature.VDI6007WithWindow eqAirTemp(
    wfGro=0,
    withLongwave=true,
    aExt=0.7,
    alphaWallOut=20,
    alphaRad=5,
    alphaWinOut=20,
    n=2,
    wfWall={0.3043478260869566,0.6956521739130435},
    wfWin={0.5,0.5},
    TGro=285.15) ;
  
Modelica.Blocks.Math.Add solRad[2]
    ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTem
    ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTem1
    ;
  
Modelica.Thermal.HeatTransfer.Components.Convection theConWin
    ;
  
Modelica.Thermal.HeatTransfer.Components.Convection theConWall
    ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow perRad
    ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow perCon
    ;
  
Modelica.Blocks.Sources.CombiTimeTable intGai(
    table=[0,0,0,0; 3600,0,0,0; 7200,0,0,0; 10800,0,0,0; 14400,0,0,0; 18000,0,0,
        0; 21600,0,0,0; 25200,0,0,0; 25200,80,80,200; 28800,80,80,200; 32400,80,
        80,200; 36000,80,80,200; 39600,80,80,200; 43200,80,80,200; 46800,80,80,200;
        50400,80,80,200; 54000,80,80,200; 57600,80,80,200; 61200,80,80,200; 61200,
        0,0,0; 64800,0,0,0; 72000,0,0,0; 75600,0,0,0; 79200,0,0,0; 82800,0,0,0;
        86400,0,0,0],
    columns={2,3,4},
    extrapolation=Modelica.Blocks.Types.Extrapolation.Periodic) ;
  
Modelica.Blocks.Sources.Constant const[2](
each k=0)
    ;
  
BoundaryConditions.WeatherData.Bus weaBus ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow macConv
    ;
  
Modelica.Blocks.Sources.Constant alphaWall(k=25*11.5)
    ;
  
Modelica.Blocks.Sources.Constant alphaWin(k=20*14)
    ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTemFloor
    ;
  
Modelica.Blocks.Sources.Constant TSoil(k=283.15)
    ;
  
EquivalentAirTemperature.VDI6007 eqAirTempVDI(
    aExt=0.7,
    n=1,
    wfWall={1},
    wfWin={0},
    wfGro=0,
    alphaWallOut=20,
    alphaRad=5,
    TGro=285.15) ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTemRoof
    ;
  
Modelica.Thermal.HeatTransfer.Components.Convection theConRoof
    ;
  
Modelica.Blocks.Sources.Constant alphaRoof(k=25*11.5)
    ;
  
Modelica.Blocks.Sources.Constant const1(k=0)
    ;
equation 
  connect(eqAirTemp.TEqAirWin, preTem1.T);
  
connect(eqAirTemp.TEqAir, preTem.T);
  
connect(weaDat.weaBus, weaBus);
  
connect(weaBus.TDryBul, eqAirTemp.TDryBul);
  
connect(intGai.y[1], perRad.Q_flow);
  
connect(intGai.y[2], perCon.Q_flow);
  
connect(intGai.y[3], macConv.Q_flow);
  
connect(const.y, eqAirTemp.sunblind);
  
connect(HDifTil.HSkyDifTil, corGDouPan.HSkyDifTil);
  
connect(HDirTil.H, corGDouPan.HDirTil);
  
connect(HDirTil.H,solRad. u1);
  
connect(HDifTil.H,solRad. u2);
  
connect(HDifTil.HGroDifTil, corGDouPan.HGroDifTil);
  
connect(solRad.y, eqAirTemp.HSol);
  
connect(weaDat.weaBus, HDifTil[1].weaBus);
  
connect(weaDat.weaBus, HDifTil[2].weaBus);
  
connect(weaDat.weaBus, HDirTil[1].weaBus);
  
connect(weaDat.weaBus, HDirTil[2].weaBus);
  
connect(perRad.port, thermalZoneFourElements.intGainsRad);
  
connect(theConWin.solid, thermalZoneFourElements.window);
  
connect(preTem1.port, theConWin.fluid);
  
connect(thermalZoneFourElements.extWall, theConWall.solid);
  
connect(theConWall.fluid, preTem.port);
  
connect(alphaWall.y, theConWall.Gc);
  
connect(alphaWin.y, theConWin.Gc);
  
connect(weaBus.TBlaSky, eqAirTemp.TBlaSky);
  
connect(macConv.port, thermalZoneFourElements.intGainsConv);
  
connect(perCon.port, thermalZoneFourElements.intGainsConv);
  
connect(preTemFloor.port, thermalZoneFourElements.floor);
  
connect(TSoil.y, preTemFloor.T);
  
connect(preTemRoof.port, theConRoof.fluid);
  
connect(theConRoof.solid, thermalZoneFourElements.roof);
  
connect(eqAirTempVDI.TEqAir, preTemRoof.T);
  
connect(theConRoof.Gc, alphaRoof.y);
  
connect(eqAirTempVDI.TDryBul, eqAirTemp.TDryBul);
  
connect(eqAirTempVDI.TBlaSky, eqAirTemp.TBlaSky);
  
connect(eqAirTempVDI.HSol[1], weaBus.HGloHor);
  
connect(HDirTil.inc, corGDouPan.inc);
  
connect(const1.y, eqAirTempVDI.sunblind[1]);
  
connect(corGDouPan.solarRadWinTrans, thermalZoneFourElements.solRad);
end SimpleRoomFourElements;
 
Illustrates the use of a thermal zone with one heat conduction element
Information
  This example shows the application of
  
  Annex60.ThermalZones.ReducedOrder.RC.OneElement
  in combination with
  
 Annex60.ThermalZones.ReducedOrder.EquivalentAirTemperature.VDI6007WithWindow
  and
  
  Annex60.ThermalZones.ReducedOrder.SolarGain.CorrectionGDoublePane.
  Solar radiation on tilted surface is calculated using models of
  Annex60. The thermal zone is a simple room defined in Guideline
  VDI 6007 Part 1 (VDI, 2012). All models, parameters and inputs
  except sunblinds, separate handling of heat transfer through
  windows, no wall element for internal walls and solar radiation
  are similar to the ones defined for the guideline's test
  room. For solar radiation, the example relies on the standard
  weather file in Annex60.
  The idea of the example is to show a typical application of all
  sub-models and to use the example in unit tests. The results are
  reasonable, but not related to any real use case or measurement
  data.
  References
  VDI. German Association of Engineers Guideline VDI 6007-1
  March 2012. Calculation of transient thermal response of rooms
  and buildings - modelling of rooms.
  
Extends from Modelica.Icons.Example (Icon for runnable examples).
Connectors
| Type | Name | Description | 
| Bus | weaBus | Weather data bus | 
Modelica definition
model SimpleRoomOneElement
  
  
extends Modelica.Icons.Example;
  
BoundaryConditions.WeatherData.ReaderTMY3 weaDat(
    calTSky=Annex60.BoundaryConditions.Types.SkyTemperatureCalculation.HorizontalRadiation,
    computeWetBulbTemperature=false,
    filNam="modelica://Annex60/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos")
    ;
  
BoundaryConditions.SolarIrradiation.DiffusePerez HDifTil[2](
    
each outSkyCon=true,
    
each outGroCon=true,
    
each til=1.5707963267949,
    
each lat=0.87266462599716,
    azi={3.1415926535898,4.7123889803847})
    ;
  
BoundaryConditions.SolarIrradiation.DirectTiltedSurface HDirTil[2](
    
each til=1.5707963267949,
    
each lat=0.87266462599716,
    azi={3.1415926535898,4.7123889803847})
    ;
  
SolarGain.CorrectionGDoublePane corGDouPan(n=2, UWin=2.1)
    ;
  
RC.OneElement thermalZoneOneElement(
    VAir=52.5,
    alphaExt=2.7,
    alphaWin=2.7,
    gWin=1,
    ratioWinConRad=0.09,
    nExt=1,
    RExt={0.00331421908725},
    CExt={5259932.23},
    alphaRad=5,
    RWin=0.01642857143,
    RExtRem=0.1265217391,
    nOrientations=2,
    AWin={7,7},
    ATransparent={7,7},
    AExt={3.5,8},
    
redeclare package Medium = 
Modelica.Media.Air.SimpleAir,
    extWallRC(thermCapExt(
each der_T(fixed=true))),
    energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
    T_start=295.15) ;
  
EquivalentAirTemperature.VDI6007WithWindow eqAirTemp(
    n=2,
    wfGro=0,
    wfWall={0.3043478260869566,0.6956521739130435},
    wfWin={0.5,0.5},
    withLongwave=true,
    aExt=0.7,
    alphaWallOut=20,
    alphaRad=5,
    alphaWinOut=20,
    TGro=285.15) ;
  
Modelica.Blocks.Math.Add solRad[2]
    ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTem
    ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTem1
    ;
  
Modelica.Thermal.HeatTransfer.Components.Convection theConWin
    ;
  
Modelica.Thermal.HeatTransfer.Components.Convection theConWall
    ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow perRad
    ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow perCon
    ;
  
Modelica.Blocks.Sources.CombiTimeTable intGai(
    table=[0,0,0,0; 3600,0,0,0; 7200,0,0,0; 10800,0,0,0; 14400,0,0,0; 18000,0,0,
        0; 21600,0,0,0; 25200,0,0,0; 25200,80,80,200; 28800,80,80,200; 32400,80,
        80,200; 36000,80,80,200; 39600,80,80,200; 43200,80,80,200; 46800,80,80,200;
        50400,80,80,200; 54000,80,80,200; 57600,80,80,200; 61200,80,80,200; 61200,
        0,0,0; 64800,0,0,0; 72000,0,0,0; 75600,0,0,0; 79200,0,0,0; 82800,0,0,0;
        86400,0,0,0],
    columns={2,3,4},
    extrapolation=Modelica.Blocks.Types.Extrapolation.Periodic) ;
  
Modelica.Blocks.Sources.Constant const[2](
each k=0)
    ;
  
BoundaryConditions.WeatherData.Bus weaBus ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow macConv
    ;
  
Modelica.Blocks.Sources.Constant alphaWall(k=25*11.5)
    ;
  
Modelica.Blocks.Sources.Constant alphaWin(k=20*14)
    ;
equation 
  connect(eqAirTemp.TEqAirWin, preTem1.T);
  
connect(eqAirTemp.TEqAir, preTem.T);
  
connect(weaDat.weaBus, weaBus);
  
connect(weaBus.TDryBul, eqAirTemp.TDryBul);
  
connect(intGai.y[1], perRad.Q_flow);
  
connect(intGai.y[2], perCon.Q_flow);
  
connect(intGai.y[3], macConv.Q_flow);
  
connect(const.y, eqAirTemp.sunblind);
  
connect(HDifTil.HSkyDifTil, corGDouPan.HSkyDifTil);
  
connect(HDirTil.H, corGDouPan.HDirTil);
  
connect(HDirTil.H,solRad. u1);
  
connect(HDirTil.inc, corGDouPan.inc);
  
connect(HDifTil.H,solRad. u2);
  
connect(HDifTil.HGroDifTil, corGDouPan.HGroDifTil);
  
connect(solRad.y, eqAirTemp.HSol);
  
connect(weaDat.weaBus, HDifTil[1].weaBus);
  
connect(weaDat.weaBus, HDifTil[2].weaBus);
  
connect(weaDat.weaBus, HDirTil[1].weaBus);
  
connect(weaDat.weaBus, HDirTil[2].weaBus);
  
connect(perRad.port, thermalZoneOneElement.intGainsRad);
  
connect(theConWin.solid, thermalZoneOneElement.window);
  
connect(preTem1.port, theConWin.fluid);
  
connect(thermalZoneOneElement.extWall, theConWall.solid);
  
connect(theConWall.fluid, preTem.port);
  
connect(alphaWall.y, theConWall.Gc);
  
connect(alphaWin.y, theConWin.Gc);
  
connect(weaBus.TBlaSky, eqAirTemp.TBlaSky);
  
connect(macConv.port, thermalZoneOneElement.intGainsConv);
  
connect(perCon.port, thermalZoneOneElement.intGainsConv);
  
connect(corGDouPan.solarRadWinTrans, thermalZoneOneElement.solRad);
end SimpleRoomOneElement;
 
Illustrates the use of a thermal zone with three heat conduction elements
Information
  This example shows the application of
  
  Annex60.ThermalZones.ReducedOrder.RC.ThreeElements
  in combination with
  
  Annex60.ThermalZones.ReducedOrder.EquivalentAirTemperature.VDI6007WithWindow
  and
  
  Annex60.ThermalZones.ReducedOrder.SolarGain.CorrectionGDoublePane.
  Solar radiation on tilted surface is calculated using models of
  Annex60. The thermal zone is a simple room defined in Guideline
  VDI 6007 Part 1 (VDI, 2012). All models, parameters and inputs
  except sunblinds, separate handling of heat transfer through
  windows, an extra wall element for ground floor (with additional
  area) and solar radiation are similar to the ones defined for the
  guideline's test room. For solar radiation, the example
  relies on the standard weather file in Annex60.
  The idea of the example is to show a typical application of
  all sub-models and to use the example in unit tests. The results
  are reasonable, but not related to any real use case or
  measurement data.
  References
  VDI. German Association of Engineers Guideline VDI 6007-1 March
  2012. Calculation of transient thermal response of rooms and
  buildings - modelling of rooms.
  
Extends from Modelica.Icons.Example (Icon for runnable examples).
Connectors
| Type | Name | Description | 
| Bus | weaBus | Weather data bus | 
Modelica definition
model SimpleRoomThreeElements
  
  
extends Modelica.Icons.Example;
  
BoundaryConditions.WeatherData.ReaderTMY3 weaDat(
    calTSky=Annex60.BoundaryConditions.Types.SkyTemperatureCalculation.HorizontalRadiation,
    computeWetBulbTemperature=false,
    filNam="modelica://Annex60/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos")
    ;
  
BoundaryConditions.SolarIrradiation.DiffusePerez HDifTil[2](
    
each outSkyCon=true,
    
each outGroCon=true,
    
each til=1.5707963267949,
    
each lat=0.87266462599716,
    azi={3.1415926535898,4.7123889803847})
    ;
  
BoundaryConditions.SolarIrradiation.DirectTiltedSurface HDirTil[2](
    
each til=1.5707963267949,
    
each lat=0.87266462599716,
    azi={3.1415926535898,4.7123889803847})
    ;
  
SolarGain.CorrectionGDoublePane corGDouPan(n=2, UWin=2.1)
    ;
  
RC.ThreeElements thermalZoneThreeElements(
    VAir=52.5,
    alphaExt=2.7,
    alphaWin=2.7,
    gWin=1,
    ratioWinConRad=0.09,
    nExt=1,
    RExt={0.00331421908725},
    CExt={5259932.23},
    alphaRad=5,
    AInt=60.5,
    alphaInt=2.12,
    nInt=1,
    RInt={0.000668895639141},
    CInt={12391363.86},
    RWin=0.01642857143,
    RExtRem=0.1265217391,
    AFloor=11.5,
    alphaFloor=2.7,
    nFloor=1,
    RFloor={0.00331421908725},
    RFloorRem=0.1265217391,
    CFloor={5259932.23},
    AWin={7,7},
    ATransparent={7,7},
    AExt={3.5,8},
    nOrientations=2,
    
redeclare package Medium = 
Modelica.Media.Air.SimpleAir,
    extWallRC(thermCapExt(
each der_T(fixed=true))),
    energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
    intWallRC(thermCapInt(
each der_T(fixed=true))),
    floorRC(thermCapExt(
each der_T(fixed=true))),
    T_start=295.15) ;
  
EquivalentAirTemperature.VDI6007WithWindow eqAirTemp(
    n=2,
    wfGro=0,
    wfWall={0.3043478260869566,0.6956521739130435},
    wfWin={0.5,0.5},
    withLongwave=true,
    aExt=0.7,
    alphaWallOut=20,
    alphaRad=5,
    alphaWinOut=20,
    TGro=285.15) ;
  
Modelica.Blocks.Math.Add solRad[2]
    ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTem
    ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTem1
    ;
  
Modelica.Thermal.HeatTransfer.Components.Convection theConWin
    ;
  
Modelica.Thermal.HeatTransfer.Components.Convection theConWall
    ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow perRad
    ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow perCon
    ;
  
Modelica.Blocks.Sources.CombiTimeTable intGai(
    table=[0,0,0,0; 3600,0,0,0; 7200,0,0,0; 10800,0,0,0; 14400,0,0,0; 18000,0,0,
        0; 21600,0,0,0; 25200,0,0,0; 25200,80,80,200; 28800,80,80,200; 32400,80,
        80,200; 36000,80,80,200; 39600,80,80,200; 43200,80,80,200; 46800,80,80,200;
        50400,80,80,200; 54000,80,80,200; 57600,80,80,200; 61200,80,80,200; 61200,
        0,0,0; 64800,0,0,0; 72000,0,0,0; 75600,0,0,0; 79200,0,0,0; 82800,0,0,0;
        86400,0,0,0],
    columns={2,3,4},
    extrapolation=Modelica.Blocks.Types.Extrapolation.Periodic) ;
  
Modelica.Blocks.Sources.Constant const[2](
each k=0)
    ;
  
BoundaryConditions.WeatherData.Bus weaBus ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow macConv
    ;
  
Modelica.Blocks.Sources.Constant alphaWall(k=25*11.5)
    ;
  
Modelica.Blocks.Sources.Constant alphaWin(k=20*14)
    ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTemFloor
    ;
  
Modelica.Blocks.Sources.Constant TSoil(k=283.15)
    ;
equation 
  connect(eqAirTemp.TEqAirWin, preTem1.T);
  
connect(eqAirTemp.TEqAir, preTem.T);
  
connect(weaDat.weaBus, weaBus);
  
connect(weaBus.TDryBul, eqAirTemp.TDryBul);
  
connect(intGai.y[1], perRad.Q_flow);
  
connect(intGai.y[2], perCon.Q_flow);
  
connect(intGai.y[3], macConv.Q_flow);
  
connect(const.y, eqAirTemp.sunblind);
  
connect(HDifTil.HSkyDifTil, corGDouPan.HSkyDifTil);
  
connect(HDirTil.H, corGDouPan.HDirTil);
  
connect(HDirTil.H,solRad. u1);
  
connect(HDirTil.inc, corGDouPan.inc);
  
connect(HDifTil.H,solRad. u2);
  
connect(HDifTil.HGroDifTil, corGDouPan.HGroDifTil);
  
connect(solRad.y, eqAirTemp.HSol);
  
connect(weaDat.weaBus, HDifTil[1].weaBus);
  
connect(weaDat.weaBus, HDifTil[2].weaBus);
  
connect(weaDat.weaBus, HDirTil[1].weaBus);
  
connect(weaDat.weaBus, HDirTil[2].weaBus);
  
connect(perRad.port, thermalZoneThreeElements.intGainsRad);
  
connect(theConWin.solid, thermalZoneThreeElements.window);
  
connect(preTem1.port, theConWin.fluid);
  
connect(thermalZoneThreeElements.extWall, theConWall.solid);
  
connect(theConWall.fluid, preTem.port);
  
connect(alphaWall.y, theConWall.Gc);
  
connect(alphaWin.y, theConWin.Gc);
  
connect(weaBus.TBlaSky, eqAirTemp.TBlaSky);
  
connect(macConv.port, thermalZoneThreeElements.intGainsConv);
  
connect(perCon.port, thermalZoneThreeElements.intGainsConv);
  
connect(preTemFloor.port, thermalZoneThreeElements.floor);
  
connect(TSoil.y, preTemFloor.T);
  
connect(corGDouPan.solarRadWinTrans, thermalZoneThreeElements.solRad);
end SimpleRoomThreeElements;
 
Illustrates the use of a thermal zone with two heat conduction elements
Information
  This example shows the application of
  
  Annex60.ThermalZones.ReducedOrder.RC.TwoElements
  in combination with
  
 Annex60.ThermalZones.ReducedOrder.EquivalentAirTemperature.VDI6007WithWindow
  and
  
  Annex60.ThermalZones.ReducedOrder.SolarGain.CorrectionGDoublePane.
  Solar radiation on tilted surface is calculated using models of
  Annex60. The thermal zone is a simple room defined in Guideline
  VDI 6007 Part 1 (VDI, 2012). All models, parameters and inputs
  except sunblinds, separate handling of heat transfer through
  windows and solar radiation are similar to the ones defined for
  the guideline's test room. For solar radiation, the example
  relies on the standard weather file in Annex60.
  The idea of the example is to show a typical application of
  all sub-models and to use the example in unit tests. The results
  are reasonable, but not related to any real use case or
  measurement data.
  References
  VDI. German Association of Engineers Guideline VDI
  6007-1 March 2012. Calculation of transient thermal response of
  rooms and buildings - modelling of rooms.
  
Extends from Modelica.Icons.Example (Icon for runnable examples).
Connectors
| Type | Name | Description | 
| Bus | weaBus | Weather data bus | 
Modelica definition
model SimpleRoomTwoElements
 
  
extends Modelica.Icons.Example;
  
BoundaryConditions.WeatherData.ReaderTMY3 weaDat(
    calTSky=Annex60.BoundaryConditions.Types.SkyTemperatureCalculation.HorizontalRadiation,
    computeWetBulbTemperature=false,
    filNam="modelica://Annex60/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos")
    ;
  
BoundaryConditions.SolarIrradiation.DiffusePerez HDifTil[2](
    
each outSkyCon=true,
    
each outGroCon=true,
    
each til=1.5707963267949,
    
each lat=0.87266462599716,
    azi={3.1415926535898,4.7123889803847})
    ;
  
BoundaryConditions.SolarIrradiation.DirectTiltedSurface HDirTil[2](
    
each til(displayUnit="deg") = 1.5707963267949,
    
each lat=0.87266462599716,
    azi={3.1415926535898,4.7123889803847})
    ;
  
SolarGain.CorrectionGDoublePane corGDouPan(n=2, UWin=2.1)
    ;
  
RC.TwoElements thermalZoneTwoElements(
    VAir=52.5,
    alphaExt=2.7,
    alphaWin=2.7,
    gWin=1,
    ratioWinConRad=0.09,
    nExt=1,
    RExt={0.00331421908725},
    CExt={5259932.23},
    alphaRad=5,
    AInt=60.5,
    alphaInt=2.12,
    nInt=1,
    RInt={0.000668895639141},
    CInt={12391363.86},
    RWin=0.01642857143,
    RExtRem=0.1265217391,
    nOrientations=2,
    AWin={7,7},
    ATransparent={7,7},
    AExt={3.5,8},
    
redeclare package Medium = 
Modelica.Media.Air.SimpleAir,
    extWallRC(thermCapExt(
each der_T(fixed=true))),
    energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
    T_start=295.15,
    intWallRC(thermCapInt(
each der_T(fixed=true)))) ;
  
EquivalentAirTemperature.VDI6007WithWindow eqAirTemp(
    n=2,
    wfGro=0,
    wfWall={0.3043478260869566,0.6956521739130435},
    wfWin={0.5,0.5},
    withLongwave=true,
    aExt=0.7,
    alphaWallOut=20,
    alphaRad=5,
    alphaWinOut=20,
    TGro=285.15) ;
  
Modelica.Blocks.Math.Add solRad[2]
    ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTem
    ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature preTem1
    ;
  
Modelica.Thermal.HeatTransfer.Components.Convection theConWin
    ;
  
Modelica.Thermal.HeatTransfer.Components.Convection theConWall
    ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow perRad
    ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow perCon
    ;
  
Modelica.Blocks.Sources.CombiTimeTable intGai(
    table=[0,0,0,0; 3600,0,0,0; 7200,0,0,0; 10800,0,0,0; 14400,0,0,0; 18000,0,0,
        0; 21600,0,0,0; 25200,0,0,0; 25200,80,80,200; 28800,80,80,200; 32400,80,
        80,200; 36000,80,80,200; 39600,80,80,200; 43200,80,80,200; 46800,80,80,200;
        50400,80,80,200; 54000,80,80,200; 57600,80,80,200; 61200,80,80,200; 61200,
        0,0,0; 64800,0,0,0; 72000,0,0,0; 75600,0,0,0; 79200,0,0,0; 82800,0,0,0;
        86400,0,0,0],
    columns={2,3,4},
    extrapolation=Modelica.Blocks.Types.Extrapolation.Periodic) ;
  
Modelica.Blocks.Sources.Constant const[2](
each k=0)
    ;
  
BoundaryConditions.WeatherData.Bus weaBus ;
  
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow macConv
    ;
  
Modelica.Blocks.Sources.Constant alphaWall(k=25*11.5)
    ;
  
Modelica.Blocks.Sources.Constant alphaWin(k=20*14)
    ;
equation 
  connect(eqAirTemp.TEqAirWin, preTem1.T);
  
connect(eqAirTemp.TEqAir, preTem.T);
  
connect(weaDat.weaBus, weaBus);
  
connect(weaBus.TDryBul, eqAirTemp.TDryBul);
  
connect(intGai.y[1], perRad.Q_flow);
  
connect(intGai.y[2], perCon.Q_flow);
  
connect(intGai.y[3], macConv.Q_flow);
  
connect(const.y, eqAirTemp.sunblind);
  
connect(HDifTil.HSkyDifTil, corGDouPan.HSkyDifTil);
  
connect(HDirTil.H, corGDouPan.HDirTil);
  
connect(HDirTil.H,solRad. u1);
  
connect(HDirTil.inc, corGDouPan.inc);
  
connect(HDifTil.H,solRad. u2);
  
connect(HDifTil.HGroDifTil, corGDouPan.HGroDifTil);
  
connect(solRad.y, eqAirTemp.HSol);
  
connect(weaDat.weaBus, HDifTil[1].weaBus);
  
connect(weaDat.weaBus, HDifTil[2].weaBus);
  
connect(weaDat.weaBus, HDirTil[1].weaBus);
  
connect(weaDat.weaBus, HDirTil[2].weaBus);
  
connect(perRad.port, thermalZoneTwoElements.intGainsRad);
  
connect(theConWin.solid, thermalZoneTwoElements.window);
  
connect(preTem1.port, theConWin.fluid);
  
connect(thermalZoneTwoElements.extWall, theConWall.solid);
  
connect(theConWall.fluid, preTem.port);
  
connect(alphaWall.y, theConWall.Gc);
  
connect(alphaWin.y, theConWin.Gc);
  
connect(weaBus.TBlaSky, eqAirTemp.TBlaSky);
  
connect(macConv.port, thermalZoneTwoElements.intGainsConv);
  
connect(perCon.port, thermalZoneTwoElements.intGainsConv);
  
connect(corGDouPan.solarRadWinTrans, thermalZoneTwoElements.solRad);
end SimpleRoomTwoElements;
 
http://iea-annex60.org