3. ITAE parameters for FOPDT system

This notebook is a convenient interface to the tbcontrol.fopdtitae module, which calculates the values of the PI/PID controller settings based on Table 11.3 of Seborg, Edgar, Melichamp and Lewin (itself based on Smith and Corripio, 1997).

[1]:
from tbcontrol import fopdtitae

We can get the parameters using the function fopdtitae.parameters: The default is disturbance parameters on a PI controller.

[2]:
fopdtitae.parameters(K=1, tau=1, theta=1)
[2]:
[0.859, 1.4836795252225519]

4. Interactive version

We’ll build an interactive version by printing the parameters with their names and allowing for easy entry.

[3]:
from ipywidgets import interact, FloatText
[4]:
names = 'Kc', 'τI', 'τD'

This is the function which does the calculations. You can check the values in Example 11.5:

[5]:
def tablefunction(K, tau, theta=1.07, type_of_input='Disturbance', type_of_controller='PI'):
    parameters = fopdtitae.parameters(K, tau, theta, type_of_input, type_of_controller)
    for name, value in zip(names, parameters):
        print(name, "=", value)
[6]:
tablefunction(1.54, 5.93, 1.07, 'Disturbance', 'PI')
Kc = 2.9719324064107253
τI = 2.745987615154182
[7]:
interact(tablefunction,
         K=FloatText(value=1.54), tau=FloatText(value=5.93), theta=FloatText(value=1.07),
         type_of_input=['Disturbance', 'Set point'], type_of_controller=['PI', 'PID']);
[ ]: