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

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




ts_fact

5

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 +  KiTsz - 1 + Kd2 πfc z - e-2πfcTs

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

bool






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