Escolar Documentos
Profissional Documentos
Cultura Documentos
Alunos:
CORONEL FABRICIANO
1° semestre/ 2015
CENTRO UNIVERSITÁRIO DO LESTE DE MINAS GERAIS
Professor: Roselito de A.
Teixeira
CORONEL FABRICIANO
1° semestre/ 2015
1
Sumário
Introdução ..................................................................................................................................... 3
Discretização das plantas .............................................................................................................. 4
Os controladores ........................................................................................................................... 9
Simulações................................................................................................................................... 12
Implementação MatLab .............................................................................................................. 16
Conclusões .................................................................................................................................. 19
2
Introdução
3
Discretização das plantas
Figure 1 - Resposta ao degrau unitário da planta em malha aberta. A função de transferência deve ser levantada
desta figura.
𝑒 −𝑇𝑑∗𝑠
𝐺(𝑠) = 𝐾 ∗
𝜏∗𝑠 +1
4
Assim sendo, os seguintes parâmetros são obtidos:
𝐾 = 0,95
𝑇𝑑 = 8
𝜏=4
Portanto:
𝑒−8∗𝑠
𝐺(𝑠) = 0,95 ∗
4∗𝑠 +1
Para confirmação do levantamento correto do sistema o gráfico para a
resposta em degrau para a função 𝐺(𝑠) acima foi plotada no MatLab usando o
seguinte script:
% LEVANTAMENTO DOS PARÂMETROS DA PLANTA BASEADO NO GRÁFICO PARA GRUPO
07
t0=0;
t1=8;
t2=12; %Instante em que Y = 0.6321*Max(Y)
K=0.95; %Ganho do Sistema
L=t1-t0; %Atraso de Transporte do Sistema
tau= t2-t1;%Constante de Tempo do Sistema
5
O resultado está apresentado na Figura 3. Como pode ser observado o
gráfico corresponde ao mesmo gráfico da Figura 1 e deste modo podemos
seguir com a discretização do sistema e com as demais etapas do trabalho. A
discretização do sistema é feita usando a função do MatLab ‘c2d’ que converte
um sistema em tempo contínuo em um sistema digital. Tal função recebe o
sistema em tempo contínuo, tempo de amostragem e método de conversão
como parâmetros. O período T de amostragem foi calculado usando a relação
𝜏
𝑇 = 20.
6
A equação de diferenças
7
Uma observação importante a ser feita é que 𝑢(𝑘) se refere a entrada da
planta no sistema que nesse caso é a atuação do controlador que será
posicionado logo antes da planta na malha do sistema. Outra observação a ser
considerado é o fato de que a malha do sistema será fechada pelo próprio
algoritmo em seu loop de iteração pois o algoritmo faz o cálculo do erro do
sistema baseado na diferença entre a entrada e a saída como pode ser
observado no seguinte trecho de script:
% Calcula Erro------------ ----------------------------------------
e(k) = r(k)-y(k);
%------------------------------------------------------------------
Onde 𝑟(𝑘) é a entrada do sistema que para este trabalho considerou
uma sequência de degraus apresentada pela Figura 4. Tal função de entrada
pode ser facilmente desenvolvida em MatLab através do seguinte trecho de
script:
% 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)];
% --------------------------------------------------------------------
8
Outro requerimento do trabalho é com relação aos índices de
desempenho do sistema IAE e ISE que são, respectivamente, Integral do Erro
Absoluto (Integral Absolute Error) e Integral do Erro ao Quadrado (Integral
Squared Error). Tais índices devem ser observados em cada um dos sistemas
compensados de forma a comparar qual dos controladores melhor atende as
especificações propostas.
Os controladores
9
titles{1} = 'SINTONIA ZIEGLER-NICHOLS EM MALHA ABERTA PI';
Kp(1) = 0.9*(tau/L)/K;
Ti(1) = L/0.3;
Td(1) = 0;
Figure 5 - Tabela de valores dos parâmetros dos controladores para sintonia Ziegler-Nichols em malha aberta
Método Cohen-Coon
10
Figure 6 - Tabela de valores dos parâmetros dos controladores para sintonia Cohen-Coon
11
Figure 7 - Tabela de valores dos parâmetros dos controladores para sintonia Lambda (λ)
Simulações
Figure 8 - Simulação do sistema digital em malha fechada com controlador PI sintonizado segundo parâmetros da
tabela apresentada pela Figura 4
12
Figure 9 - Simulação do sistema digital em malha fechada com controlador PID sintonizado segundo parâmetros da
tabela apresentada pela Figura 4
13
Figure 10 - Simulação do sistema digital em malha fechada com controlador PI sintonizado segundo parâmetros da
tabela apresentada pela Figura 5
Figure 11- Simulação do sistema digital em malha fechada com controlador PID sintonizado segundo parâmetros da
tabela apresentada pela Figura 5
14
Figure 12 - Simulação do sistema digital em malha fechada com controlador PI sintonizado segundo parâmetros da
tabela apresentada pela Figura 6 com 𝜆 = 1.9*L
Figure 13 - Simulação do sistema digital em malha fechada com controlador PID sintonizado segundo parâmetros da
tabela apresentada pela Figura 6 com λ = 1.15*L
15
Ziegler- Ziegler- Cohen- Cohen- Lambda Lambda
Índice/Método Nichols PI Nichols PID Coon PI Coon PID (λ) PI (λ) PID
Implementação MatLab
16
Ti(4) = L*((32+6*R)/(13+8*R));
Td(4) = L*(4/(11+2*R));
% DISCRETIZAÇÃO DO SITEMA
T = tau/20; % Período de amostragem
Gz=c2d(G,T,'zoh');
[numz, denz] = tfdata(Gz);
format long
numz = numz{:}; %Converte Cell Array to Array
denz = denz{:}; %Converte Cell Array to Array
beta=round(L/T); %Usado para representar o atraso de transporte em Z
% 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)];
% --------------------------------------------------------------------
-------------------
17
%-----------------------------------------------------------------
----
% Trabalho com Windup - Valores Máximo e Minímo para ação de
controle
u_max = 5;
u_min = 0;
H=figure;
% *** LAÇO DE DISCRETIZAÇÃO
for k=beta+2:length(r)
tic; %Inicia Timer para medir tempo gasto em cada iteração
% ---------- *** Equação de Diferenças do Modelo da Planta ***
----
y(k) = numz(2)*u(k-beta-1) - denz(2)*y(k-1);
% ------------------------------------------------------------
-----
% Calcula Erro------------ -----------------------------------
-----
e(k) = r(k)-y(k);
%-------------------------------------------------------------
-----
% ------------ *** Calcula Índices de Desempenho -------
-------------
IAE = IAE + abs(e(k));
ISE = ISE + e(k)^2;
% ------------------------------------------------------
-------------
% PID digital ---------------------------------------------
% Proporcional
up(k) = Kp_atual*e(k);
% Ação integral
ui(k) = ui(k-1) + (Kp_atual*T/Ti_atual)*e(k);
% Ação derivativa
ud(k) = ((Kp_atual*Td_atual)/T)*(y(k-1)-y(k));
%---------------------------------------------------------
u(k)= up(k) + ui(k)+ ud(k);
%---------------------------------------------------------
% Implementação 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]; %Codigo Alterado para nao se
redimensionar o vetor a
% cada iteração.
n(k) = k-1;
[X,U] = stairs(n(1:k)*T,u(1:k));
figure(H)
plot(X,U,'r',n(1:k)*T,y(1:k),'b',n(1:k)*T,r(1:k),'g',n(1:k)*T,e(1:k),'
m-');
% ------------------- *** Imprime Índices de desempenho *** --
--------------
text(150*T*k/length(r),0.3,'IAE = '),
text(250*T*k/length(r),0.3,num2str(IAE))
18
text(150*T*k/length(r),0.2,'ISE = '),
text(250*T*k/length(r),0.2,num2str(ISE))
% ------------------------------------------------------
-------------
elipsed_time = toc; %Para Timer
pause(T-elipsed_time) %Pausa pelo período T com desconto do
tempo gasto na iteração.
%---------------------------------------------------------
end
xlabel('Tempo em segundos')
legend('Ação de Controle','Saída','Entrada (Setpoint)','Error')
title(titles(p)) %Escreve Título do Gráfico de acordo com a
sintonia sendo usada.
end
% *** FIM DO SCRIPT
Conclusões
Com este trabalho foi possível notar a eficiência da implementação
digital de sistemas de natureza contínua de modo a se ter menos gastos com
manutenção uma vez que sistemas digitais não sofrem desgastes como
sistemas eletrônicos analógicos. Outra consideração a ser feita é com relação
ao algoritmo implementado que para este trabalho usa uma entrada definida
(vetor r) mas que na prática se usaria da leitura de sensores de medição.
Portanto um cuidado especial deve ser tomado para a criação de variáveis que
mudam o tamanho dentro do laço de repetição do algoritmo pois tais variáveis
produzirão um estouro de memória já que a entrada não está limitada a um
número finito de leituras.
19