modelPartialModularController

Base model used for all modular controllers

Information

This is a base model used by all modular controller models. It defines basic inputs, outputs, parameters and sub-models. The main inputs and outputs are the modular heat pump control bus AixLib.Controls.Interfaces.ModularHeatPumpControlBus, the manipulated signals passed to the controlled components and the current manipulated signals. The main sub-model is a PID controller presented in AixLib.Controls.Continuous.LimPID that is initialised if no external controller is used. Furthermore, all parameters with respect to the PID controller are propagated because the modular controller shall be used in an architectural modeling approach.

Equations needed for completion

For completion of a modular controller extending from this base class, it is necessary to provide an internal control strategy. This strategy may differ from component to component. Therefore, the User must define two things:

  • Connect useExtBlo with the appropriate data bus connector if required.
  • Connect setVal with internal or external manipulated signal depending on useExtBlo.

Parameters

TypeNameDefaultDescription
General › Modular approach
IntegernCom1Number of components
BooleanuseExttrue= true, if external signal is used instead of internal controllers
Controller › General
Modelica.Blocks.Types.SimpleController[nCom]controllerTypefill(Modelica.Blocks.Types.SimpleController.PID, nCom)Type of controller
Boolean[nCom]reverseActionfill(false, nCom)= true, if medium flow rate is throttled through cooling coil controller
AixLib.Types.Reset[nCom]resetfill(AixLib.Types.Reset.Disabled, nCom)Type of controller output reset
Controller › Proportional term
Real[nCom]kfill(1, nCom)Gain of controller
Controller › Integral term
Modelica.Units.SI.Time[nCom]Tifill(0.5, nCom)Time constant of integrator block
Real[nCom]Nifill(0.9, nCom)Ni*Ti is time constant of anti-windup compensation
Controller › Derivative term
Modelica.Units.SI.Time[nCom]Tdfill(0.1, nCom)Time constant of derivative block
Real[nCom]Ndfill(10, nCom)The higher Nd, the more ideal the derivative block
Controller › Wheightning
Real[nCom]wpfill(1, nCom)Set-point weight for Proportional block (0..1)
Real[nCom]wdfill(0, nCom)Set-point weight for Derivative block (0..1)
Controller › Controller limits
Real[nCom]yMaxfill(1, nCom)Upper limit of output
Real[nCom]yMinfill(0, nCom)Lower limit of output
Initialisation › General
Modelica.Blocks.Types.Init[nCom]initTypefill(Modelica.Blocks.Types.Init.InitialState, nCom)Init: (1: no init, 2: steady state, 3: initial state, 4: initial output)
Initialisation › Start values
Real[nCom]xi_startfill(0, nCom)Initial or guess value value for integrator output (= integrator state)
Real[nCom]xd_startfill(0, nCom)Initial or guess value for state of derivative block
Real[nCom]y_startfill(0, nCom)Initial value of output

Connectors

TypeNameDefaultDescription
Modelica.Blocks.Interfaces.BooleanOutputuseExtBloBoolean block used to set data bus' useExt-signal
Modelica.Blocks.Interfaces.RealOutput[nCom]manVarThrInput connector to pass controller's manipualted signals through if activated
Modelica.Blocks.Interfaces.RealInput[nCom]curManVarArray of signals with current manipulated variables of controlled components
Modelica.Blocks.Interfaces.RealOutput[nCom]manVarArray of manipulated variables for controlled components
Interfaces.ModularHeatPumpControlBusdataBusData bus with control signals

Components

TypeNameDefaultDescription
Continuous.LimPID[nCom]intConInternal controller if internal controller is required

Revisions

  • October 17, 2017, by Mirko Engelpracht:
    First implementation (see issue 457).