Pid Toolbox
Pid Toolbox
Pid Toolbox
2. THEORETICAL BASES
The underlying theories of the developed software are,
in fact, the results of Karimi et al. (2007), Karimi and
Galdos (2010), and Galdos et al. (2010). We shall briey
describe these results here in order to better understand
the commands of the toolbox. Hence, rst the class of controllers and models are presented and then dierent control
performances that can be considered by the toolbox are
given.
Im
d1
1/gm
-1
Re
m
c
x
d2
k > x ,
k x ,
(4)
d(Mm , Ld (jk ))
Im
|W1 (jk )|
Im
Mm
-1
-1
Re
Re
Ld (jk )
Ld (jk )
L(jk , )
Li (jk , )
m
N
(6)
i=1 k=1
J() =
N
(10)
k=1
3. TOOLBOX COMMANDS
There are three commands that constitute the software
structure. The rst command determines the controller
structure. In the second command the control performance
is dened, and nally the last command designs the controller with the predened structure to meet the performance specications. In the following comes a description
of these three commands.
3.1 Controller structure
The controller structure is dened by the vector of basis
function . The command is of the form:
phi = conphi(ConType,ConPar,CorD,F)
ConType is a string specifying the type of the controller and can take the following values: PI, PD,
1
0.5
0
0.5
Imaginary Axis
1
1.5
2
2.5
3
3.5
1
0.5
0.5
Real Axis
4. EXAMPLES
This section presents some examples of the use of the
toolbox commands.
Example 1 Consider a system with three models in three
dierent operating points :
4e3s
e5s
G1 (s) =
; G2 (s) = 2
10s + 1
s + 14s + 7.5
s
2e
G3 (s) =
20s + 1
Compute a PID controller for a gain margin of greater
than 3 and a phase margin of at least 60 for all models.
Specifying these margins, a controller with maximum
performance in terms of load disturbance rejection is
designed by entering the series of commands:
s=tf('s');
G{1}=exp(3*s)*4/(10*s+1);
G{2}=exp(5*s)/(s2+14*s+7.5);
G{3}=exp(s)*2/(20*s+1);
phi=conphi('PID',0.05,'s');
per=conper('GPhC', [3,60]);
K=condes(G,phi,per)
s
1
]T
s 1 + s
(13)
In Fig. 5 the Nyquist diagrams of the resulting openloop transfer functions for three values of = 1, 0, 1
are shown. All three curves do not intersect the modulus
margin circle and their distance to Ld is minimized.
Example 3
In this example, a PID controller for the
multi-model MIMO process proposed in Bao et al. (1999)
is designed. In Bao et al. (1999) a multi-loop PID controller
is designed for the process G1 (s) with weighting functions
W1 (s) and W2 (s). Afterwards, the designed controller
is examined on a slightly dierent system (denoted by
G2 here) to check its robustness. The related transfer
functions are:
0.6
0.4
Imaginary Axis
0.2
great advantage yielding faster and reliable results. Dealing with multi-model, either SISO or MIMO systems is
easy with the presented toolbox. Three main commands
are developed for design as shown in examples. A GUI
will also be designed for the software to become more
convenient to use.
0
0.2
REFERENCES
circle.
controller design for spectral MIMO models by convex
G1 (s) =
34.84
18.85
Garpinger, O. and Hagglund, T. (2008). A software tool
(75.43s + 1)(0.30s + 1) (110.5s + 1)(0.03s + 1)
for robust PID design. In Proceedings of the 17th IFAC
33.89 e0.1s
32.63 e0.1s
World Congress. Seoul, Korea.
18.85 e0.1s
34.84 e0.1s
controller design via LMI approach. Journal of Process
(76.0s + 1)(0.31s + 1) (109.5s + 1)(0.025s + 1)
Control, 12(1), 3 13.
s + 1000
500s + 1000
Gonzalez-Martin, R., Lopez, I., Morilla, F., and Pastor, R.
W1 (s) =
I
W2 (s) =
I
(2003). Sintolab: the REPSOL-YPF PID tuning tool.
1000s + 1
3s + 5000
Control Engineering Practice, 11(12), 14691480.
Here, the weighting functions W1 and W2 are applied to
both systems G1 and G2 where a simple desired open loop Harmse, M., Hughes, R., Dittmar, R., Singh, H., and
Gill, S. (2009). Robust optimization-based multi-loop
function Ld is chosen as shown by the commands below:
PID controller tuning: A new tool and an industrial
example. In 7th IFAC International Symposium on
s=tf('s');
Advanced Control of Chemical Processes, ADCHEM09,
Ld=1/(10*s);
548553. Istanbul, Turkey.
par.W1=(s+1000)/(1000 *s+1);
Karimi,
A. and Galdos, G. (2010). Fixed-order H
par.W2=(500*s+1000)/(3*s+5000);
controller
design for nonparametric models by convex
G{1}=G1; G{2}=G2;
optimization. Automatica, 46(8), 13881394.
phi=conphi('PID',0.05,'s');
Karimi, A., Kunze, M., and Longchamp, R. (2007). Roper=conper('Hinf',par,Ld);
K=condes(G,phi,per)
bust controller design by linear programming with application to a double-axis positioning system. Control
Engineering Practice, 15(2), 197208.
The result is the following controller:
Kunze, M., Karimi, A., and Longchamp, R. (2007). Gain
10.83s2 17.12s 0.103 1.301s2 + 12.31s + 0.1239
scheduled controller design by linear programming. In
0.05s2 + s
0.05s2 + s
K(s) =