Introdução
Primeiro, precisamos considerar o que exatamente isso é chamado de resposta ao impulso de um sistema e o que isso significa. Este é um conceito abstrato que requer um pouco de reflexão para visualizar. Eu não vou entrar em matemática rigorosa. Meu objetivo é tentar dar alguma intuição sobre o que é isso, o que leva a como você pode usá-lo.
Problema de controle de exemplo
Imagine que você tinha um grande resistor de potência com um sensor de temperatura montado nele. Tudo começa e à temperatura ambiente. Quando você liga a alimentação, sabe que a temperatura no sensor acabará subindo e se estabilizando, mas a equação exata seria muito difícil de prever. Digamos que o sistema tenha uma constante de tempo em torno de 1 minuto, embora a "constante de tempo" não seja totalmente aplicável, pois a temperatura não aumenta em um exponencial agradável, como faria em um sistema com um único pólo e, portanto, uma única constante de tempo . Digamos que você queira controlar a temperatura com precisão e fazer com que ela mude para um novo nível e fique lá de forma significativamente mais rápida do que o que faria se você apenas ligasse no nível de potência apropriado e esperasse.
Basicamente, você tem um problema no sistema de controle. A resposta de loop aberto é razoavelmente repetível e existe em algum lugar uma equação que a modela bem o suficiente, mas o problema é que existem muitos desconhecidos para você derivar essa equação.
Controle PID
Uma maneira clássica de resolver isso é com um controlador PID. De volta ao pleistoceno, quando isso tinha que ser feito na eletrônica analógica, as pessoas eram espertas e criaram um esquema que funcionava bem com os recursos analógicos disponíveis. Esse esquema foi chamado de "PID", para Proporcional , Integral e Derivativo .
Termo P
Você começa medindo o erro. Esta é apenas a resposta medida do sistema (a temperatura relatada pelo sensor em nosso caso) menos a entrada de controle (a configuração de temperatura desejada). Normalmente, eles poderiam ser organizados para estarem disponíveis como sinais de tensão; portanto, encontrar o erro era apenas uma diferença analógica, o que é bastante fácil. Você pode pensar que isso é fácil. Tudo o que você precisa fazer é acionar o resistor com maior potência, maior o erro. Isso tentará automaticamente torná-lo mais quente quando estiver muito frio e mais frio quando estiver muito quente. Isso funciona, mais ou menos. Observe que este esquema precisa de algum erro para causar qualquer saída de controle diferente de zero (energia que aciona o resistor). De fato, isso significa que quanto maior a potência necessária, maior o erro, pois essa é a única maneira de obter alta potência. Agora, você pode dizer que tudo o que precisa fazer é aumentar o ganho, para que o erro seja aceitável mesmo com alta potência. Afinal, essa é praticamente a base de como os opamps são usados em muitos circuitos. Você está certo, mas o mundo real não costuma deixar você se safar disso. Isso pode funcionar para alguns sistemas de controle simples, mas quando há todo tipo de rugas sutis na resposta e quando pode levar um tempo significativo, você acaba com algo que oscila quando o ganho é muito alto. Em outras palavras, o sistema se torna instável. mas quando existem todos os tipos de rugas sutis na resposta e quando pode levar um tempo significativo, você acaba com algo que oscila quando o ganho é muito alto. Em outras palavras, o sistema se torna instável. mas quando existem todos os tipos de rugas sutis na resposta e quando pode levar um tempo significativo, você acaba com algo que oscila quando o ganho é muito alto. Em outras palavras, o sistema se torna instável.
O que eu descrevi acima foi a parte P (proprocional) do PID. Assim como você pode tornar a saída proporcional ao sinal de erro, você também pode adicionar termos apropriados à derivada de tempo e à integral do erro. Cada um desses sinais P, I e D tem seu próprio ganho separado antes de serem somados para produzir o sinal de saída de controle.
Eu termo
O termo I permite que o erro seja anulado com o tempo. Enquanto houver algum erro positivo, o termo I continuará se acumulando, eventualmente aumentando a saída de controle até o ponto em que o erro geral desaparece. No nosso exemplo, se a temperatura for consistentemente baixa, aumentará constantemente a potência do resistor até que a temperatura de saída finalmente não esteja mais baixa. Espero que você possa ver que isso pode se tornar instável ainda mais rápido do que apenas um termo P elevado. O termo AI, por si só, pode facilmente causar ultrapassagens, que se tornam oscilações facilmente.
Termo D
O termo D às vezes é deixado de fora. O uso básico do termo D é adicionar um pouco de estabilidade para que os termos P e I sejam mais agressivos. O termo D basicamente diz: Se eu já estou indo na direção certa, pare um pouco, pois o que tenho agora parece estar nos levando até lá .
PID de ajuste
Os princípios básicos do controle PID são bastante simples, mas não é necessário obter os termos P, I e D corretamente. Isso geralmente é feito com muita experimentação e ajustes. O objetivo final é obter um sistema geral em que a saída responda o mais rápido possível, mas sem excesso ou toque excessivo e, é claro, ela precisa ser estável (não começar a oscilar sozinha). Muitos livros foram escritos sobre controle PID, como adicionar pequenas rugas às equações, mas particularmente como "ajustá-las". O ajuste refere-se à divisão dos ganhos ótimos de P, I e D.
Os sistemas de controle PID funcionam, e certamente existem muitos conhecimentos e truques por aí para fazê-los funcionar bem. No entanto, o controle PID não é a resposta certa para um sistema de controle. As pessoas parecem ter esquecido por que o PID foi escolhido em primeiro lugar, o que tinha mais a ver com restrições da eletrônica analógica do que ser algum tipo de esquema de controle ótimo universal. Infelizmente, hoje em dia, muitos engenheiros equiparam o "sistema de controle" ao PID, que nada mais é do que uma reação instintiva de pequenas idéias. Isso não torna o controle PID errado no mundo de hoje, mas apenas uma das muitas maneiras de atacar um problema de controle.
Além do PID
Hoje, um sistema de controle de malha fechada para algo como o exemplo de temperatura seria feito em um microcontrolador. Isso pode fazer muito mais coisas do que apenas pegar a derivada e integral de um valor de erro. Em um processador, você pode fazer divisões, raízes quadradas, manter um histórico de valores recentes e muito mais. Muitos esquemas de controle diferentes do PID são possíveis.
Resposta de impulso
Portanto, esqueça as limitações da eletrônica analógica e dê um passo atrás e pense em como podemos controlar um sistema voltando aos primeiros princípios. E se, para cada pequeno pedaço de saída de controle, soubéssemos o que o sistema faria. A saída de controle contínuo é apenas a soma de muitos pedacinhos. Como sabemos qual é o resultado de cada peça, podemos saber qual é o resultado de qualquer histórico anterior de saídas de controle. Agora observe que "um pequeno pedaço" da saída de controle se encaixa perfeitamente no controle digital. Você vai calcular qual deve ser a saída de controle e configurá-la para isso, depois voltar e medir as entradas novamente, calcular a nova saída de controle daquelas e configurá-la novamente, etc. Você está executando o algoritmo de controle em um loop, e mede as entradas e define a saída de controle novamente a cada iteração de loop. As entradas são "amostradas" em momentos discretos e a saída também é definida para novos valores em um intervalo fixo. Contanto que você possa fazer isso rápido o suficiente, você pode pensar nisso acontecendo em um processo contínuo. No caso de um aquecimento do resistor que normalmente leva alguns minutos para se estabilizar, certamente várias vezes por segundo é muito mais rápido do que o sistema inerentemente responde de maneira significativa que a atualização da saída em, digamos, 4 Hz parecerá contínua para o sistema. É exatamente o mesmo que a música gravada digitalmente alterando o valor da saída em etapas discretas na faixa de 40-50 kHz e sendo tão rápido que nossos ouvidos não conseguem ouvi-la e soa contínua como o original. você pode pensar nisso acontecendo em um processo contínuo. No caso de um aquecimento do resistor que normalmente leva alguns minutos para se estabilizar, certamente várias vezes por segundo é muito mais rápido do que o sistema inerentemente responde de maneira significativa que a atualização da saída em, digamos, 4 Hz parecerá contínua para o sistema. É exatamente o mesmo que a música gravada digitalmente alterando o valor da saída em etapas discretas na faixa de 40-50 kHz e sendo tão rápido que nossos ouvidos não conseguem ouvi-la e soa contínua como o original. você pode pensar nisso acontecendo em um processo contínuo. No caso de um aquecimento do resistor que normalmente leva alguns minutos para se estabilizar, certamente várias vezes por segundo é muito mais rápido do que o sistema responde inerentemente de maneira significativa que a atualização da saída em, digamos, 4 Hz parecerá contínua para o sistema. É exatamente o mesmo que a música gravada digitalmente alterando o valor da saída em etapas discretas na faixa de 40-50 kHz e sendo tão rápido que nossos ouvidos não conseguem ouvi-la e soa contínua como o original. certamente várias vezes por segundo é muito mais rápido do que o sistema inerentemente responde de maneira significativa que a atualização da saída em, digamos, 4 Hz parecerá contínua para o sistema. É exatamente o mesmo que a música gravada digitalmente alterando o valor da saída em etapas discretas na faixa de 40-50 kHz e sendo tão rápido que nossos ouvidos não conseguem ouvi-la e soa contínua como o original. certamente várias vezes por segundo é muito mais rápido do que o sistema inerentemente responde de maneira significativa que a atualização da saída em, digamos, 4 Hz parecerá contínua para o sistema. É exatamente o mesmo que a música gravada digitalmente alterando o valor da saída em etapas discretas na faixa de 40-50 kHz e sendo tão rápido que nossos ouvidos não conseguem ouvi-la e soa contínua como o original.
Então, o que poderíamos fazer se tivéssemos essa maneira mágica de saber o que o sistema fará ao longo do tempo devido a qualquer amostra de saída de controle? Como a resposta de controle real é apenas uma sequência de amostras, podemos adicionar a resposta de todas as amostras e saber qual será a resposta resultante do sistema. Em outras palavras, podemos prever a resposta do sistema para qualquer forma de onda de resposta de controle arbitrária.
Isso é legal, mas apenas prever a resposta do sistema não resolve o problema. No entanto, e aqui está o aha momento, você pode mudar isso e encontrar a saída de controle que seria necessária para obter qualquer resposta do sistema desejada. Observe que isso está resolvendo exatamente o problema de controle, mas somente se pudermos conhecer a resposta do sistema a uma única amostra de saída de controle arbitrária.
Então você provavelmente está pensando, isso é fácil, basta fazer um grande pulso e ver o que ele faz. Sim, isso funcionaria em teoria, mas na prática geralmente não funciona. Isso ocorre porque qualquer amostra de controle, mesmo uma grande, é tão pequena no esquema geral de coisas que o sistema mal tem uma resposta mensurável. E lembre-se, cada amostra de controle deve ser pequena no esquema das coisas, para que a sequência de amostras de controle pareça contínua para o sistema. Portanto, não é que essa ideia não funcione, mas que, na prática, a resposta do sistema seja tão pequena que fique oculta no ruído da medição. No exemplo do resistor, bater no resistor com 100 W por 100 ms não causará mudanças de temperatura suficientes para medir.
Resposta do passo
Mas ainda há um caminho. Embora a inserção de uma única amostra de controle no sistema nos dê sua resposta a amostras individuais diretamente, ainda podemos deduzi-la colocando uma sequência conhecida e controlada de respostas de controle no sistema e medindo sua resposta a elas. Geralmente, isso é feito colocando-se um controle etapa de. O que realmente queremos é a resposta a um pequeno sinal, mas a resposta a um único passo é apenas a integral disso. No exemplo do resistor, podemos garantir que tudo esteja em estado estacionário a 0 W e, de repente, ligue a energia e coloque 10 W no resistor. Isso causará uma mudança de temperatura bem mensurável na saída. A derivada disso com a escala correta nos diz a resposta a uma amostra de controle individual, mesmo que não possamos medir isso diretamente.
Para resumir, podemos colocar uma entrada de controle de etapa em um sistema desconhecido e medir a saída resultante. Isso é chamado de resposta em etapas . Então tomamos a derivada do tempo disso, que é chamada de resposta ao impulso . A saída do sistema resultante de qualquer amostra de entrada de controle é simplesmente a resposta ao impulso adequadamente dimensionada para a força dessa amostra de controle. A resposta do sistema a todo um histórico de amostras de controle é um monte de respostas de impulso somadas, dimensionadas e inclinadas no tempo para cada entrada de controle. Essa última operação surge muito e tem o nome especial de convolução .
Controle de convolução
Portanto, agora você deve imaginar que, para qualquer conjunto de saídas do sistema desejado, é possível criar a sequência de entradas de controle para causar essa saída. No entanto, há uma pegadinha. Se você ficar agressivo demais com o que deseja sair do sistema, as entradas de controle para conseguir isso exigirão a não obtenção de valores altos e baixos. Basicamente, quanto mais rápido você espera que o sistema responda, maiores são os valores de controle nas duas direções. No exemplo do resistor, você pode dizer matematicamente que deseja que ele vá imediatamente para uma nova temperatura, mas isso exigiria um sinal de controle infinito. Quanto mais lento você permitir que a temperatura mude para o novo valor, menor será a potência máxima necessária para despejar no resistor. Outra ruga é que às vezes a energia do resistor também precisará diminuir. Você pode'
Uma maneira de lidar com isso é o sistema de controle filtrar passa-baixo a entrada de controle do usuário antes de usá-lo internamente. Os usuários da figura fazem o que os usuários querem fazer. Deixe-os bater a entrada rapidamente. Internamente, você passa um filtro passa-baixo para suavizá-lo e reduzi-lo para o mais rápido possível, considerando a potência máxima e mínima que você pode colocar no resistor.
Exemplo do mundo real
Aqui está um exemplo parcial usando dados do mundo real. Isso ocorre a partir de um sistema embutido em um produto real que, entre outras coisas, tem que controlar uma dúzia de aquecedores para manter vários reservatórios químicos em temperaturas específicas. Nesse caso, o cliente optou por fazer o controle PID (é com o que eles se sentiram confortáveis), mas o próprio sistema ainda existe e pode ser medido. Aqui estão os dados brutos de acionamento de um dos aquecedores com uma entrada passo a passo. O tempo de iteração do loop foi de 500 ms, o que é claramente um período muito curto, considerando que o sistema ainda está visivelmente se estabelecendo nesse gráfico de escala após 2 horas.
Nesse caso, você pode ver que o aquecedor foi acionado com um passo de aproximadamente 0,35 de tamanho (o valor "Fora"). Colocar uma etapa completa de 1,0 por um longo tempo resultaria em temperatura muito alta. O deslocamento inicial pode ser removido e o resultado escalado para levar em consideração a pequena etapa de entrada para inferir a resposta da unidade:
A partir disso, você pensaria que seria apenas subtrair valores de resposta de etapa sucessivos para obter a resposta de impulso. Isso está correto na teoria, mas na prática você obtém principalmente o ruído de medição e quantização, pois o sistema muda tão pouco em 500 ms:
Observe também a pequena escala dos valores. A resposta ao impulso é mostrada em escala de 10 6 .
Claramente, grandes variações entre leituras individuais ou mesmo algumas são apenas ruído, então podemos filtrar isso com baixa frequência para se livrar das altas frequências (o ruído aleatório), o que esperamos nos permite ver a resposta subjacente mais lenta. Aqui está uma tentativa:
Isso é melhor e mostra que realmente existem dados significativos, mas ainda há muito ruído. Aqui está um resultado mais útil obtido com uma filtragem mais baixa dos dados brutos de impulso:
Agora isso é algo com o qual podemos realmente trabalhar. O ruído restante é pequeno comparado ao sinal geral, portanto não deve atrapalhar. O sinal ainda parece estar praticamente intacto. Uma maneira de ver isso é notar que o pico de 240 é quase certo a partir de uma verificação visual rápida e do globo ocular filtrando o gráfico anterior.
Então agora pare e pense sobre o que essa resposta ao impulso realmente significa. Primeiro, observe que ele é exibido multiplicado por 1M, portanto o pico é realmente 0,000240 da escala completa. Isso significa que, em teoria, se o sistema fosse acionado com um único pulso de escala completa apenas para um dos intervalos de tempo de 500 ms, essa seria a temperatura resultante relativa a ele ter sido deixado em paz. A contribuição de qualquer período de 500 ms é muito pequena, como faz sentido intuitivamente. É também por isso que medir a resposta ao impulso diretamente não funciona, pois 0,000240 de escala completa (cerca de 1 parte em 4000) está abaixo do nosso nível de ruído.
Agora você pode calcular facilmente a resposta do sistema para qualquer sinal de entrada de controle. Para cada amostra de saída de controle de 500 ms, adicione uma dessas respostas de impulso dimensionadas pelo tamanho dessa amostra de controle. O tempo 0 dessa contribuição da resposta ao impulso para o sinal final de saída do sistema é no momento da sua amostra de controle. Portanto, o sinal de saída do sistema é uma sucessão dessas respostas de impulso deslocadas em 500 ms uma da outra, cada uma dimensionada para o nível de amostra de controle naquele momento.
A resposta do sistema é a convolução da entrada de controle com essa resposta de impulso, calculada em cada amostra de controle, que é a cada 500 ms neste exemplo. Para criar um sistema de controle com isso, você trabalha para trás para determinar a entrada de controle que resulta na saída do sistema desejada.
Essa resposta ao impulso ainda é bastante útil, mesmo se você quiser executar um controlador PID clássico. Ajustar um controlador PID requer muita experimentação. Cada iteração levaria uma ou duas horas no sistema real, o que tornaria o ajuste iterativo muito muito lento. Com a resposta ao impulso, você pode simular a resposta do sistema em um computador em uma fração de segundo. Agora você pode experimentar novos valores de PID o mais rápido possível, sem precisar esperar uma ou duas horas para que o sistema real mostre sua resposta. Obviamente, os valores finais sempre devem ser verificados no sistema real, mas a maior parte do trabalho pode ser feita com simulação na fração do tempo. Isto é o que eu quis dizer com "Você pode usar isso como uma base de simulação para encontrar os parâmetros para o controle PID à moda antiga" na passagem que você citou na sua pergunta.