Inports
| |
In | Control error input |
Init | Value which is loaded at initialization function call |
Enable | Enable == 0: Deactivation of block; Out set to 0 Enable 0->1: Preload of integral part Enable == 1: Activation of block |
Outports
| |
Out |
|
Mask Parameters | |
Kp | Proportional Factor |
Ki | Integral Factor |
Kd | Derivative Factor |
fc | Cutoff frequency of realization low pass |
ts_fact | Multiplication factor of base sampling time (in integer format) |
PID controller:
G(s) = Kp + Ki/s + Kd*s/(s/(2*pi*fc) + 1)
Each fixed point implementation uses the next higher integer datatype for the integrational value storage variable.
A rising flank at the Enable inport will preload the integrational part with the value present
on the Init inport.
Transfer function (zero-order hold discretization method):
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 | int8 |
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 |