Introdução ao Controle Digital

40
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE DEPARTAMENTO DE ENGENHARIA MARÍTIMA INSTRUMENTAÇÃO E CONTROLO INTRODUÇÃO AO CONTROLO DIGITAL (ATRAVÉS DO MATLAB) Elementos coligidos por: Prof. Luís Filipe Baptista E.N.I.D.H. – 2012/2013

description

Introdução ao Controle Digital com MATLAB

Transcript of Introdução ao Controle Digital

Page 1: Introdução ao Controle Digital

ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE

DEPARTAMENTO DE ENGENHARIA MARÍTIMA

INSTRUMENTAÇÃO E CONTROLO

INTRODUÇÃO AO

CONTROLO DIGITAL (ATRAVÉS DO MATLAB)

Elementos coligidos por:

Prof. Luís Filipe Baptista

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

Page 2: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.1

Controlo Digital através do Matlab

Índice:

Introdução Circuito equivalente ao retentor de ordem-zero Conversão através da função c2dm Estabilidade e resposta transitória

Os comandos chave em Matlab usados nestes apontamentos são: c2dm, pzmap, zgrid, dstep stairs, rlocus

Nota: Os comandos do Matlab da Toolbox de Controlo estão escritas em "letra mais clara".

Nota importante: O objectivo destes apontamentos de Introdução ao Controlo Digital é o de mostrar como funcionam os sistemas discretos, representados na forma de função de transferência ou de espaço de estados, bem como o modo como se podem analisar e implementar sistemas de controlo digital, através da Toolbox de Controlo do MATLAB (Control Systems Toolbox). Estes apontamentos, constituem uma adaptação das lições disponíveis na referência [1]: Control tutorials for Matlab, Universidade de Carnegie-Melon, EUA. (http://www.engin.umich.edu/group/ctm/)

1. Introdução

A Fig.1 representa um sistema típico de controlo contínuo com realimentação. Conforme estudado no Capítulo 8, os controladores contínuos podem ser construídos recorrendo à tecnologia pneumática ou electrónica, através dos respectivos circuitos analógicos amplamente divulgados na literatura.

Fig.1. Diagrama de blocos do esquema de controlo contínuo.

Page 3: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.2

O controlador contínuo ou analógico representado pelos elementos inseridos no rectângulo a tracejado, pode ser substituído por um controlador digital. As diferenças básicas entre estes dois controladores devem-se ao facto de o sistema digital funcionar com sinais discretos (ou amostras do sinal contínuo medido pelo transdutor de medida) em vez dos sinais contínuos típicos do controlador analógico.

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

Os sinais analógicos e digitais do esquema da Fig.2, podem ser representados nos gráficos 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 contém elementos analógicos e digitais. Quando se implementa um sistema de controlo digital, é conveniente encontrar uma equivalência digital da componente contínua de modo a que tenhamos que lidar só com funções digitais.

Para implementar esta técnica, vamos considerar novamente a seguinte parte do sistema de

Page 4: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.3

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 conversão D/A, processo e aquisição A/D.

O relógio (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 relógio. O objectivo desta acção, é o de fazer com que Hzoh(z) receba apenas amostras do sinal de entrada u(k) e envie apenas sinais de saída y(k) sincronizados com o sinal de relógio; deste modo Hzoh(z) permite realizar uma função de transferência discreta.

A filosofia do projecto é portanto a seguinte: pretende-se encontrar uma função discreta Hzoh(z) de tal modo que para um dado valor de entrada constante para o sistema contínuo H(s), a amostra da saída do sistema contínuo seja igual ao da saída discreta. Para isso, é necessário 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 técnicas que permitem obter a amostra u(k) e manter ou reter (hold) o sinal de modo a produzir um sinal contínuo uhat(t). O gráfico da Fig.5, mostra que o sinal uhat(t) é mantido constante para u(k) no intervalo [kT ; (k+1)T]. Esta operação de retenção de uhat(t) com um valor constante durante o intervalo de amostragem é designada por "retenção de ordem zero" ou " zero-order hold - zoh".

Page 5: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.4

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 saída y(k), que irá ser igual à amostra do sinal contínuo y(t). Esta operação é equivalente a introduzir o sinal u(t) em H(s) de modo a obter o sinal contínuo de saída do processo y(t).

Fig.6. Evolução dos sinais num sistema digital e contínuo equivalente (em baixo).

Seguidamente, vamos redesenhar o diagrama esquemático do sistema de controlo digital, colocando Hzoh(z) a substituir a parte contínua 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 funções de transferência discretas.

Page 6: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.5

Note: Existem certos casos em que a resposta da função discreta não é igual à resposta da correspondente função contínua devido à implementação do circuito retentor. Para informação adicional, veja o Capítulo Efeito de atraso associado ao retentor.

1.2. Conversão contínua-discreta usando a função c2dm

Existe uma função do Matlab designada por c2dm que converte um dado sistema contínuo (na forma de função de transferência ou na forma de espaço de estados) para sistema discreto utilizando um retentor de ordem zero, tal como foi explicado anteriormente. Os comandos básicos para aplicar a função c2dm, são

[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 frequência máxima da largura de banda do sistema de controlo em anel fechado.

1.2.1. Função de transferência

Suponha que tínhamos a seguinte função de transferência contínua (sistema massa-mola-amortecedor)

kbsMssFsX

++= 2

1)()(

• M = 1 kg

• b = 10 N.s/m

• k = 20 N/m

• F(s) = 1

Considerando que a frequência máxima 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 *

Page 7: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.6

0 0.4837 0.4678 denDz = 1.0000 -1.9029 0.9048

A partir destes vectores, podemos representar a função de transferência discreta

090489029.1)4678.04837.0(0001.0

)()(

2 +−+

=zzz

zFzX

Note: Os vectores do numerador e do denominador são representados por ordem decrescente das potências de z. Para mais detalhes acerca da representação de funções de transferência em MATLAB, consulte a secção Representação em MATLAB.

1.2.2. Estabilidade e resposta transitória

Para sistemas contínuos, sabemos que determinados comportamentos resultam das diferentes localizações dos polos no plano s ou plano de Argand. Por exemplo, um sistema é instável quando qualquer polo estiver localizado no semi-plano direito, ou seja tiver parte real positiva. Para sistemas discretos, podemos analisar o comportamento dos sistemas através das diferentes localizações dos polos no plano z. As características do plano s estão relacionadas com o plano z, através da seguinte expressão

Tsez =

• T = Intervalo de amostragem (segundos/amostra)

• s = Localização no plano complexo (s)

• z = Localização no plano discreto (z)

A Fig.8, representa o plano z, no qual estão representadas as linhas de factor de amortecimento (ξ ) constante e frequência natural ( nω ) constante, convertidas do plano s para o plano z, através

da expressão Tsez = .

Page 8: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.7

Fig.8. Plano z com linhas de amortecimento constante e frequência natural constante.

No plano z, os limites de estabilidade deixam de ser o eixo imaginário, válidos para sistemas contínuos, e passam a ser definidos pelo círculo de raio unitário |z|=1. O sistema é estável quando todos os polos estiverem localizados no interior do círculo de raio unitário, e instável quando qualquer polo estiver fora desse mesmo círculo.

Para analisar a resposta transitória a partir da localização dos polos no plano z, as seguintes equações definidas para sistemas contínuos, continuam a ser válidas para sistemas discretos

2

2

)/(ln1)/(ln

8.1

6.4

ππ

ξ

ω

ζω

p

p

rn

sn

MM

T

T

+≥

em que

• ξ = Factor de amortecimento

• nω = Frequência natural (rad/seg.)

• sT = Tempo de estabelecimento

• rT = Tempo de crescimento

• pM = Máximo sobre-impulso

Page 9: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.8

Nota importante: A frequência natural ( nω ) no plano z tem unidades de rad/amostra; no entanto, quando utilizar as equações acima representadas, nω deve vir em unidades de rad/seg.

Suponha que temos a seguinte função de transferência discreta

5.03.01

)()(

2 +−=

zzzFkY

Cria-se uma nova "m-file" e escrevem-se os seguintes comandos. Executa-se a "m-file" no ambiente MATLAB, e obtêm-se o seguinte gráfico com as linhas de factor de amortecimento constante e frequência natural constante

numDz=[1]; denDz=[1 -0.3 0.5]; pzmap(numDz,denDz) axis([-1 1 -1 1]) zgrid

Fig.9. Localização dos polos no plano z.

A partir deste gráfico, podemos ver que os polos estão localizados aproximadamente sobre a frequência T20/9π (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 três equações 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 máximo é de 45% (0.45 acima do valor da resposta em regime estacionário). Seguidamente, vamos obter a resposta ao degrau e verificar se estes valores estão 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, obtêm-se a seguinte resposta

Page 10: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.9

[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 gráfico, tanto o tempo de crescimento como o tempo de estabelecimento e o máximo sobre-impulso, estão dentro dos valores esperados. Assim, conseguimos provar que podemos utilizar a localização dos polos no plano z e as três equações anteriores para analisar a resposta transitória de sistemas discretos.

Page 11: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.10

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 à utilização 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 saída continua hold [x]=dstep (numDz,denDz, 11); plot (t,x,'ro') %desenha a resposta da saída discreta hold off

Fig.11. Resposta a um degrau (contínuo e digital).

A partir deste gráfico, podemos ver que a resposta discreta é exactamente igual à resposta contínua, para cada intervalo de amostragem. Isto é verdade, porque a entrada é uma função degrau, ou seja uma função invariante no tempo. Se a entrada fosse uma função contínua variante no tempo, não iríamos obter uma resposta igual à da função contínua. Este comportamento pode ser observado se alterarmos a entrada para o sistema, ou seja passarmos da função degrau para a função impulso. Assim, na "m-file" anterior, se alterarmos as funções step para impulse e dstep para dimpulse e executarmos novamente o ficheiro no ambiente MATLAB, iremos obter o seguinte gráfico

Page 12: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.11

Fig.12. Resposta à entrada impulso (contínuo e digital).

A partir deste gráfico, podemos ver que a saída discreta não é coincidente com a da saída contínua. A resposta discreta está atrasada ("lagged") durante um certo período de tempo.

Fig.13. Efeito do atraso do sinal discreto relativamente ao sinal contínuo.

Assim, mesmo que a resposta discreta fosse coincidente com a resposta contínua (Fig.13), podemos verificar que o sinal médio uBar(t) está atrasado relativamente ao sinal contínuo 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 contínuo u(t), pelo que este efeito deixa de ser significativo.

Page 13: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.12

3. Análise da resposta ao degrau

Para desenhar o gráfico da resposta ao degrau de um sistema discreto, vamos utilizar duas funções diferentes do MATLAB, ou seja as funções dstep e stairs. A função dstep será usada para obter o número de pontos das amostras da saída (N), em que N é um valor escolhido pelo utilizador. A função stairs constrói um gráfico de barras ("stairstep graph") dos vectores de dados fornecidos, ou seja o vector de tempos [t] e o vector de amplitude de saída [x].

3.1. Função de transferência

Em primeiro lugar, vamos introduzir a forma de utilizar estas duas funções de modo a obter a resposta ao degrau de uma função discreta. Suponha que temos a seguinte função discreta

7.06.105.005.0)( 2 +−

+=

zzzzH zoh

Vamos utilizar a função 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 obtêm-se um vector [x] com 101 amostras.

Deve-se salientar que a função dstep não tem em consideração o vector de tempos [t]; assim, considera apenas o número de pontos do vector de tempos (N). Com efeito, se não utilizar o valor de N na função dstep(numDz,denDz), a resposta [x] irá ser função das amostras (k), e não função do tempo (NOTA: Tente esta opção e verifique os resultados).

Para obter a resposta em função do tempo, em primeiro lugar é necessário considerar a relação entre o número 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 simulação irá ser de 5 segundos. Se executar a função dstep irá obter um gráfico com o seguinte aspecto

Page 14: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.13

Fig.14. Resposta ao degrau (Função dstep).

A função stairs relaciona os pontos das amostras de modo a representar a saída y(k) precedida pelo retentor de ordem zero. Vamos usar a função 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 gráfico de resposta ao degrau

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

Fig.15. Resposta ao degrau (Função stairs).

Page 15: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.14

4. Equações às diferenças e representação de sistemas discretos

4.1. Equações às diferenças

Os sistemas contínuos são descritos por equações diferenciais, enquanto que os sistemas discretos são descritos através de equações às diferenças. A partir do diagrama esquemático de controlo digital (Fig.1), podemos observar que as equações às diferenças descrevem a relação entre o sinal de entrada e(k) e o sinal de saída u(k). Vamos supor que estávamos interessados em conhecer o sinal k do sinal de saída u, ou seja u(k). Assim, para obter este sinal de saída temos que calcular uma função que tenha em consideração os sinais anteriores de e(0) até e(k) e os sinais de saída desde u(0) até u(k). Esta função pode ser expressa da seguinte forma

Vamos assumir que a função f é linear e que depende apenas de um número finito de sinais de e(k) e u(k). Assim, a estrutura básica da equação às diferenças pode ser escrita através de

Nota: A título de exemplo, vamos considerar nas secções seguintes a seguinte equação às diferenças

(1) 4.2. Determinação da função de transferência discreta através da transformada Z

Deve-se recordar que a função de transferência de um sistema contínuo pode-se obter através de aplicação da Transformada de Laplace à respectiva equação diferencial e depois colocando a equação na forma de entrada/saída. Para obter a função de transferência na forma discreta, a ferramenta matemática é muito semelhante à transformada de Laplace, e é designada por transformada z. Deste modo a transformada z, é definida através 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 período de amostragem.

De uma forma análoga, podemos escrever

Utilizando estas relações, podemos obter facilmente a função de transferência discreta de uma dada equação às diferenças.

Suponha que pretendemos obter a função de transferência do sistema definido através da equação às diferenças (1). Assim, em primeiro lugar iremos aplicar as relações acima indicadas a cada termo de u(k), e(k), u(k-1), e e(k-1), pelo que

Page 16: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.15

Após algumas manipulações algébricas, obtemos finalmente a função de transferência discreta (2).

(2)

Nota: Quando determinamos a função de transferência discreta, devemos assumir, tal como para a função de transferência contínua, condições iniciais nulas.

Page 17: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.16

5. Localização dos pólos discretos e resposta transitória

Neste Capítulo, vamos analisar com maior detalhe diversas localizações dos polos e as correspondentes respostas transitórias dos sistemas discretos.

5.1. Factor de amortecimento pequeno (zeta = 0.1, Wn = 4pi/5T)

Vamos considerar a seguinte função de transferência discreta

Se introduzirmos no Matlab os comandos a seguir indicados, iremos obter a localização dos polos da função de transferência. Deste modo, introduza os seguintes comandos num ficheiro (m-file) e excute-o no ambiente Matlab. Assim, deverá obter o seguinte gráfico

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 estão localizados à frequência natural de 4π/5T rad/amostra (T é o período de amostragem em amostras/segundo) e o factor de amortecimento é de 0.1. Considerando que o período de amostragem é de 1/20 seg./amostra e que são utilizadas as equações a seguir indicadas, e já anteriormente referenciadas

Page 18: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.17

2

2

)/(ln1)/(ln

8.1

6.4

ππ

ξ

ω

ζω

p

p

rn

sn

MM

T

T

+≥

Nota importante: Quando usar estas equações, deverá converter a frequência 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 máximo sobre-impulso de 70% (0.7 acima do valor da resposta em regime estacionário). Vamos confirmar estes valores través da obtenção 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 gráfico permite confirmar que os três valores anteriormente calculados estão correctos.

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

Considere a seguinte função de transferência discreta

Page 19: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.18

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 localização 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 localização dos polos ("root-locus") podemos ver que os polos estão localizados à frequência natural de 11π/20T rad/amostra e com um factor de amortecimento de 0.4. Considerando que o período de amostragem é de 1/20 seg. Tal como anteriormente e usando as mesmas três equações podemos determinar os valores de tempo de crescimento, tempo de estabelecimento e máximo 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 máximo sobre-impulso de 25%. Seguidamente, vamos obter a resposta ao degrau e verificar se estes valores estão correctos. Deste modo, se adicionarmos ao ficheiro "m-file" os comandos a seguir indicados, iremos obter a seguinte resposta ao degrau unitário

[x] = dstep (numDz,denDz,51); t = 0:0.05:2.5; stairs (t,x)

Page 20: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.19

Fig.19

Mais uma vez podemos verificar que os valores calculados são confirmados através da análise do gráfico acima representado.

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

Para analisar este caso, vamos novamente considerar a seguinte função de transferência

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 localização dos polos

numDz=[1]; denDz=[1 -0.98 0.3]; [poles, zeros]=pzmap (numDz,denDz) pzmap (numDz,denDz) axis([-1 1 -1 1]) zgrid

Page 21: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.20

Fig.20

A partir deste gráfico, podemos verificar que os polos estão localizados à frequência natural de π/4T rad/amostra e com um factor de amortecimento de 0.8. Mais uma vez, vamos considerar o mesmo período 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 máximo sobre-impulso de 1%. Vamos confirmar estes valores através 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

Page 22: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.21

Da análise do gráfico, podemos verificar que ambos os tempos de crescimento e de estabelecimento são um pouco superiores ao esperado (sistema mais lento!). Por outro lado, o máximo sobre-impulso sai for a da gama de valores esperada.

Resumo:

Através da utilização destes três exemplos, podemos verificar que as localizações dos polos podem ser usadas de uma forma aproximada para estimar a resposta transitória de um sistema discreto. Esta análise é particularmente útil no projecto através do lugar geométrico das raízes ("root-locus design") no qual devemos colocar polos (através da escolha de um ganho com o comando rlocfind) de modo a obter uma resposta transitória satisfatória.

Page 23: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.22

6. Exemplos de aplicação de controlo digital através do Matlab

6.1. Controlo de nível com acção proporcional

Considere o seguinte diagrama de controlo de nível:

Tanque

Válvula pneumática

Regulador digital PID

Set-point

Transdutor de nível

3-15 psi

4-20 mA

4-20 mA

Fig.22

Vamos considerar que:

válvula) tanquesistema do ncia transferêde (função 110s

4Q(s)H(s)

nível) der transdutodo (ganho 1Kb válvula)da (ganho 0.2Kv

10) a 5 de (gama alproporcion ganhoKp

−+

=

===

Aplicando as regras da álgebra de blocos (Transparências do Cap.10):

Fig.23

Tanque

Transdutor

u(t)

h

4-20 mA

D/A

A/D

hr Computador

válvula

Page 24: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.23

-

hr(k)

1RCsR+

h(t)

Kb

Kv

u(k) qi(t)Kp D/A

A/D

e(k)

h(k)

Fig.24

Para analisar este diagrama de controlo digital, é necessário em primeiro lugar obter a correspondente função de transferência discreta Hzoh(z) - conjunto constituído pelo conversor D/A + tanque + conversor A/D, ou seja:

1RCsR+

h(t)

Kb=1Kv u(z) qi(t)

D/A A/D h(z)

Hzoh(z)=h(z)/u(z)

Fig.25

Neste diagrama, a variável utilizada no domínio discreto designa-se por “z”. Conforme vimos anteriormente, esta variável é a versão equivalente da variável “s” utilizada no domínio complexo.

Para calcular a função de transferência discreta Hzoh(z), é necessário seleccionar o período de amostragem. Para esse efeito, vamos analisar a função de transferência contínua G(s) do tanque, de modo a seleccionar o período de amostragem mais adequado, com o objectivo de evitar o fenómeno do “aliasing”. Deste modo, se observarmos a função de transferência do tanque verificamos que:

controlo) de pontos maisobter (para seg. 0.5Tsutilizar Vamos

sistema) do tempode constante da 1/10amostragem de período :(Regra seg. 1101Ts

válvula)- tanquesistema do tempode (constante seg. 10RCT

válvula) tanquesistema do ncia transferêde (função 110s

41RCs

KQ(s)H(s)G(s)

=

===

==

−+

=+

==

A função de transferência discreta Hzoh(z) deste sistema, pode ser calculada directamente em computador através do comando c2dm do Matlab (abreviatura de continuous to digital). A sintaxe que iremos utilizar nestes exercícios para a função c2dm, é a seguinte:

[numz,denz]=c2dm(num,den,Ts,’zoh’)

Page 25: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.24

Em que:

numz, denz – polinómios numerador e denominador da função discreta

num, den – polinómios numerador e denominador da função contínua

Ts – período de amostragem (seg.)

zoh – método de discretização (mantém constantes os valores das entradas entre períodos de amostragem

Assim, devem executar-se os seguintes comandos:

% discretização da função de transferência do tanque+válvula

num=[0.2*4];

den=[10 1];

numz,denz]=c2dm(num,den,0.5,'zoh')

A resposta obtida através do Matlab seria:

numz =

0 0.03902

denz =

1.0000 -0.9512

A função de transferência discreta Hzoh(z) do sistema de nível, é deste modo, dada por:

z) de negativas (potências

0.9512z10.03902z

U(z)H(z)(z)H

z) de positivas (potências 0.9512z

0.03902U(z)H(z)(z)H

1-

1-

zoh

zoh

−==

−==

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

-

hr(z) h(z) u(z)

Kp e(z)

0.9512z0.03902−

Fig.26

Page 26: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.25

Aplicando o operador atraso, que permite passar a função de transferência Hzoh(z) para uma equação às diferenças. Este tipo de equações é especialmente adequado para implementação em computador digital, pelo que:

n 1

1

1

1 1

1 1

Operador atraso:z Y(z) y(k n) z Y(z) y(k 1)Logo:H(z) 0.03902 H(z) 0.03902z (dividindo tudo por z)U(z) z 0.9512 U(z) 1 0.9512zH(z)(1 0.9512z ) 0.03902z U(z)H(z) 0.9512z H(z) 0.03902z U(z

− −

− −

− −

= − ⇒ = −

= ⇒ =− −

− =

= + )h(k) 0.9512h(k 1) 0.03902u(k-1) eq. às diferenças (adequada para cálculo numérico em computador digital)

= − + ⇒

Tendo-se obtido a equação às diferenças equivalente à função de transferência contínua do sistema tanque + válvula, 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 condições de simulação do sistema de controlo, para uma variação da referência Hr(z) em degrau unitário:

controlo) de (acção

0k0u0k0u

u(k)

discreto) unitátio(degrau 0k00k1

hr(k)

⎩⎨⎧

>≠<=

=

⎩⎨⎧

<≥

=

Fluxograma de cálculo da acção de controlo realizada num microprocessador (Fig.26):

Fig.27

Ler no porto A/D a saída do processo – y(k)

Calcular o erro e(k)=ref(k)-y(k)

Calcular os valores das acções P, I e D

Escrever no porto D/A o valor de u(k)

Page 27: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.26

A sequência de cálculos realizada para um controlador proporcional com ganho Kp=10, para os quatro primeiros períodos de amostragem (k a variar de 0 a 3), é a seguinte:

........2.6810.2681*10u(3)

0.26810.7319-1h(1)-hr(1)e(3)0.7319909.3*0.039026091.0*0.9512 )0.03902u(20.9512h(2)h(3)

3k909.33909.0*10u(2)

3909.06091.0-1h(1)-hr(1)e(2)6091.0098.6*0.039023902.0*0.9512 )0.03902u(10.9512h(1)h(2)

2k098.66098.0*10u(1)

6098.03902.0-1h(1)-hr(1)e(1)3902.010*0.039020 )0.03902u(00.9512h(0)h(1)

1k101*10u(0)

10-1h(0)-hr(0)e(0)1,....)hr(0,1,2,3

000 1)0.03902u(-1)0.9512h(h(0)0k

=====

=+=+==

=====

=+=+==

=====

=+=+==

=====

==+=+−=

=

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

nivelr

To Workspace3

erro

To Workspace2

control

To Workspace1

nivel

To WorkspaceStep

Scope

10

Kpz-0.9512

0.03902

Hzoh(z)

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:

Page 28: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.27

t(seg.) h(k) e(k) u(k) 0.0000 0.0000 1.0000 10.0000 0.5000 0.3902 0.6098 6.0980 1.0000 0.6091 0.3909 3.9090 1.5000 0.7319 0.2681 2.6809 2.0000 0.8008 0.1992 1.9920 2.5000 0.8394 0.1606 1.6055 3.0000 0.8611 0.1389 1.3887 3.5000 0.8733 0.1267 1.2671 4.0000 0.8801 0.1199 1.1988 4.5000 0.8839 0.1161 1.1605 5.0000 0.8861 0.1139 1.1391

Como se pode observar, os valores obtidos para as quatro primeiras iterações são idênticos aos obtidos através do Simulink. Os gráficos obtidos através do Matlab/Simulink, para Kp=5 (azul), Kp=7.5 (vermelho) e Kp=10 (verde), estão representados na Fig.29. Verifica-se que o erro em regime estacionário 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 através da introdução de acção integral. O comportamento do controlador digital é obviamente análogo ao obtido com o controlador proporcional contínuo.

Para obter os gráficos, como estamos a trabalhar com variáveis discretas deve utilizar-se, em vez do comando plot, o comando stairs. A título 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 várias curvas no mesmo gráfico, deverá utilizar o comando hold para “congelar” o gráfico no monitor.

Page 29: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.28

0 1 2 3 4 5 6 7 8 9 100

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

tempo [s]

h(k)

[m]

Fig.29

Gráficos da acção de controlo para Kp=5 (azul), 7.5 (vermelho) e 10 (verde).

0 1 2 3 4 5 6 7 8 9 101

2

3

4

5

6

7

8

9

10

tempo [s]

u(k)

Fig.30

Page 30: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.29

6.2. Controlo de nível com acção proporcional + integral (PI)

A versão discretizada do controlador PID contínuo, considerando integração rectangular em avanço – forward, é dada por:

r

0 1 2

d s d0 p 1 p

s i s

Controlador PID contínuo:1G (s) Kp* 1 Tds

sTiControlador PID discreto: u(k) u(k 1) q e(k) q e(k 1) q e(k 2)

T T 2Tq K 1 ; q K 1T T T

⎛ ⎞= + +⎜ ⎟⎝ ⎠

= − + + − + −

⎛ ⎞ ⎛ ⎞= + = − − +⎜ ⎟ ⎜

⎝ ⎠ ⎝ ⎠

d2 p

s

0 1

0 p

s1 p

i

Tq KT

Controlador PI discreto: u(k) u(k 1) q e(k) q e(k 1)q K

Tq K 1T

=

= − + + −=

⎛ ⎞= − −⎜ ⎟

⎝ ⎠

Vamos utilizar os mesmos parâmetros do controlador PI contínuo, ou seja: (Kp=10 ; Ti = 4 seg.).

Se aplicarmos os mesmos procedimentos utilizados no controlo proporcional para a mesma variação da referência Hr(z) em degrau, obtém-se a seguinte sequência de cálculos:

7.3482.6750-101*8.750.6098*10108.75e(0)e(1)*1010u(1)0.60980.3902-1h(1)-hr(1)e(1)

0.390210*0.039020 )0.03902u(00.9512h(0)h(1)1k

100*8.75-1*1008.75e(-1)-10e(0)1)u(u(0)10-1h(0)-hr(0)e(0)

1,....)hr(0,1,2,3000 1)0.03902u(-1)0.9512h(h(0)

0k

1)8.75e(k10e(k)1)-u(ku(k)

-8.754

0.5110TT

1Kq

10Kq:discreto PIr controladodo Parâmetros

i

sp1

p0

==−+=−+====

=+=+==

=+=+−====

==+=+−=

=

−−+=

=⎟⎠⎞

⎜⎝⎛ −−=⎟⎟

⎞⎜⎜⎝

⎛−−=

==

Page 31: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.30

........4.06190.3421*8.75-0.1622*105.43338.75e(2)e(3)*10u(2)u(3)

0.16220.8378-1h(1)-hr(1)e(3)0.83785.4333*0.039020.6579*0.9512 )0.03902u(20.9512h(2)h(3)

3k5.43330.6098*8.75-0.3421*107.3488.75e(1)e(2)*10u(1)u(2)

0.34210.6579-1h(1)-hr(1)e(2)0.65797.348*0.039020.3902*0.9512 )0.03902u(10.9512h(1)h(2)

2k

=+=−+====

=+=+==

=+=−+====

=+=+==

Para implementar o controlador digital PI no Simulink, podemos obter a função de transferência discreta do controlador, através da utilização do operador atraso. Assim, teríamos:

1z8.7510z(z)Gou

z18.75z10

z1zqq

E(z)U(z)(z)G

)zqE(z)(q)z-U(z)(1

1)e(kqe(k)q1)u(ku(k) 1)e(kqe(k)q1)u(ku(k)

c1

1

1

110

c

1-10

1-10

10

−−

=−

−=

−+

==

+=

−+=−−−++−=

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

nivelr

To Workspace3

erro

To Workspace2

control

To Workspace1

nivel

To WorkspaceStep

Scope10z-8.75

z-1Hzoh(z)1

z-0.9512

0.03902

Hzoh(z)

Fig.31

Existe uma outra alternativa, que consiste em construir no Simulink o controlador PI através da implementação directa da respectiva equação às diferenças. Nesse caso, teríamos que utilizar o bloco operador atraso (unit delay), que aplica um atraso de um período de amostragem Ts à grandeza associada. Assim, no caso de pretender obter-se a variável u(k-1) a partir de u(k), basta utilizar o seguinte bloco do Simulink:

Page 32: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.31

O diagrama de blocos em Simulink do esquema de controlo digital PI, através da respectiva equação às diferenças, é o seguinte:

z

1

u(k-1)

-8.75

q1

10

q0

z

1

e(k-1)

nivelr

To Workspace3

erro

To Workspace2

control

To Workspace1

nivel

To WorkspaceStep

Scope

z-0.9512

0.03902

Hzoh(z)

Fig.32

Se efectuarmos a simulação 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.) h(k) e(k) u(k) 0.0000 0.0000 1.0000 10.0000 0.5000 0.3902 0.6098 7.3480 1.0000 0.6579 0.3421 5.4335 1.5000 0.8378 0.1622 4.0620 2.0000 0.9554 0.0446 3.0886 2.5000 1.0293 -0.0293 2.4054 3.0000 1.0729 -0.0729 1.9325 3.5000 1.0960 -0.0960 1.6109 4.0000 1.1053 -0.1053 1.3972 4.5000 1.1059 -0.1059 1.2597 5.0000 1.1011 -0.1011 1.1755 5.5000 1.0932 -0.0932 1.1278 6.0000 1.0839 -0.0839 1.1047 6.5000 1.0741 -0.0741 1.0977 7.0000 1.0645 -0.0645 1.1009 7.5000 1.0555 -0.0555 1.1102 8.0000 1.0473 -0.0473 1.1227 8.5000 1.0400 -0.0400 1.1365 9.0000 1.0336 -0.0336 1.1505 9.5000 1.0281 -0.0281 1.1640 10.0000 1.0233 -0.0233 1.1764

Conforme se pode verificar, os valores obtidos são idênticos aos calculados anteriormente para as primeiras quatro iterações, o que permite comprovar a validade dos resultados obtidos.

Vamos seguidamente fixar o valor de Kp=10 e analisar a acção integral (Ti = 4 seg. – vermelho ; Ti = 8 seg. - verde). Os gráficos de evolução do nível estão representados na Fig.33.

Page 33: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.32

Nos gráficos do nível 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 precisão obtida implica uma degradação na estabilidade do sistema, visto que à medida que o Ti diminui aumenta o máximo sobreimpulso (overshoot), que corresponde para Ti = 4 seg., a 11% do valor final.

0 2 4 6 8 10 12 14 16 18 200

0.2

0.4

0.6

0.8

1

1.2

1.4

tempo [s]

h(k)

[m]

Fig.33

A acção 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 acção de controlo estabiliza no valor que tiver atingido nesse instante. Este comportamento pode ser observado através da análise dos gráficos da Fig.34.

Page 34: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.33

0 2 4 6 8 10 12 14 16 18 201

2

3

4

5

6

7

8

9

10

tempo [s]

u(k)

Fig.33 6.3.Controlo de nível com acção proporcional + integral + derivativa (PID) Neste exemplo, vamos utilizar para o controlador PID discreto os parâmetros utilizados pelo controlador PID contínuo, ou seja Kp = 10, Ti = 4 seg. e Td = 0.2 seg. Assim, tem-se:

r

0 1 2

d0 p

s

Controlador PID contínuo:1G (s) Kp* 1 Tds

sTiControlador PID discreto (integração rectangular em avanço - forward):u(k) u(k 1) q e(k) q e(k 1) q e(k 2)

Tq K 1 T

⎛ ⎞= + +⎜ ⎟⎝ ⎠

= − + + − + −

⎛ ⎞= +⎜ ⎟

⎝ ⎠s d

1 pi s

d2 p

s

d0 p

s

s d1 p

i s

d2 p

s

T 2T ; q K 1T T

Tq KT

Cálculo dos parâmetros do controlador:

T 0.2q K 1 10 1 14T 0.5

T 2T 0.5 2 0.2 q K 1 10 1 -16.75T T 4 0.5

Tq K 10T

⎛ ⎞= − − +⎜ ⎟

⎝ ⎠

=

⎛ ⎞ ⎛ ⎞= + = + =⎜ ⎟ ⎜ ⎟⎝ ⎠⎝ ⎠

⎛ ⎞ ×⎛ ⎞= − − + = − − + =⎜ ⎟ ⎜ ⎟⎝ ⎠⎝ ⎠

= =0.2 40.5

Assim, tem-se:u(k) u(k 1) 14e(k) 16.75e(k 1) 4e(k 2)

=

= − + − − + −

Page 35: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.34

Para simular a resposta do sistema de controlo de nível a uma entrada Hr(z) em degrau unitário 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:

z

1

u(k-1)4

q2

-16.75

q1

14

q0

z

1

e(k-2)

z

1

e(k-1)

nivelr

To Workspace3

erro

To Workspace2

control

To Workspace1

nivel

To WorkspaceStep

Scope

z-0.9512

0.03902

Hzoh(z)

Fig.35

Se aplicarmos os mesmos procedimentos utilizados no controlo P e PI para a mesma variação da referência Hr(z) em degrau, obtém-se a seguinte sequência de cálculos:

.....4.7598u(2)

1*40.4537*16.75-0.3398*146021.34e(0)16.75e(1)e(2)*14u(1)u(2)0.33980.6602-1h(1)-hr(1)e(2)

0.66026021.3*0.039020.5463*0.9512 )0.03902u(10.9512h(1)h(2)2k

6021.301*16.750.4537*14141)e(*416.75e(0)e(1)*14u(0)u(1)0.45370.5463-1h(1)-hr(1)e(1)

0.546314*0.039020 )0.03902u(00.9512h(0)h(1)1k

140*40*16.75-1*1404e(-2)16.75e(-1)-14e(0)1)u(u(0)10-1h(0)-hr(0)e(0)

1hr(0)000 1)0.03902u(-1)0.9512h(h(0)

0k2)4e(k1)16.75e(k14e(k)1)u(ku(k)

:discreto PIDr Controlado

=++=+−+=

====+=+=

==+−+=−+−+=

====+=+=

==++=++−=

====

=+=+−==

−+−−+−=

Page 36: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.35

Se efectuarmos a simulação 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.) h(k) e(k) u(k) 0.0000 0.0000 1.0000 14.0000 0.5000 0.5463 0.4537 3.6021 1.0000 0.6602 0.3398 4.7598 1.5000 0.8137 0.1863 3.4910 2.0000 0.9102 0.0898 2.9868 2.5000 0.9823 0.0177 2.4753 3.0000 1.0310 -0.0310 2.1048 3.5000 1.0628 -0.0628 1.8152 4.0000 1.0818 -0.0818 1.5985 4.5000 1.0913 -0.0913 1.4380 5.0000 1.0942 -0.0942 1.3222 5.5000 1.0924 -0.0924 1.2411 6.0000 1.0875 -0.0875 1.1867 6.5000 1.0807 -0.0807 1.1525 7.0000 1.0730 -0.0730 1.1333 7.5000 1.0648 -0.0648 1.1250 8.0000 1.0568 -0.0568 1.1243 8.5000 1.0491 -0.0491 1.1289 9.0000 1.0419 -0.0419 1.1368 9.5000 1.0354 -0.0354 1.1466 10.0000 1.0296 -0.0296 1.1574

Os resultados obtidos em Simulink para uma resposta a uma variação de Hr(z) em degrau unitário, estão representados nos gráficos da Fig.36. Os resultados são: Td=0.2 seg. (verde), Td=0.4 seg. (vermelho) e Td=0 (preto).

Da análise dos gráficos, verifica-se que a acção derivativa atenua os efeitos do sobreimpulso, provocado pela acção PI, tornando a evolução do nível mais rápida e amortecida após este ter atingido o seu valor máximo. Deve notar-se que os efeitos da acção derivativa com controlo digital PID são muito semelhantes aos obtidos com o controlador PID contínuo. 6.4. Resposta do controlador PID discreto a uma perturbação na saída em degrau.

Neste exemplo, vamos considerar que a referência é nula (constante), e que o nível do tanque pode estar sujeito a perturbações súbitas (ex: descarga súbita de água vinda de um tanque de condensados que entretanto tenha enchido). Este tipo de funcionamento do controlador designa-se por modo de funcionamento como regulador. Para simular este exercício 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 é análogo ao estudado com o controlador PID contínuo.

Page 37: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.36

0 2 4 6 8 10 12 14 16 18 200

0.2

0.4

0.6

0.8

1

1.2

1.4

tempo [s]

h(k)

[m]

Fig.36

z

1

u(k-1)4

q2

-16.75

q1

14

q0

perturbação

0

nivelr

z

1

e(k-2)

z

1

e(k-1)

nivelr

To Workspace3

erro

To Workspace2

control

To Workspace1

nivel

To Workspace

Scope

z-0.9512

0.03902

Hzoh(z)

Fig.37

Para simular a acção de regulação do controlador de nível, vamos colocar a referência a zero (constante) e somar à saída (nível) um degrau unitário N(z) através do bloco “perturbação”. Se efectuarmos a simulação 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 página seguinte. Como se pode verificar, os valores calculados para os primeiros quatro períodos de amostragem coincidem com os obtidos em computador através do Simulink.

Page 38: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.37

A resposta do sistema de controlo, considerando as acções PI (Kp=10 ; Ti =4 seg.) e PID (Kp=10 ; Ti =4 seg. ; Td=0.2 seg. a 0.4 seg.) está representada nos gráficos da Fig.37.

• Acção PI - Kp=10 ; Ti = 4 (curva a azul) • Acção PID - Kp=10 ; Ti = 4 ; Td=0.2 seg. (curva a vermelho) • Acção PID - Kp=10 ; Ti = 4 ; Td=0.4 seg. (curva a verde)

Conforme se pode verificar através da análise dos gráficos, a acção PI evidencia a anulação do erro à custa de um sobreimpulso Mp negativo de cerca de 9%.

A introdução da acção derivativa (controlo PID provoca uma melhoria na estabilidade do controlo. Com efeito, com Td > 0, a anulação da perturbação do nível é mais suave o que evidencia uma melhoria da estabilidade do anel de controlo.

Cálculos efectuados analiticamente:

.....-4.7598u(2)

(-1)*4(-0.4537)*16.75-(-0.3398)*143.6018 -4e(0)16.75e(1)e(2)*14u(1)u(2)

0.3398- 0.3398 -0(2)h-hr(2)e(2) 0.33981-0.6602n(2)h(2)(2)h

0.6602- 3.6018) (-*0.03902(-0.5463)*0.9512 )0.03902u(10.9512h(1)h(2)2k

3.6018 -u(1)0(-1)*16.75) (-0.4537*14141)e(*416.75e(0)e(1)*14u(0)u(1)

-0.4537 0.4537-0(1)h-hr(1)e(1)0.4537 1-0.5463n(1)h(1)(1)h

-0.5463(-14)*0.039020*0.9512 )0.03902u(00.9512h(0)h(1)1k

140*40*16.75-(-1)*1404e(-2)16.75e(-1)-14e(0)1)u(u(0)11-0(0)h-hr(0)e(0)

110n(0)0(0)h000 1)0.03902u(-1)0.9512h(h(0)

1...)n(0,1,2,3, ; 0...)hr(0,1,2,30k

n(k) operturbaçã da valor o conta em ter sem efectuados são h(k) de cálculos Os :NOTA2)4e(k1)16.75e(k14e(k)1)u(ku(k)

*

*

*

*

*

*

=+

+=+−+====

=+=+=

=+=+==

=+−+−=−+−+=

===

=+=+=

=+=+==

−=++=++−=−===

=+=+=

=+=+−===

=

−+−−+−=

Page 39: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.38

t(seg.) h(k) e(k) u(k) 0.000 1.0000 -1.0000 -14.0000

0.5000 0.4537 -0.4537 -3.6021 1.0000 0.3398 -0.3398 -4.7598 1.5000 0.1863 -0.1863 -3.4910 2.0000 0.0898 -0.0898 -2.9868 2.5000 0.0177 -0.0177 -2.4753 3.0000 -0.0310 0.0310 -2.1048 3.5000 -0.0628 0.0628 -1.8152 4.0000 -0.0818 0.0818 -1.5985 4.5000 -0.0913 0.0913 -1.4380 5.0000 -0.0942 0.0942 -1.3222 5.5000 -0.0924 0.0924 -1.2411 6.0000 -0.0875 0.0875 -1.1867 6.5000 -0.0807 0.0807 -1.1525 7.0000 -0.0730 0.0730 -1.1333 7.5000 -0.0648 0.0648 -1.1250 8.0000 -0.0568 0.0568 -1.1243

8.5000 -0.0491 0.0491 -1.1289 9.0000 -0.0419 0.0419 -1.1368 9.5000 -0.0354 0.0354 -1.1466

0 2 4 6 8 10 12 14 16 18 20-0.2

0

0.2

0.4

0.6

0.8

1

1.2

tempo [s]

h(k)

[m]

Fig.38

Page 40: Introdução ao Controle Digital

INSTRUMENTAÇÃO E CONTROLO 9. CONTROLO DIGITAL ATRAVÉS DO MATLAB

Luis Filipe Baptista – ENIDH/MEMM 9.39

0 2 4 6 8 10 12 14 16 18 20-18

-16

-14

-12

-10

-8

-6

-4

-2

0

2

tempo [s]

u(k)

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, Edição da Prentice-Hall, Inc.