Anda di halaman 1dari 33

Análise de Resposta Transiente e

Permanente de Sistemas Dinâmicos


Samuel da Silva1 , Centro de Engenharias e Ciências Exatas, Universidade
Estadual do Oeste do Paraná, UNIOESTE, Campus de Foz do Iguaçu.

1 Objetivos
Os alunos devem recordar do curso de equações diferenciais que a solução
de uma equação diferencial ordinária linear é composta por duas parcelas,
uma primeira transiente e uma segunda permanente. No contexto de siste-
mas dinâmicos a equação diferencial representa o modelo matemático que
é capaz de descrever o comportamento deste sistema e portanto pode ser
usada para análise, predição e simulação. Assim a sua resposta frente a uma
excitação qualquer também é composta por estas duas parcelas (transiente
e permanente). Como já visto anteriormente, um sistema dinâmico pode ser
representando de diferentes maneiras possíveis, sendo que no caso dos siste-
mas lineares, a representação usando funções de transferência traz vantagens
adicionais para análise. Neste capítulo, a ideia será estudar as característi-
cas de respostas transientes e permanentes de sistemas dinâmicos lineares de
primeira e segunda ordem e, ainda, apresentar as características para siste-
mas de ordem superior. Será mostrado que um sistema de ordem superior
pode ser assumido como sendo uma combinação em série, paralelo ou com
realimentação de sistemas de 1.o e 2.o ordem conjuntos. Em especial, será
dado destaque às saídas de sistemas quando for aplicado sinais de teste pa-
drão, como entrada do tipo impulso, entrada degrau, entrada senoidal, etc.
Também será o momento oportuno de apresentar formalmente o conceito de
estabilidade de sistemas dinâmicos lineares mostrando o útil critério de es-
tabilidade de Routh. Neste tópico uma pequena discussão sobre ajuste de
ganhos de controle na malha do sistema será feita com base em requisitos
para estabilizar e melhorar o desempenho de plantas industriais. Os alunos
que buscam maiores informações neste capítulo são aconselhados a ler os
livros [1], [2], [3] ou [4].
1
Sugestões, comentários e correções são bem-vindos e podem ser feitos pelo email
sam.silva13@gmail.com.

1
2 Sinais de Testes
O sinais de entrada do tipo degrau, impulso e rampa ocupam um papel de
destaque na análise de sistemas dinâmicos lineares por serem sinais que são
gerados de forma fácil para teste. Além desta vantagem prática, estes sinais
típicos de teste também são capazes de excitar características intrínsecas do
sistema, ressaltando aspectos como taxa de decaimento, overshoot, tempo
de subida, estabelecimento, etc. Na sequência deste artigo será mostrado
as características de respostas de sistemas dinâmicos quando se aplica como
excitação estes sinais.

3 Sistemas de 1.o Ordem


Talvez o caso mais simples em análise e identificação seja considerar a
dinâmica de sistemas como sendo de 1.o ordem. Do ponto de vista físico, um
sistema de primeira ordem pode ser um circuito RC, um sistema térmico2 ,
pneumático3 , hidraúlico4 , diversos tipos de sensores e instrumentos5 e etc.
Como veremos a frente neste curso, no geral, sistemas mecânicos são "re-
tardados"e contém nas suas funções de transferência uma parcela conhecida
como atraso de transporte. Um diagrama de blocos deste sistema é visto na
fig. (1).

Figura 1: Diagrama de blocos de um sistema de primeira ordem.

Um sistema típico destes tem a seguinte função de transferência em malha


fechada:
2
Trocadores de calor, caldeiras, turbinas, etc.
3
compressores, bombas, etc.
4
Pistões, bombas, etc.
5
Termopares, por exemplo, podem ser descritos muito bem como instrumentos de 1.o
ordem.

2
Y (s) K
H(s) = = (1)
U (s) τs + 1
sendo K o ganho do sistema e τ uma constante de tempo. O conhecimento
destes dois parâmetros identifica o modelo como um todo. Uma forma de
obter este modelo de maneira experimental é aplicar como sinal de entrada
um degrau de amplitude A. Caso o sistema tenha um nível de ruído baixo6
os parâmetros K e τ podem ser estimados facilmente. O ganho K pode ser
expressado como:

y(∞) − y(0)
K= (2)
A
sendo y(∞) o valor em regime permanente do sinal y(t). A constante
de tempo τ pode ser determinada a partir do tempo em que a resposta ao
degrau atinge 63.2 % da amplitude em regime permanente:

y(τ ) = 0.632 (y(∞) − y(0)) + y(0) (3)


O eventual atraso de transporte no sistema pode ser estimado com este
método assumindo que ele é igual ao período entre a aplicação do degrau e
o início da resposta, mas suas considerações são muito restritivas. A fig. (6)
apresenta uma exemplo de estimação gráfica do ganho K e da constante de
tempo τ a partir do conhecimento da resposta ao degrau7 .
Com a fig. (6) observa que o sistema possui um τ = 0.1 segundos e um
ganho K = 10, aplicando as eqs. (3) e (2).

3.1 Resposta ao degrau de um sistema de 1.o ordem


Como já sabemos a transformada de Laplace de uma função degrau uni-
tário é dada por:
1
U (s) = (4)
s
Aplicando esta entrada em um sistema de 1.o ordem obtém-se a seguinte
saída Y (s):
1 1
Y (s) = H(s)U (s) = (5)
τs + 1 s
Após a expansão em frações parciais da equação anterior tem-se:
6
O que na prática depende muito do tipo e da qualidade do sensor usado.
7
Todos os programas Matlab R usados neste capítulo são fornecidos no site da disci-
plina.

3
Step Response
12

10
System: H
Time (sec): 0.577
Amplitude: 9.97
8 System: H
Time (sec): 0.0994
Amplitude

Amplitude: 6.3

0
0 0.1 0.2 0.3 0.4 0.5 0.6
Time (sec)

Figura 2: Resposta ao degrau unitário (A = 1) de um sistema de primeira


ordem.

1 τ 1 1
Y (s) = − = − (6)
s τs + 1 s s + 1/τ
Com o auxílio de uma tabela obtém-se facilmente a transformada de
Laplace inversa de Y (s):

y(t) = 1 − e−t/τ (7)


Notanto que quando t = τ a saída é:

y(t) = 1 − e−1 = 0.632 (8)


O que confirma os resultados encontrados na seção anterior.
Importante observar que τ é chamado constante de tempo, pois quanto
menor for τ mais rápido o sistema responde. O pólo do sistema é dada por
s = − τ1 , notando novamente, que o valor de τ influencia o comportamento
da resposta do sistema.

4
3.2 Resposta ao impulso de um sistema de 1.o ordem
Como já visto anteriormente a transformada de Laplace para uma função
impulso unitário u(t) é dada por U (s) = 1. Portanto a resposta de um
sistema de 1.o ordem a um impulso unitário corresponde a própria função de
transferência em malha fechada do sistema H(s):
K
Y (s) = H(s)U (s) = H(s) = (9)
τs + 1
Aplicando a transformada inversa de Laplace na equação anterior com a
ajuda de algum tabela obtém-se:
K −t/τ
y(t) = e (10)
τ
A equação anterior é bastante particular e comumente é chamada de
função de resposta ao impulso (IRF), sendo definida pela variável h(t):
K −t/τ
h(t) = e (11)
τ
para t ≥ 0. Uma resposta típica ao impulso de um sistema de primeira
ordem com τ = 0.1 segundos e K = 10 é mostrada na fig. (3).

3.3 Resposta à rampa de um sistema de 1.o ordem


A transformada de Laplace de uma função rampa é s12 . Assim a saída
Y (s) de um sistema de primeira ordem quando uma rampa é aplicada na
entrada é dada por:
1 K 1
Y (s) = H(s)U (s) = H(s) 2
= (12)
s τ s + 1 s2
Expandindo a equação anterior em frações parciais:
1 τ τ
Y (s) = − + (13)
s2 s τs + 1
e com o uso de uma tabela pode-se chegar a transformada inversa de
Laplace da saída Y (s) do sistema de 1.o ordem quando se aplica uma rampa
na entrada:

y(t) = 1 − τ + τ e−t/τ (14)


para t ≥ 0. O erro de estado permanente é dada por:

e(t) = u(t) − y(t) = τ (1 − e−t/τ ) (15)

5
Resposta ao impulso

100

90

80

70

60
y(t)

50

40

30

20

10

0
0 0.1 0.2 0.3 0.4 0.5 0.6
Tempo [s] (sec)

Figura 3: Exemplo de resposta ao impulso unitário de um sistema de primeira


ordem.

Uma resposta típica a um rampa de um sistema de primeira ordem com


τ = 0.1 segundos e K = 10 é mostrada na fig. (4).

3.4 Resposta de um sistema de 1.o ordem à uma entrada


qualquer
A resposta analítica de um sistema de 1.o ordem à uma entrada qualquer
pode ser feita usando o conceito de transformada de Laplace bastando realizar
a multiplicação:

Y (s) = H(s)U (s) (16)


que como já vimos corresponde a uma convolução no domínio do tempo
entre o sinal u(t) e a IRF h(t).

6
Resposta a rampa
6
x 10
12

10

8
y(t)

0
0 500 1000 1500
Tempo [s] (sec)

Figura 4: Exemplo de resposta rampa de um sistema de primeira ordem.

Do ponto de vista numérico, os alunos devem se lembrar que usando


métodos como séries de Taylor, Runge-Kutta ou Newmark é possível encon-
trar a resposta y(t) de um sistema dinâmico qualquer representado por uma
equação diferencial. Em pacotes de programas do estilo do Matlab R e Sci-
lab normalmente existe um conjunto de comandos que permite descrever a
resposta de um sistema dinâmico representado por uma função de transfe-
rência ou com uma realização no espaço de estados quando qualquer tipo de
excitação é aplicada. Por exemplo, o comando lsim calcula a resposta de um
sistema a qualquer entrada.

3.5 Análise de sistemas de 1.o ordem com o Matlab


R

O Matlab R pode ser usado de maneira efetiva para avaliar as caracterís-


ticas de um sistema de 1.o ordem. A seguir um script que realiza a análise

7
de um sistema de 1.o ordem.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Análise de um Sistema de 1.o ordem
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clc; % limpa a tela


clear; % apaga as variáveis da memória

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Parâmetros do sistema
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

tau = 0.1; % constante de tempo [s]


K=10; % Ganho do sistema

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Função de transferência do sistema
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

num = K;
den = [tau 1];

H = tf(num,den);

% A representação no espaço de estados para o


% sistema de 1.o ordem pode ser obtida com

sys = tf2ss(num,den);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Resposta ao degrau
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

figure(1)
step(H) % Consulte help step para detalhes
% note que step(sys) é a mesma coisa!!

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Resposta ao impulso
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

8
figure(2)
impulse(H) % Consulte help impulse

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Resposta à Rampa
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% A entrada rampa é 1/s^2
% Assim se calcular a entrada rampa para
% H(s)1/s tenho a resposta ao degrau

R = tf(1,[1 0 0]); % degrau

figure(3)
step(R*H)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Resposta a uma excitação qualquer
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% O comando LSIM é muito usado para simular
% respostas de sistemas a excitaçõs diversas
% O comando interpreta o sistema no domínio s
% e calcula a resposta a partir do método de
% Runge-Kutta

t=0:0.001:10; % vetor tempo para simulação

% entrada como sendo um seno com freq. de 1 Hz


u = sin(2*pi*1*t);

% A resposta é dada por y


y = lsim(H,u,t);

% note que y=lsim(sys,u,t) é a mesma coisa!

figure(4)
plot(t,y)
xlabel(’Tempo [s]’);
ylabel(’y(t)’)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

9
4 Sistemas de 2.o ordem
Sistemas dinâmicos de 2.o ordem são muito comuns em aplicações en-
volvendo servossistemas, rotores e mecânica em geral. Normalmente estes
sistemas incluem elementos dissipativos, inerciais e elásticos. Para estes sis-
temas é usual se descrever a função de transferência em malha fechada de
uma forma padrão envolvendo parâmetros característicos como frequência
natural e fator de amortecimento, e para o caso de sistemas com múltiplos
graus de liberdade, os modos físicos. Este conjunto de parâmetros são conhe-
cidos como parâmetros modais8 . A aplicação da resposta ao degrau é muito
útil para descrição das características transitórias do sistema, assim com a
aplicação de um impulso como entrada.

4.1 Sistema de 2.o ordem na forma padrão e ações bá-


sicas de controle automático
Considere um servossistema composto por um elemento inercial J e um
elemento dissipativo b. A equação do movimento pode ser descrita como:

J θ̈ + bθ̇ = T (17)
sendo θ o vetor deslocamento angular e T o torque aplicado na máquina.
Aplicando a transformada de Laplace neste sistema obtém-se a seguinte fun-
ção de transferência:

Θ(s) 1
= (18)
T (s) s(Js + b)
Suponha que o deslocamento angular da máquina seja controlado para
se tentar manter uma referência r(t). Ações de controle comum incluem os
controladores clássicos9 :
Ação Proporcional: A ação de controle proporcional é a mais simples e
usada. A função de transferência deste controle é dada apenas por um
ganho K de amplificação ou atenuação, envolvendo ou não inversão de
sinais:

Gc (s) = K (19)
8
No segundo semestre do curso, durante a parte de estudo de vibrações em sistemas
mecânicos, será dado maior destaque nos aspectos a serem apresentados neste capítulo.
9
O foco deste curso não é engenharia de controle, porém em vários momentos será
merecida uma discussão introdutória destes aspectos para os alunos mais interessados no
tema.

10
Do ponto de vista de implementação prática, controladores analógicos
podem ser efetivamente usados envolvendo amplificadores operacionais
para implementação de ação proporcional. Controladores digitais en-
volvem o uso de computadores e amplificadores de potência. Ações
de controle proporcional também podem ser implementadas analogica-
mente com o uso de circuitos pneumáticos e hidraulicos10 .

Ação Integral: esta ação de controle integral é composta por uma função
de transferência do tipo:

Ki
Gc (s) = (20)
s
A maior utilidade da ação de controle integral é eliminar erros em
regime estacionário da diferença entre a saída desejada e a saída real.
Porém, uma ação de controle integral deve ser conduzida com uma ação
proporcional, pois ela tem tendência de deixar a resposta do sistema
oscilatória e com amplitude decrescente de forma muito lenta.

Ação Proporcional-Integral: esta ação de controle é composta por uma


função de transferência do tipo:
 
1
Gc (s) = K 1 + (21)
Ti s
sendo Ti o tempo integrativo. Sua utilidade busca balancear o uso de
ambas as ações.

Ação Proporcional-Derivativo: esta ação de controle é composta por


uma função de transferência do tipo:

Gc (s) = K(1 + Td s) (22)

sendo Td o tempo derivativo. A ação derivativa faz com que o controla-


dor seja extremamente sensível. A sua implementação em uma malha
faz com que o erro em regime estacionário não se torne muito elevado.
Esta ação tende a melhorar os níveis de estabilidade do sistema. Isto
acontece, pois esta ação de controle aumenta o nível de amortecimento
do sistema. Normalmente isto exige um ganho K mais elevado o que
tem tendência a aumentar a precisão em regime do sistema de controle.
Uma ação derivativa nunca deve ser implementada sozinha, uma vez
10
Exemplo: o macaco hidráulico.

11
que ela influencia a taxa de variação do erro atuando e não o próprio
erro, como as ações integrais e proporcionais.
Ação Proporcional-Integral-Derivativo: esta ação de controle é com-
posta por uma função de transferência do tipo:
 
1
Gc (s) = K 1 + + Td s (23)
Ti s
Todas as ações acima podem ser implementadas de forma analógica ou
digital. No mercado existem controladores industriais de processos e plantas
que podem ser utilizados para finalidades práticas. O problema de enge-
nharia de controle é ajustar os valores de K, Ti e Td para obtenção de um
desempenho e comportamento satisfatório em malha fechada do sistema.
Suponha que o nosso servossistema será controlado por um controlador
proporcional Gc (s) = K. A implementação em diagramas de blocos é vista
na fig. (5).

Figura 5: Diagrama de blocos do controle de um servossistema.

Analisando a fig. (5) obtém-se a seguinte função de transferência em


malha fechada:

Θ(s) K K/J
H(s) = = 2 = 2 (24)
R(s) Js + bs + K s + B/Js + K/J
Note que esta função de transferência possuí dois pólos, caracterizando
um sistema de segunda ordem. A natureza destes pólos, ou seja, se são
reais ou complexos conjugados depende dos valores dos parâmetros físicos
envolvidos (J, b e K). Em especial, pode-se trabalhar com sistemas de 2.o
ordem subamortecidos11 , superamortecido e crítico. Maiores detalhes destes
tipos de resposta serão revisados durante o curso de vibrações no 2.o semestre.
11
oscilatórios e de interesse maior em vibrações.

12
É comum se trabalhar com o sistema de 2.o ordem normalizado em uma
forma padrão em função dos parâmetros:

K
= ωn2 (25)
J
b
= 2ξωn (26)
J
sendo ωn a frequência natural em rad/s e ξ o fator de amortecimento do
sistema. O fator de amortecimento é que descreve a natureza dos pólos do
sistema:

• Para 0 < ξ < 1 o sistema é subamortecido com pólos complexos con-


jugados caracterizado por um decaimento oscilatória a uma taxa de
e−ξωn t .

• Para ξ = 1 o sistema é critico, ou seja, não oscila e decai rapidamente.


Os pólos são raízes reais repetidas.

• Para ξ > 1 o sistema é superamortecido, também não oscila e os pólos


são raízes reais distintas.

A função de transferência a malha fechada de um sistema padrão é dada


por:

Θ(s) ωn2
H(s) = = 2 (27)
R(s) s + 2ξωn s + ωn2
O caso subamortecido é o de maior interesse em vibrações. Nesta situação
os pólos são dados por:
p
s1,2 = −ξωn ± jωn 1 − ξ 2 = −ξωn ± jωd (28)
p
sendo que ωd = ωn 1 − ξ 2 é a frequência natural amortecida.

4.2 Resposta para excitação do tipo degrau unitário


A resposta para excitação do tipo degrau unitário u(t − t0 ) é útil para
análise de projeto de sistemas dinâmicos e muito usada para especificação de
controladores. A partir da resposta x(t) de um sistema à excitação degrau
unitário é possível definir vários parâmetros que descrevem o comportamento
dinâmico de um sistema qualquer.

13
A função degrau unitário é descrita matematicamente pela expressão a
seguir
Z t
u (t − t0 ) = δ(τ − t0 )dτ (29)
0
que leva então para

0, t ≤ t0
u (t − t0 ) = (30)
1, t > t0
Quando t0 = 0 a excitação degrau unitário é dada por u(t − t0 ) = µ(t).
A equação do movimento de um sistema quando aplicado como excitação
F (t) = µ(t) um degrau unitário é dada por

mẍ + cẋ + kx = µ(t). (31)


Resolvendo a equação diferencial dada pela Eq. (31) chega-se ao resultado
abaixo:

e−ξωn t sen (ωd t + φ)


x(t) = 1 − p , (32)
1 − ξ2
sendo a fase φ descrita como
p !
1 − ξ2
φ = arctan (33)
ξ
Um esboço da resposta ao degrau unitário para um sistema mecânico com
m = 1 kg, c = 5 N.s/m e k = 1000 N/m é mostrado na fig. (6).
Note que na fig. (6) são descritos alguns parâmetros que descrevem o
comportamento dinâmico de um sistema e podem ser usados para analisar
qualitativamente se um sistema mecânico tem comportamento adequado ou
não, de acordo com especificações de projeto. Uma destas medidas é o sobre-
sinal, mais conhecido pelo termo em inglês overshoot OS. Este valor é dado
pelo máximo valor da resposta menos o valor desta quando o sistema entra
em regime permanente
!
−ξπ
OS = xmax (t) − 1 = exp p , (34)
1 − ξ2
o overshoot ocorre exatamente em um tempo de pico tp descrito como
π
tp = p . (35)
ωn 1 − ξ 2

14
−3
x 10
1.8
X: 0.1013
Y: 0.001778
OS
1.6

1.4

1.2
X: 1.759
Y: 0.0009952
1
x(t)

ts
0.8

0.6

0.4 tp

0.2

0
0 0.5 1 1.5 2 2.5
Tempo [s]

Figura 6: Exemplo de resposta ao degrau unitário para um sistema com um


grau de liberdade.

Outra característica importante é o período de oscilações Td dado por



Td = p = 2tp . (36)
ωn 1 − ξ 2
Por fim o tempo de ajuste, ts , define o tempo em que a resposta do
sistema atinge o regime permanente dentro de um intervalo de ±5%12 . Uma
aproximação para ts pode ser escrita como
3
ts = . (37)
ωn ξ
É importante observar que a partir das equações anteriores é possível pro-
jetar um sistema com um determinado fator de amortecimento ξ e freqüência
natural ωn de acordo com os parâmetros de tempo de ajuste, overshoot, pe-
ríodo de oscilações e tempo de pico para conduzirem a uma resposta com
características e forma desejada.
12
Há definições para ts quando este intervalo é ±3%.

15
4.3 Análise de sistemas de 2.o ordem com o Matlab
R

O Matlab R pode ser usado de maneira efetiva para avaliar as caracterís-


ticas de um sistema de 1.o ordem. A seguir um script que realiza a análise
de um sistema de 2.o ordem.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Análise de um Sistema de 2.o ordem
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clc; % limpa a tela


clear; % apaga as variáveis da memória

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Parâmetros do sistema
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

J = 10; % momento de inercia de massa [kg.m^2]


b = 1; % coeficiente de amortecimento viscoso [N.s/m]

K=[0.1 1 5 10]; % Ganho Proporcional

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Função de transferência do sistema
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

num1 = K(1);
den1 = [J b K(1)];
H1 = tf(num1,den1);

num2 = K(2);
den2 = [J b K(2)];
H2 = tf(num2,den2);

num3 = K(3);
den3 = [J b K(3)];
H3 = tf(num3,den3);

num4 = K(4);
den4 = [J b K(4)];
H4 = tf(num4,den4);

16
% A representação no espaço de estados para o
% sistema de 2.o ordem pode ser obtida com

sys1 = tf2ss(num1,den1);
sys2 = tf2ss(num2,den2);
sys3 = tf2ss(num3,den3);
sys4 = tf2ss(num4,den4);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Resposta ao degrau
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

figure(1)
step(H1,H2,H3,H4) % Consulte help step para detalhes
xlabel(’Tempo [s]’,’fontsize’,12,’fontweight’,’bold’);
ylabel(’\theta(t)’,’fontsize’,12,’fontweight’,’bold’);
title(’Resposta ao degrau’,’fontsize’,12,’fontweight’,’bold’);
legend(’K=0.1’,’K=1’,’K=5’,’K=10’)
set(gca,’fontsize’,12,’fontweight’,’bold’);
% note que step(sys) é a mesma coisa!!
saveas(1,’step2.eps’,’psc2’);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Resposta ao impulso
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

figure(2)
impulse(H1,H2,H3,H4) % Consulte help impulse
xlabel(’Tempo [s]’,’fontsize’,12,’fontweight’,’bold’);
ylabel(’\theta(t)’,’fontsize’,12,’fontweight’,’bold’);
title(’Resposta ao impulso’,’fontsize’,12,’fontweight’,’bold’);
legend(’K=0.1’,’K=1’,’K=5’,’K=10’)
set(gca,’fontsize’,12,’fontweight’,’bold’);
saveas(2,’impulso2.eps’,’psc2’);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Resposta à Rampa
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% A entrada rampa é 1/s^2
% Assim se calcular a entrada rampa para
% H(s)1/s tenho a resposta ao degrau

17
R = tf(1,[1 0 0]); % degrau

figure(3)
step(R*H1,R*H2,R*H3,R*H4)
xlabel(’Tempo [s]’,’fontsize’,12,’fontweight’,’bold’);
ylabel(’\theta(t)’,’fontsize’,12,’fontweight’,’bold’);
title(’Resposta a rampa’,’fontsize’,12,’fontweight’,’bold’);
legend(’K=0.1’,’K=1’,’K=5’,’K=10’)
set(gca,’fontsize’,12,’fontweight’,’bold’);
saveas(3,’rampa2.eps’,’psc2’);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Resposta a uma excitação qualquer
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% O comando LSIM é muito usado para simular
% respostas de sistemas a excitaçõs diversas
% O comando interpreta o sistema no domínio s
% e calcula a resposta a partir do método de
% Runge-Kutta

t=0:0.01:200; % vetor tempo para simulação

% entrada como sendo um seno com freq. de 1 Hz


u = 100*sin(2*pi*10*t);

% A resposta é dada por y


y1 = lsim(H1,u,t);
y2 = lsim(H2,u,t);
y3 = lsim(H3,u,t);
y4 = lsim(H4,u,t);

% note que y=lsim(sys,u,t) é a mesma coisa!

figure(4)
plot(t,y1,t,y2,t,y3,t,y4);
xlabel(’Tempo [s]’);
ylabel(’\theta(t)’)
title(’Resposta a uma entrada senoidal’,’fontsize’,12,’fontweight’,’bold’);
legend(’K=0.1’,’K=1’,’K=5’,’K=10’)
set(gca,’fontsize’,12,’fontweight’,’bold’);

18
saveas(4,’seno2.eps’,’psc2’);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Extraindo os fatores de amortecimento
% e freq. naturais do sistema
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% polos do sistema à malha fechada


p1=pole(H1);
p2=pole(H2);
p3=pole(H3);
p4=pole(H4);

% Freq. Naturais e fatores de amortecimento


[Wn1,Z1]=damp(H1);
[Wn2,Z2]=damp(H2);
[Wn3,Z3]=damp(H3);
[Wn4,Z4]=damp(H4);

% visualizando o mapeamento de pólos e zeros


% do sistema no plano de Argand

figure(5)
pzmap(H2)
saveas(5,’polos.eps’,’psc2’);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

O resultado deste programa são apresentados nas fig. (7), (8), (9), (10) e
(11).
Um bom exercício para casa é repetir as simulações anteriores mas as-
sumindo que o controlador Gc (s) é do tipo PD, PI e PID. Varie para cada
caso os parâmetros do controlador e observe atentamente as características
de resposta.

5 Sistemas de ordem superior


A resposta de um sistema de ordem superior é simplesmente a combinação
das respostas de um sistema de 1.o e 2.o ordem. Um exemplo é imaginar uma

19
Resposta ao degrau

2
K=0.1
1.8 K=1
K=5
K=10
1.6

1.4

1.2
θ(t)

0.8

0.6

0.4

0.2

0
0 20 40 60 80 100 120 140
Tempo [s] (sec)

Figura 7: Resposta ao degrau unitário de um sistema de segunda ordem com


J = 10, b = 1 e assumindo diversos valores do ganho K.

função de transferência G(s) como uma relação de dois polinômios em s do


tipo:

p(s)
G(s) = (38)
q(s)
e H(s) do tipo:

n(s)
H(s) = (39)
d(s)
Se for considerado que o sistema é implementado com G(s) com realimen-
tação de H(s) com visto na fig. (12) já sabemos que a função de transferência
de malha fechada é:

Y (s) G(s)
= (40)
R(s) 1 + G(s)H(s)
substituindo nesta equação os polinômios em s que definem G(s) e H(s)
obtém-se de forma expandida a seguinte função de transferência de malha
fechada:

20
Resposta ao impulso

1
K=0.1
K=1
0.8
K=5
K=10
0.6

0.4

0.2
θ(t)

−0.2

−0.4

−0.6

−0.8
0 20 40 60 80 100 120
Tempo [s] (sec)

Figura 8: Resposta ao impulso unitário de um sistema de segunda ordem


com J = 10, b = 1 e assumindo diversos valores do ganho K.

Y (s) p(s)d(s) b0 sm + b1 sm−1 + · · · + bm−1 s + bm


= = (41)
R(s) q(s)d(s) + p(s)n(s) a0 sn + a1 sn−1 + · · · + an−1 s + an
ou simplesmente:

Y (s) B(s)
= (42)
R(s) A(s)
com m ≤ n. Sistemas de ordem superior dificilmente são calculados de
forma analítica. É muito mais vantajoso tratá-los com métodos numéricos
usando o computador e pacotes de toolboxes de softwares como o Matlab .
R
Uma forma mais compacta e elegante pode ser obtida a partir da fatoração
dos polinômios do numerador A(s) e denominador D(s):
Qm
Y (s) B(s) (s + zi )
= = k Qni=1 (43)
R(s) A(s) j=1 (s + pj )

sendo k o ganho de malha da planta e zi e pj os zeros e polos respectiva-


mente do sistema. Este pólos e zeros podem aparecer com multiplicidade e
serem complexos conjugados ou reais.

21
Resposta a rampa
5
x 10
12
K=0.1
K=1
K=5
10 K=10

8
θ(t)

0
0 500 1000 1500
Tempo [s] (sec)

Figura 9: Resposta a rampa de um sistema de segunda ordem com J = 10,


b = 1 e assumindo diversos valores do ganho K.

Vamos analisar alguns casos interessantes. Assuma que o sistema tenha


apenas pólos reais e distintos. Assim, a resposta ao degrau unitário do sis-
tema é simplesmente:
n
a X ri
Y (s) = + (44)
s i=1 s + pi
sendo ri o resíduo do pólo13 em s = −pi . Várias considerações importan-
tes podem ser feitas, como:

• Se todos os pólos tem parte real negativa, o que significa que se situam
no semi-plano esquerdo do plano de Argand, o sistema é dito estável.

• Os valores do resíduo é que determinam a importância relativa dos


componentes da resposta Y (s).

• O tipo de resposta transitória é determinado pela localização do pólo


de malha fechada.
13
O resíduo é calculado com a expansão em frações parciais da função de transferência
e pode ser conferido rapidamente com o Matlab .
R

22
Resposta a uma entrada senoidal
1.5
K=0.1
K=1
K=5
1 K=10

0.5
θ(t)

−0.5

−1

−1.5
0 20 40 60 80 100 120 140 160 180 200
Tempo [s]

Figura 10: Resposta a entrada senoidal de um sistema de segunda ordem


com J = 10, b = 1 e assumindo diversos valores do ganho K.

• A forma da resposta transitória é determinada principalmente pela lo-


calização do zero de malha fechada.

• Pólos e zeros próximos se cancelam mutuamente e não terão muita


influência na resposta do sistema.

• Um pólo muito longe da origem tem resíduo pequeno e portanto exerce


pouca influência tem na resposta. Suas características transitórias são
pequenas e tem pouca duração, uma vez que estes pólos, normalmente
tem um grande amortecimento. Normalmente, estes pólos podem ser
desprezados, o que pode na maioria dos casos ser usado como forma de
simplificar e reduzir a ordem do problema. Já pólos mais próximos da
origem são mais dominantes para característica de resposta transitória.

O último item pode ser melhor descrito com a definição de pólos domi-
nantes em malha fechada. Pólos próximos da origem ou do eixo imaginário
jω são dominantes para o comportamento transitório, uma vez que seu amor-
tecimento é baixo e tem longa duração. Um critério prático para definir estes

23
Pole−Zero Map

0.4

0.3

0.2

0.1
Imaginary Axis

−0.1

−0.2

−0.3

−0.4
−0.05 −0.045 −0.04 −0.035 −0.03 −0.025 −0.02 −0.015 −0.01 −0.005 0
Real Axis

Figura 11: Mapeamento de pólos no plano complexo para o sistema de 2.o


ordem.

Figura 12: Exemplo de diagrama de blocos de ordem superior.

pólos dominantes14 assume que se entre dois pólos a razão entre as partes
reais forem maiores do que cinco e não existir zeros próximos para cance-
lamento, o pólo é dominante. Estes pólos são os de maior importância na
análise e controle de sistemas dinâmicos lineares.
Outro caso interessante é quando existem pólos reais e complexos con-
jugados no sistema. Pólos compexos conjugados aparecem em sistemas de
2.o ordem do tipo subamortecido e contribuem com características oscilató-
14
Na verdade um critério para dizer o que significa ser próximo de jω.

24
rias ao sistema. A resposta ao degrau de um sistema deste tipo com pólos
distintos é dada por:
q e p
a X rj X bk (s + ξk ωk ) + ck ωk 1 − ξk2
Y (s) = + + (45)
s j=1 s + pj k=1 s2 + 2ξk ωk s + ωk2

sendo q + 2e = n, n a ordem do sistema. Em uma primeira vista pode


parecer complicado, porém, mais uma vez ressaltando, sistemas de ordem
superior são descritos como combinação de respostas simples de sistemas de
1.o e 2.o ordem.

6 Estabilidade de sistemas dinâmicos


A estabilidade é o aspecto mais importante para garantir na operação
de um sistema dinâmico. Um sistema dinâmico pode ser estável ou instável
em malha aberta. Normalmente, um processo instável pode ser estabilizado
a partir da ação de um controlador. Por exemplo: controlar um pêndulo
invertido, uma aeronave ou um sistema de levitação magnética são casos
bem conhecidos onde se pode estabilizar um sistema dinâmico que em malha
aberta opera de forma instável.
O conceito de estabilidade pode ser definido a partir de várias aborda-
gens e teorias. Uma delas afirma que se um sistema dinâmico que é excitado
com uma entrada limitada, manter a sua saída limitada, este pode ser con-
siderado estável. Este tipo de abordagem é chamado de Estabilida BIBO 15 .
Outra forma envolve o estudo de estabilidade no sentido de Lyapunov onde
aparecem os conceitos de estabilidade assintótica e não-assintótica e pontos
de equilíbrio. Estes dois tipos de procedimento são bastante usados para
estudar estabilidade em sistemas dinâmicos complexos e não-lineares.
A maneira mais simples de verificar se um sistema dinâmico linear é ou
não estável parte do pressuposto de que todas as raízes do denominador da
função de transferência de malha fechada devem ter a parte real negativa para
o sistema ser estável, em outras palavras, seus pólos devem estar situados no
semi-plano esquerdo do plano complexo. Se o sistema tiver pelo menos um
pólo com parte real positiva o sistema é instável. Note que não é necessários
saber o valor exato deste pólo, apenas conhecer o sinal da parte real basta
para concluir sobre a estabilidade.
Neste sentido, seria interessante ter algum critério ou método tal que
se possa concluir sobre a estabilidade de um sistema dinâmico sem calcular
15
O BIBO vem de bounded-input-bounded-output, ou seja entrada limitada, saída limi-
tada.

25
as raízes da equação característica16 . Esta situação é desejável na prática
quando:
• Se desconhece que são os parâmetros exatos da equação característica.
• A equação característica é uma função de ganhos ou parâmetros de um
controlador. Assim, caso estes valores sejam ajustados erroneamente o
sistema pode vir a operar de maneira instável.
Felizmente, nestas situações o critério de Routh é um método simples e
de fácil implementação que traz informações sobre o número raízes instáveis
da equação característica, sem precisar resolvê-la explicitamente.

6.1 Critério de Routh


O procedimento para o critério de estabilidade de Routh segue os passos:
1. Escreva o polinômio em s da equação característica da forma17 :

a0 sn + a1 s1n−1 + · · · + an−1 s + an = 0 (46)


sendo os coeficientes parâmetros reais.
2. Se algum dos coeficeintes ai for negativo na presença de pelo menos um
coeficiente positivo, o sistema vai ter uma ou várias raízes com parte real
positiva, sendo, portanto, instável. Se o interesse é informação sobre
estabilidade absoluta, o procediemento se encerra. Assim a condição
necessária para o sistema ser estável é que todos os coeficientes devam
ser positivos. Esta é uma condição necessária, porém não suficiente.
3. Se todos os coeficientes são positivos, deve-se organiza-los de uma forma
padrão:

sn a0 a2 a4 a6 ···
sn−1 a1 a3 a5 a7 ···
sn−2 b1 b2 b3 b4 ···
sn−3 c1 c2 c3 c4 ···
.. .. .. (47)
. . .
s2 e1 e2
s1 f1
s0 g1
16
Que é a equação polinomial do denominador da função de transferência de malha
fechada.
17
Importante remover todas as raízes nulas deste polinômio.

26
O processo de formação de linhas contínua até que se esgote todos os
elementos. Os termos b1 , b2 ,· · · , g1 são formados por multiplicações cruzadas
entre os termos anteriores. A matriz com estes coeficientes tem uma forma
triangular.
O critério de Routh afirma: O número de pólos da função de transferência
de malha fechada com parte reais positivas é igual ao número de mudanças no
sinal dos coeficientes da primeira coluna da matriz montada anteriormente.
Um exemplo pode ser mais útil para explicar como o critério funciona.
Suponha a seguinte equação característica:

a0 s 3 + a1 s 2 + a2 s + a3 = 0 (48)
sendo que todos os ai são positivos, mas com valores exatos desconhecidos.
A matriz formada é do tipo:

s3 a0 a2
s2 a1 a3
a1 a2 −a0 a3 (49)
s1 a1
s0 a3
Assim para o sistema ser estável (todas as raízes da equação caracterís-
tica com parte real negativa), tem-se que não pode haver troca de sinais na
primeira coluna da equação anterior, a condição para que isto aconteça é:

a1 a2 > a0 a3 (50)
Um caso especial que acontece é quando o resultado de uma das linhas
é nulo. Nestes casos, deve-se se considerar um valor  acima de zero para
verificar o critério.
Outro exemplo, um pouco mais divertido envolve o uso de uma função de
transferência de malha fechada de quarta ordem com um ganho proporcional
K aplicado na malha. Esta função é dada por:

Y (s) K
= 2
(51)
R(s) s(s + s + 1)(s + 2) + K
A equação característica é função do ganho K, assim:

s4 + 3s3 + 3s2 + 2s + K = 0 (52)


Montando a matriz de coeficientes tem-se:

27
s4 1 3 K
3
s 3 2 0
2 7
s 3
K (53)
s1 2 − 97 K
s0 K
Para que exista estabilidade K deve ser maior que zero e:
9 14
2− K >0 → K< (54)
7 9
Assim o ajuste de K dentro da faixa:
14
>K>0 (55)
9
implica na estabilidade do sistema. Se K = 14/9 o sistema é oscilatório
com amplitude constante (situação limite). Importante deixar clara que não
apenas estabilidade, como desempenho também é interesse.
Um exercício interessante para os alunos treinarem em casa é considerar
o motor CC contralado com uma ação proporcional K, calcule qual a faixa
de K deve ser usada para o sistema ser estável em malha fechada.
Uma das limitações do critérios de Routh é que ele não consegue operar
de forma exata em sistemas com atraso de transporte, comuns de ocorrer
em sistemas térmicos, hidráulicos e pneumáticos. O critério também só traz
informações sobre estabilidade absoluta e não fornece informações diretas e
claras sobre estabilidade relativa. Outra limitação é que a forma da função
de transferência do sistema deve ser conhecida.
Outro critério bastante útil é o critério de Nyquist que trabalha com
informações da função de transferência de malha aberta e é totalmente gráfico
baseado na resposta em frequência do sistema. Neste caso, não é necessário
conhecer a função de transferência do sistema exatamente. Uma vantagem
é que o critério de Nyquist permite trabalhar de forma exata com sistemas
com atraso de transporte.

7 Erros estacionários
Diversas são as causas de erro em sistemas de controle com realimentação,
por exemplo:

• Variações no padrão das entradas de referência;

• Imprecisão dos parâmetros da planta;

28
• Desgaste dos componentes da planta;

Será apresentado nesta seção quais são os erros que existem quando o
sistema é incapaz de seguir corretamente um sinal de referência desejado.
Os erros podem ser classificados em erros do tipo 1, 2, 3, etc. em função do
número de pólos na origem, assim erro do tipo 1 corresponde a um sistema
com 1 pólo na origem, do tipo 2 um com 2 pólos na origem, tipo 0 sem
nenhum, etc.
Considere um sistema dinâmico com realimentação unitária que tenha
seguinte função de transferência de malha fechada:

Y (s) G(s)
= (56)
R(s) 1 + G(s)
Uma função de transferência entre o erro e(t) e entrada r(t) pode ser
escrita como:

E(s) Y (s) 1
=1− = (57)
R(s) R(s) 1 + G(s)
Assim:
1
E(s) = R(s) (58)
1 + G(s)
O valor temporal de e(t) quando t → ∞ pode ser obtido com o teorema
do valor final:

sR(s)
lim e(t) = lim sE(s) = lim (59)
t→∞ s→0 s→0 1 + G(s)

Dependendo do tipo de entrada R(s) pode-se definir as constantes de erro


estático. Estas constantes são figuras de mérito de controle. A saída será
descrita de forma genérica como posição, sua taxa de variação será nomeada
de velocidade e assim por diante.

7.1 Constante de erro estático de posição


Se a entrada é do tipo degrau unitário o erro é dado por:
s 1 1
lim e(t) = lim sE(s) = lim = (60)
t→∞ s→0 s→0 1 + G(s) s 1 + G(0)
A constante de erro estático de posição é definida como:

Kp = lim G(s) = G(0) (61)


s→0

29
ou seja, o erro estacionário neste caso será:
1 1
lim e(t) = = (62)
t→∞ 1 + G(0) 1 + Kp
para um sistema do tipo N = 0 Kp = K, sendo K o ganho de malha,
para tipo N = 1 ou maior Kp = ∞.
Assim o erro em regime permanente do tipo 0 é:
1
lim e(t) = (63)
t→∞ 1+K
O erro para o sistema do tipo 1 é:

lim e(t) = 0 (64)


t→∞

Para o sistema do tipo 0 o erro vai ser nulo quanto K for alto, porém um
K muito alto tende a piorar a estabilidade relativa. Assim, caso o erro deva
ser nulo é desejável que o sistema seja do tipo 1 ou maior.

7.2 Constante de erro estático de velocidade


Já com a entrada rampa o erro é:
s 1 1
lim e(t) = lim 2
= lim (65)
t→∞ s→0 1 + G(s) s s→0 sG(0)

A constante de erro estático18 de velocidade Kv é:

Kv = lim sG(s) (66)


s→0

Portanto, o erro estacionário em termos da constante de erro estático de


velocidade é:
1
lim e(t) = (67)
t→∞ Kv
Para um sistema do tipo 0 é:

sK(Ta s + 1)(Tb s + 1) · · ·
Kv = lim =0 (68)
s→0 (T1 s + 1)(T2 s + 1) · · ·

Para um sistema do tipo 1 é:


18
O termo estático decorre do fato desta constante ser o ganho em regime permanente
do sistema, isto fica melhor explicado quando estudarmos em detalhes a resposta em
frequência.

30
sK(Ta s + 1)(Tb s + 1) · · ·
Kv = lim =K (69)
s→0 s(T1 s + 1)(T2 s + 1) · · ·

Para um sistema com N ≥ 2 o ganho Kv :

sK(Ta s + 1)(Tb s + 1) · · ·
Kv = lim =∞ (70)
s→0 sN (T1 s + 1)(T2 s + 1) · · ·

Com isto o erro em regime estacionário é para o tipo 0:


1
lim e(t) = =∞ (71)
t→∞ Kv
para o tipo 1:
1 1
lim e(t) = = (72)
t→∞ Kv K
e para N ≥ 2
1
lim e(t) =
=0 (73)
t→∞ Kv
Assim um sistema do tipo 0 será incapaz de seguir uma entrada do tipo
rampa unitária, uma vez que o erro sempre será ∞. Já um sistema do tipo
1 pode seguir uma rampa, mas o erro em regime permanente só será baixo
se K for alto. Já um sistema com N ≥ 2 pode seguir a entrada rampa de
forma exata sem erro algum.

7.3 Constante de erro estático de aceleração


O erro estacionário com entrada em parabóla unitária (aceleração) é dado
como:

t2
r(t) = (74)
2
para t ≥ 0 assim o erro em regime permanente é:
s 1 1
lim e(t) = lim 3
= (75)
t→∞ s→0 1 + G(s) s lims→0 s2 G(s)
A constante de erro estático de aceleração Ka é:

Ka = lim s2 G(s) (76)


s→0

Assim o erro estacionário em função da constante de erro estático de


aceleração Ka é:

31
1
lim e(t) = (77)
t→∞ Ka
Para um sistema do tipo 0 esta constante é:

s2 K(Ta s + 1)(Tb s + 1) · · ·
Kv = lim =0 (78)
s→0 (T1 s + 1)(T2 s + 1) · · ·
para o tipo 1 é:

s2 K(Ta s + 1)(Tb s + 1) · · ·
Kv = lim =0 (79)
s→0 s(T1 s + 1)(T2 s + 1) · · ·

para o tipo 2 é:

s2 K(Ta s + 1)(Tb s + 1) · · ·
Kv = lim =K (80)
s→0 s2 (T1 s + 1)(T2 s + 1) · · ·

já para N ≥ 3 é:

s2 K(Ta s + 1)(Tb s + 1) · · ·
Kv = lim =∞ (81)
s→0 sN (T1 s + 1)(T2 s + 1) · · ·

Com isto os erros estacionários para são:

lim e(t) = ∞ Para o tipo 0 ou 1 (82)


t→∞
1
lim e(t) =Para o tipo 2 (83)
t→∞ K
lim e(t) = 0 Para o tipo 3 ou maiores (84)
t→∞

A tabela (1) resume todos os tipos de erros estacionários em função dos


ganhos K da malha.

Tabela 1: Erros estacionários em função dos ganhos K.

Sistema Entrada degrau Entrada em rampa Entrada em aceleração


1
Tipo 0 1+K
∞ ∞
1
Tipo 1 0 K

1
Tipo 2 0 0 K

32
8 Comentários finais
Este capítulo apresentou os aspectos básicos envolvidos na análise em re-
gime permanente e transitório de sistemas dinâmicos descritos com o auxílio
de funções de transferência e diagramas de blocos. Em especial se estudou os
diversos tipos de respostas de sistemas de 1.o , 2.o e ordens superiores; noções
de estabilidade; critério de Routh; ações básicas de controle e erros estacioná-
rio em sistemas de controle. Sempre que possível, o uso de programas como
o Matlab R foi apresentado para auxiliar na fixação e análise dos resultados
apresentados.

Referências
[1] K. Ogata. Engenharia de Controle Moderno. Prentice Hall, 4.o edition,
2005.

[2] J. C. Geromel and A. G. B. Palhares. Análise Linear de Sistemas Di-


nâmicos - Teoria, Ensaios Práticos e Exercícios. Editora Edgar Blücher
Ltda., 1.o edition, 2004.

[3] J. Juang and M. Q. Phan. Indentification and Control of Mechanical


Systems. Cambridge University Press, 2001.

[4] L. A. Aguirre. Introdução à Identificação de Sistemas - Técnicas Linea-


res e Não-Lineares Aplicadas a Sistemas Reais. Editora da UFMG, 2nd
edition, 2004.

33