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.
Respostas:
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Δt demora. 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 é:
Com os parâmetros do controlador sendo o ganho proporcionalK tempo integral Ti e tempo derivado Td .
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:
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.
fonte
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.
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:
Depois disso, você pode jogar com os parâmetros PID para ver se consegue a resposta que deseja.
Tomando alguns palpites:
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.
Figura 3. Ciclo de serviço variável para controle CA de um aquecedor.
fonte
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.
fonte