PID digital – Método de cálculo numérico

PID digital

Introdução

No artigo técnico Controlador PID digital: Uma modelagem prática para microcontroladores – Parte 1é  apresentado com detalhes o controlador PID, sua arquitetura típica, o desenvolvimento das equações para o controle e alguns exemplos de como se pode desenvolver um controle PID. Nesse artigo serão retomados alguns conceitos sobre esse tipo de controle e serão apresentadas formas de cálculo numérico para implementar a parte diferencial e a integral do controlador. Essa forma alternativa de cálculo casa muito bem com a aplicação em microcontroladores ou processadores de 8 bits ou outros relativamente lentos. Os resultados que serão apresentados a seguir, foram largamente aplicados nos primeiros controladores PID digitais e certamente ainda são úteis nos dias de hoje, por sua simplicidade e velocidade de processamento.

Arquitetura típica de um controlador PID

Um sistema de controle típico de PID em malha fechada tem o aspecto mostrado na Figura 1. Nessa figura pode-se observar uma entrada, referente a um sinal de referência ou setpoint, um bloco onde essa referência é subtraída de um sinal proveniente do processo, em geral medido de alguma forma por um sensor, transdutor etc. Essa subtração produz um sinal de erro que entra no controlador PID propriamente dito, e a saída do controlador, que atua sobre o processo que está sendo controlado, é aplicada para conduzir o processo ao estado desejado.

.

Controlador PID
Figura 1: Controle PID típico

.

Controlador PID
Figura 2: Controlador PID em blocos

Na prática, o controlador PID digital destacado na Figura 1 em vermelho, pode ser representado como mostrado na Figura 2. O erro é amostrado, produzindo assim um conjunto de amostras discretizadas do sinal de erro, que é conduzido a um conversor analógico / digital (A/D), depois são calculados os valores da derivada, da integral e do valor proporcional, em seguida esses valores calculados são somados e conduzidos a um conversor digital / analógico (D/A).  

O desenho da Figura 2 representa o fluxo do sinal de erro para o controlador PID de forma a simplificar o desenvolvimento dos cálculos que serão apresentados a seguir. É evidente que num controlador real, os sinais de SP (setpoint) e PV (present value) também são digitalizados e subtraídos para que se obtenha o erro. O importante é fixar o conceito de que o erro deve ser entregue ao controlador numa frequência ou taxa fixa. Isso é requisito para o desenvolvimento que será realizado a seguir. Para que o sistema funcione bem, também é necessário que a atualização do sinal de saída pelo conversor D/A seja feito na mesma frequência do amostrador de entrada. Na Figura 3 é mostrado um sinal analógico como exemplo de sinal de erro e são destacadas as amostras realizadas num período fixo (Δ).

.

Controlador PID - sinal
Figura 3: Exemplo de sinal de erro e de sua amostragem

.

A seguir será desenvolvido um pouco de teoria, o suficiente para que se possa saber de onde foram tiradas as equações que resultarão desse desenvolvimento. Se você preferir, pode consultar direto os quadros resumo que apresentam as equações resultantes desses cálculos.

 .

Séries de Taylor

Brook Taylor elaborou uma teoria a respeito de funções matemáticas em 1715, conhecida como teorema de Taylor ou séries de Taylor. Esse teorema estabelece que: sendo f  uma função  infinitamente diferenciável, ela pode ser representada pela seguinte fórmula:

Equação_1a

(1)

onde:

  • fx0a
      representa a k-ésima derivada da função avaliada no ponto x0;
  • X0
              é um ponto arbitrário de referência;
  • k
              é o fatorial de k.
seriea

Se a somatória acima convergir, a função pode ser representada por uma série finita de termos. Como por exemplo a expansão da série (1): (2)

Obs: Quando x0 = 0, a série (2) é conhecida como série de McLaurin.

A seguir serão utilizadas as séries de Taylor para deduzir formas simples para o cálculo da primeira derivada de uma função e a integral dessa função.

Derivação Numérica

Seja definida uma função f(x), representada por uma série de Taylor, tal como mostrada em (1), onde x = i é uma amostra arbitrária de índice i tal como mostrado na Figura 3. O valor de f(x) será batizado de fi. Seja f(i-1) o valor dessa mesma função calculado no índice (i-1). A distância entre essas amostras é de Δ, correspondente a uma unidade de tempo relacionada com a frequência ou taxa de amostragem. Daí obtemos:

Equação_fi

(3)

Para avaliar a função em (i-1), vamos substituir i por (i-Δ). Realizando a substituição e rearranjando a equação obtida, chega-se na equação (4).

Equação_fi_1

(4)

Escrevendo essa somatória na forma expandida, obtém-se:

Equação_fi_1a

 (5)

Se desprezarmos os termos de segunda ordem e superiores e rearranjando, a equação fica assim:

Equação_2pontos
erro_2pontos

 (6),  e o erro =

.

A expressão (6) é conhecida como a derivada com 2 pontos.

.

É evidente que nesse cálculo, o erro é relativamente grande. Pode-se estender o raciocínio desenvolvido acima para um cálculo mais preciso, que pode ser obtido com 3, 4 ou mais amostras do sinal.

.

Se substituirmos i por (i- 2*Δ) e for desenvolvido o mesmo raciocínio que foi utilizado para i-1 poderemos levantar a equação de f(i-2) em função de fi.

Equação_fi_2

  (7)

Usando a equação (5) e rearranjando, obtém-se:

.

derivada_3pontos
erro_3pontos

 (8), onde o erro = 

.

Essa é a equação de cálculo de derivada com 3 pontos. De maneira análoga pode-se desenvolver a derivada de 4 pontos, mostrada na equação (9).

.

derivada_4pontos
erro_4pontos

(9), onde o erro = 

.

A seguir será apresentado um quadro resumo com as fórmulas desenvolvidas até aqui.

.

Quadro resumo da diferenciação digital

Aqui será adotada uma nova notação, mais frequentemente utilizada em processamento digital de sinais (DSP) e em controle digital. Isso facilitará o entendimento de quem está habituado a essa notação e introduz a notação para quem ainda não a conhece. A notação é assim:

  • y = saída (nesse caso a derivada da função);
  • x = amostra atual da função;
  • z-n = n-ésima amostra anterior;
  • Δ = intervalo de tempo entre amostras.

Resumo das fórmulas referentes à diferenciação digital:

.

=====================================================================

  • Derivada calculada com 2 pontos:
der_2p_z

(10)

 —————————————————————————————————————————

  • Derivada calculada com 3 pontos:
der_3p_z

(11)

————————————————————————————————————————–

  • Derivada calculada com 4 pontos:
der_4p_z

(12)

===================================================================

.

Os resultados obtidos nas equações acima são facilmente implementáveis em microprocessadores.

.

Integração Numérica

Para desenvolver as equações referentes à integração numérica, o raciocínio é o mesmo já desenvolvido para a diferenciação. Voltando à Figura 3, onde temos representada uma forma de onda arbitrária amostrada em intervalos regulares de Δ segundos, pode-se definir que:

Integral_0

(13)

Seja o segundo termo da equação (13):

integral0a

(14)

Desenvolvendo a série para Ii-1 se obtém uma equação semelhante à equação (5):

integral1

(15)

Rearranjando, obtém-se:

Integral2

(16)

Desenvolvendo:

integral3

(17)

 Substituindo:

integral4

(18)

desprezando os termos de segunda ordem ou superiores chega-se à equação para o cálculo da integral com 2 pontos.

.

integral5
erro_integral

(19), onde o erro = 

.

A fórmula (19) é conhecida como “regra do trapézio”.

.

O cálculo da integral pode ser estendido para mais pontos, para aumentar a precisão do resultado. A seguir, a equação para o cálculo com 3 pontos (20) e 4 pontos (21).

.

integral6
erro3i

 (20), onde o erro = 

.

integral7
erro4i

(21), onde o erro = 

.

Quadro resumo da integração digital

.

Aqui também será adotada a nova notação, mais frequentemente utilizada em processamento digital de sinais (DSP) e em controle digital.  A notação é assim:

  • y = saída (nesse caso a integral da função);
  • x = amostra atual da função;
  • z-n = n-ésima amostra anterior;
  • Δ = intervalo de tempo entre amostras.

Resumo das fórmulas referentes à integração digital:

=====================================================================

  • Integral calculada com 2 pontos:
Integralz2p

(22)

—————————————————————————————————————————

  • Integral calculada com 3 pontos:
integral3pz

(23)

————————————————————————————————————————–

  • Integral calculada com 4 pontos:
integral4pz

(24)

===================================================================

Observe que as fórmulas acima calculam a integral incremental entre uma amostra e a anterior. Para que seja realizado um cálculo de integral de fato é necessário acumular os resultados.

Obtidos os resultados  acima, é interessante verificar se eles realmente funcionam. Para isso eles serão simulados num programa para cálculos matemáticos conhecido por Scilab. Serão mostrados os respectivos códigos e os resultados. Para que você possa testar e explorar na sua própria máquina será necessário instalar o Scilab nela. Baixe o programa aqui: SCILAB vers. 5.5.0. O programa é gratuito e tem versões para Windows, GNU/Linux e Mac OS X.

Inicie o programa e digite o código a seguir. Se você preferir, você pode marcar o código, copiá-lo (Ctrl-C) e colá-lo no Scilab (Ctrl-V). Para iniciar as operações basta teclar o “Enter”.

.

Cálculo de Integrais numéricas utilizando o Scilab

.

Os comandos acima geram um gráfico parecido com o apresentado na Figura 4.

.

PID_Fig_1a
Figura 4: Gráfico do forma de onda quadrada gerada no Scilab

Como não há formas de onda triangulares prontas no Scilab, será utilizada a forma de onda quadrada, calculada sua integral para formar a onda triangular e calculada a diferencial da onda triangular para formar a onda quadrada novamente. Digite o seguinte código no Scilab (ou copie e cole):

.

.

Os gráficos obtidos são como o mostrado na Figura 5.

.

Integral_1a
Figura 5: Gráfico da integral calculada com 3 pontos

Os três gráficos obtidos parecem ser iguais, por motivo da forma de onda quadrada ser muito simples. Se olharmos com detalhes os “bicos” das formas de onda ampliadas, poderemos observar as diferenças (Figura 6). Quanto maior o número de pontos usados para o cálculo, menor a diferença se comparada com a onda triangular ideal.

Integral_detalhe
Figura 6: Gráfico das integrais calculadas sobrepostas

.

Cálculo de Diferencias numéricas utilizando o Scilab

.

Em seguida serão mostradas a utilização das diferenciais calculadas com 2, 3 ou 4 pontos. A onda utilizada para essas operações é a onda triangular resultante da  integral calculada com 4 pontos.

.

.

Os gráficos obtidos são semelhantes ao da Figura 7.

.

Diferencial_1b
Figura 7: Diferencial da onda triangular calculada com 4 pontos

.

.

Na Figura 8 pode-se observar as três diferenciais sobrepostas. Observe que a diferencial com mais pontos tem um transitório maior do que as outras, o que está coerente. Aqui encerram-se as simulações para demonstrar o funcionamento dos métodos numéricos.

É recomendável que o leitor faça experimentos com o Scilab, crie outras formas de onda, utilize formas de onda reais, pois o Scilab permite que se carregue dados de arquivos, e se familiarize com os recursos do Scilab, se acaso ainda não os conhece. O Scilab é uma ferramenta poderosa, tem recursos para cálculos de problemas de controle, processamento digital de sinais entre muitos outros.

Diferencial_sobrep
Figura 8: Detalhe da sobreposição das diferenciais calculadas

.

Nesse artigo técnico foram desenvolvidos métodos numéricos para o cálculo de integrais e diferenciais, típicas para uso em controle digital por PID. Esses métodos foram simulados no Scilab e foi mostrado o funcionamento correto das diversas aproximações e uma melhor precisão à medida que se utiliza mais pontos para o cálculo dos resultados. As equações desenvolvidas são muito adequadas para a utilização em microprocessadores pela sua simplicidade. Experimente usá-las.

Saiba mais sobre PID Digital

Leia também outros artigos sobre PID já publicados aqui no Embarcados:

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

[wpseo_breadcrumb]
Comentários:
Notificações
Notificar
guest
6 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Cristiano dos Santos Araujo
Cristiano dos Santos Araujo
17/05/2020 13:02

Muito bom esse artigo. Obrigado por compartilhar seu conhecimento!

Thiago Lima
02/12/2015 21:44

Henrique Puhlmann, ja li esse texto varias vezes.
Nossa, excelente!!!

Victor Manoel
Victor Manoel
21/07/2015 23:23

Boa noite essa base de programação roda no arduino?

Henrique Frank Werner Puhlmann
Reply to  Victor Manoel
22/07/2015 09:26

Caro Victor,

as fórmulas e os algoritmos desenvolvidos neste artigo rodam em qualquer plataforma ou processador. É necessário porém realizar uma tradução para as instruções específicas para a plataforma que você for utilizar, e tomar alguns cuidados com as escalas numéricas dos cálculos, etc.

Abraços,

Henrique

Victor Manoel
Victor Manoel
Reply to  Henrique Frank W. Puhlmann
22/07/2015 23:55

OK, Muito Obrigado Henrique.

Gabriel Gomes
Gabriel Gomes
05/06/2014 07:56

Artigo fantástico! Parabéns

Talvez você goste:

Séries

Menu
Privacy Settings saved!
Configurações de Privacidade

Entenda quais dados e informações usamos para ter melhor entrega de conteúdo personalizado para você.

These cookies are necessary for the website to function and cannot be switched off in our systems.

Para usar este site, usamos os seguintes cookies tecnicamente exigidos

  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec

Decline all Services
Accept all Services