# idaes.dynamic package¶

## idaes.dynamic.pid_controller module¶

PID controller block

class idaes.dynamic.pid_controller.PIDBlock(*args, **kwargs)

This is a PID controller block. The PID Controller block must be added after the DAE transformation.

Args:

rule (function): A rule function or None. Default rule calls build(). concrete (bool): If True, make this a toplevel model. Default - False. ctype (str): Pyomo ctype of the block. Default - “Block” default (dict): Default ProcessBlockData config

Keys
pv
A Pyomo Var, Expression, or Reference for the measured process variable. Should be indexed by time.
output
A Pyomo Var, Expression, or Reference for the controlled process variable. Should be indexed by time.
upper
The upper limit for the controller output, default=1
lower
The lower limit for the controller output, default=0
calculate_initial_integral
Calculate the initial integral term value if true, otherwise provide a variable err_i0, which can be fixed, default=True
initialize (dict): ProcessBlockData config for individual elements. Keys
are BlockData indexes and values are dictionaries described under the “default” argument above.
idx_map (function): Function to take the index of a BlockData element and
return the index in the initialize dict from which to read arguments. This can be provided to overide the default behavior of matching the BlockData index exactly to the index in initialize.
Returns:
(PIDBlock) New instance
class idaes.dynamic.pid_controller.PIDBlockData(component)[source]
build()[source]

Build the PID block