Block: PIDLimit



PIC




Inports


In

Control error input



Init

Value which is loaded at initialization function call



max

Maximum output value



min

Minimum output value



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 with Output Limitation:

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 doesn’t return to zero, but generates an overflow at zero crossing if the derivative parameter value is too high.

Developer note: The fixed point implementation source code of this block is used for block PID.

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



max

int8



min

int8



Enable

int8






Outports Data Type


Out

int8




Implementation: FiP16


16 Bit Fixed Point Implementation



Inports Data Type


In

int16



Init

int16



max

int16



min

int16



Enable

bool






Outports Data Type


Out

int16




Implementation: FiP32


32 Bit Fixed Point Implementation



Inports Data Type


In

int32



Init

int32



max

int32



min

int32



Enable

bool






Outports Data Type


Out

int32




Implementation: Float32


32 Bit Floating Point Implementation



Inports Data Type


In

float32



Init

float32



max

float32



min

float32



Enable

bool






Outports Data Type


Out

float32




Implementation: Float64


64 Bit Floating Point Implementation



Inports Data Type


In

float64



Init

float64



max

float64



min

float64



Enable

bool






Outports Data Type


Out

float64