Escola de Engenharia
Departamento de Engenharia Elétrica
ENG04037 Sistemas de Controle Digitais
Controladores PID
1 Introdução
Por definição, a expressão do controlador PID contínuo é
Z t
d
u(t) = Kp e(t) + Ki e(τ )dτ + Kd e(t)
0 dt
onde Kp , Ki e Kd são os ganhos proporcional, integral e derivativo, respectiva-
mente.
Para que os parâmetros do controlador PID possam ser mais facilmente asso-
ciados aos polos e zeros da função de transferência, é mais conveniente que os
ganhos sejam parametrizados da seguinte forma:
1 t
Z
d
u(t) = Kp e(t) + e(τ )dτ + Td e(t)
Ti 0 dt
onde Ti e Td são os tempos integral e derivativo, respectivamente, tais que Ki =
Kp
Ti
e Kd = Kp Td .
1
Kp
+
E(z) + U (z)
Ci (z)
Cd (z)
Forward differences:
T T 1 Ti
Ci (z) = Ki = Kp = Kp com τi =
z−1 Ti (z − 1) τi (z − 1) T
z−1 z−1 Td
Cd (z) = Kd = Kp Td = Kp τd (z − 1) com τd =
T T T
1
C(z) = Kp + Kp + Kp τd (z − 1)
τi (z − 1)
τi (z − 1) + 1 + τi τd (z − 1)2
= Kp
τi (z − 1)
τi (z − 1) + 1 + τi τd (z 2 − 2z + 1)
= Kp
τi (z − 1)
2
τi τd z + (τi − 2τi τd )z + 1 + τi τd − τi
= Kp
τi (z − 1)
z + τd − 2 z + τi1τd + 1 − τ1d
2 1
= Kp τd
z − 1
1 i +1
z + τd − 2 z + τi τdτ−τ
2
i τd
C(z) = Kp τd (1)
z−1
2
A função de transferência possui dois zeros reais ou complexos e um polo
em z = 1. Como a função de transferência possui mais zeros finitos do
que polos finitos a sua implementação é problemática. Assim, é preferível
utilizar as outras aproximações que não apresentam esse problema.
Backward differences:
Tz Tz z
Ci (z) = Ki = Kp = Kp
z−1 Ti (z − 1) τi (z − 1)
z z−1
C(z) = Kp + Kp + Kp τd
τi (z − 1) z
τi z(z − 1) + z + τi τd (z − 1)2
2
= Kp
τi z(z − 1)
τi (z 2 − z) + z 2 + τi τd (z 2 − 2z + 1)
= Kp
τi z(z − 1)
(τi + 1 + τi τd )z 2 − (τi + 2τi τd )z + τi τd
= Kp
τi z(z − 1)
2 τi +2τi τ τi τ
τi + 1 + τi τd z − τi +1+τi τdd z + τi +1+τd i τd
= Kp
τi z(z − 1)
z 2 − 1+2τ d
z + 1+ τ1d+τ
1 1+ τ1 +τd τi d
C(z) = Kp 1 + + τd i
τi z(z − 1)
Aproximação bilinear:
T z+1 T z+1 1 z+1
Ci (z) = Ki = Kp = Kp
2 z−1 2Ti z − 1 2τi z − 1
3
1 z+1 z−1
C(z) = Kp + Kp + Kp τd 2
2τi z − 1 z+1
2τi (z + 1)(z − 1) + (z + 1)2 + 4τi τd (z − 1)2
= Kp
2τi (z + 1)(z − 1)
2τi (z − 1) + (z 2 + 2z + 1) + 4τi τd (z 2 − 2z + 1)
2
= Kp
2τi (z + 1)(z − 1)
(2τi + 1 + 4τi τd )z 2 + (2 − 8τi τd )z + 1 + 4τi τd − 2τi
= Kp
2τi (z + 1)(z − 1)
2 2−8τi τ 1+4τi τd −2τi
2τi + 1 + 4τi τd z + 2τi +1+4τdi τd z + 2τi +1+4τ i τd
= Kp
2τi (z + 1)(z − 1)
1 1
−4τd +2τd −1
z2 + τi
z+ 2τi
2τi (z + 1)(z − 1)
Assim, o controlador PID apresenta dois polos e dois zeros. As posições dos
polos são determinadas pela aproximação utilizada, para backward differences
tem-se polos em z = 0 e z = 1 e para aproximação bilinear tem-se polos em
z = −1 e z = 1. As posições dos dois zeros são determinadas pelos parâmetros
do controlador.
3 Controlador PD Digital
Para um controlador PD tem-se
C(z) = Kp + Cd (z)
Dependendo da aproximação utilizada para a derivada, Cd (z) pode assumir
várias formas diferentes.
Forward differences:
C(z) = Kp + Kp τd (z − 1)
= Kp (1 + τd (z − 1))
= Kp (τd z + 1 − τd )
1 − τd
C(z) = Kp τd z +
τd
4
A função de transferência possui apenas um zero real dentro do círculo uni-
tário em z = − τdτ−1d
. Como a função de transferência possui mais zeros
finitos do que polos finitos a sua implementação é problemática. Assim,
é preferível utilizar as outras aproximações que não apresentam esse pro-
blema.
Backward differences:
z−1
C(z) = Kp + Kp τd
z
z + τd (z − 1)
= Kp
z
(1 + τd )z − τd
= Kp
z
τd
z − 1+τ
C(z) = Kp (1 + τd ) d
(2)
z
C(z) = Kp (1 + 2τd )
z+1
4 Controlador PI Digital
Para um controlador PI tem-se
5
C(z) = Kp + Ci (z)
Dependendo da aproximação utilizada para a integral Ci (z) pode assumir vá-
rias formas diferentes.
Forward differences:
1
C(z) = Kp + Kp
τi (z − 1)
τi (z − 1) + 1
= Kp
τi (z − 1)
τi z − τi + 1
= Kp
τi (z − 1)
z − τiτ−1
C(z) = Kp i
z−1
Backward differences:
z
C(z) = Kp + Kp
τi (z − 1)
τi (z − 1) + z
= Kp
τi (z − 1)
(τi + 1)z − τi
= Kp
τi (z − 1)
τi
τi + 1 z − τi +1
C(z) = Kp
τi z−1
Aproximação bilinear:
T z+1 T z+1 1 z+1
Ci (z) = Ki = Kp = Kp
2 z−1 2Ti z − 1 2τi z − 1
6
1 z+1
C(z) = Kp + Kp
2τi z − 1
2τi (z − 1) + (z + 1)
= Kp
2τi (z − 1)
(2τi + 1)z + 1 − 2τi
= Kp
2τi (z − 1)
1−2τ
2τi + 1 z + 2τi +1i
C(z) = Kp
2τi z−1
7
1
1.57
1.88 1.26
0.9
3.14
0
3.14
−0.2
2.83 0.314
−0.4
2.51 0.628
−0.6
1.88 1.26
1.57
−1
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1
Eixo Real
que faça com que o lugar das raízes seja tal que possibilite localizar todos os
polos mais próximo da origem do plano, de preferência localiza-los na origem do
plano.
Utilizando-se um controlador PI não há como reduzir a circunferência, pois
esse controlador possui um polo em z = 1 e independentemente da posição do
zero, não há como reduzir o raio da circunferência, como mostra a Fig. 3.
Um compensador PD obtido com a aproximação bilinear também não permite
obter-se o desempenho desejado, pois não é possível sequer garantir que todos os
polos em malha fechada fiquem dentro do círculo unitário, como mostra a Fig. 4.
Utilizando-se um compensador PD obtido com a aproximação backward dif-
ferences resulta no lugar das raízes mostrado na Fig. 5. Note que ocorre um
cancelamento do zero da planta com o polo do controlador e através do ade-
8
1
1.57
1.88 1.26
0.9
3.14
0
3.14
−0.2
2.83 0.314
−0.4
2.51 0.628
−0.6
1.88 1.26
1.57
−1
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1
Eixo Real
9
1
1.57
1.88 1.26
2.2 0.1
0.942
0.2
0.3
2.51 0.4 0.628
0.5 0.5
0.6
0.7
2.83 0.8 0.314
Eixo Imaginário
0.9
3.14
0
3.14
2.83 0.314
−0.5
2.51 0.628
2.2 0.942
1.88 1.26
1.57
−1
Figura 4: Lugar da raízes para o sistema (3) com compensador PD obtido com
aproximação bilinear.
τd
z− 1+τd z − 0, 4
C(z) = Kp (1 + τd ) = 1, 6
z z
de onde
Kp (1 + τd ) = 1, 6
τd
= 0, 4
1 + τd
Portanto τd = 0, 6667 e Kp = 0, 96, que leva a Kd = Kp τd T = 0, 64T .
A Fig. 6 mostra a resposta do sistema ao degrau unitário.
10
1
1.57
1.88 1.26
0.9
3.14
0
3.14
−0.2
2.83 0.314
−0.4
2.51 0.628
−0.6
1.88 1.26
1.57
−1
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1
Eixo Real
Figura 5: Lugar da raízes para o sistema (3) com compensador PD obtido com
aproximação backward differences.
11
2
1.5
0.5
Saída, Controle
−0.5
−1
−1.5
−2
0 2 4 6 8 10 12 14 16 18 20
Tempo (sec)
lizar o outro zero de forma que o diagrama do lugar das raízes passe pela origem
do plano. Isso ocorre quando o zero é posicionado em z = 0, 4444.
Com essa disposição de polos e zeros e malha aberta, o ganho em malha
fechada para posicionar os polos de malha fechada na origem do plano é
Q
distância dos polos 1 × 0.8
K= Q = = 1.8002
distância dos zeros 0.4444
Assim, o controlador é dado por
(z − 0, 8)(z − 0, 4444)
C(z) = 1, 8002 (5)
z(z − 1)
Assim, de (2) tem-se
12
1
1.57
1.88 1.26
0.8 2.2 0.1
0.942
0.2
0.6 0.3
2.51 0.4 0.628
0.5
0.4 0.6
0.7
2.83 0.8 0.314
0.2
Eixo Imaginário
0.9
3.14
0
3.14
−0.2
2.83 0.314
−0.4
2.51 0.628
−0.6
1.88 1.26
1.57
−1
−1 −0.5 0 0.5 1
Eixo Real
Figura 7: Lugar da raízes para o sistema (3) com compensador PID obtido com
aproximação bilinear.
z 2 − 1+2τ d
z + 1+ τ1d+τ
1 1+ τ1 +τd τi d
C(z) = Kp 1 + + τd i
τi z(z − 1)
(z − 0, 8)(z − 0, 4444) z 2 − 1, 2444z + 0, 3555
= 1, 8002 = 1, 8002
z(z − 1) z(z − 1)
de onde
13
1
1.57
1.88 1.26
0.8 2.2 0.1
0.942
0.2
0.6 0.3
2.51 0.4 0.628
0.5
0.4 0.6
0.7
2.83 0.8 0.314
0.2
Eixo Imaginário
0.9
3.14
0
3.14
−0.2
2.83 0.314
−0.4
2.51 0.628
−0.6
1.88 1.26
1.57
−1
−1 −0.5 0 0.5 1
Eixo Real
Figura 8: Lugar da raízes para o sistema (3) com compensador PID obtido com
aproximação backward differences.
1
Kp 1 + + τd = 1, 8002
τi
1 + 2τd
= 1, 2444
1 + τ1i + τd
τd
= 0, 3555
1 + τ1i + τd
ou
14
1
Kp 1 + + τd = 1, 8002
τi
τi + 2τi τd
= 1, 2444
τi + 1 + τi τd
τi τd
= 0, 3555
τi + 1 + τi τd
que é equivalente a
1
Kp 1 + + τd = 1, 8002
τi
τi τd − 0, 3235τi = 1, 6469
τi τd − 0, 5516τi = 0, 5516
Kp
Portanto τi = 4.8018, τd = 0, 6665 e Kp = 0, 9602, que leva a Ki = τi T
=
0, 2T e Kd = Kp τd T = 0, 64T .
A Fig. 9 mostra a resposta do sistema ao degrau unitário.
k−1
X 1
u(k − 1) = Kp e(k − 1) + Ki T e(i) + Kd (e(k − 1) − e(k − 2))
i=0
T
1
u(k)−u(k−1) = Kp (e(k) − e(k − 1))+Ki T e(k)+Kd (e(k) − 2e(k − 1) + e(k − 2))
T
ou
15
2
1.5
0.5
Saída, Controle
−0.5
−1
−1.5
−2
0 2 4 6 8 10 12 14 16 18 20
Tempo (sec)
1
u(k) = u(k−1)+Kp (e(k) − e(k − 1))+Ki T e(k)+Kd (e(k) − 2e(k − 1) + e(k − 2))
T
que é uma forma mais conveniente de ser utilizada por evitar problemas de over-
flow devido ao somatório. Adicionalmente, na presença de saturação, basta corri-
gir o valor de u(k − 1) para o valor saturado para evitar o problema de windup1 .
O problema de controle PID ótimo consiste em obter-se os valores de Kp , Ki
e Kd de forma que o desempenho do sistema seja o melhor possível. Ou seja, um
controlador ótimo é um controlador que faz com que o desempenho do sistema
seja, no mínimo, tão bom quanto o possível de ser obtido com qualquer outro
controlador2 .
Outro aspecto do problema é o que significa melhor desempenho. Obvia-
mente, o que é desempenho melhor depende de como se mede o desempenho. Em
1
Obviamente, existem técnicas mais sofisticadas de anti-windup, mas estão fora do escopo do
problema tratado aqui.
2
Em sistemas de controle, otimizar significa obter comprovadamente o melhor possível e não
apenas melhorar o desempenho.
16
controle ótimo é usual definir um índice de desempenho, usualmente denominado
de custo, cujo valor é um escalar. Os custos mais utilizados são:
n
X
J(Kp , Ki , Kd ) = e2 (k) (7)
k=0
n
X
J(Kp , Ki , Kd ) = |e(k)| (8)
k=0
n
X
J(Kp , Ki , Kd ) = ke2 (k) (9)
k=0
n
X
J(Kp , Ki , Kd ) = k|e(k)| (10)
k=0
17
Assim, na abordagem de controle ótimo, os ganhos do controlador PID podem
ser obtidos através de
18
2. Busca unidimensional (Algoritmo de Davies-Swan-Campey)
K(k + 1) = K(k) + λ∗ H
Onde
λ∗ = arg min J (K(k) + λH)
λ
3. Critério de parada
Se kJ (K(k + 1)) − J (K(k))k ≤ ǫ ou k > número máximo de iterações
K ∗ = K(k + 1) e fim
Senão k = k + 1 e vá para 1
O método de Davies-Swam-Campey, dada um valor inicial λ0 (0), passo inicial
δ(k), a tolerância ǫ, e K ∈ [0, 1]3 é:
1.
λ−1 (k) = λ0 (k) − δ(k)
λ1 (k) = λ0 (k) + δ(k)
J0 (k) = J (λ0 (k))
J1 (k) = J (λ1 (k))
2. Se J0 (k) > J1 (k) faça p = 1 e vá para 3 senão calcule J−1 (k) = J (λ−1 (k))
Se J−1 (k) < J0 (k) faça p = −1 e vá para 3 senão vá para 6
3. Para n = 1, 2, · · · calcule Jn (k) = f (λn−1 (k) + 2n−1 pδ(k)) até Jn (k) >
Jn−1 (k)
4. Calcule Jm (k) = J (λn−1 (k) + 2n−2 pδ(k))
5. Se Jm (k) ≥ Jn−1 (k), calcule
19
6. Calcule
18
u(t)
y(t)
16 e(t)
J(t)
14
12
10
-2
0 2 4 6 8 10 12 14 16 18 20
20
ISE’: n
X
e2 (k) + ρu2 (k)
J(Kp , Ki , Kd ) = (11)
k=0
IAE’: n
X
|e(k)| + ρu2 (k)
J(Kp , Ki , Kd ) = (12)
k=0
4.5
u(t)
y(t)
4 e(t)
J(t)
3.5
2.5
1.5
0.5
-0.5
0 2 4 6 8 10 12 14 16 18 20
Figura 11: Resposta do PID ótimo segundo o critério ISE’ com ρ = 0.1.
Note-se que não é intuitivo o ajuste do parâmetro ρ e que não existe uma
correspondência direta do valor desse parâmetro com especificações típicas da
resposta desejada para o sistema, como tempo de acomodação e overshoot.
Uma abordagem alternativa, para se recuperar intuição na especificação dos
parâmetros é utilizar um critério semelhante ao ISE, mas utilizando (para efeitos
de cálculo do critério) o erro em relação à um modelo de referência e não em
relação a referência em sí. Ou seja, calculado o custo por
21
n
X
J(Kp , Ki , Kd ) = e2m (k)
k=0
Y( s) 1
= 2
U (s) s +s+1
A otimização para a mesma planta, porém utilizando o modelo de referência
resulta nos ganhos Kp = 0, 7055, Ki = 0, 1102, Kd = 0, 2194, com um J(20) =
0, 1437, e a figura 12 mostra o sinal de saída, o sinal de controle, o sinal erro e a
evolução do custo.
1.6
u(t)
y(t)
ym(t)
1.4 e(t)
J(t)
1.2
0.8
0.6
0.4
0.2
-0.2
0 2 4 6 8 10 12 14 16 18 20
22