| Inports
| |
| In | Control error input |
| Init | Initial value of output Out when enabled |
| Enable | Enable == 0: Deactivation of block; Out set to 0 Enable 0->1: Preload of integral part Enable == 1: Activation of block |
| Outports
| |
| Out | Control value |
| Mask Parameters | ||
|
Name | ID | Description |
| Kp | 1 | Proportional Factor |
| Ki | 2 | Integral Factor |
| Kd | 3 | Derivative Factor |
| fc | 4 | Cutoff frequency of realization low pass |
| initHandling | 5 | Determines what the signal provided on Init input is used for |
| ts_fact | 6 | Multiplication factor of base sampling time (in integer format) |
PID controller:
G(s) = Kp + Ki/s + Kd*s/(s/(2*pi*fc) + 1)
Preloading Integral
A rising edge at the Enable inport enables the controller and preloads the integral.
One may choose from two options how to preload the integral value:
Preload the integral from the Init inport.
Preload the integral such that the first output of the controller matches the
current value at the Init inport.
This option allows controller switching without disturbing the control.
Note: Each fixed point implementation uses the next higher integer data type for the integral value storage variable.
Transfer function (zero-order hold discretization method):
When the block is enabled, the PID controller realizes the following transfer function:

FiP8 bug: When using the TI compiler the step response of the derivative part does not return to zero, but generates an overflow at zero crossing if the derivative parameter value is too high.
Developer note: For the fixed point implementations the source code of block PIDLimit is used.
| FiP8 | 8 Bit Fixed Point Implementation |
| FiP16 | 16 Bit Fixed Point Implementation |
| FiP32 | 32 Bit Fixed Point Implementation |
| Float32 | 32 Bit Floating Point Implementation |
| Float64 | 64 Bit Floating Point Implementation |
8 Bit Fixed Point Implementation
| Inports Data Type
| |
| In | int8 |
| Init | int8 |
| Enable | bool |
| Outports Data Type
| |
| Out | int8 |
16 Bit Fixed Point Implementation
| Inports Data Type
| |
| In | int16 |
| Init | int16 |
| Enable | bool |
| Outports Data Type
| |
| Out | int16 |
32 Bit Fixed Point Implementation
| Inports Data Type
| |
| In | int32 |
| Init | int32 |
| Enable | bool |
| Outports Data Type
| |
| Out | int32 |
32 Bit Floating Point Implementation
| Inports Data Type
| |
| In | float32 |
| Init | float32 |
| Enable | bool |
| Outports Data Type
| |
| Out | float32 |
64 Bit Floating Point Implementation
| Inports Data Type
| |
| In | float64 |
| Init | float64 |
| Enable | bool |
| Outports Data Type
| |
| Out | float64 |