O que é “controlar processos”?

Como acredito que já tenha dito por aqui, estou escrevendo esse conjunto de artigos pequenos sobre controle de processos industriais, e apresentarei o código fonte de um pequeno controlador PID usando o Arduino, com a intenção de mostrar para meus leitores que mesmo os projetos mais simples sempre têm características bem complexas que devem ser levadas em consideração. Estou fazendo a coisa toda intencionalmente complicada para introduzir conceitos que, provavelmente, o novato nunca pensou…

Estou agora interessado em mostrar o que é um “processo” e o que significa “controlá-lo” e, para isso, tenho que usar algumas experiências comuns entre você e eu. Vejamos: Em nossas cozinhas (e áreas-de-serviço) temos alguns dispositivos eletro-mecânicos bem conhecidos. Coisas que vocẽ não dá muita bola (até que dêem defeito ou você tenha que realizar um trabalho manualmente). Um exemplo é a geladeira…

Uma geladeira tem a função óbvia de “gelar” (senão seria uma “esquentadeira”, né?), mas tem que fazer isso mantendo um valor de temperatura controlado em seu interior. Como é que ela faz isso? Deixando de lado toda a explicação sobre troca de calor, para facilitar o entendimento, ela faz com que um gás refrigerante circule em serpentinas no interior do dispositivo. Esse gas absorve o calor e, então, é bombeado e passa por outra serpentina no exterior do dispositivo (aquela grade, na parte de trás) onde o calor é dissipado para o ambiente…. O efeito final é que dentro ficará mais frio do que fora… Essa troca de calor só acontece de maneira eficiente quando o gás está em movimento… Para isso existe um motor, uma bomba, que é ligada e desligada de tempos em tempos.

O controle de temperatura é feito com sensores, possivelmente termopares, que, quando a temperatura subir a um determinado nível, o circuito eletrônico irá acionar o motor, fazendo o gás circular, aumentando a troca de calor no interior e para o exterior…. Mas, quando a temperatura cair além de um outro nível, o motor será desligado.

Esse tipo de controle é popularmente conhecido como ON-OFF (liga-desliga) e se baseia num troço chamado histerese. Ou seja, existem dois pontos de comutação (o nível superior da temperatura que acionará o motor e o nível inferior, que o desligará).

A maioria dos dispositivos de aplicação doméstica usam esse método de controle ou não usam controle algum… Um ferro de passar roupa, por exemplo, é puramente um grande resistor que esquenta com a passagem da corrente elétrica. O material desse resistor é calculado para que uma temperatura razoável seja atingida e, ao mesmo tempo, que uma corrente elétrica razoável circule por ele… A mesma coisa acontece com um chuveiro elétrico… A geladeira é um dos poucos utensílios domésticos eletro-eletrônicos que exige algum nível de controle mais refinado… No caso da geladeira, esse controle de ligar-ou-desligar não tem muito problema… A variação de temperatura no interior pode variar alguns graus Célsius (ou até uma dezena de graus) que o “frio” será mais ou menos o mesmo. Mas, existem processos ou dispositovos em que esse tipo de variação é inaceitável.

Em muitos casos, em processos industriais, grandezas como temperatura, pressão, corrente elétrica, vazão de fluidos, entre outros, têm que ser mantidos de forma precisa e, quando houverem variações, devem ser corrigidas de uma maneira previsível e correta. Em uma indústria siderúrgica, por exemplo, variações de temperatura numa caldeira aquecida a milhares de graus Célsius, podem causar reações em cadeia que podem causar uma explosão catastrófica… Além de matar um monte de gente, haverão prejuízos financeiros enormes, tanto para os proprietários no negócio, quanto para a economia.

Um processo é apenas o que uma coisa faz (ou deve fazer) para transformar alguma outra coisa em uma outra coisa (hehe, são 3 “coisas” diferentes!)… Se eu quero transformar uma massa coberta com molho de tomate, queijo, presunto e peperoni em um troço chamado de “pizza”, tenho que processá-los através do aquecimento, num forno. O processo, neste caso, é o de assar a pizza e, para isso, precisamos da primeira “coisa” (o forno) para transformar a segunda “coisa” (a massa crua) na terceira “coisa” (a pizza).

Existem alguns detalhes: Precisamos controlar a temperatura no volume onde a pizza se encontra… A temperatura é a nossa variável do processo (sigla: PV, de Process Variable). Para aumentar a temperatura precisamos queimar um gás, fazendo esse gás fluir por um encanamento. Se controlamos o fluxo do gás, controlamos a intensidade da queima do mesmo… Assim, o fluxo do gás é nossa variável controlada ou variável manipulada (sigla: MV, de Manipulated Variable).

Queremos que o forno tenha uma temperatura constante para cozinhar a pizza num tempo definido e termos certeza que ela ficará do jeito que queremos… A temperatura desejada, ou seja, o valor desejado de nossa PV, será de (estou supondo), uns 300 ºC… Esse “ajuste” desejado da variável de processo é chamada de ponto de ajuste (siga: SP, de Set Point).

Agora podemos definir o que é um desvio do valor de ajuste ou erro da PV em relação ao SP:

\displaystyle e=SP-PV

É óbvio, não? Se SP for de 300 ºC e nosso forno estiver com a temperatura em 290 ºC, o erro é de 10 ºC. Esse valor nos diz que devemos aumentar o fluxo do gás (MV) para tornar a queima mais intensa e aumentar  a temperatura em 10 ºC.

No caso de um controlador PID (mais adiante), o valor de saída (MV) é calculado em função desse erro:

\displaystyle MV=f(e)

A coisa não é tão simples assim:

Basta aumentar MV… mas, temos que levar em conta que variar a temperatura num volume não é uma relação linear… O que queremos é aumentar PV em 10 ºC e, para isso, não podemos simplesmente aumentar MV na mesma proporção. Aliás, note que PV e MV são de grandezas e características diferentes. Em PV temos temperatura e para MV temos fluxo de gás. Características diferentes implicam em funcionamento diferente…

Por exemplo, variar a temperatura de um material tende a ser um processo lento e com um delay inicial “grande”… Ligue um forno frio com o ajuste em 300 ºC e você verá que leva alguns minutos para que o forno atinja essa temperatura…

Lembra-se da discussão a respeito da importancia do “neperiano” e? Num artigo anterior coloquei uma fórmulazinha que descreve a variação de temperatura (sem levar em conta algumas características essenciais como volume, material, coeficientes de condutividade térmica, etc):

\displaystyle \Delta T=T_0\cdot e^{-\frac{t}{\tau}}

Como eu disse no outro artigo, em essência, essa potência de base e nos diz que a curva de resposta típica de um processo térmico é mais ou menos essa:

345px-Series_RC_capacitor_voltage.svg

Esse gráfico ai é uma resposta da variação de temperatura quando há uma varição imediata no valor de MV… Supondo que MV varie de 0 a 100% no instante 0, a temperatura variará de 0 a 100% de acordo com o gráfico… Isso ai se chama resposta ao degrau unitário.

Com base nas características dessas respostas, para diversos tipos de processos, matemáticos, físicos e engenheiros descobriram que quase todo controle pode ser descrito em torno de 3 ações básicas (estou deixando de fora o delay que citei anteriormente)…

O controlador PID

Os erros, ou desvios de PV em relação a SPpodem ser manipulados através de 3 ações:

  • Proporcional – MV será corrigida proporcionalmente ao valor do erro;
  • Integral – MV será corrigida acumulando pequenas variações do erro, durante o tempo;
  • Derivativa – MV será corrigida de acordo com a varição instantânea do erro, num intervalo de tempo δt.

A primeira ação é esperada… No caso do forno, se PV varia 10 ºC em relação a SP, precisamos variar MV proporcionalmente… As outras ações tentam compensar variações mais lentas (acumulando pequenos erros) e variações bruscas (calculando a taxa de variação instantânea).

O que um controlador PID faz, em essência, é obedecer a seguinde equação:

\displaystyle MV(t)=K_p\cdot e(t)+K_i \int_{0}^{t}e(\tau)d\tau + K_d\frac{\mathrm{d}}{\mathrm{d} t}e(t)

Onde Kp, KiKd são parâmetrizações de ganho (em valores porcentuais) para cada uma das ações. Os mais experientes notarão que não estou dizendo toda a verdade: Nos controladores PID os parâmetros KiKd são medidos em segundos. Mas isso não interessa agora…

Repare: Se nosso controle precisa apenas da componente proporcional, então podemos zerar as outras constantes… Se precisa do controle proporcional e compensar pequenos erros em grandes intervalos de tempo, podemos usar P e I, deixando D de fora (zerando Kd)… Logo você percebe que a maioria dos processos sempre usa o componente P, por isso, é comum que a equação acima seja implementada como mostrada abaixo, na maioria dos controladores PID:

\displaystyle MV(t)=K_p\cdot \left ( e(t)+\frac{1}{T_i} \int_{0}^{t}e(\tau)d\tau + T_d\frac{\mathrm{d}}{\mathrm{d} t}e(t) \right )

De novo, coloco isso ai apenas para os puristas… o entendimento conceitual do controle PID não exige essa distinção…

Usando o mesmo domínio para PV, SP e MV

Para não termos que lidar com grandezas numéricas diferentes, os valores de PV, SP e MV, elas são apresentadas sempre em porcentagem, ou melhor, no intervalo entre 0.0 e 1.0. Isso meio que exige que tanto PV quanto MV sofram algum processo de linearização ou condicionamento antes de serem obtidas amostras… Sobre isso, falarei em outro artigo. Só quis citar esse fato porque falei, em outro artigo, que usaria valores entre 0.0 e 1.0 nos cálculos em ponto flutuante (quando valei sobre a precisão de floats para o nosso projeto).

Controle PID não é mágico!

Embora o controle PID seja mais preciso que um controle ON-OFF ou um simples controle proporcional, ele não se aplica a todo e qualquer tipo de processos onde precisamos de exatidão… Lembre-se que podemos facilmente corrigir pequenos erros no cálculo da integral, mas não podemos, facilmente, fazer o mesmo com a derivada! O componente derivativo é fonte de imprecisões ou instabilidade em certos processos.

Existem outros métodos de controle… Por exemplo: Fuzzy Logic e até mesmo Neural Networks… Dessas, a Fuzzy Logic é a mais simples e interessante (algum dia escrevo sobre ela).

Anúncios

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s