Controlador PID Digital Parte 2

Embed Size (px)

Citation preview

  • 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