Você está na página 1de 110

Controle Automtico III

(Controle Digital)

Fernando Passold
I Last Updated: 2 de junho de 2014

Este material foi desenvolvido para a disciplina de Controle Automtico III do curso de Engenharia Eltrica da UPF, que poderia ser chamada tambm de Controle Discreto no Tempo ou
simplesmente de Controle Digital.
Este material no pretende ser auto-suficiente em si mesmo, apesar da quantidade de Apndices, mas visa ser usado como continuidade para disciplinas anteriores na rea de Controle
Automtico, uma vez que pressupe que o leitor j tenha adquirido fundamentos anteriores na
rea de Controle Automtico clssico. Isto , que esteja ao menos familiarizado com transformadas de Laplace e projetos de controladores (analgicos) usando Diagrama do Lugar das
Razes (Root-Locus) e preferencialmente que tambm, domine o projeto de controladores de
Avano-Atraso (Lead-Lag) no domnio frequncia.
Este material foi criado usando software livre e de domnio pblico: LaTeX (pacote MiKTeX /
MacTeX) e editor TeXmaker. Foi adotada a fonte: KP Fonts Serif (kpfonts baseada em URW
Palladio), tamanho 10.
Prof. Dr. Eng. Fernando Passold, 2 de junho de 2014.

Sumrio
1 Teoria de Erros
1.1 Introduo . . . . . . . . . . . . . . . . . . . .
1.2 Sistema padro de realimentao unitria
1.2.1 Caso 1) Entrada Degrau . . . . . . . .
1.2.2 Caso 2) Entrada Rampa . . . . . . . .
1.3 Tabela Resumo . . . . . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

2 Estabilidade
2.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Resposta Entrada Limitadas . . . . . . . . . . . . . . .
2.3 Representao de Plos no Plano Complexo (Z) . . .
2.3.1 Caso 1) F (z) com Plos Reais . . . . . . . . . .
2.3.2 Caso 2) F (z) com Plos Complexos . . . . . . .
2.4 Mtodo de Jury . . . . . . . . . . . . . . . . . . . . . .
2.4.1 Exemplo de Sistema de Segunda Ordem . . .
2.4.2 Exemplo de Sistemas de Terceira Ordem . . .
2.4.3 Exemplo de Planta de Segunda ordem . . . .
2.5 Efeitos do Perodo de Amostragem . . . . . . . . . . .
2.6 Diagrama do Lugar das Razes (RL) . . . . . . . . . .
2.6.1 Construindo o Diagrama do Lugar das Razes
2.6.2 Exemplos de Traados de RL . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

5
5
5
6
8
9

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

11
11
11
12
12
13
15
16
16
17
18
20
21
22

3 Controladores Digitais
3.1 Simples Controlador Proporcional, K . . . . . . . . . . . . . .
3.1.1 Determinando Km ax
. . . . . . . . . . . . . . . . . . .

3.2 Controlador (polinomial) cancelando plo(s) dominante(s) .


3.3 Cancelamento imperfeito de plos-zeros . . . . . . . . . .
3.4 Projeto de Controlador Digital usando Root Locus . . . . . .
3.4.1 Compensador por Avano de Fase . . . . . . . . . . .
3.5 Projeto de Controlador PI usando Root Locus . . . . . . . . .
3.6 Controlador Dead-beat (Controle por tempo mnimo, finito)
3.6.1 Exemplo1 : O controlador Deadbeat . . . . . . . . . .
3.6.2 Exemplo2 : Projeto de Controlador Deadbeat . . . . .
3.6.3 Exemplo2 : Outro projeto de Controlador Deadbeat .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

31
33
34
39
43
48
48
50
57
57
58
64

4 Projeto de Controladores Digitais


4.1 Mtodo dos Plos Dominantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Metodologia de Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Comentrios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67
67
68
69

5 Projeto por Emulao


5.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Mtodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.1 Exemplo1 : Caso de um Controlador de 1a-ordem . . . . . . . . . . . .
5.2.2 Exemplo2 : Caso de um Controlador por Avano de Fase . . . . . . . .
5.3 Relao entre o plano-s e plano-z . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 Mtodo de Tustin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.1 Exemplo1 : Equao de diferenas usando o Mtodo de Tustin . . . . .
5.4.2 Exemplo2 : Projeto de Controlador Digital usando o Mtodo de Tustin

75
75
76
77
77
80
82
83
83

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

5.5 Outras Transformaes Bilineares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


A Equaes Auxiliares
A.1 Tabela de Derivadas . . . . . . . .
A.2 Equao do Segundo Grau . . . . .
A.3 Relaes de Euler . . . . . . . . . .
A.4 Progresso Geomtrica . . . . . .
A.5 Definio da Transformada Z . . .
A.6 Propriedades da Transformada Z
A.7 Tabela de Transformadas Z . . . .

85

.
.
.
.
.
.
.

87
87
87
87
87
88
88
89

B Respostas temporais no Plano-Z


B.1 Casos de Plos Reais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.2 Caso de Plos Complexos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91
91
92

C Transformada Z - Uso do MATLAB


C.1 Transformada Z Inversa (Usando o MATLAB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
C.2 Sistemas com Sustentador de Ordem Zero [B0 G (z)] . . . . . . . . . . . . . . . . . . . . . . . . . .

93
93
96

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

D Respostas Tpicas de Sistemas de 2a -ordem


D.1 Sistemas com 0 < < 1 . . . . . . . . . . . . . . . . .
D.2 Relao entre posio do plo e sobrepasso (%OS)
D.3 Relao entre posio do plo e Ts . . . . . . . . . .
D.4 Relao entre posio do plo e Tp . . . . . . . . . .
D.5 Relao entre posio do plo e . . . . . . . . . .

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

97
98
100
100
100
100

E Reviso Controladores Clssicos


101
E.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
E.2 Melhorando o erro em regime permanente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
E.3 Melhorando o Erro Estacionrio (PI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
F MATLAB: Comandos

105

Captulo 1

Teoria de Erros
1.1

Introduo

Relao com as caractersticas desejveis num sistema de controle.


As especificaes de um sistema de controle incluem:
desempenho em regime permanente (preciso);
desempenho em regime transitrio (formas de onda);
robustez (degradao do controle frente mudanas no sistema).

1.2

Sistema padro de realimentao unitria

Seja um tpico sistema de controle em malha fechada do tipo SISO (single-input, single-output) como o
mostrado na figura 1.1.

yr(t) +

C(z)

e(kT)

u(kT)

Algoritmo
de Controle

Bo

G(z)

y(t)

Atuador
+
Processo
+
Medidor

(realimentao unitria)

Figura 1.1: Sistema padro de realimentao unitria.

Note que:
este sistema controla o valor medido do erro, no a varivel de sada.
a unidade para medio de Y a mesma que a adotada para a referncia Yr , para que o bloco somador
atue de fomra conveniente.
qualquer sistema em malha fechada com realimentao unitria (H(s) = 1), tende a igualar a entrada
e a sada (Ogata, 1995, p. 99 e 210).
H(s) atua como um conversor de unidades entre Y e Yr .
Podemos redesenhar o diagrama anterior (figura 1.1) como o mostrado na figura 1.2 e ento:
yr(t) +

BoG(z)

C(z)

Figura 1.2: Sistema padro no formato digital.

y(t)

C(z) B oG (z)
F T MA(z)
F (z)
Y(z)
=
=
=
Yr (z) 1 + C(z)B oG (z) 1 + F T MA(z) 1 + F (z)
isolando o erro:

"

#
"
#
F (z)
1 + F (z) F (z)
E(z) = Yr (z) Y(z) = Yr (z) 1
= Yr (z)
1 + F (z)
1 + F (z)

notamos ento que o comportamento do erro dado por:


"
#
1
E(z) =
Yr (z)
1 + F (z)

(1.1)

ou seja, que o erro funo de Yr e da F T MA(z), ou:


E rro = f [Yr , F ]
O que acontece ento como o erro em regime permanente (preciso)?
Procedendo com o clculo do erro em regime permanente (quando t ):
lim e(kT) = lim (z 1) E(z)

z1

Para o nosso caso:


lim e(kT) = lim (z 1)

z1

1
Y (z)
1 + F (z) r

(1.2)

Para continuar com a anlise, necessitamos levantar hipteses sobre entradas (referncias) do sistema.
Normalmente se trabalha com: entrada degrau, rampa e parbola.

1.2.1

Caso 1) Entrada Degrau


Yr (z) = U(z) =

z
z 1

neste caso:
lim e(kT)

=
=

lim e(kT)

1
Y (z)
1 + F (z) r
z1
z
1

lim (z 1)
1 + F (z) (z 1)
z1
1
1 + limz1 F (z)
lim (z 1)

(1.3)

Este limite conhecido como Kp =ganho de posio (similar ao ganho esttico dos sistemas contnuos no
tempo), ou seja:
Kp = lim F (z)
(1.4)
z1

Falta agora analisar Kp para alguns tipos de sistema F (z). Note que nos resta calcular limz1 F (z). Se F (z)
possui termos com plo em z = 1, isto , possui integradores, e(kT)|k = 0.
Demonstrao
O que seria uma integrao numrica?
Supondo que se esteja interessado numa integrao numrica retangular ver figura 1.3
onde: i(k)= integral de 0 k. Ento:
i(0)

i(T)

g(0) T = i(0) + g(0) T

i(2T) =
..
.
i(k)

i(0) + g(0) T + g(T) T = i(1) + T g(T)

i(k 1) + T g(k 1)
6

(1.5)

% Grfico criado no MATLAB:


>> k=0:5;
>> y=1.2.^k;
>> plot(k,y,k--)
>> hold on
>> stem(k,y,mo)
>> stairs(k,y,b-)
>> xlabel(kT);
>> ylabel(g)

Figura 1.3: Mtodo de integrao numrica retangular.

Note que a expresso (1.5) est no formato de uma equao de diferenas, ento:
I(z)

z 1 I(z) + T z 1 G (z)

I(z)[1 z 1 ]

I(z)

T z 1 G (z)
!
T z 1
G (z)
1 z 1

ou:
I(z) =

T
G (z)
(z 1)

(1.6)

Note o plo em z = 1.
Se fosse adotado outro mtodo de integrao numrica, ainda assim teramos o termo (z 1) aparecendo
no denominador da funo.
Exemplo: integrao numrica trapezoidal
Acompanhando pela figura 1.4, agora temos algo como:

>>
>>
>>
>>
>>
>>
>>
>>
>>
>>

% Grfico no MATLAB:
% fplot(@(t) 1.4.^t-0.9.^t-0.2.^t+2, [0 5])
t=0:0.1:5; % tempo variando de 0,1 segundos
k=0:5; % amostras a cada T=1 seg
y=1.4.^t-0.9.^t-0.2.^t+2;
yd=1.4.^k-0.9.^k-0.2.^k+2; % verso discreta
figure; plot(t,y,k--);
hold on;
stem(k,yd,mo)
plot(k,yd,b-)

Figura 1.4: Mtodo de integrao numrica trapezoidal.

i(kT) = i[(k 1)T] +

T
[g[(k 1)T] + g(kT)]
2

lembrando que a rea de um trapzio dada por:


A=

(B + b) h
2
7

(1.7)

Transformando (1.7) numa expresso em Z, obtemos:


I(z)

z 1 I(z) +

T/2
(1 + z 1 ) G (z)
(1 z 1 )
T/2
(z + 1) G (z)
(z 1)

=
I(z)

T 1
(z + 1) G (z)
2

(1.8)

Note novamente em (1.8) o termo (z 1) no denominador, ou seja, que volta a aparecer o plo em z = 1.
Assim, de maneira geral, se pode afirmar que uma equao caracterstica com integradores do tipo:
F (z) =

N(z)
(1 z 1 ) D 0 (z)

com plo em z = 1.
Voltando ao clculo do erro para provar que e(kT)|k = 0 quando existe pelo menos um integrador em
F (z), temos:
1
e(kT)|k =
1 + limz1 F (z)
onde: limz1 F (z) = Kp (ganho de posio).
Ento:
1. Se F (z) no possui integradores, ento:
f (z) =
ento: limk e(kT) =

N(z)
,
D (z)

(D (z) , 0)

1
= Cte = nmero finito e portanto, e(kT)|k , 0.
1 + Kp

2. Se F (z) contm pelo menos 1 integrador, ento F (z) do tipo:


F (z) =

N(z)
(z 1) D 0 (z)

e o erro dado por:


lim e(kT) =

1
N(z)
1 + limz1
(z 1) D 0 (z)

1
1 + Kp

neste caso, Kp e consequentemente, e() = 0.


Isto significa que se meu sistema possuir pelo menos um integrador, bem provvel (depende da
quantizao do sistema), que seu erro em regime permanente seja nulo.

1.2.2

Caso 2) Entrada Rampa

Neste caso:
Yr (z) =

Tz
(z 1)2

e neste caso e() fica:


lim e(kT)

=
=
=

1
Tz

1 + F (z) (z 1)2
z1
Tz
lim
z1 (z 1) + (z 1)F (z)
T
T
=
limz1 (z 1) F (z) Kv
lim (z 1)

(1.9)

onde Kv = ganho de velocidade.


Da mesma forma que procedemos para o caso anterior, vamos analisar o comportamento do erro, dependendo da funo F (z).
1. Considerando F (z) sem integradores (um sistema do tipo 0):
isto , no converge.

lim e(kT) =

2. Se F (z) possui 1 integrador (sistema do tipo 1):


D (z) = (z 1) D 0 (z)
limk e(kT) =

T
= cte = valor finito, mas , 0.
Kv

3. Se F (z) possui 2 integradores (sistema do tipo 2):


lim e(kT) = 0

Isto significa que acrescentamos tantos integradores (D (z) = (z 1)) na F T MA do processo quanto o
necessrio para tornar o erro nulo.

1.3

Tabela Resumo

Segue uma tabela resumo sobre Teoria de Erros (ou Preciso):


Entradas:
Sistema:

Degrau
z
z 1

Rampa
T z
(z 1)2

Tipo 0

F (z) =

N(z)
D (z)

1 + Kp

Tipo 1

F (z) =

N(z)
(z 1)D 0 (z)

T
Kv

Tipo 2

N(z)
F (z) =
(z 1)2 D 0 (z)

onde:

Kp = limz1 F T MA(z) = ganho de posio.

Parbola
T 2 z (z + 1)
2(z 1)3

T2
ka

Kv = limz1 (z 1) F T MA(z) = ganho de velocidade.


Ka = limz1 (z 1)2 F T MA(z) = ganho de acelerao.
Tabela 1.1: Tabela resumo sobre erros.(Ogata, 1995, pg. 355)

10

Captulo 2

Estabilidade
2.1

Introduo

Trata-se do objetivo mais importante para um sistema de controle.


Para sistemas lineares e invariantes no tempo so BIBO estveis (entrada limitada e sada limitada) se
a aplicao de uma entrada limitada produz uma sada limitada. Mas ateno, este conceito suficiente
para sistemas contnuos no tempo. Para sistemas discretos (amostrados) ainda depende do perodo de
amostragem adotado!
A estabilidade de um sistema em malha fechada depende de:
Ganhos;
Plos;
Zeros;
Atrazos;
T, perodo de amostragem.

2.2

Regime transitrio de um sistema submetido a uma entrada limitada (degrau)

Suponha que temos o sistema mostrado na figura 2.1.


Yr +

G(z)

H(z)
Figura 2.1: Sistema em malha fechada.

onde:
G
N(z)
Y
=
= F T MF (z) = F (z) =
Yr 1 + G H
D (z)
conforme mostra a figura 2.2.
Yr(z)

F(z)

Y(z)

Figura 2.2: Funo de malha-fechada.

Da figura 2.2 percebemos que:


Y(z) = F (z) Yr (z) =
11

z
N(z)

(z 1) D (z)

(2.1)

z
a transformada Z do degrau.
(z 1)

onde:

Os zero finitos de F (z) so as razes de N(z) = 0. E os plos de F (z) so as razes de D (z) = 0.


Se o mtodo da decomposio em termos simples (fraes parciais) for aplicado sobre a equao 2.1
teremos:
!

cj
cj
c0
ci
Y(z)
=
+
+
+
(2.2)
z
z 1
z pi
(z p j ) (z p j )
Plos Reais

Plos Complexos

Lembrando que:
(
Z
obtemos:
y(kT) = c0 +

ci z
z pi

)
= ci pki

ci pki +

c j pkj + c j pkj

(2.3)

Plos Complexos

Plos Reais

onde: c0 = termo em funo da entrada (define o regime permanente da sada); os outros termos ( s) =
funo das caractersticas de F (z), definem o regime transitrio que depende dos plos de F (z) ponderados
pelos coeficientes ci ou c j , cujas magnitudes so determinadas pelo numerador de F (z).

2.3

Representao de Plos no Plano Complexo (Z)

A seguir estudaremos como os plos contribuem na resposta y(KT)

2.3.1

Caso 1) F (z) com Plos Reais

Neste caso, y(KT) depende dos termos ci pki . A figura 2.3 mostra os mapeamentos possveis para plos
no plano Z e suas respectivas repercusses no domnio amostrado.

Caso 2:

Caso 4:

Im{Z}
1
Caso1:
Caso 6:

x xx

x x x
1

-1

Caso 5:

-1

Re{Z}

Caso 3:

Figura 2.3: Respostas transientes para casos de simples plos reais.

Analisando a figura 2.3 nota-se:


Caso 1 : pi > 1, plo instvel, sada divergente, tanto mais quanto mais distante o plo estiver de z = 1.
Caso 2 : pi = 1, sistema em ressonncia, o plo se encontra sobre z = 1. Este tipo de sistema corre o risco
de no ser estvel para certas entradas.
12

Caso 3 : 0 < pi < 1, sada convergente (decrescente), apresentando valores decrescentes to rpidamente
quanto mais prximo de z = 0 estiver este plo.
Caso 4 : 1 < pi < 0, sada converge (decresce com o tempo), mas como pi negativo, forma-se uma sequencia convergente alternada.
Caso 5 : p = 1, sistema oscilando com amplitude constante (enquanto |pi | = 1) na frequencia de f = 1/(2 T).
Caso 6 : pi < 1, outro plo instvel, sistema apresenta saida divergente (crescente) e alternada (sinal negativo para pi ).

2.3.2

Caso 2) F (z) com Plos Complexos

Neste caso, F (z) apresenta plos conjugados complexos: c j pkj + c j p kj , onde:


cj

a + jb

pj

= + j

Representando o plo na forma polar, resulta em:


Im{z}

cj

=
=

Ae

onde:

pj

q
2 + 2
 

tan1

pj

Re{z}

ento:
c j pkj + c j p kj

Ak e j(k+) + Ak e j(k+)
h
i
Ak e j(k+) + e j(k+)

2Ak cos (k + )

(2.4)

ou seja, a sada se tranforma numa exponencial sobreposta com uma senide amostrada nos instantes k.
Supondo que k = 2 (mltiplos cossenos), temos: t = k T
Isolando em tpp e substituindo em k = 2, obtemos tpp =

k=

tpp
.
T

2T
, onde tpp significa um pseudo-perodo.

A figura 2.4 mostra o efeito amostrado da eq. (2.5).

"

6,2

8*T

a medida que

Figura 2.4: Impacto de sobre a eq. (2.5).

A figura 2.5 mostra diferentes casos de plos complexos no plano-z e respectivas respostas transientes
no tempo discreto.

13

h
i
z z e aT cos (T)
z 2 2e aT z cos (T) + e 2aT

n
o
= Z e akT cos (kT)

Figura 2.5: Representaes grficas da Transformada Inversa Z.[Cadzow (1973),Kuo (1992)]

14

2.4

Mtodo de Jury

Este mtodo permite determinar a estabilidade de um sistema discreto linear atravs da anlise dos
coeficientes da sua equao caracterstica. Seria uma analaogia num sistema discreto ao critrio de
estabilidade de Routh-Hurwitz.
Seja o polinmino D (z) extrado da equao caracterstica de um sistema discreto:
D (z) = an z n + an1 z n1 + . . . + a1 z + a0 = 0
o sistema estvel se e somente se suas razes estiverem contidas dentro do crculo unitrio no plano Z.
Isto implica em 3 condies preliminares1
(i)
(i i)
(i i i)

|a0 | < an
D (z)|z=1 = D (1) > 0(
D (z)|z=1 = D (1)

>0
<0

para n par
para n mpar

, ou: (1)n D (1) > 0.

Uma vez atendidas as condies anteriores parte-se para o arranjo (ou Tabela) de Jury (similar ao do
mtodo de Routh-Hurwittz):
Linha
1
2
3
4
..
.
..
.

z0
a0
an
b0
b n1

z1
a1
an1
b1
b n2
..
.
..
.

z2
a2
an2
b2
b n3

...
...
...
...
...
..
.
..
.

2n 5
2n 4
2n 3

p0
p3
q0

p1
p2
q1

p2
p1
q2

p3
p0

z n1
an1
a1
b n1
b0

zn
an
a0

A tabela de Jury construda da seguinte forma:


A tabela consiste em (2n 3) linhas. Para um sistema de segunda-ordem, a tabela possui apenas 1
linha.
Primeira linha: seus elementos consistem dos coeficientes de D (z) arranjados em potncias ascendentes em z.
Segunda linha: seus elementos consistes nos coeficientes de D (z) arranjados em potncias descendentes de z.
Os outros elementos dependem dos determinantes:


a0 ank


,
bk =
k = 0, 1, 2, . . . , n 1
an ak


b
b n1k
, k = 0, 1, 2, . . . , n 2
ck = 0
b n1 b k


c
cn2k
, k = 0, 1, 2, . . . , n 3
d k = 0
cn2 ck




p
p1
p
p3
,

q0 = 0
q2 = 0
p3 p2
p3 p0
Note que:
Os elementos de qualquer linha par (linhas 2, 4, . . .) so simplesmente o reverso da linha imediatamente
precedente mpar (linhas 1, 3, . . .).
A ltima linha (2n 3) possui apenas 3 elementos.
1 Ateno: Ogata (1995) referencia a equao caracterstica como: P(z) = a z n + a z n1 + . . . + a
0
1
n1 z + a n o que faz inverter a
primeira pr-condio (no caso dele) para: |an | < a0 .

15

Uma vez finalizado o arranjo, pode-se concluir que o sistema ser estvel se:
< |an |
> |b n1 |
> |cn2 |
> |d n3 |
..
.
|p0 | > |p3 |
|q0 | > |q2 |
|a0 |
|b 0 |
|c0 |
|d 0 |

2.4.1

(n 1) restries

Exemplo de Sistema de Segunda Ordem

Exemplo 1:
Num sistema de 2a-ordem, n = 2 e neste caso, a tabela de Jury contm apenas 1 linha. Assim, para
estabilidade:
D (1) > 0
D (1)
|a0 |

> 0
< |a2 |

Por exemplo, para o sistema: D (z) = z 2 0.25 = 0, as pr-condies necessrias para estabilidade so:
Condies
Sistema
Satisfeito ou no?
1) D (1) > 0
D (1) = 1 0.25 = 0.75 > 0
3 Satisfeito
2) D (1) > 0 D (1) = 1 0.25 = 0.75 > 0 3 Satisfeito
3) |a0 | < |a2 | |a0 | = 0.25 < a2 = 1
3 Satisfeito
Desta forma, percebe-se que todas as condies foram satisfeitas, ou seja, o sistema estvel.

2.4.2

Exemplo de Sistemas de Terceira Ordem

Exemplo 2:
Determinar a estabilidade de um sistema discreto cuja equao caracterstica :
D (z) = z 3 1, 2z 2 1, 375z 0, 25 = 0
As pr-condies para estabilidade so:
Condies
1) D (1) > 0
2) D (1) < 0
3) |a0 | < a3

Sistema
Satisfeito ou no?
D (1) = 1 1, 2 1, 375 0, 25 = 1, 875 > 0
7 No Satisfeito
D (1) = 1 1, 2 + 1, 375 0, 25 = 1, 125 < 0 3 Satisfeito
|a0 | = 0.25 < a3 = 1
3 Satisfeito

Exemplo 3:
Seja a equao caracterstica:
D (z) = z 3 + 3, 3z 2 + 4z + 0, 8 = 0
As pr-condies para estabilidade so:
Condies
1) D (1) > 0
2) D (1) < 0
3) |a0 | < a3

Sistema
Satisfeito ou no?
D (1) = 1 + 3, 3 + 4 + 0, 8 = 9, 1 > 0
3 Satisfeito
D (1) = 1 + 3, 3 4 + 0, 8 = 0, 9 < 0 3 Satisfeito
|a0 | = 0.8 < a3 = 1
3 Satisfeito

O arranjo de Jury resulta em:


Linha z 0
z1
z2
z3
1
0, 8 4, 0 3, 3 1, 0
2
1, 0 3, 3 4, 0 0, 8
3
b0
b1
b2
16

onde:
b0
b1
b2


=

=

=

a0
a3
a0
a3
a0
a3

a3
a0
a2
a1
a1
a2


= a2 a2 = 0, 36
3
0


= a a a a = 0, 1
0 1
2 3


= a a a a = 1, 36
0 2
1 3

A condio suficiente para estabilidade : |b 0 | > |b2 |. Assim, observando-se os valores obtidos para b 0 e b 2 ,
nota-se que esta condio no foi satisfeita e consequentemente, este sistema no estvel. De fato, as
razes de D (z) esto em:
>> D=[1 3.3 4 0 . 8 ]
D =
1.0000
3.3000
>> r o o t s ( D )
ans =
1.5268 + 0.9574 i
1.5268 0.9574 i
0.2463
>>

2.4.3

4.0000

0.8000

Exemplo de Planta de Segunda ordem

Analize a estabilidade do seguinte sistema em malha-fechada (fig 2.6) [Phillips and Nagle (1994); pg.
191, 231]:

YR

K
s(s + 1)

Bo(s)
T

ou

YR

Bo(s)

K
-

1
s(s + 1)

Figura 2.6: Sistema exemplo.

Sua funo transferncia dada por:


Y(z)
B oG (z)
=
YR (z) 1 + B oG (z)
onde B oG (z) na forma:
B oG (z) =

K(b 0 + b1 z)
(z 1)(z a)

Determinando B oG (z):
(

)
1
Z {B o(s)G (s)} = (1 z )Z 2
s (s + 1)
(
)
1
1
1
= (1 z 1 )Z

+
1s 2 1s 1(s + 1)
"
#
(z 1)
Tz
z
z
=

+
z
(z 1)2 (z 1) (z e T )
1

B oG (z)

K[z(T + e T 1) + (1 T e T e T )]
(z 1)(z e T )

Nota que segue o formato:


b
b
K b1 1 z + 0
b1
b1
K(b0 + b 1 z)
B oG (z) =
=
(z 1)(z a)
(z 1)(z a)
17

A equao caracterstica do sistema ento:


D (z)

1 + B oG (z) = 0

D (z)

(z 1)(z a) + K(b 0 + b 1 z) = 0

D (z)

z 2 (1 + a)z + a2 + Kb0 + Kb1 z

D (z)

z 2 (1 + a Kb1 )z + (a2 + Kb0 )

Expandindo os termos de D (z), se obtm:

Usando-se o mtodo de Jury para identificar os requisitos para estabilidade do sistema temos:
D (z)

z2
a2

=
=

+(a2 + Kb0 )
a0

(1 + a Kb1 )z
a1

Pelos critrios de Jury:

1)

2)

D (1) > 0

D (1) > 0

1 1 + a + Kb1 + a + Kb 0 > 0
se obtm: Kb1 + Kb 0 > 0, que pode ser escrito como:
K > 0, Se (b 1 + b0 ) > 0

1 + 1 + a Kb1 + a + Kb 0 > 0
K(b0 b 1 ) > 2a 2
2(1 + a)
, Se (b 0 b 1 ) > 0
K>
b0 b1

a + Kb 0 < 1
1a
K<
,
b0

e
3) |a0 | < a2

2.5

Se

b0 > 0

Efeitos do Perodo de Amostragem

Verificando para o caso do sistema anterior, os efeitos causados por diferentes valores para o perodo de
amostragem T:
a) Suponha que T = 0, 1 (segundos):
Ento:

a = e T
b 1 = e T + T 1
b 0 = 1 e T T e T

= 0, 9048374
= 0, 0048374
= 0, 0046788

Aplicando os critrios de estabilidade, temos:


1)

K > 0,

b1 + b2 > 0

2)

K<

1a
0, 0952
,K <
,
b0
0, 0047887

K < 20, 3389

3)

K<

2(1 + a)
,
b0 b1

K < 2.4024 104

(Desconsiderada a menos restritiva)


ento, a condio para estabilidade se resume :
0 < K < 20, 3389
b) Supondo que T = 1, 0 (segundos):
teremos:

a = e T
b 1 = e T + T 1
b 0 = 1 e T T e T
18

= 0, 3679
= 0, 3679
= 0, 2642

Aplicando os critrios de estabilidade, temos:


1)

K > 0,

b1 + b2 > 0

2)

K<

1a
,
b0

K < 2.3922

3)

K<

2(1 + a)
,
b0 b1

K < 26.3972
(Desconsiderada a menos restritiva)

ento, a condio para estabilidade se resume :


0 < K < 2.3922

Comportamento de um sistema na situao do ganho mximo


Vamos verificar o que acontece quando T = 1, 0 (segundos) e K = 2, 3922:
Para este valor de K a equao do sistema fica:
B oG (z) =

K(b 0 + b1 z)
K(0, 3679z + 0, 2642)
= 2
(z 1)(z a) z 1, 3679z + 0, 3679

assim, a funo transferncia em malha-fechada fica:


F T MF (z) =

B oG (z)
1 + B oG (z)

e sua equao caracterstica fica:


D (z)

1 + B oG (z) = 0
K(0, 3679z + 0, 2642)
= 1+ 2
=0
z 1, 3679z + 0, 3679
= z 2 + (0, 3679K 1, 3679)z + (0, 3679 + 0, 2642K) = 0
=

z 2 0, 4878z + 1 = 0

ou seja, as razes para D(z) (plos do sistema) ficam em:


z1

0, 2439 + j0, 9698

z2

0, 2439 j0, 9698

que equivale z = 1, 01, 3244(rad) = 1, 0 T.


Ou seja, o sistema oscila e na frequncia de 1,3244 (rad/s) (ou 8,3214 (Hz)).
Usando o MATLAB para realizar os clculos fica:
>> T = 1 . 0 ;
>> a=exp ( T )
a =
0.3679
>> b1=exp ( T ) +T1
b1 =
0.3679
>> b0=1exp ( T ) T * exp ( T )
b0 =
0.2642
>> K=(1a ) /b0
K =
2.3922
>> %Montando BoG(z):
>> num=K * [ b1 b0 ]
num =
0.8800
0.6321
>> den=conv ( [ 1 1 ] , [ 1 a ] )
den =
1.0000
1.3679
>> BoG= t f ( num , den , T ) ;
>> zpk ( BoG )

0.3679

Zero / po l e / gain :
0.88005 ( z +0.7183)

19


( z 1) ( z 0.3679)
Sampling time : 1
>> %Fechando a malha para obter D(z):
>> FTMF=feedback ( BoG , 1 )
Transfer function :
0.88 z + 0.6321

z^2 0.4878 z + 1
Sampling time : 1
>> %Recuperando D(z):
>> [ num_mf , den_mf , T]= t f d a t a ( FTMF , v )
num_mf =
0
0.8800
0.6321
den_mf =
1.0000
0.4878
1.0000
T =
1
>> %Encontrando as raizes de D(z):
>> p_mf=r o o t s ( den_mf )
p_mf =
0.2439 + 0.9698 i
0.2439 0.9698 i
>> %Determinando polo em coordenadas polares:
>> [ theta , rho ]= c a r t 2 p o l ( r e a l ( p_mf ( 1 ) ) , imag ( p_mf ( 1 ) ) )
theta =
1.3244
rho =
1.0000
>> f r e q=t h e t a * ( 2 * p i )
freq =
8.3214
>>

Concluso
Nota-se que a medida que aumenta o perodo de amostragem T, se obrigado a abaixar o ganho K do controlador, para manter a estabilidade do sistema.

T K

Notar que o acontece que o sistema fica em malha-aberta entre instantes de amostragem, isto , o sistema
est evoluindo entre os instantes de amostragem. Esta evoluo funo do ganho e tamanho do perodo
de amostragem adotado.

2.6

Diagrama do Lugar das Razes (RL)

O efeito do Ganho (K) num sistema e/ou do perodo de amostragem na estabilidade absoluta ou relativa do sistema em malha fechada deve ser investigada adicionalmente s caractersticas da resposta
transitria. O mtodo do Lugar das Razes (RL) muito til neste sentido.
O mtodo do Lugar das Razes (Root Locus (RL)) para sistemas contnuos no tempo pode ser estendido
para os sistemas de tempo discreto sem muitas modificaes uma vez que a equao caracterstica do
sistema de controle discreto segue o mesmo formato que no sistema de controle contnuo no tempo.
Em muitos sistemas LTI (Lineares e Invariantes no Tempo), a equao caracterstica pode seguir um dos
seguintes formatos:
1 + G (z)H(z)

1 + G H(z)

combinando ambas as equaes anteriores, podemos definir a equao caracterstica como sendo:
1 + L(z) = 0

(2.5)

onde L(z) = G (z)H(z) ou L(z) = G H(z). L(z) popularmente conhecida como a funo transferncia do impulso
para o lao aberto. A equao 2.5 pode ser escrita como:
L(z) = 1
uma vez que L(z) expressa uma quantidade complexa ela pode ser dividida em 2 equaes, uma equao
relacionada com os ngulos e outra com a magnitude. Isto resulta em 2 critrios serem seguidos:
20

Critrio Angular:

L(z) = 180o (2k + 1),

Critrio da Magnitude:

k = 0, 1, 2, . . .

|L(z)| = 1

Os valores de z que satisfazem ambos os critrios correspondem s razes da equao caracterstica ou


aos polos de malha-fechada. Antes de construir o diagrama do Lugar das Razes, a equao 1 + L(z) = 0
deve ser reorganizada na seguinte forma:
1+K

(z + z1 )(z + z2 ) (z + zm )
=0
(z + p1 )(z + p2 ) (z + pn )

(2.6)

onde zi s e pi s correspondem respectivamente aos zeros e polos da funo transferncia em malha aberta
(FTMA(z)), m o nmero de zeros e n o nmero de plos.

2.6.1

Construindo o Diagrama do Lugar das Razes

As regras para construo do RL para sistemas digitais so as mesmas que as usadas para sistemas no
tempo contnuo:
1. O diagrama de RL simtrico com relao ao eixo real. O nmero de traados do RL corresponde ao
nmero de polos de malha aberta.
2. Os traados do RL partem dos polos de malha aberta com K = 0 e terminam nos zeros de malha aberta,
com K = . Na ausncia de zeros de malha aberta, o RL tende para quando K . O nmero de
traados que tendem para corresponde a diferena entre o nmero de polos e de zeros.
3. Uma regio do eixo real far parte do RL se o nmero de polos mais o nmero de zeros direita desta
parte for mpar.
4. Se existem n polos de malha aberta e m zeros de malha aberta, ento n m traados do RL vo tender
para ao longo de linhas retas assintticas desenhadas partir de um nico ponto s = que
chamado de centro do loci:

(Partes reais dos plos de malha aberta) (Partes reais dos zeros de malha aberta)
(2.7)
=
nm
O ngulo de partida das assintotas dado por:
=

180o (2q + 1)
,
nm

q = 0, 1, . . . , n m 1

(2.8)

5. As razes da equao abaixo definem os pontos de partida (breakaway) e chegada (break in) dos traados de RL:
dK
=0
(2.9)
dz
onde K expresso em funo de z da equao caracterstica do sistema. Esta uma condio necessria porm, no suficiente. Devemos verificar se as solues encontradas recaem sobre o RL sendo
traado.
6. A interseo (se existe) do RL com o crculo unitrio pode ser determinada partir do arranjo de Routh(Hurwitz).
7. O ngulo de partida para plos complexos de malha aberta dado por:
p = 180o +

(2.10)

onde corresponde contribuio final de todos os ngulos dos plos e zeros de malha aberta para
este polo:

=
i
j
(2.11)
i

j,p

onde i s correspondem s contribuies dos ngulos gerados pelos zeros e j s correspondem s contribuies dos ngulos gerados pelos polos.
8. O ngulo de chegada relacionado com o zero complexo dado por:
z = 180o
onde o mesmo valor determinado pela regra anterior.
21

(2.12)

9. O ganho no ponto zo sobre o RL determinando atravs de:


n
j=1 |z o + p j |
K = m
i=1 |z o + z i |

2.6.2

(2.13)

Exemplos de Traados de RL

Exemplo_1
Para o caso do exemplo anterior, reproduzido novamente na figura 2.7 (ver seo 2.4.3, pg. 17,

YR

Bo(s)

K
T

1
s(s + 1)

Figura 2.7: Sistema exemplo de 2a-ordem.

Com T = 1, 0 (segundos), temos:


B oG (z) =

K(b 0 + b 1 z)
0, 36788K(z + 0, 7183)
K(0, 3679z + 0, 2642)
=
= 2
(z 1)(z a)
(z 1)(z 0, 3679)
z 1, 3679z + 0, 3679

O lugar das razes se origina em z = 1 e z = 0, 3679 e termina em z = 0, 7183 e z = .


O nmero de assntotas equivale : np nz , ento (2 1) = 1, temos 1 assntota. O ngulo de partida da
assntota dado por:
180o

z}|{
(2N + 1)
ngulo da assndota = =
,
(np nz )

N = 0, 1, 2, . . .

onde: N = 0 corresponde a assntota com o menor ngulo com respeito ao eixo real. Embora N assuma um
nmero infinito de valores, o ngulo repete a si mesmo a medida que N aumenta. O nmero de diferentes
assntotas dado por: np nz .
Neste caso:
=

(2N + 1) 180
np nz

=
=

180o
= 1800 , p/N=0
1
3 180o
= 540o , p/N=1
1

Os pontos de partida (break-way) e chegada (break-in) podem ser determinados partir das razes de:
d K A0 (z)B(z) A(z)B 0 (z)
=
=0
dz
B 2 (z)
onde: o apstrofe indica diferenciao em relao z e A(z) e B(z) so extrados partir da equao caracterstica:
Se a equao caracterstica D (z) = 0 for escrita como:
D (z)

1 + F (z) = 0
K B(z)
= 1+
A(z)

ento:
K=

A(z)
B(z)

22

Para o caso do nosso sistema, os pontos de partida/chegada so dados por:




d
d u vd u ud v
B oG (z) = 0

=
dz
dv
v2
neste caso:


d
B oG (z)
dz

"
#
d 0, 36788K(z + 0, 7183)
dz
(z 1)(z 0, 3679)

(z 2 1, 3368z + 0, 368)(0, 368K) (0, 368Kz + 0, 264K)(2z 1, 368)


=0
(z 2 1.368z + 0.3679)2

trabalhando esta equao, temos:


0, 368Kz 2 0, 503424Kz + 0, 135424K 0, 736Kz 2 + 0, 503424Kz 0, 528Kz + 0, 361152K = 0
0, 368Kz 2 0, 503424Kz + 0, 135424K 0, 736Kz 2 0, 024576Kz + 0, 461152K = 0
0, 368Kz 2 0, 538Kz + 0, 496576K = 0
descobrindo as razes para a equao anterior obtemos:
= b 2 4ac

b
z=
2a

= 0, 278784 4(0, 368)(0, 496576) = 1, 0097439


0, 528 1, 0048601
z=
(2 0, 368)
z1 = 2, 0826904
z1 = +0, 6479077

e nestes pontos K vale:


p/z = z1 = 2, 0826904, B oG (z) = 1, ento:


0, 368K(z + 0, 717)
=1
2

(z 1, 368z + 0, 368) z=2,0826904
0, 368K(2, 08 + 0, 717)


(2, 08)2 1, 368(2, 08) + 0, 368) = 1


0, 501584K = 1
7, 53984
7, 53984
K=
0, 501584
K = 15, 03
p/z = z1 = 0, 6479077, B oG (z) = 1, ento:


0, 368K(z + 0, 717)
=1
(z 2 1, 368z + 0, 368)
z=0,6479077


0, 368K(0, 65 + 0, 717)


(0, 65)2 1, 368(0, 65) + 0, 368) = 1


0, 503056K = 1
0, 0987
0, 0987
K=
0, 503056
K = 0, 196
Usando o MATLAB, obtemos a figura 2.8:
>>
>>
>>
>>
>>
>>
>>
>>
>>

T=1.0;
%Entrando com dados do sistema
a=exp ( T ) ;
b1=exp ( T ) +T 1 ; ;
b0=1exp ( T ) T * exp ( T )
%Montando BoG(z):
num=[ b1 b0 ] ;
den=conv ( [ 1 1 ] , [ 1 a ] ) ;
BoG= t f ( num , den , T )

Transfer function :
0.3679 z + 0.2642

23

z^2 1.368 z + 0.3679


Sampling time : 1
>> zpk ( BoG )
Zero / po l e / gain :
0.36788 ( z +0.7183)

( z 1) ( z 0.3679)
Sampling time : 1
>> r l o c u s ( BoG )
>> a x i s equal
>>

Figura 2.8: Lugar das razes para o sistema usado como exmeplo

Verificando a resposta do sistema para entrada degrau usando o ganho mximo K = 2.3922, obtemos,
usando o MATLAB, a figura 2.9 que confirma a resposta oscilatria do sistema.
>> K=(1a ) /b0
K =
2.3922
>> FTMF=feedback ( K*BoG , 1 )
Transfer function :
0.88 z + 0.6321

z^2 0.4878 z + 1
Sampling time : 1
>> zpk ( FTMF )
Zero / po l e / gain :
0.88005 ( z +0.7183)

( z^2 0.4878 z + 1 )
Sampling time : 1
>> f i g u r e ;
>> step ( FTMF )

Ajustando o sistema anterior para outros valores de ganho


Se fosse desejada uma resposta com sobrepasso mximo de 20% poderamos ter ajustado o ganho no
correspondente valor para :
24

Figura 2.9: Resposta ao degrau unitrio usando ganho mximo.

Lembrando que:

ln %O S/100
q
2 + ln2 (%O S/100)

= 0, 4559

este valor de pode ser impresso no diagrama do Lugar das Razes deste sistema para servir como guia
para definio da posio desejada para os plos de malha-fechada do sistema e consequente valor K do
ganho necessrio no MATLAB:
>> zeta =( l o g (20/100) ) / ( s q r t ( p i ^2+( l o g (20/100) ^2) ) )
zeta =
0.4559
>> f i g u r e ; %abre nova janela grafica
>> r l o c u s ( BoG ) ;
>> hold on
>> z g r i d ( zeta , 0 )
>> a x i s equal
>> r l o c f i n d ( BoG )
S e l e c t a p o i n t i n the g r a p h i c s window
selected_point =
0.5787 + 0.4183 i
ans =
0.5547
>>
>>
>>
>>

%Encontramos o ganho como sendo:


k =0.5547;
%Fechamos a malha com este ganho e verificamos resposta do sistema
novo_mf=feedback ( k *BoG , 1 )

Transfer function :
0.2041 z + 0.1466

z^2 1.164 z + 0.5145


Sampling time : 1
>> zpk ( novo_mf )

25

Zero / po l e / gain :
0.20406 ( z +0.7183)

( z^2 1.164 z + 0.5145)


Sampling time : 1
>> %Verificando resposta para entrada degrau:
>> step ( novo_mf )

A figura 2.10 mostra o diagrama do Lugar das Razes com a linha guia para o = 0, 4559 selecionado e
a figura 2.11 mostra a correspondente resposta do sistema para um degrau unitrio aplicado sua entrada
com K = 0, 5547 que satisfaz o valor desejado para .
Root Locus
2
1.5
K=0,5547

Imaginary Axis

1
0.456

0.5
0
0.5
1
1.5
2
3

2.5

1.5

0.5
Real Axis

0.5

1.5

Figura 2.10: Determinando o valor do ganho para %O S () desejado atravs do RL.

Step Response
System: novo_mf
Peak amplitude: 1.19
Overshoot (%): 18.8
At time (sec): 5

1.4
1.2

Amplitude

1
System: novo_mf
Settling Time (sec): 11.7

0.8
0.6
0.4
0.2
0
0

10
15
Time (sec)

20

25

Figura 2.11: Resposta para o degrau unitrio do sistema com ganho ajustado com K = 0, 5547.

Exemplo_2
Seja o sistema mostrado na figura 2.12.

26

Figura 2.12: Sistema de controle discreto no tempo exemplo 2.

Para T = 0, 5 segundos teremos:


)
1 e T s
1
Z

s
s+1
(
)
1
(1 z 1 ) Z
s(s + 1)


1
1
(1 z 1 ) Z

s s+1


z 1
z
z

z
z 1 z e T
T
1e
z e T
(

o
Z G h0 (s)G p (s)

=
=
=
=
=

Vamos supor que ser usado um controlador integral PI, isto , G D (z) =
G (z)

G D (z) G h G p (z)

Kz 1 e T

z 1 z e T

A equao caracterstica fica ento:


1 + G (z)
1+

Kz(1 e T )
(z 1)(z e T )

que para T = 0, 5 resulta em:


0, 3935Kz
(z 1)(z 0, 6065)

L(z) =

L(z) possui polos em z = 1 e z = 0, 6065 e um zero em z = 0.


Os pontos de partida e chegada podem ser calculados a partir de
K=

dK
= 0:
dz

(z 1)(z 0, 6065)
0, 3935z

dK
z 2 0, 6065
=
=0
dz
0, 3935z 2
cujas razes resultam em:
z2

0, 6065

z1

0, 7788

z2

= 0, 7788

O ganho crtico Ku pode ser encontrado usando o critrio da magnitude:




0, 3935z

1
(z 1)(z 0, 6065) = K
o ganho crtico Ku corresponde ao ponto em que z = 1, ento:


0, 3935z = 1
(2)(1, 6065)
Ku
Ku
27

8, 165

Kz
, assim teremos:
z 1

Assim, a faixa de estabilidade para este sistema est na faixa de K para: 0 < K < 8, 165.
A figura 2.13 representa o diagrama de RL. Dois traos partem dos dois polos em K = 0. Se vamos
aumentando o valor de k, um dos traos segue at o zero e o outro tende a infinito (negativo).

Root Locus
1
0.8

Imaginary Axis

0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1
2.5

1.5

0.5
Real Axis

0.5

1.5

Figura 2.13: RL do sistema do exemplo 2 para T = 0, 5.

A figura 2.13 pode ser obtida usando o MATLAB como mostra a listagem seguir:
>>
>>
>>
>>

clear a l l
num=1;
den =[1 1 ] ;
G= t f ( num , den )

Transfer function :
1

s + 1
>> T = 0 . 5 ;
>> BoG=c2d ( G , T )
Transfer function :
0.3935

z 0.6065
Sampling time : 0.5
>> num_c=[1 0 ] ;
>> den_c =[1 1 ] ;
>> c= t f ( num_c , den_c , T )
Transfer function :
z

z 1
Sampling time : 0.5
>> FTMA= s e r i e s ( c , BoG )
Transfer function :
0.3935 z

z^2 1.607 z + 0.6065


Sampling time : 0.5
>> zpk ( FTMA )
Zero / po l e / gain :

28

0.39347 z

( z 1) ( z 0.6065)
Sampling time : 0.5
>> r l o c u s ( FTMA )
>>

Se para o sistema anterior fosse usado T = 1 segundo, teramos:


G (z) =

0, 6321Kz
(z 1)(z 0, 3679)

com os pontos de partida e chegada dados por:


z 2 = 0, 3679

z1 = 0, 6065 e z2 = 0, 6065

e o ganho crtico, seria: Ku = 4, 328.


Se para o sistema anterior fosse usado agora T = 2 segundo, teramos:
G (z) =

0, 8647Kz
(z 1)(z 0, 1353)

e o ganho crtico, seria agora: Ku = 2, 626.

Note como a medida que aumenta T, diminui a faixa para o ganho K.

29

30

Captulo 3

Controladores Digitais
De modo geral, os controladores digitais a serem estudados nesta seo obedecem ao formato genrico:
(z a)
(z b)

C(z) = K

e todos sero aplicados sobre o seguinte tipo de planta (ver figura 3.1):

G (s) =

1
s(s + 1)

com T = 1 (segundo).

G(s)
+

YR

e(kT)

e(t)

C(z)

u(kT)

1
s(s + 1)

Bo(s)

y(t)

BoG(z)
ou

Planta
G(s)

ZOH
r(kT)

e(kT)

C(z)

u(kT)

1
s(s + 1)

Bo(s)
T

y(t)

BoG(z)

y(kT)

Sistema Digital

Figura 3.1: Sistema usando como exemplo.

Este sistema acompanhado de um sustentador de ordem zero, B0 G (z), se transforma em:


B0 G (s) = (1 e sT )
31

1 1
1
+
2
s s+1
s

transformando para plano Z temos1 :


B oG (z)



1
1 1
(1 z 1 ) Z 2 +
s s+1
" s
#
Tz
z
z
1
= (1 z )

+
(z 1)2 z 1 z e T
" T
#
(ze z + Tz) + (1 e T TeT )
=
(z 1)(z e T )

para T = 1, temos ento:


B0 G (z) =

a(z + b)
0, 3678z + 0, 2644
0, 3678 (z + 0, 7183)
=
=
(z 1)(z 0, 3678) z 2 1, 3678z + 0, 3678 (z 1)(z a)

onde a=plo da planta resultado da digitalizao da mesma (a = e T ); e b=zero da planta.


Esta expresso tambm pode ser obtida no MATLAB fazendo-se:
>> num=1;
>> den =[1 1 0 ] ;
>> T=1;
>> [ numd , dend ]=c2dm ( num , den , T )
numd =
0
0.3679
0.2642
dend =
1.0000
1.3679
0.3679
>> p r i n t s y s ( numd , dend , z )
num/ den =
0.36788 z + 0.26424

z^2 1.3679 z + 0.36788


>> r o o t s ( numd )
ans =
0.7183
>> r o o t s ( dend )
ans =
1.0000
0.3679
>>

Ou tambm podemos usar outros comandos no MATLAB para obter os mesmos resultados:
>> num=1;
>> den =[1 1 0 ] ;
>> T=1;
>> G= t f ( num , den )
Transfer function :
1

s^2 + s
>> zpk ( G )
Zero / po l e / gain :
1

s ( s +1)
>> BoG=c2d ( G , T )
Transfer function :
0.3679 z + 0.2642

z^2 1.368 z + 0.3679


Sampling time : 1
>> zpk ( BoG )
Zero / po l e / gain :
0.36788 ( z +0.7183)

( z 1) ( z 0.3679)
Sampling time : 1
>>

1 A deduo apresentada de forma mais completa aparece na seo 2.4.3, pg. 17

32

A resposta deste sistema para um impulso unitrio, R (z)=1 seria: Y(z) = G (z) 1, cuja resposta inicial no
tempo poderia ser obtida pelo mtodo da diviso longa em Z, ou seja:
0, 3678z +0, 2644
z 2 1, 3678z + 0, 3678
0, 3678z +0, 5031 +0, 1353z 1
0, 3678z 1 + 0, 7675z 2 + 0, 9145z 3 + . . .
1
+0, 7675 0, 1353z
0, 7675 +1, 0497z 1 +0, 2823z 2
0, 9145z 1 0, 2823z 2
ou seja, y(kT) = 0 z 0 + 0, 3678z 1 + 0, 7675z 2 + 0, 9145z 3 + . . ., ou ainda, y(0)=0; y(1)=0,3678; y(2)=0,7675;
y(3)=0,9145; tendendo para 1. Note que pelo teorema do valor final (ver ??, pg. ??):
f () = lim f (k) = lim (1 z 1 )F (z)
k

z1

a resposta da planta em regime permanente para um impulso unitrio aplicado sua entrada resulta em:
y() = lim y(kT) = lim (1 z 1 ) Y(z)
k

z1

que neste caso nos d:


y() = lim (1 z 1 ) Y(z) = lim

z1

#
 "
0, 36788z + 0, 26424
z 1

z
(z 1)(z 0, 36788)

0, 36788z + 0, 26424 0, 6321


=
=1
z(z 0, 36788)
0, 6321
z1

y() = lim

3.1

Simples Controlador Proporcional, K

Fechando uma malha de realimentao unitria, este sistema resulta em:


FTMF(z) =

FTMA(z)
F (z)
Y(z)
=
=
R(z) 1 + FTMA(z) 1 + F (z)

onde F T MA(z) = F (z) tem o seguinte formato:


F (z) =

K(az + b)
z 2 (1 + a)z + a

com a = 0,3678 (a = e T ) e b = 0,2644.


Os plos em malha fechada sero as razes da equao: [1 + F (z)] = 0. Esta tambm a equao caracterstica deste sistema: EC (z):
FTMF(z) =

0, 36788(z + 0, 7183)
0, 36788(z + 0, 7183)
=
(z 0, 5 j0, 6182)(z 0, 5 + j0, 6182)
z 2 z + 0, 6321

Portanto, se obtm um equao caracterstica no formato:


EC(z) = 1 + F (z) = z 2 (1 + a)z + a + Kaz + Kb = 0
Quando K = 1, obtm-se:
EC(z) = z 2 z + 0, 6321
cujos plos estaro em: z = 0,5 j0,6182 ou z = 0, 8907 ] 45, 55o , portanto, ainda dentro do crculo unitrio
este sistema responde ento de forma subamortecida para uma entrada degrau.
Resolvendo no MATLAB temos:
>> f t m f=feedback ( BoG , 1 ) %fechando malha com H(s)=1 e realimentacao unitaria
Transfer function :
0.3679 z + 0.2642

z^2 z + 0.6321
Sampling time : 1
>> zpk ( f t m f )
Zero / po l e / gain :

33

0.36788 ( z +0.7183)

( z^2 z + 0.6321)
Sampling time : 1
>> [ num_mf , den_mf ]= t f d a t a ( ftmf , v ) %Separando numerador e denominador da TF
num_mf =
0
0.3679
0.2642
den_mf =
1.0000
1.0000
0.6321
>> polos_mf=r o o t s ( den_mf ) %Descobrindo onde foram parar os polos de MF:
polos_mf =
0.5000 + 0.6182 i
0.5000 0.6182 i
>> [ theta , rho ]= c a r t 2 p o l ( r e a l ( polos_mf ( 1 ) ) , imag ( polos_mf ( 1 ) ) )
>> %Verificando se estao fora do circulo unitario em Z
theta =
0.8907
rho =
0.7951
>> deg =( rho *180) / p i %transformando de (rad) > (deg)
deg =
45.5536
>>

Note que como este um sistema do tipo 1 (planta com 1 integrador), ele responde com erro nulo para a
entrada degrau, depois que realimentamos este sistema com um simples controlador proporcional:
Lembrando da definio do erro em regime permanente (eq. (1.2) seo 1, pg. 5), temos:
lim e(kT) = lim (z 1)

z1

1
Y (z)
1 + F (z) r

O e() para entrada degrau unitrio fica:


e()|u(t) = lim (z 1)
z1

1
z
1
1

=
=
1 + F (z) (z 1) 1 + lim F (z) 1 + Kp
z1

onde: Kp = ganho de posio; e F (z) = FTMA (z).


Neste caso em particular, B oG (z) ou F T MA(z) um sitema do tipo 1 (com 1 integrador plo em
z = 1):
0, 36788(z + 0, 7183)
B0 G (z) = F T MA(z) =
(z 1)(z 0, 3679)
ento:
lim e(kT) =

1
N(z)
1 + limz1
(z 1) D 0 (z)

1
1 + Kp

onde, Kp e consequentemente, e() = 0.


Simulando no MATLAB, se obtm a resposta mostrada na figura 3.2:
>> step ( f t m f )

3.1.1

Determinando Km ax

Note porm que este ganho (K = 1), gera um overshoot muito elevado para a resposta esperada para o
sistema.
Podemos calcular qual o valor de Km ax
que podemos incorporar neste sistema antes de que ele fique
instvel, usando o mtodo de Jury.
Analisando: E C(z) = an z n + an1 z n1 + . . . + a1 z + a0 = 0, temos
Neste caso: E C(z) = z 2 (1 + a)z + a + Kaz + Kb = 0, onde a = 0,3679 e b = 0,2642, ento:
E C(z) = z 2 + (Ka 1 a)z + (a + Kb)
E C(z) = z 2 + (0, 3678K 1, 3679)z + (0, 3678 + 0, 2644K) = 0
Observando as pr-condies de estabilidade:
34

Step Response
From: U(1)
1.4

1.2

0.8
To: Y(1)

Amplitude

0.6

0.4

0.2

0
0

10

15

20

25

Time (sec.)

Figura 3.2: Resposta ao degrau unitrio de B oG (z) em malha-fechada quando K = 1.

a) |a0 | < a2 , que neste caso, se transforma em:


|a + Kb| < 1, que resulta em:
1a
K<
, ou seja, K < 2, 3922, e:
b
1a
K>
, ou seja, K > 2, 3922 (condio desprezada).
b
b) E C(1) > 0, para sistemas de ordem par, ento:
E C(1) = 1 + Ka 1 a + a + Kb > 0,
daqui conclumos que: K > 0;
c) (1)n E C(1) > 0, ento: E C(1) > 0, verificando:
E C(1) = 1 Ka + 1 + a + a + Kb > 0,
K(b a) > 2 2a,
2 + 2a
K<
, que neste caso, nos fornece:
ba
K < 12.1986 (condio refutada: ganho negativo).
Analisando as condies, chegamos concluso de que o ganho neste caso (note que T = 1), deve ficar
entre: 0 < K < 2, 3992.
Usando-se o MATLAB para comprovar estes resultados, temos:
>> r l o c u s ( numd , dend )
>> x = [ 1 : 0 . 1 : 1 ] ; y= s q r t ( ones ( 1 , l e n g t h ( x ) ) x . ^ 2 ) ;
>> hold on
>> p l o t ( x , y , : , x , y , : )
>>a x i s ( equal )

que gera o grfico mostrado na figura 3.3.


Podemos confirmar o valor mximo que poderia ser adotado para K, fazendo no MATLAB:
>> r l o c f i n d ( numd , dend )
S e l e c t a p o i n t i n the g r a p h i c s window
selected point =
0.2615 + 0.9455 i
ans =
2.2789}

Conferindo no grfico gerado na figura 3.4.


Se para o K = 1 pode ser percebido um overshoot de 40%, diminuindo-se este ganho, este valor pode ser
baixado se levarmos em considerao ainda que este sistema em malha fechada responde como um sistema
35

1.5
1

Imag Axis

0.5
0
-0.5
-1
-1.5

-3

-2.5

-2

-1.5

-1

-0.5
Real Axis

0.5

1.5

0.3678(z+0.7183)

Figura 3.3: RL para B oG (z) = (z1)(z0.3678) .

K=3.1892

1.5

K=2.2789
1
K=0.9186

Imag Axis

0.5
0
-0.5

K=0.1964

-1
-1.5

-3

-2.5

-2

-1.5

-1

-0.5
Real Axis

0.5

1.5

Figura 3.4: Sintonizando o controlador proporcional no RL.

de segunda ordem, ento basta definir valores convenientes para o fator de amortecimento (principalmente),
, e para a freqncia natural, n . Um valor melhor tolerado, seria um overshoot de 5% que se obtm com
 0,7.
Podemos graficar no MATLAB uma linha guia para este valor a fim de descobrir que valor de ganho K
deveria ser adotado:
>> z g r i d ( 0 . 7 , 0 . 5 , new )
>> r l o c u s ( numd , dend )
>> a x i s ( equal )
>> hold on
>> r l o c f i n d ( numd , dend )
S e l e c t a p o i n t i n the g r a p h i c s window
selected point =
0.6077 + 0.2537 i
ans =
0.3284

36

>>

O grfico gerado pelo MATLAB mostrado na figura 3.5.

1.5
wn=0.5

Imag Axis

0.5
0
-0.5

=0.7

-1
K=0.3284
-1.5

-3

-2.5

-2

-1.5

-1

-0.5
Real Axis

0.5

1.5

Figura 3.5: Ajustando ganho do controlador proporcional para limitar %OS.

Comprovando a sada no domnio tempo, podemos fazer no MATLAB:


>> K = 0 . 3 2 ;
>> [ num_mf , den_mf ]= feedback ( K*numd , dend , 1 , 1 , 1 ) ;
>> p r i n t s y s ( num_mf , den_mf , z )
num/ den =
0.11772 z + 0.084557

z^2 1.2502 z + 0.45244


>>dstep ( num_mf , den_mf ) }

o que gera o grfico mostrado na figura 3.6.

Step Response
From: U(1)
1.4

1.2

0.8
To: Y(1)

Amplitude

0.6

0.4

0.2

10

15

20

25

Time (sec.)

Figura 3.6: Resposta ao degrau depois de nova sintonia do controlador proporcional note o menor overshoot.

37

O valor em regime permanente para y(kT) quando R(z) = entrada degrau unitrio, resulta em:
y() = lim (z 1) F T MF (z)
z1

z
= lim F T MF (z)
z 1 z1

usando o MATLAB para calcular y()Degrau :


>> p o l y v a l ( num_mf , 1 ) / p o l y v a l ( den_mf , 1 )
ans =
1.0000}
>>

Se fosse desejado simular um outro tipo de entrada ao sistema, poderamos faz-lo facilmente no MATLAB. Supondo o caso de se querer simular uma entrada parablica:
>>
>>
>>
>>

f o r i =0:10 , u ( i +1)= i ^2; end


plot (u , b : )
hold on
d l s i m ( num_mf , den_mf , u )

Que gera o grfico mostrado na figura 3.7.

Linear Simulation Results


100
90
80

60
To: Y(1)

Amplitude

70

50

u(k)=k 2

40
30

y(k)

20
10
0
0

10

Time (sec.)

Figura 3.7: Resposta do sistema a uma entrada parabolica.

Simulando uma entrada rampa para o caso anterior: R(z) =

Tz
, temos:
(z 1)2

>> num_r=[1 0 ] ;
>> den_r=conv ( [ 1 1 ] , [ 1 1])
>> [ num_mf2 , den_mf2 ]= s e r i e s ( num_mf , den_mf , num_r , den_r ) ;
>> p r i n t s y s ( num_mf2 , den_mf2 , z ) ;
num/ den =
0.11772 z^2 + 0.084557 z

z^4 3.2502 z^3 + 3.9528 z^2 2.155 z + 0.45244


>>

Determinando o erro em regime permanente temos:


y() = cte
que no MATLAB pode ser calculado fazendo-se:
<< Falta revisar esta parte (7 nov 2013) >>
38

12

ou seja, observamos que este controlador (proporcional) no suficiente para garantir erro nulo para
entrada rampa, falta um integrador.
Simulando
(
)a entrada rampa no sistema para comprovar o erro em regime permanente; neste caso: r(kT) =
T
z
Z 1
= k T:
(z 1)2
>>
>>
>>
>>
>>

f o r i = 0 : 2 5 ; k ( i +1)= i ; r ( k +1)=k * T ; end ;


plot (k , r , b : )
hold on
d l s i m ( num_mf , den_mf , r )

se gera o grfico mostrado na figura 3.8.

Linear Simulation Results


25

15
To: Y(1)

Amplitude

20

10

10

15

20

25

Time (sec.)

Figura 3.8: Resposta do sistema uma entrada rampa.

3.2

Controlador (polinomial) cancelando plo(s) dominante(s)

za
; podemos fazer que a =
Continuando com o projeto de um controlador digital no formato C(z) = K
zb
plo mais dominante da planta, ou seja:

C(z) =

K(z 0, 36788)
(z + 0, 24)

lembrando que:
B0 G (z) =

0, 36788 (z + 0, 7183)
(z 1)(z 0, 36788)

39

Plos Dominantes no Plano-Z


Assim como ocorre no plano-s, algumas razes no plano-z geram efeito mais preponderante que outros.
importante no projeto de um controlador separar estas razes consideradas dominantes.
No plano-se, as razes localizadas prximas do eixo j no semi-plano esquerdo eram consideradas
dominantes porque sua correspondente resposta temporal mostra um decaimento mais lento. As razes
que esto localizadas mais longe do eixo j correspondem responstas que decaim mais rpido.
No plano-z, as razes dominantes so aquelas que esto dentro e prximas do crculo unitrio enquanto
a regio (no plano-z) menos significativa que est prxima da origem do plano-z.
O eixo real negativo geralmente evitado uma vez que sua resposta temporal naturalmente oscilatria
(sinal alternando entre instantes de amostragem).
A figura AA mostra as regies para razes dominantes e menos, tanto no plano-s quanto no plano-z.

Obs.: Extrado de: Kar and Majhi[Module 4, Lecture 2].

Figura AA: Mapeamento de plos e zeros de um sistema de segunda ordem.

No plano-z, as razes prximas da origem so menos significativas do ponto de vista de overshoot e fator
amortecimento.. Entretanto, estas razes no podem ser completamente desconsideradas uma vez que
um nmero excessivo de plos em relao zeros gera um efeito de delay na regio inicial da resposta
no tempo. Isto , adicionar plos em z = 0 no vai afetar nem o overshoot e nem o fator amortecimento,
mas o tempo de resposta vai apresentar um delay adicional de um perodo de amostragem.
A melhor maneira de simplificar (tonar menos complexo, com menor ordem) um sistema no plano-z
trocar os plos prximos da origem por plos em z = 0 o que vai simplificar a anlise uma vez que plos
em z = 0 correspondem puros atrasos no tempo.

A idia via controlador se cancelar o polo da planta em z = 0, 36788. O que torna a funo transferncia em malha aberta deste sistema em:
F (z) =

K 0, 36788 (z + 0, 7183)
(z 1)(z + 0, 24)

que d como lugar das razes um grfico como o mostrado pela figura 3.9. Seguem comandos no MATLAB
usados para gerar a figura 3.9.
>> fnum=numd ;
>> fden=conv ( [ 1 \ t e x t b f { { } 1 } ] , [ 1 \ t e x t b f { 0 . 2 4 } ] ) ;
>> p r i n t s y s ( fnum , fden , z )
num/ den =
0.36788 z + 0.26424

z^2 0.76 z 0.24


>> r l o c u s ( fnum , fden )
>> hold on

40

>> z g r i d ( 0 . 7 , 0 . 5 ) ;
>> a x i s ( equal ) ;
>> r l o c f i n d ( fnum , fden )
S e l e c t a p o i n t i n the g r a p h i c s window
selectedpoint =
0.4795 + 0.8538 i
ans =
4.6445
>>

2
1.5

K=4,6445

Imag Axis

0.5
0
-0.5
-1
-1.5
-2
-2

-1.5

-1

-0.5

0
0.5
Real Axis

1.5

Figura 3.9: RL do Controlador cancelando plo dominante de B oG (z).

Mas se queremos que o sistema responda com %O S de no mximo 5%, fazemos = 0.7 e ento obtemos
a figura 3.10.
Assim, fazendo K = 1.2, obtemos a resposta no tempo para entrada degrau:
>> K = 1 . 2 ;
>> [ num_mf , den_mf ]= feedback ( K* fnum , fden , 1 , 1 , 1 ) ;
>> p r i n t s y s ( num_mf , den_mf , z )
num/ den =
0.44146 z + 0.31709

z^2 0.31854 z + 0.077089


>> dstep ( num_mf , den_mf )

que resulta no grfico mostrado na figura 3.11.

41

1.5
K=1.2828
1

Imag Axis

0.5
0
-0.5
-1
=0.7
-1.5

-3

-2.5

-2

-1.5

-1

-0.5
Real Axis

0.5

1.5

Figura 3.10: Sintonizando controlador por cancelamento de plo dominante.

Step Response
From: U(1)
1.4

1.2

0.8
To: Y(1)

Amplitude

0.6

0.4

0.2

10

Time (sec.)

Figura 3.11: Resposta entrada degrau para controlador cancelando plo dominante.

42

Linear Simulation Results


25

15
To: Y(1)

Amplitude

20

10

10

15

20

25

Time (sec.)

Figura 3.12: Resposta entrada rampa para controlador por cancelamento de plo dominante.

O valor em regime permanente de y(kT) pode ser calculado como:


>> p o l y v a l ( num_mf , 1 ) / p o l y v a l ( den_mf , 1 ) }
ans =
1.0000
>>

ou seja, erro nulo para entrada degrau. Mas este controlador ainda no resolve o problema de anular o erro
para entrada rampa, que resulta no grfico da figura 3.12.

3.3

Cancelamento imperfeito de plos-zeros

Detalhe: na prtica no se consegue realizar um cancelamento perfeito de plos-zeros, seja porque nem
sempre nosso sistema digital de controle opera com nmeros em ponto flutuante, seja porque o clculo no
executado com preciso suficiente ou seja porque o conversor final de digital para analgico trabalha com
poucosbits de resoluo (baixa quantizao do sinal).
No caso real, o que poderia acontecer? Levando em conta o exemplo anterior, vamos supor que o plo
que gostaramos de cancelar seria em z = 0, 36788 que note, proporcional : a = e T (ou seja, o plo
ainda se desloca em funo do perodo de amostragem adotado). Vamos super que consigamos sintetizar no
mximoum valor de a = 0, 36 o que acontece? Ento nosso controlador fica:
C(z) =

K (z a) 1, 20 (z 0, 36)
=
(z + 0, 24)
(z + 0, 24)

A funo transferncia em malha aberta fica:


FTMA(z) = F (z) = C(z) B0 G (Z) =

1, 20 0, 3678 (z 0, 36) (z + 0, 7183)


(z 1) (z 0, 3678) (z + 0, 24)

No MATLAB:
>> K = 1 . 2 ;
>> cnum=[1 0 . 3 6 ] ;
>> cden =[1 0 . 2 4 ] ;
>> p r i n t s y s ( cnum , cden , z )
num/ den =
z 0.36

z + 0.24
>> r o o t s ( cnum )
ans =
0.3600

43

>> r o o t s ( dend )
ans =
1.0000
0.3679
>> [ fnum , fden ]= s e r i e s ( cnum , cden , numd , dend ) ;
>> p r i n t s y s ( fnum , fden , z ) ;
num/ den =
0.36788 z^2 + 0.1318 z 0.095127

z^3 1.1279 z^2 + 0.039588 z + 0.088291


>> r o o t s ( fnum )
ans =
0.7183
0.3600
>> r o o t s ( fden )
ans =
1.0000
0.3679
0.2400
>>

O diagrama de lugar das razes para este sistema fica:


>>
>>
>>
>>
>>
>>
>>

r l o c u s ( fnum , fden )
zgrid (0 ,0) ;
a x i s ( equal )
hold on
zgrid (0.7 ,0.5) ;
r l o c u s ( fnum , fden , K )
a x i s ([ 2 1.5 1.1 1 . 1 ] )

o que gera o grfico monstrado da figura 3.13.

1
K=1.2

Imag Axis

0.5

-0.5
=0.7

-1
-2

-1.5

-1

-0.5
0
Real Axis

0.5

1.5

Figura 3.13: RL para o caso de cancelamento imperfeito de plos-zeros.

Um zoom sobre a regio onde o cancelamento no foi perfeito mostrado na figura 3.14.
A resposta para a entrada degrau fica ento:
>> a x i s ([ 2 1.5 1.1 1 . 1 ] )
>> [num\_mf , den \_mf ]= feedback ( K* fnum , fden , 1 , 1 , 1 ) ;
>> p r i n t s y s (num\_mf , den \_mf , z )
num/ den =
0.44146 z^2 + 0.15817 z 0.11415

z^3 0.68642 z^2 + 0.19775 z 0.025861


>> dstep ( num_mf , den_mf )

e se obtm o grfico mostrado na figura 3.15.

44

0.7
0.6
0.5

K=1.2

Imag Axis

0.4
0.3
=0.7

0.2
0.1
0
-0.1
-0.2
0

0.2

0.4

0.6
Real Axis

0.8

1.2

Figura 3.14: Ampliao sobre regio de interesse da figura 3.13.

Step Response
From: U(1)

To: Y(1)

Amplitude

0.8

0.6

0.4

0.2

10

Time (sec.)

Figura 3.15: Resposta entrada degrau no caso do cancelamento imperfeito de plos-zeros.

Nota-se que a resposta sofreu um ligeiro atraso.


Mas este no todo o problema envolvido com o mundo real. Devemos ficar atentos ao esforo de
controle que foi realizado neste caso, ou seja, interessante analizar a variao do sinal de controle,
u(kT). Valores elevados podem causar a saturao de um estgio de potncia que esteja ligado na sada do
conversor D/A, ou saturao do prprio D/A.
A figura 3.16 mostra uma simulao do sistema anterior no MATLAB/Simulink.
Ateno para alguns ajustes necessrio no Simulink, por exemplo, nas propriedades para os blocos "To
Workspace", notar que para facilidade de uso a caixa "Save Format" deve ficar ajustada para "matrix", como
mostra a figura 3.17.
Os parmetros da simulao devem ser ajustadas para o tempo mximo de 10 segundos, conforme
mostra a figura 3.18.
Depois de usar os blocos To Workspace, pode-se visualizar melhor os resultados graficamente, no MA45

e
To Workspace2

1.2
Step

Gain

12:34

Digital Clock

To Workspace4

u
To Workspace1
z-0.36

z+0.24

s2 +s

Controlador

Zero-Order
Hold

To Workspace
y

Planta

r
To Workspace3

Figura 3.16: Simulao do controlador por cancelamento de plos dominantes.

Figura 3.17: Parmetros dos blocos To Workspace que devem ser ajustados.

Figura 3.18: Parmetros de simulao.

TLAB, usando os vetores criados e os comandos plot() e stairs():


>>
>>
>>
>>
>>

subplot (211) }
stairs ( t , r , b : ) ;
hold on ;
s t a i r s ( t , y , k ) ;
a x i s ( [ 0 10 0 1 . 1 ] )

46

1
0.8
r(kT)
y(kT)

0.6
0.4
0.2
0

10

10

u(max)=1.2
1

e(kT)
u(kT)

0.5

Figura 3.19: Resultados da simulao realizada no Simulink.

>> legend ( r ( kT ) , y ( kT ) )
>> s u b p l o t ( 2 1 2 ) ;
>> s t a i r s ( t , e , b : ) ;
>> hold on
>> s t a i r s ( t , u , k ) ;
>> legend ( e ( kT ) , u ( kT ) )
>> max ( u )
ans =
1.2000
>>

Desta forma se obtm os grficos mostrados na figura 3.19.


Note que se a sada do controlador para este sistema estivesse normalizada, tentaramos impor ao atuador na planta um sobrevalor de 20% (u(.)=1.2). Na prtica, nem sempre isto aceitvel e nosso sinal de
controle deve variar dentro de parmetros fixos (conhecidos para o sistema em questo).

47

3.4

Projeto de Controlador Digital usando Root Locus

Quando se projetava controladores no domnio tempo usando o diagrama de Lugar das Razes (Root
Locus) o projeto se baseava em aproximar o comportamento do sistema em malha fechada para um sistema
de malha fechada com um par de polos complexos conjugados que domina o seu comportamento (plos
dominantes complexos sistema de 2a-ordem, sobre-amortecido, 0 < < 1).
Tipos de Controladores: Diferentes tipos de controladores j foram estudados (controle automtico contnuo no tempo), como os controladores PI, PD e PID. Sabemos que o controlador PI era adotado quando se
deseja melhorar a resposta em regime permanente (anular o erro em regime permanente). O controlador PD
era usado para melhorar o desempenho (ou estabilidade relativa) da resposta transitria. Do mesmo modo,
um controlador por Avano de Fase servia para melhorar a resposta dinmica enquanto um controlador por
Atraso de Fase melhorava a resposta em regime permanente.
Cancelamento Polo-Zero: Um mtodo comum de projeto de controladores no plano-s ou plano-z consiste
em cancelar os polos indesejados (lentos) ou zeros da funo transferncia da planta atravs dos zeros e
polos do controlador. Com os controladores digitais, podemos agora, acrescentar polos e zeros em algumas
posies vantajosas. Entretanto, devemos levar em considerao que a abordagem de cancelamento de
polos e zeros nem sempre resulta numa soluo satisfatria. Por exemplo, se os polos indesejveis esto
prximos do eixo j, se ocorre cancelamentos inexatos o que praticamente inevitvel na prtica (por erros
de arredondamento, preciso numrica de clculo, truncagem de resultados), o resultado pode conduzir a
um sistema de malha fechada marginalmente estvel ou mesmo num sistema instvel em malha fechada.
Por esta razo, no se deve tentar cancelar um polo instvel.

3.4.1

Compensador por Avano de Fase

z+a
. Ele se tornar um compensador de avano de
Considere um compensador no formato: C(z) = K
z+b
fase se seu zero se localizar direita do seu polo.
Procedimento:
1. Calcule a posio desejada para os polos de malha fechada baseado nos critrios fornecidos para o
projeto do controlador.
2. Mapeie os polos do plano-s para o plano-z (usando a definio da Transformada Z).
3. Verifique se a frequncia de amostragem de 8 10 vezes maior que a frequncia de oscilao amortecida desejada.
4. Calcule a contribuio dos ngulos relativa todos os polos e zeros de malha aberta com relao
desejada posio para os polos de malha fechada.
5. Calcule a contribuio exigida pela funo transferncia do controlador para que o ngulo desejado
(contribuio necessria) seja satisfeita.
6. Posicione o zero do controlador numa posio adequada (cancelando algum polo dominante da planta)
e calcule a contribuio angular que deve vir do polo do controlador.
7. Determine a localizao do polo do controlador de forma a proporcionar o ngulo necessrio.
8. (Finalmente) descubra o valor do ganho K usando o critrio da Magnitude.
Segue um exemplo para ilustrar este procedimento.
Exemplo
Considere um sistema de controle discreto como o mostrado na figura 3.20.
Projete um controlador cujos polos dominantes resultem num fator de amortecimento, = 0, 5 e um tempo
de ajuste (settling time), ts = 2 segundos. Use como valor para o perodo de amostragem, T = 0, 2 segundos.
Soluo:
p
O par de polos dominantes complexos no domnio contnuo devem estar em: n jn 1 2 , onde n
48

Figura 3.20: Sistema de controle discreto projeto do controlador por avano de fase.

corresponde frequncia natural de oscilao no amortecida.


Sabemos que: ts =

4
= 2 segundos, ento, n = 4 (rad/s).
n

49

3.5

Projeto de Controlador PI usando Root Locus

Deseja-se projetar um controlador digital para garantir erro nulo ao regime permanente para entrada
degrau acompanhado de uma resposta dinmica satisfatria. A constante de erro de velocidade deve ser
pelo menos 5. O perodo de amostragem adotado de 0,1 segundos. A planta dada por:
G (s) =

10
(s + 1)(s + 2)

Usando o MATLAB podemos determinar boG (z):


>> num=10;
>> den=conv ( [ 1 1 ] , [ 1 2 ] ) ;
>> G= t f ( num , den ) ;
>> zpk ( G )
ans =
10

( s +2) ( s +1)
Continuous time zero / p ol e / gain model .
>> T = 0 . 1 ;
>> BoG=c2d ( G , T )
BoG =
0.04528 z + 0.04097

z^2 1.724 z + 0.7408


Sample time : 0.1 seconds
D i s c r e t e time t r a n s f e r f u n c t i o n .
>> zpk ( BoG )
ans =
0.04528 ( z +0.9048)

( z 0.9048) ( z 0.8187)
Sample time : 0.1 seconds
D i s c r e t e time zero / p ol e / gain model .
>>

Assim temos que:


B oG (z) =

0, 04528(z + 0, 9048)
(z 0, 9048)(z 0, 8187)

Uma forma de garantir erro nulo em regime permanente para entrada degrau usar um controlador do
tipo Proporcional-Integral, ou doravante PI.
A funo transferncia de um controlador PI no domnio-Z usando integrao retangular resulta em:
C(z) = kp +

Kp z (Kp Ki T)
Ki T
=
z 1
z 1

O parmetro Ki pode ser determinado com base na constante de erro relacionada com o ganho de velocidade
deste sistema, ou seja, sistemas que reagem com erro no nulo mas finito para entradas de primeira ordem
(rampa). Lembrando que:
Entrada Rampa =

Tz
(z 1)2

o erro em regime permanente dado por:


"
#
1
T
1
1
ess = lim (1 z )
R(z) = lim
=
1 + F T MA(z)
Kv
z1
z1 (z 1)F T MA(z)
onde Kv =

1
limz1 [(z 1)F T MA(z)] conhecido como a constante de erro de velocidade.
T

Neste caso Kv 5:
h
i
Kp z (Kp Ki T) (0, 04528z + 0, 04097)
1
Kv =
lim (z 1)
T z1
(z 1) (z 2 1, 724z + 0, 7408)
h
i
1 Kp Kp + Ki T (0, 04528 + 0, 04097)
Kv =
T
(z 1, 724 + 0, 7408)
50

Kv =

1 (Ki T) 0, 0863
T
0, 0173
Kv = 5, 0 Ki

onde os fatores 0, 0863 e 0, 0173 podem ser determinados com o auxlio do Matlab:
>> [ numd , dend ]= t f d a t a ( BoG , v )
numd =
0
0.0453
0.0410
dend =
1.0000
1.7236
0.7408
>> lim1= p o l y v a l ( numd , 1 )
lim1 =
0.0863
>> lim2= p o l y v a l ( dend , 1 )
lim2 =
0.0173
>> lim1 / lim2
ans =
5.0000

Desta forma, os requisitos de desempenho dinmico para este sistema sero satisfeitos se Ki 1.
Se Ki = 1 a funo transferncia em malha aberta fica:
F T MA(z) = C(z) B oG (z)
Ki T

z}|{
[Kp (z 1) + 0, 1 ][0, 04528(z + 0, 9048)]
F T MA(z) =
(z 1)(z 1, 724z + 0, 7408)
0,1

F T MA(z) =
F T MA(z) =

z}|{
0, 04528 Kp (z 1)(z + 0, 9048) + (Ki T) 0.04528(z + 0, 9048)
z 3 2, 7235z 2 + 2, 4643z 0, 7408

(0, 04528 Kp )z 2 + (0, 004528 0, 0043 Kp )z + (0, 004097 0, 04097 Kp )


z 3 2, 7235z 2 + 2, 4643z 0, 7408

Onde a F T MA(z) pode ser obtido com a ajuda do Matlab (neste caso Kp = 1 e Ki = 1):
Kp z (Kp Ki T)
z (1 0, 1) z 0, 9
notar que: C(z) =
se transforma em: C(z) =
=
e ento:
(z 1)
z 1
z 1
>> [ numd , dend ]= t f d a t a ( BoG , v ) %separando numerador e denominador de BoG(z)
numd =
0
0.0453
0.0410
dend =
1.0000
1.7236
0.7408
>>
>> FTMA_dend=conv ( [ 1 1] , dend ) %determinando denominador de FTMA(z)
FTAM_dend =
1.0000
2.7236
2.4644
0.7408
>> FTMA_dend=conv ( [ 1 1] , dend )
FTAM_dend =
1.0000
2.7236
2.4644
>>
>> K _ i =1; K_p =1; %parmetros do PI
>> num_c=[ K_p (K_p K _ i * T ) ]
num_c =
1.0000
0.9000
>> C= t f ( num_c , den_c , T )
C =
z 0.9

z 1
Sample time : 0.1 seconds
D i s c r e t e time t r a n s f e r f u n c t i o n .
>> zpk ( C )
ans =
( z 0.9)

( z 1)
Sample time : 0.1 seconds
D i s c r e t e time zero / p ol e / gain model .
>> %determinando FTMA(z):
>> FTMA= s e r i e s ( C , BoG )
FTMA =
0.04528 z^2 + 0.000219 z 0.03687

z^3 2.724 z^2 + 2.464 z 0.7408


Sample time : 0.1 seconds
D i s c r e t e time t r a n s f e r f u n c t i o n .

0.7408

51

(3.1)

Root Locus

Root Locus

3
0.15

0.1

Imaginary Axis

Imaginary Axis

0.05

0.05

0.1

3
6

0.15
5

2
Real Axis

0.8

(a) RL sem zoom.

0.85

0.9
0.95
Real Axis

(b) Zoom sobre o grfico original.

Figura 3.21: Lugar das razes para sistema com controlador PI.

>> zpk ( FTMA )


ans =
0.04528 ( z +0.9048) ( z 0 . 9 )

( z 1) ( z 0.9048) ( z 0.8187)
Sample time : 0.1 seconds
D i s c r e t e time zero / p ol e / gain model .
>> %Podemos obter o RL para a FTMA(z):
>> r l o c u s ( FTMA )

O diagrama do lugar das razes pode ser visto na figura 3.21. Note que temos 2 zeros (de malha-aberta)
nas posies: z = 0, 9048 e z = 0, 9 e plos (de malha-aberta) em z = 1, z = 0, 9048 e z = 0, 08187 ver
detalhe na figura 3.21(b).
Trabalhando-se sobre o RL mostrado na figura 3.21(a) percebe-se que o sistema estvel para uma
pequena faixa de valores de K, K < 4, 81 ver figura 3.22. Note que o ganho K (usado para gerar o RL) no
corresponde diretamente ao ganho Kp , uma vez que alteraes no valor de Kp fazem variar a posio dos
zeros do controlador PI, fazendo variar o RL conforme se altera Kp ver eq. (3.1). Perceber pela figura 3.22
que o sobressinal (overshoot) aumenta rapidamente para pequenos valores de ganho de K.
A figura 3.23 mostra o mesmo RL considerando = 0, 5912 vlido para %OS=10% note que o ganho
neste caso deve ser bem pequeno, da ordem de K < 0, 252.
Fazendo-se K = 0, 4 na funo transferncia em malha-aberta (3.1) obtemos os resultados mostrados
na figura 3.24. Este resultado foi obtido seguindo as seguintes instrues no MATLAB:
>>
>>
>>
>>
>>
C3

%Se Kp=0.4 e Ki=1:


Kp = 0 . 4 ;
num_c3=[ Kp (Kp K i * T ) ] ;
den_c3 =[1 1 ] ;
C3= t f ( num_c3 , den_c3 , T )
=
0.4 z 0.3

z 1
Sample time : 0.1 seconds
D i s c r e t e time t r a n s f e r f u n c t i o n .
>> zpk ( C3 )
ans =
0.4 ( z 0.75)

( z 1)
Sample time : 0.1 seconds
D i s c r e t e time zero / p ol e / gain model .
>> ftma3= s e r i e s ( C3 , BoG )
ftma3 =
0.01811 z^2 + 0.002804 z 0.01229

z^3 2.724 z^2 + 2.464 z 0.7408


Sample time : 0.1 seconds

52

Root Locus
System: ftma
Gain: 4.81
Pole: 0.803 + 0.613i
Damping: 0.0155
Overshoot (%): 105
Frequency
(rad/s):
System:
ftma6.52
Gain: 1.37
Pole: 0.881 + 0.322i
Damping: 0.18
Overshoot (%): 56.3
Frequency (rad/s): 3.57

Imaginary Axis

System: ftma
0.8
Gain: 10.8
Pole: 0.666 + 0.907i
Damping: 0.125
Overshoot (%): 149
0.6 (rad/s): 9.45
Frequency

0.4

0.2

0.2
0.5

0.6

0.7

0.8

0.9
1
Real Axis

1.1

1.2

1.3

1.4

Figura 3.22: RL aumentado com valores de ganhos para o controlador PI.

Root Locus

System: ftma
Gain: 4.81
Pole: 0.803 + 0.613i
Damping: 0.0155
Overshoot (%): 105
Frequency (rad/s): 6.52

0.8

Imaginary Axis

0.6

=0,5912

System: ftma
Gain: 1.37
Pole: 0.881 + 0.322i
Damping: 0.18
Overshoot (%): 56.3
Frequency
System: (rad/s):
ftma 3.57
Gain: 0.252
Pole: 0.908 + 0.112i
Damping: 0.588
Overshoot (%): 10.2
Frequency (rad/s): 1.52

0.4

0.2

0.2
0.5

0.6

0.7

0.8

0.9
1
Real Axis

1.1

1.2

1.3

1.4

Figura 3.23: RL com alguns valores de ganho e = 0, 5912 (%OS=10%).

53

D i s c r e t e time t r a n s f e r f u n c t i o n .
>> zpk ( ftma3 )
ans =
0.018112 ( z +0.9048) ( z 0.75)

( z 1) ( z 0.9048) ( z 0.8187)
Sample time : 0.1 seconds
D i s c r e t e time zero / p ol e / gain model .
>> ftmf3=feedback ( ftma3 , 1 )
ftmf3 =
0.01811 z^2 + 0.002804 z 0.01229

z^3 2.705 z^2 + 2.467 z 0.7531


Sample time : 0.1 seconds
D i s c r e t e time t r a n s f e r f u n c t i o n .
>> ftmf3=feedback ( ftma3 , 1 )
ftmf3 =
0.01811 z^2 + 0.002804 z 0.01229

z^3 2.705 z^2 + 2.467 z 0.7531


Sample time : 0.1 seconds
D i s c r e t e time t r a n s f e r f u n c t i o n .
>> f i g u r e ; step ( ftmf3 )

Notar pela figura 3.24, que tanto o sobressinal gerado foi elevado, %OS=70%, quanto o tempo de
acomodao do sistema: ts = 19, 2 segundos.

1.8

System: ftmf3
Peak amplitude: 1.7
Overshoot (%): 69.7
At time (seconds): 1.6

Step Response

1.6
1.4

Amplitude

1.2
1
System: ftmf3
Settling time (seconds): 19.2

0.8
0.6
0.4
0.2
0
0

10

15
Time (seconds)

20

25

30

Figura 3.24: Resposta do sistema com PI ajustado com Kp = 0, 4 e Ki = 1, 0.

A figura 3.25 mostra o RL para o PI anterior.


Se por outro lado fizermos Ki = 10 (Ki >> 1) para garantir Kv > 5, C(z) se torna:
C(z) =

Kp (z 1) 1
z 1

e ento podemos usar MATLAB para determinar a F T MA(z) considerando Kp = 1:


>> K _ i =10; K_p =1;
>> num_c=[ K_p (K_p K _ i * T ) ]
num_c =
1
0
>> den_c =[1 1 ] ;
>> C= t f ( num_c , den_c , T )

54

Root Locus

System: ftma3
Gain: 1.86
Pole: 0.958 + 0.263i
Damping: 0.0245
Overshoot (%): 92.6
Frequency (rad/s): 2.68

0.4

Imaginary Axis

0.3

System: ftma3
Gain: 0.114
Pole: 0.957 + 0.057i
Damping: 0.579
Overshoot (%): 10.7
Frequency (rad/s): 0.73

0.2

0.1

0.1
0.6

System: ftma3
Gain: 0.0446
Pole: 0.955 + 0.00148i
Damping: 0.999
Overshoot (%): 0
0.465
0.7 Frequency
0.8 (rad/s):0.9
Real Axis

System: ftma3
Gain: 0.46
Pole: 0.961 + 0.133i
Damping: 0.214
Overshoot (%): 50.3
Frequency (rad/s): 1.41

1.1

1.2

Figura 3.25: RL para PI com Kp = 0, 4 e Ki = 1, 0.

C =
z

z 1
Sample time : 0.1 seconds
D i s c r e t e time t r a n s f e r f u n c t i o n .
>> FTMA= s e r i e s ( C , BoG )
FTMA =
0.04528 z^2 + 0.04097 z

z^3 2.724 z^2 + 2.464 z 0.7408


Sample time : 0.1 seconds
D i s c r e t e time t r a n s f e r f u n c t i o n .
>> zpk ( FTMA )
ans =
0.04528 z ( z +0.9048)

( z 1) ( z 0.9048) ( z 0.8187)
Sample time : 0.1 seconds
D i s c r e t e time zero / p ol e / gain model .
>> OS=10; %percentual de sobrepasso
>> zeta =( l o g (OS/100) ) / ( s q r t ( p i ^2+( l o g (OS/100) ^2) ) )
zeta =
0.5912
>> r l o c u s ( FTMA )
>> hold on
>> z g r i d ( zeta , 0 )

O RL obtido com o cdigo anterior mostrado na figura 3.26.


Notar que neste caso, a faixa de valores do ganho K que pode ser usado para o sistema ainda ser estvel
(K < 0, 0655) e para baixo sobressinal mais baixo (K < 0, 00769), ver figura 3.27.

55

Root Locus
3

Imaginary Axis

3
7

3
2
Real Axis

Figura 3.26: RL para controlador PI com Kp = 1 e Ki = 10.

Root Locus

0.5

System: FTMA
Gain: 0.00769
Pole: 0.965 + 0.0433i
Damping: 0.614
Overshoot (%): 8.68
Frequency (rad/s): 0.569

0.3
Imaginary Axis

System: FTMA
Gain: 0.0655
Pole: 0.992 + 0.146i
Damping: 0.017
Overshoot (%): 105
Frequency (rad/s): 1.47

0.591

0.4

0.2
0.1
0
0.1
0.2
0.3
0.4
0.5
0.2

0.2

0.4
0.6
Real Axis

0.8

1.2

Figura 3.27: RL expandido mostrando faixa para baixos valores de K.

56

3.6

Controlador Dead-beat (Controle por tempo mnimo, finito)

Idia: fazer o sistema em malha fechada atingir o regime permanente no menor tempo possvel (no tempo
mnimo absoluto, k = 1) ou dentro de um nmero finito de perodos amostrados.
Para tanto, C(z) deve conter todos os plos e zeros de B oG (z), isto :
Os plos de C(z) contm os zeros de B oG (z);
Os zeros de C(z) contm os plos de B oG (z);
e alm disto, so acrescentados tantos integradores quanto os necessrios para anular (zerar) o erro em
regime permanente para o tipo de entrada especificado, ou:

P E 
n=1 z p B oG (z)n


(3.2)
C(z) = Kc
ZE
w
m=1 z z B oG (z)m (z 1)
onde:

Kc
ZE
PE
zB oG (z)n
pB oG (z)m
(z 1)
w

= ganho do controlador;
= quantidade de zeros estveis da planta (B oG (z));
= quantidade de plos estveis da planta;
= n-simo zero da planta;
= m-simo plo da planta;
= so integradores impostos pelo integrador no sistema em malha fechada;
= nmero de integradores necessrios para tornar nulo o erro em regime permanente depende do tipo de entrada com a qual se est esperando operar
a planta (degrau, rampa, parbola, etc).

Note que o controlador no cancela plos ou zeros instveis da planta. Se estes existirem, estes so
desconsiderados na equao de C(z).

3.6.1

Exemplo1 : O controlador Deadbeat

Seja a funo transferncia de uma planta digital dada por:


z + 0, 6
3z 2 z 1
Suponha que acrescentaremos o controlador digital em cascata com a planta:
B oG (z) =

C(z) =

3z 2 z 1
(z 1)(z + 0, 6

Desta forma, a funo transferncia de malha aberta torna-se:


F T MA(z) = C(z)B oG (z) =

1
z 1

E assim a funo transferncia de malha-fechada fica:


F T MF (z) =

F T MA(z)
1
=
1 + F T MA(z) z

(3.3)

Note que a eq. (3.3) quando excitada por uma entrada degrau unitrio resulta em:
Y(z) =

1
z

= z 1 + z 2 + . . .
z (z 1)

ou seja, a sada y(k) representa a resposta do sistema em malha-fechada para uma entrada degrau unitrio
e que inicia em k = 1, ou seja, um perodo de amostragem seguinte ao acionamento do sistema.
Note que y(k) alcana a resposta desejada igual a 1 com apenas 1 perodo de amostragem de atraso e
que a sada permanece neste estado indefinidamente. Ou seja, que logo aps 1 nico perodo de amostragem, o sistema j se encontra em regime permanente.
Este tipo de resposta conhecida como resposta dead beat.
Entretanto deve ser percebido que o controlador C(z) no garante que oscilaes (ripples) no vo ocorrer
entre dois instantes de amostragem de y(k), ou seja, entre os instantes amostrados da resposta do sistema.
57

3.6.2

Exemplo2 : Projeto de Controlador Deadbeat

Seja a planta indicada seguir, projetar um controlador pelo critrio do tmepo mnimo, garantindo ainda erro
nulo em regime permanente para entrada degrau unitrio. Dados da planta:
G (s) =

10
(s + 1)(s + 10)

Soluo:
1. Primeiramente determinamos a funo transferncia amostrada da planta: B oG (z).
Usando o MATLAB, podemos fazer:
>> num=10;
>> help p o l y
POLY Convert r o o t s to polynomial .
POLY ( A ) , when A i s an N by N matrix , i s a row v e c t o r w i t h
N+1 elements which are the c o e f f i c i e n t s o f the
c h a r a c t e r i s t i c polynomial , DET ( lambda * EYE ( S I Z E ( A ) ) A ) .
>> den=p o l y ([ 1 10]) ;
>> G= t f ( num , den ) ;
>> zpk ( G ) %confirmando que entramos corretamente com os dados para G(s)
Zero / po l e / gain :
10

( s +10) ( s +1)
>> %Resta discretizar G(s):
>> T = 0 . 1 ; %guardando o perodo de amostragem adotado.
>> BoG=c2d ( G , T ) %aplicando o ZOH sobre G(s)
Transfer function :
0.0355 z + 0.02465

z^2 1.273 z + 0.3329


Sampling time : 0.1
>> zpk ( BoG ) %mostrando dados expandidos
Zero / po l e / gain :
0.035501 ( z +0.6945)

( z 0.9048) ( z 0.3679)
Sampling time : 0.1

Ento B oG (z) assume o formato: B oG (z) =

0.035501(z + 0.6945)
.
(z 0.9048)(z 0.3679)

2. Baseado na eq. (3.2) notamos que neste caso, necessitamos que nosso controlador tenha o seguinte
formato:
K (z 0.9048)(z 0.3679)
C(z) = c
(3.4)
(z + 0.6945)(z 1)
note que com o objetivo de anular o erro em regime permanente para uma entrada degrau foi introduzido
um integrador (termo (z 1)) no controlador. De qualquer forma, seria necessrio acrescentar algum plo
extra ao controlador a fim de garantir sua realizabilidade (grau do denominador grau do numerador).
Usando o MATLAB para especificar C(z) podemos fazer:
>> %para compor C(z). Ou separar os polos e zeros
help t f d a t a
help f o r l t i / t f d a t a
TFDATA

Quick access to t r a n s f e r f u n c t i o n data .

[NUM, DEN ] = TFDATA ( SYS ) r e t u r n s the numerator ( s ) and denominator ( s )


o f the t r a n s f e r f u n c t i o n SYS . For a t r a n s f e r f u n c t i o n w i t h NY
outputs and NU i n p u t s , NUM and DEN are NYbyNU c e l l arrays where
the ( I , J ) e n t r y s p e c i f i e s the t r a n s f e r f u n c t i o n from i n p u t J to
output I . SYS i s f i r s t converted to t r a n s f e r f u n c t i o n i f necessary .
For a s i n g l e SISO model SYS , the syntax
[NUM, DEN ] = TFDATA ( SYS , v )
r e t u r n s the numerator and denominator as row v e c t o r s r a t h e r than
c e l l arrays .
>> [ num_BoG , den_BoG ]= t f d a t a ( BoG , v ) %extraindo dados de BoG(z)
num_BoG =

58

0
0.0355
0.0247
den_BoG =
1.0000
1.2727
0.3329
>> r o o t s ( num_BoG )
ans =
0.6945
>> polos_BoG=r o o t s ( den_BoG )
polos_BoG =
0.9048
0.3679
>> zeros_BoG=r o o t s ( num_BoG )
zeros_BoG =
0.6945
>> num_c=p o l y ( polos_BoG ) ; %construindo numerador de C(z), polinomialmente
>> den_c=p o l y ( [ 1 zeros_BoG ] ) ; %montando o numerador de C(z), incluindo o integrador
>> C= t f ( num_c , den_c , T )
Transfer function :
z^2 1.273 z + 0.3329

z^2 0.3055 z 0.6945


Sampling time : 0.1
>> zpk ( C ) %verificando formato do controlador...
Zero / po l e / gain :
( z 0.9048) ( z 0.3679)

( z 1) ( z +0.6945)
Sampling time : 0.1

3. O passo seguinte fechar a malha de realimentao, incluindo a determinao de Kc .


Usando o MATLAB:
>> FTMA= s e r i e s ( C , BoG ) %determinando primeiro a FTMA(z)
Transfer function :
0.0355 z^3 0.02053 z^2 0.01956 z + 0.008206

z^4 1.578 z^3 + 0.02728 z^2 + 0.7821 z 0.2312


Sampling time : 0.1
>> zpk ( FTMA ) %confirmando localizacao final dos polos e zeros de C(z)BoG(z):
Zero / po l e / gain :
0.035501 ( z +0.6945) ( z 0.9048) ( z 0.3679)

( z +0.6945) ( z 0.9048) ( z 1) ( z 0.3679)


Sampling time : 0.1
%note que usando o comando minreal(..) se poderia cancelar polos-zeros numericamente, por exemplo:
>> FTMAr=minreal ( FTMA, 1 e 4) ;
>> zpk ( FTMAr ) %versao numerica com polos-zeros cancelados
Zero / po l e / gain :
0.035501

( z 1)
Sampling time : 0.1
%mas continuar com FTMA(z) permite vizualizar os cancelamentos polos-zeros
%no diagrana do lugar das raizes

Notamos ento que a funo transferncia em malha-aberta, F T MA(z) fica:


F T MA(z) = C(z) B oG (z) =

0.035501
(z 1)

(3.5)

ou seja, resultou exatamente no que se pretendia.


Inspecionando a eq. (3.5) percebe-se que nosso sistema em malha-aberta contm apenas 1 plo em
z = 1. Quando o lao de realimentao for fechado, com a introduo do ganho do controlador, Kc , se
percebe que este plo de malha-aberta partir do ponto z = 1 e caminhar at z = , a medida que
Kc aumenta. Ou seja, teremos como resultado apenas 1 plo, real, em malha-fechada.
Lembrando a forma como plos simples reais reagem no tempo para uma entrada degrau, fica fcil
perceber que quanto mais prximo da origem do plano-z estiver o plo de malha-fechada, to mais
rpido ser a resposta do sistema (ver Apndice: B.1). Como queremos que a planta entre em regime
permanente no menor tempo possvel, tentaremos fixar o plo de malha-fechada em z = 0, ajustando de
forma adequada o ganho do controlador.

59

Usando novamente o MATLAB para determinador o Kc teremos:


%continuando com o RL da FTMA completa para confirmar os cancelamentos
>> r l o c u s ( FTMA )
>> a x i s equal

Os ltimos comandos no MATLAB geram o grfico mostrado na figura 3.28.

Root Locus

Imaginary Axis

0.5

-0.5

-1
-3

-2

-1
0
Real Axis

Figura 3.28: RL para sitema com controlador Deat-beat.

Procedemos com mais comandos no MATLA para sintonia do controlador:


>> hold on %mantem RL anterior na janela grafica
>> [ K , polos_MF ]= r l o c f i n d ( FTMA )
S e l e c t a p o i n t i n the g r a p h i c s window
selected_point =
0.0036 0.0031 i
K =
28.0686
polos_MF =
0.6945
0.9048
0.3679
0.0035
>> %Se tentou posicionar os polos de MF sobre a origem do plano-z
>> %verificando o resultado obtido...
>> f i g u r e ; %abre nova janela grafica
>> FTMF=feedback ( K*FTMA , 1 ) ; %fechando a malha com o ganho encontrado
>> zpk ( FTMF ) %confirmando polos e zeros de MF
Zero / po l e / gain :
0.99645 ( z +0.6945) ( z 0.9048) ( z 0.3679)

( z +0.6945) ( z 0.9048) ( z 0.3679) ( z 0.00355)


Sampling time : 0.1
>> %Hum... notamos um polo em z=-0.6945 (gera oscilao sada controlador)
>> step ( FTMF )

Os ltimos comandos geram as figuras 3.29(a) e (b).


Se percebe pela figura 3.29(b) que a planta entrou em regime permanente praticamente depois da primeira amostra (k = 1). Podemos ainda determinar algebricamente o valor de regime permanente da
sada do sistema em malha fechada:
y() =

lim F T MF (z)R(z) = lim (1 z 1 )F T MF (z)

ki nf ty

z1

Usando o MATLAB para determinar o valor de y():


60

1
(1 z 1 )

Step Response

Root Locus

1
Kc=28.0689

0.8
Amplitude

Imaginary Axis

0.5

-0.5

-1
-3

0.6
Note: regime permanente a partir de k=1 (t=0.1)

0.4

0.2

-2

-1
0
Real Axis

0
0

(a) Ajustando o ganho no RL.

0.5

1
Time (sec)

1.5

(b) Correspondente resposta ao degrau.

Figura 3.29: RL ajustado e resultado da sada do sistema com controlador deat-beat sintonizado.

>> [ num_mf , den_mf ]= t f d a t a ( FTMF , v )


num_mf =
0
0.9965
0.5762
0.5490
den_mf =
1.0000
0.5818
0.5489
0.2331

0.2303
0.0008

>> y _ i n f t y = p o l y v a l ( num_mf , 1 ) / p o l y v a l ( den_mf , 1 )


y_infty =
1.0000

Mas este tipo de resposta tm sua contraparte: um elevado eforo de controle. Para comprovar as amplitudes envolvidas com o sinal de controle, u(k) podemos simular este sistema no MATLAB/Simulink ver
figura 3.30.
e

To Workspace2

To Workspace3

28.0689
Step
Gain

(z-0.9048)(z-0.3679)
(z-1)(z+0.6945)

10
s2+11s+10
Zero-Order
Hold

C(z)

G(s)

y
To Workspace

To Workspace1

Clock

To Workspace4

Figura 3.30: Simulao do controlador Dead-beat no MATLAB/Simulink.

Note que os blocos relacionados com C(z) (Discrete Zero Pole Transfer Fcn no Simulink) e o sustentador
de ordem zero devem explicitamente terem seus parmetros editados para confirmar que so discretos,
isto , com perodo de amostragem definido em T = 0.1 ver figuras 3.31(a) e (b).
E tambm devemos ajustar os parmetros de simulao no Simulink. Selecione Simulation > Configuration Parameters e ajute o campo Solver options > Type: Fixed-step, Solver: ode4 (Runge-Kutta)
(conforme sugesto de (Nise, 2012)) e Fixed step size: para 0.1 conforme mostra a figura 3.32.
Uma vez feito os ajustes no Simulik possvel visualizar os resultados obtidos atravs dos comandos a
seguir, que geram os grficos da figura 3.33(a) e (b):

61

(a) Parmetros de C(z).

(b) Parmetros do ZOH.

Figura 3.31: Ajuste de parmetros de blocos discretos no Simulink.

Figura 3.32: Parmetros de Simulao para o controlador dead-beat.

62

Resposta malha fechada, entrada degrau [y(k)]

A o de Controle [u(k)]

1.4

30

1.2

20

1
10

u(k)

y(k)

0.8
0

0.6
-10

0.4

-20

0.2

0.2

0.4

0.6

0.8

1
tempo (s)

1.2

1.4

1.6

1.8

-30

(a) Sada da planta em MF, y(k).

0.2

0.4

0.6

0.8

1
tempo (s)

1.2

1.4

1.6

1.8

(b) Correspondente ao de controle, u(k).

Figura 3.33: Sada do sistema e correspondente ao de controle para o controlador dead-beat.

>>
>>
>>
>>
>>
>>
>>
>>

figure ; plot ( t , y )
t i t l e ( Acao de C o n t r o l e [ u ( k ) ] )
x l a b e l ( tempo ( s ) ) ;
ylabel ( u( k ) )
figure ; stairs ( t , u)
t i t l e ( Ao de C o n t r o l e [ u ( k ) ] )
x l a b e l ( tempo ( s ) ) ;
ylabel ( u( k ) )

Onservando a figura 3.33(b) se percebe que o sinal de controle oscilou entre 27.0489 u(k) 28.0689
(foram usados os comandos max(u) e min(u) para descobrir os maiores valores de oscilao de u(k))
uma faixa de excurso provavelmente muito maior que a suportada pelo converssor D/A ou driver de
potncia conectado fisicamente entre a sada do controlador digital e a entrada da planta.

63

Efeitos Adversos do Controlador Dead-Beat


Notar que este controlador:
1. Gera uma ao de controle, u(kT), com aplitudades excessivamente elevadas nos primeiros
instantes de amostragem do sistema. Muito provavelmente saturando o converssor D/A presente sua sada ou ultrapassando limites fsicos (ou economicamente viveis) para o amplificador de potncia (driver de potncia) que normalmente segue o controlador digital.
2. E gera inter sampling ripples na sada do sistema. Ou seja, entre os instantes de amostragem, o sistema (planta) continua evoluindo no tempo ( um sistema contnuo no tempo) como
resposta s fortes atuaes de controle realizadas, o que faz a planta oscilar ou apresentar um
ripple na sua sada.
Tanto o ripple do sinal de controle ou do sinal de sada da planta implica em reduo da vida til do
sistema, tanto pior quanto maiores forem descontnuas as derivadas de ordem superior (at terceira
ordem, os chamados jerks) se traduzindo por vezes at de maneira audvel como vibraes ou
zumbidos durante a operao do sistema.

3.6.3

Exemplo2 : Outro projeto de Controlador Deadbeat

Seja a planta indicada seguir, baseada em [Nise (2012), Cap. 2, pg. 113, 197] estudo de caso para
controle de posio de uma antena ver figuras 3.34 e 3.35. Sua funo transferncia, para controle de
posio angular de posio, dada por:
G (s) =

Ea (s)
0, 2083
[rad]
=
=
o (s) s(s + 1, 71) [V olts]

onde:

Ea (s): tenso eltrica (Volts) apresentada na entrada do driver de potncia do motor eltrico da
antena. Pode variar entre 5, 0 5, 0 (Volts).
o (s): orientao final da antena (posio angular), sada em (radianos).
notar ainda que esta planta possui certas limitaes fsicas (reais) como:
Zona-morta: o motor no responde para baixas voltagens de entrada, isto , no move abaixo de certa
voltagens. No caso, para a faixa entre 2, 0 2, 0 (Volts);
Folga: (ou backslash ) presente nas engrenagens acompladas entre o eixo de sada do motor e o eixo rotor
da antena. Isto significa que to logo o motor reverte sua rotao, o eixo de sada da antena (depois de
ter passado pela acoplamento entre as engrenagens saindo do motor), permanece esttico enquanto
o motor prossegue na sua reverso. Quando os dentes das engrenagens finalmente se conectam, o
eixo de sada da antena comea a girar na direo da reverso (sem mais nenhum efeito de backslash ).
Neste caso, o conjunto motor-antena possui folga de 0, 15 (radianos).
Supondo que o perodo de amotragem ser adotado de T = 0.1 (segundos), temos:
B oG (z) =

0, 00098459(z + 0, 9446)
(z 1)(z 0, 8428)

que resulta num sitema do tipo 1.


Neste caso, a prpria planta j possui seu integrador o que garante erro nulo em regime permanente
para entrada degrau.
Projetando o controlador dead-beat para este sistema, C(z), temos:
C(z) =

1
(z 0, 8428)

0, 00098459 (z + 0, 9446)
|
{z
}
Kc

Com isto a F T MA(z) fica:


F T MA(z) = C(z) B oG (z) =

1(z 0, 8428)(z + 0, 9446)


1
=
(z 1)(z 0, 8428)(z + 0, 9446) z 1
64

e assim a F T MF (z) fica:


F T MF (z) =

1
F T MA(z)
1
1
= z11 =
= = z 1
1 + F T MA(z) 1 + z1 z 1 + 1 z

como:
Y(z)
= F T MF (z)
R(z)

Y(z) = F T MF (z) R(z)

ento se R(z) uma entrada degrau, teremos:


Y(z) =

1
z
1

=
= 1z 1 + 1z 2 + 1z 3 + . . .
z (z 1) z 1

ou seja, o sistema entra em regime permanente 1 instante de amostragem depois de ativado (em k = 1),
como seria o esperado com a entrada do controlador dead-beat no sistema.
Os clculos para determinar C(z) usando MATLAB seguem seguir:
Primeiramente o sistema foi simulando considerando um sistema ideal, isto , sem limitaes ver figura
XX.

65

(a) Layout detalhado.

(b) Esquemtico.
Figura 3.34: Sistema de controle de posio (azimute) de uma antena (Extrado de [Nise (2012), Cap. 2, pg. 32]).

Figura 3.35: Diagrama em blocos referente a um estudo de caso de controle de posio (azimute) de uma anterna (Extrado de [Nise (2012), pg. 3]).

66

Captulo 4

Projeto de Controladores Digitais


4.1

Mtodo dos Plos Dominantes

Objetivos: determinar C(z) tal que o processo em malha-fechada se comporte como o especificado.
Especificaes:
Preciso (erro em regime permanente);
Forma do transitrio.
Num sistema comum com malha de realimentao unitria fechada pelo controlador C(z) temos:
F T MA(z) = C(z) B oG (z)
que deve atender as especificaes de preciso, isto , o e() est associado com a F T MA(z).
Fechando a malha obtemos:
F T MF (z) =

Y(z)
C(z)B oG (z)
=
R(z) 1 + C(z)B oG (z)

cuja equao caracterstica, E C(z) resulta em:


E C(z) = 1 + C(z)B oG (z) = 0
de onde se percebe que a presena de C(z) permite que possamos atuar na resposta do sistema em
malha-fechada (regime transitrio), atravs de C(z).
Formas aceitveis de transitrios: 0, 5 < < 0, 7 (para sistemas de 2a-ordem) resultam nos grficos
mostrados na figura 4.1.

Step Response

System: G
Peak
1.4amplitude: 1.2
Overshoot (%): 20
At time (seconds): 0.707
1.2

1.4
System: G
Peak amplitude: 1.05
Overshoot (%): 5
At time (seconds): 0.868

1.2

1
Amplitude

Amplitude

Step Response

0.8
0.6

0.8
0.6

=0,4559

=0,6901
0.4

0.4

0.2

0.2

0
0

0.5

1
Time (seconds)

1.5

0
0

(a)  0, 7.

0.5

1
1.5
Time (seconds)

(b)  0, 5.

Figura 4.1: Respostas tpicas de sistemas de 2a-ordem.

67

2.5

4.2

Metodologia de Projeto

O projeto deve obedecer as seguintes especificaes:


1. Especificaes quanto ao regime permanente:
Erro nulo para uma entrada de ordem n e;
Erro limitado ou pr-definido para entradas de ordem superior (n + 1).
Exemplo: utilizando as especificaes:
Erro nulo para entrada degrau Kp = (onde Kp corresponde ao ganho de posio);
Erro pr-definido para entrada rampa

T
= cte (constante finita, limitada).
Kv

2. Especificaes quanto ao regime transitrio:


Forma de resposta aceitvel caracterizada por parmetros tais como , wn (frequncia de oscilao) ou wd , ou ainda pela posio no plano complexo das razes desejadas para a equao caracterstica, ou seja, que razes da funo transferncia devem ser dominantes.
Especificaes (resumo):
(
Regime Permanente

Ganho de posio
Ganho de Velocidade

Kp
Kv

= an z n + an1 z n1 + . . . + a0 = 0.
(normalmente an = 1)

E Cdesejada (z)

Plos Dominantes:
PoleZero Map
1

Imaginary Axis

0.5

Regime Transitrio

0.5

1
1

0.5

0
Real Axis

0.5

Estrutura ?
.
Valores ?
Exemplo: Posso ter a seguinte estrutura:

Problema: Determinar C(z)

C(z) =

Kc (z a)
(z 1)

Ganho = Kc ;

1 integrador;

1 zero varivel (a);

Proposta: definir a estrutura de C(z), procurando atender as especificaes com adicionalmente a funo
C(z)B oG (z) (F T MA(z)), mais simples possvel.
Seguindo esta perspectiva, o controlador C(z) deve conter:
1. Tantos integradores quantos sejam necessrios para satisfazer as especificaes de regime permanente.
R

1 R = para entrada degrau, F (z) = Tipo 1

Se f (t) = 3 + 2t + 3t 2
2

s
=
para
entrada
rampa,
F
(z)
=
Tipo
2

para e() = 0
R

3 s = para entrada parablica, F (z) = Tipo 3

Ento:
R
s = Os que a entrada dispes Os que j existem no processo.
2. Um ganho ajustvel, Kc ;
68

3. Plos e Zeros de C(z) cancelando zeros e plos estveis de B oG (z).


g(z + 0, 7)
(z 0, 5)
Exemplo: Supondo-se que: B oG (z) =
, ento: C(z) =
, que resulta na:
(z 0, 5)(z 1, 3)
(z + 0, 7)
g
ver figura 4.2.
F T MA(z) = C(z)B oG (z) =
(z 1, 3)
Root Locus
1.5

num=[1 0.7];
den=conv([1 -0.5],[1 -1.3]);
T=1;
BoG=tf(num,den,T);
num_c=[1 -0.5];
den_c=[1 0.7];
ftma=series(C,BoG);
rlocus(ftma)

Imaginary Axis

>>
>>
>>
>>
>>
>>
>>
>>

0.5

0.5

1.5
3

Real Axis

(a) Cdigo no MATLAB.

(a) RL gerado pela F T MA(z).

Figura 4.2: Exemplo de C(z) onde no se cancela zero instvel.

4. Tantos parmetros quanto sejam necessrios para atender as especificaes de regime transitrio.
Exemplo: e wn

1 parmetro livre para cada um ver figura 4.3.

Step Response

1.6

%OS = exp (/

1.4

Ts =

1.2

Amplitude

, Peak time.
p
wn 1 2
p
%O S = exp (/ 1 2 ) 100, Percent overshoot.
ln %O S/100
= p
, Damping ratio.
2 + ln2 %O S/100
4
, Settling time.
Ts =
wn
Tp =

2 ) 100

4
wn

1
0.8
0.6

0.2
0
0

0, 6 + 2, 16
wn

p
Tp =
wn 1 2
Tr =

0.4

0.5

1.5

2.5

Tr =
3

3.5

0,6+2,16
,
wn

Rise time.

Time (seconds)

(a) Diagrama no tempo.

(b) Parmetros tpicos.

Figura 4.3: Parmetros tpicos para respostas de 2a-ordem.

Os parmetros so introduzidos em C(z) na forma:


1 + az 1 z + a
=
1 + bz 1 z + b
ou,
1 + a1 z 1 + a0 z 2 z 2 + a1 z + a0
=
z(z + b)
1 + bz 1
Eventualmente no h como posicionar o parmetro desejado no N(z) ou D (z).

4.3

Comentrios

1. A base para este mtodo questionvel (cancelamento plo/zero) porque a representao por funo
transferncia limitada.
Exemplo: Seja:
69

Y(s) 1
=
U(s) s
Sistema 1

Y(s)
s+1
=
U(s) s(s + 1)
Sistema 2

Para o sistema 1 temos:


y = u
sY(s) y(0) = U(s)
1
y(0)
U(s) +
s
s
A condio inicial de y(t), y(0) vai ter influncia na varivel de sada Y(s).
Y(s) =

Para o sistema 2 temos:


s+1
Y(s)
=
U(s) s(s + 1)
y + y = u + u

, U(0) = 0

+ sY(s) y(0) = sU(s) + U(s)


s 2 Y(s) sy(0) y(0)
Y(s) =

[(s + 1)U(s) + (s + 1)y(0) + y(0)]


s(s + 1)

Falta completar
(20 May 2014)
Aula de 20/05/14:
1
At Exemplo com planta: G (s) = s+1
Resolvido para e(inf) = 0 para entrada degrau.
Falta resolver para 2o-caso: e() = 0, 05 para entrada rampa.

70

Exemplo2 : Continuao do Exemplo1 mas neste caso, se deseja tambm erro para entrada rampa 0, 05.
Lembrando que:
B oG (z) =

1 e T/
z e T/

0, 2
z = 0, 8

B oG (z) =

T=0,1

Soluo1 :
C(z) = Kc

(z 0, 8)
(z a)
| {z }

(z 1)

introduo de + 1 integrador

Ento:
C(z)B oG (z) =

0, 2Kc
(z 1)(z a)

Eq. 2o-grau

Mas: E C(z) 2o-grau (Posicionar 2 razes mas s tenho 1 parmetro varivel).


Concluso: estrutura inicial de C(z) insuficiente.
Soluo2 : outra estrutura para C(z):
C(z) = Kc

(z 0, 8)(z b)
(z 1)(z a)

teremos ento:
C(z)B oG (z) =

0, 2Kc (z b)
(z 1)(z a)

que nos garante: e() = 0 para entrada degrau;


mas queremos e() = 0, 05 (= 5%) para entrada rampa.
Calculando ento o ganho de velocidade associado com o erro para uma entrada rampa temos:
lim e[k] =

T
= 0, 05
Kv

T
Kv

Kv =

0, 1
=2
0, 05

Pela definio para ganho de velocidade, temos:


Kv = lim (z 1)F T MA(z)
z1

Kv = lim

z1

(z 1)0, 2Kc (z b)
=2
(z 1)(z a)

assim:
0, 2Kc (1 b) = 2(1 a)

(4.1)

note que: temos 3 incgnitas: Kc , b e a mas apenas 1 equao!


Mas lembramos entre os requisitos desejados para o sistema compensado constava:
resposta transitria caracterizada por raz em 0,1 (dominante).
o que significa que a resposta do sistema deve ser a mais prxima possvel da sada de um sistema de
1a-ordem com plo em z=0,1.
E nossa F T MA(z) j resultou num sistema de 2a-ordem. A soluo ento tornar a resposta deste sistema
de 2a-ordem num caso de sistema de 2a-ordem super-amortecido, com 2 plos reais em malha-fechada,
onde o plo adicional deveria se localizar ento o mais prximo possvel da origem para que seu impacto seja
pouco percebido na resposta da sada do sistema.
Lembrando que:
F (s)
a
s(s + a)

f (kT)
1 e akT
71

F (z)
z(1 e aT )
(z 1)(z e aT )

ento, a resposta desejada para o degrau unitrio deveria ficar: y(k) = 1 0, 1k .


Note que e akT = (e a ) kT .
|{z}
cte

Se fizermos a = 10 vezes menor (mais rpido) que o 0, 1 (o plo de MF desejado), teremos: a = 0, 01 e


assim:
0, 2Kc (z b)
C(z)B oG (z) =
(z 1)(z 0, 01)
Voltando a eq. (4.1) temos ainda que:
0, 2Kc (1 b) = 2(1 0, 01)
0, 2Kc (1 b) = 1, 98
Lembramos ainda que: E C d (z) = z 0, 1 = 0, mas podemos fazer: E C d0 (z) = z(z 0, 1) = 0 e que:
F T MA(z) = C(z)B oG (z) =

0, 2Kc (z b)
(z 1)(z 0, 01 )
|{z}
a

F T MF (z) =

F T MA(z)
1 + F T MA(z)

E C(z) = 1 + F T MA(z) = 0
neste caso:
E C(z) = 1 +
1+

0, 2Kc (z b)
=0
(z 1)(z 0, 01)

0, 2Kc (z b)
2
z 1, 01z + 0, 01

=0

z 2 + (0, 2Kc 1, 01)z + 0, 01 0, 2Kc b = 0

(4.2)

onde podemos considerar 1 plo (de malha-aberta) na origem e outro na posio desejada: z = 0.1; ficamos
ento com algo como: z(z 0, 1) = 0 ou:
z(z 0, 1) = 0

z 2 0, 1z = 0

Comparando a eq. (4.3) com a eq. (4.2) temos ento:


0, 2Kc 1, 01 = 0, 1
Kc =

1, 01 0, 1
= 4, 55
0, 2

e temos ainda da eq. (4.2) que: 0, 2Kc b = 0, ou seja, que b = 0. Assim, finalmente:
C(z) = 4, 55

z(z 0, 8)
(z 1)(z 0, 01)

Verificando no MATLAB:
>>
>>
>>
>>
>>
>>

%especificando a planta j discretizada:


num= 0 . 2 ;
den =[1 0 . 8 ] ;
T=0.1;
BoG= t f ( num , den , T ) ;
zpk ( BoG )
0.2

( z 0.8)
Sample time : 0.1 seconds
D i s c r e t e time zero / p ol e / gain model .
>> %especificando o controlador:
>> num_c=conv ( [ 1 0 ] , [ 1 0 . 8 ] ) ;
>> den_c=conv ( [ 1 1 ] , [ 1 0 . 0 1 ] ) ;
>> C= t f ( num_c , den_c , T ) ;
>> zpk ( C )
z ( z 0.8)

72

(4.3)


( z 1) ( z 0.01)
Sample time : 0.1 seconds
D i s c r e t e time zero / p ol e / gain model .
>> %obtendo a FTMA(z):
>> FTMA= s e r i e s ( C , BoG ) ;
>> zpk ( FTMA )
0.2 z ( z 0 . 8 )

( z 1) ( z 0 . 8 ) ( z 0.01)
Sample time : 0.1 seconds
D i s c r e t e time zero / p ol e / gain model .
>> %Dando uma olhada no RL deste sistema:
>> r l o c u s ( FTMA )
>> %definindo o ganho do controlador (da malha fechada):
>> f t m f=feedback ( K*FTMA , 1 ) ;
>> %verificando a resposta para entrada degrau:
>> step ( f t m f )
>> %criando vetores para simular resposta para entrada rampa:
>> f o r k = 0 : 1 0 ; t ( k +1)=k * T ; r ( k +1)=k * T ; end ;
>> f i g u r e ; p l o t ( t , r ) ; %mostra sinal de referencia criado
>> %Acrescentando a parte do degrau depois da rampa:
>> r =[ r ones ( 1 , 1 0 ) ] ;
>> s i z e ( r )
1
21
>> f o r k = 0 : 2 0 ; t ( k +1)=k * T ; end ; %recriando vetor tempo, t
>> f i g u r e ; p l o t ( t , r )
%mostra como sinal contnuo
>> f i g u r e ; s t a i r s ( t , r ) %mostra como o sinal digital sintetizado
>> %Simula a entrada rampa + degrau criada:
>> [ y , t t ]= l s i m ( ftmf , r , t ) ;
>> p l o t ( t , r , k , t t , y , b ) %mostra como sistema contnuo
>> %Mostrando como os sinais (digitais) so criados:
>> f i g u r e ; s t a i r s ( t , r , k ) %mostra 1o) referncia
>> hold on
>> s t a i r s ( t t , y ) %mostra resposta do sistema em MF

A figura 4.4 mostra os grficos gerados pelo MATLAB.

73

Root Locus
1

Root Locus
System: FTMA
Gain: 4.51
Pole: 0.0542 + 0.084i
Damping: 0.918
Overshoot (%): 0.0711
Frequency (rad/s): 25.1

0.15

0.8
0.1

0.6

System: FTMA
Gain: 4.05
Pole: 0.1 9.11e09i
Damping: 1
Overshoot (%): 0
Frequency (rad/s): 23

0.05
Imaginary Axis

Imaginary Axis

0.4
0.2
0
0.2

0.05
0.4
0.6

0.1

0.8
1
1

0.15
0.5

0.5

1.5

0.1

0.05

0.05

Real Axis

(a) RL do sistema.

0.1
Real Axis

0.15

0.2

0.25

0.3

(b) Detalhe do RL mostrando em (a).


Resposta do Sistema

Step Response

1.4

1.4

1.2
Erro (rampa) = 5%

1.2

r(k), y(k)

Amplitude

1
0.8
0.6

0.8
0.6
Atraso na resposta de 1xT (0,1 seg.)

0.4

0.4

0.2

0.2

0
0

0.5

1
Time (seconds)

1.5

0
0

(c) Resposta ao degrau.

0.5

1
Tempo (s)

1.5

(d) Resposta entrada rampa + degrau.

Figura 4.4: Figuras geradas pelo Matlab para o exemplo2 .

74

Captulo 5

Projeto por Emulao


5.1

Introduo

Um sistema contendo tanto um sinal contnio no tempo quanto um sinal discreto dito um sistema de
dados amostrado [Franklin et al. (1994), Cap. 8: Digital Control].
Assumimos que o perodo de amostragem fixo. Na prtica, sistemas de controle digitais algumas
vezes possuem perodos de amostragem variveis e/ou diferentes perodos de amostragem entre seus
ramos de realimentao. Normalmente, a lgica do computador inclui um sinal de clock que fornece um
pulso, ou interrupo, a cada T segundos, um conversor A/D envia uma sequencia numrica binria para
o computador a cada instante de tempo que a interrupo ocorre. Outra alternativa de implementao,
as vezes referenciada como free-running consiste em acessar o conversor A/D depois que cada ciclo de
execuo do cdigo foi completada. No primeiro caso, o perodo de amostragem preciso e fixo. No ltimo
caso, o perodo de amostragem depende do tamanho do cdigo ser executado, o qual eventuais laos
de repetio e desvios condicionais (IFs) devem ser evitados, o que caso contrrio, poderia fazer variar a
quantidade de cdigo ser executada, fazendo variar o perodo de amostragem.
Tambm num sistema de controle digital deve estar presente um sampler (amostrador) e um conversor
A/D para a entrada de comando (ou referncia), r(t), o que gera o sinal discretizado r(kT) que juntamente
com o sada amostrada do sistema, y(kT) gera o sinal de erro discretizado: e(kT) = r(kT) y(kT) ver figura
5.1.
Um sistema contnuo de compensao pode ser aproximado por uma equao de diferenas que seria
uma verso discreta de uma equao diferencial e pode ser adotado para emular o comportamento dinmico de um compensador contnuo, C(s), se o perodo de amostragem for curto o suficiente. O resultado
desta equao de diferenas seria um sinal discreto u(kT) a cada instante de amostragem. Este sinal
seria convertido para o mundo contnuo, u(t) atravs de um conversor D/A e um sustentador (Holder). O
conversor D/A converte o nmero binrio numa tenso analgica e o sustentador manteria a ltima tenso
analgica gerada durante os instantes de amostragem.
Existem duas tcnicas bsicas para determinar a equao de diferenas que define o controlador digital.
Uma delas, chamada emulao, consistem em projetar o compensador contnuo no tempo, C(s) usando mtodos clssicos de controle automtico e ento realizar uma aproximao de C(s) para uma representao
discreta, C(z) usando um dos seguintes mtodos:
Mtodo de Euler;
Mtodo de Tustin;
Mtodo da Correspondncia Plo-Zero (MPZ = Matched Pole-Zero).
O ltimo mtodo, o da correspondncia plo-zero leva em conta a definio da transformada-Z, extrapolando ento a relao entre os planos s e z, obedecendo a relao:
z = e sT
Se tomamos a transformadaZ da funo amostrada x(k), ento os plos de X(z) esto relacionados
com os plos de X(s) obedecendo a relao z = e sT . O problema que temos que considerar tambm que
s = (1/T) ln z a inversa de z = e sT . Sendo assim, se temos P(z) e substitumos z = e T s , obtemos P(e T s )
75

como resultado da converso para o planos. De modo simular, se temos P(s) e substitumos s = (1/t) ln z,
obtemos P[(1/T) ln z] como resultado da converso para o planoz. Infelizmente, ambas transformaes
conduzem a funes trancedentais que obviamente podem ser levadas caso, respeitando detalhes da
complicada transformada Z [Nise (2012), Cap. 13: Digital Control Systems].

5.2

Mtodo de Euler

Uma maneira particularmente simples de fazer com que um computador digital se aproxime da soluo
em tempo-real de uma equao diferencial usar o mtodo de Euler (tambm conhecido como regra retangular direta forward rectangular rule). Ela resultado da seguinte aproximao:
dx
x
= lim
d t t0 t
que aplicada neste caso em particular resulta em:
x

x(k + 1) x(x)
T

onde:
T
tk
x(k)
x(k + 1)

=
=
=
=

o perodo de amostragem (em segundos) = tk+1 tk ,


kT,
valor de x no instante tk ,
valor de x no instante tk+1 .

Esta aproximao pode ser usada no lugar de vrias derivadas que apaream na equao diferencial
do controlador e resulta num conjunto de equaoes que pode ser calculada por um computador digital.
Estas equaes de diferenas so resolvidas repetidamente a cada T perodo de tempo. Para sistemas com
margem de banda da ordem de uns poucos Hertz, taxas de amostragem resultam normalmente na ordem de
1 KHz, e assim os perodos de amostragem ficaro em torno de 1 mseg e os erros envolvidos na aproximao
resultaro bastante pequenos [Franklin et al. (1994)].

Obs.: Extrado de [Franklin et al. (1994)].

Figura 5.1: Diagrama de blocos para um sistema bsico de controle: (a) sistema contnuo e (b) incluindo um computador
digital.

76

5.2.1

Exemplo1 : Caso de um Controlador de 1a-ordem

Usando o mtodo de Euler, encontre a equao de diferenas que necessita ser programada num computador se C(s) dado como:
s+a
U(s)
= Ko
C(s) =
E(s)
s+b
Soluo: Primeiro determinamos a equao diferencial que corresponde C(s):
(s + b)U(s) = Ko (s + a)E(s)
por inspeo percebemos que a correspondente equao diferencial :
u + bu = Ko (e + ae)
Usando o mtodo de Euler para aproximar a eq. (5.1) obtermos a seguinte equao de diferenas:
"
#
u(k + 1) u(k)
e(k + 1) e(k)
+ bu(k) = Ko
+ ae(k)
T
T

(5.1)

(5.2)

Rearrumando a eq. (5.2) obtemos:


#)
(
"
e(k + 1) e(k)
+ ae(k)
u(k + 1) = u(k) + T bu(k) + Ko
T

(5.3)

A equao (5.3) determina o novo valor de controle, u(k + 1), uma vez conhecida a amostra passada do sinal
de controle, u(k) e os novos e valores passados do sinal de erro, e(k + 1) e e(k).

5.2.2

Exemplo2 : Caso de um Controlador por Avano de Fase

Encontre uma implementao digital para compensador de avano de fase definido para a seguinte
planta(Exemplo 5.13 de [Franklin et al. (1994)]):
G (s) =

1
s(s + 1)

usando taxas de amostragem de: a) 20 e b) 40 Hz. Simule as equaes de controle para uma entrada
degrau e compare o resultado obtido entre o controlador analgico e o digital. O sistema deve responder em
malha-fechada com fator de amortecimento > 0, 5 e com frquencia natural wn > 7 (rad/s).
Na ocasio deste exerccio foram feitas diferentes tentativas de pares plo-zero para o compensador de
avano de fase como mostra a figura 5.2.
A funo transferncia em malha aberta resulta:
F T MA(s) = C(s)G (s) =

70(s + 2)
s(s + 10)(s + 1)

onde Ko = 70. Este ganho resulta na resposta ao degrau mostrada na figura 5.3.
Soluo: a funo transferncia do compensador de avano de fase para esta planta fica (baseado no exemplo 5.13 de [Franklin et al. (1994)]):
s+2
C(s) = 70
s + 10
Desta forma, os parmetros para a eq. (5.3) so a = 2, b = 10 e Ko = 70.

77

Root Locus

Root Locus
6

15

0.5

10

Imaginary Axis

2
7

0
2

5
0
5
0.5

6
25

10

4
0.5
20

15

10
Real Axis

15
12

10

(a) C(s) = (s + 2)/(s + 20)

6
4
Real Axis

(b) C(s) = (s + 2)/(s + 10)


Root Locus

8
7

7
0.5

C(s)=(s+2)/(s+20)
C(s)=(s+2)/(s+10)
C(s)=s+2

5
4
Imaginary Axis

Imaginary Axis

0.5

3
2
1
0
1
2
0.5
3
8

3
2
Real Axis

(c) C(s) = s + 2
Figura 5.2: Lugar das Razes para G (s) = 1/[s(s + 1)] e 3 casos de C(s).

Figura 5.3: Resposta ao degrau para G (s) = 1/[s(s + 1)] e C(s) = 70(s + 2)/(s + 10).

78

(a) Para a taxa de amostragem de 20 Hz, T = 0, 05 (segundos) e a eq. (5.3) pode ser simplificada para:
u(k + 1) = 0, 5u(k) + 70[e(k + 1) 0, 9e(k)]
ou:
u(k) = 0, 5u(k 1) + 70[e(k) 0, 9e(k 1)]
Colocando no formato de C(z) temos:
U(z) = 0, 5z 1 U(z) + 70[E(z) 0, 9z 1 E(z)]
trabalhando a expresso anterior obtemos:
U(z)[1 0, 5z 1 ] = 70E(z)[1 0, 9z 1 ]
C(z) =

U(z) 70(1 0, 9z 1 ) 70(z 0, 9)


=
=
E(z)
(z 0, 5)
(1 0, 5z 1 )

(b) Para a taxa de amostragem de 40 Hz, T = 0, 025 (segundos), a eq. (5.3) simplificada resulta em:
u(k + 1) = 0, 75u(k) + 70[e(k + 1) 0, 95e(k)]
ou:
u(k) = 0, 75u(k 1) + 70[e(k) 0, 95e(k 1)]
Colocando no formato de C(z) obtemos:
C(z) =

U(z) 70(1 0, 95z 1 ) 70(z 0, 95)


=
=
E(z)
(z 0, 75)
[1 0, 75z 1 ]

O cdigo no MATLAB para calcular a resposta contnua ao degrau fica:


>>
>>
>>
>>

num=70*[1 2 ]
den=conv ( [ 1 1 0 ] , [ 1 1 0 ] )
[ numcl , dencl ]= feedback ( num , den , 1 , 1 )
step ( numcl , dencl )

Que resulta no grfico mostrado na figura 5.3.


A figura 5.4 mostra o diagrama em blocos do sistema simulado usando tanto o compensador contnuo no
tempo (a) quanto o simulador discreto (b).

70
Step

Gain

(s+2)
(s+10)
Lead
Compensator

1
s2+s
Plant

(a)

fs=40 Hz (T=0.025)
70
Gain1

(z0.95)
(z0.75)
Discrete
Lead
Compensator

ZeroOrder
Hold

1
s2+s
Plant1

(b)

Figura 5.4: Simulao do compensandor do exemplo 5.2.2.

As respostas ao degrau para (a) T=0.05 e (b) T=0.025 aparecem na figura 5.5.

79

Scope

Resposta ao Degrau
1.4

1.2

1.2

Sada da Planta

Sada da Planta

Resposta ao Degrau
1.4

0.8
r(t)
Compensador Analgico
Compensador Digital

0.6
0.4
0.2
0
0

0.8
0.6
0.4

r(t)
Compensador Analgico
Compensador Digital

0.2
0.2

0.4

0.6
0.8
Tempo (seg)

1.2

0
0

1.4

(a) fs = 20 [Hz]

0.2

0.4

0.6
0.8
Tempo (seg)

1.2

1.4

(b) fs = 40 [Hz].

Figura 5.5: Respostas obtidos para o mtodo de discretizao de Euler.

5.3

Relao entre o plano-s e plano-z

A figura 5.6 mostra as linhas de mapeamento resultantes para valores constantes de e para valores
constantes de wn baseado na relao: z = e sT .

Obs.: Extrado de [Franklin et al. (1994), Cap. 8: Digital Control].

Figura 5.6: Frequencia natural (wn ) e fator de amortecimento () no plano-Z.

E a figura 5.7 mostra diferentes respostas no tempo resultantes para diferentes posies para um plo
em malha fechada.

80

Obs.: Extrado de [Franklin et al. (1994), Cap. 8: Digital Control].

Figura 5.7: Sequencias de tempo associadas com plos no plano-Z.

81

5.4

Mtodo de Tustin

Outro mtodo de discretizao tratar o problema como uma integrao numrica. Suponha que:
U(s)
1
= C(s) =
E(s)
s
o qual uma integrao. Assim sendo:
Z

kTT

u(kT) =

kT

Z
e(t)d t +

e(t)d t
kTT

pode ser reescrito como:


u(kT) = u(kT T) + rea entre e(t) sobre a ltima T

(5.4)

Para o mtodo de Tustin, a abordagem a cada passo do perodo de amostragem usar integraes trapezoidais que tentam aproximar e(t) atravs de uma linha direta entre dois instantes de amostragem. Reescrevendo u(kT) como u(k) e u(kT T) como u(k 1) para simplificar a escrita, transformamos a equao (5.4)
em:
T
u(k) = u(k 1) + [e(k 1) + e(k)]
2
tomando a transformadaZ da expresso anterior, obtemos:
!
1
U(z) T 1 + z 1
=
=
!
1
E(z) 2 1 z
2 1 z 1
T 1 + z 1
Para C(s) = a/(s + a), aplicando esta aproximao para a integrao resulta em:
a
D (z) =
!
2 1 z 1
+a
T 1 + z 1
Note que se substiturmos:
2 1 z 1
s=
T 1 + z 1

!
(5.5)

para cada ocorrncia de s em qualquer C(s), obtemos C(z) baseado na equao de integrao trapezoidal.
Este o chamado mtodo de transformao bilinear de Tustin [Franklin et al. (1994)]. A idia a de que
nos instantes amostrados, a transformao bilinear seja capaz de preservar o mesmo tipo (valor) da resposta
de um controlador contnuo no tempo. Em resumo este tipo de transformao usado para transformar um
compensador contnuo no tempo, C(s) na sua verso digital, C(z). Explicitamente a transformao bilinerar
de Tustin dada por:
2(z 1)
s=
(5.6)
T(z + 1)
e sua inversa dada por:


2
s+
T
z = 
(5.7)

2
s
T
T
1+ s
2
=
T
1 s
2
Quanto menor o intervalo de amostragem, T (maior taxa de amostragem), melhor o projeto de compensador contnuo no tempo tornado digital atravs da eq. (5.6) leva a um resultado mais prximo da resposta
que realmente seria obtida usando o compensador contnuo no tempo.
strm and Wittenmark (1990), propuseram um linha guia para selecionar o perodo de amostragem
ser adotado. A concluso dos mesmos a de que o valor de T em segundos, deve estar situado dentro da
faixa de 0, 15/M = 0, 026 at 0, 5/M = 0, 086, onde M corresponde a frequncia (rad/s) na qual o
diagrama de magnitude da resposta em cascata do compensador mais planta passa pelos 0 dB.

82

5.4.1

Exemplo1 : Equao de diferenas usando o Mtodo de Tustin

Voltando ao exemplo da seo 5.2.2 e usando taxa de amostragem de fs = 15 [Hz], podemos usar o
MATLAB para computar a aproximao de Tustin.
Soluo A forma contnua do compensador estudado na seo 5.2.2 era:
C(s) = 70

s+2
s + 10

Usando declaraes na linha de comandos do MATLAB, podemos fazer:


>> numc=70*[1 2 ] ;
>> denc =[1 1 0 ] ;
>> T=1/15;
>> C= t f ( numc , denc ) ;
>> zpk ( C )
Zero / po l e / gain :
70 ( s +2)

( s +10)
>> Cd=c2d ( C , T , t u s t i n )
Transfer function :
56 z 49

z 0.5
Sampling time : 0.066667
>> zpk ( Cd )
Zero / po l e / gain :
56 ( z 0.875)

( z 0.5)
Sampling time : 0.066667
>>

que produz:
C(z) =

56 49z 1
1 0, 5z 1

que pode ser transcrito para uma equao de diferenas resultando em:
u(k) = 0, 223u(k 1) + 70e(k) 59, 12e(k 1)
que similar a obtida usando o mtodo de Euler.

5.4.2

Exemplo2 : Projeto de Controlador Digital usando o Mtodo de Tustin

Seja um sistema (planta) descrito pela equao:


G (s) =

1
s(s + 6)(s + 10)

(5.8)

onde o projeto de um compensador por avano resultou num sistema compensado que opera com sobre
sinal mximo de 20% e um tempo de acomodao de 1,1 segundos. Defina a equao de diferenas que
corresponde ao compensador contnuo transformado para digital usando o mtodo de Tustin. A equqo do
compensador dada por:
1977(s + 6)
(5.9)
C(s) =
(s + 29, 1)
Soluo:
Com base na eq. (5.8) e (5.9) se percebe que a frequncia que corresponde 0 dB, M , para C(s)G (s), de
5,8 rad/s. Com base na linha guia proposta por (strm and Wittenmark (1990)), o menor valor recomendado
para T deveria estar na faixa de 0, 15/M = 0, 026 at 0, 5/M = 0, 086 segundos. Iremos adotar o valor de
T = 0, 01 segundos.
Substituindo a eq. (5.6) na eq. (5.9) com T = 0, 01 segundos, leva :
C(z) =

1778z 1674
z 0, 746
83

(5.10)

e a funo transferncia da planta usando sustentador de ordem zero (ZOH), com T = 0, 01 segundos resulta
em:
(1, 602 107 z 2 ) + (6, 156 107 z)(1, 478 107 )
(5.11)
z 3 2, 847z 2 + 2, 699z 0, 8521
As equaes anteriores podem ser obtidas usando o seguinte cdigo no MATLAB:
>>
>>
>>
>>

num=1;
den=p o l y ( [ 0 6 10]) ;
G= t f ( num , den ) ;
zpk ( G )
1

s ( s +10) ( s +6)
Continuous time zero / p ol e / gain model .
>> num_c=1977*[1 6 ] ;
>> den_c =[1 2 9 . 1 ] ;
>> C= t f ( num_c , den_c ) ;
>> zpk ( C )
1977 ( s +6)

( s +29.1)
Continuous time zero / p ol e / gain model .
>> %convertendo para controle digital
>> T = 0 . 0 1 ;
>> help c2d
c2d Converts continuous time dynamic system to d i s c r e t e time .
SYSD = c2d ( SYSC , TS , METHOD) computes a d i s c r e t e time model SYSD w i t h
sampling time TS t h a t approximates the continuous time model SYSC .
The s t r i n g METHOD s e l e c t s the d i s c r e t i z a t i o n method among the f o l l o w i n g :
zoh
Zero order hold on the i n p u t s
foh
Linear i n t e r p o l a t i o n of inputs
impulse
Impulse i n v a r i a n t d i s c r e t i z a t i o n
tustin
B i l i n e a r ( T u s t i n ) approximation .
matched
Matched pole zero method ( f o r SISO systems only ) .
The d e f a u l t i s zoh when METHOD i s omitted . The sampling time TS should
be s p e c i f i e d i n the time u n i t s o f SYSC ( see " TimeUnit " p r o p e r t y ) .
>> Cd=c2d ( C , T , t u s t i n ) ;
>> zpk ( Cd )
1777.7 ( z 0.9417)

( z 0.746)
Sample time : 0.01 seconds
D i s c r e t e time zero / p ol e / gain model .
>> %convertendo a planta para o mundo digital usando ZOH:
>> Gd=c2d ( G , T )
Gd =
1.602e07 z^2 + 6.156e07 z + 1.478e07

z^3 2.847 z^2 + 2.699 z 0.8521


Sample time : 0.01 seconds
D i s c r e t e time t r a n s f e r f u n c t i o n .
>> zpk ( Gd )
1.6016e07 ( z +3.586) ( z +0.2574)

( z 1) ( z 0.9418) ( z 0.9048)
Sample time : 0.01 seconds
D i s c r e t e time zero / p ol e / gain model .
>> ftma= s e r i e s ( C , G ) ;
%FTMA(s)
>> ftmad= s e r i r e s ( Cd , Gd ) ;
%FTMA(z) com T=0,01 (s)
>> f t m f=feedback ( ftma , 1 ) ;
%FTMF(s)
>> ftmfd=feedback ( ftmad , 1 ) ; %FTMF(z)
>> [ y , t ]= step ( f t m f ) ;
%resposta degrau, sistema contnuo
>> p l o t ( t , y )
>> [ yd1 , td1 ]= step ( ftmfd ) ;
>> hold on ;
>> s t a i r s ( td1 , yd1 , m )
>> legend ( FTMF ( s ) , FTMF ( z ) com T=0 ,01 )
>> t i t l e ( Resposta ao Degrau ) ;
>> x l a b e l ( Tempo ( s ) ) ;
>> y l a b e l ( y ^ * ( t ) )
>> g r i d

A resposta para entrada degrau para o sistema compensando mostrada na figura 5.8, que compara
as respostas do compensador contnuo no tempo versus compensadores digitais usando T = 0, 086 (s),
84

T = 0, 026 (s) e T = 0, 01 (s).

(a) Resposta ao degrau.

(b) Zoom sobre o grfico (a).

Figura 5.8: Respostas em malha-fechada para o exemplo 2.

5.5

Outras Transformaes Bilineares

Note que o mtodo de Tustin trata-se de um caso especfico da aplicao de um mtodo de transformao
bilinear do tipo:
as + b
z=
cs + d
e sua inversa:
d z + b
s=
cz a
A idia sempre buscar uma simples transformao capaz de atuar em ambos os lados (plano-s e plano-z)
atravs de algum mtodo de substituio direta [Nise (2012), Cap. 13: Digital Control Systems].
Por exemplo, a transformao bilinear:
z=

s+1
s1

e sua inversa:

s=

z +1
z 1

proposta por Kuo (1992) para aproximar razes presentes no interior do crculo unitrio |z| = 1 para o
semi-plano esquerdo do plano-s. No caso, esta transformao recebeu o nome de transformao-r.
Outro tipo de transformao bilinear a transformada-w onde:
=

1
ln (z)

que tenta transformar o crculo unitrio do plano-z para o eixo imaginrio de outro plano complexo [Kar
and Majhi]. Neste caso:
2 (z 1)
=
(5.12)
T (z + 1)
e su inversa:

2
+
T
2

T
1 + 2T
1 2T
85

(5.13)

que uma variao da proposta originria de [Ogata (1995), Cap. 4: Design of Discrete-Time Control Systems
by Conventional Methods]:
w +1
z +1
z=
e sua inversa:
w=
w 1
z 1

Em comum as ltimas 2 transformadas permitem realizar todo um projeto de controlador discreto usando
o mapeamento em frequencia, tal qual se fazia usando Diagramas de Bode quando estvamos no plano-s
(ou no mundo contnuo). Neste ltimo caso, estas transformadas permitem converter B oG (z) em B oG (w) e
lidar com o projeto do controlador tal qual se fazia antes usando Diagrama de Bode o que muda agora
que ao invs do Diagrama de Bode ser feito no plano-s realizado sobre o plano-w.

86

Apndice A

Equaes Auxiliares
A.1

Tabela de Derivadas
d
d
u(x)
[u(x)n ] = n u(x)n1
dx
dx
d
d
d
[u(x) v(x)] = u(x) v(x) + v(x) u(x)
dx
dx
dx
"
#
v(x) ddx u(x) u(x) ddx v(x)
d u(x)
=
d x v(x)
v(x)2

A.2

Equao do Segundo Grau


x 2 Sx + P = 0
(x x1 )(x x2 ) = 0
(a + b)2 = a2 + 2ab + b 2
(a b)2 = a2 2ab + b 2

A.3

Relaes de Euler
e j x + e j x
2
e j x e j x
sin(j x) =
2j

e j x + e j x = 2 cos(x)

cos(x) =

e j x e j x = 2j sin(x)

A.4

Progresso Geomtrica
S n = a + aq + aq 2 + . . . + aq n1

Sn =

n1

aq n =

i=0

S =

i=0

aq n =

a aq n
1q

a
,
1q

87

se

|q| < 1

A.5

Definio da Transformada Z

Seja f (t) o resultado de do sinal contnuo f (t) discretizado no tempo por um trem de impulsos T (t) ocorrendo cada instante T de amostragem:
f (t) =

f (kT) (t kT) = f (t) T (t)

k=0

Ento a Transformada de Laplace do sinal discretizado fica:


L {f (t)} =

f (kT) e T s

k=0

A transformada Z o resultado da transformao:


z = eT s
onde:

1
ln z
T
ou, se temos a disposio as amostras do sinal discretizado temos:
s=

F (z) =

f (kT) z k

k=0

A.6

Propriedades da Transformada Z

1.

Teorema/Propriedade
Z {a f (k) + b g(k)} = a F (z) + b G (z)

2.

Z {f (k + 1)} = z F (z) z f (0)

Nome (Comentrios)
Linearidade: Adio, subtrao e multiplicao por constante. Onde a e b so constantes.
Avano no Tempo

3.

Z {x(t nT)} = x n X(z)

Atraso no Tempo

n
o
Z e at x(t)

x(kT) e akT z k

k=0

4.

x(kT)(z e aT )k = X(z e aT )

Translao Complexa

k=0

5.

Z {f (t) g(k)} = F (z) G (z)

6.

f (0) = limz F (z)

7.

f () = limk f (k) = limz1

Convoluo:
frequncia

Multiplicao no domnimo

Teorema do Valor Inicial


(1 z 1 )F (z)

Teorema do Valor Final

88

A.7

Tabela de Transformadas Z

F (s)

f (t)

f (kT) ou f (k)

F (z)

(t)

(kT)

e KT s

(t kT)

(t kT)

z k

1
s

u(t)

u(k) ou 1

4
5

1
s2
2
s3

kT

t2

(kT)2

Funo Impulso
Funo Impulso deslocada no tempo

z
z 1
z
za
Tz
(z 1)2
T 2 z(z + 1)
(z 1)3

ak

3a

Obs.

Degrau Unitrio

Rampa

Parbola

5a

1
s3

1
(kT)2
2!

T 2 z(z + 1)
2 (z 1)3

5b

1
s4

1
(kT)3
3!

T 3 z(z 2 + 4z + 1)
6
(z 1)4

5c

1
sm

6
6a

1
s+a
1
(s + a)2

lim

(1)m1 m1

a (m 1)! a m1

e at

e akT

t e at

kT e akT

e akT

lim

(1)m1 m1

a (m 1)! a m1 (z e aT )

z
z e aT
T ze aT
(z e aT )2

Exponencial

Plos Mltiplos

6b

1
(s + a)3

1
(kT)2 e akT
2

T 2 aT z(z + e aT )
e
2
(z e aT )3

6c

1
(s + a)m

(1)m1 m1
(e akT )
(m 1)! am1

(1)m1 m1
z
(m 1)! am1 z e aT

a
s(s + a)

1 e akT

z(1 e aT )
(z 1)(z e aT )

7a
8
9

1 e at

1
(akT 1 + e akT )
a

s 2 (s + a)

s 2 + 2
s
s 2 + 2

sin t

sin kT

cos t

cos kT

10

(s + a)2 + 2

eat sin t

eakT

11

s+a
(s + a)2 + 2

e at cos t

e akT

Exponencial
Decrescente

z[ z(aT 1 + e aT ) + (1 e aT aT e aT ) ]
a(z 1)2 (z e aT )

Senide

z sin T
z 2 2z cos T

+1

z(z cos T)
+1

Cossenide

z 2 2z cos T

sin kT

ze aT sin T
z 2 2ze aT cos T + e 2aT

Senide
amortecida

cos kT

z 2 ze aT cos T
z 2 2ze aT cos T + e 2aT

Cossende
amortecida

89

90

Apndice B

Respostas temporais no Plano-Z


B.1

Casos de Plos Reais

Lembrando que:
Z 1

Percebe-se que:
Z 1


cz
0
z


cz
= c k
z

tanto mais rpido quanto:

|| 0

Podemos simular algumas respostas para diferentes posies de plos reais dentro do crculo unitrio no
plano-Z.:

(
Z 1

)
1z
=1
z 1)

Z 1

Z 1


1z
= 0, 7k
z 0, 7

Z 1


1z
= (0, 7)k
z + 0, 7

91

Z 1


1z
= 0, 5k
z 0, 5


1z
= (0, 5)k
z + 0, 5

(
Z 1

Z 1

)
1z
= 0, 2k
z 0, 2)


1z
= (0, 2)k
z + 0, 2

B.2

Caso de Plos Complexos

A figura B.1 ilustra o plano-z ressaltando diferentes fatores de amortecimento (), tempos de resposta (Ts )
normalizados e tempos de pico (Tp ) normalizados.

Obs.: Extrado de Nise (2012).

Figura B.1: Plano-z com referncias para diferentes valores de , Ts e Tp

92

Apndice C

Transformada Z - Uso do MATLAB


C.1

Transformada Z Inversa (Usando o MATLAB)

Como usar o MATLAB para realizar Transformadas Inversas de Z

Para ativar o symbolic toolbox necessrio antes de mais nada definir que variveis o MATLAB deve
tratar com simblicas. Por exemplo:
>> z=sym ( z )
z =
z
>>

e podemos tambm fazer:


>> k=sym ( k ) ;

teremos algo como:


>> whos
Name
Size
Bytes Class
ans
1x1
8 double array
k
1x1
126 sym o b j e c t
z
1x1
126 sym o b j e c t
Grand t o t a l i s 5 elements using 260 bytes
>>

Para realizar transformadas inversas de Z, simblicas, podemos usar a funo iztrans do Symbolic
Toolbox do MATLAB.
Exemplo1 : Seja: F (z) =

z
, descobrir f (kT).
z 2

No MATLAB faramos:
>> i z t r a n s ( z / ( z 2) )
ans =
2^n
>>

ou poderamos fazer:
>> i z t r a n s ( z / ( z 2) , k )
ans =
2^k
>>

O que ns d: f (kT) = 2k .
n o
Lembrando da tabela, temos que: Z ak =

z
.
za

Exemplo2 : Seja:
F (z) =

0, 5z
(z 1)(z 0, 5)

1 Necessrio o Symbolic Math Toolbox

93

determine f (kT).
Usando o MATLAB:
>> i z t r a n s ( 0 . 5 * z / ( ( z 1) * ( z 0 . 5 ) ) , k )
ans =
1 (1/2)^k
>>

ou seja, f (kT) = 1 1/2k = 1 0, 5k , que o resultado que se pode obter resolvendo este problema pelo mtodo
das fraes parciais:
F (z)
0, 5
A
B
=
=
+
z
(z 1)(z 0, 5) z 1 z 0, 5
resolvendo:
A = (z 1) F (z)|z=1

B = (z 0, 5) F (z)|z=0,5


(z 1) 0, 5

A=
(z 1)(z 0, 5) z=1
(z 0, 5) 0, 5

B=
(z 1)(z 0, 5)

z=0,5

0, 5
=1
1 0, 5
0, 5
B=
= 1
0, 5 1
A=

finalmente:
F (z)
1
1
=

z
z 1 z 0, 5

F (z) =
ou:

F (z) =

z
z

z 1 z 0, 5

Consultando a tabela de transformadas temos que:


f (kT) = 1 1k 1 (0, 5)k = u(k) 0, 5k

Exemplo3 : Seja:
Y(z) =

z +4
(z 1)(z 2)

obtenha y(kT):
Pelo mtodo da expanso em fraes parciais:
z +4
a
b
c
Y(z)
=
= +
+
z
z(z 1)(z 2) z z 1 z 2

z (z + 4)
4

a = z F (z)|z=0
a=
a=
=2
z(z 1)(z 2) z=0
(1)(2)

(z 1) (z + 4)
5

b = (z 1) F (z)|z=1 b =
b=
= 5
z(z 1)(z 2) z=1
(1)(1)

(z 2) (z + 4)
6

c = (z 2) F (z)|z=2 c =
c=
=3
z(z 1)(z 2) z=2
(2)(1)
Y(z) 2 (5)
3
= +
+
z
z z 1 z 2
Y(z) =
Lembrando da Tabela:

2z (5)z
3z
+
+
z
z 1 z 2


z
= ak
za


z
Z 1
= u(kT)
z 1
Z 1

temos ento que:


y(kT) = 2(k) 5 u(k) + 3 (2)k
Usando o MATLAB ficaria:
94

>> i z t r a n s ( ( z +4) / ( ( z 1) * ( z 2) ) , k )
ans =
2* charfcn [ 0 ] ( k ) 5+3*2^k
>>

ou simplesmente: y(kT) = 2(k) 5 u(k) + 3 2k .

Exemplo4 : Determine y(kT) para:


Y(z) =

z 3 2z 2 + 2z
(z 1)3

F (z) =

z 2 + z + 0, 25
(z 0, 5)2

Usando o MATLAB teramos:


>> i z t r a n s ( ( z^32*z^2+2*z ) / ( ( z 1) ^3) , k )
ans =
11/2*k +1/2* k^2
>>

ou simplesmente: y(kT) = 1

1
1
k + k2 .
2
2

Exemplo5 : Obter f (kT) para:

Resolvendo pelo mtodo dos resduos:


F (z) =

z 2 + z + 0, 25 (z + 0, 5)(z + 0, 5)
=
(z 0, 5)(z 0, 5)
(z 0, 5)2

Como so plos mltiplos:



i
1
d m1 h
m
k1
Residuo[pm ] =

(z pm ) F (z) z

(m 1)! d z m1
z=p

Ento:
Residuo[0,5(2) ]

#
"
2
k1
i
d
d h 2
2 (z + 0, 5) z
k1

(z 0, 5)
(z
+
z
+
0,
25)

z
=


dz
dz
(z 0, 5)2
z=0,5
z=0,5

h
i
d
z k+1 + z k + 0, 25z k1
dz
z=0,5

(k + 1)z k+11 + kz k1 + 0, 25(k 1)z k2 z=0,5

(k + 1)z k + kz k1 + 0, 25(k 1)z k2 z=0,5
h
i
z k (k + 1) + kz 1 + 1/4(k 1)z 2
z=0,5

 2 
 1
k
1
1
+ 4 (k 1) 21
(0, 5) (k + 1) + k 2

(0, 5)k [4k]

=
=
=
=
=

f (kT)

= 4k (0, 5)k
= 4k(0, 5)k

(C.1)

Mas...
f (0)

=
=
=

z 2 + z + 0, 25
lim 2
z z z + 0, 25

1 1z + 0,25

2
z

lim

0,25
1
z 1 +
z
z2

!
(C.2)

1
(C.3)
95

mas para k = 0 de f (kT) encontrado anteriormente (eq. (C.1)), obtermaos: f (0) = 0 que no bate com o
encontrado na (eq. C.2). Ento falta compensar (ajustar) para este termo inicial e assim f (kT) fica igual :
f (kT) = (k) + 4k(0, 5)k
Usando o MATLAB:
>> f = i z t r a n s ( ( z^2+z +0.25) / ( ( z 0 . 5 ) ^2) , k )
f =
charfcn [ 0 ] ( k ) + 4 * ( 1 / 2 )^k * k
>>

ou seja: y(kT) = (k) + 4

C.2

 k
1
k.
2

Sistemas com Sustentador de Ordem Zero [B0 G (z)]

Note que um sustentador de ordem zero pode ser modelado como:


B0 (s)

=
=
=

B0 (s)

S(s)
E(s)
n
o
L u(t) u(t T)
1 e T s

s
s
1 e T s
s

Mas agora quando associamos o sustentador a um processo, G (s), o sistema fica:


Antes (no plano-s):
S(s)
= B0 (s) G (s)
E(s)
agora que estamos no plano-z, isto , digitalizamos o sistema, ficamos com:


S(z)
= Z B0 (s) G (s)
E(z)
n
o
= Z B0 (s) G (s)
(
)
1 e T s
= Z
G (s)
s
(
)
( T s
)
G (s)
e
G (s)
= Z
Z
s
s
Se fizermos F (s) =

G (s)
s ,

temos:






Z B0 (s) G (s) = Z F (s) Z e T s F (s)

como e T s F (s) equivale a um deslocamento no tempo de f (t):


e T s F (s) f (t T)
ento:

e assim:



Z f [(k 1)T] = z 1 F (z)






Z B0 (s) G (s) = Z F (s) z 1 Z F (s)

ou simplesmente:
(

B0 G (z) = (1 z

que o mtodo que adotaremos daqui por diante.


96

G (s)
)Z
s

Apndice D

Respostas Tpicas de Sistemas de


2a-ordem
Seja um sitema de 2a -ordem cuja equao diferencial seja:
d2y
dy
+ 2n
+ 22n = 22n x
2
dx
dx
sua transformada de Laplace resulta em:
#
"
Y(s)
2n
G (s) =
ou
=
R(s)
s 2 + 2n s + 2n

G (s) =

b
s 2 + as + b

supondo o caso de razes complexas


p para o denominador de G (s), temos plos que se localizam em:
s = jd , ou s = n jn 1 2 ,
onde:
Im{s}
+ j!d

sin ()

n cos () = n ,
p
n sin () = n 1 2

!d

!n

,
Re{s}

cos () e
p
1 2 .
j!d X

!d



1
Note que quando este sistema submetido uma entrada degrau unitrio R(s) = , resulta em diferens
tes tipos de resposta ver figura D.1.

97

Obs.: Extrado de Nise (2012).

Figura D.1: Respostas tpicas para sistemas de 2a-ordem submetidos uma entrada degrau unitrio.

quando = 0 temos um dos plos sobre o eixo s = 0 resultando num sistema oscilatrio;
quando 0 < < 1, temos 2 plos complexos resultando num sistema sub-amortecido;
quando = 1 temos 2 plos reais resultando num sistema criticamente amortecido;

D.1

Sistemas com 0 < < 1

A resposta de um sistema de 2a-ordem, C(s) do tipo sub-amortecido, submetido uma entrada degrau,
resulta em:
K
2n
K2 s + K3
C(s) =
= 1+
s
s(s 2 + 2n s + 2n )
s 2 + 2n s + 2n
cuja expano em fraes parciais leva :

C(s) =

(s + n ) + p

p
n 1 2

1 2
(s + n )2 + 2n (1 2 )
98

(D.1)

A Transforma inversa de Laplace da eq. (D.1) produz:

 p

 p


n t
2
2
c(t) = 1 e
sin n 1 t
cos n 1 t + p
2
1
 p

1
en t cos n 1 2 t
= 1 p
1 2

.
onde: = tan p

1 2

Parmetros tpicos de sistema de segunda ordem


Baseado em G (s)

G (s) =

b
z 2 + ax + b

2n
s 2 + 2s + 2n

podemos extrair certos parmetros tpicos de um sistema de segunda ordem:


Frequncia natural de oscilao: n , corresponde a frequencia de oscilao do sistema
sem amor
tecimento (quando a parte imaginria dos plos, a = 0, com plos sobre o eixo j em: j b, n = b,
b = 2n .
Fator de Amortecimento: , plos complexos contm parte real: = a/2. A magnitude deste coeficiente modula o decaimento exponencial da senide amortecida:
=

Exponential decay frequency || a/2


=
=
Natural frequency
n
n

onde: a = 2n .
Tempo de Pico (Peak time): Tp , instante de tempo no qual ocorre o valor mximo de sada do sistema.
O Tempo do pico, TP , dado por:

TP =
p
n 1 2
Percentual de Sobrepasso (Percent Overshoot): %O S, quantidade de sobrepasso do sinal de sada
que excede o valor de regime estacionrio. O percentual de sobrepasso, %O S, previsto atravs de:



/ 1 2
%O S = e
100
ou, especificado o valor de %O S, pode-se determinar o fator de amortecimento, , atravs de:
= p

ln (%O S/100)
2 + ln2 (%O S/100)

E o seguinte codigo no MATLAB, permite calcular o valor de a partir do valor atriabuido para %O S:
>> OS=5; % percentual de sobrepasso fornecido em %
>> zeta=(-log(OS/100))/(sqrt(pi^2+(log(OS/100)^2)))
zeta =
0.6901
>>
Tempo de Assentamento (Settling time): Ts , tempo requerido para que as oscilaes fiquem abaixo de
2% da banda (regio) de assentamento do valor de regime estacionrio. O tempo de acomodao ou
assentamento (ou settling time), Ts , pode ser determinado atravs de:


p
ln 0, 02 1 2
4
Ts =
ou
Ts =
n
n
(Vlido para: 0 < < 0, 9)
99

Tempo de Subida (Rise time): Tr , tempo exigido para a sada variar entre 0,1 e 0,9 de seu valor final. E
finalmente o tempo de subida (rise time), Tr , pode ser determinado de:
Tr =

D.2

0, 6 + 2, 16
n

Relao entre posio do plo e sobrepasso (%OS)

% Grfico do RL no plano para diferentes valores de .

D.3

Relao entre posio do plo e Ts

% Grfico do RL no plano para diferentes valores de Ts .

D.4

Relao entre posio do plo e Tp

% Grfico do RL no plano para diferentes valores de Tp .

D.5

Relao entre posio do plo e

% Grfico do RL no plano para diferentes valores de .

100

Apndice E

Reviso Controladores Clssicos


E.1

Introduo

Quando trabalhamos com o projeto de um controlador normalmente estamos preocupados com:


Limitaes no ajuste de ganhos:
Ajustar somente o ganho proporcional conduz a uma resposta transitria determinada unicamente
pela posio original dos plos da planta no diagrama do Lugar das Razes (RL=Root Locus);
Desta forma se fica limitado a respostas que somente existem ao longo do RL original da planta.
Uma forma de resolver esta limitao aumentar a ordem do sistema ou compensar o sistema
com plos e zeros adicionais de modo que o sistema resultante (compensado) resulte num RL que
passe por plos de malha-fechada desejados para o sistema compensado dentro de uma faixa de
ganho desejvel.
Melhorar a resposta transitria do sistema em malha-fechada;
Reduzir o erro estacionrio (ou de regime permanente):
Podem ser usados compensadores de forma independente para melhorar as caractersticas do
erro em regime permanente.
Duas configuraes so possveis:
* Compensadores em Cascata ver figura E.1(a).
* Compensador na Malha de Realimentao (Feedback compensator) ver figura E.1(b).

Figura E.1: Configuraes possveis para controladores.

O projeto de controladores em cascata permite:


101

reduzir o erro em regime permanente;


melhorar a resposta transitria (acelerar o sistema);
Para tanto os seguintes controladores clssicos normalmente adotados so:
Controlador PI: objetivo principal: zerar o erro de regime permanente;
Controlador por Atraso de Fase (Lag): reduz o erro de regime permanente, mas no zera este erro;
Controlador PD:
Controlador por Avano de Fase:
Controlador PID:
Controlador por Atraso-Avano de Fase:

E.2

Melhorando o erro em regime permanente

H duas maneiras de reduzir o erro de regime permanente:


Uso de controlador PI;
Uso de controlador por Atraso de Fase (Lag).
O compensador PI (Proporcional-mais-Integral):
Usa um integrador puro (exige rede ativa, com amplificadores operacionais) para introduzir na malhaaberta, um plo na origem do planos.
Aumenta a ordem do sistema mas o erro reduzido para zero.
O controlador por Atraso de Fase (Lag):
Pode ser implementado atravs de uma rede passiva (no exige o uso de amplificadores operacionais)
para acrescentar um plo prximo da origem do planos.
No garante erro nulo em regime permanente, mas provoca uma reduo significativa no erro de regime
permanente.

E.3

Melhorando o Erro Estacionrio (PI)

A introduo do integrador anula o erro de regime permanente porm o acrscimo de um plo na origem
geralmente modifica o RL original do sistema (planta) ver figura E.2.

Material Incompleto
Falta Completar (13 May 2014)

102

a)
b)

Sistema original sem compensao.


Acrscimo de um plo na origem notar que a contribuio angular no ponto A j no mais de
180o (nem est sobre o RL).

Figura E.2: Anulando erro de regime permanente mas modificando o RL.

103

104

Apndice F

MATLAB: Comandos
abs(x)
angle(x)
atan(x)
atan2(y,x)
axis([xmin,xmax, ymin,ymax])
bode(G)
bode(G,w)
[theta,rho]=cart2pol(x,y)

[numd,dend]=c2dm(num,den,T)
BoG=c2d(G,T)
BoG=c2d(G,T,zoh)
Cd=c2d(C,T,tustin)

clc
clear
dcgain(G)
end
exp(a)
FTMF=feedback(G,H)
FTMF=feedback(G,H,sign)

get(BoG)
grid
hold on
hold off
imag(polo)
a=input(str)
inv(P)
length(P)
log(x)
log10(x)
margin(G)
max(P)

Obtm o valor absoluto de x.


Calcula o ngulo em radianos.
Calcula arctan(x) (sem levar em conta o quadrante resultante).
Determina o ngulo (tan1 (y/x )) correto levando em conta o quadrante onde est
localizado o par (x, y).
Fixa os limites de um grfico no eixo X e Y.
PLota o diagrama de Bode para a funo G (s).
Plota o diagrama de Bode para a funo G (s) para a faixa de frequncias contidas
no vetor w.
Realiza a transformao polar do ponto (x, y) do plano cartesiano para o plano polar
resultando num vetor de amplitude rho com ngulo de inclinao de theta (radianos): (x, y) .
Converte num(s)/d en(s) para numd(z)/d end(z) usando Sustentador de Ordem Zero (ZOH) e
perodo de amostragem T.
Converte a transfer function G (s) para B oG (z) usando o Sustentador de Ordem
Zero (ZOH) com perodo de amostragem fixo em T (segundos).
Converte a transfer function G (s) para B oG (z) usando o Sustentador de Ordem
Zero (ZOH) com perodo de amostragem fixo em T (segundos).
Converte a transfer function C(s) para Cd(z) usando o mtodo de Tustin (transformao bilinear do plano-s para o plano-z), usando perodo de amostragem T (segundos). til para digitalizar um compensador projetado no domnio frequncia,
por exemplo, de avano-atraso (Lead-Lag) para o mundo digital.
Limpa a janela de comandos do MATLAB e reposiciona cursor para o topo desta
janela.
Limpa as variveis da rea de trabalho (zera a memria de trabalho do MATLAB).
Encontra o ganho DC (esttico) para G (s) (isto , s = 0) ou para G (z) (isto , z = 1).
Dentro de uma rotina (arquivo .m) do MATLAB determina o fim do lao de repetio
ou do bloco de comparao.
Obtm e a .
G
Encontra F T MF =
considerando realimentao negativa.
1 + GH
G
Encontra F T MF =
. sign determina o tipo de realimentao adotado, por
1 GH
padro o MATLAB considera 1 (realimentao negativa), mas o usurio pode especificar uma realimentao positva se for o caso.
Apresenta na tela os atributos (ou propriedades) de um objeto no MATLAB. Se BoG
for do tipo transfer function retorna os atributos deste tipo de objeto.
Acrescenta quadriculado nas janela grfica atualmente ativa no MATLAB.
Ativa sobreposio dos prximos comandos grficos na janela atualmente ativa.
Desliga sobreposies de grficos numa mesma janela grfica.
Recupera a parte imaginria do polo.
Permite a entrada (digitao pelo teclado) de valores para a varivel a, acompanhado da mensagem str (string).
Encontra a inversa da matrix P (quando h).
Retorna a dimenso do vetor P.
Calcula o logaritmo natural de x (ou loge x).
Calcula o logartimo na base de x (ou log10 x).
Encontra as margens de ganho e de fase para a transfer function G (s).
Encontra o valor mximo contido dentro do vetor P.

105

nichols(G,w)
nyquist(G,w)
[num,den]=ord2(wn,z)
plot(t1,y1, t2,y2, t3,y3)
pole(G)
den=poly([-p1 -p2 -p3])
polyval(P, a)
real(polo)
residue(numf,denf)
[K,polos_mf]=rlocfind(FTMA)

rlocus(FTMA, K)

roots(den)
FTMA=series(C,BoG)

sgrid(z,wn)
zgrid(z,wn)
sin(x)
sqrt(a)
step(G1,G2,. . . Gn)
subplot(xyz)

text(x,y,str)
[K,p,z]=tf2zp(numg,deng)

Desenha o diagrama de Nichols para a transfer funcion G (s) sobre a faixa de


frequncias determinada pelo vetor w. O parmetro w opcional.
Desenha o diagrama de Nyquist para a transfer funcion G (s) sobre a faixa de
frequncias determinada pelo vetor w. O parmetro w opcional.
1
i.
Cria um sistema de segunda-ordem, G (s) = h
2
s + 2n s + 2
Plota x1 versus t1 , y2 versus t2 , y3 versus t3 no mesmo grfico.
Encontra os plos para a transfer function G (s).
Fomra o polinmio d en = (s+p1 )(s+p2 )(s+p3 ) (s para o plano-s, ou z para o plano-z,
depende o uso posterior de den.
Substitui o valor a sobre o polinmio P.
Encontra as partes reais do vetor polo.
numf (s)

Encontra os resduos (expano em fraes parciais) para F (s) = d enf (s) .


Permite uma seleo interativa de um ponto do diagrama do lugar das razes (no
desenhado por esta funo) para a transfer function F T MA, retornando o ganho
de malha fechada K e a correspondente localizao dos plos de malha fechada
polos_mf.
Gera o grfico corresponde ao diagrama do Lugar das Razes (root locus) para a
transfer function FTMA dentro da faiza de valores de ganho (para malha fechada)
especificados pelo vetor K. O parmetro K opcional.
Encontra as razes do polinnimo (vetor) den.
Determina a transfer function resultante da lgebra de blocos em srie para:
F T MA(z) = C(z)B oG (z) (neste caso no plano-z, mas serve igualmente para o planos).
Sobrepe linhas guia de z() e wn(n ) sobre um diagrama de lugar das razes
neste caso no plano-s (especificamente).
Sobrepe linhas guia de z() e wn(n ) sobre um diagrama de lugar das razes
neste caso no plano-z (especificamente).
Encontrao sin(x). x em radianos.
Calcula a.
Plota as respostas das transfer function G 1 at G n num nico grfico. Os parmetros G2 at Gn so opcionais.
Organiza uma janela grfica no formato da matriz especificado pelos valores de
x(linhas) y(colunas), deixando a mesma pronta para aceitar os prximos comandos grficos partir da clula z.
Acrescenta o texto (string) str na janela grfica atualmente ativa, na posio (x, y).
numg
Encontra o ganho dc (esttico), (K), plos (p) e zeros (z) de G (s) = deng
. Esta funo
no funciona sobre objetos transfer functions do MATLAB.
num(z)

C=tf(num,den,T)

Cria um objeto transfer function C(z) = den(z) , neste caso, no plano-z j que foi fornecido o terceiro parmetro T, perodo de amostragem, adotado para esta funo
transferncia. O terceito parmetro (T) opcional e quando no fornecido cria uma
funo transferncia no plano-s. O MATLAB agrega aos atributos do objeto transfer
function a informao sobre se a mesma trabalha no plano-s ou no plano-z. Este
conhecimento o que permite o MATLAB executar de forma diferenciada (aplicar
diferentes mtodos de resoluo em) comandos como step ou rlocus conforme a
transfer function se encontre sobre o plano-s ou plano-z.

[num,den,T]=tfdata(FTMA,v)

Extra o numerador (num) e denominador (den) da transfer function FTMA(z) = den(z) ,


neste caso, no plano-z, j que tambm retornar o perodo de amostragem previsto
para esta funo de transferncia, T (segundos). O terceito parmetro de retorno
para esta funo (T) no ser necessrio se a transfer function em questo trabalhar sobre o plano-s.
Coloca o ttulo (string) str na janela grfica atualmente ativa.
Coloca a (string) str no eixo x da janela grfica atualmente ativa.
Coloca a (string) str no eixo y da janela grfica atualmente ativa.

title(str)
xlabel(str)
xlabel(str)
zpk(numg,deng
zpk(BoG)

C=zpk(z,p,k,Ts)

num(z)

numg(s)

Mostra na janela de comandos, o ganho, plos e zeros da funo G (s) = deng(s)


neste caso, esta funo no est trabalhando com transfer function.
Mostra na janela de comandos, de forma fatorada, o ganho, plos e zeros da funo B oG (z) neste caso, o parmetro nico de entrada BoG deve ser uma transfer
function.
Cria um objeto do tipo transfer function C(z) cujo numerador formado pelos zeros fornecidos pelo vetor z, o denominador formado pelos plos especificados no
vetor p, obedecendo ao ganho dc (esttico) k e trabalhando com perodo de amostragem de Ts (segundos). Se o quarto parmetro (de entrada) no for fornecido (o
Ts neste caso), o MATLAB entende que deve criar uma transfer function no plano-s.

106

lsim(sys,u,t)

[y,t]=lsim(sys,u,t)

Simula no tempo contnuo a resposta de um sistema (contnuo ou discreto), sys


(transfer function) linear para a entrada arbitrria u (tantas colunas quantas entradas possuir o sistema sys) no tempo contnuo t (em segundos).
Exemplo: t = 0:0.01:5; u = sin(t); lsim(sys,u,t)
Simula no tempo contnuo a resposta de um sistema (contnuo ou discreto), sys
linear para a entrada arbitrria u no tempo contnuo t (em segundos), retornando
a resposta do sistema na varivel y nos instantes de tempo t.
Exemplo:
>> t=0:0.1:10;
>> alpha=2;
>> ramp=alpha*t;
% Gerando sinal de entrada
>> model=tf(1,[1 20 3]);
% Funo transferncia do sistema
>> [y,t]=lsim(model,ramp,t);
>> plot(t,y)

107

108

Referncias Bibliogrficas
Katsuhiko Ogata.
Discrete-Time Control Systems, 2nd. ed.
Upper Saddle River: Prentice Hall,
1995.
URL http://een.iust.ac.ir/profs/Jahed/digital%20controll/e%20book/discrete-time_
control_systems.pdf. (Acessado em 14 set 2013). Biblioteca da UPF: Nmero de Chamada: 681.5 O34di
2.ed.-1995 (2 exemplares).
J. A. Cadzow. Discrete Time Systems: An Introduction with Interdisciplinary Applications. Prentice Hall International, 1973.
Benjamin C. Kuo. Digital Control Systems, 2nd. ed. Sauders College Publishing / Harcourt Brace Jovanovich
College Publisher, 1992. Biblioteca da UPF: Nmero de Chamada: 681.51 K96d 2.ed.-1992 (1 exemplar).
Charles L. Phillips and H. Troy Nagle. Digital Control Systems Analysis and Design, 2nd. ed. Prentice-Hall
International Inc., 1994.
Indrani Kar and S. Majhi. Course: Digital control systems. http://nptel.iitm.ac.in/courses/108103008/
PDF/module4/m4_lec2.pdf. Dept. of Electronics and Electrical Eng., Indian Institute of Technology
Guwahati, Guwahati, Assam, India.(Acessado em 7 nov 2013).
Norman S. Nise. Control Systems Engineering 6th. ed. LTC, 2012. Biblioteca da UPF: Nmero de Chamada:
681.5 N724e 6.ed.-2012 (4 exemplares).
Gene F. Franklin, J. David Powell, and Abbas Emami-Naeini. Feedback Control of Dynamic Systems. AddisonWesley Publishing Company, 1994. Biblioteca da UPF: Nmero de Chamada: 681.51 F831f 3.ed. 1994 (2
exemplares).
Karl Johan strm and Bjrn Wittenmark. Computer Controlled Systems: theory and design, 2nd. ed. Prentice
Hall International, 1990. Biblioteca da UPF: Nmero de Chamada 681.51 A859c 2.ed.-1990 (1 exemplar).

109

ndice Remissivo
E(z), 6
F T MF (z), 6
F T MF (z),H(s), 11
Kp , 6
Ganho de posio, 6
Kv , 9
Ganho de velocidade, 9
Kv , constante de erro de velocidade, 50
jerks, 64
BIBO estvel, 11
Controlador Dead-Beat:Efeitos, 64
Critrio de Estabilidade
Mtodo de Jury, 15
Routh-Hurwitz, 15
Diagrama do Lugar das Razes, 20
Efeitos do Perodo de Amostragem, 18
Estabilidade, 11
Ganho Mximo, 19
H(s), 5
conversor de unidades, 5
Integrao retangular, 6
Integrao trapezoidal, 7
MATLAB
iztrans, 93
sym, 93
Transformada Inversa de Z, 93
Variveis Simblicas, 93
Regras para RL, 21
Respostas Plos Reais em Z, 91
RL, 20
Tabela Resumo Teoria de Erros, 9
Teorema Valor Final, 88
Transformao bilinear
Tustin, 82

110

Você também pode gostar