Optimize PI controller parameters using ISE, IAE and ITAE minimization
​Authors: Housam Binous and Ahmed Bellagi

Consider the feedback control of a three non-interacting tanks in series system (see Ref. 1). We use ISE, IAE and ITAE criteria in order to fetch the optimal PI controller parameters. The feedback loop is modeled using SIMULINK while the optimal PI controller parameters are obtained using fmincon. These results are in agreement with their counterparts computed using Mathematica.
​
​References:​
[1] https://github.com/Aadityaamlan-Panda/Three-NonInt-Tanks
In[]:=
Kc=.;TAUI=.;TAUD=0;
In[]:=
Gm=1;Gv=1;Gp=6/(2s+1)/(4s+1)/(6s+1);
In[]:=
Gc[KP_?NumericQ,TAUI_?NumericQ]:=KP(1+1/s/TAUI)
In[]:=
G[KP_?NumericQ,TAUI_?NumericQ]:=GpGmGvGc[KP,TAUI]/(1+GpGmGvGc[KP,TAUI])
In[]:=
y[KP_?NumericQ,TAUI_?NumericQ]:=InverseLaplaceTransform[1/sG[KP,TAUI],s,t]//Chop;

ISE

In[]:=
f1[KP_?NumericQ,TAUI_?NumericQ]:=Re[Quiet@NIntegrate[(1-y[KP,TAUI])^2,{t,0,100}]//Chop];
In[]:=
NMinimize[f1[KP,TAUI],{KP,TAUI},MaxIterations->10]
Out[]=
{4.63684,{KP0.559065,TAUI23.6772}}

IAE

In[]:=
f2[KP_?NumericQ,TAUI_?NumericQ]:=Re[Quiet@NIntegrate[Abs[(1-y[KP,TAUI])],{t,0,100}]//Chop];
In[]:=
NMinimize[f2[KP,TAUI],{KP,TAUI},MaxIterations->10]
Out[]=
{8.60913,{KP0.31873,TAUI13.0011}}

ITAE

In[]:=
f3[KP_?NumericQ,TAUI_?NumericQ]:=Re[Quiet@NIntegrate[tAbs[(1-y[KP,TAUI])],{t,0,100}]//Chop];
In[]:=
NMinimize[f3[KP,TAUI],{KP,TAUI},MaxIterations->10]
Out[]=
{68.8903,{KP0.196318,TAUI9.65582}}