Buildings.Controls.Continuous.Examples

Collection of models that illustrate model use and test models

Information

This package contains examples for the use of models that can be found in Buildings.Controls.Continuous.

Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).

Package Content

NameDescription
Buildings.Controls.Continuous.Examples.LimPID LimPID Example model
Buildings.Controls.Continuous.Examples.PIDHysteresis PIDHysteresis Example model
Buildings.Controls.Continuous.Examples.PIDHysteresisTimer PIDHysteresisTimer Example model
Buildings.Controls.Continuous.Examples.SignalRanker SignalRanker Example model
Buildings.Controls.Continuous.Examples.NumberOfRequests NumberOfRequests Example model
Buildings.Controls.Continuous.Examples.OffTimer OffTimer Example model


Buildings.Controls.Continuous.Examples.LimPID Buildings.Controls.Continuous.Examples.LimPID

Example model

Buildings.Controls.Continuous.Examples.LimPID

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model LimPID "Example model"
  extends Modelica.Icons.Example;
  import Buildings;

  Modelica.Blocks.Sources.Pulse pulse(period=0.25);
  Buildings.Controls.Continuous.LimPID limPID(
    controllerType=Modelica.Blocks.Types.SimpleController.PID,
    Ti=1,
    Td=1,
    yMax=1,
    yMin=-1,
    initType=Modelica.Blocks.Types.InitPID.InitialState);
  Buildings.Controls.Continuous.LimPID limPIDRev(
    controllerType=Modelica.Blocks.Types.SimpleController.PID,
    reverseAction=true,
    Ti=1,
    Td=1,
    yMax=1,
    yMin=-1,
    initType=Modelica.Blocks.Types.InitPID.InitialState) 
    "Controller with reverse action";
  Modelica.Blocks.Sources.Constant const(k=0.5);
  Modelica.Blocks.Math.Gain gain(k=-1);
  Buildings.Utilities.Diagnostics.AssertEquality assertEquality(threShold=1e-10);
  Modelica.Blocks.Continuous.LimPID limPIDOri(
    controllerType=Modelica.Blocks.Types.SimpleController.PID,
    Ti=1,
    Td=1,
    yMax=1,
    yMin=-1,
    initType=Modelica.Blocks.Types.InitPID.InitialState);
  Buildings.Utilities.Diagnostics.AssertEquality assertEquality1(
                                                                threShold=1e-10);
equation 
  connect(pulse.y, limPID.u_s);
  connect(pulse.y, limPIDRev.u_s);
  connect(const.y, limPID.u_m);
  connect(const.y, limPIDRev.u_m);
  connect(limPIDRev.y, gain.u);
  connect(gain.y, assertEquality.u2);
  connect(limPID.y, assertEquality.u1);
  connect(pulse.y, limPIDOri.u_s);
  connect(const.y, limPIDOri.u_m);
  connect(assertEquality1.u1, limPIDOri.y);
  connect(assertEquality1.u2, limPID.y);
end LimPID;

Buildings.Controls.Continuous.Examples.PIDHysteresis Buildings.Controls.Continuous.Examples.PIDHysteresis

Example model

Buildings.Controls.Continuous.Examples.PIDHysteresis

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model PIDHysteresis "Example model"
  extends Modelica.Icons.Example;
  import Buildings;

  Buildings.Controls.Continuous.PIDHysteresis con(
    pre_y_start=false,
    controllerType=Modelica.Blocks.Types.SimpleController.PI,
    yMin=0.3,
    Ti=600,
    Td=60);
  Modelica.Blocks.Sources.Constant TSet(k=273.15 + 40) "Set point";
  Modelica.Thermal.HeatTransfer.Components.HeatCapacitor cap(C=1000000, T(start=
         313.15, fixed=true));
  Buildings.HeatTransfer.Sources.PrescribedTemperature TBC;
  Modelica.Thermal.HeatTransfer.Components.ThermalConductor theCon(G=20);
  Modelica.Blocks.Math.Gain gain(k=2000);
  Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor temSen;
  Buildings.HeatTransfer.Sources.PrescribedHeatFlow Q_flow;
  Modelica.Blocks.Sources.Sine sine(
    freqHz=1/86400,
    offset=273.15,
    amplitude=20,
    phase=-1.5707963267949);
equation 

  connect(TSet.y, con.u_s);
  connect(TBC.port, theCon.port_a);
  connect(theCon.port_b, cap.port);
  connect(con.y, gain.u);
  connect(cap.port, temSen.port);
  connect(temSen.T, con.u_m);
  connect(gain.y, Q_flow.Q_flow);
  connect(Q_flow.port, cap.port);
  connect(sine.y, TBC.T);
end PIDHysteresis;

Buildings.Controls.Continuous.Examples.PIDHysteresisTimer Buildings.Controls.Continuous.Examples.PIDHysteresisTimer

Example model

Buildings.Controls.Continuous.Examples.PIDHysteresisTimer

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model PIDHysteresisTimer "Example model"
  extends Modelica.Icons.Example;
  import Buildings;

  Buildings.Controls.Continuous.PIDHysteresisTimer con(
    yMin=0.3,
    minOffTime=10000,
    controllerType=Modelica.Blocks.Types.SimpleController.PI,
    Ti=60,
    Td=10);
  Modelica.Blocks.Sources.Constant TSet(k=273.15 + 40) "Set point";
  Modelica.Thermal.HeatTransfer.Components.HeatCapacitor cap(C=100000, T(start=
          293.15, fixed=true));
  Buildings.HeatTransfer.Sources.PrescribedTemperature TBC;
  Modelica.Thermal.HeatTransfer.Components.ThermalConductor theCon(G=10);
  Modelica.Blocks.Math.Gain gain(k=800);
  Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor temSen;
  Buildings.HeatTransfer.Sources.PrescribedHeatFlow Q_flow;
  Modelica.Blocks.Sources.Sine sine(
    freqHz=1/86400,
    offset=273.15,
    amplitude=20,
    phase=-1.5707963267949);
equation 

  connect(TSet.y, con.u_s);
  connect(TBC.port, theCon.port_a);
  connect(theCon.port_b, cap.port);
  connect(con.y, gain.u);
  connect(cap.port, temSen.port);
  connect(temSen.T, con.u_m);
  connect(gain.y, Q_flow.Q_flow);
  connect(Q_flow.port, cap.port);
  connect(sine.y, TBC.T);
end PIDHysteresisTimer;

Buildings.Controls.Continuous.Examples.SignalRanker Buildings.Controls.Continuous.Examples.SignalRanker

Example model

Buildings.Controls.Continuous.Examples.SignalRanker

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model SignalRanker "Example model"
  extends Modelica.Icons.Example;
  Modelica.Blocks.Sources.Sine sine(freqHz=2);
  Modelica.Blocks.Sources.Pulse pulse(period=0.25);
  Buildings.Controls.Continuous.SignalRanker sigRan(
                                                  nin=3);
  Modelica.Blocks.Sources.ExpSine expSine(freqHz=10);
equation 
  connect(sine.y, sigRan.u[1]);
  connect(pulse.y, sigRan.u[2]);
  connect(expSine.y, sigRan.u[3]);
end SignalRanker;

Buildings.Controls.Continuous.Examples.NumberOfRequests Buildings.Controls.Continuous.Examples.NumberOfRequests

Example model

Buildings.Controls.Continuous.Examples.NumberOfRequests

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model NumberOfRequests "Example model"
  extends Modelica.Icons.Example;
  Buildings.Controls.Continuous.NumberOfRequests numReq(
    nin=2,
    threShold=0,
    kind=0);
  Modelica.Blocks.Sources.Sine sine(freqHz=2);
  Modelica.Blocks.Sources.Pulse pulse(period=0.25);
equation 
  connect(sine.y, numReq.u[1]);
  connect(pulse.y, numReq.u[2]);
end NumberOfRequests;

Buildings.Controls.Continuous.Examples.OffTimer Buildings.Controls.Continuous.Examples.OffTimer

Example model

Buildings.Controls.Continuous.Examples.OffTimer

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model OffTimer "Example model"
  extends Modelica.Icons.Example;
  import Buildings;

  Modelica.Blocks.Sources.BooleanPulse booleanPulse(period=0.2);
  Buildings.Controls.Continuous.OffTimer offTim1;
  Buildings.Controls.Continuous.OffTimer offTim2;
  Modelica.Blocks.Logical.Not not1;
equation 
  connect(booleanPulse.y, offTim1.u);
  connect(booleanPulse.y, not1.u);
  connect(offTim2.u, not1.y);
end OffTimer;

Automatically generated Fri Nov 4 08:27:05 2011.