Escolar Documentos
Profissional Documentos
Cultura Documentos
Dando continuidade do ponto em que paramos na primeira parte dessa srie, iremos
agora modelar um PID digital com uma abordagem um pouco diferente da utilizada
para concebermos o compensador descrito no artigo anterior, a idia aqui prover um
compensador PID que possa ser implementvel de forma simples em um processador de
uso geral (como foi exposto na parte I dessa srie, entenda - se processador de uso geral
qualquer microcontrolador que possua pelo menos a instruo de multiplicao por
hardware ).
Vamos recapitular?
N parte I dessa srie, foi explicado o que um sistema de controle por malha fechada,
o porque de seu uso, bem como o compensador do tipo PID (Proporcional - Integral Derivativo) como sendo um tipo de controlador verstil e aplicado em grande escala em
sistemas de controle dos mais variados tipos.
Ainda relembramos que sua expresso toma a forma de uma equao, como a
exemplificada a abaixo:
Onde:
Kp : Coeficiente da ao proporcional;
Ki : Coeficiente da ao integral;
Kd : Coeficiente da ao derivativa
A partir dessa equao seguida do uso da conhecida transformada de Laplace, obteve se uma equao muito mais simples que a exemplificada acima de forma que poderia
ser concebido um circuito eletrnico para reproduzir o comportamento de um
compensador tipo PID.
Apesar do algoritmo por aproximao retangular do termo integral ser verstil e atender
uma boa gama de aplicaes, alguns problemas comeam a surgir a medida que a
complexidade do sistema a ser controlado aumenta.
Uma outra soluo seria aproximar a integral apenas acumulando seu valor, a cada vez
que o PID computado, isso mantm a eficincia da execuo de cdigo, e causa o
mesmo efeito do aumento de iteraes, entretanto a acumulao s ocorreria uma nica
vez a cada valor do PID computado, retornando o problema de convergncia lenta nos
resultados da integral nos primeiros valores calculados pelo PID, a medida que o
processo avana esse efeito vai sendo minimizado.
O outro grande problema desse algoritmo pode ser elucidado com um exemplo prtico,
considerando um sistema onde o ganho proporcional algo elevado, e o erro acumulado
comea a crescer ou decrescer por longos perodos de tempo, isso pode levar fatalmente
o sistema em controle a ter sobressinal (overshoot) com valores elevados, e nos casos
mais graves, levar o sistema a uma oscilao permanente. Esse fenmeno conhecido
pelo nome de wind-up , e pode ser minimizado utilizando valores baixos para o ganho
integral, somadas a tcnicas de saturao do integrador (acumulador no caso da
aproximao integral), mas assim, voltamos ao problema de demora de convergncia,
uma vez que a saturao pode ser entendida como zerar o integrador( ou acumulador).
Temos ento alguns inconvenientes com esse algoritmo, ento o que pode - ser feito
para minimizar os efeitos de convergncia e wind-up ? Existem diversas formas de
modelar algoritmos de compensadores digitais a partir de circuitos analgicos, ou
mesmo a partir de expresses numricas, o algoritmo que irmos descrever aqui oferece
um compensador tipo PID digital com melhor aproximao.
Sabendo dos problemas com o primeiro algoritmo podemos proceder com a modelagem
de um controlador PID digital mais preciso. Para tal iremos precisar de uma ferramenta
matemtica bem conhecida por quem j estudou controle digital (ou processamento
digital de sinais), a transformada Z.
Eis que essa ferramenta permite traduzir equaes de diferena (no domnio do tempo),
ou seja aquelas em que dois eventos so separados por um intervalo cujo seu valor
finito e representvel numricamente, e obter uma expresso que toma uma forma muito
similar a equaes obtidas pela transformada de Laplace para sistemas em tempo
contnuo.
A Equao 1.2, pode intimidar em um primeiro momento, mas observando com ateno
podemos notar, que a transformada Z por definio nada mais faz do que tomar uma
sequencia de impulsos cujo os instantes de captura so espaados por um intervalo de
tempo, a varivel independente n denota o instante da amostragem, de forma que um
sinal discreto no tempo pode ser descrito como a sequencia abaixo:
Assim, uma vez passado para o domnio Z cada instante do sinal esta acompanhado pelo
operador complexo ("z") , que denota o deslocamento desse sinal no tempo, de forma
simplista a representao do operador z serve para dizer se a amostra um valor
corrente, um valor futuro (preditores e estimadores) ou um valor anterior, esse ultimo de
nosso interesse, vejamos:
Apesar da teoria por trs da transformada Z envolver muito mais conceitos, se olharmos
ela de uma maneira simplista, podemos utilizar essa simples propriedade (referida como
deslocamento no tempo) para realizar um novo controlador PID digital com melhor
desempenho que o do artigo anterior.
Uma expresso bem mais simples de resolver, alm disso a regra dos trapzios por
aproximar a diferena entre dois valores da funo f(t) por um aspecto trapezoidal , se a
taxa de amostragem do sistema for bem escolhida, a convergncia para o resultado
desejado muito mais rpida e no sofre com o problema apresentando no primeiro
algoritmo desenvolvido.
Ja temos uma nova soluo para o nosso termo integral, visto que o derivativo no
necessita de modificaes, por que usar a transformada Z, porque no partir logo para as
contas? Com o uso da transformada Z , poderemos alm de reduzir mais a equao
final, pr - computar seus coeficientes, e alm disso podemos utilizar sua funo de
transferncia em Z para analise em um simulador como o MATLAB por exemplo.
A equao acima encontra - se em uma notao bem mais conveniente para sistema de
tempo discreto. Mas agora vem a pergunta, como essa conhecida regra pode ser
utilizada para o propsito desse artigo? Vamos considerar o seguinte caso, temos a
integral de uma funo, essa o valor x[n], adicionando condies iniciais ou seja a
constante de integrao chegamos a seguinte relao:
Como fizemos para a integral, vamos mudar a notao para o dominio de tempo
discreto:
Eis que temos agora uma aproximao para o termo integral, e outra para o termo
derivativo. Mas observe que se encontram no domnio da frequncia, e o nosso PID est
no domnio do tempo, recobremos a equao 1:
O Nosso PID, est com uma equao bem mais amigvel, mas ainda encontra se no
domnio de tempo contnuo, precisamos agora traduzir essa equao para o domnio de
tempo discreto, porm como foi feito em 1.5 e 1.6 agora temos termos em Z que
representam S, assim podemos tomar a transformada Z da equao 1.5 substituindo os
termos integrais e derivativos:
E est feito, um compesandor PID digital, mas ao leitor digo, no se assuste, apesar da
equao parecer no fazer muito sentido, ainda mais se tratando da implementao em
um processador, ela comear a fazer sentido a medida que ordenarmos melhor os
termos, antes de qualquer coisa, vamos desaparecer com os dois denominadores que no
contm nenhum z, isso ir ajudar a facilitar as contas. adicionarei dois operadores, h1 e
h2 onde:
h1 = t/2;
h2 = 1/t.
Eis que temos a nossa funo de transferncia, est bem mais amigvel, e permite ja
trabalhar nela para formar uma equao de diferenas. Mas antes de prosseguirmos,
vamos deixar ainda mais intuitivo para o leitor, observemos:
Vamos substituir esses coeficientes, na funo de transferncia, e vamos notar que nosso
PID digital agora nada mais do que um caso especial de filtro de IIR, possuindo dois
plos e dois zeros, de onde vem a origem do nome desse algoritmo:
Ja melhorou, certo? Vamos mexer mais um pouquinho, fatorando U(z) e E(z) para
dentro dos polinmios vamos obter:
Como? Sim meu amigo, toda aquela trabalheira de transforma pra c, transforma pra l,
e usa mtodo numrico, vai gerar essa expresso trivial, prova que para conseguir fazer
as cosas simples necessrio pensar. A equao 1.8 perfeitamente implementvel, os
coeficientes so facilmente calculveis, assim podemos traduzir essa equao como,
para computar uma nova sada do compensador, precisamos da amostra de sada
anterior, e dos trs ultimos valores de erro calculados.
Para o leitor mais atento, este, deve ter percebido que o problema de windup do termo
integral sequer existe, uma preocupao a menos, apenas escolha se quer trabalhar com
ponto fixo ou flutuante e ponha isso dentro do seu processador.
Vamos testar nosso exemplo, vamos embarcar um pequeno firmware para controlar a
luminosidade de um LED RGB por malha fechada.
Exemplo em teste
Vamos utilizar o nosso PID digital para controlar uma string de Leds, atravs da atuao
do micrcontrolador em um conversor DC-DC, alis uma das partes mais interessantes
desse kit em especial. Por ser um exemplo simples, optei pelo uso apenas do controle da
cadeia de leds vermelhos, usando o controle apenas pela tenso de sada do conversor
DC-DC (sim um boost), consultando a folha de dados desses leds, chegou - se ao
valor otimo para estabilizao da malha para 19.2[V], valor para obteno de uma
corrente de 25[mA], atravs de ajuste experimental chegou - se aos coeficientes: K p =
50, Ki = 15, Kd = 100, a taxa de amostragem ficou situada em 58 mil amostras por
segundo e uma frequncia de portadora de 150[KHz] permitem o mdulo PWM do
microcontrolador operar com resoluo de 9bits.
Eis que abaixo temos uma foto da bancada, onde temos os leds sendo controlados pelo
microcontrolador, uma das coisas que esse que vos escreve acha mais interessante a
possibilidade do prprio microcontrolador se tornar uma unidade de controle digital,
flexvel de acordo com a aplicao.
Concluso
Assim chegamos ao final dessa pequena srie de artigos, e esperamos ter desmistificado
alguns conceitos sobre a implementao de compensadores digitais em
microcontroladores de quase qualquer natureza. Esperamos ainda que os exemplos
fornecidos sejam teis para aqueles que desejam se aventurar no mundo de controle
digital. Conseguimos ainda modelar um simples compensador PID usando a
transformada Z de uma forma simples sem se preocupar , demais e apenas, com a
matemtica envolvida.
Materiais de apoio
Referncias
Controlador PID digital, uma modelagem prtica para microcontroladores Parte 2 por Felipe Neves. Esta obra est sob a licena Creative Commons
Atribuio-CompartilhaIgual 4.0 Internacional.