Skip to content

Commit

Permalink
Merge pull request #1067 from lbl-srg/issue1066_jmodelica
Browse files Browse the repository at this point in the history
Corrected wrong cast of enumeration
  • Loading branch information
mwetter authored Nov 17, 2017
2 parents bf65906 + bc1f838 commit 704eda8
Show file tree
Hide file tree
Showing 14 changed files with 225 additions and 148 deletions.
3 changes: 2 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ services:

env:
- TEST_ARG="make test-documentation test-experiment-setup test-autogenerated-files"
- TEST_ARG="make test-dymola PACKAGE=Buildings.Air"
- TEST_ARG="make test-dymola PACKAGE=Buildings.Examples"
- TEST_ARG="make test-dymola PACKAGE=Buildings.ThermalZones.Detailed.{BaseClasses,Constructions,Examples}"
- TEST_ARG="make test-dymola PACKAGE=Buildings.ThermalZones.Detailed.Validation.BESTEST.Cases6xx"
- TEST_ARG="make test-dymola PACKAGE=Buildings.ThermalZones.Detailed.Validation.BESTEST.Cases9xx"
Expand All @@ -30,7 +32,6 @@ env:
- TEST_ARG="make test-dymola PACKAGE=Buildings.ThermalZones.ReducedOrder"
- TEST_ARG="make test-dymola PACKAGE=Buildings.Electrical"
- TEST_ARG="make test-dymola PACKAGE=Buildings.{Airflow,BoundaryConditions,Controls}"
- TEST_ARG="make test-dymola PACKAGE=Buildings.{Air,Examples}"
- TEST_ARG="make test-dymola PACKAGE=Buildings.HeatTransfer"
- TEST_ARG="make test-dymola PACKAGE=Buildings.Media"
- TEST_ARG="make test-dymola PACKAGE=Buildings.Utilities"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ model IntegratedPrimaryLoadSideEconomizer
extends
Buildings.Applications.DataCenters.ChillerCooled.Examples.BaseClasses.PostProcess(
freCooSig(
y=if cooModCon.y == integer(Buildings.Applications.DataCenters.Types.CoolingModes.FreeCooling)
y=if cooModCon.y == Integer(Buildings.Applications.DataCenters.Types.CoolingModes.FreeCooling)
then 1 else 0),
parMecCooSig(
y=if cooModCon.y == integer(Buildings.Applications.DataCenters.Types.CoolingModes.PartialMechanical)
y=if cooModCon.y == Integer(Buildings.Applications.DataCenters.Types.CoolingModes.PartialMechanical)
then 1 else 0),
fulMecCooSig(
y=if cooModCon.y == integer(Buildings.Applications.DataCenters.Types.CoolingModes.FullMechanical)
y=if cooModCon.y == Integer(Buildings.Applications.DataCenters.Types.CoolingModes.FullMechanical)
then 1 else 0),
PHVAC(y=cooTow[1].PFan + cooTow[2].PFan + pumCW[1].P + pumCW[2].P + sum(
chiWSE.powChi + chiWSE.powPum) + ahu.PFan + ahu.PHea),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -413,7 +413,6 @@ Where the zone groups served by the system are small,
provide multiple sets of gains that are used in the control loop as a function
of a load indicator (such as supply fan airflow rate, the area of the zone groups
that are occupied, etc.).
<!-- fixme: Clarify the sentence above. -->
</p>
</html>", revisions="<html>
<ul>
Expand Down
60 changes: 40 additions & 20 deletions Buildings/Examples/DualFanDualDuct/ClosedLoop.mo
Original file line number Diff line number Diff line change
Expand Up @@ -101,20 +101,20 @@ model ClosedLoop "Closed loop model of a dual-fan dual-duct system"
Buildings.Fluid.Movers.SpeedControlled_y fanSupHot(
redeclare package Medium = MediumA,
per(pressure(V_flow=mAirHot_flow_nominal/1.2*{0,2}, dp=600*{2,0})),
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
use_inputFilter=false) "Supply air fan for hot deck"
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
"Supply air fan for hot deck"
annotation (Placement(transformation(extent={{300,-10},{320,10}})));
Buildings.Fluid.Movers.SpeedControlled_y fanSupCol(
redeclare package Medium = MediumA,
per(pressure(V_flow=mAirCol_flow_nominal/1.2*{0,2}, dp=600*{2,0})),
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
use_inputFilter=false) "Supply air fan for cold deck"
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
"Supply air fan for cold deck"
annotation (Placement(transformation(extent={{302,-160},{322,-140}})));
Buildings.Fluid.Movers.SpeedControlled_y fanRet(
redeclare package Medium = MediumA,
per(pressure(V_flow=m_flow_nominal/1.2*{0,2}, dp=100*{2,0})),
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
use_inputFilter=false) "Return air fan"
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
"Return air fan"
annotation (Placement(transformation(extent={{360,150},{340,170}})));
Buildings.Fluid.Sources.FixedBoundary sinHea(
redeclare package Medium = MediumW,
Expand Down Expand Up @@ -199,8 +199,9 @@ model ClosedLoop "Closed loop model of a dual-fan dual-duct system"
Buildings.Examples.VAVReheat.Controls.Economizer conEco(
dT=1,
VOut_flow_min=0.3*m_flow_nominal/1.2,
k=1,
Ti=60) "Controller for economizer"
k=0.05,
Ti=1200)
"Controller for economizer"
annotation (Placement(transformation(extent={{-80,140},{-60,160}})));
Buildings.Fluid.Sensors.TemperatureTwoPort TRet(redeclare package Medium =
MediumA, m_flow_nominal=m_flow_nominal) "Return air temperature sensor"
Expand Down Expand Up @@ -228,8 +229,9 @@ model ClosedLoop "Closed loop model of a dual-fan dual-duct system"
dpRec_nominal=10,
dpExh_nominal=10,
from_dp=from_dp,
use_inputFilter=false,
linearized=true) "Economizer"
linearized=true,
riseTime=15,
y_start=0) "Economizer"
annotation (Placement(transformation(extent={{-40,66},{14,12}})));
Buildings.Fluid.Sensors.TemperatureTwoPort TCoiCoo(
redeclare package Medium = MediumA,
Expand Down Expand Up @@ -288,7 +290,7 @@ model ClosedLoop "Closed loop model of a dual-fan dual-duct system"
m_flow_nominal={m_flow_nominal,m_flow_nominal - m0_flow_cor,m0_flow_cor},
from_dp=from_dp,
linearized=linearizeFlowResistance,
dp_nominal(displayUnit="Pa") = {30,0,70},
dp_nominal(each displayUnit="Pa") = {30,0,70},
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
"Splitter for room return"
annotation (Placement(transformation(extent={{592,170},{612,150}})));
Expand All @@ -298,7 +300,7 @@ model ClosedLoop "Closed loop model of a dual-fan dual-duct system"
m0_flow_eas + m0_flow_nor + m0_flow_wes,m0_flow_sou},
from_dp=from_dp,
linearized=linearizeFlowResistance,
dp_nominal(displayUnit="Pa") = {20,0,50},
dp_nominal(each displayUnit="Pa") = {20,0,50},
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
"Splitter for room return"
annotation (Placement(transformation(extent={{732,170},{752,150}})));
Expand All @@ -308,7 +310,7 @@ model ClosedLoop "Closed loop model of a dual-fan dual-duct system"
m0_flow_wes,m0_flow_eas},
from_dp=from_dp,
linearized=linearizeFlowResistance,
dp_nominal(displayUnit="Pa") = {20,0,30},
dp_nominal(each displayUnit="Pa") = {20,0,30},
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
"Splitter for room return"
annotation (Placement(transformation(extent={{872,170},{892,150}})));
Expand All @@ -317,7 +319,7 @@ model ClosedLoop "Closed loop model of a dual-fan dual-duct system"
m_flow_nominal={m0_flow_nor + m0_flow_wes,m0_flow_wes,m0_flow_nor},
from_dp=from_dp,
linearized=linearizeFlowResistance,
dp_nominal(displayUnit="Pa") = {20,10,10},
dp_nominal(each displayUnit="Pa") = {20,10,10},
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
"Splitter for room return"
annotation (Placement(transformation(extent={{1012,170},{1032,150}})));
Expand All @@ -326,7 +328,7 @@ model ClosedLoop "Closed loop model of a dual-fan dual-duct system"
m_flow_nominal={m_flow_nominal,m_flow_nominal - m0_flow_cor,m0_flow_cor},
from_dp=from_dp,
linearized=linearizeFlowResistance,
dp_nominal(displayUnit="Pa") = {240,0,-80},
dp_nominal(each displayUnit="Pa") = {240,0,-80},
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
"Splitter for room supply"
annotation (Placement(transformation(extent={{562,10},{582,-10}})));
Expand Down Expand Up @@ -399,10 +401,10 @@ model ClosedLoop "Closed loop model of a dual-fan dual-duct system"
Buildings.Fluid.FixedResistances.Junction splHotColDec(
redeclare package Medium = MediumA,
m_flow_nominal=m_flow_nominal*{1,1,1},
dp_nominal(displayUnit="Pa") = {0,0,0},
from_dp=from_dp,
linearized=linearizeFlowResistance,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
dp_nominal(each displayUnit="Pa") = {5,5,0})
"Splitter for cold deck" annotation (Placement(transformation(
extent={{-10,10},{10,-10}},
rotation=90,
Expand Down Expand Up @@ -434,7 +436,7 @@ model ClosedLoop "Closed loop model of a dual-fan dual-duct system"
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
linearized=true,
dp_nominal(displayUnit="Pa") = {0,0,0},
dp_nominal(each displayUnit="Pa") = {0,0,0},
redeclare package Medium = MediumW,
m_flow_nominal=mWatPre_flow_nominal*{1,1,1}) "Splitter for cold deck"
annotation (Placement(transformation(
Expand All @@ -446,7 +448,7 @@ model ClosedLoop "Closed loop model of a dual-fan dual-duct system"
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
linearized=true,
dp_nominal(displayUnit="Pa") = {0,0,0},
dp_nominal(each displayUnit="Pa") = {0,0,0},
redeclare package Medium = MediumW,
m_flow_nominal=mWatPre_flow_nominal*{1,1,1}) "Splitter for cold deck"
annotation (Placement(transformation(
Expand Down Expand Up @@ -482,7 +484,7 @@ model ClosedLoop "Closed loop model of a dual-fan dual-duct system"
m_flow_nominal={m_flow_nominal,m_flow_nominal - m0_flow_cor,m0_flow_cor},
from_dp=from_dp,
linearized=linearizeFlowResistance,
dp_nominal(displayUnit="Pa") = {240,0,-80},
dp_nominal(each displayUnit="Pa") = {240,0,-80},
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
"Splitter for room supply"
annotation (Placement(transformation(extent={{582,-30},{602,-50}})));
Expand Down Expand Up @@ -1080,6 +1082,16 @@ equation
connect(modeSelector.yFan, conFanRet.uFan) annotation (Line(points={{-117.5,
-371},{-100,-371},{-100,250},{228,250},{228,236},{238,236}}, color={
255,0,255}));
connect(cor.yFan, modeSelector.yFan) annotation (Line(points={{543.467,71.2},
{530,71.2},{530,-371},{-117.5,-371}}, color={255,0,255}));
connect(modeSelector.yFan, sou.yFan) annotation (Line(points={{-117.5,-371},{
658,-371},{658,70.8},{681.2,70.8}}, color={255,0,255}));
connect(modeSelector.yFan, eas.yFan) annotation (Line(points={{-117.5,-371},{
800,-371},{800,73.2},{819.467,73.2}}, color={255,0,255}));
connect(modeSelector.yFan, nor.yFan) annotation (Line(points={{-117.5,-371},{
-117.5,-372},{932,-372},{932,73.2},{959.467,73.2}}, color={255,0,255}));
connect(modeSelector.yFan, wes.yFan) annotation (Line(points={{-117.5,-371},{
1074,-371},{1074,73.2},{1097.47,73.2}}, color={255,0,255}));
annotation (
Diagram(coordinateSystem(preserveAspectRatio=false,extent={{-400,-400},{
1400,640}})),
Expand Down Expand Up @@ -1191,6 +1203,14 @@ shading devices, Technical Report, Oct. 17, 2006.
</html>", revisions="<html>
<ul>
<li>
November 17, 2017, by Michael Wetter:<br/>
Enabled filters at fan control signal. This avoids a sharp change in fan speed,
which led to very large mass flow rates between the hot and cold deck fan
when they were switched off.
This model now works with JModelica with the CVode solver and <i>10<sup>-8</sup></i>
tolerance.
</li>
<li>
May 19, 2016, by Michael Wetter:<br/>
Set <code>use_inputFilter=false</code> in fan models to avoid a large
increase in computing time when simulated between <i>t=1.60E7</i>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
within Buildings.Examples.DualFanDualDuct.Controls.Examples;
model RoomMixingBox "Test model for room mixing box"
import Buildings;
extends Modelica.Icons.Example;
Buildings.Examples.DualFanDualDuct.Controls.RoomMixingBox conMix(m_flow_min=1)
"Controller for mixing box"
Expand All @@ -24,7 +25,10 @@ extends Modelica.Icons.Example;
amplitude=2,
offset=0,
startTime=3600) "Mass flow rate"
annotation (Placement(transformation(extent={{-80,-40},{-60,-20}})));
annotation (Placement(transformation(extent={{-80,-30},{-60,-10}})));
Buildings.Controls.OBC.CDL.Logical.Sources.Constant yFan(k=true)
"Fan control signal"
annotation (Placement(transformation(extent={{-80,-60},{-60,-40}})));
equation

connect(TH.y, conMix.TRooSetHea) annotation (Line(
Expand All @@ -40,9 +44,11 @@ equation
color={0,0,127},
smooth=Smooth.None));
connect(m_flow.y, conMix.mAir_flow) annotation (Line(
points={{-59,-30},{-40,-30},{-40,4},{-22,4}},
points={{-59,-20},{-40,-20},{-40,6},{-22,6}},
color={0,0,127},
smooth=Smooth.None));
connect(yFan.y, conMix.yFan) annotation (Line(points={{-59,-50},{-32,-50},{
-32,2},{-22,2}}, color={255,0,255}));
annotation (
__Dymola_Commands(file="modelica://Buildings/Resources/Scripts/Dymola/Examples/DualFanDualDuct/Controls/Examples/RoomMixingBox.mos"
"Simulate and plot"),
Expand Down
Loading

0 comments on commit 704eda8

Please sign in to comment.