Block: PID



PIC




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)




Description:

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):

                    1                z - 1
G (z) = Kp +  KiTs------+ Kd2 πfc ------2πfcTs-
                  z - 1           z - e

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.

Implementations:
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

Implementation: FiP8


8 Bit Fixed Point Implementation



Inports Data Type


In

int8



Init

int8



Enable

int8






Outports Data Type


Out

int8




Implementation: FiP16


16 Bit Fixed Point Implementation



Inports Data Type


In

int16



Init

int16



Enable

bool






Outports Data Type


Out

int16




Implementation: FiP32


32 Bit Fixed Point Implementation



Inports Data Type


In

int32



Init

int32



Enable

bool






Outports Data Type


Out

int32




Implementation: Float32


32 Bit Floating Point Implementation



Inports Data Type


In

float32



Init

float32



Enable

bool






Outports Data Type


Out

float32




Implementation: Float64


64 Bit Floating Point Implementation



Inports Data Type


In

float64



Init

float64



Enable

bool






Outports Data Type


Out

float64