diff --git a/Buildings/BoundaryConditions/GroundTemperature/BaseClasses/package.mo b/Buildings/BoundaryConditions/GroundTemperature/BaseClasses/package.mo new file mode 100644 index 00000000000..17c961397e9 --- /dev/null +++ b/Buildings/BoundaryConditions/GroundTemperature/BaseClasses/package.mo @@ -0,0 +1,18 @@ +within Buildings.BoundaryConditions.GroundTemperature; +package BaseClasses "Package with base classes for Buildings.BoundaryConditions.GroundTemperature" + extends Modelica.Icons.BasesPackage; + + annotation (Documentation(info=" +

+This package contains base classes that are used to construct the models in +Buildings.BoundaryConditions.GroundTemperature. +

+", revisions=" + +")); +end BaseClasses; diff --git a/Buildings/BoundaryConditions/GroundTemperature/BaseClasses/package.order b/Buildings/BoundaryConditions/GroundTemperature/BaseClasses/package.order new file mode 100644 index 00000000000..24bfde8718b --- /dev/null +++ b/Buildings/BoundaryConditions/GroundTemperature/BaseClasses/package.order @@ -0,0 +1 @@ +surfaceTemperature diff --git a/Buildings/BoundaryConditions/GroundTemperature/BaseClasses/surfaceTemperature.mo b/Buildings/BoundaryConditions/GroundTemperature/BaseClasses/surfaceTemperature.mo new file mode 100644 index 00000000000..2ae9fb4f6e8 --- /dev/null +++ b/Buildings/BoundaryConditions/GroundTemperature/BaseClasses/surfaceTemperature.mo @@ -0,0 +1,107 @@ +within Buildings.BoundaryConditions.GroundTemperature.BaseClasses; +function surfaceTemperature + "Function to correct the climatic constants using n-factors" + extends Modelica.Icons.Function; + + input ClimaticConstants.Generic cliCon + "Surface temperature climatic conditions"; + input Real nFacTha "Thawing n-factor (TAir > 0degC)"; + input Real nFacFre "Freezing n-factor (TAir <= 0degC)"; + output ClimaticConstants.Generic corCliCon + "Corrected surface temperature climatic conditions"; + +protected + constant Integer Year=365 "Year period in days"; + constant Integer secInDay = 24 * 60 * 60 "Seconds in a day"; + constant Modelica.SIunits.Angle pi = Modelica.Constants.pi; + constant Modelica.SIunits.Temperature TFre = 273.15 "Freezing temperature of water"; + constant Real freq = 2 * pi / Year "Year frequency in rad/days"; + parameter Modelica.SIunits.Temperature TAirDayMea[Year] = {cliCon.TSurMea + cliCon.TSurAmp / freq * ( + cos(freq * (cliCon.sinPha / secInDay - day)) - + cos(freq * (cliCon.sinPha / secInDay - (day + 1)))) + for day in 1:Year} "Daily mean air temperature (surface = 0 from uncorrected climatic constants)"; + parameter Modelica.SIunits.Temperature TSurDayMea[Year] = { + if TAirDayMea[day] > TFre + then (TFre + (TAirDayMea[day] - TFre) * nFacTha) + else (TFre + (TAirDayMea[day] - TFre) * nFacFre) + for day in 1:Year} "Daily mean corrected surface temperature"; + parameter Real C1 = sum({TSurDayMea[day] * cos(freq * day) for day in 1:Year}); + parameter Real C2 = sum({TSurDayMea[day] * sin(freq * day) for day in 1:Year}); + + parameter Modelica.SIunits.Temperature corTSurMea = sum(TSurDayMea)/Year + "Mean annual surface temperature"; + parameter Modelica.SIunits.TemperatureDifference corTSurAmp = 2/Year .* (C1^2 + C2^2)^0.5 + "Surface temperature amplitude"; + parameter Modelica.SIunits.Duration corSinPha(displayUnit="d") = (Modelica.Math.atan(C2/C1) + pi/2)*secInDay/freq + "Phase lag of soil surface temperature"; + +algorithm + // Analytical mean by integrating undisturbed soil temperature formula + corCliCon := ClimaticConstants.Generic( + TSurMea = corTSurMea, + TSurAmp = corTSurAmp, + sinPha = corSinPha); + + annotation (Documentation(revisions=" + +", info=" +

+This function corrects the surface temperature climatic constants +by applying n-factors with the methodology prescribed in the +District Cooling Guide (ASHRAE, 2013). +

+

+n-factors corresponds to the ratio of freezing (/thawing) degree +days or index between the air and the ground surface and can +be used to couple the air and ground surface temperatures.
+For example, a freezing n-factor of 1.35 means that during the +freezing season, the daily average ground surface temperature is +on average 1.35 times colder than the air (using the freezing +temperature of water as a reference).
+In its guide, ASHRAE suggests to first apply the n-factors to the +uncorrected ground temperature at zero burial depth, and to fit a +new sinusoidal curve to the result. +
+In this function, the freezing n-factor is applied to days where +the daily mean air temperature is below the freezing temperature (0degC), +whereas the thawing n-factor is applied to the remaining days. +

+

+ Tground - Tfreezing = ηfreezing * (Tair - Tfreezing)   if Tair <= Tfreezing
+ Tground - Tfreezing = ηthawing * (Tair - Tfreezing)   if Tair > Tfreezing +

+

+The sinusoidal curve is then fitted using the analytical solution +proposed in Appendix B of the District Heating Guide. +

+

+n-factors are specific to a climate and surface cover, and should be +extrapolated from other sites with caution. As a first approximation, +tabulated values of n-factors are available in Lunardini (1981) and +Freitag and McFadden (1997). +

+ + +

References

+

+ASHRAE (2013). District Cooling Guide. ASHRAE, Atlanta, GA.
+ASHRAE (2013). District Heating Guide. ASHRAE, Atlanta, GA.
+D.W. Riseborough (2003). Thawing and freezing indices in the active layer. Proceedings of the 8th International Conference on Permafrost, Swets & Zeitlinger.
+V.J. Lunardini (1981). Heat Transfer in Cold Climates. Van Nostrand Reinhold Company.
+D.R. Freitag and T. McFadden (1997). Introduction to Cold Regions Engineering. American Society of Civil Engineers. + +

+ +")); +end surfaceTemperature; diff --git a/Buildings/BoundaryConditions/GroundTemperature/ClimaticConstants.mo b/Buildings/BoundaryConditions/GroundTemperature/ClimaticConstants.mo new file mode 100644 index 00000000000..9a228053a29 --- /dev/null +++ b/Buildings/BoundaryConditions/GroundTemperature/ClimaticConstants.mo @@ -0,0 +1,48 @@ +within Buildings.BoundaryConditions.GroundTemperature; +package ClimaticConstants "Surface temperature climatic constants" + extends Modelica.Icons.MaterialPropertiesPackage; + + record Generic "Generic climatic constants" + extends Modelica.Icons.Record; + parameter Modelica.SIunits.Temperature TSurMea + "Mean annual surface temperature"; + parameter Modelica.SIunits.TemperatureDifference TSurAmp + "Surface temperature amplitude"; + parameter Modelica.SIunits.Duration sinPha(displayUnit="d") + "Phase lag of soil surface temperature"; + end Generic; + + record Boston = + Buildings.BoundaryConditions.GroundTemperature.ClimaticConstants.Generic( + TSurMea=284.23, + TSurAmp=11.57, + sinPha=9944640) "Boston"; + + record NewYork = + Buildings.BoundaryConditions.GroundTemperature.ClimaticConstants.Generic( + TSurMea=286.03, + TSurAmp=11.45, + sinPha=9728640) "New York"; + + record SanFrancisco = + Buildings.BoundaryConditions.GroundTemperature.ClimaticConstants.Generic( + TSurMea=287.64, + TSurAmp=3.35, + sinPha=10419840) "San Francisco"; + + annotation (Documentation(info=" +

+Surface temperature data that is used in the calculation of undisturbed soil temperature. +See +Climatic Constants for Calculating Subsurface Soil Temperatures for +more information and a table of values. +

+", revisions=" + +")); +end ClimaticConstants; diff --git a/Buildings/BoundaryConditions/GroundTemperature/Examples/CorrectedConvection.mo b/Buildings/BoundaryConditions/GroundTemperature/Examples/CorrectedConvection.mo new file mode 100644 index 00000000000..669adb97337 --- /dev/null +++ b/Buildings/BoundaryConditions/GroundTemperature/Examples/CorrectedConvection.mo @@ -0,0 +1,22 @@ +within Buildings.BoundaryConditions.GroundTemperature.Examples; +model CorrectedConvection + "Example model for undisturbed soil temperature with surface convection correction" + extends UndisturbedSoilTemperature(TSoi(each useCon=true, each hSur=5)); + annotation (Documentation(revisions=" + +", info=" +

+This example model showcases the use of the convection coefficient +correction, which allows to specify the heat transfer rate between +the air and the surface temperature. +

+"), +experiment(StopTime=31536000, Tolerance=1e-6), +__Dymola_Commands(file="modelica://Buildings/Resources/Scripts/Dymola/BoundaryConditions/GroundTemperature/Examples/CorrectedConvection.mos" + "Simulate and plot")); +end CorrectedConvection; diff --git a/Buildings/BoundaryConditions/GroundTemperature/Examples/CorrectedNFactors.mo b/Buildings/BoundaryConditions/GroundTemperature/Examples/CorrectedNFactors.mo new file mode 100644 index 00000000000..d7373c55550 --- /dev/null +++ b/Buildings/BoundaryConditions/GroundTemperature/Examples/CorrectedNFactors.mo @@ -0,0 +1,30 @@ +within Buildings.BoundaryConditions.GroundTemperature.Examples; +model CorrectedNFactors + "Example model for undisturbed soil temperature with n-factors correction" + extends UndisturbedSoilTemperature( + TSoi(each useNFac=true, each nFacTha=1.7, each nFacFre=0.66)); + annotation (Documentation(revisions=" + +", info=" +

+This example model showcases the use of n-factors, which are used +to correct the surface temperature given the ratio of freezing/thawing +degree days (FDD/TDD) between the air and the ground. +

+ +

References

+

+The values used in this example are equivalent to the use-case +presented in the \"Heat Transfer at Ground Surface\" section of the +District Cooling Guide (ASHRAE, 2013). +

+"), +experiment(StopTime=31536000, Tolerance=1e-6), +__Dymola_Commands(file="modelica://Buildings/Resources/Scripts/Dymola/BoundaryConditions/GroundTemperature/Examples/CorrectedNFactors.mos" + "Simulate and plot")); +end CorrectedNFactors; diff --git a/Buildings/BoundaryConditions/GroundTemperature/Examples/UndisturbedSoilTemperature.mo b/Buildings/BoundaryConditions/GroundTemperature/Examples/UndisturbedSoilTemperature.mo new file mode 100644 index 00000000000..f25de2f5af9 --- /dev/null +++ b/Buildings/BoundaryConditions/GroundTemperature/Examples/UndisturbedSoilTemperature.mo @@ -0,0 +1,37 @@ +within Buildings.BoundaryConditions.GroundTemperature.Examples; +model UndisturbedSoilTemperature "Example model for undisturbed soil temperature" + extends Modelica.Icons.Example; + + parameter Integer nSoi = 4 "Number of probed depths"; + parameter Modelica.SIunits.Length dep[nSoi] = {0,2,5,9} "Probed depths"; + + Buildings.BoundaryConditions.GroundTemperature.UndisturbedSoilTemperature + TSoi[nSoi](dep=dep, each cliCon=cliCon, each soiDat=soiDat) + "Undisturbed soil temperatures" + annotation (Placement(transformation(extent={{-20,-20},{20,20}}))); + +protected + replaceable parameter ClimaticConstants.Boston cliCon + "Surface temperature climatic conditions"; + replaceable parameter Buildings.HeatTransfer.Data.Soil.Generic soiDat( + k=1.58,c=1150,d=1600) "Soil thermal properties"; + annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram( + coordinateSystem(preserveAspectRatio=false)), + experiment(StopTime=31536000, Tolerance=1e-6), + Documentation(info=" +

+This example model illustrates how the undisturbed soil temperature model +decreases seasonal temperature oscillations and increases delay as depth is +increasing. +

+", revisions=" + +"), + __Dymola_Commands(file="modelica://Buildings/Resources/Scripts/Dymola/BoundaryConditions/GroundTemperature/Examples/UndisturbedSoilTemperature.mos" + "Simulate and plot")); +end UndisturbedSoilTemperature; diff --git a/Buildings/BoundaryConditions/GroundTemperature/Examples/package.mo b/Buildings/BoundaryConditions/GroundTemperature/Examples/package.mo new file mode 100644 index 00000000000..aeb31ebea6b --- /dev/null +++ b/Buildings/BoundaryConditions/GroundTemperature/Examples/package.mo @@ -0,0 +1,19 @@ +within Buildings.BoundaryConditions.GroundTemperature; +package Examples "Collection of models that illustrate model use and test models" + extends Modelica.Icons.ExamplesPackage; + + annotation (Documentation(info=" +

+This package contains examples for the use of models that can be found in + +Buildings.BoundaryConditions.GroundTemperature. +

+", revisions=" + +")); +end Examples; diff --git a/Buildings/BoundaryConditions/GroundTemperature/Examples/package.order b/Buildings/BoundaryConditions/GroundTemperature/Examples/package.order new file mode 100644 index 00000000000..db3436c84b4 --- /dev/null +++ b/Buildings/BoundaryConditions/GroundTemperature/Examples/package.order @@ -0,0 +1,3 @@ +CorrectedConvection +CorrectedNFactors +UndisturbedSoilTemperature diff --git a/Buildings/BoundaryConditions/GroundTemperature/UndisturbedSoilTemperature.mo b/Buildings/BoundaryConditions/GroundTemperature/UndisturbedSoilTemperature.mo new file mode 100644 index 00000000000..f2d2152ee69 --- /dev/null +++ b/Buildings/BoundaryConditions/GroundTemperature/UndisturbedSoilTemperature.mo @@ -0,0 +1,154 @@ +within Buildings.BoundaryConditions.GroundTemperature; +model UndisturbedSoilTemperature "Undisturbed soil temperature" + parameter Modelica.SIunits.Length dep "Depth"; + + parameter Boolean useNFac = false + "= true, use n-factors to correct climatic constants"; + parameter Real nFacTha = 1 "Thawing n-factor (TAir > 0degC)" + annotation(Dialog(enable=useNFac)); + parameter Real nFacFre = 1 "Freezing n-factor (TAir <= 0degC)" + annotation(Dialog(enable=useNFac)); + + parameter Boolean useCon = false + "= true, includes convection between air and surface coupling"; + parameter Real hSur(unit="W/(m2.K)", min=0) = 25 + "Surface convective heat transfer coefficient" + annotation(Dialog(enable=useCon)); + + replaceable parameter Buildings.HeatTransfer.Data.Soil.Generic + soiDat "Soil thermal properties"; + replaceable parameter ClimaticConstants.Generic + cliCon "Surface temperature climatic conditions"; + + Modelica.SIunits.Temperature T + "Undisturbed soil temperature at depth dep"; + +protected + constant Modelica.SIunits.Angle pi = Modelica.Constants.pi; + constant Modelica.SIunits.Duration Year = 365.2422*24*60*60 + "Annual period length"; + + parameter Modelica.SIunits.Length corDep = if useCon + then dep + soiDat.k / hSur + else dep + "Convection-corrected depth"; + parameter ClimaticConstants.Generic corCliCon= if useNFac + then BaseClasses.surfaceTemperature(cliCon=cliCon, nFacTha=nFacTha, nFacFre=nFacFre) + else cliCon + "n-factor corrected climatic constants"; + + parameter Modelica.SIunits.ThermalDiffusivity + soiDif = soiDat.k / soiDat.c / soiDat.d "Soil diffusivity"; + parameter Modelica.SIunits.Duration + timLag = corCliCon.sinPha + "Start time of surface temperature sinusoid"; + parameter Real pha = - corDep * (pi/soiDif/Year)^0.5 + "Phase angle of ground temperature sinusoid"; + +initial equation + assert(not (useCon and useNFac), + "N-Factors and surface convection corrections + would typically not be used simultaneously", + level = AssertionLevel.warning); + +equation + T = corCliCon.TSurMea + corCliCon.TSurAmp * exp(pha) * + sin(2*pi*(time-timLag)/Year + pha); + annotation (Placement(transformation(extent={{-6,-104},{6,-92}}), + iconTransformation(extent={{-6,-104},{6,-92}})), + Icon(coordinateSystem(preserveAspectRatio=false), graphics={ + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Rectangle( + extent={{-100,20},{100,-100}}, + lineColor={0,0,0}, + fillColor={211,168,137}, + fillPattern=FillPattern.Backward), + Rectangle( + extent={{-100,20},{100,26}}, + lineColor={0,0,0}, + fillColor={0,255,128}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-100,26},{100,100}}, + lineColor={0,0,0}, + fillColor={85,170,255}, + fillPattern=FillPattern.Solid), + Line( + points={{0,38},{0,-60}}, + color={191,0,0}, + thickness=1), + Polygon( + points={{16,-60},{-16,-60},{0,-92},{16,-60}}, + lineColor={191,0,0}, + fillColor={191,0,0}, + fillPattern=FillPattern.Solid), + Text( + extent={{-38,-38},{-100,-100}}, + textColor={0,0,0}, + textString="K")}), Diagram( + coordinateSystem(preserveAspectRatio=false)), + Documentation(info=" +

+This model provides a prescribed temperature boundary condition for buried objects, +where the temperature is computed per the ASCE (1996) equation: +

+

+\"image\" +

+

+where:
+Ts,z = ground temperature at depth z,
+τ = annual period length (constant 365.25 days),
+α = soil thermal diffusivity (assumed constant throughout the year),
+t = time,
+Tms = mean annual surface temperature,
+As = temperature amplitude throughout the year (max - min),
+tlag = phase lag of the surface temperature sinusoid +

+ +

Corrections

+ +

+Without correction, this model assumes that the surface temperature (depth = 0) is +equal to the air temperature, which is acceptable for most design calculations.
+For more accurate calculation, this model provides methods to compensate for +the convective thermal resistance and the impact of surface cover. +

+

+The convective thermal resistance can be modeled as a virtual equivalent soil layer +by setting the flag useCon to true and specifying the +heat transfer coefficient hSur.
+This correction would result in a larger delay and dampening of the +resulting sinusoid. +

+

+The impact of surface cover on soil temperature can be modeled using +n-factors by setting the flag useNFac to true and +specifying the thawing and freezing n-factors at the surface.
+ +More information about n-factors correction can be found in the documentation +for +Buildings.BoundaryConditions.GroundTemperature.BaseClasses.surfaceTemperature. +

+

+Since n-factors incorporate the effect of surface convection, +both corrections would typically not be applied simultaneously.
+

+ +

References

+

+ASCE (1996). Cold Regions Utilities Monograph. D.W. Smith, Technical Editor. +

+ +", revisions=" + +")); +end UndisturbedSoilTemperature; diff --git a/Buildings/BoundaryConditions/GroundTemperature/package.mo b/Buildings/BoundaryConditions/GroundTemperature/package.mo new file mode 100644 index 00000000000..003ee9a9581 --- /dev/null +++ b/Buildings/BoundaryConditions/GroundTemperature/package.mo @@ -0,0 +1,17 @@ +within Buildings.BoundaryConditions; +package GroundTemperature "Package with models to compute ground temperature" + extends Modelica.Icons.VariantsPackage; + + annotation (Documentation(info=" +

+This package contains models to compute the ground temperature. +

+", revisions=" + +")); +end GroundTemperature; diff --git a/Buildings/BoundaryConditions/GroundTemperature/package.order b/Buildings/BoundaryConditions/GroundTemperature/package.order new file mode 100644 index 00000000000..bb516d8747e --- /dev/null +++ b/Buildings/BoundaryConditions/GroundTemperature/package.order @@ -0,0 +1,4 @@ +ClimaticConstants +UndisturbedSoilTemperature +Examples +BaseClasses diff --git a/Buildings/BoundaryConditions/package.order b/Buildings/BoundaryConditions/package.order index 1f2453d93b9..43d148f1d4b 100644 --- a/Buildings/BoundaryConditions/package.order +++ b/Buildings/BoundaryConditions/package.order @@ -1,4 +1,5 @@ UsersGuide +GroundTemperature SkyTemperature SolarGeometry SolarIrradiation diff --git a/Buildings/Controls/OBC/ASHRAE/G36_PR1/Generic/SetPoints/Validation/ZoneStatusDuplicator.mo b/Buildings/Controls/OBC/ASHRAE/G36_PR1/Generic/SetPoints/Validation/ZoneStatusDuplicator.mo new file mode 100644 index 00000000000..9296dba9777 --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/G36_PR1/Generic/SetPoints/Validation/ZoneStatusDuplicator.mo @@ -0,0 +1,81 @@ +within Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.Validation; +model ZoneStatusDuplicator + "Validate block for duplicating zone status" + + Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.ZoneStatusDuplicator zonStaDup( + final nZon=5, + final nGro=2) + "Zone status duplicator" + annotation (Placement(transformation(extent={{0,-40},{20,40}}))); + Buildings.Controls.OBC.CDL.Continuous.Sources.Constant reaInp[6,5]( + final k=fill({1,2,3,4,5}, 6)) + "Real inputs" + annotation (Placement(transformation(extent={{-100,20},{-80,40}}))); + Buildings.Controls.OBC.CDL.Logical.Sources.Constant booInp[9,5]( + final k=fill({true,true,false,true,false},9)) + "Boolean inputs" + annotation (Placement(transformation(extent={{-100,-40},{-80,-20}}))); + +equation + connect(reaInp[1, :].y, zonStaDup.tNexOcc) + annotation (Line(points={{-78,30},{-5,30}}, color={0,0,127})); + connect(reaInp[2, :].y, zonStaDup.uCooTim) annotation (Line(points={{-78,30},{ + -60,30},{-60,22},{-5,22}}, color={0,0,127})); + connect(reaInp[3, :].y, zonStaDup.uWarTim) annotation (Line(points={{-78,30},{ + -60,30},{-60,18},{-5,18}}, color={0,0,127})); + connect(reaInp[4, :].y, zonStaDup.THeaSetOff) annotation (Line(points={{-78,30}, + {-60,30},{-60,-6},{-5,-6}}, color={0,0,127})); + connect(reaInp[5, :].y, zonStaDup.TCooSetOff) annotation (Line(points={{-78,30}, + {-60,30},{-60,-22},{-5,-22}}, color={0,0,127})); + connect(reaInp[6, :].y, zonStaDup.TZon) annotation (Line(points={{-78,30},{-60, + 30},{-60,-34},{-5,-34}}, color={0,0,127})); + connect(booInp[1, :].y, zonStaDup.zonOcc) annotation (Line(points={{-78,-30},{ + -40,-30},{-40,38},{-5,38}}, color={255,0,255})); + connect(booInp[2, :].y, zonStaDup.uOcc) annotation (Line(points={{-78,-30},{-40, + -30},{-40,34},{-5,34}}, color={255,0,255})); + connect(booInp[3, :].y, zonStaDup.uOccHeaHig) annotation (Line(points={{-78,-30}, + {-40,-30},{-40,10},{-5,10}}, color={255,0,255})); + connect(booInp[4, :].y, zonStaDup.uHigOccCoo) annotation (Line(points={{-78,-30}, + {-40,-30},{-40,6},{-5,6}}, color={255,0,255})); + connect(booInp[5, :].y, zonStaDup.uUnoHeaHig) annotation (Line(points={{-78,-30}, + {-40,-30},{-40,-2},{-5,-2}}, color={255,0,255})); + connect(booInp[6, :].y, zonStaDup.uEndSetBac) annotation (Line(points={{-78,-30}, + {-40,-30},{-40,-10},{-5,-10}}, color={255,0,255})); + connect(booInp[7, :].y, zonStaDup.uHigUnoCoo) annotation (Line(points={{-78,-30}, + {-40,-30},{-40,-18},{-5,-18}}, color={255,0,255})); + connect(booInp[8, :].y, zonStaDup.uEndSetUp) annotation (Line(points={{-78,-30}, + {-40,-30},{-40,-26},{-5,-26}}, color={255,0,255})); + connect(booInp[9, :].y, zonStaDup.uWin) annotation (Line(points={{-78,-30},{-40, + -30},{-40,-38},{-5,-38}}, color={255,0,255})); + +annotation ( + experiment(StopTime=1, Tolerance=1e-6), + __Dymola_Commands(file="modelica://Buildings/Resources/Scripts/Dymola/Controls/OBC/ASHRAE/G36_PR1/Generic/SetPoints/Validation/ZoneStatusDuplicator.mos" + "Simulate and plot"), + Documentation(info=" +

+This example validates + +Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.ZoneStatusDuplicator +for duplicating zone status. +

+", revisions=" + +"), + Icon(coordinateSystem(extent={{-100,-100},{100,100}}), + graphics={ + Ellipse(lineColor = {75,138,73}, + fillColor={255,255,255}, + fillPattern = FillPattern.Solid, + extent = {{-100,-100},{100,100}}), + Polygon(lineColor = {0,0,255}, + fillColor = {75,138,73}, + pattern = LinePattern.None, + fillPattern = FillPattern.Solid, + points = {{-36,60},{64,0},{-36,-60},{-36,60}})})); +end ZoneStatusDuplicator; diff --git a/Buildings/Controls/OBC/ASHRAE/G36_PR1/Generic/SetPoints/Validation/package.order b/Buildings/Controls/OBC/ASHRAE/G36_PR1/Generic/SetPoints/Validation/package.order index d1f99568247..b7fba780f7d 100644 --- a/Buildings/Controls/OBC/ASHRAE/G36_PR1/Generic/SetPoints/Validation/package.order +++ b/Buildings/Controls/OBC/ASHRAE/G36_PR1/Generic/SetPoints/Validation/package.order @@ -2,3 +2,4 @@ GroupStatus OperationMode TrimAndRespond ZoneStatus +ZoneStatusDuplicator diff --git a/Buildings/Controls/OBC/ASHRAE/G36_PR1/Generic/SetPoints/ZoneStatusDuplicator.mo b/Buildings/Controls/OBC/ASHRAE/G36_PR1/Generic/SetPoints/ZoneStatusDuplicator.mo new file mode 100644 index 00000000000..0b4ad7c88bc --- /dev/null +++ b/Buildings/Controls/OBC/ASHRAE/G36_PR1/Generic/SetPoints/ZoneStatusDuplicator.mo @@ -0,0 +1,401 @@ +within Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints; +block ZoneStatusDuplicator "Duplicate zone status output" + + parameter Integer nZon(final min=1)=1 "Number of zones in input"; + parameter Integer nGro(final min=1)=1 "Number of groups in output"; + + Buildings.Controls.OBC.CDL.Interfaces.BooleanInput zonOcc[nZon] + "True when the zone is set to be occupied due to the override" + annotation (Placement(transformation(extent={{-80,60},{-40,100}}), + iconTransformation(extent={{-80,190},{-40,230}}))); + Buildings.Controls.OBC.CDL.Interfaces.BooleanInput uOcc[nZon] + "True when the zone is occupied according to the occupancy schedule" + annotation (Placement(transformation(extent={{-80,20},{-40,60}}), + iconTransformation(extent={{-80,170},{-40,210}}))); + Buildings.Controls.OBC.CDL.Interfaces.RealInput tNexOcc[nZon]( + final unit=fill("s", nZon), + final quantity=fill("Time", nZon)) + "Time to next occupied period" + annotation (Placement(transformation(extent={{-80,-20},{-40,20}}), + iconTransformation(extent={{-80,150},{-40,190}}))); + Buildings.Controls.OBC.CDL.Interfaces.RealInput uCooTim[nZon]( + final unit=fill("s", nZon), + final quantity=fill("Time", nZon)) + "Cool down time" + annotation (Placement(transformation(extent={{-80,-60},{-40,-20}}), + iconTransformation(extent={{-80,110},{-40,150}}))); + Buildings.Controls.OBC.CDL.Interfaces.RealInput uWarTim[nZon]( + final unit=fill("s", nZon), + final quantity=fill("Time", nZon)) + "Warm-up time" + annotation (Placement(transformation(extent={{-80,-100},{-40,-60}}), + iconTransformation(extent={{-80,90},{-40,130}}))); + Buildings.Controls.OBC.CDL.Interfaces.BooleanInput uOccHeaHig[nZon] + "True when the zone temperature is lower than the occupied heating setpoint" + annotation (Placement(transformation(extent={{-80,-140},{-40,-100}}), + iconTransformation(extent={{-80,50},{-40,90}}))); + Buildings.Controls.OBC.CDL.Interfaces.BooleanInput uHigOccCoo[nZon] + "True when the zone temperature is higher than the occupied cooling setpoint" + annotation (Placement(transformation(extent={{-80,-180},{-40,-140}}), + iconTransformation(extent={{-80,30},{-40,70}}))); + Buildings.Controls.OBC.CDL.Interfaces.BooleanInput uUnoHeaHig[nZon] + "True when the zone temperature is lower than the unoccupied heating setpoint" + annotation (Placement(transformation(extent={{-80,-220},{-40,-180}}), + iconTransformation(extent={{-80,-10},{-40,30}}))); + Buildings.Controls.OBC.CDL.Interfaces.RealInput THeaSetOff[nZon]( + final unit=fill("K", nZon), + displayUnit=fill("degC", nZon), + final quantity=fill("ThermodynamicTemperature", nZon)) + "Zone unoccupied heating setpoint" + annotation (Placement(transformation(extent={{-80,-260},{-40,-220}}), + iconTransformation(extent={{-80,-30},{-40,10}}))); + Buildings.Controls.OBC.CDL.Interfaces.BooleanInput uEndSetBac[nZon] + "True when the zone could end the setback mode" + annotation (Placement(transformation(extent={{-80,-300},{-40,-260}}), + iconTransformation(extent={{-80,-50},{-40,-10}}))); + Buildings.Controls.OBC.CDL.Interfaces.BooleanInput uHigUnoCoo[nZon] + "True when the zone temperature is higher than its unoccupied cooling setpoint" + annotation (Placement(transformation(extent={{-80,-330},{-40,-290}}), + iconTransformation(extent={{-80,-90},{-40,-50}}))); + Buildings.Controls.OBC.CDL.Interfaces.RealInput TCooSetOff[nZon]( + final unit=fill("K", nZon), + displayUnit=fill("degC", nZon), + final quantity=fill("ThermodynamicTemperature", nZon)) + "Zone unoccupied cooling setpoint" + annotation (Placement(transformation(extent={{-80,-390},{-40,-350}}), + iconTransformation(extent={{-80,-110},{-40,-70}}))); + Buildings.Controls.OBC.CDL.Interfaces.BooleanInput uEndSetUp[nZon] + "True when the zone could end the setup mode" + annotation (Placement(transformation(extent={{-80,-420},{-40,-380}}), + iconTransformation(extent={{-80,-130},{-40,-90}}))); + Buildings.Controls.OBC.CDL.Interfaces.RealInput TZon[nZon]( + final unit=fill("K", nZon), + displayUnit=fill("degC", nZon), + final quantity=fill("ThermodynamicTemperature", nZon)) "Zone temperature" + annotation (Placement(transformation(extent={{-80,-460},{-40,-420}}), + iconTransformation(extent={{-80,-170},{-40,-130}}))); + Buildings.Controls.OBC.CDL.Interfaces.BooleanInput uWin[nZon] + "True when the window is open, false when the window is close or the zone does not have window status sensor" + annotation (Placement(transformation(extent={{-80,-540},{-40,-500}}), + iconTransformation(extent={{-80,-190},{-40,-150}}))); + + Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput yzonOcc[nGro, nZon] + "True when the zone is set to be occupied due to the override" + annotation (Placement(transformation(extent={{40,60},{80,100}}), + iconTransformation(extent={{40,190},{80,230}}))); + Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput yOcc[nGro,nZon] + "True when the zone is occupied according to the occupancy schedule" + annotation (Placement(transformation(extent={{40,20},{80,60}}), + iconTransformation(extent={{40,170},{80,210}}))); + Buildings.Controls.OBC.CDL.Interfaces.RealOutput ytNexOcc[nGro, nZon]( + final unit=fill("s", nGro, nZon), + final quantity=fill("Time", nGro, nZon)) "Time to next occupied period" + annotation (Placement(transformation(extent={{40,-20},{80,20}}), + iconTransformation(extent={{40,150},{80,190}}))); + Buildings.Controls.OBC.CDL.Interfaces.RealOutput yCooTim[nGro,nZon]( + final unit=fill("s", nGro, nZon), + final quantity=fill("Time", nGro, nZon)) "Cool down time" + annotation (Placement(transformation(extent={{40,-60},{80,-20}}), + iconTransformation(extent={{40,110},{80,150}}))); + Buildings.Controls.OBC.CDL.Interfaces.RealOutput yWarTim[nGro,nZon]( + final unit=fill("s", nGro, nZon), + final quantity=fill("Time", nGro, nZon)) "Warm-up time" + annotation (Placement(transformation(extent={{40,-100},{80,-60}}), + iconTransformation(extent={{40,90},{80,130}}))); + Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput yOccHeaHig[nGro,nZon] + "True when the zone temperature is lower than the occupied heating setpoint" + annotation (Placement(transformation(extent={{40,-140},{80,-100}}), + iconTransformation(extent={{40,50},{80,90}}))); + Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput yHigOccCoo[nGro,nZon] + "True when the zone temperature is higher than the occupied cooling setpoint" + annotation (Placement(transformation(extent={{40,-180},{80,-140}}), + iconTransformation(extent={{40,30},{80,70}}))); + Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput yUnoHeaHig[nGro,nZon] + "True when the zone temperature is lower than the unoccupied heating setpoint" + annotation (Placement(transformation(extent={{40,-220},{80,-180}}), + iconTransformation(extent={{40,-10},{80,30}}))); + Buildings.Controls.OBC.CDL.Interfaces.RealOutput yTHeaSetOff[nGro, nZon]( + final unit=fill("K", nGro, nZon), + displayUnit=fill("degC", nGro, nZon), + final quantity=fill("ThermodynamicTemperature", nGro, nZon)) + "Zone unoccupied heating setpoint" + annotation (Placement(transformation(extent={{40,-260},{80,-220}}), + iconTransformation(extent={{40,-30},{80,10}}))); + Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput yEndSetBac[nGro,nZon] + "True when the zone could end the setback mode" + annotation (Placement(transformation(extent={{40,-300},{80,-260}}), + iconTransformation(extent={{40,-50},{80,-10}}))); + Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput yHigUnoCoo[nGro,nZon] + "True when the zone temperature is higher than its unoccupied cooling setpoint" + annotation (Placement(transformation(extent={{40,-330},{80,-290}}), + iconTransformation(extent={{40,-90},{80,-50}}))); + Buildings.Controls.OBC.CDL.Interfaces.RealOutput yTCooSetOff[nGro, nZon]( + final unit=fill("K", nGro, nZon), + displayUnit=fill("degC", nGro, nZon), + final quantity=fill("ThermodynamicTemperature", nGro, nZon)) + "Zone unoccupied cooling setpoint" + annotation (Placement(transformation(extent={{40,-390},{80,-350}}), + iconTransformation(extent={{40,-110},{80,-70}}))); + Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput yEndSetUp[nGro,nZon] + "True when the zone could end the setup mode" + annotation (Placement(transformation(extent={{40,-420},{80,-380}}), + iconTransformation(extent={{40,-130},{80,-90}}))); + Buildings.Controls.OBC.CDL.Interfaces.RealOutput yTZon[nGro, nZon]( + final unit=fill("K", nGro, nZon), + displayUnit=fill("degC", nGro, nZon), + final quantity=fill("ThermodynamicTemperature", nGro, nZon)) "Zone temperature" + annotation (Placement(transformation(extent={{40,-460},{80,-420}}), + iconTransformation(extent={{40,-170},{80,-130}}))); + Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput yWin[nGro,nZon] + "True when the window is open, false when the window is close or the zone does not have window status sensor" + annotation (Placement(transformation(extent={{40,-540},{80,-500}}), + iconTransformation(extent={{40,-190},{80,-150}}))); + +protected + Buildings.Controls.OBC.CDL.Routing.BooleanVectorReplicator zonOccDup( + final nin=nZon, + final nout=nGro) + "Duplicator" + annotation (Placement(transformation(extent={{-10,70},{10,90}}))); + Buildings.Controls.OBC.CDL.Routing.BooleanVectorReplicator uOccDup( + final nin=nZon, + final nout=nGro) + "Duplicator" + annotation (Placement(transformation(extent={{-10,30},{10,50}}))); + Buildings.Controls.OBC.CDL.Routing.RealVectorReplicator tNexOccDup( + final nin=nZon, + final nout=nGro) + "Duplicator" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + Buildings.Controls.OBC.CDL.Routing.RealVectorReplicator uCooTimDup( + final nin=nZon, + final nout=nGro) + "Duplicator" + annotation (Placement(transformation(extent={{-10,-50},{10,-30}}))); + Buildings.Controls.OBC.CDL.Routing.RealVectorReplicator uWarTimDup( + final nin=nZon, + final nout=nGro) + "Duplicator" + annotation (Placement(transformation(extent={{-10,-90},{10,-70}}))); + Buildings.Controls.OBC.CDL.Routing.BooleanVectorReplicator uOccHeaHigDup( + final nin=nZon, + final nout=nGro) + "Duplicator" + annotation (Placement(transformation(extent={{-10,-130},{10,-110}}))); + Buildings.Controls.OBC.CDL.Routing.BooleanVectorReplicator uHigOccCooDup( + final nin=nZon, + final nout=nGro) + "Duplicator" + annotation (Placement(transformation(extent={{-10,-170},{10,-150}}))); + Buildings.Controls.OBC.CDL.Routing.BooleanVectorReplicator uUnoHeaHigDup( + final nin=nZon, + final nout=nGro) + "Duplicator" + annotation (Placement(transformation(extent={{-10,-210},{10,-190}}))); + Buildings.Controls.OBC.CDL.Routing.RealVectorReplicator THeaSetOffDup( + final nin=nZon, + final nout=nGro) + "Duplicator" + annotation (Placement(transformation(extent={{-10,-250},{10,-230}}))); + Buildings.Controls.OBC.CDL.Routing.BooleanVectorReplicator uEndSetBacDup( + final nin=nZon, + final nout=nGro) + "Duplicator" + annotation (Placement(transformation(extent={{-10,-290},{10,-270}}))); + Buildings.Controls.OBC.CDL.Routing.BooleanVectorReplicator uHigUnoCooDup( + final nin=nZon, + final nout=nGro) + "Duplicator" + annotation (Placement(transformation(extent={{-10,-320},{10,-300}}))); + Buildings.Controls.OBC.CDL.Routing.RealVectorReplicator TCooSetOffDup( + final nin=nZon, + final nout=nGro) + "Duplicator" + annotation (Placement(transformation(extent={{-10,-380},{10,-360}}))); + Buildings.Controls.OBC.CDL.Routing.BooleanVectorReplicator uEndSetUpDup( + final nin=nZon, + final nout=nGro) + "Duplicator" + annotation (Placement(transformation(extent={{-10,-410},{10,-390}}))); + Buildings.Controls.OBC.CDL.Routing.RealVectorReplicator TZonDup( + final nin=nZon, + final nout=nGro) "Duplicator" + annotation (Placement(transformation(extent={{-10,-450},{10,-430}}))); + Buildings.Controls.OBC.CDL.Routing.BooleanVectorReplicator uWinDup( + final nin=nZon, + final nout=nGro) + "Duplicator" + annotation (Placement(transformation(extent={{-10,-530},{10,-510}}))); + +equation + connect(zonOcc, zonOccDup.u) + annotation (Line(points={{-60,80},{-12,80}}, color={255,0,255})); + connect(uOcc,uOccDup. u) + annotation (Line(points={{-60,40},{-12,40}}, color={255,0,255})); + connect(tNexOcc, tNexOccDup.u) + annotation (Line(points={{-60,0},{-12,0}}, color={0,0,127})); + connect(uCooTim, uCooTimDup.u) + annotation (Line(points={{-60,-40},{-12,-40}}, color={0,0,127})); + connect(uWarTim, uWarTimDup.u) + annotation (Line(points={{-60,-80},{-12,-80}}, color={0,0,127})); + connect(uOccHeaHig, uOccHeaHigDup.u) + annotation (Line(points={{-60,-120},{-12,-120}}, color={255,0,255})); + connect(uHigOccCoo, uHigOccCooDup.u) + annotation (Line(points={{-60,-160},{-12,-160}}, color={255,0,255})); + connect(uUnoHeaHig, uUnoHeaHigDup.u) + annotation (Line(points={{-60,-200},{-12,-200}}, color={255,0,255})); + connect(THeaSetOff, THeaSetOffDup.u) + annotation (Line(points={{-60,-240},{-12,-240}}, color={0,0,127})); + connect(uEndSetBac, uEndSetBacDup.u) + annotation (Line(points={{-60,-280},{-12,-280}}, color={255,0,255})); + connect(uHigUnoCoo, uHigUnoCooDup.u) + annotation (Line(points={{-60,-310},{-12,-310}}, color={255,0,255})); + connect(TCooSetOff, TCooSetOffDup.u) + annotation (Line(points={{-60,-370},{-12,-370}}, color={0,0,127})); + connect(uEndSetUp, uEndSetUpDup.u) + annotation (Line(points={{-60,-400},{-12,-400}}, color={255,0,255})); + connect(TZon, TZonDup.u) + annotation (Line(points={{-60,-440},{-12,-440}}, color={0,0,127})); + connect(uWin, uWinDup.u) + annotation (Line(points={{-60,-520},{-12,-520}}, color={255,0,255})); + connect(zonOccDup.y, yzonOcc) + annotation (Line(points={{12,80},{60,80}}, color={255,0,255})); + connect(uOccDup.y, yOcc) + annotation (Line(points={{12,40},{60,40}}, color={255,0,255})); + connect(ytNexOcc, tNexOccDup.y) + annotation (Line(points={{60,0},{12,0}}, color={0,0,127})); + connect(yCooTim, uCooTimDup.y) + annotation (Line(points={{60,-40},{12,-40}}, color={0,0,127})); + connect(uWarTimDup.y, yWarTim) + annotation (Line(points={{12,-80},{60,-80}}, color={0,0,127})); + connect(uOccHeaHigDup.y, yOccHeaHig) + annotation (Line(points={{12,-120},{60,-120}}, color={255,0,255})); + connect(uHigOccCooDup.y, yHigOccCoo) + annotation (Line(points={{12,-160},{60,-160}}, color={255,0,255})); + connect(uUnoHeaHigDup.y, yUnoHeaHig) + annotation (Line(points={{12,-200},{60,-200}}, color={255,0,255})); + connect(THeaSetOffDup.y, yTHeaSetOff) + annotation (Line(points={{12,-240},{60,-240}}, color={0,0,127})); + connect(uEndSetBacDup.y, yEndSetBac) + annotation (Line(points={{12,-280},{60,-280}}, color={255,0,255})); + connect(uHigUnoCooDup.y, yHigUnoCoo) + annotation (Line(points={{12,-310},{60,-310}}, color={255,0,255})); + connect(TCooSetOffDup.y, yTCooSetOff) + annotation (Line(points={{12,-370},{60,-370}}, color={0,0,127})); + connect(uEndSetUpDup.y, yEndSetUp) + annotation (Line(points={{12,-400},{60,-400}}, color={255,0,255})); + connect(TZonDup.y, yTZon) + annotation (Line(points={{12,-440},{60,-440}}, color={0,0,127})); + connect(uWinDup.y, yWin) + annotation (Line(points={{12,-520},{60,-520}}, color={255,0,255})); + + annotation (defaultComponentName="zonStaDup", + Icon(coordinateSystem(preserveAspectRatio=false, extent={{-40,-180}, + {40,220}}), graphics={ + Rectangle( + extent={{-40,220},{40,-180}}, + lineColor={28,108,200}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{-36,138},{6,124}}, + textColor={0,0,127}, + pattern=LinePattern.Dash, + textString="uCooTim"), + Text( + extent={{-36,118},{4,106}}, + textColor={0,0,127}, + pattern=LinePattern.Dash, + textString="uWarTim"), + Text( + extent={{-34,80},{16,64}}, + textColor={255,0,255}, + pattern=LinePattern.Dash, + textString="uOccHeaHig"), + Text( + extent={{-34,60},{16,46}}, + textColor={255,0,255}, + pattern=LinePattern.Dash, + textString="uHigOccCoo"), + Text( + extent={{-34,-60},{18,-76}}, + textColor={255,0,255}, + pattern=LinePattern.Dash, + textString="uHigUnoCoo"), + Text( + extent={{-34,-20},{16,-34}}, + textColor={255,0,255}, + pattern=LinePattern.Dash, + textString="uEndSetBac"), + Text( + extent={{-34,-102},{14,-116}}, + textColor={255,0,255}, + pattern=LinePattern.Dash, + textString="uEndSetUp"), + Text( + extent={{-34,18},{16,4}}, + textColor={255,0,255}, + pattern=LinePattern.Dash, + textString="uUnoHeaHig"), + Text( + extent={{-34,-142},{-12,-154}}, + textColor={0,0,127}, + pattern=LinePattern.Dash, + textString="TZon"), + Text( + extent={{-36,-82},{14,-98}}, + textColor={0,0,127}, + pattern=LinePattern.Dash, + textString="TCooSetOff"), + Text( + extent={{-36,-2},{12,-16}}, + textColor={0,0,127}, + pattern=LinePattern.Dash, + textString="THeaSetOff"), + Text( + extent={{-36,178},{6,164}}, + textColor={0,0,127}, + pattern=LinePattern.Dash, + textString="tNexOcc"), + Text( + extent={{-36,220},{0,208}}, + textColor={255,0,255}, + pattern=LinePattern.Dash, + textString="ZonOcc"), + Text( + extent={{-36,200},{-10,186}}, + textColor={255,0,255}, + pattern=LinePattern.Dash, + textString="uOcc"), + Text( + extent={{-38,-162},{-8,-174}}, + textColor={255,0,255}, + pattern=LinePattern.Dash, + textString="uWin"), + Text( + extent={{-40,260},{40,220}}, + textColor={0,0,255}, + textString="%name")}), + Diagram(coordinateSystem(preserveAspectRatio=false, + extent={{-40,-540},{40,100}})), + Documentation(revisions=" + +", info=" +

+This block duplicates the signals of nZon by converting the +input vector-valued signals of dimension nZon to a matrix-valued +output of dimension [nGro, nZon]. +

+

+This block prevent the use of for loops in the connectors between +zones and zone groups by connecting all the zones to each + +Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.GroupStatus. +

+")); +end ZoneStatusDuplicator; diff --git a/Buildings/Controls/OBC/ASHRAE/G36_PR1/Generic/SetPoints/package.order b/Buildings/Controls/OBC/ASHRAE/G36_PR1/Generic/SetPoints/package.order index b298cb2e937..74387476cd5 100644 --- a/Buildings/Controls/OBC/ASHRAE/G36_PR1/Generic/SetPoints/package.order +++ b/Buildings/Controls/OBC/ASHRAE/G36_PR1/Generic/SetPoints/package.order @@ -2,4 +2,5 @@ GroupStatus OperationMode TrimAndRespond ZoneStatus +ZoneStatusDuplicator Validation diff --git a/Buildings/Controls/OBC/CDL/Routing/BooleanVectorFilter.mo b/Buildings/Controls/OBC/CDL/Routing/BooleanVectorFilter.mo new file mode 100644 index 00000000000..eafd0cdf34f --- /dev/null +++ b/Buildings/Controls/OBC/CDL/Routing/BooleanVectorFilter.mo @@ -0,0 +1,69 @@ +within Buildings.Controls.OBC.CDL.Routing; +block BooleanVectorFilter + "Filter a boolean vector based on a boolean mask" + parameter Integer nin "Size of input vector"; + parameter Integer nout "Size of output vector"; + parameter Boolean msk[nin]=fill(true,nin) "Array mask"; + + Interfaces.BooleanInput u[nin] + "Connector of Boolean input signal" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + Interfaces.BooleanOutput y[nout] + "Connector of Boolean output signals" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + parameter Integer mskId[nout] = Modelica.Math.BooleanVectors.index(msk) + "Indices of included element in input vector"; + +initial equation + assert(nout==sum({if msk[i] then 1 else 0 for i in 1:nin}), + "In " + getInstanceName() + ": The size of the output vector does not + match the size of included elements in the mask."); +equation + y = u[mskId]; + annotation ( + defaultComponentName="booVecFil", + Icon(coordinateSystem(preserveAspectRatio=false), graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,0,255}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line(points={{-102,0},{-60,0}}, color={255,0,255}), + Line(points={{70,0},{100,0}}, color={255,0,255}), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Polygon( + points={{-60,80},{-60,-80},{20,-10},{60,-10},{80,10},{20,10},{-60,80}}, + lineColor={0,0,0}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid, + lineThickness=0.5)}), Diagram( + coordinateSystem(preserveAspectRatio=false)), + Documentation(revisions=" + +", info=" +

+This block filters a Boolean vector of size nin to +a vector of size nout given a Boolean mask +msk. +

+

+If an entry in msk is true, then the value +of this input will be sent to the output y, otherwise it +will be discarded. +

+

+The parameter msk must have exactly nout entries +set to true, otherwise an error message is issued. +

+")); +end BooleanVectorFilter; diff --git a/Buildings/Controls/OBC/CDL/Routing/BooleanVectorReplicator.mo b/Buildings/Controls/OBC/CDL/Routing/BooleanVectorReplicator.mo new file mode 100644 index 00000000000..6c49f3e2257 --- /dev/null +++ b/Buildings/Controls/OBC/CDL/Routing/BooleanVectorReplicator.mo @@ -0,0 +1,65 @@ +within Buildings.Controls.OBC.CDL.Routing; +block BooleanVectorReplicator "Boolean vector signal replicator" + parameter Integer nin=1 "Size of input vector"; + parameter Integer nout=1 "Number of row in output"; + Interfaces.BooleanInput u[nin] + "Connector of Boolean vector input signal" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + Interfaces.BooleanOutput y[nout, nin] + "Connector of Boolean matrix output signals" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=fill(u, nout); + annotation ( + defaultComponentName="booVecRep", + Documentation( + info=" +

+This block replicates a Boolean vector input signal of size nin, +to a matrix with nout rows and nin columns, +where each row is duplicating the input vector. +

+", + revisions=" + +"), + Icon(graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,0,255}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-100,0},{-6,0}}, + color={255,0,255}), + Line( + points={{100,0},{10,0}}, + color={255,0,255}), + Line( + points={{0,0},{100,10}}, + color={255,0,255}), + Line( + points={{0,0},{100,-10}}, + color={255,0,255}), + Ellipse( + extent={{-14,16},{16,-14}}, + lineColor={0,0,0}, + fillColor={255,0,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Line( + points={{-100,-10},{0,0}}, + color={255,0,255}), + Line( + points={{-100,10},{0,0}}, + color={255,0,255})})); +end BooleanVectorReplicator; diff --git a/Buildings/Controls/OBC/CDL/Routing/IntegerVectorFilter.mo b/Buildings/Controls/OBC/CDL/Routing/IntegerVectorFilter.mo new file mode 100644 index 00000000000..2dc5450169c --- /dev/null +++ b/Buildings/Controls/OBC/CDL/Routing/IntegerVectorFilter.mo @@ -0,0 +1,69 @@ +within Buildings.Controls.OBC.CDL.Routing; +block IntegerVectorFilter + "Filter an integer vector based on a boolean mask" + parameter Integer nin "Size of input vector"; + parameter Integer nout "Size of output vector"; + parameter Boolean msk[nin]=fill(true,nin) "Array mask"; + + Interfaces.IntegerInput u[nin] + "Connector of Integer input signal" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + Interfaces.IntegerOutput y[nout] + "Connector of Integer output signals" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + parameter Integer mskId[nout] = Modelica.Math.BooleanVectors.index(msk) + "Indices of included element in input vector"; + +initial equation + assert(nout==sum({if msk[i] then 1 else 0 for i in 1:nin}), + "The size of the output vector does not match the + size of included elements in the mask."); +equation + y = u[mskId]; + annotation ( + defaultComponentName="intVecFil", + Icon(coordinateSystem(preserveAspectRatio=false), graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Polygon( + points={{-60,80},{-60,-80},{20,-10},{60,-10},{80,10},{20,10},{-60,80}}, + lineColor={0,0,0}, + fillColor={255,127,0}, + fillPattern=FillPattern.Solid, + lineThickness=0.5), + Line(points={{-100,0},{-60,0}}, color={255,127,0}), + Line(points={{70,0},{100,0}}, color={255,127,0})}), Diagram( + coordinateSystem(preserveAspectRatio=false)), + Documentation(revisions=" + +", info=" +

+This block filters a Integer vector of size nin to +a vector of size nout given a Boolean mask +msk. +

+

+If an entry in msk is true, then the value +of this input will be sent to the output y, otherwise it +will be discarded. +

+

+The parameter msk must have exactly nout entries +set to true, otherwise an error message is issued. +

+")); +end IntegerVectorFilter; diff --git a/Buildings/Controls/OBC/CDL/Routing/IntegerVectorReplicator.mo b/Buildings/Controls/OBC/CDL/Routing/IntegerVectorReplicator.mo new file mode 100644 index 00000000000..42b73409658 --- /dev/null +++ b/Buildings/Controls/OBC/CDL/Routing/IntegerVectorReplicator.mo @@ -0,0 +1,62 @@ +within Buildings.Controls.OBC.CDL.Routing; +block IntegerVectorReplicator "Integer vector signal replicator" + parameter Integer nin=1 "Size of input vector"; + parameter Integer nout=1 "Number of row in output"; + Interfaces.IntegerInput u[nin] + "Connector of Integer vector input signal" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + Interfaces.IntegerOutput y[nout, nin] + "Connector of Integer matrix output signals" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=fill(u, nout); + annotation ( + defaultComponentName="intVecRep", + Icon( + graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={255,127,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-100,0},{-6,0}}, + color={255,127,0}), + Line( + points={{100,0},{10,0}}, + color={255,127,0}), + Line( + points={{0,0},{100,10}}, + color={255,127,0}), + Line( + points={{0,0},{100,-10}}, + color={255,127,0}), + Ellipse( + extent={{-14,16},{16,-14}}, + lineColor={0,0,0}, + fillColor={255,127,0}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Line(points={{-100,-10},{0,0}}, color={255,127,0}), + Line(points={{-100,10},{0,0}}, color={255,127,0})}), + Documentation( + info=" +

+This block replicates an Integer vector input signal of size nin, +to a matrix with nout rows and nin columns, +where each row is duplicating the input vector. +

+", + revisions=" + +")); +end IntegerVectorReplicator; diff --git a/Buildings/Controls/OBC/CDL/Routing/RealVectorFilter.mo b/Buildings/Controls/OBC/CDL/Routing/RealVectorFilter.mo new file mode 100644 index 00000000000..80f5c4e61c5 --- /dev/null +++ b/Buildings/Controls/OBC/CDL/Routing/RealVectorFilter.mo @@ -0,0 +1,70 @@ +within Buildings.Controls.OBC.CDL.Routing; +block RealVectorFilter + "Filter a real vector of based on a boolean mask" + parameter Integer nin "Size of input vector"; + parameter Integer nout "Size of output vector"; + parameter Boolean msk[nin]=fill(true,nin) "Array mask"; + + Interfaces.RealInput u[nin] + "Connector of Real input signal" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + Interfaces.RealOutput y[nout] + "Connector of Real output signals" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +protected + parameter Integer mskId[nout] = Modelica.Math.BooleanVectors.index(msk) + "Indices of included element in input vector"; + +initial equation + assert(nout==sum({if msk[i] then 1 else 0 for i in 1:nin}), + "The size of the output vector does not match the + size of included elements in the mask."); +equation + y = u[mskId]; + annotation ( + defaultComponentName="reaVecFil", + Icon(coordinateSystem(preserveAspectRatio=false), graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Polygon( + points={{-60,80},{-60,-80},{20,-10},{60,-10},{80,10},{20,10},{-60,80}}, + lineColor={0,0,0}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid, + lineThickness=0.5), + Line(points={{-100,0},{-60,0}}, color={0,0,127}), + Line(points={{70,0},{100,0}}, color={0,0,127})}), + Diagram( + coordinateSystem(preserveAspectRatio=false)), + Documentation(revisions=" + +", info=" +

+This block filters a Real vector of size nin to +a vector of size nout given a boolean mask +msk. +

+

+If an entry in msk is true, then the value +of this input will be sent to the output y, otherwise it +will be discarded. +

+

+The parameter msk must have exactly nout entries +set to true, otherwise an error message is issued. +

+")); +end RealVectorFilter; diff --git a/Buildings/Controls/OBC/CDL/Routing/RealVectorReplicator.mo b/Buildings/Controls/OBC/CDL/Routing/RealVectorReplicator.mo new file mode 100644 index 00000000000..de3434fcf62 --- /dev/null +++ b/Buildings/Controls/OBC/CDL/Routing/RealVectorReplicator.mo @@ -0,0 +1,61 @@ +within Buildings.Controls.OBC.CDL.Routing; +block RealVectorReplicator "Real vector signal replicator" + parameter Integer nin=1 "Size of input vector"; + parameter Integer nout=1 "Number of row in output"; + Interfaces.RealInput u[nin] + "Connector of Real vector input signal" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}))); + Interfaces.RealOutput y[nout, nin] + "Connector of Real matrix output signals" + annotation (Placement(transformation(extent={{100,-20},{140,20}}))); + +equation + y=fill(u, nout); + annotation ( + defaultComponentName="reaVecRep", + Documentation( + info=" +

+This block replicates an Real vector input signal of size nin, +to a matrix with nout rows and nin columns, +where each row is duplicating the input vector. +

+", + revisions=" + +"), + Icon(graphics={ + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line( + points={{-100,0},{-6,0}}, + color={0,0,127}), + Line( + points={{100,0},{10,0}}, + color={0,0,127}), + Line( + points={{0,0},{100,10}}, + color={0,0,127}), + Line( + points={{0,0},{100,-10}}, + color={0,0,127}), + Ellipse( + extent={{-14,16},{16,-14}}, + lineColor={0,0,0}, + fillColor={0,0,127}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Line(points={{-100,-10},{0,0}}, color={0,0,127}), + Line(points={{-100,10},{0,0}}, color={0,0,127})})); +end RealVectorReplicator; diff --git a/Buildings/Controls/OBC/CDL/Routing/Validation/BooleanVectorFilter.mo b/Buildings/Controls/OBC/CDL/Routing/Validation/BooleanVectorFilter.mo new file mode 100644 index 00000000000..fd2940cd6a4 --- /dev/null +++ b/Buildings/Controls/OBC/CDL/Routing/Validation/BooleanVectorFilter.mo @@ -0,0 +1,49 @@ +within Buildings.Controls.OBC.CDL.Routing.Validation; +model BooleanVectorFilter + "Validation model for the BooleanVectorFilter block" + Buildings.Controls.OBC.CDL.Routing.BooleanVectorFilter + booFil(nin=3, nout=2, msk={true,false,true}) + "Block that filter the input vector" + annotation (Placement(transformation(extent={{20,-10},{40,10}}))); + + Logical.Sources.Constant booInp[3](k={true,true,false}) "Boolean inputs" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); +equation + connect(booInp.y, booFil.u) + annotation (Line(points={{-18,0},{18,0}}, color={255,0,255})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanVectorFilter.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +Buildings.Controls.OBC.CDL.Routing.BooleanVectorFilter. +

+", + revisions=" + +"), + Icon( + graphics={ + Ellipse( + lineColor={75,138,73}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-100,-100},{100,100}}), + Polygon( + lineColor={0,0,255}, + fillColor={75,138,73}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-36,60},{64,0},{-36,-60},{-36,60}})})); +end BooleanVectorFilter; diff --git a/Buildings/Controls/OBC/CDL/Routing/Validation/BooleanVectorReplicator.mo b/Buildings/Controls/OBC/CDL/Routing/Validation/BooleanVectorReplicator.mo new file mode 100644 index 00000000000..47e30cf1a38 --- /dev/null +++ b/Buildings/Controls/OBC/CDL/Routing/Validation/BooleanVectorReplicator.mo @@ -0,0 +1,49 @@ +within Buildings.Controls.OBC.CDL.Routing.Validation; +model BooleanVectorReplicator + "Validation model for the BooleanVectorReplicator block" + Buildings.Controls.OBC.CDL.Routing.BooleanVectorReplicator booRep(nin=2, nout=3) + "Block that outputs the vector replicating input value" + annotation (Placement(transformation(extent={{20,-10},{40,10}}))); + Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul[2](period=fill(0.2,2)) + "Block that outputs boolean pulse" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + +equation + connect(booPul.y, booRep.u) + annotation (Line(points={{-18,0},{18,0}}, color={255,0,255})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanVectorReplicator.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +Buildings.Controls.OBC.CDL.Routing.BooleanVectorReplicator. +

+", + revisions=" + +"), + Icon( + graphics={ + Ellipse( + lineColor={75,138,73}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-100,-100},{100,100}}), + Polygon( + lineColor={0,0,255}, + fillColor={75,138,73}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-36,60},{64,0},{-36,-60},{-36,60}})})); +end BooleanVectorReplicator; diff --git a/Buildings/Controls/OBC/CDL/Routing/Validation/IntegerVectorFilter.mo b/Buildings/Controls/OBC/CDL/Routing/Validation/IntegerVectorFilter.mo new file mode 100644 index 00000000000..2e80e04d388 --- /dev/null +++ b/Buildings/Controls/OBC/CDL/Routing/Validation/IntegerVectorFilter.mo @@ -0,0 +1,49 @@ +within Buildings.Controls.OBC.CDL.Routing.Validation; +model IntegerVectorFilter + "Validation model for the IntegerVectorFilter block" + Buildings.Controls.OBC.CDL.Routing.IntegerVectorFilter + intFil(nin=3, nout=2, msk={true,false,true}) + "Block that filter the input vector" + annotation (Placement(transformation(extent={{20,-10},{40,10}}))); + + Integers.Sources.Constant IntInp[3](k={1,2,3}) "Integer inputs" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); +equation + connect(IntInp.y, intFil.u) + annotation (Line(points={{-18,0},{18,0}}, color={255,127,0})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerVectorFilter.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +Buildings.Controls.OBC.CDL.Routing.IntegerVectorFilter. +

+", + revisions=" + +"), + Icon( + graphics={ + Ellipse( + lineColor={75,138,73}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-100,-100},{100,100}}), + Polygon( + lineColor={0,0,255}, + fillColor={75,138,73}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-36,60},{64,0},{-36,-60},{-36,60}})})); +end IntegerVectorFilter; diff --git a/Buildings/Controls/OBC/CDL/Routing/Validation/IntegerVectorReplicator.mo b/Buildings/Controls/OBC/CDL/Routing/Validation/IntegerVectorReplicator.mo new file mode 100644 index 00000000000..1e40363c832 --- /dev/null +++ b/Buildings/Controls/OBC/CDL/Routing/Validation/IntegerVectorReplicator.mo @@ -0,0 +1,57 @@ +within Buildings.Controls.OBC.CDL.Routing.Validation; +model IntegerVectorReplicator + "Validation model for the IntegerVectorReplicator block" + Buildings.Controls.OBC.CDL.Routing.IntegerVectorReplicator + intRep(nin=2, nout=3) + "Block that outputs the vector replicating input value" + annotation (Placement(transformation(extent={{40,-10},{60,10}}))); + Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp ram[2]( + height=fill(5,2), + duration=fill(1,2), + offset=fill(-2,2)) "Block that outputs ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt[2] + "Convert Real input to Integer output" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + +equation + connect(ram.y,reaToInt.u) + annotation (Line(points={{-38,0},{-12,0}},color={0,0,127})); + connect(reaToInt.y,intRep.u) + annotation (Line(points={{12,0},{38,0}},color={255,127,0})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerVectorReplicator.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +Buildings.Controls.OBC.CDL.Routing.IntegerVectorReplicator. +

+", + revisions=" + +"), + Icon( + graphics={ + Ellipse( + lineColor={75,138,73}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-100,-100},{100,100}}), + Polygon( + lineColor={0,0,255}, + fillColor={75,138,73}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-36,60},{64,0},{-36,-60},{-36,60}})})); +end IntegerVectorReplicator; diff --git a/Buildings/Controls/OBC/CDL/Routing/Validation/RealVectorFilter.mo b/Buildings/Controls/OBC/CDL/Routing/Validation/RealVectorFilter.mo new file mode 100644 index 00000000000..e3c25ecbdc9 --- /dev/null +++ b/Buildings/Controls/OBC/CDL/Routing/Validation/RealVectorFilter.mo @@ -0,0 +1,49 @@ +within Buildings.Controls.OBC.CDL.Routing.Validation; +model RealVectorFilter + "Validation model for the RealVectorFilter block" + Buildings.Controls.OBC.CDL.Routing.RealVectorFilter + reaFil(nin=3, nout=2, msk={true,false,true}) + "Block that filter the input vector" + annotation (Placement(transformation(extent={{20,-10},{40,10}}))); + + Continuous.Sources.Constant ReaInp[3](k={1,2,3}) "Real inputs" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); +equation + connect(ReaInp.y, reaFil.u) + annotation (Line(points={{-18,0},{18,0}}, color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealVectorFilter.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +Buildings.Controls.OBC.CDL.Routing.RealVectorFilter. +

+", + revisions=" + +"), + Icon( + graphics={ + Ellipse( + lineColor={75,138,73}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-100,-100},{100,100}}), + Polygon( + lineColor={0,0,255}, + fillColor={75,138,73}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-36,60},{64,0},{-36,-60},{-36,60}})})); +end RealVectorFilter; diff --git a/Buildings/Controls/OBC/CDL/Routing/Validation/RealVectorReplicator.mo b/Buildings/Controls/OBC/CDL/Routing/Validation/RealVectorReplicator.mo new file mode 100644 index 00000000000..b59d0b6a604 --- /dev/null +++ b/Buildings/Controls/OBC/CDL/Routing/Validation/RealVectorReplicator.mo @@ -0,0 +1,52 @@ +within Buildings.Controls.OBC.CDL.Routing.Validation; +model RealVectorReplicator + "Validation model for the RealVectorReplicator block" + Buildings.Controls.OBC.CDL.Routing.RealVectorReplicator + reaRep(nin=2, nout=3) + "Block that outputs the vector replicating input value" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp ram[2]( + height=fill(5,2), + duration=fill(1,2), + offset=fill(-2,2)) "Block that outputs ramp signal" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + +equation + connect(ram.y,reaRep.u) + annotation (Line(points={{-38,0},{-12,0}},color={0,0,127})); + annotation ( + experiment( + StopTime=1.0, + Tolerance=1e-06), + __Dymola_Commands( + file="modelica://Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealVectorReplicator.mos" "Simulate and plot"), + Documentation( + info=" +

+Validation test for the block + +Buildings.Controls.OBC.CDL.Routing.RealVectorReplicator. +

+", + revisions=" + +"), + Icon( + graphics={ + Ellipse( + lineColor={75,138,73}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid, + extent={{-100,-100},{100,100}}), + Polygon( + lineColor={0,0,255}, + fillColor={75,138,73}, + pattern=LinePattern.None, + fillPattern=FillPattern.Solid, + points={{-36,60},{64,0},{-36,-60},{-36,60}})})); +end RealVectorReplicator; diff --git a/Buildings/Controls/OBC/CDL/Routing/Validation/package.order b/Buildings/Controls/OBC/CDL/Routing/Validation/package.order index 2f48f21d8c5..b82fce620a9 100644 --- a/Buildings/Controls/OBC/CDL/Routing/Validation/package.order +++ b/Buildings/Controls/OBC/CDL/Routing/Validation/package.order @@ -1,5 +1,11 @@ BooleanReplicator +BooleanVectorFilter +BooleanVectorReplicator IntegerReplicator +IntegerVectorFilter +IntegerVectorReplicator RealExtractSignal RealExtractor RealReplicator +RealVectorFilter +RealVectorReplicator diff --git a/Buildings/Controls/OBC/CDL/Routing/package.order b/Buildings/Controls/OBC/CDL/Routing/package.order index 7f863025553..ac691ff8bb7 100644 --- a/Buildings/Controls/OBC/CDL/Routing/package.order +++ b/Buildings/Controls/OBC/CDL/Routing/package.order @@ -1,6 +1,12 @@ BooleanReplicator +BooleanVectorFilter +BooleanVectorReplicator IntegerReplicator +IntegerVectorFilter +IntegerVectorReplicator RealExtractSignal RealExtractor RealReplicator +RealVectorFilter +RealVectorReplicator Validation diff --git a/Buildings/Controls/OBC/RadiantSystems/Cooling/HighMassSupplyTemperature_TRoomRelHum.mo b/Buildings/Controls/OBC/RadiantSystems/Cooling/HighMassSupplyTemperature_TRoomRelHum.mo new file mode 100644 index 00000000000..4bef97b67e5 --- /dev/null +++ b/Buildings/Controls/OBC/RadiantSystems/Cooling/HighMassSupplyTemperature_TRoomRelHum.mo @@ -0,0 +1,305 @@ +within Buildings.Controls.OBC.RadiantSystems.Cooling; +block HighMassSupplyTemperature_TRoomRelHum + "Room temperature controller for radiant cooling with constant mass flow and variable supply temperature" + + parameter Real TSupSet_max( + final unit="K", + displayUnit="degC") = 297.15 "Maximum cooling supply water temperature"; + + parameter Real TSupSet_min( + final unit="K", + displayUnit="degC") "Minimum cooling supply water temperature"; + + parameter Controls.OBC.CDL.Types.SimpleController controllerType=Buildings.Controls.OBC.CDL.Types.SimpleController.P + "Type of controller" annotation (Dialog(group="Control gains")); + + parameter Real k( + min=100*Buildings.Controls.OBC.CDL.Constants.eps)=2 + "Gain of controller" + annotation (Dialog(group="Control gains")); + + parameter Real Ti( + final quantity="Time", + final unit="s", + min=100*Buildings.Controls.OBC.CDL.Constants.eps)=3600 + "Time constant of integrator block" + annotation (Dialog(group="Control gains", + enable=controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PI or controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID)); + + parameter Real Td( + final quantity="Time", + final unit="s", + min=100*Buildings.Controls.OBC.CDL.Constants.eps)=0.1 + "Time constant of derivative block" + annotation (Dialog(group="Control gains", + enable=controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PD or controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID)); + + Controls.OBC.CDL.Interfaces.RealInput TRooSet( + final unit="K", + displayUnit="degC") + "Set point for room air temperature" annotation (Placement(transformation( + extent={{-140,40},{-100,80}}), iconTransformation(extent={{-140,40}, + {-100,80}}))); + + Controls.OBC.CDL.Interfaces.RealInput TRoo( + final unit="K", + displayUnit="degC") "Measured room air temperature" + annotation (Placement(transformation( + extent={{-140,-20},{-100,20}}), iconTransformation(extent={{-140,-20}, + {-100,20}}))); + + Controls.OBC.CDL.Interfaces.RealInput phiRoo( + final unit="1") "Measured room air relative humidity" + annotation (Placement(transformation( + extent={{-140,-80},{-100,-40}}), iconTransformation(extent={{-140,-80}, + {-100,-40}}))); + + Controls.OBC.CDL.Interfaces.RealOutput TSupSet( + final unit="K", + displayUnit="degC") "Set point for cooling supply water temperature" + annotation (Placement(transformation(extent={{100,60},{140,100}}), + iconTransformation(extent={{100,40},{140,80}}))); + + Controls.OBC.CDL.Interfaces.RealOutput y( + final unit="1", + final min=0, + final max=1) + "Control signal for heating system from P controller" + annotation (Placement( + transformation(extent={{100,10},{140,50}}), iconTransformation(extent={{ + 100,0},{140,40}}))); + + Controls.OBC.CDL.Interfaces.BooleanOutput on + "Outputs true if the system is demanded on" annotation (Placement( + transformation(extent={{100,-50},{140,-10}}),iconTransformation(extent={{100,-40}, + {140,0}}))); + + Controls.OBC.CDL.Interfaces.RealOutput yPum( + final unit="1", + final min=0, + final max=1) + "Pump speed control signal" + annotation (Placement(transformation(extent={{100,-100},{140,-60}}), + iconTransformation(extent={{100,-80},{140,-40}}))); + + CDL.Psychrometrics.DewPoint_TDryBulPhi dewPoi + "Dew point temperature, used to avoid condensation" + annotation (Placement(transformation(extent={{20,-20},{40,0}}))); + CDL.Continuous.Hysteresis hysCoo( + uLow=0.1, + uHigh=0.2) + "Hysteresis to switch system on and off" + annotation (Placement(transformation(extent={{20,-90},{40,-70}}))); + CDL.Continuous.PID conCoo( + final controllerType=controllerType, + final k=k, + final Ti = Ti, + final Td = Td, + final yMax=1, + final yMin=0, + reverseActing=false) + "Controller for cooling" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + +protected + CDL.Continuous.Sources.Constant TSupMin( + final k( + final unit="K", + displayUnit="degC") = TSupSet_min, + y(final unit="K", displayUnit="degC")) + "Minimum cooling supply water temperature" + annotation (Placement(transformation(extent={{-80,-50},{-60,-30}}))); + CDL.Continuous.Sources.Constant TSupMax( + final k( + final unit="K", + displayUnit="degC") = TSupSet_max, + y(final unit="K", displayUnit="degC")) + "Maximum cooling supply water temperature" + annotation (Placement(transformation(extent={{-80,40},{-60,60}}))); + + CDL.Continuous.Sources.Constant one(final k=1) "Outputs one" + annotation (Placement(transformation(extent={{-80,-20},{-60,0}}))); + CDL.Continuous.Sources.Constant zero(final k=0) "Outputs zero" + annotation (Placement(transformation(extent={{-80,70},{-60,90}}))); + + CDL.Continuous.Line TSupNoDewPoi( + limitBelow=false, + limitAbove=false, + y(final unit="K", displayUnit="degC")) + "Set point for supply water temperature without consideration of dew point" + annotation (Placement(transformation(extent={{20,10},{40,30}}))); + CDL.Continuous.Max TSupCoo + "Cooling water supply temperature" + annotation (Placement(transformation(extent={{60,14},{80,34}}))); + CDL.Conversions.BooleanToReal booToRea( + final realFalse=0, + final realTrue=1) + "Pump control signal as a Real number (either 0 or 1)" + annotation (Placement(transformation(extent={{60,-90},{80,-70}}))); + +equation + connect(hysCoo.y,booToRea.u) + annotation (Line(points={{42,-80},{58,-80}}, color={255,0,255})); + connect(conCoo.y,hysCoo.u) + annotation (Line(points={{-58,20},{0,20},{0,-80},{18,-80}}, + color={0,0,127})); + connect(TSupCoo.u2,dewPoi.TDewPoi) + annotation (Line(points={{58,18},{48,18},{48,-10},{42,-10}}, color={0,0,127})); + connect(TSupCoo.y, TSupSet) annotation (Line(points={{82,24},{86,24},{86,80},{ + 120,80}}, color={0,0,127})); + connect(conCoo.y, y) annotation (Line(points={{-58,20},{0,20},{0,-24},{90,-24}, + {90,30},{120,30}},color={0,0,127})); + connect(conCoo.u_s, TRooSet) annotation (Line(points={{-82,20},{-92,20},{-92,60}, + {-120,60}}, color={0,0,127})); + connect(dewPoi.phi, phiRoo) annotation (Line(points={{18,-16},{-10,-16},{-10,-88}, + {-92,-88},{-92,-60},{-120,-60}}, + color={0,0,127})); + connect(booToRea.y, yPum) + annotation (Line(points={{82,-80},{120,-80}}, color={0,0,127})); + connect(hysCoo.y, on) annotation (Line(points={{42,-80},{50,-80},{50,-30},{120, + -30}}, color={255,0,255})); + connect(TSupNoDewPoi.x1, zero.y) annotation (Line(points={{18,28},{-34,28},{-34, + 80},{-58,80}}, color={0,0,127})); + connect(TSupNoDewPoi.f1, TSupMax.y) annotation (Line(points={{18,24},{-40,24}, + {-40,50},{-58,50}}, color={0,0,127})); + connect(TSupNoDewPoi.x2, one.y) annotation (Line(points={{18,16},{-40,16},{-40, + -10},{-58,-10}}, color={0,0,127})); + connect(TSupNoDewPoi.f2, TSupMin.y) annotation (Line(points={{18,12},{-34,12}, + {-34,-40},{-58,-40}}, color={0,0,127})); + connect(conCoo.y, TSupNoDewPoi.u) + annotation (Line(points={{-58,20},{18,20}}, color={0,0,127})); + connect(TSupNoDewPoi.y, TSupCoo.u1) annotation (Line(points={{42,20},{52,20},{ + 52,30},{58,30}}, color={0,0,127})); + connect(TRoo, conCoo.u_m) annotation (Line(points={{-120,0},{-88,0},{-88,4},{-70, + 4},{-70,8}}, color={0,0,127})); + connect(TRoo, dewPoi.TDryBul) annotation (Line(points={{-120,0},{-88,0},{-88,-80}, + {-16,-80},{-16,-4},{18,-4}}, color={0,0,127})); + annotation ( + defaultComponentName="conCoo", + Diagram(coordinateSystem(extent={{-100,-100},{100,100}})), Icon( + coordinateSystem(extent={{-100,-100},{100,100}}), graphics={ + Rectangle(extent={{-172,66},{-172,66}}, lineColor={28,108,200}), + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Text( + extent={{58,94},{94,44}}, + textColor={0,0,127}, + textString="TSupSet"), + Text( + extent={{76,-44},{96,-90}}, + textColor={0,0,127}, + textString="yPum"), + Text( + extent={{76,2},{98,-16}}, + textColor={0,0,127}, + textString="on"), + Text( + extent={{-92,92},{-48,44}}, + textColor={0,0,127}, + textString="TRooSet"), + Text( + extent={{-94,32},{-74,-14}}, + textColor={0,0,127}, + textString="TRoo"), + Rectangle( + extent={{-30,-16},{48,-40}}, + lineColor={95,95,95}, + lineThickness=1, + fillColor={95,95,95}, + fillPattern=FillPattern.Solid), + Line( + points={{56,-82},{56,-26},{-24,-26},{-24,-20},{56,-20}}, + color={28,108,200}, + thickness=1), + Line(points={{-100,0},{-30,0}}, color={28,108,200}), + Rectangle( + extent={{-30,-16},{48,48}}, + lineColor={28,108,200}, + fillColor={85,170,255}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None), + Line(points={{-100,60},{-64,60},{-64,26},{-30,26}}, color={28,108,200}), + Line(points={{106,60},{74,60},{74,-36},{58,-36}}, color={28,108,200}), + Ellipse( + extent={{46,-50},{68,-72}}, + lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{56,-50},{46,-60},{68,-60},{56,-50}}, + lineColor={28,108,200}, + pattern=LinePattern.None, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Line(points={{100,-60},{84,-60},{68,-60}}, color={28,108,200}), + Ellipse( + extent={{56,-32},{64,-40}}, + lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line(points={{100,-20},{86,-20},{86,-60}}, + color={255,0,255}), + Text( + extent={{80,32},{98,16}}, + textColor={0,0,127}, + textString="y"), + Text( + extent={{230,108},{110,58}}, + textColor={0,0,127}, + textString=DynamicSelect("", + String(TSupSet, + leftJustified=false, + significantDigits=3))), + Text( + extent={{230,64},{110,14}}, + textColor={0,0,127}, + textString=DynamicSelect("", + String(y, + leftJustified=false, + significantDigits=2))), + Line(points={{-30,-8},{-66,-8},{-66,-60},{-100,-60}}, + color={28,108,200}), + Text( + extent={{-92,-24},{-72,-70}}, + textColor={0,0,127}, + textString="phi")}), + Documentation(info=" +

+Controller for a radiant cooling system. +

+

+The controller tracks the room temperature set point TRooSet by +adjusting the supply water temperature set point TSupSet +based on the output signal y of the proportional controller. +The supply water temperature set point TSupSet is +limited by the dew point temperature that is calculated based on the inputs TRoo and phiRoo. +The pump is either off or operates at full speed, in which case yPum = 1. +The pump control is based on a hysteresis that switches the pump on when the output of the +proportional controller y exceeds 0.2, and the pump is commanded off when the output falls +below 0.1. See figure below for the control charts. +

+

+\"Image +

+

+For systems with high thermal mass, this controller should be left configured +as a P-controller, which is the default setting. +PI-controller likely saturate due to the slow system response. +

+", revisions=" + +")); +end HighMassSupplyTemperature_TRoomRelHum; diff --git a/Buildings/Controls/OBC/RadiantSystems/Cooling/Validation/HighMassSupplyTemperature_TRoomRelHum.mo b/Buildings/Controls/OBC/RadiantSystems/Cooling/Validation/HighMassSupplyTemperature_TRoomRelHum.mo new file mode 100644 index 00000000000..249087a1d0b --- /dev/null +++ b/Buildings/Controls/OBC/RadiantSystems/Cooling/Validation/HighMassSupplyTemperature_TRoomRelHum.mo @@ -0,0 +1,66 @@ +within Buildings.Controls.OBC.RadiantSystems.Cooling.Validation; +model HighMassSupplyTemperature_TRoomRelHum + "Validation model for the room temperature controller" + extends Modelica.Icons.Example; + + Controls.OBC.CDL.Continuous.Sources.TimeTable TPhiRooMea( + table=[0.0, 18, 0.5; + 0.5, 28, 0.5; + 1.0, 18, 0.5; + 1.0, 18, 0.9; + 1.5, 28, 0.9; + 2.0, 18, 0.9], + extrapolation=Buildings.Controls.OBC.CDL.Types.Extrapolation.HoldLastPoint, + offset={273.15, 0}, + timeScale=3600) "Measured room temperature and relative humidity" + annotation (Placement(transformation(extent={{-62,-30},{-42,-10}}))); + + Controls.OBC.RadiantSystems.Cooling.HighMassSupplyTemperature_TRoomRelHum conCoo( + TSupSet_min=291.15) "Controller" + annotation (Placement(transformation(extent={{0,-10},{20,10}}))); + + Controls.OBC.CDL.Continuous.Sources.Constant TRooSet(final k( + final unit="K", + displayUnit="degC") = 297.15) "Set point temperature for room" + annotation (Placement(transformation(extent={{-60,10},{-40,30}}))); + + CDL.Psychrometrics.DewPoint_TDryBulPhi dewPoi "Dew point temperature" + annotation (Placement(transformation(extent={{0,-40},{20,-20}}))); +equation + connect(TRooSet.y, conCoo.TRooSet) annotation (Line(points={{-38,20},{-16,20}, + {-16,6},{-2,6}}, color={0,0,127})); + connect(TPhiRooMea.y[1], conCoo.TRoo) annotation (Line(points={{-40,-20},{-14, + -20},{-14,0},{-2,0}}, + color={0,0,127})); + connect(TPhiRooMea.y[2], conCoo.phiRoo) annotation (Line(points={{-40,-20},{-14, + -20},{-14,-6},{-2,-6}},color={0,0,127})); + connect(dewPoi.TDryBul, TPhiRooMea.y[1]) annotation (Line(points={{-2,-24},{-14, + -24},{-14,-20},{-40,-20}}, color={0,0,127})); + connect(dewPoi.phi, TPhiRooMea.y[2]) annotation (Line(points={{-2,-36},{-14,-36}, + {-14,-20},{-40,-20}}, color={0,0,127})); + annotation ( + Documentation( + info=" +

+This example validates the room temperature controller + +Buildings.Controls.OBC.RadiantSystems.Cooling.HighMassSupplyTemperature_TRoomRelHum +for the radiant system. +The validation model applies a ramp signal to the controller input for the measured room air temperature. +The model also calculates the dew point temperature to verify that the supply water temperature is never below the dew point. +

+", + revisions=" + +"), + __Dymola_Commands( + file="modelica://Buildings/Resources/Scripts/Dymola/Controls/OBC/RadiantSystems/Cooling/Validation/HighMassSupplyTemperature_TRoomRelHum.mos" "Simulate and plot"), + experiment( + StopTime=7200, + Tolerance=1e-06)); +end HighMassSupplyTemperature_TRoomRelHum; diff --git a/Buildings/Controls/OBC/RadiantSystems/Cooling/Validation/package.mo b/Buildings/Controls/OBC/RadiantSystems/Cooling/Validation/package.mo new file mode 100644 index 00000000000..28d6998f1a6 --- /dev/null +++ b/Buildings/Controls/OBC/RadiantSystems/Cooling/Validation/package.mo @@ -0,0 +1,20 @@ +within Buildings.Controls.OBC.RadiantSystems.Cooling; +package Validation "Collection of validation models" + extends Modelica.Icons.ExamplesPackage; + +annotation (preferredView="info", Documentation(info=" +

+This package contains validation models for the classes in + +Buildings.Controls.OBC.RadiantSystems.Cooling. +

+

+Note that most validation models contain simple input data +which may not be realistic, but for which the correct +output can be obtained through an analytic solution. +The examples plot various outputs, which have been verified against these +solutions. These model outputs are stored as reference data and +used for continuous validation whenever models in the library change. +

+")); +end Validation; diff --git a/Buildings/Controls/OBC/RadiantSystems/Cooling/Validation/package.order b/Buildings/Controls/OBC/RadiantSystems/Cooling/Validation/package.order new file mode 100644 index 00000000000..7e3ef7d27df --- /dev/null +++ b/Buildings/Controls/OBC/RadiantSystems/Cooling/Validation/package.order @@ -0,0 +1 @@ +HighMassSupplyTemperature_TRoomRelHum diff --git a/Buildings/Controls/OBC/RadiantSystems/Cooling/package.mo b/Buildings/Controls/OBC/RadiantSystems/Cooling/package.mo new file mode 100644 index 00000000000..47b17a58dec --- /dev/null +++ b/Buildings/Controls/OBC/RadiantSystems/Cooling/package.mo @@ -0,0 +1,32 @@ +within Buildings.Controls.OBC.RadiantSystems; +package Cooling "Package with control sequences for radiant cooling systems" + extends Modelica.Icons.Package; + +annotation (preferredView="info", Documentation(info=" +

+Package with controllers for radiant cooling systems. +

+"), + Icon(graphics={ + Rectangle( + extent={{-60,-24},{68,-76}}, + lineColor={95,95,95}, + lineThickness=1, + fillColor={95,95,95}, + fillPattern=FillPattern.Solid), + Polygon( + points={{50,-76},{50,-50},{-40,-50},{-40,-40},{56,-40},{56,-76},{60,-76}, + {60,-36},{-44,-36},{-44,-54},{46,-54},{46,-76},{50,-76}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + lineThickness=1, + fillColor={0,0,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-60,-24},{68,78}}, + lineColor={28,108,200}, + pattern=LinePattern.None, + lineThickness=1, + fillColor={85,170,255}, + fillPattern=FillPattern.Solid)})); +end Cooling; diff --git a/Buildings/Controls/OBC/RadiantSystems/Cooling/package.order b/Buildings/Controls/OBC/RadiantSystems/Cooling/package.order new file mode 100644 index 00000000000..4199e6c0cc8 --- /dev/null +++ b/Buildings/Controls/OBC/RadiantSystems/Cooling/package.order @@ -0,0 +1,2 @@ +HighMassSupplyTemperature_TRoomRelHum +Validation diff --git a/Buildings/Controls/OBC/RadiantSystems/Heating/HighMassSupplyTemperature_TRoom.mo b/Buildings/Controls/OBC/RadiantSystems/Heating/HighMassSupplyTemperature_TRoom.mo new file mode 100644 index 00000000000..4db2da0372e --- /dev/null +++ b/Buildings/Controls/OBC/RadiantSystems/Heating/HighMassSupplyTemperature_TRoom.mo @@ -0,0 +1,269 @@ +within Buildings.Controls.OBC.RadiantSystems.Heating; +block HighMassSupplyTemperature_TRoom + "Room temperature controller for radiant heating with constant mass flow and variable supply temperature" + + parameter Real TSupSet_max( + final unit="K", + displayUnit="degC") "Maximum heating supply water temperature"; + parameter Real TSupSet_min( + final unit="K", + displayUnit="degC") = 293.15 "Minimum heating supply water temperature"; + + parameter Controls.OBC.CDL.Types.SimpleController controllerType=Buildings.Controls.OBC.CDL.Types.SimpleController.P + "Type of controller" annotation (Dialog(group="Control gains")); + parameter Real k( + min=100*Buildings.Controls.OBC.CDL.Constants.eps)=2 + "Gain of controller" + annotation (Dialog(group="Control gains")); + parameter Real Ti( + final quantity="Time", + final unit="s", + min=100*Buildings.Controls.OBC.CDL.Constants.eps)=3600 + "Time constant of integrator block" + annotation (Dialog(group="Control gains",enable=controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PI or controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID)); + parameter Real Td( + final quantity="Time", + final unit="s", + min=100*Buildings.Controls.OBC.CDL.Constants.eps)=0.1 + "Time constant of derivative block" + annotation (Dialog(group="Control gains",enable=controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PD or controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID)); + + Controls.OBC.CDL.Interfaces.RealInput TRooSet( + final unit="K", + displayUnit="degC") + "Set point for room air temperature" annotation (Placement(transformation( + extent={{-140,40},{-100,80}}), iconTransformation(extent={{-140,40}, + {-100,80}}))); + Controls.OBC.CDL.Interfaces.RealInput TRoo( + final unit="K", + displayUnit="degC") "Measured room air temperature" + annotation (Placement(transformation( + extent={{-140,-20},{-100,20}}), iconTransformation(extent={{-140,-20}, + {-100,20}}))); + Controls.OBC.CDL.Interfaces.RealOutput TSupSet( + final unit="K", + displayUnit="degC") + "Set point for heating supply water temperature" + annotation (Placement(transformation(extent={{100,60},{140,100}}), + iconTransformation(extent={{100,40},{140,80}}))); + + Controls.OBC.CDL.Interfaces.RealOutput y( + final unit="1", + final min=0, + final max=1) + "Control signal for heating system from P controller" + annotation (Placement( + transformation(extent={{100,10},{140,50}}), iconTransformation(extent={{ + 100,0},{140,40}}))); + + Controls.OBC.CDL.Interfaces.BooleanOutput on + "Outputs true if the system is demanded on" annotation (Placement( + transformation(extent={{100,-50},{140,-10}}),iconTransformation(extent={{100,-40}, + {140,0}}))); + + Controls.OBC.CDL.Interfaces.RealOutput yPum( + final unit="1", + final min=0, + final max=1) + "Pump speed control signal" + annotation (Placement(transformation(extent={{100,-100},{140,-60}}), + iconTransformation(extent={{100,-80},{140,-40}}))); + + Controls.OBC.CDL.Continuous.PID conHea( + final controllerType=controllerType, + final k=k, + final Ti = Ti, + final Td = Td, + final yMax=1, + final yMin=0, + final reverseActing=true) "Controller for heating supply set point signal" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); + + Controls.OBC.CDL.Continuous.Hysteresis hysHea( + uLow=0.1, + uHigh=0.2) + "Hysteresis to switch system on and off" + annotation (Placement(transformation(extent={{-40,-70},{-20,-50}}))); + +protected + Controls.OBC.CDL.Continuous.Sources.Constant one(final k=1) "Outputs one" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + Controls.OBC.CDL.Continuous.Sources.Constant zero(final k=0) "Outputs zero" + annotation (Placement(transformation(extent={{-40,60},{-20,80}}))); + + Controls.OBC.CDL.Continuous.Sources.Constant THeaSup_minimum(final k( + final unit="K", + displayUnit="degC") = TSupSet_min) + "Negative value of minimum heating supply water temperature" + annotation (Placement(transformation(extent={{-40,30},{-20,50}}))); + + Controls.OBC.CDL.Continuous.Sources.Constant THeaSup_maximum( + final k( + final unit="K", + displayUnit="degC") = TSupSet_max) "Maximum heating supply water temperature" + annotation (Placement(transformation(extent={{-40,-40},{-20,-20}}))); + + Controls.OBC.CDL.Continuous.Line TSup( + limitBelow=false, + limitAbove=false, + y(final unit="K", + displayUnit="degC")) "Set point for supply water temperature" + annotation (Placement(transformation(extent={{20,10},{40,30}}))); + + CDL.Conversions.BooleanToReal booToRea( + final realFalse=0, + final realTrue=1) + "Pump control signal as a Real number (either 0 or 1)" + annotation (Placement(transformation(extent={{40,-90},{60,-70}}))); +equation + connect(conHea.y,hysHea.u) + annotation (Line(points={{-58,20},{-50,20},{-50,-60},{-42,-60}}, + color={0,0,127})); + connect(TRoo, conHea.u_m) + annotation (Line(points={{-120,0},{-70,0},{-70,8}}, color={0,0,127})); + connect(TRooSet, conHea.u_s) annotation (Line(points={{-120,60},{-90,60},{-90, + 20},{-82,20}}, color={0,0,127})); + connect(TSup.x1, zero.y) annotation (Line(points={{18,28},{0,28},{0,70},{-18,70}}, + color={0,0,127})); + connect(one.y, TSup.x2) annotation (Line(points={{-18,0},{-4,0},{-4,16},{18,16}}, + color={0,0,127})); + connect(conHea.y, TSup.u) annotation (Line(points={{-58,20},{18,20}}, + color={0,0,127})); + connect(TSup.f1, THeaSup_minimum.y) annotation (Line(points={{18,24},{-4,24},{ + -4,40},{-18,40}}, + color={0,0,127})); + connect(THeaSup_maximum.y, TSup.f2) annotation (Line(points={{-18,-30},{0,-30}, + {0,12},{18,12}},color={0,0,127})); + connect(TSup.y, TSupSet) annotation (Line(points={{42,20},{80,20},{80,80},{120, + 80}}, color={0,0,127})); + connect(hysHea.y, on) + annotation (Line(points={{-18,-60},{80,-60},{80,-30},{120,-30}}, + color={255,0,255})); + connect(conHea.y, y) annotation (Line(points={{-58,20},{-50,20},{-50,88},{60,88}, + {60,30},{120,30}}, color={0,0,127})); + connect(booToRea.y, yPum) + annotation (Line(points={{62,-80},{120,-80}}, color={0,0,127})); + connect(booToRea.u, hysHea.y) annotation (Line(points={{38,-80},{20,-80},{20,-60}, + {-18,-60}}, color={255,0,255})); + annotation ( + defaultComponentName="conHea", + Diagram(coordinateSystem(extent={{-100,-100},{100,100}})), Icon( + coordinateSystem(extent={{-100,-100},{100,100}}), graphics={ + Rectangle(extent={{-172,66},{-172,66}}, lineColor={28,108,200}), + Rectangle( + extent={{-100,-100},{100,100}}, + lineColor={0,0,127}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + textColor={0,0,255}, + extent={{-150,110},{150,150}}, + textString="%name"), + Text( + extent={{58,94},{94,44}}, + textColor={0,0,127}, + textString="TSupSet"), + Text( + extent={{76,-44},{96,-90}}, + textColor={0,0,127}, + textString="yPum"), + Text( + extent={{76,2},{98,-16}}, + textColor={0,0,127}, + textString="on"), + Text( + extent={{-92,92},{-48,44}}, + textColor={0,0,127}, + textString="TRooSet"), + Rectangle( + extent={{-30,-16},{48,-40}}, + lineColor={95,95,95}, + lineThickness=1, + fillColor={95,95,95}, + fillPattern=FillPattern.Solid), + Line( + points={{56,-82},{56,-26},{-24,-26},{-24,-20},{56,-20}}, + color={238,46,47}, + thickness=1), + Rectangle( + extent={{-30,-16},{48,48}}, + lineColor={28,108,200}, + fillColor={85,170,255}, + fillPattern=FillPattern.Solid, + pattern=LinePattern.None), + Line(points={{-100,60},{-64,60},{-64,26},{-30,26}}, color={28,108,200}), + Line(points={{106,60},{74,60},{74,-36},{58,-36}}, color={28,108,200}), + Ellipse( + extent={{46,-50},{68,-72}}, + lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Polygon( + points={{56,-50},{46,-60},{68,-60},{56,-50}}, + lineColor={28,108,200}, + pattern=LinePattern.None, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Line(points={{100,-60},{84,-60},{68,-60}}, color={28,108,200}), + Ellipse( + extent={{56,-32},{64,-40}}, + lineColor={0,0,0}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Line(points={{100,-20},{86,-20},{86,-60}}, + color={255,0,255}), + Text( + extent={{80,32},{98,16}}, + textColor={0,0,127}, + textString="y"), + Text( + extent={{230,108},{110,58}}, + textColor={0,0,127}, + textString=DynamicSelect("", + String(TSupSet, + leftJustified=false, + significantDigits=3))), + Text( + extent={{230,64},{110,14}}, + textColor={0,0,127}, + textString=DynamicSelect("", + String(y, + leftJustified=false, + significantDigits=2))), + Line(points={{-100,0},{-30,0}}, color={28,108,200}), + Text( + extent={{-92,30},{-72,-16}}, + textColor={0,0,127}, + textString="TRoo")}), + Documentation(info=" +

+Controller for a radiant heating system. +

+

+The controller tracks the room temperature set point TRooSet by +adjusting the supply water temperature set point TSupSet linearly between +TSupSetMin and TSupSetMax +based on the output signal y of the proportional controller. +The pump is either off or operates at full speed, in which case yPum = 1. +The pump control is based on a hysteresis that switches the pump on when the output of the +proportional controller y exceeds 0.2, and the pump is commanded off when the output falls +below 0.1. See figure below for the control charts. +

+

+\"Image +

+

+For systems with high thermal mass, this controller should be left configured +as a P-controller, which is the default setting. +PI-controller likely saturate due to the slow system response. +

+", revisions=" + +")); +end HighMassSupplyTemperature_TRoom; diff --git a/Buildings/Controls/OBC/RadiantSystems/Heating/Validation/HighMassSupplyTemperature_TRoom.mo b/Buildings/Controls/OBC/RadiantSystems/Heating/Validation/HighMassSupplyTemperature_TRoom.mo new file mode 100644 index 00000000000..2d666781948 --- /dev/null +++ b/Buildings/Controls/OBC/RadiantSystems/Heating/Validation/HighMassSupplyTemperature_TRoom.mo @@ -0,0 +1,50 @@ +within Buildings.Controls.OBC.RadiantSystems.Heating.Validation; +model HighMassSupplyTemperature_TRoom + "Validation model for the room temperature controller" + extends Modelica.Icons.Example; + + Controls.OBC.CDL.Continuous.Sources.TimeTable TRooMea( + table=[0,18; 1,22; 2,18], + extrapolation=Buildings.Controls.OBC.CDL.Types.Extrapolation.HoldLastPoint, + offset={273.15}, + timeScale=3600) "Measured room temperature" + annotation (Placement(transformation(extent={{-80,-40},{-60,-20}}))); + + Controls.OBC.RadiantSystems.Heating.HighMassSupplyTemperature_TRoom conHea(TSupSet_max=303.15) "Controller" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + +protected + Controls.OBC.CDL.Continuous.Sources.Constant TRooSet(final k( + final unit="K", + displayUnit="degC") = 293.15) "Set point temperature for room" + annotation (Placement(transformation(extent={{-80,10},{-60,30}}))); +equation + connect(TRooSet.y, conHea.TRooSet) annotation (Line(points={{-58,20},{-36,20}, + {-36,6},{-12,6}}, color={0,0,127})); + connect(TRooMea.y[1], conHea.TRoo) annotation (Line(points={{-58,-30},{-34,-30}, + {-34,-6},{-12,-6}}, color={0,0,127})); + annotation ( + Documentation( + info=" +

+This example validates the room temperature controller + +Buildings.Controls.OBC.RadiantSystems.Heating.HighMassSupplyTemperature_TRoom +for the radiant system. +The validation model applies a ramp signal to the controller input for the measured room air temperature. +

+", + revisions=" + +"), + __Dymola_Commands( + file="modelica://Buildings/Resources/Scripts/Dymola/Controls/OBC/RadiantSystems/Heating/Validation/HighMassSupplyTemperature_TRoom.mos" "Simulate and plot"), + experiment( + StopTime=7200, + Tolerance=1e-06)); +end HighMassSupplyTemperature_TRoom; diff --git a/Buildings/Controls/OBC/RadiantSystems/Heating/Validation/package.mo b/Buildings/Controls/OBC/RadiantSystems/Heating/Validation/package.mo new file mode 100644 index 00000000000..ab4fdfa4880 --- /dev/null +++ b/Buildings/Controls/OBC/RadiantSystems/Heating/Validation/package.mo @@ -0,0 +1,20 @@ +within Buildings.Controls.OBC.RadiantSystems.Heating; +package Validation "Collection of validation models" + extends Modelica.Icons.ExamplesPackage; + +annotation (preferredView="info", Documentation(info=" +

+This package contains validation models for the classes in + +Buildings.Controls.OBC.RadiantSystems.Heating. +

+

+Note that most validation models contain simple input data +which may not be realistic, but for which the correct +output can be obtained through an analytic solution. +The examples plot various outputs, which have been verified against these +solutions. These model outputs are stored as reference data and +used for continuous validation whenever models in the library change. +

+")); +end Validation; diff --git a/Buildings/Controls/OBC/RadiantSystems/Heating/Validation/package.order b/Buildings/Controls/OBC/RadiantSystems/Heating/Validation/package.order new file mode 100644 index 00000000000..9d08084193b --- /dev/null +++ b/Buildings/Controls/OBC/RadiantSystems/Heating/Validation/package.order @@ -0,0 +1 @@ +HighMassSupplyTemperature_TRoom diff --git a/Buildings/Controls/OBC/RadiantSystems/Heating/package.mo b/Buildings/Controls/OBC/RadiantSystems/Heating/package.mo new file mode 100644 index 00000000000..5b35fb28cf0 --- /dev/null +++ b/Buildings/Controls/OBC/RadiantSystems/Heating/package.mo @@ -0,0 +1,32 @@ +within Buildings.Controls.OBC.RadiantSystems; +package Heating "Package with control sequences for radiant heating systems" + extends Modelica.Icons.Package; + +annotation (preferredView="info", Documentation(info=" +

+Package with controllers for radiant heating systems. +

+"), + Icon(graphics={ + Rectangle( + extent={{-62,-26},{66,-78}}, + lineColor={95,95,95}, + lineThickness=1, + fillColor={95,95,95}, + fillPattern=FillPattern.Solid), + Polygon( + points={{48,-78},{48,-52},{-42,-52},{-42,-42},{54,-42},{54,-78},{58,-78}, + {58,-38},{-46,-38},{-46,-56},{44,-56},{44,-78},{48,-78}}, + lineColor={238,46,47}, + pattern=LinePattern.None, + lineThickness=1, + fillColor={238,46,47}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-62,-26},{66,76}}, + lineColor={28,108,200}, + pattern=LinePattern.None, + lineThickness=1, + fillColor={85,170,255}, + fillPattern=FillPattern.Solid)})); +end Heating; diff --git a/Buildings/Controls/OBC/RadiantSystems/Heating/package.order b/Buildings/Controls/OBC/RadiantSystems/Heating/package.order new file mode 100644 index 00000000000..de2b0e73ed9 --- /dev/null +++ b/Buildings/Controls/OBC/RadiantSystems/Heating/package.order @@ -0,0 +1,2 @@ +HighMassSupplyTemperature_TRoom +Validation diff --git a/Buildings/Controls/OBC/RadiantSystems/package.mo b/Buildings/Controls/OBC/RadiantSystems/package.mo new file mode 100644 index 00000000000..bba97eea989 --- /dev/null +++ b/Buildings/Controls/OBC/RadiantSystems/package.mo @@ -0,0 +1,11 @@ +within Buildings.Controls.OBC; +package RadiantSystems "Package with controllers for radiant heating and cooling systems" + extends Modelica.Icons.Package; + +annotation (preferredView="info", Documentation(info=" +

+Package with controllers for radiant heating and cooling systems +such for pipes embedded in the concrete slab. +

+")); +end RadiantSystems; diff --git a/Buildings/Controls/OBC/RadiantSystems/package.order b/Buildings/Controls/OBC/RadiantSystems/package.order new file mode 100644 index 00000000000..12863110ed1 --- /dev/null +++ b/Buildings/Controls/OBC/RadiantSystems/package.order @@ -0,0 +1,2 @@ +Cooling +Heating diff --git a/Buildings/Controls/OBC/package.order b/Buildings/Controls/OBC/package.order index f684728778a..fd5ea55a12a 100644 --- a/Buildings/Controls/OBC/package.order +++ b/Buildings/Controls/OBC/package.order @@ -2,6 +2,7 @@ UsersGuide ASHRAE CDL OutdoorLights +RadiantSystems Shade UnitConversions Utilities diff --git a/Buildings/Fluid/Boilers/BaseClasses/PartialBoiler.mo b/Buildings/Fluid/Boilers/BaseClasses/PartialBoiler.mo new file mode 100644 index 00000000000..224afbe3d27 --- /dev/null +++ b/Buildings/Fluid/Boilers/BaseClasses/PartialBoiler.mo @@ -0,0 +1,154 @@ +within Buildings.Fluid.Boilers.BaseClasses; +partial model PartialBoiler "Boiler base class with efficiency unspecified" + extends Interfaces.TwoPortHeatMassExchanger( + redeclare final Buildings.Fluid.MixingVolumes.MixingVolume vol, + show_T = true, + final tau=VWat*rho_default/m_flow_nominal); + + parameter Buildings.Fluid.Data.Fuels.Generic fue "Fuel type" + annotation (choicesAllMatching = true); + + // These parameters can be supplied via Data records + parameter Modelica.SIunits.Power Q_flow_nominal "Nominal heating power"; + parameter Modelica.SIunits.ThermalConductance UA=0.05*Q_flow_nominal/30 + "Overall UA value"; + parameter Modelica.SIunits.Volume VWat = 1.5E-6*Q_flow_nominal + "Water volume of boiler" + annotation(Dialog(tab = "Dynamics", + enable = not (energyDynamics == Modelica.Fluid.Types.Dynamics.SteadyState))); + parameter Modelica.SIunits.Mass mDry = 1.5E-3*Q_flow_nominal + "Mass of boiler that will be lumped to water heat capacity" + annotation(Dialog(tab = "Dynamics", + enable = not (energyDynamics == Modelica.Fluid.Types.Dynamics.SteadyState))); + parameter Modelica.SIunits.Efficiency eta_nominal + "Boiler efficiency at nominal condition"; + + input Modelica.SIunits.Efficiency eta "Boiler efficiency"; + Modelica.SIunits.Power QFue_flow = y * Q_flow_nominal/eta_nominal + "Heat released by fuel"; + Modelica.SIunits.Power QWat_flow = eta * QFue_flow + UAOve.Q_flow + "Heat transfer from gas into water"; + // The direction of UAOve.Q_flow is from the ambient to the boiler + // and therefore it takes a plus size here. + Modelica.SIunits.MassFlowRate mFue_flow = QFue_flow/fue.h + "Fuel mass flow rate"; + Modelica.SIunits.VolumeFlowRate VFue_flow = mFue_flow/fue.d + "Fuel volume flow rate"; + + Modelica.Blocks.Interfaces.RealInput y(min=0, max=1) "Part load ratio" + annotation (Placement(transformation(extent={{-140,60},{-100,100}}))); + + Modelica.Blocks.Interfaces.RealOutput T( + final quantity="ThermodynamicTemperature", + final unit = "K", displayUnit = "degC", min=0) + "Temperature of the fluid" + annotation (Placement(transformation(extent={{100,70},{120,90}}))); + + Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a heatPort + "Heat port, can be used to connect to ambient" + annotation (Placement(transformation(extent={{-10,62}, {10,82}}))); + Modelica.Thermal.HeatTransfer.Components.HeatCapacitor heaCapDry( + C=500*mDry, + T(start=T_start)) + if not (energyDynamics == Modelica.Fluid.Types.Dynamics.SteadyState) + "Heat capacity of boiler metal" + annotation (Placement(transformation(extent={{-80,12},{-60,32}}))); + + Buildings.HeatTransfer.Sources.PrescribedHeatFlow preHeaFlo + "Prescribed heat flow" + annotation (Placement(transformation(extent={{-43,-40},{-23,-20}}))); + Modelica.Blocks.Sources.RealExpression Q_flow_in(y=QWat_flow) + "Heat transfer from gas into water" + annotation (Placement(transformation(extent={{-80,-40},{-60,-20}}))); + Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor temSen + "Temperature of fluid" + annotation (Placement(transformation(extent={{0,30},{20,50}}))); + + Modelica.Thermal.HeatTransfer.Components.ThermalConductor UAOve(G=UA) + "Overall thermal conductance (if heatPort is connected)" + annotation (Placement(transformation(extent={{-48,10},{-28,30}}))); + +equation + assert(eta > 0.001, "Efficiency curve is wrong."); + + connect(UAOve.port_b, vol.heatPort) annotation (Line( + points={{-28,20},{-22,20},{-22,-10},{-9,-10}}, + color={191,0,0}, + smooth=Smooth.None)); + connect(UAOve.port_a, heatPort) annotation (Line( + points={{-48,20},{-52,20},{-52,60},{0,60},{0,72}}, + color={191,0,0}, + smooth=Smooth.None)); + connect(heaCapDry.port, vol.heatPort) annotation (Line( + points={{-70,12},{-70,-10},{-9,-10}}, + color={191,0,0}, + smooth=Smooth.None)); + connect(temSen.T, T) annotation (Line( + points={{20,40},{60,40},{60,80},{110,80}}, + color={0,0,127}, + smooth=Smooth.None)); + connect(preHeaFlo.port, vol.heatPort) annotation (Line( + points={{-23,-30},{-15,-30},{-15,-10},{-9,-10}}, + color={191,0,0}, + smooth=Smooth.None)); + connect(Q_flow_in.y,preHeaFlo. Q_flow) annotation (Line( + points={{-59,-30},{-43,-30}}, + color={0,0,127}, + smooth=Smooth.None)); + connect(vol.heatPort, temSen.port) annotation (Line( + points={{-9,-10},{-16,-10},{-16,40},{0,40}}, + color={191,0,0}, + smooth=Smooth.None)); + annotation ( Icon(graphics={ + Polygon( + points={{0,-34},{-12,-52},{14,-52},{0,-34}}, + pattern=LinePattern.None, + smooth=Smooth.None, + fillColor={255,255,0}, + fillPattern=FillPattern.Solid, + lineColor={0,0,0}), + Line( + points={{-100,80},{-80,80},{-80,-44},{-6,-44}}, + smooth=Smooth.None), + Line( + points={{100,80},{80,80},{80,4}}, + color={0,0,127}, + smooth=Smooth.None), + Text( + extent={{160,144},{40,94}}, + textColor={0,0,0}, + textString=DynamicSelect("T", String(T-273.15, format=".1f"))), + Text( + extent={{-38,146},{-158,96}}, + textColor={0,0,0}, + textString=DynamicSelect("y", String(y, format=".2f")))}), +defaultComponentName="boi", +Documentation(info=" +

+This is a base model of a boiler. +The efficiency specified in extended models. +See +Buildings.Fluid.Boilers.UsersGuide for details. +

+", +revisions=" + +")); +end PartialBoiler; diff --git a/Buildings/Fluid/Boilers/BaseClasses/package.mo b/Buildings/Fluid/Boilers/BaseClasses/package.mo new file mode 100644 index 00000000000..35853a222df --- /dev/null +++ b/Buildings/Fluid/Boilers/BaseClasses/package.mo @@ -0,0 +1,11 @@ +within Buildings.Fluid.Boilers; +package BaseClasses "Package with base classes for Buildings.Fluid.Boilers" + extends Modelica.Icons.BasesPackage; + +annotation (preferredView="info", Documentation(info=" +

+This package contains base classes that are used to construct the models in +Buildings.Fluid.Boilers. +

+")); +end BaseClasses; diff --git a/Buildings/Fluid/Boilers/BaseClasses/package.order b/Buildings/Fluid/Boilers/BaseClasses/package.order new file mode 100644 index 00000000000..da9abe7f4f0 --- /dev/null +++ b/Buildings/Fluid/Boilers/BaseClasses/package.order @@ -0,0 +1 @@ +PartialBoiler diff --git a/Buildings/Fluid/Boilers/BoilerTable.mo b/Buildings/Fluid/Boilers/BoilerTable.mo new file mode 100644 index 00000000000..876217ff7bb --- /dev/null +++ b/Buildings/Fluid/Boilers/BoilerTable.mo @@ -0,0 +1,75 @@ +within Buildings.Fluid.Boilers; +model BoilerTable + "Boiler with efficiency described by a table with control signal and inlet temperature" + extends Buildings.Fluid.Boilers.BaseClasses.PartialBoiler( + final eta=effTab.y, + final Q_flow_nominal = per.Q_flow_nominal, + final eta_nominal= per.eta_nominal, + final fue=per.fue, + final UA=per.UA, + final VWat = per.VWat, + final mDry = per.mDry, + final m_flow_nominal = per.m_flow_nominal, + final dp_nominal = per.dp_nominal); + + parameter Buildings.Fluid.Boilers.Data.Generic per + "Records of efficiency curves" + annotation(choicesAllMatching=true, + Placement(transformation(extent={{-40,74},{-20,94}}))); + + Modelica.Blocks.Tables.CombiTable2D effTab( + final table=per.effCur, + final smoothness=Modelica.Blocks.Types.Smoothness.ContinuousDerivative) + "Look-up table that represents a set of efficiency curves varying with both the firing rate (control signal) and the inlet water temperature" + annotation (Placement(transformation(extent={{-70,64},{-50,84}}))); + + Modelica.Blocks.Sources.RealExpression TIn( + y=Medium.temperature(state=Medium.setState_phX( + p=port_a.p, h=inStream(port_a.h_outflow), X=inStream(port_a.Xi_outflow)))) + "Water inlet temperature" + annotation (Placement(transformation(extent={{-98,58},{-78,78}}))); + +initial equation + assert(abs(per.effCur[end,1] - 1) < 1E-6, + "Efficiency curve at full load (y = 1) must be provided."); + +equation + connect(effTab.u1, y) annotation (Line(points={{-72,80},{-120,80}}, + color={0,0,127})); + connect(TIn.y, effTab.u2) + annotation (Line(points={{-77,68},{-72,68}}, color={0,0,127})); + annotation (Documentation(info=" +

+This is a model of a boiler whose efficiency is described +by a table with control signal and inlet temperature. +See +Buildings.Fluid.Boilers.UsersGuide for details. +

+

+The efficiency tables are supplied via + +Buildings.Fluid.Boilers.Data. +

+", revisions=" + +"), Icon(graphics={ + Rectangle( + origin={-48,37}, + lineColor={64,64,64}, + fillColor={255,215,136}, + fillPattern=FillPattern.Solid, + extent={{-12,-11},{12,11}}, + radius=5.0), + Line( + points={{-48,48},{-48,26}}), + Line( + points={{-60,40},{-36,40}}), + Line( + points={{-60,32},{-36,32}})})); +end BoilerTable; diff --git a/Buildings/Fluid/Boilers/Data/Generic.mo b/Buildings/Fluid/Boilers/Data/Generic.mo new file mode 100644 index 00000000000..fbcbc1d59e0 --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Generic.mo @@ -0,0 +1,57 @@ +within Buildings.Fluid.Boilers.Data; +record Generic "Generic data record for boiler performance" + extends Modelica.Icons.Record; + + parameter Real effCur[:,:]= + [0, 1; 1, 1] + "Efficiency curves as a table: First row = inlet temp(K), First column = firing rates or PLR"; + final parameter Modelica.SIunits.Efficiency eta_nominal= + Buildings.Utilities.Math.Functions.smoothInterpolation( + x=TIn_nominal, + xSup=effCur[1,2:end], + ySup=effCur[end,2:end]) + "Efficiency at TIn_nominal"; + parameter Modelica.SIunits.Temperature TIn_nominal = 323.15 + "Nominal inlet temperature for efficiency calculations"; + + parameter Buildings.Fluid.Data.Fuels.Generic fue "Fuel type" + annotation (choicesAllMatching = true); + + parameter Modelica.SIunits.Power Q_flow_nominal "Nominal heating power"; + parameter Modelica.SIunits.ThermalConductance UA=0.05*Q_flow_nominal/30 + "Overall UA value"; + parameter Modelica.SIunits.Volume VWat = 1.5E-6*Q_flow_nominal + "Water volume of boiler"; + parameter Modelica.SIunits.Mass mDry = 1.5E-3*Q_flow_nominal + "Mass of boiler that will be lumped to water heat capacity"; + + parameter Modelica.SIunits.MassFlowRate m_flow_nominal + "Nominal mass flow rate"; + parameter Modelica.SIunits.PressureDifference dp_nominal = 3000 + "Pressure drop at m_flow_nominal"; + + annotation ( + defaultComponentName="per", + defaultComponentPrefixes = "parameter", + Documentation(info=" +

+This record is used as a template for performance data +for the boiler model + +Buildings.Fluid.Boilers.BoilerTable. +

+

+Note that if the parameter fue is for the upper (or lower) heating value of the fuel, +then the effiency curve must be specified for the upper (or lower) heating value. +

+", revisions=" + +")); +end Generic; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/FBdash2501.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/FBdash2501.mo new file mode 100644 index 00000000000..6010302f32a --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/FBdash2501.mo @@ -0,0 +1,23 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar.Crest; +record FBdash2501 "Specifications for Lochinvar Crest FB-2501 boiler" + extends Buildings.Fluid.Boilers.Data.Generic( + effCur= + [0, 294.174111359682, 299.779381058911, 305.316293810589, 310.921563509818, 316.458476261496, 322.040960311542, 327.600658712403, 333.137571464081, 338.742841163311, 344.279753914988; + 0.05,0.991213389121339,0.983995815899581,0.973640167364016,0.958577405857740,0.940690376569037,0.919665271966527,0.898953974895397,0.886087866108786,0.881066945606694,0.879811715481171; + 0.5,0.988075313807531,0.981171548117155,0.968619246861924,0.952301255230125,0.931903765690376,0.907426778242677,0.890794979079498,0.882635983263598,0.878242677824267,0.876987447698744; + 1,0.969560669456067,0.962656903765690,0.951046025104602,0.935041841004184,0.917154811715481,0.896443514644351,0.884832635983263,0.878242677824267,0.874476987447698,0.873535564853556], + final fue = Buildings.Fluid.Data.Fuels.NaturalGasHigherHeatingValue(), + Q_flow_nominal = 703370.568, + VWat = 0.59430965, + mDry = 1168.907537, + m_flow_nominal = 15.141647, + dp_nominal = 25107.43); + annotation (Documentation(info=" +

+Performance data for boiler model. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end FBdash2501; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/FBdash3001.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/FBdash3001.mo new file mode 100644 index 00000000000..9913fda6acd --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/FBdash3001.mo @@ -0,0 +1,17 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar.Crest; +record FBdash3001 "Specifications for Lochinvar Crest FB-3001 boiler" + extends Buildings.Fluid.Boilers.Data.Lochinvar.Crest.FBdash2501( + Q_flow_nominal = 844923.8948, + VWat = 0.590524238, + mDry = 1306.799618, + m_flow_nominal = 18.169977, + dp_nominal = 23911.84); + annotation (Documentation(info=" +

+Performance data for boiler model. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end FBdash3001; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/FBdash3501.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/FBdash3501.mo new file mode 100644 index 00000000000..5b6c05112ca --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/FBdash3501.mo @@ -0,0 +1,17 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar.Crest; +record FBdash3501 "Specifications for Lochinvar Crest FB-3501 boiler" + extends Buildings.Fluid.Boilers.Data.Lochinvar.Crest.FBdash2501( + Q_flow_nominal = 985891.0795, + VWat = 0.76465318, + mDry = 1459.660247, + m_flow_nominal = 21.198306, + dp_nominal = 29590.90); + annotation (Documentation(info=" +

+Performance data for boiler model. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end FBdash3501; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/FBdash4001.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/FBdash4001.mo new file mode 100644 index 00000000000..faa42a3b95a --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/FBdash4001.mo @@ -0,0 +1,18 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar.Crest; +record FBdash4001 "Specifications for Lochinvar Crest FB-4001 boiler" + extends Buildings.Fluid.Boilers.Data.Lochinvar.Crest.FBdash2501( + Q_flow_nominal = 1126272.122, + VWat = 0.760867769, + mDry = 1725.918968, + m_flow_nominal = 22.081569, + dp_nominal = 32579.88); + // Data of this model are based on 22F of dT instead of 20F. + annotation (Documentation(info=" +

+Performance data for boiler model. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end FBdash4001; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/FBdash5001.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/FBdash5001.mo new file mode 100644 index 00000000000..5cc0e78fdd0 --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/FBdash5001.mo @@ -0,0 +1,17 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar.Crest; +record FBdash5001 "Specifications for Lochinvar Crest FB-5001 boiler" + extends Buildings.Fluid.Boilers.Data.Lochinvar.Crest.FBdash2501( + Q_flow_nominal = 1407913.42, + VWat = 0.961494593, + mDry = 1860.182309, + m_flow_nominal = 30.283294, + dp_nominal = 41546.82); + annotation (Documentation(info=" +

+Performance data for boiler model. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end FBdash5001; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/FBdash6001.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/FBdash6001.mo new file mode 100644 index 00000000000..0734b9397d3 --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/FBdash6001.mo @@ -0,0 +1,17 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar.Crest; +record FBdash6001 "Specifications for Lochinvar Crest FB-6001 boiler" + extends Buildings.Fluid.Boilers.Data.Lochinvar.Crest.FBdash2501( + Q_flow_nominal = 1689847.79, + VWat = 1.150765182, + mDry = 2136.873655, + m_flow_nominal = 36.339953, + dp_nominal = 51410.46); + annotation (Documentation(info=" +

+Performance data for boiler model. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end FBdash6001; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/package.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/package.mo new file mode 100644 index 00000000000..149fc4fb204 --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/package.mo @@ -0,0 +1,15 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar; +package Crest "Package with performance data for Lochinvar Crest boilers" + extends Modelica.Icons.Package; + + annotation ( + defaultComponentPrefixes = "parameter", + Documentation(info=" +

+This package contains performance data for Lochinvar Crest boilers. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end Crest; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/package.order b/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/package.order new file mode 100644 index 00000000000..1f63e372442 --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/Crest/package.order @@ -0,0 +1,6 @@ +FBdash2501 +FBdash3001 +FBdash3501 +FBdash4001 +FBdash5001 +FBdash6001 diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/FTX400.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/FTX400.mo new file mode 100644 index 00000000000..a1a6c5ba3fd --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/FTX400.mo @@ -0,0 +1,23 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar.FTXL; +record FTX400 "Specifications for Lochinvar FTXL FTX400 boiler" + extends Buildings.Fluid.Boilers.Data.Generic( + effCur= + [0, 294.264548954895, 299.823542354235, 305.382535753575, 310.941529152915, 316.500522552255, 322.059515951595, 327.580693069307, 333.177502750275, 338.698679867987, 344.257673267327; + 0.1,0.993531468531468,0.986538461538461,0.977797202797202,0.963286713286713,0.944755244755244,0.920629370629370,0.897902097902098,0.882167832167832,0.876223776223776,0.874825174825174; + 0.5,0.986888111888112,0.979895104895105,0.971153846153846,0.957517482517482,0.938986013986014,0.914335664335664,0.894755244755244,0.880419580419580,0.875000000000000,0.873776223776223; + 1,0.981993006993007,0.975000000000000,0.966258741258741,0.951748251748251,0.931643356643356,0.908916083916083,0.892132867132867,0.879370629370629,0.873776223776223,0.872552447552447], + final fue = Buildings.Fluid.Data.Fuels.NaturalGasHigherHeatingValue(), + Q_flow_nominal=114883.8594, + VWat=0.049210353, + mDry=216.8171529, + m_flow_nominal=2.460518, + dp_nominal=10461.43); + annotation (Documentation(info=" +

+Performance data for boiler model. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end FTX400; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/FTX500.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/FTX500.mo new file mode 100644 index 00000000000..20fad69c94a --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/FTX500.mo @@ -0,0 +1,17 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar.FTXL; +record FTX500 "Specifications for Lochinvar FTXL FTX500 boiler" + extends Buildings.Fluid.Boilers.Data.Lochinvar.FTXL.FTX400( + Q_flow_nominal=143311.7532, + VWat=0.045424941, + mDry=228.6105545, + m_flow_nominal=3.091420, + dp_nominal=3.091420); + annotation (Documentation(info=" +

+Performance data for boiler model. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end FTX500; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/FTX600.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/FTX600.mo new file mode 100644 index 00000000000..f785dc50391 --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/FTX600.mo @@ -0,0 +1,17 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar.FTXL; +record FTX600 "Specifications for Lochinvar FTXL FTX600 boiler" + extends Buildings.Fluid.Boilers.Data.Lochinvar.FTXL.FTX400( + Q_flow_nominal=171446.576, + VWat=0.045424941, + mDry=228.6105545, + m_flow_nominal=3.722322, + dp_nominal=13151.51); + annotation (Documentation(info=" +

+Performance data for boiler model. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end FTX600; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/FTX725.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/FTX725.mo new file mode 100644 index 00000000000..3749a06b703 --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/FTX725.mo @@ -0,0 +1,17 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar.FTXL; +record FTX725 "Specifications for Lochinvar FTXL FTX725 boiler" + extends Buildings.Fluid.Boilers.Data.Lochinvar.FTXL.FTX400( + Q_flow_nominal=206615.1044, + VWat=0.064352, + mDry=260.8156128, + m_flow_nominal=4.479404, + dp_nominal=14646.00); + annotation (Documentation(info=" +

+Performance data for boiler model. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end FTX725; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/FTX850.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/FTX850.mo new file mode 100644 index 00000000000..f37a5d2ab6d --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/FTX850.mo @@ -0,0 +1,17 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar.FTXL; +record FTX850 "Specifications for Lochinvar FTXL FTX850 boiler" + extends Buildings.Fluid.Boilers.Data.Lochinvar.FTXL.FTX400( + Q_flow_nominal=241637.0972, + VWat=0.060566589, + mDry=273.9697915, + m_flow_nominal=5.236486, + dp_nominal=17037.19); + annotation (Documentation(info=" +

+Performance data for boiler model. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end FTX850; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/package.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/package.mo new file mode 100644 index 00000000000..e6c48a0d494 --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/package.mo @@ -0,0 +1,15 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar; +package FTXL "Package with performance data for Lochinvar FTXL™ Fire Tube boilers" + extends Modelica.Icons.Package; + + annotation ( + preferredView="info", + Documentation(info=" +

+This package contains performance data for Lochinvar FTXL™ Fire Tube boilers. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end FTXL; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/package.order b/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/package.order new file mode 100644 index 00000000000..b6b6209ae31 --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/FTXL/package.order @@ -0,0 +1,5 @@ +FTX400 +FTX500 +FTX600 +FTX725 +FTX850 diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/KBXdash0400.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/KBXdash0400.mo new file mode 100644 index 00000000000..324f520dae7 --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/KBXdash0400.mo @@ -0,0 +1,22 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar.KnightXL; +record KBXdash0400 "Specifications for Lochinvar Knight XL KBX-0400 boiler" + extends Buildings.Fluid.Boilers.Data.Generic( + effCur= + [0, 294.226732673267, 299.785726072607, 305.344719471947, 310.891107444078, 316.424889988999, 322.009094242757, 327.542876787678, 333.101870187018, 338.660863586358, 344.219856985698; + 0.1,0.988111888111888,0.981118881118881,0.972377622377622,0.958041958041957,0.939510489510489,0.915209790209790,0.892657342657342,0.876573426573426,0.870804195804195,0.869230769230769; + 0.5,0.982167832167832,0.975174825174825,0.966433566433566,0.952622377622377,0.934090909090909,0.909615384615384,0.889860139860139,0.875699300699300,0.870279720279720,0.868881118881118; + 1,0.977097902097902,0.970279720279720,0.961363636363636,0.946853146853146,0.926923076923076,0.904195804195804,0.887237762237762,0.874650349650349,0.869055944055944,0.867832167832167], + final fue = Buildings.Fluid.Data.Fuels.NaturalGasHigherHeatingValue(), + Q_flow_nominal = 113427.2962, + VWat = 0.016655812, + m_flow_nominal= 2.397427, + dp_nominal = 29889.80); + annotation (Documentation(info=" +

+Performance data for boiler model. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end KBXdash0400; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/KBXdash0500.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/KBXdash0500.mo new file mode 100644 index 00000000000..9bc4017bfa6 --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/KBXdash0500.mo @@ -0,0 +1,16 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar.KnightXL; +record KBXdash0500 "Specifications for Lochinvar Knight XL KBX-0500 boiler" + extends Buildings.Fluid.Boilers.Data.Lochinvar.KnightXL.KBXdash0400( + Q_flow_nominal = 142139.469, + VWat = 0.018548518, + m_flow_nominal = 3.028329, + dp_nominal = 41845.72); + annotation (Documentation(info=" +

+Performance data for boiler model. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end KBXdash0500; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/KBXdash0650.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/KBXdash0650.mo new file mode 100644 index 00000000000..4fe7fcdc0ef --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/KBXdash0650.mo @@ -0,0 +1,16 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar.KnightXL; +record KBXdash0650 "Specifications for Lochinvar Knight XL KBX-0650 boiler" + extends Buildings.Fluid.Boilers.Data.Lochinvar.KnightXL.KBXdash0400( + Q_flow_nominal = 184781.3096, + VWat = 0.023469553, + m_flow_nominal = 3.911592, + dp_nominal = 47823.68); + annotation (Documentation(info=" +

+Performance data for boiler model. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end KBXdash0650; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/KBXdash0800.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/KBXdash0800.mo new file mode 100644 index 00000000000..627fc0078a0 --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/KBXdash0800.mo @@ -0,0 +1,16 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar.KnightXL; +record KBXdash0800 "Specifications for Lochinvar Knight XL KBX-0800 boiler" + extends Buildings.Fluid.Boilers.Data.Lochinvar.KnightXL.KBXdash0400( + Q_flow_nominal = 227423.1503, + VWat = 0.027633506, + m_flow_nominal = 4.794855, + dp_nominal = 50812.66); + annotation (Documentation(info=" +

+Performance data for boiler model. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end KBXdash0800; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/KBXdash1000.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/KBXdash1000.mo new file mode 100644 index 00000000000..81380e025ff --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/KBXdash1000.mo @@ -0,0 +1,16 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar.KnightXL; +record KBXdash1000 "Specifications for Lochinvar Knight XL KBX-1000 boiler" + extends Buildings.Fluid.Boilers.Data.Lochinvar.KnightXL.KBXdash0400( + Q_flow_nominal = 283994.659, + VWat = 0.033311624, + m_flow_nominal = 6.056659, + dp_nominal = 53801.64); + annotation (Documentation(info=" +

+Performance data for boiler model. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end KBXdash1000; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/package.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/package.mo new file mode 100644 index 00000000000..ed1e34ca7af --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/package.mo @@ -0,0 +1,15 @@ +within Buildings.Fluid.Boilers.Data.Lochinvar; +package KnightXL "Package with performance data for Lochinvar Knight™ XL boilers" + extends Modelica.Icons.Package; + + annotation ( + preferredView="info", + Documentation(info=" +

+This package contains performance data for Lochinvar Knight™ XL boilers. +See the documentation of + +Buildings.Fluid.Boilers.Data.Lochinvar. +

+")); +end KnightXL; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/package.order b/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/package.order new file mode 100644 index 00000000000..bb47e7ab579 --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/KnightXL/package.order @@ -0,0 +1,5 @@ +KBXdash0400 +KBXdash0500 +KBXdash0650 +KBXdash0800 +KBXdash1000 diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/package.mo b/Buildings/Fluid/Boilers/Data/Lochinvar/package.mo new file mode 100644 index 00000000000..4d1a44d4947 --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/package.mo @@ -0,0 +1,164 @@ +within Buildings.Fluid.Boilers.Data; +package Lochinvar "Package containing data for Lochinvar boilers" + extends Modelica.Icons.Package; + + annotation (preferredView="info", Documentation(info=" +

+This package contains performance data for Lochinvar boilers. +See sources of the data in the table below. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Crest Boilers +
Main webpage + + + https://www.lochinvar.com/products/commercial-boilers/crest-condensing-boiler/ +
Efficiency curves + + + https://www.lochinvar.com/lit/595403Crest_Efficiency_Curve.pdf +
Other specifications + + + https://www.lochinvar.com/lit/961107FBN-PS-17%20(2501-6001).pdf +
FTXL™ Fire Tube Boilers +
Main webpage + + + https://www.lochinvar.com/products/commercial-boilers/ftxl-fire-tube-boiler/ +
Efficiency curves + + + https://www.lochinvar.com/lit/FTXL%20Efficiency%20Curve.pdf +
Other specifications + + + https://www.lochinvar.com/lit/FTX-PS-02.pdf +
Knight™ XL Boilers +
Main webpage + + + https://www.lochinvar.com/products/commercial-boilers/knight-xl/ +
Efficiency curves + + + https://www.lochinvar.com/lit/643565KNIGHT%20XL%20Curve.pdf +
Other specifications + + + https://www.lochinvar.com/lit/277063KBX-PS-01_2021.pdf +
+

+Boilers with the same brand name use the same set of efficiency curves +(e.g. all records in + +Buildings.Fluid.Boilers.Data.Lochinvar.Crest +have the same curves). +The original documents use the IP units and conversions are made +in this implementation. Values corresponding to temperature rise of +20°F (11.1°C) are used as nominal (except for + +Buildings.Fluid.Boilers.Data.Lochinvar.Crest.FBdash4001 +whose data are based on 22°F [12.2°C]). +The table below explains how the variables +in this implementation correspond to items on the files from the website. +

+ + + + + + + + + + +
+

+Variable in Modelica +

+
+

Item from the website +

+
+

+Q_flow_nominal +

+
+

+Gas - BTU/hr output (high fire) +

+
+

+VWat +

+
+

+Water - Gallon capacity +

+
+

+mDry +

+
+

+Dimensions - shipping weight +

+
+

+m_flow_nominal +

+
+

+Water flow rate at 20°F ΔT (11.1°C) +

+
+

+dp_nominal +

+
+

+Pressure drop +

+
+

+See the + +User's Guide for more information. +

+")); +end Lochinvar; diff --git a/Buildings/Fluid/Boilers/Data/Lochinvar/package.order b/Buildings/Fluid/Boilers/Data/Lochinvar/package.order new file mode 100644 index 00000000000..568591e80c0 --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/Lochinvar/package.order @@ -0,0 +1,3 @@ +Crest +FTXL +KnightXL diff --git a/Buildings/Fluid/Boilers/Data/package.mo b/Buildings/Fluid/Boilers/Data/package.mo new file mode 100644 index 00000000000..824f24eb184 --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/package.mo @@ -0,0 +1,11 @@ +within Buildings.Fluid.Boilers; +package Data "Package containing performance data for boilers" +extends Modelica.Icons.MaterialPropertiesPackage; + +annotation (preferredView="info", Documentation(info=" +

+This package contains performance data of boilers. +See documentation of each package for source and other information. +

+")); +end Data; diff --git a/Buildings/Fluid/Boilers/Data/package.order b/Buildings/Fluid/Boilers/Data/package.order new file mode 100644 index 00000000000..d584637a147 --- /dev/null +++ b/Buildings/Fluid/Boilers/Data/package.order @@ -0,0 +1,2 @@ +Generic +Lochinvar diff --git a/Buildings/Fluid/Boilers/Examples/BoilerTable.mo b/Buildings/Fluid/Boilers/Examples/BoilerTable.mo new file mode 100644 index 00000000000..18dfa29c911 --- /dev/null +++ b/Buildings/Fluid/Boilers/Examples/BoilerTable.mo @@ -0,0 +1,91 @@ +within Buildings.Fluid.Boilers.Examples; +model BoilerTable + "Boilers with efficiency described by table" + extends Modelica.Icons.Example; + package Medium = Buildings.Media.Water "Medium model"; + parameter Buildings.Fluid.Boilers.Data.Lochinvar.Crest.FBdash2501 per + "Record containing a table that describes the efficiency curves" + annotation (Placement(transformation(extent={{60,60},{80,80}}))); + + Buildings.Fluid.Boilers.BoilerTable boi1( + redeclare package Medium = Medium, + energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, + from_dp=true, + T_start=293.15, + per=per) "Boiler with transient computation" + annotation (Placement(transformation(extent={{10,36},{30,56}}))); + Buildings.Fluid.Boilers.BoilerTable boi2( + redeclare package Medium = Medium, + energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, + massDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, + from_dp=true, + T_start=293.15, + per=per) "Boiler with steady-state computation" + annotation (Placement(transformation(extent={{10,-44},{30,-24}}))); + + Buildings.Fluid.Sources.Boundary_pT sin( + redeclare package Medium = Medium, + p(displayUnit="Pa") = 300000, + T=sou.T, + nPorts=2) "Sink" + annotation (Placement(transformation(extent={{80,-10},{60,10}}))); + Buildings.Fluid.Sources.Boundary_pT sou( + redeclare package Medium = Medium, + p=300000 + per.dp_nominal, + use_T_in=true, + nPorts=2) "Source" + annotation (Placement(transformation(extent={{-60,-10},{-40,10}}))); + Buildings.HeatTransfer.Sources.FixedTemperature TAmb(T=288.15) + "Ambient temperature in boiler room" + annotation (Placement(transformation(extent={{-40,70},{-20,90}}))); + Modelica.Blocks.Sources.TimeTable y(table=[0,0; 1800,1; 1800,0; 2400,0; 2400,1; + 6000,1]) "Firing rate" + annotation (Placement(transformation(extent={{-90,44},{-70,64}}))); + Modelica.Blocks.Sources.TimeTable TIn(table=[0,303.15; 3000,303.15; 4200,293.15; + 4800,293.15; 5400,303.15; 6000,303.15]) + "Inlet temperature" + annotation (Placement(transformation(extent={{-90,-6},{-70,14}}))); + +equation + connect(TAmb.port,boi1. heatPort) annotation (Line(points={{-20,80},{20,80},{20, + 53.2}}, color={191,0,0})); + connect(y.y,boi1. y) annotation (Line(points={{-69,54},{8,54}}, + color={0,0,127})); + connect(TIn.y, sou.T_in) + annotation (Line(points={{-69,4},{-62,4}}, color={0,0,127})); + connect(y.y,boi2. y) annotation (Line(points={{-69,54},{-10,54},{-10,-26},{8,-26}}, + color={0,0,127})); + connect(TAmb.port,boi2. heatPort) annotation (Line(points={{-20,80},{0,80},{0, + 0},{20,0},{20,-26.8}}, color={191,0,0})); + connect(sou.ports[1],boi1. port_a) annotation (Line(points={{-40,2},{-20,2},{-20, + 46},{10,46}}, color={0,127,255})); + connect(sou.ports[2],boi2. port_a) annotation (Line(points={{-40,-2},{-20,-2}, + {-20,-34},{10,-34}},color={0,127,255})); + connect(boi1.port_b, sin.ports[1]) annotation (Line(points={{30,46},{54,46},{54, + 2},{60,2}}, color={0,127,255})); + connect(boi2.port_b, sin.ports[2]) annotation (Line(points={{30,-34},{54,-34}, + {54,-2},{60,-2}}, color={0,127,255})); + annotation (__Dymola_Commands(file="modelica://Buildings/Resources/Scripts/Dymola/Fluid/Boilers/Examples/BoilerTable.mos" + "Simulate and plot"), + experiment(Tolerance=1e-6, StopTime=6000), + Documentation(info=" +

+Similar to + +Buildings.Fluid.Boilers.Examples.BoilerPolynomial, +this example demonstrates the open loop response of the boiler model +with boi1 a dynamic model and +boi2 a steady-state model. +In addition to the control signal, +the inlet temperature is also varied. +

+", revisions=" + +")); +end BoilerTable; diff --git a/Buildings/Fluid/Boilers/Examples/package.mo b/Buildings/Fluid/Boilers/Examples/package.mo index df7cb101c3b..c3f9661cb00 100644 --- a/Buildings/Fluid/Boilers/Examples/package.mo +++ b/Buildings/Fluid/Boilers/Examples/package.mo @@ -1,6 +1,7 @@ within Buildings.Fluid.Boilers; package Examples "Collection of models that illustrate model use and test models" extends Modelica.Icons.ExamplesPackage; + annotation (preferredView="info", Documentation(info="

This package contains examples for the use of models that can be found in diff --git a/Buildings/Fluid/Boilers/Examples/package.order b/Buildings/Fluid/Boilers/Examples/package.order index 4aa6d20e16a..07826088479 100644 --- a/Buildings/Fluid/Boilers/Examples/package.order +++ b/Buildings/Fluid/Boilers/Examples/package.order @@ -1,2 +1,3 @@ BoilerPolynomial BoilerPolynomialClosedLoop +BoilerTable diff --git a/Buildings/Fluid/Boilers/UsersGuide.mo b/Buildings/Fluid/Boilers/UsersGuide.mo new file mode 100644 index 00000000000..31d132bf9e9 --- /dev/null +++ b/Buildings/Fluid/Boilers/UsersGuide.mo @@ -0,0 +1,109 @@ +within Buildings.Fluid.Boilers; +package UsersGuide "User's Guide" + extends Modelica.Icons.Information; + +annotation (preferredView="info", + Documentation(info=" +

+This package contains models for boilers. +The main equations are computed in the base class + +Buildings.Fluid.Boilers.BaseClasses.PartialBoiler +and the efficiency is described in the extended models +using different methods. +

+

+The heat of combustion released by the fuel is computed as +

+

+f = y ⋅ Q̇0 ⁄ η0 +

+

+where y ∈ [0, 1] is the control signal or firing rate, +0 is the nominal heating power +and η0 is the nominal efficiency. +The nominal values correspond to the operating condition at y = 1 and, +when applicable, at the nominal temperature T = T0 +or Tinlet = Tinlet,0, +depending on the choice of model. +

+

+The heat transferred to the working fluid (typically water or air) is +

+

+Q̇ = η ⋅ Q̇f - Q̇amb +

+

+where η is the efficiency at the current operating point +and amb > 0 is the heat loss from the boiler +to the ambient. +

+amb is considered only when the port heatPort +is connected to a heat port outside of this model +to impose a boundary condition in order to model heat losses to the ambient. +When using this heatPort, +make sure that the efficiency does not already account for this heat loss. +Also note that in + +Buildings.Fluid.Boilers.BaseClasses.PartialBoiler, +the equation +QWat_flow = eta * QFue_flow + UAOve.Q_flow +uses a summation instead of a subtraction because the direction +of UAOve.Q_flow is from the ambient to the boiler. +

+

+The fuel is specified in +Buildings.Fluid.Data.Fuels +via +

+

+f = Q̇f ⁄ hf
+f = ṁf ⁄ ρf +

+

+where is the mass flow rate of the fuel, +hf is the heating value of the fuel, +f is the volumetric flow rate of the fuel, +and ρf is the density of the fuel. +Care must be taken to choose the higher or lower heating value correctly +that corresponds to the efficiency η. +(E.g., the efficiency of a condensing boiler may be computed on the +higher heating value to avoid efficiencies higher than 1, +whereas a non-condesing boiler's efficiency is typically on the lower heating value.) +

+

+There are two ways to specify the efficiency η. +

+ +

+Specifying the performance using a table as implemtend in + +Buildings.Fluid.Boilers.BoilerTable +is generally easier for representing condensing boilers because the change in +efficiency near the condensation point can be described conveniently. +

+

+On the Assumptions tag, the model can be parameterized to compute a transient +or steady-state response. The transient response of the boiler is computed +using a first order differential equation to compute the boiler's water +and metal temperature, which are lumped into one state. +The boiler outlet temperature is equal to this water temperature. +

+")); +end UsersGuide; diff --git a/Buildings/Fluid/Boilers/Validation/BoilerTableEfficiencyCurves.mo b/Buildings/Fluid/Boilers/Validation/BoilerTableEfficiencyCurves.mo new file mode 100644 index 00000000000..44928cd9fa8 --- /dev/null +++ b/Buildings/Fluid/Boilers/Validation/BoilerTableEfficiencyCurves.mo @@ -0,0 +1,137 @@ +within Buildings.Fluid.Boilers.Validation; +model BoilerTableEfficiencyCurves + "Boilers with efficiency curves specified by look-up table" + extends Modelica.Icons.Example; + package Medium = Buildings.Media.Water "Medium model"; + parameter Buildings.Fluid.Boilers.Data.Lochinvar.Crest.FBdash2501 per + "Record containing a table that describes the efficiency curves" + annotation (Placement(transformation(extent={{70,60},{90,80}}))); + + Buildings.Fluid.Sources.Boundary_pT sin( + redeclare package Medium = Medium, + nPorts=3, + p(displayUnit="Pa") = 300000, + T=sou.T) "Sink" + annotation (Placement(transformation(extent={{82,-30},{62,-10}}))); + Buildings.Fluid.Sources.Boundary_pT sou( + redeclare package Medium = Medium, + p=300000 + per.dp_nominal, + use_T_in=true, + nPorts=3) "Source" + annotation (Placement(transformation(extent={{-32,-30},{-12,-10}}))); + Buildings.Fluid.Boilers.BoilerTable boi1( + redeclare package Medium = Medium, + energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, + massDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, + from_dp=true, + T_start=293.15, + per=per) "Boiler 1 set at 5% firing rate" + annotation (Placement(transformation(extent={{20,44},{40,64}}))); + Buildings.HeatTransfer.Sources.FixedTemperature + TAmb1(T=288.15) "Ambient temperature in boiler room" + annotation (Placement(transformation(extent={{0,72},{20,92}}))); + Buildings.Fluid.Boilers.BoilerTable boi2( + redeclare package Medium = Medium, + energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, + massDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, + from_dp=true, + T_start=293.15, + per=per) "Boiler 2 set at 50% firing rate" + annotation (Placement(transformation(extent={{20,-16},{40,4}}))); + Buildings.HeatTransfer.Sources.FixedTemperature + TAmb2(T=288.15) "Ambient temperature in boiler room" + annotation (Placement(transformation(extent={{0,12},{20,32}}))); + Buildings.Fluid.Boilers.BoilerTable boi3( + redeclare package Medium = Medium, + energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, + massDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, + from_dp=true, + T_start=293.15, + per=per) "Boiler 3 set at 100% firing rate" + annotation (Placement(transformation(extent={{20,-76},{40,-56}}))); + HeatTransfer.Sources.FixedTemperature TAmb3(T=288.15) + "Ambient temperature in boiler room" + annotation (Placement(transformation(extent={{0,-48},{20,-28}}))); + + Modelica.Blocks.Sources.Constant y1(k=0.05) + "Setting the firing rate at constant 5%" + annotation (Placement(transformation(extent={{-90,52},{-70,72}}))); + Modelica.Blocks.Sources.Constant y2(k=0.5) + "Setting the firing rate at constant 50%" + annotation (Placement(transformation(extent={{-90,-8},{-70,12}}))); + Modelica.Blocks.Sources.Constant y3(k=1) + "Setting the firing rate at constant 100%" + annotation (Placement(transformation(extent={{-90,-68},{-70,-48}}))); + Modelica.Blocks.Sources.Ramp TIn( + height=per.effCur[1,end]-per.effCur[1,2], + duration=3600, + offset=per.effCur[1,2], + y(final unit="K", + displayUnit="degC")) + "Ramps the T_inlet from the first to the last temperature provided by the efficiency curve table" + annotation (Placement(transformation(extent={{-62,-26},{-42,-6}}))); + +equation + connect(TAmb1.port, boi1.heatPort) annotation (Line( + points={{20,82},{30,82},{30,61.2}}, + color={191,0,0}, + smooth=Smooth.None)); + connect(TAmb2.port, boi2.heatPort) annotation (Line( + points={{20,22},{30,22},{30,1.2}}, + color={191,0,0}, + smooth=Smooth.None)); + connect(boi2.port_b, sin.ports[2]) annotation (Line( + points={{40,-6},{52,-6},{52,-20},{62,-20}}, + color={0,127,255}, + smooth=Smooth.None)); + connect(boi1.port_b, sin.ports[1]) annotation (Line( + points={{40,54},{52,54},{52,-21.3333},{62,-21.3333}}, + color={0,127,255}, + smooth=Smooth.None)); + connect(TAmb3.port, boi3.heatPort) + annotation (Line(points={{20,-38},{30,-38},{30,-58.8}}, color={191,0,0})); + connect(boi3.port_b, sin.ports[3]) annotation (Line(points={{40,-66},{52,-66}, + {52,-18.6667},{62,-18.6667}}, color={0,127,255})); + connect(boi1.port_a, sou.ports[1]) annotation (Line(points={{20,54},{-6,54},{ + -6,-21.3333},{-12,-21.3333}}, + color={0,127,255})); + connect(boi3.port_a, sou.ports[2]) annotation (Line(points={{20,-66},{-6,-66}, + {-6,-20},{-12,-20}}, color={0,127,255})); + connect(boi2.port_a, sou.ports[3]) annotation (Line(points={{20,-6},{-6,-6},{ + -6,-18.6667},{-12,-18.6667}}, + color={0,127,255})); + connect(y1.y, boi1.y) annotation (Line(points={{-69,62},{18,62}}, + color={0,0,127})); + connect(y2.y, boi2.y) annotation (Line(points={{-69,2},{18,2}}, + color={0,0,127})); + connect(y3.y, boi3.y) annotation (Line(points={{-69,-58},{18,-58}}, + color={0,0,127})); + connect(TIn.y, sou.T_in) + annotation (Line(points={{-41,-16},{-34,-16}}, color={0,0,127})); + annotation (__Dymola_Commands(file="modelica://Buildings/Resources/Scripts/Dymola/Fluid/Boilers/Validation/BoilerTableEfficiencyCurves.mos" + "Simulate and plot"), + experiment(Tolerance=1e-6, StopTime=3600), + Documentation(info=" +

+This model computes the efficiency of boilers for using the model + +Buildings.Fluid.Boilers.BoilerTable +at firing rates of 5%, 50%, and 100%. +

+

+The models are configured to compute the following efficiency curves. +

+

+\"Image +

+", revisions=" + +")); +end BoilerTableEfficiencyCurves; diff --git a/Buildings/Fluid/Boilers/Validation/package.mo b/Buildings/Fluid/Boilers/Validation/package.mo new file mode 100644 index 00000000000..2c629622d93 --- /dev/null +++ b/Buildings/Fluid/Boilers/Validation/package.mo @@ -0,0 +1,12 @@ +within Buildings.Fluid.Boilers; +package Validation "Collection of validation models" + extends Modelica.Icons.ExamplesPackage; + +annotation (preferredView="info", Documentation(info=" +

+This package contains validation models for the models that can be found in + +Buildings.Fluid.Boilers. +

+")); +end Validation; diff --git a/Buildings/Fluid/Boilers/Validation/package.order b/Buildings/Fluid/Boilers/Validation/package.order new file mode 100644 index 00000000000..b8768a6b606 --- /dev/null +++ b/Buildings/Fluid/Boilers/Validation/package.order @@ -0,0 +1 @@ +BoilerTableEfficiencyCurves diff --git a/Buildings/Fluid/Boilers/package.order b/Buildings/Fluid/Boilers/package.order index 7297dd0e31e..2d17d81c23f 100644 --- a/Buildings/Fluid/Boilers/package.order +++ b/Buildings/Fluid/Boilers/package.order @@ -1,2 +1,7 @@ +UsersGuide BoilerPolynomial +BoilerTable +Data Examples +Validation +BaseClasses diff --git a/Buildings/Resources/Images/BoundaryConditions/GroundTemperature/UndisturbedSoilTemperature.png b/Buildings/Resources/Images/BoundaryConditions/GroundTemperature/UndisturbedSoilTemperature.png new file mode 100644 index 00000000000..2b5d543eec6 Binary files /dev/null and b/Buildings/Resources/Images/BoundaryConditions/GroundTemperature/UndisturbedSoilTemperature.png differ diff --git a/Buildings/Resources/Images/BoundaryConditions/GroundTemperature/UndisturbedSoilTemperature.svg b/Buildings/Resources/Images/BoundaryConditions/GroundTemperature/UndisturbedSoilTemperature.svg new file mode 100644 index 00000000000..14a6fcdbff3 --- /dev/null +++ b/Buildings/Resources/Images/BoundaryConditions/GroundTemperature/UndisturbedSoilTemperature.svg @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Buildings/Resources/Images/Controls/OBC/RadiantSystems/Cooling/HighMassSupplyTemperature_TRoomRelHum.png b/Buildings/Resources/Images/Controls/OBC/RadiantSystems/Cooling/HighMassSupplyTemperature_TRoomRelHum.png new file mode 100644 index 00000000000..8e7a28d72bd Binary files /dev/null and b/Buildings/Resources/Images/Controls/OBC/RadiantSystems/Cooling/HighMassSupplyTemperature_TRoomRelHum.png differ diff --git a/Buildings/Resources/Images/Controls/OBC/RadiantSystems/Cooling/HighMassSupplyTemperature_TRoomRelHum.svg b/Buildings/Resources/Images/Controls/OBC/RadiantSystems/Cooling/HighMassSupplyTemperature_TRoomRelHum.svg new file mode 100644 index 00000000000..aab7b1a2868 --- /dev/null +++ b/Buildings/Resources/Images/Controls/OBC/RadiantSystems/Cooling/HighMassSupplyTemperature_TRoomRelHum.svg @@ -0,0 +1,655 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + Set point for supplywater temperature TSupSet + Output of P controller y + + 0 + 1 + + + TSupSetMax + + TSupSetMin + + + + + + 1 + + + + 0.1 + Pump control signal yPum + + 0.2 + 1 + + 0 + + + + + + + + + + + + + Dew point temperature + + + + + diff --git a/Buildings/Resources/Images/Controls/OBC/RadiantSystems/Heating/HighMassSupplyTemperature_TRoom.png b/Buildings/Resources/Images/Controls/OBC/RadiantSystems/Heating/HighMassSupplyTemperature_TRoom.png new file mode 100644 index 00000000000..c448f11c917 Binary files /dev/null and b/Buildings/Resources/Images/Controls/OBC/RadiantSystems/Heating/HighMassSupplyTemperature_TRoom.png differ diff --git a/Buildings/Resources/Images/Controls/OBC/RadiantSystems/Heating/HighMassSupplyTemperature_TRoom.svg b/Buildings/Resources/Images/Controls/OBC/RadiantSystems/Heating/HighMassSupplyTemperature_TRoom.svg new file mode 100644 index 00000000000..9e6e2582484 --- /dev/null +++ b/Buildings/Resources/Images/Controls/OBC/RadiantSystems/Heating/HighMassSupplyTemperature_TRoom.svg @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + Set point for supplywater temperature TSupSet + Output of P controller y + + 0 + 1 + + + TSupSetMax + + TSupSetMin + + + + + + 1 + + + + 0.1 + Pump control signal yPum + + 0.2 + 1 + + 0 + + + + + + + + + + diff --git a/Buildings/Resources/Images/Fluid/Boilers/Validation/BoilerTableEfficiencyCurves.png b/Buildings/Resources/Images/Fluid/Boilers/Validation/BoilerTableEfficiencyCurves.png new file mode 100644 index 00000000000..c4e65b3645e Binary files /dev/null and b/Buildings/Resources/Images/Fluid/Boilers/Validation/BoilerTableEfficiencyCurves.png differ diff --git a/Buildings/Resources/ReferenceResults/Dymola/Buildings_BoundaryConditions_GroundTemperature_Examples_CorrectedConvection.txt b/Buildings/Resources/ReferenceResults/Dymola/Buildings_BoundaryConditions_GroundTemperature_Examples_CorrectedConvection.txt new file mode 100644 index 00000000000..a90a1d60b07 --- /dev/null +++ b/Buildings/Resources/ReferenceResults/Dymola/Buildings_BoundaryConditions_GroundTemperature_Examples_CorrectedConvection.txt @@ -0,0 +1,12 @@ +last-generated=2021-06-09 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 3.1536e+07] +TSoi[1].T=[2.751972961425781e+02, 2.748929748535156e+02, 2.746253967285156e+02, 2.743957214355469e+02, 2.742047729492188e+02, 2.740533447265625e+02, 2.739420471191406e+02, 2.738712768554688e+02, 2.738413391113281e+02, 2.738523559570312e+02, 2.739042663574219e+02, 2.739968566894531e+02, 2.741297912597656e+02, 2.743025512695312e+02, 2.745144348144531e+02, 2.747645874023438e+02, 2.750520629882812e+02, 2.753757019042969e+02, 2.757342529296875e+02, 2.761262817382812e+02, 2.765502319335938e+02, 2.770044555664062e+02, 2.774871826171875e+02, 2.779964599609375e+02, 2.785303344726562e+02, 2.790866394042969e+02, 2.796632385253906e+02, 2.802578125e+02, 2.808680725097656e+02, 2.814915771484375e+02, 2.821258544921875e+02, 2.827684326171875e+02, 2.834167785644531e+02, 2.840683288574219e+02, 2.847205200195312e+02, 2.853707580566406e+02, 2.860165405273438e+02, 2.866552429199219e+02, 2.872843933105469e+02, 2.879015197753906e+02, 2.88504150390625e+02, 2.890899658203125e+02, 2.896566162109375e+02, 2.902018737792969e+02, 2.907236022949219e+02, 2.912197265625e+02, 2.916882934570312e+02, 2.921274719238281e+02, 2.925355529785156e+02, 2.929108581542969e+02, 2.932519836425781e+02, 2.935575256347656e+02, 2.938263244628906e+02, 2.940572814941406e+02, 2.9424951171875e+02, 2.944022521972656e+02, 2.945149230957031e+02, 2.945870361328125e+02, 2.946183166503906e+02, 2.946086730957031e+02, 2.9455810546875e+02, 2.944668579101562e+02, 2.943352355957031e+02, 2.94163818359375e+02, 2.939532165527344e+02, 2.937043151855469e+02, 2.934180603027344e+02, 2.930956115722656e+02, 2.927381896972656e+02, 2.923472595214844e+02, 2.9192431640625e+02, 2.914710693359375e+02, 2.909892578125e+02, 2.904808349609375e+02, 2.8994775390625e+02, 2.893921508789062e+02, 2.888161926269531e+02, 2.8822216796875e+02, 2.876123962402344e+02, 2.869892883300781e+02, 2.863553466796875e+02, 2.857129821777344e+02, 2.850647888183594e+02, 2.844132995605469e+02, 2.837611083984375e+02, 2.831107482910156e+02, 2.824648132324219e+02, 2.818258056640625e+02, 2.811962890625e+02, 2.805787353515625e+02, 2.799755859375e+02, 2.793891906738281e+02, 2.788218688964844e+02, 2.782758483886719e+02, 2.777533264160156e+02, 2.772563171386719e+02, 2.767867736816406e+02, 2.763465881347656e+02, 2.759374694824219e+02, 2.7556103515625e+02, 2.752187805175781e+02] +TSoi[2].T=[2.823139038085938e+02, 2.820104064941406e+02, 2.817156677246094e+02, 2.814308166503906e+02, 2.811570129394531e+02, 2.808953247070312e+02, 2.806467590332031e+02, 2.804123229980469e+02, 2.801929321289062e+02, 2.799894714355469e+02, 2.798027038574219e+02, 2.796333923339844e+02, 2.794822082519531e+02, 2.793497009277344e+02, 2.792364501953125e+02, 2.791428833007812e+02, 2.790693664550781e+02, 2.790162048339844e+02, 2.789835815429688e+02, 2.789716186523438e+02, 2.789804077148438e+02, 2.790098571777344e+02, 2.790599060058594e+02, 2.791303100585938e+02, 2.792208251953125e+02, 2.793310852050781e+02, 2.794606628417969e+02, 2.796090087890625e+02, 2.797756042480469e+02, 2.79959716796875e+02, 2.801607055664062e+02, 2.80377685546875e+02, 2.8060986328125e+02, 2.808563232421875e+02, 2.811160888671875e+02, 2.813880920410156e+02, 2.816713256835938e+02, 2.819646301269531e+02, 2.822668762207031e+02, 2.825768432617188e+02, 2.828933410644531e+02, 2.83215087890625e+02, 2.835408325195312e+02, 2.838693237304688e+02, 2.8419921875e+02, 2.845292358398438e+02, 2.848580627441406e+02, 2.851844177246094e+02, 2.855070190429688e+02, 2.858245849609375e+02, 2.861358642578125e+02, 2.864396362304688e+02, 2.867347106933594e+02, 2.870198974609375e+02, 2.872940979003906e+02, 2.875562133789062e+02, 2.878052062988281e+02, 2.880401306152344e+02, 2.882600402832031e+02, 2.884640502929688e+02, 2.886513671875e+02, 2.888212890625e+02, 2.889730834960938e+02, 2.89106201171875e+02, 2.892200927734375e+02, 2.893143310546875e+02, 2.893885192871094e+02, 2.894423522949219e+02, 2.894756774902344e+02, 2.894883117675781e+02, 2.89480224609375e+02, 2.894514465332031e+02, 2.89402099609375e+02, 2.893323364257812e+02, 2.892424926757812e+02, 2.891328735351562e+02, 2.890039367675781e+02, 2.88856201171875e+02, 2.886902160644531e+02, 2.885066528320312e+02, 2.883062438964844e+02, 2.880897521972656e+02, 2.878580627441406e+02, 2.87612060546875e+02, 2.873527526855469e+02, 2.870811157226562e+02, 2.867982482910156e+02, 2.865052490234375e+02, 2.862032775878906e+02, 2.858935546875e+02, 2.855772705078125e+02, 2.852556457519531e+02, 2.849300231933594e+02, 2.846015930175781e+02, 2.84271728515625e+02, 2.839417114257812e+02, 2.836128234863281e+02, 2.832863464355469e+02, 2.829635925292969e+02, 2.826458435058594e+02, 2.823343200683594e+02] +TSoi[3].T=[2.853735961914062e+02, 2.852766418457031e+02, 2.851755676269531e+02, 2.8507080078125e+02, 2.849626770019531e+02, 2.848516845703125e+02, 2.847382507324219e+02, 2.84622802734375e+02, 2.845057983398438e+02, 2.843877258300781e+02, 2.842690124511719e+02, 2.84150146484375e+02, 2.840316162109375e+02, 2.839138488769531e+02, 2.837973327636719e+02, 2.836825256347656e+02, 2.835698852539062e+02, 2.834598083496094e+02, 2.833528137207031e+02, 2.832492370605469e+02, 2.831495666503906e+02, 2.830541076660156e+02, 2.829633178710938e+02, 2.828775024414062e+02, 2.827970275878906e+02, 2.827221984863281e+02, 2.826533203125e+02, 2.825906372070312e+02, 2.82534423828125e+02, 2.824849243164062e+02, 2.824422607421875e+02, 2.824066467285156e+02, 2.823782348632812e+02, 2.823571166992188e+02, 2.823433837890625e+02, 2.823370666503906e+02, 2.823382263183594e+02, 2.823468627929688e+02, 2.823628845214844e+02, 2.823862915039062e+02, 2.824169311523438e+02, 2.824547424316406e+02, 2.824995727539062e+02, 2.825511779785156e+02, 2.826094360351562e+02, 2.826740417480469e+02, 2.827448120117188e+02, 2.828214416503906e+02, 2.829035949707031e+02, 2.829909973144531e+02, 2.830832824707031e+02, 2.831800537109375e+02, 2.83281005859375e+02, 2.833856811523438e+02, 2.834936828613281e+02, 2.836045837402344e+02, 2.837179565429688e+02, 2.838333435058594e+02, 2.839502868652344e+02, 2.84068359375e+02, 2.841870422363281e+02, 2.84305908203125e+02, 2.844244689941406e+02, 2.845422668457031e+02, 2.846588134765625e+02, 2.847737121582031e+02, 2.848864440917969e+02, 2.8499658203125e+02, 2.851036987304688e+02, 2.852073669433594e+02, 2.853071899414062e+02, 2.854027709960938e+02, 2.854937438964844e+02, 2.855797119140625e+02, 2.856603698730469e+02, 2.857354125976562e+02, 2.858045043945312e+02, 2.858673706054688e+02, 2.859237976074219e+02, 2.859735412597656e+02, 2.860164489746094e+02, 2.860522766113281e+02, 2.860809326171875e+02, 2.86102294921875e+02, 2.861162719726562e+02, 2.861228332519531e+02, 2.861219177246094e+02, 2.861135559082031e+02, 2.860977478027344e+02, 2.860746154785156e+02, 2.86044189453125e+02, 2.860066223144531e+02, 2.859620361328125e+02, 2.8591064453125e+02, 2.858526000976562e+02, 2.857881774902344e+02, 2.857176208496094e+02, 2.856412048339844e+02, 2.855592041015625e+02, 2.854719848632812e+02, 2.853798522949219e+02] +TSoi[4].T=[2.846688537597656e+02, 2.846809692382812e+02, 2.846912536621094e+02, 2.846997680664062e+02, 2.847063903808594e+02, 2.84711181640625e+02, 2.847140502929688e+02, 2.847149963378906e+02, 2.847140502929688e+02, 2.84711181640625e+02, 2.847064208984375e+02, 2.846997985839844e+02, 2.846913146972656e+02, 2.846809997558594e+02, 2.846689147949219e+02, 2.846551208496094e+02, 2.846396179199219e+02, 2.846225280761719e+02, 2.846038818359375e+02, 2.845837707519531e+02, 2.84562255859375e+02, 2.845394287109375e+02, 2.84515380859375e+02, 2.844902038574219e+02, 2.844640197753906e+02, 2.844368896484375e+02, 2.844089660644531e+02, 2.843803405761719e+02, 2.843511047363281e+02, 2.843213806152344e+02, 2.842913208007812e+02, 2.842610168457031e+02, 2.842305908203125e+02, 2.842001342773438e+02, 2.841698303222656e+02, 2.841397399902344e+02, 2.841100158691406e+02, 2.840807800292969e+02, 2.840521240234375e+02, 2.840241394042969e+02, 2.839970092773438e+02, 2.839707641601562e+02, 2.83945556640625e+02, 2.839214782714844e+02, 2.838985900878906e+02, 2.838770446777344e+02, 2.838568420410156e+02, 2.83838134765625e+02, 2.838209838867188e+02, 2.838054504394531e+02, 2.837915649414062e+02, 2.837794189453125e+02, 2.8376904296875e+02, 2.83760498046875e+02, 2.837537841796875e+02, 2.837489624023438e+02, 2.837460327148438e+02, 2.837449951171875e+02, 2.837458801269531e+02, 2.837486877441406e+02, 2.837533874511719e+02, 2.837599487304688e+02, 2.837683715820312e+02, 2.837786254882812e+02, 2.837906494140625e+02, 2.838043823242188e+02, 2.8381982421875e+02, 2.838368835449219e+02, 2.8385546875e+02, 2.838755493164062e+02, 2.838970031738281e+02, 2.839197998046875e+02, 2.839438171386719e+02, 2.839689331054688e+02, 2.839950866699219e+02, 2.840221862792969e+02, 2.840501098632812e+02, 2.840787048339844e+02, 2.841079406738281e+02, 2.841376342773438e+02, 2.841676635742188e+02, 2.841979675292969e+02, 2.842284240722656e+02, 2.842588500976562e+02, 2.842891540527344e+02, 2.843192443847656e+02, 2.843489990234375e+02, 2.843782653808594e+02, 2.844069519042969e+02, 2.844349365234375e+02, 2.844621276855469e+02, 2.844883728027344e+02, 2.845136108398438e+02, 2.845377502441406e+02, 2.845606689453125e+02, 2.84582275390625e+02, 2.846025085449219e+02, 2.846212463378906e+02, 2.846384582519531e+02, 2.846540832519531e+02, 2.846679992675781e+02] diff --git a/Buildings/Resources/ReferenceResults/Dymola/Buildings_BoundaryConditions_GroundTemperature_Examples_CorrectedNFactors.txt b/Buildings/Resources/ReferenceResults/Dymola/Buildings_BoundaryConditions_GroundTemperature_Examples_CorrectedNFactors.txt new file mode 100644 index 00000000000..952b99dcd14 --- /dev/null +++ b/Buildings/Resources/ReferenceResults/Dymola/Buildings_BoundaryConditions_GroundTemperature_Examples_CorrectedNFactors.txt @@ -0,0 +1,12 @@ +last-generated=2021-06-09 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 3.1536e+07] +TSoi[1].T=[2.739639282226562e+02, 2.735196838378906e+02, 2.731483459472656e+02, 2.728513793945312e+02, 2.726299438476562e+02, 2.724849548339844e+02, 2.724169006347656e+02, 2.724261474609375e+02, 2.725125732421875e+02, 2.726759033203125e+02, 2.729154357910156e+02, 2.732302551269531e+02, 2.73619140625e+02, 2.740805358886719e+02, 2.746126403808594e+02, 2.752133178710938e+02, 2.758802185058594e+02, 2.766107482910156e+02, 2.774019775390625e+02, 2.782508239746094e+02, 2.791539306640625e+02, 2.801077575683594e+02, 2.811084899902344e+02, 2.821522216796875e+02, 2.8323486328125e+02, 2.843520812988281e+02, 2.854995422363281e+02, 2.866726684570312e+02, 2.878668823242188e+02, 2.890774536132812e+02, 2.902995910644531e+02, 2.915285339355469e+02, 2.927593688964844e+02, 2.939873046875e+02, 2.952074584960938e+02, 2.964150695800781e+02, 2.976053161621094e+02, 2.987735595703125e+02, 2.999151611328125e+02, 3.01025634765625e+02, 3.021006164550781e+02, 3.031358642578125e+02, 3.041272583007812e+02, 3.050709533691406e+02, 3.059631958007812e+02, 3.068004760742188e+02, 3.075794982910156e+02, 3.082971496582031e+02, 3.0895068359375e+02, 3.095374450683594e+02, 3.1005517578125e+02, 3.105018005371094e+02, 3.108755798339844e+02, 3.11175048828125e+02, 3.113989868164062e+02, 3.115465393066406e+02, 3.116171264648438e+02, 3.116104736328125e+02, 3.11526611328125e+02, 3.113658142089844e+02, 3.111287841796875e+02, 3.108164367675781e+02, 3.104299926757812e+02, 3.099709777832031e+02, 3.094412231445312e+02, 3.088427734375e+02, 3.081780090332031e+02, 3.074495544433594e+02, 3.066602783203125e+02, 3.058132934570312e+02, 3.049119262695312e+02, 3.039597473144531e+02, 3.029605102539062e+02, 3.019181213378906e+02, 3.008367309570312e+02, 2.997205505371094e+02, 2.985740356445312e+02, 2.974016723632812e+02, 2.962080993652344e+02, 2.949979858398438e+02, 2.937761535644531e+02, 2.9254736328125e+02, 2.913164978027344e+02, 2.900884094238281e+02, 2.88867919921875e+02, 2.876598205566406e+02, 2.864689331054688e+02, 2.852998657226562e+02, 2.841573181152344e+02, 2.830457153320312e+02, 2.819695129394531e+02, 2.809328918457031e+02, 2.7993994140625e+02, 2.7899462890625e+02, 2.781006164550781e+02, 2.77261474609375e+02, 2.7648046875e+02, 2.757607116699219e+02, 2.751050109863281e+02, 2.745159912109375e+02, 2.739959411621094e+02] +TSoi[2].T=[2.873547668457031e+02, 2.868143310546875e+02, 2.862944030761719e+02, 2.857969970703125e+02, 2.853241271972656e+02, 2.848776550292969e+02, 2.844592895507812e+02, 2.840707397460938e+02, 2.837135009765625e+02, 2.833890075683594e+02, 2.830985107421875e+02, 2.828431396484375e+02, 2.826239624023438e+02, 2.824418029785156e+02, 2.8229736328125e+02, 2.821912536621094e+02, 2.821238708496094e+02, 2.820954895019531e+02, 2.82106201171875e+02, 2.821559753417969e+02, 2.822445983886719e+02, 2.823717651367188e+02, 2.825369567871094e+02, 2.82739501953125e+02, 2.829786071777344e+02, 2.832533569335938e+02, 2.835626220703125e+02, 2.839052429199219e+02, 2.842798156738281e+02, 2.846849060058594e+02, 2.851188659667969e+02, 2.855800476074219e+02, 2.860665588378906e+02, 2.865765686035156e+02, 2.871080017089844e+02, 2.876587829589844e+02, 2.882267456054688e+02, 2.888096618652344e+02, 2.894052124023438e+02, 2.900110473632812e+02, 2.906248168945312e+02, 2.912440490722656e+02, 2.918663330078125e+02, 2.924892272949219e+02, 2.931102600097656e+02, 2.937269592285156e+02, 2.943369445800781e+02, 2.949378051757812e+02, 2.955271301269531e+02, 2.961026306152344e+02, 2.966620178222656e+02, 2.97203125e+02, 2.977237854003906e+02, 2.982219543457031e+02, 2.986956481933594e+02, 2.9914306640625e+02, 2.995623474121094e+02, 2.999519348144531e+02, 3.003102416992188e+02, 3.006358337402344e+02, 3.00927490234375e+02, 3.011840209960938e+02, 3.014044189453125e+02, 3.015878295898438e+02, 3.017335205078125e+02, 3.018409118652344e+02, 3.019096069335938e+02, 3.019392700195312e+02, 3.019298706054688e+02, 3.018813781738281e+02, 3.017940063476562e+02, 3.016681213378906e+02, 3.015042114257812e+02, 3.013028869628906e+02, 3.010649719238281e+02, 3.007913818359375e+02, 3.004832458496094e+02, 3.001417236328125e+02, 2.997681884765625e+02, 2.993640747070312e+02, 2.989310607910156e+02, 2.984707641601562e+02, 2.979850158691406e+02, 2.974757995605469e+02, 2.969450378417969e+02, 2.963948364257812e+02, 2.958274230957031e+02, 2.952449645996094e+02, 2.946498107910156e+02, 2.940442504882812e+02, 2.934307250976562e+02, 2.928116455078125e+02, 2.921893920898438e+02, 2.915664978027344e+02, 2.909453735351562e+02, 2.903284606933594e+02, 2.897182312011719e+02, 2.891170349121094e+02, 2.885272827148438e+02, 2.879512939453125e+02, 2.873913269042969e+02] +TSoi[3].T=[2.938308715820312e+02, 2.936341247558594e+02, 2.934310302734375e+02, 2.932223205566406e+02, 2.930088806152344e+02, 2.927915344238281e+02, 2.925711364746094e+02, 2.923485412597656e+02, 2.921246643066406e+02, 2.919003601074219e+02, 2.91676513671875e+02, 2.914540100097656e+02, 2.912337341308594e+02, 2.910165405273438e+02, 2.908033142089844e+02, 2.905948486328125e+02, 2.903919982910156e+02, 2.901955261230469e+02, 2.900062866210938e+02, 2.89824951171875e+02, 2.896522521972656e+02, 2.894888610839844e+02, 2.8933544921875e+02, 2.89192626953125e+02, 2.890609130859375e+02, 2.889408569335938e+02, 2.888329467773438e+02, 2.887375793457031e+02, 2.886551208496094e+02, 2.885859375e+02, 2.885302734375e+02, 2.884883422851562e+02, 2.884603271484375e+02, 2.884463500976562e+02, 2.884464111328125e+02, 2.884605712890625e+02, 2.884887390136719e+02, 2.885308227539062e+02, 2.88586669921875e+02, 2.88656005859375e+02, 2.887386169433594e+02, 2.888341369628906e+02, 2.889421997070312e+02, 2.890623779296875e+02, 2.891942138671875e+02, 2.893371887207031e+02, 2.894906921386719e+02, 2.896541748046875e+02, 2.898269958496094e+02, 2.900084228515625e+02, 2.901977844238281e+02, 2.90394287109375e+02, 2.905972290039062e+02, 2.908057556152344e+02, 2.9101904296875e+02, 2.912362670898438e+02, 2.914565734863281e+02, 2.916791076660156e+02, 2.919029541015625e+02, 2.921272583007812e+02, 2.923511352539062e+02, 2.925736999511719e+02, 2.927940673828125e+02, 2.930113830566406e+02, 2.932247619628906e+02, 2.934334106445312e+02, 2.936364440917969e+02, 2.938331298828125e+02, 2.940226440429688e+02, 2.942042541503906e+02, 2.943772583007812e+02, 2.945409545898438e+02, 2.946947021484375e+02, 2.94837890625e+02, 2.94969970703125e+02, 2.950904235839844e+02, 2.9519873046875e+02, 2.952945251464844e+02, 2.953774108886719e+02, 2.954470520019531e+02, 2.95503173828125e+02, 2.955455627441406e+02, 2.955740356445312e+02, 2.955885009765625e+02, 2.955888671875e+02, 2.955751953125e+02, 2.955474853515625e+02, 2.95505859375e+02, 2.954504699707031e+02, 2.95381591796875e+02, 2.952994079589844e+02, 2.952043151855469e+02, 2.950966491699219e+02, 2.949768676757812e+02, 2.948453979492188e+02, 2.947028198242188e+02, 2.945496215820312e+02, 2.94386474609375e+02, 2.942139587402344e+02, 2.940328063964844e+02, 2.938436889648438e+02] +TSoi[4].T=[2.928852844238281e+02, 2.929018249511719e+02, 2.929148864746094e+02, 2.929244079589844e+02, 2.929303588867188e+02, 2.929327087402344e+02, 2.929314575195312e+02, 2.929266052246094e+02, 2.929181518554688e+02, 2.929061584472656e+02, 2.928906860351562e+02, 2.928717346191406e+02, 2.928494567871094e+02, 2.928238525390625e+02, 2.927951049804688e+02, 2.927632751464844e+02, 2.92728515625e+02, 2.926909484863281e+02, 2.926507263183594e+02, 2.926080322265625e+02, 2.9256298828125e+02, 2.925158081054688e+02, 2.924666442871094e+02, 2.924157104492188e+02, 2.923632202148438e+02, 2.923093566894531e+02, 2.922543640136719e+02, 2.921984252929688e+02, 2.921417541503906e+02, 2.920846252441406e+02, 2.920272216796875e+02, 2.919697570800781e+02, 2.919125061035156e+02, 2.918556823730469e+02, 2.917994689941406e+02, 2.917441101074219e+02, 2.916898498535156e+02, 2.916368713378906e+02, 2.915853881835938e+02, 2.915356140136719e+02, 2.914877624511719e+02, 2.914419555664062e+02, 2.913984375e+02, 2.913573608398438e+02, 2.913189086914062e+02, 2.912831726074219e+02, 2.912503662109375e+02, 2.912205505371094e+02, 2.911938781738281e+02, 2.911704711914062e+02, 2.91150390625e+02, 2.911337280273438e+02, 2.911205444335938e+02, 2.911109008789062e+02, 2.911048583984375e+02, 2.911023864746094e+02, 2.91103515625e+02, 2.911082458496094e+02, 2.911165771484375e+02, 2.911284484863281e+02, 2.911438293457031e+02, 2.911626586914062e+02, 2.911848449707031e+02, 2.912102966308594e+02, 2.912389526367188e+02, 2.912706909179688e+02, 2.913053588867188e+02, 2.913428344726562e+02, 2.913829650878906e+02, 2.914255981445312e+02, 2.914705505371094e+02, 2.915176696777344e+02, 2.915667724609375e+02, 2.916176452636719e+02, 2.916700744628906e+02, 2.917239074707031e+02, 2.917788696289062e+02, 2.918347778320312e+02, 2.918914184570312e+02, 2.919485473632812e+02, 2.920059509277344e+02, 2.920633850097656e+02, 2.921206665039062e+02, 2.921775207519531e+02, 2.922337646484375e+02, 2.922891235351562e+02, 2.923434448242188e+02, 2.923964538574219e+02, 2.92447998046875e+02, 2.924978332519531e+02, 2.925457763671875e+02, 2.925916137695312e+02, 2.926352233886719e+02, 2.926763610839844e+02, 2.927149353027344e+02, 2.927507629394531e+02, 2.9278369140625e+02, 2.928135986328125e+02, 2.928403625488281e+02, 2.928638916015625e+02, 2.928840637207031e+02] diff --git a/Buildings/Resources/ReferenceResults/Dymola/Buildings_BoundaryConditions_GroundTemperature_Examples_UndisturbedSoilTemperature.txt b/Buildings/Resources/ReferenceResults/Dymola/Buildings_BoundaryConditions_GroundTemperature_Examples_UndisturbedSoilTemperature.txt new file mode 100644 index 00000000000..c4b9b99d461 --- /dev/null +++ b/Buildings/Resources/ReferenceResults/Dymola/Buildings_BoundaryConditions_GroundTemperature_Examples_UndisturbedSoilTemperature.txt @@ -0,0 +1,12 @@ +last-generated=2021-04-26 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 3.1536e+07] +TSoi[1].T=[2.736154479980469e+02, 2.733474731445312e+02, 2.731223754882812e+02, 2.729410705566406e+02, 2.728042602539062e+02, 2.727124938964844e+02, 2.726661071777344e+02, 2.726653137207031e+02, 2.727100830078125e+02, 2.728002624511719e+02, 2.729354858398438e+02, 2.73115234375e+02, 2.733387756347656e+02, 2.736052551269531e+02, 2.739136047363281e+02, 2.742626037597656e+02, 2.746509094238281e+02, 2.750769653320312e+02, 2.755390625e+02, 2.760354614257812e+02, 2.765641174316406e+02, 2.771230163574219e+02, 2.777099304199219e+02, 2.78322509765625e+02, 2.789584045410156e+02, 2.796150512695312e+02, 2.802898864746094e+02, 2.809802856445312e+02, 2.816834411621094e+02, 2.823966674804688e+02, 2.831171264648438e+02, 2.838419494628906e+02, 2.845682983398438e+02, 2.852933349609375e+02, 2.860141906738281e+02, 2.867279968261719e+02, 2.874319458007812e+02, 2.88123291015625e+02, 2.887992858886719e+02, 2.89457275390625e+02, 2.900946350097656e+02, 2.907089233398438e+02, 2.912976379394531e+02, 2.918585205078125e+02, 2.923893432617188e+02, 2.928880004882812e+02, 2.933525390625e+02, 2.937810974121094e+02, 2.941720275878906e+02, 2.945237731933594e+02, 2.948349609375e+02, 2.951043395996094e+02, 2.953308410644531e+02, 2.955136108398438e+02, 2.956519165039062e+02, 2.957451782226562e+02, 2.957930908203125e+02, 2.9579541015625e+02, 2.957521362304688e+02, 2.956634521484375e+02, 2.955297241210938e+02, 2.953514404296875e+02, 2.951293334960938e+02, 2.948642578125e+02, 2.945572814941406e+02, 2.942095947265625e+02, 2.938226013183594e+02, 2.933977661132812e+02, 2.929368286132812e+02, 2.924415588378906e+02, 2.919139099121094e+02, 2.913559875488281e+02, 2.907699890136719e+02, 2.90158203125e+02, 2.895230407714844e+02, 2.888670349121094e+02, 2.881927490234375e+02, 2.875028686523438e+02, 2.86800048828125e+02, 2.860871276855469e+02, 2.853668823242188e+02, 2.846421508789062e+02, 2.83915771484375e+02, 2.83190673828125e+02, 2.824696350097656e+02, 2.817555541992188e+02, 2.810512390136719e+02, 2.803594360351562e+02, 2.79682861328125e+02, 2.790242614746094e+02, 2.783861389160156e+02, 2.777710571289062e+02, 2.771814575195312e+02, 2.766195983886719e+02, 2.760877685546875e+02, 2.755880126953125e+02, 2.75122314453125e+02, 2.746925354003906e+02, 2.743003234863281e+02, 2.739472351074219e+02, 2.736347045898438e+02] +TSoi[2].T=[2.815229797363281e+02, 2.812024841308594e+02, 2.808939208984375e+02, 2.805985107421875e+02, 2.803174133300781e+02, 2.800517578125e+02, 2.798025512695312e+02, 2.795707702636719e+02, 2.793573913574219e+02, 2.791632080078125e+02, 2.789889831542969e+02, 2.788354187011719e+02, 2.78703125e+02, 2.785925903320312e+02, 2.785043029785156e+02, 2.784385681152344e+02, 2.783956604003906e+02, 2.78375732421875e+02, 2.7837890625e+02, 2.784051208496094e+02, 2.784542846679688e+02, 2.785262451171875e+02, 2.786206665039062e+02, 2.787371826171875e+02, 2.788753662109375e+02, 2.7903466796875e+02, 2.792144165039062e+02, 2.794139404296875e+02, 2.796324768066406e+02, 2.798691101074219e+02, 2.801229248046875e+02, 2.803929138183594e+02, 2.806780395507812e+02, 2.809771728515625e+02, 2.812891235351562e+02, 2.816126708984375e+02, 2.81946533203125e+02, 2.822893676757812e+02, 2.82639892578125e+02, 2.829966430664062e+02, 2.833582763671875e+02, 2.837233581542969e+02, 2.840904235839844e+02, 2.844580383300781e+02, 2.848247375488281e+02, 2.851891174316406e+02, 2.855497131347656e+02, 2.859050903320312e+02, 2.862538757324219e+02, 2.865946960449219e+02, 2.869262084960938e+02, 2.872470703125e+02, 2.875560302734375e+02, 2.878518981933594e+02, 2.881334838867188e+02, 2.883996887207031e+02, 2.886494750976562e+02, 2.888818054199219e+02, 2.890958251953125e+02, 2.892906799316406e+02, 2.89465576171875e+02, 2.896198425292969e+02, 2.897528381347656e+02, 2.898641052246094e+02, 2.89953125e+02, 2.900196228027344e+02, 2.900632934570312e+02, 2.90083984375e+02, 2.900815734863281e+02, 2.900561218261719e+02, 2.900076904296875e+02, 2.899364929199219e+02, 2.898428344726562e+02, 2.897270202636719e+02, 2.895895385742188e+02, 2.894309387207031e+02, 2.892518615722656e+02, 2.89052978515625e+02, 2.888350830078125e+02, 2.885990295410156e+02, 2.883457641601562e+02, 2.880762939453125e+02, 2.877916564941406e+02, 2.874929504394531e+02, 2.871814270019531e+02, 2.868582458496094e+02, 2.865247192382812e+02, 2.8618212890625e+02, 2.858318481445312e+02, 2.854752807617188e+02, 2.8511376953125e+02, 2.847488098144531e+02, 2.843817749023438e+02, 2.8401416015625e+02, 2.836473999023438e+02, 2.832829284667969e+02, 2.829221801757812e+02, 2.825665893554688e+02, 2.822175598144531e+02, 2.8187646484375e+02, 2.815446472167969e+02] +TSoi[3].T=[2.85315673828125e+02, 2.852001342773438e+02, 2.850807495117188e+02, 2.849580078125e+02, 2.848324279785156e+02, 2.847044372558594e+02, 2.845745849609375e+02, 2.844433898925781e+02, 2.843113403320312e+02, 2.841789855957031e+02, 2.840468139648438e+02, 2.839153747558594e+02, 2.837851867675781e+02, 2.8365673828125e+02, 2.835305480957031e+02, 2.834071044921875e+02, 2.832869262695312e+02, 2.831704406738281e+02, 2.830581359863281e+02, 2.829504699707031e+02, 2.828478393554688e+02, 2.827506408691406e+02, 2.826593017578125e+02, 2.825741271972656e+02, 2.824954833984375e+02, 2.824236755371094e+02, 2.823590087890625e+02, 2.823016967773438e+02, 2.822519836425781e+02, 2.822100830078125e+02, 2.821761169433594e+02, 2.821502685546875e+02, 2.821325988769531e+02, 2.821231994628906e+02, 2.821221313476562e+02, 2.821293334960938e+02, 2.821448364257812e+02, 2.821685485839844e+02, 2.822003784179688e+02, 2.82240234375e+02, 2.822879028320312e+02, 2.823432312011719e+02, 2.82406005859375e+02, 2.824759826660156e+02, 2.825528564453125e+02, 2.826363220214844e+02, 2.827261047363281e+02, 2.828218078613281e+02, 2.829230346679688e+02, 2.830294189453125e+02, 2.831405639648438e+02, 2.832559814453125e+02, 2.83375244140625e+02, 2.834978637695312e+02, 2.836233825683594e+02, 2.837512817382812e+02, 2.838810729980469e+02, 2.840122375488281e+02, 2.841442565917969e+02, 2.84276611328125e+02, 2.844088134765625e+02, 2.84540283203125e+02, 2.846705322265625e+02, 2.847990417480469e+02, 2.849253234863281e+02, 2.850488586425781e+02, 2.851691589355469e+02, 2.852857666015625e+02, 2.85398193359375e+02, 2.855060424804688e+02, 2.856088256835938e+02, 2.857062072753906e+02, 2.857977600097656e+02, 2.858831481933594e+02, 2.859620056152344e+02, 2.860340270996094e+02, 2.860989685058594e+02, 2.861565246582031e+02, 2.862064819335938e+02, 2.862486572265625e+02, 2.862828674316406e+02, 2.863090209960938e+02, 2.863269348144531e+02, 2.863366088867188e+02, 2.863379821777344e+02, 2.863310241699219e+02, 2.863158264160156e+02, 2.862923583984375e+02, 2.862608032226562e+02, 2.862212219238281e+02, 2.861737976074219e+02, 2.861187133789062e+02, 2.860561828613281e+02, 2.859864501953125e+02, 2.859098205566406e+02, 2.858265380859375e+02, 2.857369689941406e+02, 2.856414794921875e+02, 2.855404052734375e+02, 2.854341735839844e+02, 2.853232116699219e+02] +TSoi[4].T=[2.847405700683594e+02, 2.847506103515625e+02, 2.847586059570312e+02, 2.847645263671875e+02, 2.84768310546875e+02, 2.847699890136719e+02, 2.847695617675781e+02, 2.847669677734375e+02, 2.847622680664062e+02, 2.847554931640625e+02, 2.847466430664062e+02, 2.847357482910156e+02, 2.847228393554688e+02, 2.847080078125e+02, 2.846912841796875e+02, 2.846727600097656e+02, 2.846524658203125e+02, 2.846305236816406e+02, 2.846069946289062e+02, 2.845820007324219e+02, 2.845556030273438e+02, 2.845279235839844e+02, 2.844990539550781e+02, 2.844691467285156e+02, 2.844382934570312e+02, 2.844066162109375e+02, 2.843742370605469e+02, 2.843412780761719e+02, 2.843079223632812e+02, 2.842742309570312e+02, 2.842403564453125e+02, 2.842064514160156e+02, 2.841726379394531e+02, 2.841390686035156e+02, 2.841058349609375e+02, 2.840730895996094e+02, 2.840409851074219e+02, 2.840096130371094e+02, 2.839790954589844e+02, 2.839495849609375e+02, 2.839211730957031e+02, 2.838939819335938e+02, 2.838681030273438e+02, 2.838436584472656e+02, 2.838207397460938e+02, 2.837994384765625e+02, 2.837798156738281e+02, 2.837619934082031e+02, 2.837460021972656e+02, 2.837319030761719e+02, 2.837197875976562e+02, 2.837096862792969e+02, 2.837016296386719e+02, 2.836956481933594e+02, 2.836917724609375e+02, 2.836900329589844e+02, 2.836903991699219e+02, 2.836929016113281e+02, 2.836975402832031e+02, 2.837042541503906e+02, 2.837130432128906e+02, 2.83723876953125e+02, 2.837366943359375e+02, 2.8375146484375e+02, 2.837681274414062e+02, 2.837865905761719e+02, 2.838068237304688e+02, 2.838287048339844e+02, 2.838522033691406e+02, 2.838771667480469e+02, 2.839035034179688e+02, 2.8393115234375e+02, 2.839599609375e+02, 2.839898376464844e+02, 2.840206604003906e+02, 2.840523376464844e+02, 2.840846862792969e+02, 2.841176147460938e+02, 2.841509704589844e+02, 2.841846618652344e+02, 2.84218505859375e+02, 2.842524108886719e+02, 2.842862243652344e+02, 2.8431982421875e+02, 2.843530883789062e+02, 2.843858337402344e+02, 2.8441796875e+02, 2.844493713378906e+02, 2.844799194335938e+02, 2.845094604492188e+02, 2.845379028320312e+02, 2.845651550292969e+02, 2.84591064453125e+02, 2.846155395507812e+02, 2.846385192871094e+02, 2.846598815917969e+02, 2.846795654296875e+02, 2.846974487304688e+02, 2.847135009765625e+02, 2.847276611328125e+02, 2.847398376464844e+02] diff --git a/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_ASHRAE_G36_PR1_Generic_SetPoints_Validation_ZoneStatusDuplicator.txt b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_ASHRAE_G36_PR1_Generic_SetPoints_Validation_ZoneStatusDuplicator.txt new file mode 100644 index 00000000000..9f39f58ce45 --- /dev/null +++ b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_ASHRAE_G36_PR1_Generic_SetPoints_Validation_ZoneStatusDuplicator.txt @@ -0,0 +1,13 @@ +last-generated=2021-06-25 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +zonStaDup.yTZon[1, 1]=[1e+00, 1e+00] +zonStaDup.yTZon[1, 2]=[2e+00, 2e+00] +zonStaDup.yTZon[2, 3]=[3e+00, 3e+00] +zonStaDup.yTZon[2, 4]=[4e+00, 4e+00] +zonStaDup.yTZon[2, 5]=[5e+00, 5e+00] diff --git a/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_CDL_Routing_Validation_BooleanVectorFilter.txt b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_CDL_Routing_Validation_BooleanVectorFilter.txt new file mode 100644 index 00000000000..2499499edfa --- /dev/null +++ b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_CDL_Routing_Validation_BooleanVectorFilter.txt @@ -0,0 +1,13 @@ +last-generated=2021-06-25 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +booFil.u[1]=[1e+00, 1e+00] +booFil.u[2]=[1e+00, 1e+00] +booFil.u[3]=[0e+00, 0e+00] +booFil.y[1]=[1e+00, 1e+00] +booFil.y[2]=[0e+00, 0e+00] diff --git a/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_CDL_Routing_Validation_BooleanVectorReplicator.txt b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_CDL_Routing_Validation_BooleanVectorReplicator.txt new file mode 100644 index 00000000000..9d13cdae4c3 --- /dev/null +++ b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_CDL_Routing_Validation_BooleanVectorReplicator.txt @@ -0,0 +1,12 @@ +last-generated=2021-06-25 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +booRep.u[1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booRep.y[1, 1]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booRep.y[2, 2]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +booRep.y[3, 2]=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999940396364401e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.999880792728245e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_CDL_Routing_Validation_IntegerVectorFilter.txt b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_CDL_Routing_Validation_IntegerVectorFilter.txt new file mode 100644 index 00000000000..cb46360ea9c --- /dev/null +++ b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_CDL_Routing_Validation_IntegerVectorFilter.txt @@ -0,0 +1,13 @@ +last-generated=2021-06-25 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +intFil.u[1]=[1e+00, 1e+00] +intFil.u[2]=[2e+00, 2e+00] +intFil.u[3]=[3e+00, 3e+00] +intFil.y[1]=[1e+00, 1e+00] +intFil.y[2]=[3e+00, 3e+00] diff --git a/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_CDL_Routing_Validation_IntegerVectorReplicator.txt b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_CDL_Routing_Validation_IntegerVectorReplicator.txt new file mode 100644 index 00000000000..21a991457e3 --- /dev/null +++ b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_CDL_Routing_Validation_IntegerVectorReplicator.txt @@ -0,0 +1,13 @@ +last-generated=2021-06-25 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +ram[1].y=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980225988213903e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] +reaToInt[1].y=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1.00000596036356e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.000011920727176e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +intRep.y[1, 1]=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1.00000596036356e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.000011920727176e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +intRep.y[2, 2]=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1.00000596036356e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.000011920727176e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] +intRep.y[3, 2]=[-2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -2e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, -1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1.00000596036356e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2e+00, 2.000011920727176e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00, 3e+00] diff --git a/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_CDL_Routing_Validation_RealVectorFilter.txt b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_CDL_Routing_Validation_RealVectorFilter.txt new file mode 100644 index 00000000000..5d9c676d300 --- /dev/null +++ b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_CDL_Routing_Validation_RealVectorFilter.txt @@ -0,0 +1,13 @@ +last-generated=2021-06-25 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +reaFil.u[1]=[1e+00, 1e+00] +reaFil.u[2]=[2e+00, 2e+00] +reaFil.u[3]=[3e+00, 3e+00] +reaFil.y[1]=[1e+00, 1e+00] +reaFil.y[2]=[3e+00, 3e+00] diff --git a/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_CDL_Routing_Validation_RealVectorReplicator.txt b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_CDL_Routing_Validation_RealVectorReplicator.txt new file mode 100644 index 00000000000..5ec9c5a39e3 --- /dev/null +++ b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_CDL_Routing_Validation_RealVectorReplicator.txt @@ -0,0 +1,12 @@ +last-generated=2021-06-25 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +reaRep.u[1]=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980225988213903e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] +reaRep.y[1, 1]=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980225988213903e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] +reaRep.y[2, 2]=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980225988213903e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] +reaRep.y[3, 2]=[-2e+00, -1.95000004656613e+00, -1.89999997392297e+00, -1.850000020489104e+00, -1.799999947845941e+00, -1.750000003725286e+00, -1.700000040978201e+00, -1.649999977648259e+00, -1.600000014901188e+00, -1.549999970197624e+00, -1.500000007450558e+00, -1.450000044703492e+00, -1.399999962747137e+00, -1.350000000000071e+00, -1.299999955296507e+00, -1.250000029802234e+00, -1.200000029802376e+00, -1.149999985098812e+00, -1.100000059604538e+00, -1.049999940395391e+00, -1.000000014901117e+00, -9.499999552966142e-01, -8.999999701976954e-01, -8.500000447034214e-01, -7.999999850989188e-01, -7.5e-01, -6.999999403954973e-01, -6.500000298024822e-01, -6.000000298023045e-01, -5.49999970197802e-01, -5.000000596044671e-01, -4.5e-01, -3.999999701976776e-01, -3.500000596046447e-01, -3.00000029802269e-01, -2.499999701977221e-01, -2.000000745055929e-01, -1.500000298022514e-01, -9.999997764831148e-02, -4.999992921961749e-02, -2.980225988213903e-08, 5.00000186264114e-02, 1.000000670550787e-01, 1.499999701977309e-01, 2.000000149011257e-01, 2.500000596044672e-01, 2.999999701976777e-01, 3.499999999999999e-01, 4.000000596044848e-01, 4.499999403954973e-01, 5e-01, 5.500000596037922e-01, 6.000001192075843e-01, 6.500001192075844e-01, 6.999998807926291e-01, 7.499999403964213e-01, 7.999999999998582e-01, 8.50000059604005e-01, 9.000000596036498e-01, 9.500001192069446e-01, 9.99999880792842e-01, 1.049999880791989e+00, 1.100000000000426e+00, 1.149999999999574e+00, 1.200000119208011e+00, 1.250000119207158e+00, 1.299999821188411e+00, 1.349999940396847e+00, 1.399999940395995e+00, 1.450000059604787e+00, 1.500000059603579e+00, 1.550000059602726e+00, 1.599999880793268e+00, 1.649999880792416e+00, 1.700000000000853e+00, 1.75e+00, 1.799999999999147e+00, 1.850000119207584e+00, 1.900000119206732e+00, 1.949999940397274e+00, 1.999999940396421e+00, 2.049999940395213e+00, 2.099999940394715e+00, 2.150000178812442e+00, 2.200000178811589e+00, 2.249999880792842e+00, 2.299999880791989e+00, 2.349999880791137e+00, 2.400000119208863e+00, 2.450000119208011e+00, 2.500000119207158e+00, 2.549999821188411e+00, 2.599999821187558e+00, 2.650000059605285e+00, 2.700000059604787e+00, 2.750000059603579e+00, 2.800000059602726e+00, 2.849999761583978e+00, 2.900000000001705e+00, 2.950000000000852e+00, 3e+00] diff --git a/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_RadiantSystems_Cooling_Validation_HighMassSupplyTemperature_TRoomRelHum.txt b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_RadiantSystems_Cooling_Validation_HighMassSupplyTemperature_TRoomRelHum.txt new file mode 100644 index 00000000000..880e5400006 --- /dev/null +++ b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_RadiantSystems_Cooling_Validation_HighMassSupplyTemperature_TRoomRelHum.txt @@ -0,0 +1,15 @@ +last-generated=2021-09-07 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 7.2e+03] +conCoo.TRooSet=[2.971499938964844e+02, 2.971499938964844e+02] +conCoo.TRoo=[2.911499938964844e+02, 2.915499877929688e+02, 2.919500122070312e+02, 2.923500061035156e+02, 2.9275e+02, 2.931499938964844e+02, 2.935499877929688e+02, 2.939500122070312e+02, 2.943500061035156e+02, 2.9475e+02, 2.951499938964844e+02, 2.955499877929688e+02, 2.959500122070312e+02, 2.963500061035156e+02, 2.9675e+02, 2.971499938964844e+02, 2.975499877929688e+02, 2.979500122070312e+02, 2.983500061035156e+02, 2.9875e+02, 2.991499938964844e+02, 2.995499877929688e+02, 2.999500122070312e+02, 3.003500061035156e+02, 3.0075e+02, 3.011499938964844e+02, 3.0075e+02, 3.003500061035156e+02, 2.999500122070312e+02, 2.995499877929688e+02, 2.991499938964844e+02, 2.9875e+02, 2.983500061035156e+02, 2.979500122070312e+02, 2.975499877929688e+02, 2.971499938964844e+02, 2.9675e+02, 2.963500061035156e+02, 2.959500122070312e+02, 2.955499877929688e+02, 2.951499938964844e+02, 2.9475e+02, 2.943500061035156e+02, 2.939500122070312e+02, 2.935499877929688e+02, 2.931499938964844e+02, 2.9275e+02, 2.923500061035156e+02, 2.919500122070312e+02, 2.915499877929688e+02, 2.911499938964844e+02, 2.915499877929688e+02, 2.919500122070312e+02, 2.923500061035156e+02, 2.9275e+02, 2.931499938964844e+02, 2.935499877929688e+02, 2.939500122070312e+02, 2.943500061035156e+02, 2.9475e+02, 2.951499938964844e+02, 2.955499877929688e+02, 2.959500122070312e+02, 2.963500061035156e+02, 2.9675e+02, 2.971499938964844e+02, 2.975499877929688e+02, 2.979500122070312e+02, 2.983500061035156e+02, 2.9875e+02, 2.991499938964844e+02, 2.995499877929688e+02, 2.999500122070312e+02, 3.003500061035156e+02, 3.0075e+02, 3.011499938964844e+02, 3.0075e+02, 3.003500061035156e+02, 2.999500122070312e+02, 2.995499877929688e+02, 2.991499938964844e+02, 2.9875e+02, 2.983500061035156e+02, 2.979500122070312e+02, 2.975499877929688e+02, 2.971499938964844e+02, 2.9675e+02, 2.963500061035156e+02, 2.959500122070312e+02, 2.955499877929688e+02, 2.951499938964844e+02, 2.9475e+02, 2.943500061035156e+02, 2.939500122070312e+02, 2.935499877929688e+02, 2.931499938964844e+02, 2.9275e+02, 2.923500061035156e+02, 2.919500122070312e+02, 2.915499877929688e+02, 2.911499938964844e+02] +conCoo.TSupSet=[2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.923500061035156e+02, 2.911499938964844e+02, 2.911499938964844e+02, 2.911499938964844e+02, 2.911499938964844e+02, 2.911499938964844e+02, 2.911499938964844e+02, 2.911499938964844e+02, 2.911499938964844e+02, 2.911499938964844e+02, 2.911499938964844e+02, 2.911499938964844e+02, 2.911499938964844e+02, 2.911499938964844e+02, 2.911499938964844e+02, 2.911499938964844e+02, 2.911499938964844e+02, 2.911499938964844e+02, 2.923500061035156e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.958134155273438e+02, 2.962066040039062e+02, 2.965997924804688e+02, 2.969929809570312e+02, 2.973861694335938e+02, 2.977793579101562e+02, 2.981725463867188e+02, 2.985657043457031e+02, 2.989588928222656e+02, 2.993520812988281e+02, 2.989588928222656e+02, 2.985657043457031e+02, 2.981725463867188e+02, 2.977793579101562e+02, 2.973861694335938e+02, 2.969929809570312e+02, 2.965997924804688e+02, 2.962066040039062e+02, 2.958134155273438e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02, 2.971499938964844e+02] +dewPoi.TDewPoi=[2.806177673339844e+02, 2.80986572265625e+02, 2.813551635742188e+02, 2.817235717773438e+02, 2.820918273925781e+02, 2.824598693847656e+02, 2.828277587890625e+02, 2.831954650878906e+02, 2.835630493164062e+02, 2.839304504394531e+02, 2.842976989746094e+02, 2.84664794921875e+02, 2.8503173828125e+02, 2.853985595703125e+02, 2.857652587890625e+02, 2.861318054199219e+02, 2.864982299804688e+02, 2.868645324707031e+02, 2.872307434082031e+02, 2.875968017578125e+02, 2.879627685546875e+02, 2.8832861328125e+02, 2.886943664550781e+02, 2.890599975585938e+02, 2.894255676269531e+02, 2.89791015625e+02, 2.894255676269531e+02, 2.890599975585938e+02, 2.886943664550781e+02, 2.8832861328125e+02, 2.879627685546875e+02, 2.875968017578125e+02, 2.872307434082031e+02, 2.868645324707031e+02, 2.864982299804688e+02, 2.861318054199219e+02, 2.857652587890625e+02, 2.853985595703125e+02, 2.8503173828125e+02, 2.84664794921875e+02, 2.842976989746094e+02, 2.839304504394531e+02, 2.835630493164062e+02, 2.831954650878906e+02, 2.828277587890625e+02, 2.824598693847656e+02, 2.820918273925781e+02, 2.817235717773438e+02, 2.813551635742188e+02, 2.80986572265625e+02, 2.806177673339844e+02, 2.899124145507812e+02, 2.903060913085938e+02, 2.9069970703125e+02, 2.9109326171875e+02, 2.9148681640625e+02, 2.918802795410156e+02, 2.922737426757812e+02, 2.926671447753906e+02, 2.930605163574219e+02, 2.93453857421875e+02, 2.9384716796875e+02, 2.942404479980469e+02, 2.946336975097656e+02, 2.950269470214844e+02, 2.954201965332031e+02, 2.958134155273438e+02, 2.962066040039062e+02, 2.965997924804688e+02, 2.969929809570312e+02, 2.973861694335938e+02, 2.977793579101562e+02, 2.981725463867188e+02, 2.985657043457031e+02, 2.989588928222656e+02, 2.993520812988281e+02, 2.989588928222656e+02, 2.985657043457031e+02, 2.981725463867188e+02, 2.977793579101562e+02, 2.973861694335938e+02, 2.969929809570312e+02, 2.965997924804688e+02, 2.962066040039062e+02, 2.958134155273438e+02, 2.954201965332031e+02, 2.950269470214844e+02, 2.946336975097656e+02, 2.942404479980469e+02, 2.9384716796875e+02, 2.93453857421875e+02, 2.930605163574219e+02, 2.926671447753906e+02, 2.922737426757812e+02, 2.918802795410156e+02, 2.9148681640625e+02, 2.9109326171875e+02, 2.9069970703125e+02, 2.903060913085938e+02, 2.899124145507812e+02, 2.895186767578125e+02] +conCoo.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 8.00000011920929e-01, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 8.00000011920929e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 8.00000011920929e-01, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 8.00000011920929e-01, 2.273736754432321e-13, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +conCoo.yPum=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +conCoo.on=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_RadiantSystems_Heating_Validation_HighMassSupplyTemperature_TRoom.txt b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_RadiantSystems_Heating_Validation_HighMassSupplyTemperature_TRoom.txt new file mode 100644 index 00000000000..e10ab0ae693 --- /dev/null +++ b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Controls_OBC_RadiantSystems_Heating_Validation_HighMassSupplyTemperature_TRoom.txt @@ -0,0 +1,14 @@ +last-generated=2021-08-26 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 7.2e+03] +conHea.TRooSet=[2.931499938964844e+02, 2.931499938964844e+02] +conHea.TRoo=[2.911499938964844e+02, 2.912300109863281e+02, 2.913099975585938e+02, 2.913900146484375e+02, 2.914700012207031e+02, 2.915499877929688e+02, 2.916300048828125e+02, 2.917099914550781e+02, 2.917900085449219e+02, 2.918699951171875e+02, 2.919500122070312e+02, 2.920299987792969e+02, 2.921099853515625e+02, 2.921900024414062e+02, 2.922699890136719e+02, 2.923500061035156e+02, 2.924299926757812e+02, 2.92510009765625e+02, 2.925899963378906e+02, 2.926700134277344e+02, 2.9275e+02, 2.928299865722656e+02, 2.929100036621094e+02, 2.92989990234375e+02, 2.930700073242188e+02, 2.931499938964844e+02, 2.932300109863281e+02, 2.933099975585938e+02, 2.933900146484375e+02, 2.934700012207031e+02, 2.935499877929688e+02, 2.936300048828125e+02, 2.937099914550781e+02, 2.937900085449219e+02, 2.938699951171875e+02, 2.939500122070312e+02, 2.940299987792969e+02, 2.941099853515625e+02, 2.941900024414062e+02, 2.942699890136719e+02, 2.943500061035156e+02, 2.944299926757812e+02, 2.94510009765625e+02, 2.945899963378906e+02, 2.946700134277344e+02, 2.9475e+02, 2.948299865722656e+02, 2.949100036621094e+02, 2.94989990234375e+02, 2.950700073242188e+02, 2.951499938964844e+02, 2.950700073242188e+02, 2.94989990234375e+02, 2.949100036621094e+02, 2.948299865722656e+02, 2.9475e+02, 2.946700134277344e+02, 2.945899963378906e+02, 2.94510009765625e+02, 2.944299926757812e+02, 2.943500061035156e+02, 2.942699890136719e+02, 2.941900024414062e+02, 2.941099853515625e+02, 2.940299987792969e+02, 2.939500122070312e+02, 2.938699951171875e+02, 2.937900085449219e+02, 2.937099914550781e+02, 2.936300048828125e+02, 2.935499877929688e+02, 2.934700012207031e+02, 2.933900146484375e+02, 2.933099975585938e+02, 2.932300109863281e+02, 2.931499938964844e+02, 2.930700073242188e+02, 2.92989990234375e+02, 2.929100036621094e+02, 2.928299865722656e+02, 2.9275e+02, 2.926700134277344e+02, 2.925899963378906e+02, 2.92510009765625e+02, 2.924299926757812e+02, 2.923500061035156e+02, 2.922699890136719e+02, 2.921900024414062e+02, 2.921099853515625e+02, 2.920299987792969e+02, 2.919500122070312e+02, 2.918699951171875e+02, 2.917900085449219e+02, 2.917099914550781e+02, 2.916300048828125e+02, 2.915499877929688e+02, 2.914700012207031e+02, 2.913900146484375e+02, 2.913099975585938e+02, 2.912300109863281e+02, 2.911499938964844e+02] +conHea.TSupSet=[3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.0275e+02, 3.011499938964844e+02, 2.995499877929688e+02, 2.979500122070312e+02, 2.963500061035156e+02, 2.9475e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.9475e+02, 2.963500061035156e+02, 2.979500122070312e+02, 2.995499877929688e+02, 3.011499938964844e+02, 3.0275e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02] +conHea.y=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 9.599999785423279e-01, 8.00000011920929e-01, 6.399999856948853e-01, 4.799999892711639e-01, 3.199999928474426e-01, 1.599999964237213e-01, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1.599999964237213e-01, 3.199999928474426e-01, 4.799999892711639e-01, 6.399999856948853e-01, 8.00000011920929e-01, 9.599999785423279e-01, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +conHea.yPum=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] +conHea.on=[1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] diff --git a/Buildings/Resources/ReferenceResults/Dymola/Buildings_Fluid_Boilers_Examples_BoilerTable.txt b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Fluid_Boilers_Examples_BoilerTable.txt new file mode 100644 index 00000000000..f31b8a1b1be --- /dev/null +++ b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Fluid_Boilers_Examples_BoilerTable.txt @@ -0,0 +1,15 @@ +last-generated=2021-11-10 +statistics-simulation= +{ + "linear": "0, 0", + "nonlinear": " ", + "number of continuous time states": "1", + "numerical Jacobians": "0" +} +time=[0e+00, 6e+03] +boi1.sta_a.T=[3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.026499938964844e+02, 3.021499938964844e+02, 3.016499938964844e+02, 3.011499938964844e+02, 3.006499938964844e+02, 3.001499938964844e+02, 2.996499938964844e+02, 2.991499938964844e+02, 2.986499938964844e+02, 2.981499938964844e+02, 2.976499938964844e+02, 2.971499938964844e+02, 2.966499938964844e+02, 2.961499938964844e+02, 2.956499938964844e+02, 2.951499938964844e+02, 2.946499938964844e+02, 2.941499938964844e+02, 2.936499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.931499938964844e+02, 2.941499938964844e+02, 2.951499938964844e+02, 2.961499938964844e+02, 2.971499938964844e+02, 2.981499938964844e+02, 2.991499938964844e+02, 3.001499938964844e+02, 3.011499938964844e+02, 3.021499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02, 3.031499938964844e+02] +boi1.sta_b.T=[2.931499938964844e+02, 3.0017578125e+02, 3.023959045410156e+02, 3.032913513183594e+02, 3.038213806152344e+02, 3.042504272460938e+02, 3.046515808105469e+02, 3.050449523925781e+02, 3.054358520507812e+02, 3.058257446289062e+02, 3.062149658203125e+02, 3.066036682128906e+02, 3.0699169921875e+02, 3.073790283203125e+02, 3.077655944824219e+02, 3.081513061523438e+02, 3.085361328125e+02, 3.089199829101562e+02, 3.093027648925781e+02, 3.096845092773438e+02, 3.100650634765625e+02, 3.104443664550781e+02, 3.108223876953125e+02, 3.111990356445312e+02, 3.115741882324219e+02, 3.119478454589844e+02, 3.123198547363281e+02, 3.126902160644531e+02, 3.130588073730469e+02, 3.13425537109375e+02, 3.137903747558594e+02, 3.05696533203125e+02, 3.034649353027344e+02, 3.028492736816406e+02, 3.026794128417969e+02, 3.026325988769531e+02, 3.026197509765625e+02, 3.026161193847656e+02, 3.026151123046875e+02, 3.026148071289062e+02, 3.0261474609375e+02, 3.109130859375e+02, 3.132013244628906e+02, 3.138324584960938e+02, 3.140064697265625e+02, 3.140543823242188e+02, 3.140677185058594e+02, 3.140714416503906e+02, 3.140724182128906e+02, 3.140727233886719e+02, 3.140728149414062e+02, 3.138675231933594e+02, 3.134703979492188e+02, 3.130206604003906e+02, 3.125554809570312e+02, 3.120860900878906e+02, 3.11615234375e+02, 3.111436767578125e+02, 3.106716613769531e+02, 3.101991577148438e+02, 3.097261352539062e+02, 3.092526245117188e+02, 3.087785949707031e+02, 3.083040466308594e+02, 3.078290710449219e+02, 3.073535766601562e+02, 3.068776550292969e+02, 3.064013061523438e+02, 3.059245300292969e+02, 3.054473876953125e+02, 3.04969970703125e+02, 3.047013549804688e+02, 3.046277160644531e+02, 3.046070556640625e+02, 3.046016235351562e+02, 3.046000671386719e+02, 3.045995788574219e+02, 3.045994262695312e+02, 3.045993957519531e+02, 3.045993957519531e+02, 3.04599365234375e+02, 3.050172424316406e+02, 3.058236389160156e+02, 3.06736328125e+02, 3.076766967773438e+02, 3.08623291015625e+02, 3.095702819824219e+02, 3.105159301757812e+02, 3.114599914550781e+02, 3.124024658203125e+02, 3.133432006835938e+02, 3.138717041015625e+02, 3.140174865722656e+02, 3.140574951171875e+02, 3.140685424804688e+02, 3.140716857910156e+02, 3.140725708007812e+02, 3.140728149414062e+02, 3.140728759765625e+02, 3.140728759765625e+02, 3.140728454589844e+02] +boi2.sta_b.T=[3.026146850585938e+02, 3.0300537109375e+02, 3.033961791992188e+02, 3.037870178222656e+02, 3.041777954101562e+02, 3.045684509277344e+02, 3.049588928222656e+02, 3.053490600585938e+02, 3.057388305664062e+02, 3.06128173828125e+02, 3.065169982910156e+02, 3.069052124023438e+02, 3.07292724609375e+02, 3.076795043945312e+02, 3.080654296875e+02, 3.084504699707031e+02, 3.088345336914062e+02, 3.092176208496094e+02, 3.09599609375e+02, 3.099804382324219e+02, 3.103600463867188e+02, 3.107383728027344e+02, 3.111153564453125e+02, 3.114908752441406e+02, 3.118648681640625e+02, 3.122372741699219e+02, 3.126080322265625e+02, 3.1297705078125e+02, 3.1334423828125e+02, 3.137095336914062e+02, 3.140728454589844e+02, 3.026146850585938e+02, 3.026146850585938e+02, 3.026146850585938e+02, 3.026146850585938e+02, 3.026146850585938e+02, 3.026146850585938e+02, 3.026146850585938e+02, 3.026146850585938e+02, 3.026146850585938e+02, 3.026146850585938e+02, 3.140728454589844e+02, 3.140728454589844e+02, 3.140728454589844e+02, 3.140728454589844e+02, 3.140728454589844e+02, 3.140728454589844e+02, 3.140728454589844e+02, 3.140728454589844e+02, 3.140728454589844e+02, 3.140728454589844e+02, 3.136034545898438e+02, 3.131335144042969e+02, 3.126631164550781e+02, 3.121922607421875e+02, 3.117210388183594e+02, 3.112494201660156e+02, 3.107774658203125e+02, 3.103050537109375e+02, 3.098321533203125e+02, 3.093587341308594e+02, 3.088847961425781e+02, 3.08410400390625e+02, 3.079354858398438e+02, 3.074601135253906e+02, 3.069842834472656e+02, 3.065080261230469e+02, 3.060312805175781e+02, 3.055541076660156e+02, 3.050767517089844e+02, 3.04599365234375e+02, 3.04599365234375e+02, 3.04599365234375e+02, 3.04599365234375e+02, 3.04599365234375e+02, 3.04599365234375e+02, 3.04599365234375e+02, 3.04599365234375e+02, 3.04599365234375e+02, 3.04599365234375e+02, 3.04599365234375e+02, 3.055541076660156e+02, 3.065080261230469e+02, 3.074601135253906e+02, 3.08410400390625e+02, 3.093587341308594e+02, 3.103050537109375e+02, 3.112494201660156e+02, 3.121922607421875e+02, 3.131335144042969e+02, 3.140728454589844e+02, 3.140728454589844e+02, 3.140728454589844e+02, 3.140728454589844e+02, 3.140728454589844e+02, 3.140728454589844e+02, 3.140728454589844e+02, 3.140728454589844e+02, 3.140728454589844e+02, 3.140728454589844e+02, 3.140728454589844e+02] +boi1.eta=[9.779921770095825e-01, 9.781351685523987e-01, 9.782695770263672e-01, 9.78344202041626e-01, 9.783507585525513e-01, 9.782896637916565e-01, 9.781612753868103e-01, 9.779658317565918e-01, 9.777037501335144e-01, 9.77375328540802e-01, 9.769809246063232e-01, 9.765208959579468e-01, 9.759956002235413e-01, 9.754053354263306e-01, 9.747504591941833e-01, 9.740312695503235e-01, 9.732519388198853e-01, 9.724160432815552e-01, 9.715231657028198e-01, 9.705729484558105e-01, 9.695649147033691e-01, 9.684988260269165e-01, 9.673740863800049e-01, 9.661905169487e-01, 9.64947521686554e-01, 9.636448621749878e-01, 9.622820615768433e-01, 9.608587622642517e-01, 9.593745470046997e-01, 9.578289985656738e-01, 9.562218189239502e-01, 9.779921770095825e-01, 9.779921770095825e-01, 9.779921770095825e-01, 9.779921770095825e-01, 9.779921770095825e-01, 9.779921770095825e-01, 9.779921770095825e-01, 9.779921770095825e-01, 9.779921770095825e-01, 9.779921770095825e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.572852253913879e-01, 9.583059549331665e-01, 9.592869877815247e-01, 9.602313637733459e-01, 9.611421227455139e-01, 9.620223641395569e-01, 9.628744721412659e-01, 9.636879563331604e-01, 9.644586443901062e-01, 9.651871919631958e-01, 9.658742547035217e-01, 9.665205478668213e-01, 9.67126727104187e-01, 9.676934480667114e-01, 9.682214856147766e-01, 9.687114357948303e-01, 9.691640138626099e-01, 9.695799350738525e-01, 9.699794054031372e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.695799350738525e-01, 9.687114357948303e-01, 9.676934480667114e-01, 9.665205478668213e-01, 9.651871919631958e-01, 9.636879563331604e-01, 9.620223641395569e-01, 9.602313637733459e-01, 9.583059549331665e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01] +boi2.eta=[9.779921770095825e-01, 9.781351685523987e-01, 9.782695770263672e-01, 9.78344202041626e-01, 9.783507585525513e-01, 9.782896637916565e-01, 9.781612753868103e-01, 9.779658317565918e-01, 9.777037501335144e-01, 9.77375328540802e-01, 9.769809246063232e-01, 9.765208959579468e-01, 9.759956002235413e-01, 9.754053354263306e-01, 9.747504591941833e-01, 9.740312695503235e-01, 9.732519388198853e-01, 9.724160432815552e-01, 9.715231657028198e-01, 9.705729484558105e-01, 9.695649147033691e-01, 9.684988260269165e-01, 9.673740863800049e-01, 9.661905169487e-01, 9.64947521686554e-01, 9.636448621749878e-01, 9.622820615768433e-01, 9.608587622642517e-01, 9.593745470046997e-01, 9.578289985656738e-01, 9.562218189239502e-01, 9.779921770095825e-01, 9.779921770095825e-01, 9.779921770095825e-01, 9.779921770095825e-01, 9.779921770095825e-01, 9.779921770095825e-01, 9.779921770095825e-01, 9.779921770095825e-01, 9.779921770095825e-01, 9.779921770095825e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.572852253913879e-01, 9.583059549331665e-01, 9.592869877815247e-01, 9.602313637733459e-01, 9.611421227455139e-01, 9.620223641395569e-01, 9.628744721412659e-01, 9.636879563331604e-01, 9.644586443901062e-01, 9.651871919631958e-01, 9.658742547035217e-01, 9.665205478668213e-01, 9.67126727104187e-01, 9.676934480667114e-01, 9.682214856147766e-01, 9.687114357948303e-01, 9.691640138626099e-01, 9.695799350738525e-01, 9.699794054031372e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.703789353370667e-01, 9.695799350738525e-01, 9.687114357948303e-01, 9.676934480667114e-01, 9.665205478668213e-01, 9.651871919631958e-01, 9.636879563331604e-01, 9.620223641395569e-01, 9.602313637733459e-01, 9.583059549331665e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01, 9.562218189239502e-01] +y.y=[0e+00, 3.333333507180214e-02, 6.666667014360428e-02, 1.000000014901161e-01, 1.333333402872086e-01, 1.666666716337204e-01, 2.000000029802322e-01, 2.333333343267441e-01, 2.666666805744171e-01, 3.00000011920929e-01, 3.333333432674408e-01, 3.666666746139526e-01, 4.000000059604645e-01, 4.333333373069763e-01, 4.666666686534882e-01, 5e-01, 5.333333611488342e-01, 5.666666626930238e-01, 6.000000238418579e-01, 6.333333253860474e-01, 6.666666865348816e-01, 6.99999988079071e-01, 7.333333492279053e-01, 7.666666507720947e-01, 8.00000011920929e-01, 8.333333134651184e-01, 8.666666746139526e-01, 8.999999761581421e-01, 9.333333373069764e-01, 9.666666388511657e-01, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00] diff --git a/Buildings/Resources/ReferenceResults/Dymola/Buildings_Fluid_Boilers_Validation_BoilerTableEfficiencyCurves.txt b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Fluid_Boilers_Validation_BoilerTableEfficiencyCurves.txt new file mode 100644 index 00000000000..756662dc33b --- /dev/null +++ b/Buildings/Resources/ReferenceResults/Dymola/Buildings_Fluid_Boilers_Validation_BoilerTableEfficiencyCurves.txt @@ -0,0 +1,11 @@ +last-generated=2021-11-03 +statistics-simulation= +{ + "linear": "0, 0, 0", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 3.6e+03] +boi1.eta=[9.91087019443512e-01, 9.905664324760437e-01, 9.900169372558594e-01, 9.894397854804993e-01, 9.888360500335693e-01, 9.882069230079651e-01, 9.87553596496582e-01, 9.868771433830261e-01, 9.861788749694824e-01, 9.854598641395569e-01, 9.847212433815002e-01, 9.839642643928528e-01, 9.831861853599548e-01, 9.823827743530273e-01, 9.815520048141479e-01, 9.806917905807495e-01, 9.798002243041992e-01, 9.788751602172852e-01, 9.779146313667297e-01, 9.769166707992554e-01, 9.758791327476501e-01, 9.748001098632812e-01, 9.736775159835815e-01, 9.725120067596436e-01, 9.713069796562195e-01, 9.700640439987183e-01, 9.687846899032593e-01, 9.674705266952515e-01, 9.661231637001038e-01, 9.647441506385803e-01, 9.633350968360901e-01, 9.618975520133972e-01, 9.604330658912659e-01, 9.58943247795105e-01, 9.574375152587891e-01, 9.559318423271179e-01, 9.544200301170349e-01, 9.528953433036804e-01, 9.513506889343262e-01, 9.497792720794678e-01, 9.481741189956665e-01, 9.465283155441284e-01, 9.448349475860596e-01, 9.43087100982666e-01, 9.41277801990509e-01, 9.394152164459229e-01, 9.375425577163696e-01, 9.35664176940918e-01, 9.337812066078186e-01, 9.318947792053223e-01, 9.300061464309692e-01, 9.281164407730103e-01, 9.262269139289856e-01, 9.243386387825012e-01, 9.224528074264526e-01, 9.205706715583801e-01, 9.186928272247314e-01, 9.168173670768738e-01, 9.14944052696228e-01, 9.130731225013733e-01, 9.112048149108887e-01, 9.093393683433533e-01, 9.074770212173462e-01, 9.056180119514465e-01, 9.037624597549438e-01, 9.019107222557068e-01, 9.000630378723145e-01, 8.982316851615906e-01, 8.965269923210144e-01, 8.949675559997559e-01, 8.935436606407166e-01, 8.922456502914429e-01, 8.910637497901917e-01, 8.899884223937988e-01, 8.890098333358765e-01, 8.881184458732605e-01, 8.873044848442078e-01, 8.865582346916199e-01, 8.858696222305298e-01, 8.852253556251526e-01, 8.846226334571838e-01, 8.840612173080444e-01, 8.835410475730896e-01, 8.830618858337402e-01, 8.826237320899963e-01, 8.822263479232788e-01, 8.818696141242981e-01, 8.815534114837646e-01, 8.812776207923889e-01, 8.810418248176575e-01, 8.808275461196899e-01, 8.806249499320984e-01, 8.80436897277832e-01, 8.802664875984192e-01, 8.801165223121643e-01, 8.799901008605957e-01, 8.798900842666626e-01, 8.798195123672485e-01, 8.797813653945923e-01, 8.797785043716431e-01, 8.798139095306396e-01] +boi2.eta=[9.87984299659729e-01, 9.875997304916382e-01, 9.871761798858643e-01, 9.867107272148132e-01, 9.862004518508911e-01, 9.856424927711487e-01, 9.850340485572815e-01, 9.843721985816956e-01, 9.836540222167969e-01, 9.828766584396362e-01, 9.820372462272644e-01, 9.81132984161377e-01, 9.801773428916931e-01, 9.791840314865112e-01, 9.781537055969238e-01, 9.77087140083313e-01, 9.759848713874817e-01, 9.748477339744568e-01, 9.73676323890686e-01, 9.724713563919067e-01, 9.71233606338501e-01, 9.699636101722717e-01, 9.686622023582458e-01, 9.673363566398621e-01, 9.65992271900177e-01, 9.646276235580444e-01, 9.632401466369629e-01, 9.618276357650757e-01, 9.603877067565918e-01, 9.589182138442993e-01, 9.574168920516968e-01, 9.558813571929932e-01, 9.543094635009766e-01, 9.526989459991455e-01, 9.510453939437866e-01, 9.493448138237e-01, 9.476006627082825e-01, 9.45816695690155e-01, 9.439966082572937e-01, 9.421440958976746e-01, 9.402629733085632e-01, 9.383569359779358e-01, 9.364297389984131e-01, 9.344850778579712e-01, 9.32526707649231e-01, 9.305333495140076e-01, 9.284401535987854e-01, 9.262629151344299e-01, 9.240230321884155e-01, 9.217419624328613e-01, 9.194411039352417e-01, 9.171419143676758e-01, 9.148658514022827e-01, 9.126343727111816e-01, 9.104688167572021e-01, 9.083907008171082e-01, 9.064157605171204e-01, 9.045258760452271e-01, 9.027184247970581e-01, 9.009948372840881e-01, 8.993567228317261e-01, 8.978055715560913e-01, 8.963428735733032e-01, 8.949701189994812e-01, 8.936887979507446e-01, 8.925004601478577e-01, 8.914065957069397e-01, 8.904046416282654e-01, 8.894571661949158e-01, 8.885549902915955e-01, 8.876981139183044e-01, 8.868866562843323e-01, 8.86120617389679e-01, 8.854000568389893e-01, 8.84725034236908e-01, 8.840955495834351e-01, 8.835117220878601e-01, 8.829734921455383e-01, 8.824788928031921e-01, 8.820000886917114e-01, 8.8153076171875e-01, 8.810737729072571e-01, 8.806321024894714e-01, 8.802087306976318e-01, 8.798064589500427e-01, 8.794283270835876e-01, 8.790772557258606e-01, 8.787561655044556e-01, 8.784680366516113e-01, 8.782156109809875e-01, 8.779901266098022e-01, 8.777852654457092e-01, 8.776017427444458e-01, 8.774402737617493e-01, 8.773015737533569e-01, 8.771864175796509e-01, 8.770954608917236e-01, 8.770294785499573e-01, 8.769891858100891e-01, 8.769752979278564e-01, 8.769884705543518e-01] +boi3.eta=[9.694589376449585e-01, 9.690321087837219e-01, 9.685683846473694e-01, 9.680671095848083e-01, 9.675275683403015e-01, 9.669490456581116e-01, 9.66330885887146e-01, 9.656724333763123e-01, 9.649730324745178e-01, 9.642319083213806e-01, 9.634484648704529e-01, 9.626219868659973e-01, 9.617612957954407e-01, 9.608722329139709e-01, 9.599516987800598e-01, 9.589966535568237e-01, 9.580040574073792e-01, 9.569708108901978e-01, 9.558939337730408e-01, 9.547703862190247e-01, 9.535970091819763e-01, 9.52370822429657e-01, 9.510887861251831e-01, 9.497663378715515e-01, 9.48423445224762e-01, 9.470601081848145e-01, 9.45676326751709e-01, 9.442721009254456e-01, 9.428474307060242e-01, 9.414021968841553e-01, 9.399365186691284e-01, 9.384502768516541e-01, 9.36943531036377e-01, 9.354162812232971e-01, 9.338692426681519e-01, 9.323050379753113e-01, 9.3072509765625e-01, 9.291307330131531e-01, 9.275233745574951e-01, 9.259042739868164e-01, 9.242748618125916e-01, 9.226364493370056e-01, 9.209904074668884e-01, 9.193381071090698e-01, 9.176808595657349e-01, 9.15993869304657e-01, 9.142082333564758e-01, 9.123409390449524e-01, 9.104149341583252e-01, 9.084531664848328e-01, 9.064785242080688e-01, 9.045140743255615e-01, 9.025827646255493e-01, 9.007074236869812e-01, 8.9891117811203e-01, 8.972168564796448e-01, 8.95645797252655e-01, 8.941991329193115e-01, 8.928675651550293e-01, 8.916419148445129e-01, 8.905130624771118e-01, 8.894718885421753e-01, 8.885092735290527e-01, 8.87615978717804e-01, 8.867830038070679e-01, 8.860011100769043e-01, 8.852611780166626e-01, 8.845527768135071e-01, 8.838585019111633e-01, 8.831773400306702e-01, 8.825122714042664e-01, 8.818659782409668e-01, 8.812413811683655e-01, 8.806411623954773e-01, 8.80068302154541e-01, 8.795254230499268e-01, 8.790155053138733e-01, 8.785412311553955e-01, 8.781039118766785e-01, 8.776843547821045e-01, 8.772773146629333e-01, 8.768845796585083e-01, 8.765076994895935e-01, 8.761484026908875e-01, 8.758082389831543e-01, 8.754889965057373e-01, 8.751922249794006e-01, 8.74919593334198e-01, 8.746727108955383e-01, 8.744533061981201e-01, 8.742583990097046e-01, 8.740854859352112e-01, 8.739346861839294e-01, 8.738061785697937e-01, 8.73699963092804e-01, 8.736161589622498e-01, 8.735549449920654e-01, 8.73516321182251e-01, 8.735004067420959e-01, 8.735073804855347e-01, 8.735371828079224e-01] diff --git a/Buildings/Resources/Scripts/Dymola/BoundaryConditions/GroundTemperature/Examples/CorrectedConvection.mos b/Buildings/Resources/Scripts/Dymola/BoundaryConditions/GroundTemperature/Examples/CorrectedConvection.mos new file mode 100644 index 00000000000..ac8644d0b97 --- /dev/null +++ b/Buildings/Resources/Scripts/Dymola/BoundaryConditions/GroundTemperature/Examples/CorrectedConvection.mos @@ -0,0 +1,11 @@ +simulateModel("Buildings.BoundaryConditions.GroundTemperature.Examples.CorrectedConvection", tolerance=1e-6, stopTime=31536000, method="Cvode", resultFile="CorrectedConvection"); +createPlot(id=1, + position={16, 11, 592, 372}, + y={"TSoi[1].T", "TSoi[2].T", "TSoi[3].T", "TSoi[4].T"}, + range={0.0, 380.0, -5.0, 25.0}, + grid=true, + legends={"Tsur", "Tdep2m", "Tdep5m", "Tdep9m"}, + colors={{28,108,200}, {238,46,47}, {0,140,72}, {217,67,180}}, + timeUnit="d", + displayUnits={"degC", "degC", "degC", "degC"}); + diff --git a/Buildings/Resources/Scripts/Dymola/BoundaryConditions/GroundTemperature/Examples/CorrectedNFactors.mos b/Buildings/Resources/Scripts/Dymola/BoundaryConditions/GroundTemperature/Examples/CorrectedNFactors.mos new file mode 100644 index 00000000000..f7969a92fa2 --- /dev/null +++ b/Buildings/Resources/Scripts/Dymola/BoundaryConditions/GroundTemperature/Examples/CorrectedNFactors.mos @@ -0,0 +1,11 @@ +simulateModel("Buildings.BoundaryConditions.GroundTemperature.Examples.CorrectedNFactors", tolerance=1e-6, stopTime=31536000, method="Cvode", resultFile="CorrectedNFactors"); +createPlot(id=1, + position={16, 11, 592, 372}, + y={"TSoi[1].T", "TSoi[2].T", "TSoi[3].T", "TSoi[4].T"}, + range={0.0, 380.0, -5.0, 25.0}, + grid=true, + legends={"Tsur", "Tdep2m", "Tdep5m", "Tdep9m"}, + colors={{28,108,200}, {238,46,47}, {0,140,72}, {217,67,180}}, + timeUnit="d", + displayUnits={"degC", "degC", "degC", "degC"}); + diff --git a/Buildings/Resources/Scripts/Dymola/BoundaryConditions/GroundTemperature/Examples/UndisturbedSoilTemperature.mos b/Buildings/Resources/Scripts/Dymola/BoundaryConditions/GroundTemperature/Examples/UndisturbedSoilTemperature.mos new file mode 100644 index 00000000000..0f2cb1bb4c6 --- /dev/null +++ b/Buildings/Resources/Scripts/Dymola/BoundaryConditions/GroundTemperature/Examples/UndisturbedSoilTemperature.mos @@ -0,0 +1,11 @@ +simulateModel("Buildings.BoundaryConditions.GroundTemperature.Examples.UndisturbedSoilTemperature", tolerance=1e-6, stopTime=31536000, method="Cvode", resultFile="UndisturbedSoilTemperature"); +createPlot(id=1, + position={16, 11, 592, 372}, + y={"TSoi[1].T", "TSoi[2].T", "TSoi[3].T", "TSoi[4].T"}, + range={0.0, 380.0, -5.0, 25.0}, + grid=true, + legends={"Tsur", "Tdep2m", "Tdep5m", "Tdep9m"}, + colors={{28,108,200}, {238,46,47}, {0,140,72}, {217,67,180}}, + timeUnit="d", + displayUnits={"degC", "degC", "degC", "degC"}); + diff --git a/Buildings/Resources/Scripts/Dymola/Controls/OBC/ASHRAE/G36_PR1/Generic/SetPoints/Validation/ZoneStatusDuplicator.mos b/Buildings/Resources/Scripts/Dymola/Controls/OBC/ASHRAE/G36_PR1/Generic/SetPoints/Validation/ZoneStatusDuplicator.mos new file mode 100644 index 00000000000..900f186d31f --- /dev/null +++ b/Buildings/Resources/Scripts/Dymola/Controls/OBC/ASHRAE/G36_PR1/Generic/SetPoints/Validation/ZoneStatusDuplicator.mos @@ -0,0 +1,9 @@ +simulateModel("Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.Validation.ZoneStatusDuplicator", method="Cvode", stopTime=1, tolerance=1e-06, resultFile="ZoneStatusDuplicator"); +createPlot(id=1, + position={7, 55, 536, 240}, + y={"zonStaDup.yTZon[1, 1]", "zonStaDup.yTZon[1, 2]", "zonStaDup.yTZon[2, 3]", "zonStaDup.yTZon[2, 4]", "zonStaDup.yTZon[2, 5]"}, + range={0.0, 1.0, -273.0, -268.0}, + grid=true, + colors={{28,108,200}, {238,46,47}, {0,140,72}, {217,67,180}, {0,0,0}}, + timeUnit="s", + displayUnits={"degC", "degC", "degC", "degC", "degC"}); diff --git a/Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanVectorFilter.mos b/Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanVectorFilter.mos new file mode 100644 index 00000000000..9f653bf2374 --- /dev/null +++ b/Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanVectorFilter.mos @@ -0,0 +1,3 @@ +simulateModel("Buildings.Controls.OBC.CDL.Routing.Validation.BooleanVectorFilter", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="BooleanVectorFilter"); +createPlot(id=1, position={533, 39, 592, 372}, y={"booFil.u[1]", "booFil.u[2]", "booFil.u[3]"}, range={0.0, 1.0, -0.5, 1.5}, grid=true, colors={{28,108,200}, {28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=1, position={533, 39, 592, 372}, y={"booFil.y[1]", "booFil.y[2]"}, range={0.0, 1.0, -0.5, 1.5}, grid=true, subPlot=102, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); diff --git a/Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanVectorReplicator.mos b/Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanVectorReplicator.mos new file mode 100644 index 00000000000..068fd77c742 --- /dev/null +++ b/Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/BooleanVectorReplicator.mos @@ -0,0 +1,5 @@ +simulateModel("Buildings.Controls.OBC.CDL.Routing.Validation.BooleanVectorReplicator", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="BooleanVectorReplicator"); +createPlot(id=1, position={15, 10, 500, 420}, y={"booRep.u[1]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=1, y={"booRep.y[1, 1]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=2, y={"booRep.y[2, 2]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=3, y={"booRep.y[3, 2]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerVectorFilter.mos b/Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerVectorFilter.mos new file mode 100644 index 00000000000..4097d46a5df --- /dev/null +++ b/Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerVectorFilter.mos @@ -0,0 +1,3 @@ +simulateModel("Buildings.Controls.OBC.CDL.Routing.Validation.IntegerVectorFilter", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="IntegerVectorFilter"); +createPlot(id=1, position={144, 30, 592, 372}, y={"intFil.u[1]", "intFil.u[2]", "intFil.u[3]"}, range={0.0, 1.0, 0.0, 4.0}, grid=true, colors={{28,108,200}, {28,108,200}, {28,108,200}}, timeUnit="s"); +createPlot(id=1, position={144, 30, 592, 372}, y={"intFil.y[1]", "intFil.y[2]"}, range={0.0, 1.0, 0.0, 4.0}, grid=true, subPlot=102, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); diff --git a/Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerVectorReplicator.mos b/Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerVectorReplicator.mos new file mode 100644 index 00000000000..f7aaa8cf35a --- /dev/null +++ b/Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/IntegerVectorReplicator.mos @@ -0,0 +1,6 @@ +simulateModel("Buildings.Controls.OBC.CDL.Routing.Validation.IntegerVectorReplicator", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="IntegerVectorReplicator"); +createPlot(id=1, position={15, 10, 500, 750}, subPlot=1, y={"ram[1].y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=1, position={15, 10, 500, 750}, subPlot=2, y={"reaToInt[1].y"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=1, y={"intRep.y[1, 1]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=2, y={"intRep.y[2, 2]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=3, y={"intRep.y[3, 2]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealVectorFilter.mos b/Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealVectorFilter.mos new file mode 100644 index 00000000000..da30d93682c --- /dev/null +++ b/Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealVectorFilter.mos @@ -0,0 +1,3 @@ +simulateModel("Buildings.Controls.OBC.CDL.Routing.Validation.RealVectorFilter", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="RealVectorFilter"); +createPlot(id=1, position={35, 35, 592, 372}, y={"reaFil.u[1]", "reaFil.u[2]", "reaFil.u[3]"}, range={0.0, 1.0, 0.0, 4.0}, grid=true, colors={{28,108,200}, {238,46,47}, {0,140,72}}, timeUnit="s"); +createPlot(id=1, position={35, 35, 592, 372}, y={"reaFil.y[1]", "reaFil.y[2]"}, range={0.0, 1.0, 0.0, 4.0}, grid=true, subPlot=102, colors={{28,108,200}, {238,46,47}}, timeUnit="s"); diff --git a/Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealVectorReplicator.mos b/Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealVectorReplicator.mos new file mode 100644 index 00000000000..bff02353404 --- /dev/null +++ b/Buildings/Resources/Scripts/Dymola/Controls/OBC/CDL/Routing/Validation/RealVectorReplicator.mos @@ -0,0 +1,5 @@ +simulateModel("Buildings.Controls.OBC.CDL.Routing.Validation.RealVectorReplicator", method="Cvode", tolerance=1e-6, stopTime=1.0, resultFile="RealVectorReplicator"); +createPlot(id=1, position={15, 10, 500, 420}, y={"reaRep.u[1]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=1, y={"reaRep.y[1, 1]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=2, y={"reaRep.y[2, 2]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); +createPlot(id=2, position={530, 10, 500, 750}, subPlot=3, y={"reaRep.y[3, 2]"}, range={0.0, 1.0, -3.5, 3.5}, grid=true, colors={{28,108,200}}); diff --git a/Buildings/Resources/Scripts/Dymola/Controls/OBC/RadiantSystems/Cooling/Validation/HighMassSupplyTemperature_TRoomRelHum.mos b/Buildings/Resources/Scripts/Dymola/Controls/OBC/RadiantSystems/Cooling/Validation/HighMassSupplyTemperature_TRoomRelHum.mos new file mode 100644 index 00000000000..4ff21ec877d --- /dev/null +++ b/Buildings/Resources/Scripts/Dymola/Controls/OBC/RadiantSystems/Cooling/Validation/HighMassSupplyTemperature_TRoomRelHum.mos @@ -0,0 +1,5 @@ +simulateModel("Buildings.Controls.OBC.RadiantSystems.Cooling.Validation.HighMassSupplyTemperature_TRoomRelHum", stopTime=7200, method="Cvode", tolerance=1e-06, resultFile="HighMassSupplyTemperature_TRoomRelHum"); +createPlot(id=1, position={15, 15, 592, 909}, y={"conCoo.TRooSet", "conCoo.TRoo"}, range={0.0, 8000.0, 15.0, 30.0}, grid=true, colors={{28,108,200}, {238,46,47}}, timeUnit="s", displayUnits={"degC", "degC"}); +createPlot(id=1, position={15, 15, 592, 909}, y={"conCoo.TSupSet", "dewPoi.TDewPoi"}, range={0.0, 8000.0, 0.0, 30.0}, grid=true, subPlot=102, colors={{28,108,200}, {238,46,47}}, timeUnit="s", displayUnits={"degC", "degC"}); +createPlot(id=1, position={15, 15, 592, 909}, y={"conCoo.y", "conCoo.yPum"}, range={0.0, 8000.0, -1.0, 2.0}, grid=true, subPlot=103, colors={{28,108,200}, {238,46,47}}, timeUnit="s", displayUnits={"1", "1"}); +createPlot(id=1, position={15, 15, 592, 909}, y={"conCoo.on"}, range={0.0, 8000.0, -1.0, 2.0}, grid=true, subPlot=104, colors={{28,108,200}}, timeUnit="s"); diff --git a/Buildings/Resources/Scripts/Dymola/Controls/OBC/RadiantSystems/Heating/Validation/HighMassSupplyTemperature_TRoom.mos b/Buildings/Resources/Scripts/Dymola/Controls/OBC/RadiantSystems/Heating/Validation/HighMassSupplyTemperature_TRoom.mos new file mode 100644 index 00000000000..e629b652a55 --- /dev/null +++ b/Buildings/Resources/Scripts/Dymola/Controls/OBC/RadiantSystems/Heating/Validation/HighMassSupplyTemperature_TRoom.mos @@ -0,0 +1,5 @@ +simulateModel("Buildings.Controls.OBC.RadiantSystems.Heating.Validation.HighMassSupplyTemperature_TRoom", stopTime=7200, method="Cvode", tolerance=1e-06, resultFile="HighMassSupplyTemperature_TRoom"); +createPlot(id=1, position={15, 15, 592, 909}, y={"conHea.TRooSet", "conHea.TRoo"}, range={0.0, 8000.0, 15.0, 25.0}, grid=true, colors={{28,108,200}, {238,46,47}}, timeUnit="s", displayUnits={"degC", "degC"}); +createPlot(id=1, position={15, 15, 592, 909}, y={"conHea.TSupSet"}, range={0.0, 8000.0, -20.0, 40.0}, grid=true, subPlot=102, colors={{28,108,200}}, timeUnit="s", displayUnits={"degC"}); +createPlot(id=1, position={15, 15, 592, 909}, y={"conHea.y", "conHea.yPum"}, range={0.0, 8000.0, -1.0, 2.0}, grid=true, subPlot=103, colors={{28,108,200}, {238,46,47}}, timeUnit="s", displayUnits={"1", "1"}); +createPlot(id=1, position={15, 15, 592, 909}, y={"conHea.on"}, range={0.0, 8000.0, -1.0, 2.0}, grid=true, subPlot=104, colors={{28,108,200}}, timeUnit="s"); diff --git a/Buildings/Resources/Scripts/Dymola/Fluid/Boilers/Examples/BoilerTable.mos b/Buildings/Resources/Scripts/Dymola/Fluid/Boilers/Examples/BoilerTable.mos new file mode 100644 index 00000000000..0eff8f047eb --- /dev/null +++ b/Buildings/Resources/Scripts/Dymola/Fluid/Boilers/Examples/BoilerTable.mos @@ -0,0 +1,40 @@ +simulateModel("Buildings.Fluid.Boilers.Examples.BoilerTable", + stopTime=6000, + tolerance=1e-06, + method="dassl", + resultFile="BoilerTable"); +removePlots(true); +createPlot(id=1, + position={55, 55, 717, 485}, + y={"boi1.sta_a.T", "boi1.sta_b.T", "boi2.sta_b.T"}, + range={0.0, 6000.0, 10.0, 50.0}, + grid=true, + filename="BoilerTable.mat", + legends={"Inlet", "Outlet (Transient)", "Outlet (Steady-State)"}, + colors={{28,108,200}, {238,46,47}, {0,140,72}}, + timeUnit="s", + displayUnits={"degC", "degC", "degC"}); +createPlot(id=1, + position={50, 5, 721, 544}, + y={"boi1.eta", "boi2.eta"}, + range={0.0, 6000.0, 0.9, 1.0}, + autoscale=false, + grid=true, + legends={"Efficiency (Transient)", "Efficiency (Steady-State)"}, + subPlot=102, + colors={{238,46,47}, + {0,140,72}}, + timeUnit="s", + displayUnits={"1", "1"}); +createPlot(id=1, + position={55, 55, 717, 485}, + y={"y.y"}, + range={0.0, 6000.0, -0.5, 1.5}, + grid=true, + filename="BoilerTable.mat", + legends={"Firing Rate"}, + subPlot=103, + colors={{28,108,200}}, + timeUnit="s", + displayUnits={"1"}); + diff --git a/Buildings/Resources/Scripts/Dymola/Fluid/Boilers/Validation/BoilerTableEfficiencyCurves.mos b/Buildings/Resources/Scripts/Dymola/Fluid/Boilers/Validation/BoilerTableEfficiencyCurves.mos new file mode 100644 index 00000000000..83c65694995 --- /dev/null +++ b/Buildings/Resources/Scripts/Dymola/Fluid/Boilers/Validation/BoilerTableEfficiencyCurves.mos @@ -0,0 +1,23 @@ +simulateModel("Buildings.Fluid.Boilers.Validation.BoilerTableEfficiencyCurves", + tolerance=1e-6, + stopTime=3600, + method="CVode", + resultFile="BoilerTableEfficiencyCurves"); +removePlots(true); +createPlot(id=1, + position={15, 10, 717, 370}, + x="TIn.y", + bottomTitleType=2, + bottomTitle="Inlet Temperature [degC]", + y={"boi1.eta", "boi2.eta", "boi3.eta"}, + leftTitleType=2, + leftTitle="Efficiency [1]", + range={290.0, 345.0, 0.86, 1.0}, + erase=false, + grid=true, + filename="BoilerTableEfficiencyCurves.mat", + legends={"y=5%", "y=50%", "y=100%"}, + colors={{28,108,200}, {238,46,47}, {0,140,72}}, + timeUnit="degC", + displayUnits={"1", "1", "1"}); + diff --git a/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.BoundaryConditions.GroundTemperature.Examples.CorrectedConvection.mos b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.BoundaryConditions.GroundTemperature.Examples.CorrectedConvection.mos new file mode 100644 index 00000000000..d1396605a0d --- /dev/null +++ b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.BoundaryConditions.GroundTemperature.Examples.CorrectedConvection.mos @@ -0,0 +1,7 @@ +compareVars := + { + "TSoi[1].T", + "TSoi[2].T", + "TSoi[3].T", + "TSoi[4].T" + }; diff --git a/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.BoundaryConditions.GroundTemperature.Examples.CorrectedNFactors.mos b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.BoundaryConditions.GroundTemperature.Examples.CorrectedNFactors.mos new file mode 100644 index 00000000000..d1396605a0d --- /dev/null +++ b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.BoundaryConditions.GroundTemperature.Examples.CorrectedNFactors.mos @@ -0,0 +1,7 @@ +compareVars := + { + "TSoi[1].T", + "TSoi[2].T", + "TSoi[3].T", + "TSoi[4].T" + }; diff --git a/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.BoundaryConditions.GroundTemperature.Examples.UndisturbedSoilTemperature.mos b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.BoundaryConditions.GroundTemperature.Examples.UndisturbedSoilTemperature.mos new file mode 100644 index 00000000000..d1396605a0d --- /dev/null +++ b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.BoundaryConditions.GroundTemperature.Examples.UndisturbedSoilTemperature.mos @@ -0,0 +1,7 @@ +compareVars := + { + "TSoi[1].T", + "TSoi[2].T", + "TSoi[3].T", + "TSoi[4].T" + }; diff --git a/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.Validation.ZoneStatusDuplicator.mos b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.Validation.ZoneStatusDuplicator.mos new file mode 100644 index 00000000000..198d20b5b45 --- /dev/null +++ b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.Validation.ZoneStatusDuplicator.mos @@ -0,0 +1,8 @@ +compareVars := + { + "zonStaDup.yTZon[1, 1]", + "zonStaDup.yTZon[1, 2]", + "zonStaDup.yTZon[2, 3]", + "zonStaDup.yTZon[2, 4]", + "zonStaDup.yTZon[2, 5]" + }; diff --git a/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.CDL.Routing.Validation.BooleanVectorFilter.mos b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.CDL.Routing.Validation.BooleanVectorFilter.mos new file mode 100644 index 00000000000..a3f29ea3d1a --- /dev/null +++ b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.CDL.Routing.Validation.BooleanVectorFilter.mos @@ -0,0 +1,8 @@ +compareVars := + { + "booFil.u[1]", + "booFil.u[2]", + "booFil.u[3]", + "booFil.y[1]", + "booFil.y[2]" + }; diff --git a/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.CDL.Routing.Validation.BooleanVectorReplicator.mos b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.CDL.Routing.Validation.BooleanVectorReplicator.mos new file mode 100644 index 00000000000..1ac7e1e1164 --- /dev/null +++ b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.CDL.Routing.Validation.BooleanVectorReplicator.mos @@ -0,0 +1,7 @@ +compareVars := + { + "booRep.u[1]", + "booRep.y[1, 1]", + "booRep.y[2, 2]", + "booRep.y[3, 2]" + }; diff --git a/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.CDL.Routing.Validation.IntegerVectorFilter.mos b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.CDL.Routing.Validation.IntegerVectorFilter.mos new file mode 100644 index 00000000000..2abdd2d9154 --- /dev/null +++ b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.CDL.Routing.Validation.IntegerVectorFilter.mos @@ -0,0 +1,8 @@ +compareVars := + { + "intFil.u[1]", + "intFil.u[2]", + "intFil.u[3]", + "intFil.y[1]", + "intFil.y[2]" + }; diff --git a/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.CDL.Routing.Validation.IntegerVectorReplicator.mos b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.CDL.Routing.Validation.IntegerVectorReplicator.mos new file mode 100644 index 00000000000..fdd04550199 --- /dev/null +++ b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.CDL.Routing.Validation.IntegerVectorReplicator.mos @@ -0,0 +1,8 @@ +compareVars := + { + "ram[1].y", + "reaToInt[1].y", + "intRep.y[1, 1]", + "intRep.y[2, 2]", + "intRep.y[3, 2]" + }; diff --git a/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.CDL.Routing.Validation.RealVectorFilter.mos b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.CDL.Routing.Validation.RealVectorFilter.mos new file mode 100644 index 00000000000..39853becbd5 --- /dev/null +++ b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.CDL.Routing.Validation.RealVectorFilter.mos @@ -0,0 +1,8 @@ +compareVars := + { + "reaFil.u[1]", + "reaFil.u[2]", + "reaFil.u[3]", + "reaFil.y[1]", + "reaFil.y[2]" + }; diff --git a/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.CDL.Routing.Validation.RealVectorReplicator.mos b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.CDL.Routing.Validation.RealVectorReplicator.mos new file mode 100644 index 00000000000..f9d7606df43 --- /dev/null +++ b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.CDL.Routing.Validation.RealVectorReplicator.mos @@ -0,0 +1,7 @@ +compareVars := + { + "reaRep.u[1]", + "reaRep.y[1, 1]", + "reaRep.y[2, 2]", + "reaRep.y[3, 2]" + }; diff --git a/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.RadiantSystems.Cooling.Validation.HighMassSupplyTemperature_TRoomRelHum.mos b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.RadiantSystems.Cooling.Validation.HighMassSupplyTemperature_TRoomRelHum.mos new file mode 100644 index 00000000000..0bd2df67357 --- /dev/null +++ b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.RadiantSystems.Cooling.Validation.HighMassSupplyTemperature_TRoomRelHum.mos @@ -0,0 +1,10 @@ +compareVars := + { + "conCoo.TRooSet", + "conCoo.TRoo", + "conCoo.TSupSet", + "dewPoi.TDewPoi", + "conCoo.y", + "conCoo.yPum", + "conCoo.on" + }; diff --git a/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.RadiantSystems.Heating.Validation.HighMassSupplyTemperature_TRoom.mos b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.RadiantSystems.Heating.Validation.HighMassSupplyTemperature_TRoom.mos new file mode 100644 index 00000000000..2da145c886c --- /dev/null +++ b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Controls.OBC.RadiantSystems.Heating.Validation.HighMassSupplyTemperature_TRoom.mos @@ -0,0 +1,9 @@ +compareVars := + { + "conHea.TRooSet", + "conHea.TRoo", + "conHea.TSupSet", + "conHea.y", + "conHea.yPum", + "conHea.on" + }; diff --git a/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Fluid.Boilers.Examples.BoilerTable.mos b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Fluid.Boilers.Examples.BoilerTable.mos new file mode 100644 index 00000000000..6df53ab6764 --- /dev/null +++ b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Fluid.Boilers.Examples.BoilerTable.mos @@ -0,0 +1,9 @@ +compareVars := + { + "boi1.sta_a.T", + "boi1.sta_b.T", + "boi2.sta_b.T", + "boi1.eta", + "boi2.eta", + "y.y" + }; diff --git a/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Fluid.Boilers.Validation.BoilerTableEfficiencyCurves.mos b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Fluid.Boilers.Validation.BoilerTableEfficiencyCurves.mos new file mode 100644 index 00000000000..0c9ba3e8433 --- /dev/null +++ b/Buildings/Resources/Scripts/OpenModelica/compareVars/Buildings.Fluid.Boilers.Validation.BoilerTableEfficiencyCurves.mos @@ -0,0 +1,6 @@ +compareVars := + { + "boi1.eta", + "boi2.eta", + "boi3.eta" + }; diff --git a/Buildings/package.mo b/Buildings/package.mo index 24b29dd38f3..0190fe602bb 100644 --- a/Buildings/package.mo +++ b/Buildings/package.mo @@ -226,7 +226,6 @@ Each class (i.e., model, block and function) must be used in an example or valid The following new libraries have been added:

- - @@ -277,14 +259,70 @@ Each class (i.e., model, block and function) must be used in an example or valid to existing libraries:

Buildings.Experimental.DHC +
Buildings.Experimental.DHC
Buildings.Experimental.DHC.CentralPlants.Cooling
+ + + + + + + + + + + + + + - + +
Buildings.Controls.OBC +
Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.ZoneStatusDuplicator + Block that duplicates the zone status to be connected to all zone groups.
+ This is for issue 2544. +
+ Buildings.Controls.OBC.CDL.Routing.BooleanVectorFilter
+ Buildings.Controls.OBC.CDL.Routing.BooleanVectorReplicator
+ Buildings.Controls.OBC.CDL.Routing.IntegerVectorFilter
+ Buildings.Controls.OBC.CDL.Routing.IntegerVectorReplicator
+ Buildings.Controls.OBC.CDL.Routing.RealVectorFilter
+ Buildings.Controls.OBC.CDL.Routing.RealVectorReplicator +
Blocks for filtering and replicating vectors of signals.
+ This is for issue 2544. +
Buildings.Fluid.Boilers +
Buildings.Fluid.Boilers.BoilerTable
+ Buildings.Fluid.Boilers.Examples.BoilerTable
+ Buildings.Fluid.Boilers.Validation.BoilerTableEfficiencyCurves
+ Buildings.Fluid.Boilers.BaseClasses.PartialBoiler
+ Buildings.Fluid.Boilers.Data.Generic
+ Buildings.Fluid.Boilers.Data.Lochinvar.Crest.FBdash2501
+ Buildings.Fluid.Boilers.Data.Lochinvar.Crest.FBdash3001
+ Buildings.Fluid.Boilers.Data.Lochinvar.Crest.FBdash3501
+ Buildings.Fluid.Boilers.Data.Lochinvar.Crest.FBdash4001
+ Buildings.Fluid.Boilers.Data.Lochinvar.Crest.FBdash5001
+ Buildings.Fluid.Boilers.Data.Lochinvar.Crest.FBdash6001
+ Buildings.Fluid.Boilers.Data.Lochinvar.FTXL.FTX400
+ Buildings.Fluid.Boilers.Data.Lochinvar.FTXL.FTX500
+ Buildings.Fluid.Boilers.Data.Lochinvar.FTXL.FTX600
+ Buildings.Fluid.Boilers.Data.Lochinvar.FTXL.FTX725
+ Buildings.Fluid.Boilers.Data.Lochinvar.FTXL.FTX850
+ Buildings.Fluid.Boilers.Data.Lochinvar.KnightXL.KBXdash0400
+ Buildings.Fluid.Boilers.Data.Lochinvar.KnightXL.KBXdash0500
+ Buildings.Fluid.Boilers.Data.Lochinvar.KnightXL.KBXdash0650
+ Buildings.Fluid.Boilers.Data.Lochinvar.KnightXL.KBXdash0800
+ Buildings.Fluid.Boilers.Data.Lochinvar.KnightXL.KBXdash1000 +
Classes for modeling boilers whose efficiency curves are provided as a table. + Part of the code from the old Buildings.Fluid.Boilers.BoilerPolynomial + has been moved to Buildings.Fluid.Boilers.BaseClasses.PartialBoiler + to support the new model Buildings.Fluid.Boilers.BoilerTable.
+ This is for issue 2651.
+ In the moved code, the boiler's heating power output is now corrected by + its loss to the ambient.
+ This is for #2725. +
Buildings.Fluid.Chillers -
Buildings.Fluid.Chillers.Data.ElectricEIR.ElectricEIRChiller_York_YCAL0033EE_101kW_3_1COP_AirCooled - Data for air cooled chiller.
- This is for issue #2770. -
Data for air cooled chiller.
+ This is for issue #2770. +
@@ -9591,4 +9629,4 @@ requirements definition or providing feedback regarding the model applicability to solve specific problems.

")); -end Buildings; +end Buildings; \ No newline at end of file