Beruflich Dokumente
Kultur Dokumente
() ()
()
()
()
()
()
Foi utilizado o cdigo abaixo para mostrar o sistema contnuo:
num=[0.75];
den=[0.50445 1.01185 1];
sys=tf(num,den);
step(sys)
xlabel ('Tempo em segundos')
ylabel ('Amplitude do sinal')
title (Sistema Contnuo em malha aberta')
legend('continua')
Foi utilizado o cdigo abaixo para mostrar o sistema contnuo e dicreto:
clc
clear all
hold
Ts=0.1975;
num=[0.75];
den=[0.50445 1.01185 1];
sys=tf(num,den);
Gz=c2d(sys,Ts,'zoh');
step(sys,Gz)
xlabel ('Tempo em segundos')
ylabel ('Amplitude do sinal')
title (' Sistema Contnuo e discreto em malha aberta')
legend('continua','discreta')
0 1 2 3 4 5 6
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Sistema Contnuo em malha aberta
Tempo em segundos (sec)
A
m
p
l
i
t
u
d
e
d
o
s
i
n
a
l
continua
Foi utilizado o cdigo abaixo para mostrar o sistema contnuo e dicreto:
Para considerar o atraso de transporte L, caso ele exista multiplicar o
numerador de
()
()
()
^
()
% Cdigo para encontrar e =round (L/T)
clc
clear all
L=0.1892
T=0.09884
=round (L/T)
Mas obteve-se
0 1 2 3 4 5 6 7
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Sistema Contnuo e discreto em malha aberta
Tempo em segundos (sec)
A
m
p
l
i
t
u
d
e
d
o
s
i
n
a
l
continua
discreta
Calculado o perodo de amostragem a ser utilizado para a discretizao, o
mesmo foi implementado com funo de transferncia do processo no
software Matlab junto ao comando c2d, que realiza a converso de sistemas
do domnio contnuo para o domnio discreto. O algoritmo utilizado para a
discretizao do sistema se encontra apresentado a seguir:
% Cdigo para discretizar a funo de transferncia
clear
close all
hold
s=tf('s');
T=0.09884;
G=0.75/(0.5044*s^2+1.0118*s+1);
Gz=c2d(G,T,'zoh'); % discretiza a funo de transferncia analgica G
[num, den]=tfdata(Gz);
format long % os coeficientes da funo sero exibidos com 15 casas
decimais.
num{:} % exibe coeficientes do numerador
den{:} % exibe coeficientes do denominador
Assim, a funo de transferncia no domnio discreto obtida foi a seguinte:
De posse da funo de transferncia discreta (em Z), foi obtida a equao de
diferenas do processo a ser implementada no software Matlab com o objetivo de
simular o comportamento do sistema:
()
()
()
()
()
(
)
()
(
()
()
()
()
()
Assim a equao de diferenas pde ser definida como sendo:
()
( ) ( )
( ) ( )
Definida a equao de diferenas do processo, a mesma foi implementada junto a um
controlador digital no software Matlab a fim de se obter a resposta a uma dada entrada
de referncia conforme ser demonstrado posteriormente.
SIMULAES
Dado o seguinte setpoint de referncia, foram implementadas as equaes de
diferenas dos processos obtidas junto aos controladores P, PI e PID sintonizados
anteriormente atravs dos mtodos de Ziegler e Nichols de malha fechada, Ziegler e
Nichols de malha aberta, Lambda e Cohen-Coon, sendo realizadas suas simulaes
de comportamento objetivando-se que os mesmos apresentem erro nulo a uma
entrada em degrau, e tenham seus tempos de resposta e sobressinal minimizados.
% sinal de referencia
r = (1/100)*[50*ones(1,200) 35*ones(1,200) 60*ones(1,200)
45*ones(1,200) 45*ones(1,200)];
E obteve-se o grfico abaixo:
Figura 1- Setpoint de referncia
Sintonia dos Controladores
Utilizando a equao de diferenas obtida do processo 1, foi proposta a
implementao de controladores P, PI e PID com o objetivo de se obter uma sada
satisfatria dentro dos requisitos de controle desejados. A rotina utilizada no software
Matlab para o controle do processo se encontra em anexo abaixo.
As tcnicas determinadas para o controle do processo em questo foram as
seguintes:
A) Mtodo de Ziegler Nichols em malha fechada:
0 100 200 300 400 500 600 700 800 900 1000
0.35
0.4
0.45
0.5
0.55
0.6
Conforme observado na figura abaixo, o lugar das razes do sistema no passa pelo
lado direito do plano S. Deste modo, no foi possvel a aplicao do mtodo proposto
devido o sistema no ir para a instabilidade, no sendo possvel se alcanar o ganho
crtico (Ku) que leva o sistema a oscilar indefinidamente utilizado nesta sintonia para
a obteno dos demais parmetros do controlador.
Figura 2 Lugar das razes do Processo
B) Mtodo de Ziegler Nichols em malha aberta:
No foi possvel a utilizao do mtodo de sintonizao de Ziegler Nichols em malha
aberta devido a resposta a uma entrada em degrau unitrio no ser semelhante
curva em S. Outro fator que impede a utilizao desta sintonia o fato do processo
apresentar polos complexos conjugados impedindo assim sua sintonizao.
C) Mtodo Lambda:
Foi realizada a sintonia do controlador atravs do mtodo Lambda, utilizando para
obteno dos parmetros do mesmo a seguinte tabela:
-1.6 -1.4 -1.2 -1 -0.8 -0.6 -0.4 -0.2 0 0.2
-5
-4
-3
-2
-1
0
1
2
3
4
5
Root Locus
Real Axis
I
m
a
g
i
n
a
r
y
A
x
i
s
Tabela 01 Mtodo Lambda para diferentes modelos de processos.
Tomando como base o terceiro modelo de processo apresentado na tabela, o sistema
proposto foi aproximado de modo a igualar ambos, sendo os parmetros a serem
utilizados para a sintonia do controlador obtidos, apresentados a seguir:
Fazendo:
Temos:
Conforme sugerido na literatura tomada como base para sintonizao do processo, o
valor para lambda () a ser utilizado deve ser igual a maior constante de tempo obtida
do sistema, no processo em questo 0,5773, sendo adotado o valor de lambda como
0,58.
Utilizando a tabela e os dados do sistema, foi obtido o controlador PID com os
seguintes parmetros:
Com os parmetros obtidos do controlador, o mesmo foi implementado no software
Matlab junto equao de diferenas do sistema proposto, sendo a simulao de
resposta a uma dada referncia apresentada no grfico a seguir, onde se encontram
amostrados os parmetros PV (valor de sada do processo), MV (ao de controle),
Setpoint (referncia) e erro (diferena entre a PV e o setpoint):
0 10 20 30 40 50 60 70 80 90 100
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
Tempo em segundos
MV
PV
Setpoint
Error
Figura 3 Resposta do sistema com controlador PID Grfico de sintonia pelo mtodo
Lambda PID
ndices de desempenho obtidos
IAE = 11.451619362487309
ISE = 2.626421052701319
Cdigo Utilizado.
% Cdigo Utilizado para Sintonia pelo Mtodo Lambda PID
clear
close all
T = 0.09884; % perodo de amostragem
L = 0.1892; % atraso de transporte do sistema
beta=round(L/T);
% sinal de referncia
r =(1/100)*[50*ones(1,200) 35*ones(1,200) 60*ones(1,200)
45*ones(1,200) 45*ones(1,200)];
n =(0:beta);
y(beta+1) = 0;
e(beta+1) = r(beta+1);
u(beta+1) = 0;
ui(beta+1) = 0;
up(beta+1) = 0;
ud(beta+1) = 0;
% parmetros do controlador --------------------------------
kp=1.8994
Ti= 1.01175
Td=0.4985
%-----------------------------------------------------------
% valores mximo e mnimo para a ao de controle ---------
u_max = 1;
u_min = 0;
%---------------------------------------------------------
for k=beta+2:length(r)
% equao de diferenas da planta exemplo-----------------------
y(k) =0.006795130351948*u(k-1)+0.006360414277863*u(k-
2)+1.802609406569224*y(k-1)-0.820150132742305*y(k-2)
%---------------------------------------------------------------
% clculo do erro ----------------------------------------
e(k) = r(k)-y(k);
%---------------------------------------------------------
%Integral do quadrado do erro
IAE = sum(abs(e))
%Integral da magnitude absoluta do erro
ISE = sum(e.^2)
% PID digital ---------------------------------------------
% ao proporcional
up(k) = kp*e(k);
% ao integral
ui(k) = ui(k-1) + (kp*T/Ti)*e(k);
% ao derivativa
ud(k) = ((kp*Td)/T)*(y(k-1)-y(k));
%---------------------------------------------------------
u(k)= up(k) + ui(k)+ ud(k);
%---------------------------------------------------------
% implementao do anti windup ---------------------------
if u(k) > u_max
ui(k) = ui(k-1);
u(k) = u_max;
else
if u(k) < u_min
ui(k) = ui(k-1);
u(k) = u_min;
end
end
%---------------------------------------------------------
n = [n k-1];
[X,U] = stairs(n*T,u);
plot(X,U,'r',n*T,y,'b',n*T,r(1:k),'g',n*T,e(1:k),'m-');
pause(T)
%---------------------------------------------------------
end
xlabel('Tempo em segundos')
legend('MV','PV','Setpoint','Error')
%-----------------------------------------------------------------
Foi utilizada uma ao anti-windup junto ao algoritmo com o intuito de evitar que
ocorra a saturao da ao de controle, sendo a mesma limitada no programa em um
valor mximo de 1 e mnimo de 0.
A resposta do sistema foi satisfatria e os parmetros PID do controlador foram
calculados atravs do mtodo Lambda.