blockPI

Proportional-Integral controller

Extends from Modelica.Blocks.Interfaces.SI2SO (2 Single Input / 1 Single Output continuous control block).

Information

This blocks defines the transfer function between the input u and the output y as PI system:

               1
 y = k * (1 + ---) * u
              T*s
         T*s + 1
   = k * ------- * u
           T*s

If you would like to be able to change easily between different transfer functions (FirstOrder, SecondOrder, ... ) by changing parameters, use the general model class TransferFunction instead and model a PI SISO system with parameters
b = {k*T, k}, a = {T, 0}.

Example:

 parameter: k = 0.3,  T = 0.4

 results in:
             0.4 s + 1
    y = 0.3 ----------- * u
               0.4 s

It might be difficult to initialize the PI component in steady state due to the integrator part. This is discussed in the description of package Continuous.

Parameters

TypeNameDefaultDescription
Realk1Gain. Output is 0..1
Modelica.Units.SI.TimeT1Integral time (seconds)
Realrange300.0Process variable range
BooleandirectActionfalse
BooleanallowIntegralSaturationtrueif not allowed, simulation can be slower
Initialization
Modelica.Blocks.Types.InitinitTypeModelica.Blocks.Types.Init.NoInitType of initialization (1: no init, 2: steady state, 3: initial state, 4: initial output)
Realx_start0Initial or guess value of integral action
Realy_start0Initial value of output

Connectors

TypeNameDefaultDescription
RealInputu1 (from SI2SO)Connector of Real input signal 1
RealInputu2 (from SI2SO)Connector of Real input signal 2
RealOutputy (from SI2SO)Connector of Real output signal

Components

TypeNameDefaultDescription
RealerrorPV-SP
RealxIntegral action