Você está na página 1de 40

ESCOLA SUPERIOR NUTICA INFANTE D.

HENRIQUE
DEPARTAMENTO DE ENGENHARIA MARTIMA

INSTRUMENTAO E CONTROLO

INTRODUO
AO
CONTROLO DIGITAL
(ATRAVS DO MATLAB)

Elementos coligidos por:

Prof. Lus Filipe Baptista

E.N.I.D.H. 2012/2013

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

Controlo Digital atravs do Matlab


ndice:
Introduo
Circuito equivalente ao retentor de ordem-zero
Converso atravs da funo c2dm
Estabilidade e resposta transitria

Os comandos chave em Matlab usados nestes apontamentos so: c2dm, pzmap, zgrid, dstep
stairs, rlocus
Nota: Os comandos do Matlab da Toolbox de Controlo esto escritas em "letra mais clara".

Nota importante:
O objectivo destes apontamentos de Introduo ao Controlo Digital o de mostrar como
funcionam os sistemas discretos, representados na forma de funo de transferncia ou de
espao de estados, bem como o modo como se podem analisar e implementar sistemas de
controlo digital, atravs da Toolbox de Controlo do MATLAB (Control Systems
Toolbox). Estes apontamentos, constituem uma adaptao das lies disponveis na
referncia [1]: Control tutorials for Matlab, Universidade de Carnegie-Melon, EUA.
(http://www.engin.umich.edu/group/ctm/)

1. Introduo
A Fig.1 representa um sistema tpico de controlo contnuo com realimentao. Conforme
estudado no Captulo 8, os controladores contnuos podem ser construdos recorrendo
tecnologia pneumtica ou electrnica, atravs dos respectivos circuitos analgicos amplamente
divulgados na literatura.

Fig.1. Diagrama de blocos do esquema de controlo contnuo.


Luis Filipe Baptista ENIDH/MEMM

9.1

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

O controlador contnuo ou analgico representado pelos elementos inseridos no rectngulo a


tracejado, pode ser substitudo por um controlador digital. As diferenas bsicas entre estes dois
controladores devem-se ao facto de o sistema digital funcionar com sinais discretos (ou amostras
do sinal contnuo medido pelo transdutor de medida) em vez dos sinais contnuos tpicos do
controlador analgico.

Fig.2. Diagrama de blocos de um sistema de controlo digital.


Os sinais analgicos e digitais do esquema da Fig.2, podem ser representados nos grficos da
figura 3.

Fig.3. Diversos tipos de sinais num anel de controlo digital.

1.1. Circuito equivalente ao retentor de ordem zero (Zero-order hold)


No diagrama do sistema de controlo digital (Figuras 2 e 4), podemos ver que este contm
elementos analgicos e digitais. Quando se implementa um sistema de controlo digital,
conveniente encontrar uma equivalncia digital da componente contnua de modo a que
tenhamos que lidar s com funes digitais.
Para implementar esta tcnica, vamos considerar novamente a seguinte parte do sistema de
Luis Filipe Baptista ENIDH/MEMM

9.2

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

controlo digital representado na Fig.4-a) a tracejado, a qual est representada em separado na


Fig.4-b).

a)

b)
Fig.4a) Esquema de controlo digital. b) Bloco de converso D/A, processo e aquisio A/D.
O relgio (clock) ligado aos conversores A/D e D/A (D/A e A/D converters) fornece um pulso
para cada T segundos. Deste modo, os conversores D/A e A/D enviam apenas os respectivos
sinais quando chega o sinal pulsado de relgio. O objectivo desta aco, o de fazer com que
Hzoh(z) receba apenas amostras do sinal de entrada u(k) e envie apenas sinais de sada y(k)
sincronizados com o sinal de relgio; deste modo Hzoh(z) permite realizar uma funo de
transferncia discreta.
A filosofia do projecto portanto a seguinte: pretende-se encontrar uma funo discreta Hzoh(z)
de tal modo que para um dado valor de entrada constante para o sistema contnuo H(s), a amostra
da sada do sistema contnuo seja igual ao da sada discreta. Para isso, necessrio manter
constante o sinal de entrada u(k) durante o intervalo de amostragem. Assim, vamos supor que o
sinal u(k) representa a amostra do sinal de entrada. Existem tcnicas que permitem obter a
amostra u(k) e manter ou reter (hold) o sinal de modo a produzir um sinal contnuo uhat(t). O
grfico da Fig.5, mostra que o sinal uhat(t) mantido constante para u(k) no intervalo [kT ;
(k+1)T]. Esta operao de reteno de uhat(t) com um valor constante durante o intervalo de
amostragem designada por "reteno de ordem zero" ou " zero-order hold - zoh".

Luis Filipe Baptista ENIDH/MEMM

9.3

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

Fig.5. Resposta de um sinal com retentor de ordem zero ("zoh -> zero order hold").
O sinal uhat(t) tratado por um retentor de ordem zero introduzido em H2(s) e no conversor A/D
de modo a produzir a sada y(k), que ir ser igual amostra do sinal contnuo y(t). Esta operao
equivalente a introduzir o sinal u(t) em H(s) de modo a obter o sinal contnuo de sada do
processo y(t).

Fig.6. Evoluo dos sinais num sistema digital e contnuo equivalente (em baixo).
Seguidamente, vamos redesenhar o diagrama esquemtico do sistema de controlo digital,
colocando Hzoh(z) a substituir a parte contnua do sistema (Fig.4b).

Fig.7. Diagrama de blocos simplificado do esquema de controlo digital.


Assim, colocando Hzoh(z) no esquema, podemos estudar, analisar e projectar sistemas de
controlo digital, utilizando para tal apenas funes de transferncia discretas.
Luis Filipe Baptista ENIDH/MEMM

9.4

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

Note: Existem certos casos em que a resposta da funo discreta no igual resposta da
correspondente funo contnua devido implementao do circuito retentor. Para informao
adicional, veja o Captulo Efeito de atraso associado ao retentor.

1.2. Converso contnua-discreta usando a funo c2dm


Existe uma funo do Matlab designada por c2dm que converte um dado sistema contnuo (na
forma de funo de transferncia ou na forma de espao de estados) para sistema discreto
utilizando um retentor de ordem zero, tal como foi explicado anteriormente. Os comandos
bsicos para aplicar a funo c2dm, so
[numDz,denDz] = c2dm (num,den,Ts,'zoh')
[F,G,H,J] = c2dm (A,B,C,D,Ts,'zoh')

O intervalo de amostragem (Ts em seg./amostra) deve ser inferior a 1/(30*BW), em que BW a


frequncia mxima da largura de banda do sistema de controlo em anel fechado.
1.2.1. Funo de transferncia
Suponha que tnhamos a seguinte funo de transferncia contnua (sistema massa-molaamortecedor)
X ( s)
1
=
2
F ( s ) Ms + bs + k

M = 1 kg

b = 10 N.s/m

k = 20 N/m

F(s) = 1

Considerando que a frequncia mxima da largura de banda do sistema em anel fechado


superior a 1 rad/seg., vamos escolher um intervalo de amostragem (Ts) igual a 1/100 segundo.
Seguidamente, cria-se uma nova "m-file" e escrevem-se os seguintes comandos
M=1;
b=10;
k=20;
num=[1];
den=[M b k];
Ts=1/100;
[numDz,denDz]=c2dm(num,den,Ts,'zoh')

Executando a "m-file" em ambiente MATLAB, iremos obter os vectores numDz e denDz


numDz =
1.0e-04 *
Luis Filipe Baptista ENIDH/MEMM

9.5

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

0.4837

0.4678

1.0000

-1.9029

0.9048

denDz =

A partir destes vectores, podemos representar a funo de transferncia discreta


X ( z ) 0.0001(0.4837 z + 0.4678)
=
F ( z)
z 2 1.9029 z + 09048

Note: Os vectores do numerador e do denominador so representados por ordem decrescente das


potncias de z. Para mais detalhes acerca da representao de funes de transferncia em
MATLAB, consulte a seco Representao em MATLAB.

1.2.2. Estabilidade e resposta transitria


Para sistemas contnuos, sabemos que determinados comportamentos resultam das diferentes
localizaes dos polos no plano s ou plano de Argand. Por exemplo, um sistema instvel
quando qualquer polo estiver localizado no semi-plano direito, ou seja tiver parte real positiva.
Para sistemas discretos, podemos analisar o comportamento dos sistemas atravs das diferentes
localizaes dos polos no plano z. As caractersticas do plano s esto relacionadas com o plano
z, atravs da seguinte expresso

z = e Ts

T = Intervalo de amostragem (segundos/amostra)

s = Localizao no plano complexo (s)

z = Localizao no plano discreto (z)

A Fig.8, representa o plano z, no qual esto representadas as linhas de factor de amortecimento


( ) constante e frequncia natural ( n ) constante, convertidas do plano s para o plano z, atravs
da expresso z = e .
Ts

Luis Filipe Baptista ENIDH/MEMM

9.6

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

Fig.8. Plano z com linhas de amortecimento constante e frequncia natural constante.


No plano z, os limites de estabilidade deixam de ser o eixo imaginrio, vlidos para sistemas
contnuos, e passam a ser definidos pelo crculo de raio unitrio |z|=1. O sistema estvel
quando todos os polos estiverem localizados no interior do crculo de raio unitrio, e instvel
quando qualquer polo estiver fora desse mesmo crculo.
Para analisar a resposta transitria a partir da localizao dos polos no plano z, as seguintes
equaes definidas para sistemas contnuos, continuam a ser vlidas para sistemas discretos

n
n

4.6
Ts

1.8
Tr
(ln M p / ) 2
1 + (ln M p / ) 2

em que

= Factor de amortecimento

n = Frequncia natural (rad/seg.)

Ts = Tempo de estabelecimento

Tr = Tempo de crescimento

M p = Mximo sobre-impulso

Luis Filipe Baptista ENIDH/MEMM

9.7

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

Nota importante: A frequncia natural ( n ) no plano z tem unidades de rad/amostra; no


entanto, quando utilizar as equaes acima representadas, n deve vir em unidades de rad/seg.

Suponha que temos a seguinte funo de transferncia discreta


Y (k )
1
= 2
F ( z ) z 0.3z + 0.5

Cria-se uma nova "m-file" e escrevem-se os seguintes comandos. Executa-se a "m-file" no


ambiente MATLAB, e obtm-se o seguinte grfico com as linhas de factor de amortecimento
constante e frequncia natural constante
numDz=[1];
denDz=[1 -0.3 0.5];
pzmap(numDz,denDz)
axis([-1 1 -1 1])
zgrid

Fig.9. Localizao dos polos no plano z.


A partir deste grfico, podemos ver que os polos esto localizados aproximadamente sobre a
frequncia 9 / 20T (rad/amostra) e com um factor de amortecimento de 0.25. Considerando que
temos um intervalo de amostragem de 1/20 segundo (que conduz a um valor de n = 28.2
rad/seg.) e utilizando as trs equaes acima indicadas, podemos verificar que o tempo de
crescimento de 0.06 seg., o tempo de estabelecimento de 0.65 seg., e o sobre-impulso
mximo de 45% (0.45 acima do valor da resposta em regime estacionrio). Seguidamente,
vamos obter a resposta ao degrau e verificar se estes valores esto correctos. Assim,
acrescentam-se os seguintes comandos "m-file" j utilizada para este exemplo, e volta-se a
executar o ficheiro no ambiente MATLAB. Deste modo, obtm-se a seguinte resposta
Luis Filipe Baptista ENIDH/MEMM

9.8

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

[x] = dstep (numDz,denDz,51);


t = 0:0.05:2.5;
stairs (t,x)

Fig.10. Resposta digital a uma entrada degrau.


Conforme podemos verificar pelo grfico, tanto o tempo de crescimento como o tempo de
estabelecimento e o mximo sobre-impulso, esto dentro dos valores esperados. Assim,
conseguimos provar que podemos utilizar a localizao dos polos no plano z e as trs equaes
anteriores para analisar a resposta transitria de sistemas discretos.

Luis Filipe Baptista ENIDH/MEMM

9.9

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

2. Efeito de atraso associado ao retentor (zoh)


Quando implementado um sistema de controlo digital, o efeito que tem maior impacto, o do
atraso associado utilizao do retentor. Assim, de modo a analisar este efeito vamos escrever os
seguintes comandos numa "m-file" e executar o ficheiro no ambiente MATLAB:
num=[1];
den=[1 10 20];
numDz=[0.0107 0.0055];
denDz=[1 -0.8106 0.1353];
t=0:0.2:2;
step (num,den,t)
%desenha a resposta da sada continua
hold
[x]=dstep (numDz,denDz, 11);
plot (t,x,'ro')
%desenha a resposta da sada discreta
hold off

Fig.11. Resposta a um degrau (contnuo e digital).


A partir deste grfico, podemos ver que a resposta discreta exactamente igual resposta
contnua, para cada intervalo de amostragem. Isto verdade, porque a entrada uma funo
degrau, ou seja uma funo invariante no tempo. Se a entrada fosse uma funo contnua
variante no tempo, no iramos obter uma resposta igual da funo contnua. Este
comportamento pode ser observado se alterarmos a entrada para o sistema, ou seja passarmos
da funo degrau para a funo impulso. Assim, na "m-file" anterior, se alterarmos as funes
step para impulse e dstep para dimpulse e executarmos novamente o ficheiro no ambiente
MATLAB, iremos obter o seguinte grfico

Luis Filipe Baptista ENIDH/MEMM

9.10

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

Fig.12. Resposta entrada impulso (contnuo e digital).


A partir deste grfico, podemos ver que a sada discreta no coincidente com a da sada
contnua. A resposta discreta est atrasada ("lagged") durante um certo perodo de tempo.

Fig.13. Efeito do atraso do sinal discreto relativamente ao sinal contnuo.


Assim, mesmo que a resposta discreta fosse coincidente com a resposta contnua (Fig.13),
podemos verificar que o sinal mdio uBar(t) est atrasado relativamente ao sinal contnuo
u(t) em cerca de T/2 segundos. Assim, se baixarmos o valor do intervalo de amostragem (T, em
seg./amostra), este efeito torna-se pequeno e uBar(t) aproxima-se bastante do sinal contnuo u(t),
pelo que este efeito deixa de ser significativo.

Luis Filipe Baptista ENIDH/MEMM

9.11

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

3. Anlise da resposta ao degrau


Para desenhar o grfico da resposta ao degrau de um sistema discreto, vamos utilizar duas
funes diferentes do MATLAB, ou seja as funes dstep e stairs. A funo dstep ser usada
para obter o nmero de pontos das amostras da sada (N), em que N um valor escolhido pelo
utilizador. A funo stairs constri um grfico de barras ("stairstep graph") dos vectores de dados
fornecidos, ou seja o vector de tempos [t] e o vector de amplitude de sada [x].

3.1. Funo de transferncia

Em primeiro lugar, vamos introduzir a forma de utilizar estas duas funes de modo a obter a
resposta ao degrau de uma funo discreta. Suponha que temos a seguinte funo discreta
H zoh ( z ) =

0.05 z + 0.05
z 2 1.6 z + 0.7

Vamos utilizar a funo dstep de modo a obter o vector de pontos das amostras. Assim, cria-se
uma nova "m-file" e escrevem-se os seguintes comandos
numDz=[0.05 0.05];
denDz=[1 -1.6 0.7];
IU=1;
%Valor de entrada
N=101;
[x] = dstep (IU*numDz,denDz, N)

Executa-se seguidamente a "m-file" e obtm-se um vector [x] com 101 amostras.


Deve-se salientar que a funo dstep no tem em considerao o vector de tempos [t]; assim,
considera apenas o nmero de pontos do vector de tempos (N). Com efeito, se no utilizar o
valor de N na funo dstep(numDz,denDz), a resposta [x] ir ser funo das amostras (k), e no
funo do tempo (NOTA: Tente esta opo e verifique os resultados).
Para obter a resposta em funo do tempo, em primeiro lugar necessrio considerar a relao
entre o nmero de amostras e o intervalo de amostragem (T). Assim, vamos considerar que o
sistema de controlo digital dado tem um intervalo de amostragem em unidades de seg./amostras.
Utilizando este sistema de controlo, ir levar t*(N-1) segundos para obter N amostras. Por
exemplo, se acima forem obtidas 101 amostras do sistema com um intervalo de amostragem de
0.05 seg./amostra, o tempo total de simulao ir ser de 5 segundos. Se executar a funo dstep
ir obter um grfico com o seguinte aspecto

Luis Filipe Baptista ENIDH/MEMM

9.12

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

Fig.14. Resposta ao degrau (Funo dstep).


A funo stairs relaciona os pontos das amostras de modo a representar a sada y(k) precedida
pelo retentor de ordem zero. Vamos usar a funo stairs para relacionar os pontos das amostras.
Assim, adicionam-se os seguintes comandos anterior "m-file" e executa-se novamente o
ficheiro. Deste modo, ir obter-se o seguinte grfico de resposta ao degrau
t=0:0.05:5;
stairs (t,x)

Fig.15. Resposta ao degrau (Funo stairs).

Luis Filipe Baptista ENIDH/MEMM

9.13

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

4. Equaes s diferenas e representao de sistemas discretos


4.1. Equaes s diferenas

Os sistemas contnuos so descritos por equaes diferenciais, enquanto que os sistemas


discretos so descritos atravs de equaes s diferenas. A partir do diagrama esquemtico de
controlo digital (Fig.1), podemos observar que as equaes s diferenas descrevem a relao
entre o sinal de entrada e(k) e o sinal de sada u(k). Vamos supor que estvamos interessados em
conhecer o sinal k do sinal de sada u, ou seja u(k). Assim, para obter este sinal de sada temos
que calcular uma funo que tenha em considerao os sinais anteriores de e(0) at e(k) e os
sinais de sada desde u(0) at u(k). Esta funo pode ser expressa da seguinte forma

Vamos assumir que a funo f linear e que depende apenas de um nmero finito de sinais de
e(k) e u(k). Assim, a estrutura bsica da equao s diferenas pode ser escrita atravs de

Nota: A ttulo de exemplo, vamos considerar nas seces seguintes a seguinte equao s
diferenas
(1)

4.2. Determinao da funo de transferncia discreta atravs da transformada Z

Deve-se recordar que a funo de transferncia de um sistema contnuo pode-se obter atravs de
aplicao da Transformada de Laplace respectiva equao diferencial e depois colocando a
equao na forma de entrada/sada. Para obter a funo de transferncia na forma discreta, a
ferramenta matemtica muito semelhante transformada de Laplace, e designada por
transformada z. Deste modo a transformada z, definida atravs de

em que f(k) a amplitude da amostra e o ndice k = 0, 1, 2, 3, ... refere-se a cada instante


discreto relativo a cada perodo de amostragem.
De uma forma anloga, podemos escrever

Utilizando estas relaes, podemos obter facilmente a funo de transferncia discreta de uma
dada equao s diferenas.
Suponha que pretendemos obter a funo de transferncia do sistema definido atravs da
equao s diferenas (1). Assim, em primeiro lugar iremos aplicar as relaes acima indicadas a
cada termo de u(k), e(k), u(k-1), e e(k-1), pelo que
Luis Filipe Baptista ENIDH/MEMM

9.14

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

Aps algumas manipulaes algbricas, obtemos finalmente a funo de transferncia discreta


(2).

(2)

Nota: Quando determinamos a funo de transferncia discreta, devemos assumir, tal como para
a funo de transferncia contnua, condies iniciais nulas.

Luis Filipe Baptista ENIDH/MEMM

9.15

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

5. Localizao dos plos discretos e resposta transitria


Neste Captulo, vamos analisar com maior detalhe diversas localizaes dos polos e as
correspondentes respostas transitrias dos sistemas discretos.
5.1. Factor de amortecimento pequeno (zeta = 0.1, Wn = 4pi/5T)

Vamos considerar a seguinte funo de transferncia discreta

Se introduzirmos no Matlab os comandos a seguir indicados, iremos obter a localizao dos


polos da funo de transferncia. Deste modo, introduza os seguintes comandos num ficheiro
(m-file) e excute-o no ambiente Matlab. Assim, dever obter o seguinte grfico
numDz=[1];
denDz=[1 1.2 0.57];
[poles,zeros] = pzmap (numDz,denDz)
pzmap (numDz,denDz)
axis([-1 1 -1 1])
zgrid

Fig.16
Analisando este mapa, podemos ver que os polos esto localizados frequncia natural de 4/5T
rad/amostra (T o perodo de amostragem em amostras/segundo) e o factor de amortecimento
de 0.1. Considerando que o perodo de amostragem de 1/20 seg./amostra e que so utilizadas as
equaes a seguir indicadas, e j anteriormente referenciadas

Luis Filipe Baptista ENIDH/MEMM

9.16

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

n
n

4.6
Ts

1.8
Tr
(ln M p / ) 2
1 + (ln M p / ) 2

Nota importante: Quando usar estas equaes, dever converter a frequncia natural (Wn) de
rad/amostra para rad/seg.

Podemos verificar que este sistema dever ter um tempo de crescimento de 0.03 seg., tempo de
estabelecimento de 0.9 seg., e um mximo sobre-impulso de 70% (0.7 acima do valor da resposta
em regime estacionrio). Vamos confirmar estes valores travs da obteno da resposta ao
degrau. Deste modo, adicionando os comandos a seguir indicados ao ficheiro existente (m-file) e
voltando a executar o ficheiro na linha de comandos do Matlab, iremos obter a seguinte resposta
[x] = dstep (numDz,denDz,51);
t = 0:0.05:2.5;
stairs (t,x)

Fig.17
O grfico permite confirmar que os trs valores anteriormente calculados esto correctos.

5.2. Factor de amortecimento mdio (zeta = 0.4, Wn = 11pi/20T)

Considere a seguinte funo de transferncia discreta


Luis Filipe Baptista ENIDH/MEMM

9.17

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

Vamos seguir para este caso os mesmos passos anteriormente indicados. Deste modo, crie uma
nova "m-file" e introduza os comandos a seguir indicados. Seguidamente, execute o ficheiro na
linha de comandos do Matlab, pelo que dever obter o seguinte mapa de localizao dos polos
numDz=[1];
denDz=[1 0 0.25];
[poles,zeros]=pzmap (numDz,denDz)
pzmap (numDz,denDz)
axis([-1 1 -1 1])
zgrid

Fig.18
A partir deste mapa de localizao dos polos ("root-locus") podemos ver que os polos esto
localizados frequncia natural de 11/20T rad/amostra e com um factor de amortecimento de
0.4. Considerando que o perodo de amostragem de 1/20 seg. Tal como anteriormente e usando
as mesmas trs equaes podemos determinar os valores de tempo de crescimento, tempo de
estabelecimento e mximo sobre-impulso para a resposta ao degrau. Assim, o tempo de
crescimento ser de 0.05 seg., o tempo de estabelecimento ser de 0.3 seg. e mximo sobreimpulso de 25%. Seguidamente, vamos obter a resposta ao degrau e verificar se estes valores
esto correctos. Deste modo, se adicionarmos ao ficheiro "m-file" os comandos a seguir
indicados, iremos obter a seguinte resposta ao degrau unitrio
[x] = dstep (numDz,denDz,51);
t = 0:0.05:2.5;
stairs (t,x)

Luis Filipe Baptista ENIDH/MEMM

9.18

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

Fig.19
Mais uma vez podemos verificar que os valores calculados so confirmados atravs da anlise do
grfico acima representado.

5.3. Factor de amortecimento elevado (zeta = 0.8, Wn = pi/4T)

Para analisar este caso, vamos novamente considerar a seguinte funo de transferncia

Tal como para os casos anteriores, crie uma nova "m-file" e introduza os seguintes comandos de
modo a obter o "root-locus" para este caso. Deste modo, ir obter o seguinte mapa de localizao
dos polos
numDz=[1];
denDz=[1 -0.98 0.3];
[poles, zeros]=pzmap (numDz,denDz)
pzmap (numDz,denDz)
axis([-1 1 -1 1])
zgrid

Luis Filipe Baptista ENIDH/MEMM

9.19

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

Fig.20
A partir deste grfico, podemos verificar que os polos esto localizados frequncia natural de
/4T rad/amostra e com um factor de amortecimento de 0.8. Mais uma vez, vamos considerar o
mesmo perodo de amostragem de 1/20 seg., pelo que podemos determinar para este sistema que
possui um tempo de crescimento de 0.1 sec, tempo de estabelecimento de 0.36 seg. e mximo
sobre-impulso de 1%. Vamos confirmar estes valores atravs da resposta ao degrau. Deste modo,
adicione os seguintes comandos "m-file" anterior, e execute novamente o ficheiro na linha de
comandos do Matlab. Assim, dever obter-se a seguinte resposta ao degrau
[x] = dstep (numDz,denDz,51);
t = 0:0.05:2.5;
stairs (t,x)

Fig.21
Luis Filipe Baptista ENIDH/MEMM

9.20

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

Da anlise do grfico, podemos verificar que ambos os tempos de crescimento e de


estabelecimento so um pouco superiores ao esperado (sistema mais lento!). Por outro lado, o
mximo sobre-impulso sai for a da gama de valores esperada.
Resumo:

Atravs da utilizao destes trs exemplos, podemos verificar que as localizaes dos polos
podem ser usadas de uma forma aproximada para estimar a resposta transitria de um sistema
discreto. Esta anlise particularmente til no projecto atravs do lugar geomtrico das razes
("root-locus design") no qual devemos colocar polos (atravs da escolha de um ganho com o
comando rlocfind) de modo a obter uma resposta transitria satisfatria.

Luis Filipe Baptista ENIDH/MEMM

9.21

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

6. Exemplos de aplicao de controlo digital atravs do Matlab


6.1. Controlo de nvel com aco proporcional

Considere o seguinte diagrama de controlo de nvel:


Regulador
digital PID

Set-point
4-20 mA

4-20 mA
3-15 psi
Vlvula pneumtica

Transdutor
de nvel
Tanque

Fig.22
Vamos considerar que:

Kp = ganho proporcional (gama de 5 a 10)


Kv = 0.2
Kb = 1

(ganho da vlvula)
(ganho do transdutor de nvel)

H(s)
4
=
(funo de transferncia do sistema tanque vlvula)
Q(s) 10s + 1

Aplicando as regras da lgebra de blocos (Transparncias do Cap.10):

hr

Computador

Tanque

D/A

u(t)
vlvula

A/D

4-20 mA

Transdutor

Fig.23

Luis Filipe Baptista ENIDH/MEMM

9.22

INSTRUMENTAO E CONTROLO

hr(k)

9. CONTROLO DIGITAL ATRAVS DO MATLAB

u(k)

e(k)
Kp

qi(t)
R
RCs + 1

Kv

D/A

h(t)

h(k)
Kb

A/D
Fig.24

Para analisar este diagrama de controlo digital, necessrio em primeiro lugar obter a
correspondente funo de transferncia discreta Hzoh(z) - conjunto constitudo pelo
conversor D/A + tanque + conversor A/D, ou seja:

h(t)

qi(t)

u(z)
D/A

Kv

R
RCs + 1

h(z)
Kb=1

A/D

Hzoh(z)=h(z)/u(z)
Fig.25
Neste diagrama, a varivel utilizada no domnio discreto designa-se por z. Conforme vimos
anteriormente, esta varivel a verso equivalente da varivel s utilizada no domnio
complexo.
Para calcular a funo de transferncia discreta Hzoh(z), necessrio seleccionar o perodo de
amostragem. Para esse efeito, vamos analisar a funo de transferncia contnua G(s) do tanque,
de modo a seleccionar o perodo de amostragem mais adequado, com o objectivo de evitar o
fenmeno do aliasing. Deste modo, se observarmos a funo de transferncia do tanque
verificamos que:
H(s)
K
4
=
=
(funo de transferncia do sistema tanque vlvula)
Q(s) RCs + 1 10s + 1
T = RC = 10 seg. (constante de tempo do sistema tanque - vlvula)
1
Ts =
= 1 seg. (Regra : perodo de amostragem = 1/10 da constante de tempo do sistema)
10
Vamos utilizar Ts = 0.5 seg. (para obter mais pontos de controlo)

G(s) =

A funo de transferncia discreta Hzoh(z) deste sistema, pode ser calculada directamente em
computador atravs do comando c2dm do Matlab (abreviatura de continuous to digital). A
sintaxe que iremos utilizar nestes exerccios para a funo c2dm, a seguinte:
[numz,denz]=c2dm(num,den,Ts,zoh)
Luis Filipe Baptista ENIDH/MEMM

9.23

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

Em que:
numz, denz polinmios numerador e denominador da funo discreta
polinmios numerador e denominador da funo contnua

num, den

Ts perodo de amostragem (seg.)


zoh mtodo de discretizao (mantm constantes os valores das entradas entre
perodos de amostragem

Assim, devem executar-se os seguintes comandos:


%
discretizao
tanque+vlvula

da

funo

de

transferncia

do

num=[0.2*4];
den=[10 1];
numz,denz]=c2dm(num,den,0.5,'zoh')

A resposta obtida atravs do Matlab seria:


numz =
0

0.03902

denz =
1.0000

-0.9512

A funo de transferncia discreta Hzoh(z) do sistema de nvel, deste modo, dada por:
H zoh (z) =

H(z)
0.03902
=
U(z) z 0.9512

(potncias positivas de z)

H(z)
0.03902z -1
=
H zoh (z) =
U(z) 1 0.9512z -1

(potncias negativas de z)

O diagrama de controlo digital passa a ter o seguinte aspecto:

u(z)

e(z)

hr(z)

0.03902
z 0.9512

Kp
-

h(z)

Fig.26
Luis Filipe Baptista ENIDH/MEMM

9.24

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

Aplicando o operador atraso, que permite passar a funo de transferncia Hzoh(z) para uma
equao s diferenas. Este tipo de equaes especialmente adequado para implementao em
computador digital, pelo que:
Operador atraso:
z n Y(z) = y(k n)

z 1Y(z) = y(k 1)

Logo:
H(z)
0.03902
H(z) 0.03902z 1
=

=
U(z) z 0.9512
U(z) 1 0.9512z 1

(dividindo tudo por z)

H(z)(1 0.9512z 1 ) = 0.03902z 1U(z)


H(z) = 0.9512z 1H(z) + 0.03902z 1U(z)
h(k) = 0.9512h(k 1) + 0.03902u(k-1) eq. s diferenas (adequada para clculo
numrico em computador digital)
Tendo-se obtido a equao s diferenas equivalente funo de transferncia contnua do
sistema tanque + vlvula, podemos calcular a resposta do sistema de controlo digital, tal como
seria efectuado num computador digital, considerando Kp=10. Assim, temos que considerar as
seguintes condies de simulao do sistema de controlo, para uma variao da referncia Hr(z)
em degrau unitrio:

1 k 0
hr(k) =
(degrau unittio discreto)
0 k < 0
u = 0 k < 0
u(k) =
(aco de controlo)
u 0 k > 0
Fluxograma de clculo da aco de controlo realizada num microprocessador (Fig.26):

Ler no porto A/D a sada do processo y(k)


Calcular o erro e(k)=ref(k)-y(k)
Calcular os valores das aces P, I e D
Escrever no porto D/A o valor de u(k)

Fig.27
Luis Filipe Baptista ENIDH/MEMM

9.25

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

A sequncia de clculos realizada para um controlador proporcional com ganho Kp=10, para os
quatro primeiros perodos de amostragem (k a variar de 0 a 3), a seguinte:
k=0
h(0) = 0.9512h(1) + 0.03902u(-1) = 0 + 0 = 0
hr(0,1,2,3,....) = 1
e(0) = hr(0) - h(0) = 1 - 0 = 1
u(0) = 10 *1 = 10
k =1
h(1) = 0.9512h(0) + 0.03902u(0) = 0 + 0.03902 *10 = 0.3902
e(1) = hr(1) - h(1) = 1 - 0.3902 = 0.6098
u(1) = 10 * 0.6098 = 6.098
k=2
h(2) = 0.9512h(1) + 0.03902u(1) = 0.9512 * 0.3902 + 0.03902 * 6.098 = 0.6091
e(2) = hr(1) - h(1) = 1 - 0.6091 = 0.3909
u(2) = 10 * 0.3909 = 3.909
k =3
h(3) = 0.9512h(2) + 0.03902u(2) = 0.9512 * 0.6091 + 0.03902 * 3.909 = 0.7319
e(3) = hr(1) - h(1) = 1 - 0.7319 = 0.2681
u(3) = 10 * 0.2681 = 2.681
........

O diagrama de blocos no Simulink para este sistema de controlo, dado por:

nivelr

erro

control

To Workspace3

To Workspace2

To Workspace1

Scope
10
Step

Kp

0.03902
z-0.9512
Hzoh(z)

nivel
To Workspace

Fig.28

Se extrairmos do Workspace os pontos calculados pelo diagrama em Simulink e os colocarmos


sob a forma matricial, obtemos, no intervalo de 0 a 5 segundos, os seguintes valores:

Luis Filipe Baptista ENIDH/MEMM

9.26

INSTRUMENTAO E CONTROLO

t(seg.)
0.0000
0.5000
1.0000
1.5000
2.0000
2.5000
3.0000
3.5000
4.0000
4.5000
5.0000

9. CONTROLO DIGITAL ATRAVS DO MATLAB

h(k)
0.0000
0.3902
0.6091
0.7319
0.8008
0.8394
0.8611
0.8733
0.8801
0.8839
0.8861

e(k)
1.0000
0.6098
0.3909
0.2681
0.1992
0.1606
0.1389
0.1267
0.1199
0.1161
0.1139

u(k)
10.0000
6.0980
3.9090
2.6809
1.9920
1.6055
1.3887
1.2671
1.1988
1.1605
1.1391

Como se pode observar, os valores obtidos para as quatro primeiras iteraes so idnticos aos
obtidos atravs do Simulink. Os grficos obtidos atravs do Matlab/Simulink, para Kp=5 (azul),
Kp=7.5 (vermelho) e Kp=10 (verde), esto representados na Fig.29. Verifica-se que o erro em
regime estacionrio vai diminuindo medida que o Kp vai aumentando, como seria de esperar.
No entanto, ir existir sempre um erro residual (0.11 m) que s poder ser removido
atravs da introduo de aco integral. O comportamento do controlador digital
obviamente anlogo ao obtido com o controlador proporcional contnuo.
Para obter os grficos, como estamos a trabalhar com variveis discretas deve utilizar-se, em vez
do comando plot, o comando stairs. A ttulo de exemplo, tem-se:
stairs(tout,nivel,'g'),grid,xlabel('tempo[s]'),ylabel('h(k)
[m]')
Nota: O comando stairs s aceita um par de vectores [x,y]. Para sobrepor vrias curvas no
mesmo grfico, dever utilizar o comando hold para congelar o grfico no monitor.

Luis Filipe Baptista ENIDH/MEMM

9.27

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

1
0.9

0.8
0.7

h(k) [m]

0.6

0.5
0.4
0.3

0.2
0.1
0

5
tempo [s]

10

Fig.29
Grficos da aco de controlo para Kp=5 (azul), 7.5 (vermelho) e 10 (verde).
10

u(k)

5
tempo [s]

10

Fig.30
Luis Filipe Baptista ENIDH/MEMM

9.28

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

6.2. Controlo de nvel com aco proporcional + integral (PI)

A verso discretizada do controlador PID contnuo, considerando integrao rectangular em


avano forward, dada por:
Controlador PID contnuo:
1

+ Tds
G r (s) = Kp* 1 +
sTi

Controlador PID discreto:


u(k) = u(k 1) + q 0 e(k) + q1e(k 1) + q 2 e(k 2)
T
q 0 = K p 1 + d
Ts
T
q2 = Kp d
Ts

T 2T
q1 = K p 1 s + d
Ti Ts

Controlador PI discreto:
u(k) = u(k 1) + q 0 e(k) + q1e(k 1)
q0 = K p
T
q1 = K p 1 s
Ti
Vamos utilizar os mesmos parmetros do controlador PI contnuo, ou seja: (Kp=10 ; Ti = 4 seg.).
Se aplicarmos os mesmos procedimentos utilizados no controlo proporcional para a mesma
variao da referncia Hr(z) em degrau, obtm-se a seguinte sequncia de clculos:

Parmetros do controlador PI discreto :


q 0 = K p = 10
T
0.5
q 1 = K p 1 s = 101
= -8.75
4

Ti
u(k) = u(k - 1) + 10e(k) 8.75e(k 1)
k=0
h(0) = 0.9512h(1) + 0.03902u(-1) = 0 + 0 = 0
hr(0,1,2,3,....) = 1
e(0) = hr(0) - h(0) = 1 - 0 = 1
u(0) = u(1) + 10e(0) - 8.75e(-1) = 0 + 10 * 1 - 8.75 * 0 = 10
k =1
h(1) = 0.9512h(0) + 0.03902u(0) = 0 + 0.03902 *10 = 0.3902
e(1) = hr(1) - h(1) = 1 - 0.3902 = 0.6098
u(1) = 10 + 10 * e(1) 8.75e(0) = 10 + 10 * 0.6098 8.75 *1 = 10 - 2.6750 = 7.348

Luis Filipe Baptista ENIDH/MEMM

9.29

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

k=2
h(2) = 0.9512h(1) + 0.03902u(1) = 0.9512 * 0.3902 + 0.03902 * 7.348 = 0.6579
e(2) = hr(1) - h(1) = 1 - 0.6579 = 0.3421
u(2) = u(1) + 10 * e(2) 8.75e(1) = 7.348 + 10 * 0.3421 - 8.75 * 0.6098 = 5.4333
k =3
h(3) = 0.9512h(2) + 0.03902u(2) = 0.9512 * 0.6579 + 0.03902 * 5.4333 = 0.8378
e(3) = hr(1) - h(1) = 1 - 0.8378 = 0.1622
u(3) = u(2) + 10 * e(3) 8.75e(2) = 5.4333 + 10 * 0.1622 - 8.75 * 0.3421 = 4.0619
........
Para implementar o controlador digital PI no Simulink, podemos obter a funo de transferncia
discreta do controlador, atravs da utilizao do operador atraso. Assim, teramos:

u(k) = u(k 1) + q 0 e(k) + q 1e(k 1)


u(k) u(k 1) = q 0 e(k) + q 1e(k 1)
U(z)(1 - z -1 ) = E(z)(q 0 + q 1 z -1 )
U(z) q 0 + q 1 z 1 10 8.75z 1
G c (z) =
=
=
E(z)
1 z 1
1 z 1

G c (z) =

ou

10z 8.75
z 1

O diagrama de blocos no Simulink para o esquema de controlo digital PI o seguinte:

nivelr

erro

control

To Workspace3

To Workspace2

To Workspace1

Scope

Step

10z-8.75

0.03902

z-1

z-0.9512

Hzoh(z)1

Hzoh(z)

nivel
To Workspace

Fig.31
Existe uma outra alternativa, que consiste em construir no Simulink o controlador PI atravs da
implementao directa da respectiva equao s diferenas. Nesse caso, teramos que utilizar o
bloco operador atraso (unit delay), que aplica um atraso de um perodo de amostragem Ts
grandeza associada. Assim, no caso de pretender obter-se a varivel u(k-1) a partir de u(k), basta
utilizar o seguinte bloco do Simulink:

Luis Filipe Baptista ENIDH/MEMM

9.30

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

O diagrama de blocos em Simulink do esquema de controlo digital PI, atravs da respectiva


equao s diferenas, o seguinte:
nivelr

erro

control

To Workspace3

To Workspace2

To Workspace1

Scope
0.03902

10
Step

z-0.9512

q0
1
z
e(k-1)

Hzoh(z)

-8.75
q1

nivel
To Workspace

1
z
u(k-1)

Fig.32
Se efectuarmos a simulao para 20 segundos (q0=10 ; q1=-8.75) e obtivermos no Workspace os
pontos calculados pelo diagrama de controlo, e os colocarmos na forma matricial, obtemos no
intervalo de 0 a 10 segundos, a seguinte tabela de valores:
t(seg.)
0.0000
0.5000
1.0000
1.5000
2.0000
2.5000
3.0000
3.5000
4.0000
4.5000
5.0000
5.5000
6.0000
6.5000
7.0000
7.5000
8.0000
8.5000
9.0000
9.5000
10.0000

h(k)
0.0000
0.3902
0.6579
0.8378
0.9554
1.0293
1.0729
1.0960
1.1053
1.1059
1.1011
1.0932
1.0839
1.0741
1.0645
1.0555
1.0473
1.0400
1.0336
1.0281
1.0233

e(k)
1.0000
0.6098
0.3421
0.1622
0.0446
-0.0293
-0.0729
-0.0960
-0.1053
-0.1059
-0.1011
-0.0932
-0.0839
-0.0741
-0.0645
-0.0555
-0.0473
-0.0400
-0.0336
-0.0281
-0.0233

u(k)
10.0000
7.3480
5.4335
4.0620
3.0886
2.4054
1.9325
1.6109
1.3972
1.2597
1.1755
1.1278
1.1047
1.0977
1.1009
1.1102
1.1227
1.1365
1.1505
1.1640
1.1764

Conforme se pode verificar, os valores obtidos so idnticos aos calculados anteriormente para
as primeiras quatro iteraes, o que permite comprovar a validade dos resultados obtidos.
Vamos seguidamente fixar o valor de Kp=10 e analisar a aco integral (Ti = 4 seg. vermelho ;
Ti = 8 seg. - verde). Os grficos de evoluo do nvel esto representados na Fig.33.
Luis Filipe Baptista ENIDH/MEMM

9.31

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

Nos grficos do nvel h(k) obtidos no Matlab/Simulink para Ti=8 seg. (verde) e 4 seg.
(vermelho), podemos verificar que o erro se anula ao fim de um certo tempo. No entanto, a
preciso obtida implica uma degradao na estabilidade do sistema, visto que medida que o Ti
diminui aumenta o mximo sobreimpulso (overshoot), que corresponde para Ti = 4 seg., a 11%
do valor final.
1.4

1.2

h(k) [m]

0.8

0.6

0.4

0.2

10
tempo [s]

12

14

16

18

20

Fig.33
A aco de controlo PI actua de tal forma que s estabiliza quando o erro final for nulo. Neste
caso, como o integral de zero uma constante, a aco de controlo estabiliza no valor que tiver
atingido nesse instante. Este comportamento pode ser observado atravs da anlise dos grficos
da Fig.34.

Luis Filipe Baptista ENIDH/MEMM

9.32

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

10

u(k)

10
tempo [s]

12

14

16

18

20

Fig.33
6.3.Controlo de nvel com aco proporcional + integral + derivativa (PID)

Neste exemplo, vamos utilizar para o controlador PID discreto os parmetros utilizados pelo
controlador PID contnuo, ou seja Kp = 10, Ti = 4 seg. e Td = 0.2 seg. Assim, tem-se:
Controlador PID contnuo:
1

+ Tds
G r (s) = Kp* 1 +
sTi

Controlador PID discreto (integrao rectangular em avano - forward):


u(k) = u(k 1) + q 0 e(k) + q1e(k 1) + q 2 e(k 2)
T
q 0 = K p 1 + d
Ts
T
q2 = Kp d
Ts

T 2T
q1 = K p 1 s + d
Ti Ts

Clculo dos parmetros do controlador:


T
0.2
q 0 = K p 1 + d = 10 1 +
= 14
T
0.5

T 2T
0.5 2 0.2
q1 = K p 1 s + d = 10 1
+
= -16.75
4
0.5

Ti Ts
q2 = Kp

Td
0.2
=4
= 10
0.5
Ts

Assim, tem-se:
u(k) = u(k 1) + 14e(k) 16.75e(k 1) + 4e(k 2)
Luis Filipe Baptista ENIDH/MEMM

9.33

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

Para simular a resposta do sistema de controlo de nvel a uma entrada Hr(z) em degrau unitrio
discreto, vamos considerar os seguintes valores para o controlador PID digital (Kp=10 ; Ti = 4
seg. ; Td=0.2 seg. e Td=0.4 seg.). Neste caso, o diagrama de blocos no Simulink para o sistema
de controlo PID discreto, para a ser o seguinte:
nivelr

erro

control

To Workspace3

To Workspace2

To Workspace1

Scope
14

0.03902

q0

Step

z-0.9512
Hzoh(z)

nivel
To Workspace

-16.75

z
e(k-1)

1
q1
1
z
e(k-2)

z
u(k-1)

q2

Fig.35
Se aplicarmos os mesmos procedimentos utilizados no controlo P e PI para a mesma variao da
referncia Hr(z) em degrau, obtm-se a seguinte sequncia de clculos:

Controlador PID discreto :


u(k) = u(k 1) + 14e(k) 16.75e(k 1) + 4e(k 2)
k=0
h(0) = 0.9512h(1) + 0.03902u(-1) = 0 + 0 = 0
hr(0) = 1
e(0) = hr(0) - h(0) = 1 - 0 = 1
u(0) = u(1) + 14e(0) - 16.75e(-1) + 4e(-2) = 0 + 14 * 1 - 16.75 * 0 + 4 * 0 = 14
k =1
h(1) = 0.9512h(0) + 0.03902u(0) = 0 + 0.03902 *14 = 0.5463
e(1) = hr(1) - h(1) = 1 - 0.5463 = 0.4537
u(1) = u(0) + 14 * e(1) 16.75e(0) + 4 * e(1) = 14 + 14 * 0.4537 16.75 *1 + 0 = 3.6021
k=2
h(2) = 0.9512h(1) + 0.03902u(1) = 0.9512 * 0.5463 + 0.03902 * 3.6021 = 0.6602
e(2) = hr(1) - h(1) = 1 - 0.6602 = 0.3398
u(2) = u(1) + 14 * e(2) 16.75e(1) + 4e(0) = 3.6021 + 14 * 0.3398 - 16.75 * 0.4537 + 4 *1
u(2) = 4.7598
.....
Luis Filipe Baptista ENIDH/MEMM

9.34

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

Se efectuarmos a simulao para 20 segundos (q0=14 ; q1=-16.75 ; q2=4) e obtivermos no


Workspace os pontos calculados pelo diagrama de controlo, e os colocarmos na forma matricial,
obtemos no intervalo de 0 a 10 segundos, a seguinte tabela de valores:
t(seg.)
0.0000
0.5000
1.0000
1.5000
2.0000
2.5000
3.0000
3.5000
4.0000
4.5000
5.0000
5.5000
6.0000
6.5000
7.0000
7.5000
8.0000
8.5000
9.0000
9.5000
10.0000

h(k)
0.0000
0.5463
0.6602
0.8137
0.9102
0.9823
1.0310
1.0628
1.0818
1.0913
1.0942
1.0924
1.0875
1.0807
1.0730
1.0648
1.0568
1.0491
1.0419
1.0354
1.0296

e(k)
1.0000
0.4537
0.3398
0.1863
0.0898
0.0177
-0.0310
-0.0628
-0.0818
-0.0913
-0.0942
-0.0924
-0.0875
-0.0807
-0.0730
-0.0648
-0.0568
-0.0491
-0.0419
-0.0354
-0.0296

u(k)
14.0000
3.6021
4.7598
3.4910
2.9868
2.4753
2.1048
1.8152
1.5985
1.4380
1.3222
1.2411
1.1867
1.1525
1.1333
1.1250
1.1243
1.1289
1.1368
1.1466
1.1574

Os resultados obtidos em Simulink para uma resposta a uma variao de Hr(z) em degrau
unitrio, esto representados nos grficos da Fig.36. Os resultados so: Td=0.2 seg. (verde),
Td=0.4 seg. (vermelho) e Td=0 (preto).
Da anlise dos grficos, verifica-se que a aco derivativa atenua os efeitos do sobreimpulso,
provocado pela aco PI, tornando a evoluo do nvel mais rpida e amortecida aps este ter
atingido o seu valor mximo. Deve notar-se que os efeitos da aco derivativa com controlo
digital PID so muito semelhantes aos obtidos com o controlador PID contnuo.

6.4. Resposta do controlador PID discreto a uma perturbao na sada em degrau.

Neste exemplo, vamos considerar que a referncia nula (constante), e que o nvel do tanque
pode estar sujeito a perturbaes sbitas (ex: descarga sbita de gua vinda de um tanque de
condensados que entretanto tenha enchido). Este tipo de funcionamento do controlador designase por modo de funcionamento como regulador. Para simular este exerccio no Simulink,
teremos que modificar o diagrama representado na Fig.35, de modo a obter o diagrama de blocos
representado na Fig.37. Este diagrama anlogo ao estudado com o controlador PID contnuo.

Luis Filipe Baptista ENIDH/MEMM

9.35

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

1.4

1.2

h(k) [m]

0.8

0.6

0.4

0.2

10
tempo [s]

12

14

16

18

20

Fig.36
nivelr

erro

control

To Workspace3

To Workspace2

To Workspace1

Scope

14

nivelr

0.03902

q0
1
z
e(k-1)

z-0.9512
Hzoh(z)

nivel
To Workspace

-16.75
1
q1
1
z
e(k-2)

z
u(k-1)

perturbao

q2

Fig.37
Para simular a aco de regulao do controlador de nvel, vamos colocar a referncia a zero
(constante) e somar sada (nvel) um degrau unitrio N(z) atravs do bloco perturbao. Se
efectuarmos a simulao para 20 segundos (q0=14 ; q1=-16.75 ; q2=4) e obtivermos no
Workspace os pontos calculados pelo diagrama de controlo, e os colocarmos na forma matricial,
obtemos no intervalo de 0 a 10 segundos, a tabela de valores representada na pgina seguinte.
Como se pode verificar, os valores calculados para os primeiros quatro perodos de amostragem
coincidem com os obtidos em computador atravs do Simulink.

Luis Filipe Baptista ENIDH/MEMM

9.36

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

A resposta do sistema de controlo, considerando as aces PI (Kp=10 ; Ti =4 seg.) e PID


(Kp=10 ; Ti =4 seg. ; Td=0.2 seg. a 0.4 seg.) est representada nos grficos da Fig.37.

Aco PI - Kp=10 ; Ti = 4 (curva a azul)


Aco PID - Kp=10 ; Ti = 4 ; Td=0.2 seg. (curva a vermelho)
Aco PID - Kp=10 ; Ti = 4 ; Td=0.4 seg. (curva a verde)

Conforme se pode verificar atravs da anlise dos grficos, a aco PI evidencia a anulao do
erro custa de um sobreimpulso Mp negativo de cerca de 9%.
A introduo da aco derivativa (controlo PID provoca uma melhoria na estabilidade do
controlo. Com efeito, com Td > 0, a anulao da perturbao do nvel mais suave o que
evidencia uma melhoria da estabilidade do anel de controlo.
Clculos efectuados analiticamente:
u(k) = u(k 1) + 14e(k) 16.75e(k 1) + 4e(k 2)
NOTA : Os clculos de h(k) so efectuados sem ter em conta o valor da perturbao n(k)
k=0
hr(0,1,2,3...) = 0

n(0,1,2,3,...) = 1

h(0) = 0.9512h( 1) + 0.03902u(-1) = 0 + 0 = 0


h * (0) = 0 + n(0) = 0 + 1 = 1
e(0) = hr(0) - h * (0) = 0 - 1 = 1
u(0) = u(1) + 14e(0) - 16.75e(-1) + 4e(-2) = 0 + 14 * (-1) - 16.75 * 0 + 4 * 0 = 14
k =1
h(1) = 0.9512h(0) + 0.03902u(0) = 0.9512 * 0 + 0.03902 * (-14) = -0.5463
h * (1) = h(1) + n(1) = -0.5463 + 1 = 0.4537
e(1) = hr(1) - h * (1) = 0 - 0.4537 = -0.4537
u(1) = u(0) + 14 * e(1) 16.75e(0) + 4 * e(1) = 14 + 14 * (-0.4537 ) 16.75 * (-1) + 0
u(1) = - 3.6018
k=2
h(2) = 0.9512h(1) + 0.03902u(1) = 0.9512 * (-0.5463) + 0.03902 * (- 3.6018) = - 0.6602
h * (2) = h(2) + n(2) = -0.6602 + 1 = 0.3398
e(2) = hr(2) - h * (2) = 0 - 0.3398 = - 0.3398
u(2) = u(1) + 14 * e(2) 16.75e(1) + 4e(0) = - 3.6018 + 14 * (-0.3398) - 16.75 * (-0.4537)
+ 4 * (-1)
u(2) = -4.7598
.....

Luis Filipe Baptista ENIDH/MEMM

9.37

INSTRUMENTAO E CONTROLO

t(seg.)
0.000
0.5000
1.0000
1.5000
2.0000
2.5000
3.0000
3.5000
4.0000
4.5000
5.0000
5.5000
6.0000
6.5000
7.0000
7.5000
8.0000
8.5000
9.0000
9.5000

9. CONTROLO DIGITAL ATRAVS DO MATLAB

h(k)
1.0000
0.4537
0.3398
0.1863
0.0898
0.0177
-0.0310
-0.0628
-0.0818
-0.0913
-0.0942
-0.0924
-0.0875
-0.0807
-0.0730
-0.0648
-0.0568
-0.0491
-0.0419
-0.0354

e(k)
u(k)
-1.0000 -14.0000
-0.4537
-3.6021
-0.3398
-4.7598
-0.1863
-3.4910
-0.0898
-2.9868
-0.0177
-2.4753
0.0310
-2.1048
0.0628
-1.8152
0.0818
-1.5985
0.0913
-1.4380
0.0942
-1.3222
0.0924
-1.2411
0.0875
-1.1867
0.0807
-1.1525
0.0730
-1.1333
0.0648
-1.1250
0.0568
-1.1243
0.0491
-1.1289
0.0419
-1.1368
0.0354
-1.1466

1.2

0.8

h(k) [m]

0.6

0.4

0.2

-0.2

10
tempo [s]

12

14

16

18

20

Fig.38

Luis Filipe Baptista ENIDH/MEMM

9.38

INSTRUMENTAO E CONTROLO

9. CONTROLO DIGITAL ATRAVS DO MATLAB

2
0

-2
-4

u(k)

-6

-8
-10
-12

-14
-16
-18

10
tempo [s]

12

14

16

18

20

Fig.39

Bibliografia
[1]. Control tutorials for Matlab, Universidade de Carnegie-Melon, EUA
(http://www.engin.umich.edu/group/ctm/)
[2]. Discrete-Time Control Systems, Kathsuiko Ogata, Edio da Prentice-Hall, Inc.

Luis Filipe Baptista ENIDH/MEMM

9.39