Buildings.Electrical.Utilities.Controllers

Package that contains state machines and control models used by the utilities

Information

This package contains state machines and controller models used by the utilities.

Extends from Modelica.Icons.BasesPackage (Icon for packages containing base classes).

Package Content

Name Description
Buildings.Electrical.Utilities.Controllers.StateMachineVoltCtrl StateMachineVoltCtrl This model represents a simple voltage controller that unplug a load when there is a voltage fluctuation higher that a given threshold.

Buildings.Electrical.Utilities.Controllers.StateMachineVoltCtrl

This model represents a simple voltage controller that unplug a load when there is a voltage fluctuation higher that a given threshold.

Information

Function that implements a state machine that detects voltage deviations. If the voltage input V exceeds the nominal value V_nominal by more than 1+Vtr then the control signal y becones zero for a period equal to tDelay.

A signal y = 0 can be used to turn off a load.

Parameters

TypeNameDefaultDescription
VoltageV_nominal Nominal voltage of the node to be controlled [V]
RealvThresh0.1Threshold that activates voltage ctrl (ratio of nominal voltage)
TimetDelay300Time to wait before plugging the load back [s]

Connectors

TypeNameDescription
input RealInputVVoltage of the node to be controlled

Modelica definition

model StateMachineVoltCtrl "This model represents a simple voltage controller that unplug a load when there is a voltage fluctuation higher that a given threshold." Modelica.Blocks.Interfaces.RealInput V "Voltage of the node to be controlled"; parameter Modelica.SIunits.Voltage V_nominal "Nominal voltage of the node to be controlled"; parameter Real vThresh( min=0.0, max=1.0) = 0.1 "Threshold that activates voltage ctrl (ratio of nominal voltage)"; parameter Modelica.SIunits.Time tDelay=300 "Time to wait before plugging the load back"; output Real y "Output signal that represents whether the load should be connected to the grid or not"; protected discrete Boolean connected "Boolean variable that indicates when the load is connected"; discrete Real tSwitch "Time instant when the last event occurred"; initial algorithm // Initialize with load connected and last event at t = 0 connected := true; tSwitch := 0; equation // Output for every state, connected or not if connected then y = 1.0; else y = 0.0; end if; algorithm // Detect an overshoot in the voltage when (connected and (V > V_nominal*(1 + vThresh))) then tSwitch := time; connected := false; end when; // Transition between not connected and connected again after the delay time has been elapsed when (not connected and time >= tSwitch + tDelay) then connected := true; end when; end StateMachineVoltCtrl;