Por favor, explique em termos leigos como um PID é responsável por inércia no controle de temperatura


9

Estou construindo meu próprio forno de refluxo controlado por microprocessador. Estou usando relés (mecânicos) para ligar ou desligar os aquecedores (ou seja, tubos de quartzo). Notei que o aquecimento demora alguns segundos antes que a temperatura comece a subir.

Por enquanto, estou gerenciando o perfil de temperatura manualmente com a ajuda de um Arduino, que apenas desliga os aquecedores quando a temperatura definida é atingida. Por exemplo, quando eu ajusto a temperatura para, digamos, 120 ° Celsius e os aquecedores param, a temperatura ainda sobe de 10 a 20 graus, para que haja um pouco de superação e alguns zumbidos, que diminuem lentamente.

Eu li e assisti muitos exemplos que fazem uso de um PID para um melhor controle de temperatura. Sem isso, bastava parar os aquecedores, 10 a 20 graus abaixo do valor definido, e depois ligá-los / desligá-los em curtos períodos até que a temperatura se estabilizasse em torno do valor definido. Eu apenas sei que o delta varia com a temperatura, por isso pode não ser tão simples - eu sei sobre a natureza exponencial do aumento de temperatura com um valor definido fixo.

Assim, alguém pode explicar em termos leigos como um PID é responsável pela inércia, por exemplo, qual papel a parte integral e qual a parte derivada desempenha em termos simples, bem como como / se eu consigo descobrir intuitivamente uma estimativa da derivada e integral quantidades sem recorrer a cálculos complexos.


O desafio são os atrasos, como você viu. Assim, a chave para o controlo é na análise dos slewrates e derivado de slewrates
analogsystemsrf

@analogsystemsrf Eu acho que realmente entendi. Como você pode ler, só tenho alguma dificuldade em tentar fazer a ligação entre essa (teoria) e aquela (prática). Em resumo: qual é a parte que compensa o atraso e como ?

1
Atrasos são horríveis de se lidar. Talvez causado por um sensor muito longe do aquecedor. Ou um aquecedor muito grande, com muita massa térmica. Os fatores de escala do PID podem mudar bastante quando o arranjo físico é alterado. Atrasos reduzidos ajudam a alcançar os fatores de controle do PID, gerando erros menores.
glen_geek

Você realmente não pode implementar um PID se o único controle que você possui é ligar e desligar o aquecedor com um relé.
Mckith 17/06

2
Eu uso controladores de temperatura industriais para o trabalho. Aqueles com saída a relé geralmente limitam o tempo de ciclo a 5 s no mínimo. Aqueles com uma saída DC de estado sólido para acionar um SSR não têm essa restrição. Se você pensar em uma aplicação com uma constante de tempo longa - um forno de vidro ou uma tonelada de chocolate, por exemplo - você pode imaginar que um ciclo de trabalho de 30 anos pode ser adequado para controlá-lo bem.
Transistor

Respostas:


12

Eu tive que comentar o + Glen. Ele sempre tem seu cérebro no lugar certo, IMHO. Não há nada mais difícil de lidar em um PID do que umΔtdemora. Eu tenho lidado com controles de temperatura aquecidos por lâmpadas para FABs de wafer IC, de uma maneira ou de outra, há anos. Deixe-me começar com uma visão geral do PID e falar um pouco sobre onde NÃO será tão útil quanto em outros casos. Também vou sugerir um dos muitos outros domínios dos métodos de controle que você também pode explorar, mas com uma prioridade das etapas que você deve primeiro executar antes de ir para outro lugar.

A expressão canônica para o controle PID é:

ut=K[et+1Ti0teτdτ+Tddetdt]

Com os parâmetros do controlador sendo o ganho proporcional Ktempo integral Tie tempo derivado Td.

  1. Controle proporcional : a ação de controle aqui é simplesmente proporcional ao erro de controle. (A equação acima se reduz aut=Ket+ub, Onde ub é uma polarização ou redefinição do controlador.) Uma análise de um modelo de processo estático mostra que o processo resultante possui uma correção residual ou uma polarização do controlador em estado estacionário (embora um sistema possa ser ajustado manualmente para que possa haver um erro de controle zero em um e apenas um valor de ponto de ajuste por uma escolha adequada da polarização do controlador.) Aumentar o ganho também fornece ganho ao ruído de medição (ruim), de modo que o ganho do loop não deve ser muito alto e não há "melhor" ganho de loop como depende dos objetivos.
  2. Controle proporcional + integral : A principal função da ação integral é garantir que a saída do processo esteja de acordo com o ponto de ajuste no estado estacionário. Com ação integral, um pequeno erro positivo sempre resultará em um sinal de controle crescente e um pequeno erro negativo sempre resultará em um sinal de controle decrescente. Isso é verdade, não importa quão pequeno seja o erro.
  3. Controle PID : A adição de controle derivativo melhora a estabilidade do circuito fechado. (Levará algum tempo até que uma alteração no controle seja notada na saída do processo. Portanto, o sistema de controle se atrasará, corrigindo esse erro. O resultado do termo derivado é que é um tipo de previsão feita extrapolando o erro usando uma tangente à curva de erro, usada para antecipar os resultados atrasados.

A descrição acima, adicionada à sua própria descrição do seu problema de atraso, sugeriria que um termo derivado o ajudaria. Mas, como sempre, nada é necessariamente tão simples.

O controle proporcional integral é suficiente quando a dinâmica do processo é de 1ª ordem. É fácil descobrir isso medindo a resposta em etapas. (Se a curva de Nyquist estiver apenas no 1º e no 4º quadrantes.) Também pode ser aplicada nos casos em que o processo não requer controle rígido, mesmo que não seja de 1ª ordem.

O controle PID é suficiente para processos em que a dinâmica dominante é de 2ª ordem. O controle de temperatura é frequentemente o caso aqui. Então, mais uma vez, isso talvez defenda a adição de controle derivativo em sua situação.

Contudo. Todos os itens acima só devem ser considerados depois que você tiver feito todo o possível para melhorar algumas coisas:

  • Use o sensor de temperatura de resposta mais rápida que você pode aplicar razoavelmente (pequena massa, pirometria, etc.) e aplique-o em uma situação com o menor atraso possível de resposta ao processo que você deseja controlar (perto, não longe).
  • Reduza a variação do atraso na tomada de medidas e na aprovação do controle do processo.

Eu quero elaborar um pouco sobre este último ponto. Imagine o controle do processo como se você estivesse em algum lugar, tentando enfiar uma vara de bambu fina, muito flexível e vacilante em um buraco distante da casa de pássaros que está sentado em uma árvore acima e longe de você. Se você estiver próximo e o bastão de bambu for curto, é fácil. Você pode fazer isso todas as vezes de maneira rápida e fácil. Mas se a vara de bambu é longa e a casa de pássaros está longe de você, é muito, muito difícil de fazer. O poste continua vagando e dificulta muito sua previsão e controle.

(Se ainda não estiver claro, o comprimento da haste de bambu é como o tempo de atraso do loop.)

Portanto, o atraso é provavelmente o pior pesadelo dos sistemas de controle. Mais atraso é muito ruim. Portanto, é muito importante que você faça tudo o que estiver ao seu alcance para reduzir esse atraso. Mas há mais um ponto importante.

Agora imagine a mesma situação. Mas agora a vara de bambu também muda de comprimento. Às vezes é mais curto, às vezes mais longo e varia continuamente sem previsão de sua parte. Agora você precisa mudar de posição e nunca sabe quando o atraso vai mudar. Essa é a situação que existe se o SOFTWARE não controlar com muito cuidado e com um punho de ferro, o atraso no processamento do valor ADC e na geração de uma saída de controle DAC.

Portanto, enquanto o atraso é ruim o suficiente para um sistema de controle PID. Atraso variável é ainda pior. Portanto, você precisa prestar muita atenção ao design do seu software - atenção muito rigorosa - para não ter instruções IF e código de cálculo condicional ou uso desleixado de temporizadores etc., todos os quais podem causar variações significativas no atraso entre a amostra e a saída de controle.

Você precisa colocar o assunto acima no gerenciamento antes de se preocupar se precisa ou não de controle derivativo. Primeiras coisas primeiro. Limpe seu ato. Em seguida, examine o sistema para determinar o que resta fazer (usando PI vs PID, por exemplo).


Eu estava trabalhando em sistemas de controle PID usando um sistema pirômetro extremamente preciso (também muito caro para os clientes.) Recebi uma ligação de um pesquisador canadense que trabalha com nosso pirômetro, mas usando um controlador PID separado de uma empresa comercial muito grande (a maior em o mundo está fazendo essas coisas.) O pesquisador estava lutando com ondulações na lateral de um boule de arseneto de gálio que estava retirando de um derretimento. E queria minha ajuda para descobrir as variáveis ​​de controle PID corretas. (Ao puxar bocha, você deseja diâmetros muito uniformes.)

O controlador que ele estava usando era muito bom em qualquer medida padrão. Mas acrescentou atrasos - e esses atrasos também variaram, pois o software dentro dele não controlava rigorosamente o atraso que introduzia no loop de controle geral.

Então, a primeira coisa que eu disse a ele foi que eu adicionaria controle PID ao software em nosso pirômetro e que ele deveria simplesmente puxar o controlador externo do sistema que estava usando. Adicionei esse software em menos de uma semana e enviei a ele o sistema pyro modificado. Eu não fiz nada sofisticado com o software PID. No entanto, mantive minha variabilidade no ADC para o DAC em menos de alguns microssegundos e reduzi o atraso geral para cerca de 100 microssegundos. Eu enviei isso para ele.

Recebi uma ligação segunda-feira da semana seguinte. As bocha estavam saindo quase perfeitamente, sem nenhuma ondulação.

Era tão simples quanto reduzir os atrasos e também reduzir a variabilidade desses atrasos. Nada de especial no controle PID. Era uma implementação simples de baunilha que qualquer pessoa produziria pela primeira vez aprendendo sobre uma.

Isso ilustra a importância de espremer o atraso e a variabilidade do atraso. Certamente, o controle derivativo pode fornecer algum tipo de idéia "secante / tangente" de previsão. Mas nada substitui reduzir os atrasos e manter a variabilidade em um mínimo absoluto também.

Continue pensando no poste de bambu e no problema do buraco da casa dos pássaros.


Conclusão?

O controle de sistemas com um atraso de tempo dominante é notoriamente difícil. Sugeri algumas razões pelas quais você podeAcreditamos que um termo derivado ajudará com atrasos. Mas há um consenso geral de que a ação derivada não ajuda muito em processos com atrasos dominantes no tempo. Foi por isso que sugeri imediatamente ajudar esse pesquisador, eliminando todos os atrasos que eu poderia remover facilmente (como uma caixa PID externa, por exemplo). Não imaginava que minha implementação fosse melhor que o produto comercial. Eu sabia que minha implementação não seria tão bem avaliada, na verdade. Cripes, eu tive que escrevê-lo do zero, testá-lo e instalá-lo, e enviar uma unidade com o software recém-adicionado que nunca tinha antes, e fazer tudo isso em uma semana. Mas eu também sabia que o atraso estava matando todas as chances que esse pesquisador tinha para obter os resultados desejados. Então eu soube imediatamente que a melhor abordagem era reduzir os atrasos e não inventar algum código PID mágico implementado "brilhantemente" que somente um gênio pudesse seguir. É tudo sobre os atrasos e como esses atrasos variam, em primeiro lugar. O resto é uma prioridade muito menor.

Existem algumas coisas chamadas "compensadores de tempo morto". Mas, na análise final, você precisa fazer todo o possível para eliminar atrasos e reduzir a variabilidade nesses atrasos. E então, depois de ter feito tudo o que pode, se ainda houver um problema, é provável que você precise de controles mais sofisticados do que um PID permite. Aqui, eu buscaria transformadas de Fourier (e usando uma transformação inversa para analisar as respostas em etapas e desenvolver uma descrição das respostas do sistema), talvez. Você pode fazer muito com esses itens que não podem ser tocados com o PID. Resultados quase milagrosos, de fato, se você puder modelar a função de resposta suficientemente bem.

Mas, no seu caso, eu me concentraria em reduzir atrasos e sua variabilidade. Eu acho que você deve, se possível, considerar também evitar o uso de controle simplificado de ligar / desligar a lâmpada. Seria bom se você pudesse controlar a intensidade da lâmpada. Mas não sei se você pode considerar isso.


1
Muito obrigado, Jonk, essa foi uma explicação profunda (para mim). Quanto ao atraso de que falei bem, receio que não possa reduzi-lo, pois acredito que é inerentemente a forma como o forno é fabricado - modifiquei um forno de uso geral em um forno de refluxo, como é comum na Internet. No entanto, apesar do uso de tubos de quartzo, o aumento da temperatura é metade da taxa necessária (não superior a 1 ° C por segundo, em vez de 2-3). Quanto ao sensor, estou usando um par de termopares K e verifiquei que ele tem pouca ou nenhuma inércia. A única coisa que notei é que a defasagem de temperatura diminui se eu pré-aquecer o forno, ou seja, cerca de 50 ° C.

Você já tentou o Smith Predictor Controller para atenuar o atraso?
Chu

@Chu Ainda não, eu só aprendi sobre isso aqui :-D. Além disso, meu forno está parcialmente desmontado atualmente e eu não tenho minhas mãos nele.

Aceitei sua resposta primeiro por quão elaborada e detalhada é. Também porque eu estava aberto a usar o que couber, mesmo que isso não implique um PID. Sua resposta e a do Transistor me deram dicas suficientes sobre o que fazer a seguir. Só pode haver uma [resposta aceita]. Muito obrigado a todos de qualquer maneira .

4

Isso não responde diretamente à sua pergunta, mas fornece algumas ferramentas para você melhorar sua compreensão.

Há um simulador simples do Excel no Engineers-Excel que você pode achar útil.

insira a descrição da imagem aqui

Figura 1. Modelo do simulador PID.

A parte complicada é modelar seu processo - o forno - para estabelecer o ganho do processo K , Ts - a constante do tempo de resposta e Ls - o atraso da resposta. Eu sugiro:

  • Ligue o forno a, digamos, 40% de energia (P1) e veja a que temperatura ele se estabiliza. Repita com, digamos, 70% de energia (P2) e registre a temperatura. O ganho do processo é fornecido (para esse intervalo de configurações) como
    K=T2T1P2P1
    e a resposta terá unidades bastante ímpares de graus /%.
  • Plote a resposta da temperatura ao longo do tempo enquanto você alterna entre P1 e P2. LS, o tempo de atraso, é o tempo entre a comutação e o momento em que a temperatura começa a subir.
  • TS é o tempo (do início da resposta) até que a temperatura atinja 63% (uma constante de tempo) do caminho T1 para T2.

Depois disso, você pode jogar com os parâmetros PID para ver se consegue a resposta que deseja.

Tomando alguns palpites:

  • P1=40% e T1=92°C.
  • P1=70% e T2=176°C.
  • K=176927040=2.8°C/%.
  • Ls=3s.
  • Leva 50 s para percorrer 63% do caminho de 92 ° C a 176 ° C, TS=50s.

insira a descrição da imagem aqui

Figura 2. Saída do simulador Excel PID.

Você geralmente se livra de um termo D zero, se o seu processo provavelmente não sofrer distúrbios, como mudança repentina no ponto de ajuste ou mudança repentina na carga térmica. Isso simplifica as coisas para uma configuração de controle PI.

Para aquecimento, você pode obter energia proporcional, ligando e desligando a energia suficientemente rápido em relação ao tempo de resposta térmica.insira a descrição da imagem aqui

Figura 3. Ciclo de serviço variável para controle CA de um aquecedor.


Obrigado pela informação técnica compreensível. Apenas uma observação: como eu uso relés, que achei mais baratos que os SSRs (fonte: Digi-Key), só consigo ligar ou desligar os aquecedores, não é possível ajustar entre 0% e 100%. Também não posso usar cruzamento de zero para desligar os aquecedores, mas acho que isso é de menor importância. De qualquer forma, muito obrigado por suas idéias.

2
Minha Figura 3 mostra o controle on-off e é o que você estará fazendo e tudo bem. Você calculará a média em qualquer lugar que desejar entre 0 e 100%. Efetivamente, é uma modulação lenta da largura de pulso (PWM) com CA. Você trocará mantendo o tempo do ciclo razoavelmente curto com a vida útil do relé. O cruzamento de zero é bom, pois reduz o ruído elétrico. Se não é um problema, então não é um problema!
Transistor

2

No PID, existem 3 partes: Proporcional, Integral e Derivada.

Proporcional é o controlador mais simples. Amplifica o erro entre o sinal desejado e o real. Por exemplo, se a temperatura desejada for 100 ° C, a temperatura atual é 80 ° C e a saída = 20 * Kp. Quanta saída é fornecida é ajustada por Kp.

Se você ajustar Kp muito baixo, não haverá aquecimento suficiente e talvez nunca atinja a temperatura desejada.

Se você ajustar Kp muito alto, poderá acelerar muito rápido. A inércia pode levar a exceder e tocar. Isso ocorre porque existe um atraso entre fornecer uma determinada potência de saída e medir seu efeito.

A parte integral é necessária se você deseja compensações estáticas baixas. Observe que, para um controlador P fornecer uma saída, ele deve ter um erro presente para gerar qualquer valor de saída. Se você deseja que o erro seja muito próximo de zero, é necessário que a parte I substitua a P. Isso pode levar algum tempo.

A parte derivada é provavelmente mais interessante para o seu problema de inércia. A derivada examina a taxa de variação do erro. Se houver uma grande taxa de alteração no erro, isso significa que há uma alta inércia. Usando um fator sintonizado Kd, você pode garantir que a saída acelere no tempo. Isso ocorre para que a inércia diminua antes de atingir o valor final de saída.

Isso permite que você use um fator P (er) alto para uma resposta agressiva adequada, enquanto usa D para evitar overshoot. A parte I é usada para cometer erros estáticos e, eventualmente, será ajustada para 0.


Na verdade, a longo prazo, é o termo P que cai para zero, pois o termo I se integra exatamente ao ponto definido, deixando a diferença de saída em zero e P vezes zero é zero.
WhatRoughBeast
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.