Post on 07-Jul-2018
8/19/2019 Controlador PID Digital Parte 2
1/17
Controlador PID digital, uma
modelagem prática para
microcontroladores - Parte 2por Felipe Neves em segunda-feira, 16 de junho de 2014.
Dando continuidade do ponto em que paramos na primeira parte dessa série, iremos
agora modelar um PID digital com uma abordagem um pouco diferente da utilizada
para concebermos o compensador descrito no artigo anterior, a idéia aqui é prover um
compensador PID que possa ser implementável de forma simples em um processador deuso geral (como foi exposto na parte I dessa série, entenda - se processador de uso geral
qualquer microcontrolador que possua pelo menos a instruço de multiplicaço por
hardware !"
Vamos recapitular
#á parte I dessa série, foi explicado o que é um sistema de controle por mal$a fec$ada,
o porque de seu uso, bem como o compensador do tipo PID (Proporcional - Integral -
Derivativo! como sendo um tipo de controlador versátil e aplicado em grande escala em
sistemas de controle dos mais variados tipos"
%inda relembramos que sua expresso toma a forma de uma equaço, como a
exemplificada a abaixo&
http://www.embarcados.com.br/author/felipe-projetosterra-com-br/http://www.embarcados.com.br/controlador-pid-digital-uma-modelagem-pratica-para-microcontroladores-parte-1/http://www.embarcados.com.br/controlador-pid-digital-uma-modelagem-pratica-para-microcontroladores-parte-1/http://www.embarcados.com.br/author/felipe-projetosterra-com-br/
8/19/2019 Controlador PID Digital Parte 2
2/17
'nde&
• Kp & oeficiente da aço proporcional)
• Ki & oeficiente da aço integral)
• Kd & oeficiente da aço derivativa
• t & Instante do estado a ser processado)
• u(t) & *inal de sa+da do sistema no instante t)
• e(t) & *inal de erro na entrada do controlador no instante t"
% partir dessa equaço seguida do uso da con$ecida transformada de aplace, obteve -
se uma equaço 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"
.m contraponto, para implementar um componente desses via soft/are (em um
microcontrolador! , tanto uma equaço, quanto a outra, mostram - se muito trabal$osas
de serem implementadas, ento, utilizando - se de uma abordagem baseada em métodos
numéricos, conseguimos conceber uma equaço de diferenças facilmente programável
em um processador&
'nde, os par0metros (constantes! podem ser calculados como segue abaixo&
8/19/2019 Controlador PID Digital Parte 2
3/17
%lém disso temos &
ti 1tempo de integraço
td 1 2empo de diferenciaço"
2ambém foi adotado um nome denominado aproximaço retangular do termo integral,
com isso poderia traduzir essa simples equaço para um programa que possa ser
embarcado no processador a ser utilizado"
!ro"lemas com a apro#ima$%o retangular
%pesar do algoritmo por aproximaço retangular do termo integral ser versátil e atender
uma boa gama de aplicaç3es, alguns problemas começam a surgir a medida que a
complexidade do sistema a ser controlado aumenta"
' primeiro e grande problema trata - se da converg4ncia da integral da funço de erro
para o valor correto quando o valor prévio dessa funço erro é igual a zero, ou quando a
diferença entre o erro corrente e o anterior passa a ser muito grande, esse problema
poderia ser corrigido aumentando - se o n5mero de iteraç3es para cálculo do termo
integral (e no baseado entre dois pontos!, porém as custas de efici4ncia de execuço"
6ma outra soluço seria aproximar a integral apenas acumulando seu valor, a cada vez
que o PID é computado, isso mantém a efici4ncia da execuço de c7digo, e causa o
mesmo efeito do aumento de iteraç3es, entretanto a acumulaço s7 ocorreria uma 5nica
vez a cada valor do PID computado, retornando o problema de converg4ncia lenta nos
resultados da integral nos primeiros valores calculados pelo PID, a medida que o
processo avança esse efeito vai sendo minimizado"
8/19/2019 Controlador PID Digital Parte 2
4/17
' outro grande problema desse algoritmo pode ser elucidado com um exemplo prático,
considerando um sistema onde o gan$o proporcional é algo elevado, e o erro acumulado
começa a crescer ou decrescer por longos per+odos de tempo, isso pode levar fatalmente
o sistema em controle a ter sobressinal (overs$oot! com valores elevados, e nos casos
mais graves, levar o sistema a uma oscilaço permanente" .sse fenmeno é con$ecido
pelo nome de wind-up , e pode ser minimizado utilizando valores baixos para o gan$o
integral, somadas a técnicas de saturaço do integrador (acumulador no caso da
aproximaço integral!, mas assim, voltamos ao problema de demora de converg4ncia,
uma vez que a saturaço pode ser entendida como zerar o integrador( ou acumulador!"
2emos ento alguns inconvenientes com esse algoritmo, ento o que pode - ser feito
para minimizar os efeitos de converg4ncia e wind-up 8 .xistem diversas formas de
modelar algoritmos de compensadores digitais a partir de circuitos anal7gicos, ou
mesmo a partir de express3es numéricas, o algoritmo que irémos descrever aqui ofereceum compensador tipo PID digital com mel$or aproximaço"
&ompensador !'( digital 2 p)los * 2 +eros
*abendo dos problemas com o primeiro algoritmo podemos proceder com a modelagem
de um controlador PID digital mais preciso" Para tal iremos precisar de uma ferramentamatemática bem con$ecida por quem 9á estudou controle digital (ou processamento
digital de sinais!, a transformada :"
.is que essa ferramenta permite traduzir equaç3es de diferença (no dom+nio do tempo!,
ou se9a aquelas em que dois eventos so separados por um intervalo cu9o seu valor é
finito e representável numéricamente, e obter uma expresso que toma uma forma muito
similar a equaç3es obtidas pela transformada de aplace para sistemas em tempo
cont+nuo"
*ua definiço, é exemplificada na equaço abaixo&
8/19/2019 Controlador PID Digital Parte 2
5/17
% .quaço ;"
8/19/2019 Controlador PID Digital Parte 2
6/17
6ma expresso bem mais simples de resolver, além disso a regra dos trapézios por
aproximar a diferença entre dois valores da funço f(t) por um aspecto trapezoidal , se a
taxa de amostragem do sistema for bem escol$ida, a converg4ncia para o resultado
dese9ado é muito mais rápida e no sofre com o problema apresentando no primeiro
algoritmo desenvolvido"
@a temos uma nova soluço para o nosso termo integral, visto que o derivativo no
necessita de modificaç3es, por que usar a transformada :, porque no partir logo para as
contas8 om o uso da transformada : , poderemos além de reduzir mais a equaço
final, pré - computar seus coeficientes, e além disso podemos utilizar sua funço de
transfer4ncia em : para analise em um simulador como o A%2%B por exemplo"
*abemos que métodos numéricos por natureza, trabal$am em um dom+nio de intervalos
discretos, o que é perfeito para nossa aplicaço, significa que podemos tomar a
transformada : da equaço ;"C8 *im podemos, mas antes vamos mudar as notaç3es para
ficarmos mais familiarizados&
% equaço acima encontra - se em uma notaço bem mais conveniente para sistema de
tempo discreto" Aas agora vem a pergunta, como essa con$ecida regra pode ser
utilizada para o prop7sito desse artigo8 amos considerar o seguinte caso, temos a
integral de uma funço, essa é o valor xEnF, adicionando condiç3es iniciais ou se9a a
constante de integraço c$egamos a seguinte relaço&
2omando a transformada de aplace e em seguida a transformada : em ambos os lados
da equaço temos ('bs" e9a que dentro dos parenteses estamos computando duas
derivadas no dom+nio do tempo cont+nuo!&
8/19/2019 Controlador PID Digital Parte 2
7/17
2emos as duas variáveis de interesse, relacionemos s em funço de :&
%ssim conseguimos relacionar a variável complexa s com a variável de tempo discreto
z" Aas antes de aplicar isso ao nosso controle PID, vamos ver como fazer para o termo
derivativo" *eguindo a lin$a de racioc+nio numérico para computar uma derivada,
temos&
8/19/2019 Controlador PID Digital Parte 2
8/17
omo fizemos para a integral, vamos mudar a notaço para o dominio de tempo
discreto&
Para facilitar a computaço vamos atrasar ambas as amostras em uma unidade e
representando por xEnF, assim obtemos&
2omemos agora, a transformada de aplace em seguida a transformada : do mesmo
modo que fizemos para a integral&
%lgebra, algebra, algebra, eis que leva a&
8/19/2019 Controlador PID Digital Parte 2
9/17
.is que temos agora uma aproximaço para o termo integral, e outra para o termo
derivativo" Aas observe que se encontram no dom+nio da frequ4ncia, e o nosso PID está
no dom+nio do tempo, recobremos a equaço ;&
Isso no é um grande problema, primeiro, vamos modificar a equaço acima para a
forma de uma funço de transfer4ncia, ou se9a o quociente da sa+da pela entrada do
controlador, eis que isso leva a&
. finalmente tomamos a transformada de aplace, da equaço acima&
' #osso PID, está com uma equaço bem mais amigável, mas ainda encontra se no
dom+nio de tempo cont+nuo, precisamos agora traduzir essa equaço para o dom+nio de
tempo discreto, porém como foi feito em ;"G e ;"H agora temos termos em : que
representam *, assim podemos tomar a transformada : da equaço ;"G substituindo ostermos integrais e derivativos&
8/19/2019 Controlador PID Digital Parte 2
10/17
. está feito, um compesandor PID digital, mas ao leitor digo, no se assuste, apesar da
equaço parecer no fazer muito sentido, ainda mais se tratando da implementaço em
um processador, ela começará a fazer sentido a medida que ordenarmos mel$or os
termos, antes de qualquer coisa, vamos desaparecer com os dois denominadores que no
contém nen$um z, isso irá a9udar a facilitar as contas" adicionarei dois operadores, h1 e
h2 onde&
$; 1 tJ
8/19/2019 Controlador PID Digital Parte 2
11/17
.is que temos a nossa funço de transfer4ncia, está bem mais amigável, e permite 9a
trabal$ar nela para formar uma equaço de diferenças" Aas antes de prosseguirmos,
vamos deixar ainda mais intuitivo para o leitor, observemos&
amos substituir esses coeficientes, na funço de transfer4ncia, e vamos notar que nosso
PID digital agora nada mais é do que um caso especial de filtro de IIK, possuindo dois
p7los e dois zeros, de onde vem a origem do nome desse algoritmo&
8/19/2019 Controlador PID Digital Parte 2
12/17
e9am como a matemática é interessante, partimos de uma equaço diferencial,
colocamos uma integral trapezoidal, uma derivada numérica, usamos duas
transformadas, para descobrir que o nosso PID mel$or aproximado é um filtro digital de
resposta impulsiva infinita" 'u se9a existem muitas formas de implementar isso em um
microcontrolador, essa mesma equaço 9a pode ser colocar em um simulador como o
A%2%B para avaliar a resposta do sistema a ser controlado"
&olocando dentro de um microcontrolador
2emos a funço de transfer4ncia em : perfeitamente usável para simular seu
comportamente em um A%2%B ou qualquer outro simulador de sistemas, porém essa
funço da forma que está no é muito 5til, para implementar em qualquer processador
que se9a, precisamos antes computar uma equaço de diferenças a partir datransformada inversa : , para isso vamos retomar a equaço ;"L&
2emos os temos de entrada e saida do sistema, coloquemos agora sa+da em funço da
entrada&
8/19/2019 Controlador PID Digital Parte 2
13/17
@a mel$orou, certo8 amos mexer mais um pouquin$o, fatorando 6(z! e .(z! para
MdentroN dos polinmios vamos obter&
Aas & a< 1 O, isso simplifica a expresso em&
.m funço de 6(z! vamos obter&
Interessante, nesse ponto podemos tomar a transformada inversa :, e surpreendam - se a
equaço de diferenças se transforma nessa simples expresso&
omo8 *im meu amigo, toda aquela trabal$eira de transforma pra cá, transforma pra lá,
e usa método numérico, vai gerar essa expresso trivial, prova que para conseguir fazer
as cosas simples é necessário pensar" % equaço ;" é perfeitamente implementável, os
coeficientes so facilmente calculáveis, assim podemos traduzir essa equaço como,
para computar uma nova sa+da do compensador, precisamos da amostra de sa+da
anterior, e dos tr4s ultimos valores de erro calculados"
8/19/2019 Controlador PID Digital Parte 2
14/17
Para o leitor mais atento, este, deve ter percebido que o problema de /indup do termo
integral sequer existe, uma preocupaço a menos, apenas escol$a se quer trabal$ar com
ponto fixo ou flutuante e pon$a isso dentro do seu processador"
amos testar nosso exemplo, vamos embarcar um pequeno firmware para controlar a
luminosidade de um .D KQB por mal$a fec$ada"
#emplo em teste
. finalmente c$egamos a sesso mais divertida do artigo, a implementaço prática,
iremos embarcar nosso firmware de teste no seguinte Rit de desenvolvimento&
Sigura ; &ed Booster PacR T Piccolo aunc$Pad"
8/19/2019 Controlador PID Digital Parte 2
15/17
#ovamente no iremos entrar em detal$es sobre o Uit ou microcontrolador, mais
informaç3es podem ser encontradas no site da 2exas, o linR está disponibilizado no fim
do artigo"
amos utilizar o nosso PID digital para controlar uma string de eds, através da atuaço
do micrcontrolador em um conversor D-D, aliás uma das partes mais interessantes
desse Rit em especial" Por ser um exemplo simples, optei pelo uso apenas do controle da
cadeia de leds vermel$os, usando o controle apenas pela tenso de sa+da do conversor
D-D (sim é um boost!, consultando a fol$a de dados desses leds, c$egou - se ao
valor otimo para estabilizaço da mal$a para ;V"
8/19/2019 Controlador PID Digital Parte 2
16/17
.is que abaixo temos uma foto da bancada, onde temos os leds sendo controlados pelo
microcontrolador, uma das coisas que esse que vos escreve ac$a mais interessante é a
possibilidade do pr7prio microcontrolador se tornar uma unidade de controle digital,
flex+vel de acordo com a aplicaço"
Sigura C & Aicrocontrolador atuando sobre o D-D
%pesar da simplicidade do exemplo, o pro9eto inteiro, encontra - se em um reposit7rio
no QitWub, a voc4 leitor deixo a liberdade de usar no pr7prio
8/19/2019 Controlador PID Digital Parte 2
17/17
%ssim c$egamos ao final dessa pequena série de artigos, e esperamos ter desmistificado
alguns conceitos sobre a implementaço de compensadores digitais em
microcontroladores de quase qualquer natureza" .speramos ainda que os exemplos
fornecidos se9am 5teis para aqueles que dese9am se aventurar no mundo de controle
digital" onseguimos ainda modelar um simples compensador PID usando a
transformada : de uma forma simples sem se preocupar , demais e apenas, com a
matemática envolvida"
ateriais de apoio
Pro9eto .xemplo & $ttps&JJgit$ub"comJuipeJPIDZ.mbarcadosZ