Buildings.Examples.VAVReheat.Controls.Examples
Example models to test the components
Information
Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).
Package Content
Name | Description |
---|---|
OperationModes | Test model for operation modes |
Buildings.Examples.VAVReheat.Controls.Examples.OperationModes
Test model for operation modes
Information
This model tests the transition between the different modes of operation of the HVAC system.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Connectors
Type | Name | Description |
---|---|---|
ControlBus | controlBus |
Modelica definition
model OperationModes "Test model for operation modes"
extends Modelica.Icons.Example;
import ModelicaVAV = Buildings.Examples.VAVReheat;
ModelicaVAV.Controls.ModeSelector operationModes;
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow preHeaFlo;
Modelica.Thermal.HeatTransfer.Sources.FixedTemperature fixTem(T=273.15);
Modelica.Thermal.HeatTransfer.Components.HeatCapacitor cap(C=20000, T(fixed=
true));
Modelica.Thermal.HeatTransfer.Components.ThermalConductor con(G=1);
Modelica.Blocks.Logical.Switch switch1;
Modelica.Blocks.Sources.Constant on(k=200);
Modelica.Blocks.Sources.Constant off(k=0);
Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor temperatureSensor;
Modelica.Blocks.Sources.RealExpression TRooSetHea(
y=if mode.y == Integer(ModelicaVAV.Controls.OperationModes.occupied)
then 293.15 else 287.15);
Modelica.Blocks.Sources.Constant TCoiHea(k=283.15)
"Temperature after heating coil";
ModelicaVAV.Controls.ControlBus controlBus;
Modelica.Blocks.Routing.IntegerPassThrough mode "Outputs the control mode";
Modelica.Blocks.Sources.BooleanExpression modSel(
y=mode.y == Integer(ModelicaVAV.Controls.OperationModes.unoccupiedNightSetBack) or
mode.y == Integer(ModelicaVAV.Controls.OperationModes.unoccupiedWarmUp));
Modelica.Blocks.Sources.Constant TOut(k=283.15) "Outside temperature";
Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor temperatureSensor1;
Modelica.Blocks.Sources.BooleanExpression modSel1(
y=mode.y == Integer(ModelicaVAV.Controls.OperationModes.occupied));
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow preHeaFlo1;
Buildings.Controls.Continuous.LimPID PID(initType=Modelica.Blocks.Types.InitPID.InitialState);
Modelica.Blocks.Logical.Switch switch2;
Modelica.Blocks.Math.Gain gain(k=200);
Buildings.Controls.SetPoints.OccupancySchedule occSch "Occupancy schedule";
equation
connect(fixTem.port, con.port_a);
connect(preHeaFlo.port, cap.port);
connect(con.port_b, cap.port);
connect(switch1.y, preHeaFlo.Q_flow);
connect(on.y, switch1.u1);
connect(off.y, switch1.u3);
connect(cap.port, temperatureSensor.port);
connect(controlBus, operationModes.cb);
connect(temperatureSensor.T, controlBus.TRooMin);
connect(TCoiHea.y, controlBus.TCoiHeaOut);
connect(controlBus.controlMode, mode.u);
connect(modSel.y, switch1.u2);
connect(TOut.y, controlBus.TOut);
connect(cap.port, temperatureSensor1.port);
connect(temperatureSensor1.T, controlBus.TRooAve);
connect(TRooSetHea.y, PID.u_s);
connect(temperatureSensor.T, PID.u_m);
connect(modSel1.y, switch2.u2);
connect(off.y, switch2.u3);
connect(preHeaFlo1.port, cap.port);
connect(PID.y, switch2.u1);
connect(gain.y, preHeaFlo1.Q_flow);
connect(switch2.y, gain.u);
connect(occSch.tNexOcc, controlBus.dTNexOcc);
connect(TRooSetHea.y, controlBus.TRooSetHea);
connect(occSch.occupied, controlBus.occupied);
end OperationModes;