### Block: PI

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
initHandling | 3 | Determines what the signal provided on Init input is used for
ts_fact | 4 | Multiplication factor of base sampling time (in integer format)

##### Description:

PI controller:

G(s) = Kp + Ki/s

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 PI controller realizes the following transfer function:

Developer note: The source code of block PILimit 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 | bool

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