Escolar Documentos
Profissional Documentos
Cultura Documentos
LABORATÓRIO 04
CONTROLADOR PD, PI E PID
1. Objetivo
Este laboratório tem por objetivo utilizar o Matlab para projetar controladores PI, PD e PID.
2. Introdução
Figura 1 - Polo em A está no lugar das raízes sem o controlador integrador e não está no lugar das raízes
com o controlador integrador.
Uma maneira de resolver isso é incluir um zero, próximo ao polo da origem, como mostra a Figura 2.
Figura 2 - Polo em A está aproximadamente no mesmo lugar das raízes com a inclusão do polo e do
zero.
Quando o zero está bem próximo da origem, θzc ≈ θpc, e o comportamento do sistema é pouco alterado. Esse
controlador é chamado de controlador PI, ou controlador proporcional e integral, uma vez que a inclusão do
zero equivale a somar um controlador proporcional com outro integral, como mostra a equação 1.
𝐾(𝑠 + 𝑎) 𝐾⁄ (1)
𝑎
=𝐾+
𝑠 𝑠
A comparação entre as saídas apenas com o ganho simples e com o controlador PI pode ser vista na Figura 3.
Figura 3 - Comparação das saídas de um sistema com controladores de ganho simples (original) e PI.
Figura 4 - Comparação das saídas de um sistema com controladores de ganho simples (original) e PI.
2.3. Melhorando o erro em regime permanente e a resposta transitória com o controlador PID
Combinando os controladores PD e PI é possível obter uma melhora tanto no erro de estado estacionário
quanto na resposta transitória de forma independente. Um controlador desse tipo é chamado de controlador
PID. Sua função de transferência pode ser vista na equação 3, e o diagrama de blocos de um sistema com
controlador PD é mostrado na Figura 5.
2 𝐾1 𝐾 (3)
𝐾2 𝐾1 𝑠 + 𝐾2 + 𝐾3 𝑠 2 𝐾3 (𝑠 + ⁄𝐾 𝑠 + 2⁄𝐾 )
3 3
𝐺𝑐 (𝑠) = 𝐾1 + + 𝐾3 𝑠 = =
𝑠 𝑠 𝑠
Figura 5 - Comparação das saídas de um sistema com controladores de ganho simples (original) e PI.
1 (4)
𝐺𝑐 (𝑠) = 𝐾𝑝 (1 + + 𝑇𝑑 𝑠)
𝑇𝑖 𝑠
Figura 6 – Sistema com controle PID.
Como a planta tem um integrador, utilizamos o segundo método das regras de sintonia de Ziegler-Nichols.
Fazendo Ti = ∞ e Td = 0, obtemos a função de transferência de malha fechada como segue:
𝐶(𝑠) 𝐾𝑝 (5)
=
𝑅(𝑠) 𝑠(𝑠 + 1)(𝑠 + 5) + 𝐾𝑝
O valor de Kp que torna o sistema marginalmente estável, de modo que ocorram oscilações sustentadas, pode
ser obtido pelo uso do critério de estabilidade de Routh. Uma vez que a equação característica do sistema em
malha fechada é:
𝑠 3 + 6𝑠 2 + 5𝑠 + 𝐾𝑝 = 0 (6)
Examinando os coeficientes da primeira coluna da tabela de Routh, determinamos que oscilações sustentadas
existirão de Kp = 30. Portanto, o valor crítico KCU = 30 e a equação característica resulta em:
𝑠 3 + 6𝑠 2 + 5𝑠 + 30 = 0 (7)
Ou
6(5 − 𝜔2 ) + 𝑗𝜔(5 − 𝜔2 ) = 0 (9)
2𝜋 (10)
𝑃𝑐𝑢 = = 2,8099
𝜔
𝐾𝑝 = 0,6𝐾𝑐𝑢 = 18 (11)
𝑇𝑖 = 0,5𝑃𝑐𝑢 = 1,405 (12)
𝑇𝑑 = 0,125𝑃𝑐𝑢 = 0,35124 (13)
O controlador PID tem um polo na origem e um zero duplo em s = -1,4235. Um diagrama de blocos do
sistema de controle com o controlador PID é mostrado na Figura 7.
Figura 7 – Diagrama de blocos do sistema com o controlador PID.
A resposta desse sistema ao degrau unitário é mostrada na Figura 8. O sobressinal máximo na resposta ao
degrau unitário é de aproximadamente 62%. Ele pode ser reduzido fazendo-se uma sintonia fina dos
parâmetros do controlador.
Figura 8 – Curva de resposta ao degrau unitário de um sistema com controlador PID projetado com o uso
da regra de sintonia de Ziegler-Nichols.
1 𝑏𝑐 (15)
𝐶(𝑠) = 𝑅(𝑠)𝐺(𝑠) = 2
𝑠 (𝑠 + 𝑎𝑠 + 𝑏)(𝑠 + 𝑐)
Onde:
𝑐𝑎 − 𝑐 2 (17)
𝐴=
𝑐 2 + 𝑏 − 𝑐𝑎
𝑐𝑎2 − 𝑐 2 𝑎 − 𝑏𝑐 (18)
𝐵=
𝑐 2 + 𝑏 − 𝑐𝑎
−𝑏 (19)
𝐶= 2
𝑐 + 𝑏 − 𝑐𝑎
Podemos perceber que, quanto maior o valor de c, menos o terceiro polo influencia na resposta do sistema.
Quando c → ∞, temos que A = -1, B = -a e C = 0, e a saída se aproxima a:
1 𝑠+𝑎 (20)
𝐶(𝑠) = − 2
𝑠 𝑠 + 𝑎𝑠 + 𝑏
𝑏
Essa saída é exatamente a resposta ao degrau de um sistema de 2ª ordem padrão [𝐺(𝑠) = 𝑠2 +𝑎𝑠+𝑏].
Dado o sistema da Figura 9 operando com uma ultrapassagem de 20%, o programa apresentado abaixo
projeta um controlador PID de modo que o tempo de pico diminua em um terço e o erro de estado
estacionário seja nulo.
clear all;
close all;
more off;
clc;
s = tf('s');
G = (s+8)/((s+3)*(s+6)*(s+10))
H = 1;
UP = 20;
disp(['Qual o valor do ganho K que fornece a \%UP = ' num2str(UP) ' %?']);
[K,sigma_d,omega_d] = findK(G*H,zeta)
disp('Controlador PI');
Gc_pi = (s+0.5)/s;
[K_pi,sigma_d_pi,omega_d_pi] = findK(Gc_pi*G*H,zeta)
disp('Controlador PID');
[K_pid,sigma_d_pid,omega_d_pid] = findK(Gc_pi*Gc_pd*G*H,zeta)
Gc_pid = K_pid*Gc_pi*Gc_pd;
coeficientes = cell2mat(Gc_pid.num);
K_3 = coeficientes(1)
K_2 = coeficientes(3)
K_1 = coeficientes(2)
F_pi = feedback(K_pi*Gc_pi*G,1);
[Y_pi,T,X] = lsim(F_pi,u_degrau,tempos);
F_pd = feedback(K_pd*Gc_pd*G,1);
[Y_pd,T,X] = lsim(F_pd,u_degrau,tempos);
F_pid = feedback(K_pid*Gc_pi*Gc_pd*G,1);
[Y_pid,T,X] = lsim(F_pid,u_degrau,tempos);
figure(1);
plot(tempos,Y,'b');
hold on;
plot(tempos,Y_pi,'r');
plot(tempos,Y_pd,'k');
plot(tempos,Y_pid,'m');
grid on;
legend('Ganho simples','PI','PD','PID');
passo = 0.02;
cosseno = zeta;
seno = sqrt(1-zeta^2);
modulo = 0.5;
ponto = (-cosseno+seno*i)*modulo;
angulo = findAngle(polos,zeros,ponto);
delta_modulo = 1;
contador = 0;
erro_angulo = mod(pi-angulo+pi,2*pi)-pi;
while(abs(erro_angulo)>1e-4)
contador = contador + 1;
modulo = modulo + delta_modulo;
ponto = (-cosseno+seno*i)*modulo;
angulo_novo = findAngle(polos,zeros,ponto);
delta_angulo = angulo_novo-angulo;
erro_angulo = mod(pi-angulo_novo+pi,2*pi)-pi;
if delta_angulo==0
delta_angulo=1e-6;
end
delta_modulo = passo*delta_modulo*erro_angulo/delta_angulo;
angulo = angulo_novo;
sigma_d = modulo*cosseno;
omega_d = modulo*seno;
M = 1;
for p = 1:length(polos)
M=M/abs(-sigma_d+i*omega_d-polos(p));
end
for p = 1:length(zeros)
M=M*abs(-sigma_d+i*omega_d-zeros(p));
end
K = 1/(M*Ganho);
if(contador>1000)
disp('ERRO: findK: nao encontrou K');
end
end
angulo=0;
for p = 1:length(polos)
angulo=angulo-angle(ponto-polos(p));
end
for p = 1:length(zeros)
angulo=angulo+angle(ponto-zeros(p));
end
end
4.1. O sistema com realimentação unitária mostrado na Figura 10 opera com 10% de ultrapassagem quando
submetido a uma entrada degrau unitário.
𝐾 (21)
𝐺(𝑠) =
(𝑠 + 1)(𝑠 + 3)(𝑠 + 5)
Pede-se:
a. Qual o tipo do sistema? Explique.
b. Qual valor de ζ corresponde à %UP de 10%?
c. Qual o valor do ganho K que fornece a %UP de 10%?
d. Qual o valor da constante de erro estático para esse valor de K? E o erro de estado estacionário?
e. Projete um controlador PI que elimine o erro de estado estacionário.
f. Projete um controlador PD que reduza o tempo de pico pela metade.
g. Projete um controlador PID que elimine o erro de estado estacionário e reduza o tempo de pico pela
metade.
h. Plote, em um mesmo gráfico, as saídas do sistema original e dos sistemas controlados.
i. Encontre os tempos de acomodação de cada um dos sistemas
4.2. Considere o sistema de controle mostrado no item 2.4. Faça uma sintonia fina dos parâmetros do
controlador PID de forma que a resposta ao degrau unitário apresente o sobressinal máximo entre 2% e 10%
e o tempo de acomodação seja menor que 3 s. Utilize uma abordagem computacional em Matlab.