blockPI_Control

Proportional-Integral controller: y = yb + Kc*e + Kc/Ti*integral(e)

Extends from Modelica.Blocks.Interfaces.SVcontrol (Single-Variable continuous controller).

Information

This blocks defines the transfer function between the input u and the output y (element-wise) 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
Realk1Error Gain
SI.TimeTi1Time Constant (Ti>0 required)
Realyb0Output bias
Realk_s1Scaling factor for setpoint: k_s*u_s
Realk_m1Scaling factor for measurement: k_m*u_m
BooleandirectActingtrue=false reverse acting
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 error integral (state)
Realy_start0Initial value of output

Connectors

TypeNameDefaultDescription
RealInputu_s (from SVcontrol)Connector of setpoint input signal
RealInputu_m (from SVcontrol)Connector of measurement input signal
RealOutputy (from SVcontrol)Connector of actuator output signal

Components

TypeNameDefaultDescription
RealxError integral (state)
RealKck*(if directActing then +1 else -1)
Realek_s*u_s - k_m*u_m