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
| Type | Name | Default | Description |
|---|---|---|---|
| Real | k | 1 | Error Gain |
| SI.Time | Ti | 1 | Time Constant (Ti>0 required) |
| Real | yb | 0 | Output bias |
| Real | k_s | 1 | Scaling factor for setpoint: k_s*u_s |
| Real | k_m | 1 | Scaling factor for measurement: k_m*u_m |
| Boolean | directActing | true | =false reverse acting |
| Initialization | |||
| Modelica.Blocks.Types.Init | initType | Modelica.Blocks.Types.Init.NoInit | Type of initialization (1: no init, 2: steady state, 3: initial state, 4: initial output) |
| Real | x_start | 0 | Initial or guess value of error integral (state) |
| Real | y_start | 0 | Initial value of output |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| RealInput | u_s (from SVcontrol) | Connector of setpoint input signal | |
| RealInput | u_m (from SVcontrol) | Connector of measurement input signal | |
| RealOutput | y (from SVcontrol) | Connector of actuator output signal |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Real | x | Error integral (state) | |
| Real | Kc | k*(if directActing then +1 else -1) | |
| Real | e | k_s*u_s - k_m*u_m |