blockLimPI
limited PI-controller with anti-windup and feedforward
Extends from Modelica.Blocks.Interfaces.SISO (Single Input Single Output continuous control block).
Information
Proportional - Integral - controller with optional feed-foward and limitation at the output.
When the ouput is limited, the controller cannot bring the control error to zero and the integrator will not stop integrating. To avoid thie WindUp - effect, an Anti-WindUp loop is implemented: The difference between unlimited and limited output is fed back to the integrator's input.
The integral part can be switched off to obtain a limited P-controller.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | useI | true | PI else P |
| Real | k | 1 | Gain |
| Modelica.Units.SI.Time | T | 1 | Time Constant (T>0 required) |
| FeedForward | |||
| Boolean | FeedForward | true | Use FeedForward? |
| Real | kFF | 1 | FeedForward gain |
| Limitation | |||
| DriveControl.Types.Limitation | limitation | DriveControl.Types.Limitation.Constant | Type of limits |
| Real | YMax | inf | Upper limit of output |
| Real | YMin | -YMax | Lower limit of output |
| 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 state |
| Real | y_start | 0 | Initial value of output |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| RealInput | u (from SISO) | Connector of Real input signal | |
| RealOutput | y (from SISO) | Connector of Real output signal | |
| Modelica.Blocks.Interfaces.RealInput | feedForward | ||
| Modelica.Blocks.Interfaces.RealInput | yMax | Upper limit of output | |
| Modelica.Blocks.Interfaces.RealInput | yMin | Lower limit of output |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Blocks.Math.Add | addAntiWindup | ||
| Modelica.Blocks.Continuous.Integrator | integrator | ||
| Modelica.Blocks.Math.Add3 | add3 | ||
| Modelica.Blocks.Nonlinear.VariableLimiter | limiter | ||
| Modelica.Blocks.Math.Feedback | feedback |