Eu tenho um processo térmico não linear (a radiação não linear se torna cada vez mais presente à medida que a temperatura aumenta) com a qual eu gostaria de ajustar um controlador PID. Eu gostaria de controlar a temperatura com a maior precisão possível.
Planejei dividir a faixa de temperatura em N faixas pseudo-lineares (a serem definidas) e para cada uma dessas faixas de temperatura: ajuste um modelo de primeira ordem usando uma pequena etapa de temperatura e calcule os parâmetros PID para se adequar a esse modelo. Os parâmetros do PID seriam alterados automaticamente, dependendo da temperatura do processo *.
Meu problema é o seguinte: considere o ponto de verificação de 70 ° C, por exemplo. O watt P já está fluindo para atingir essa temperatura. Vou injetar dP watt para aumentar a temperatura em 1 ° C. Anotarei o tempo constante e o ganho em estado estacionário será de 1 / dP ° C / W. [Por favor, reserve um momento para pensar se isso está certo?] Finalmente, ajustarei o PID para essa planta para obter os parâmetros para essa faixa de temperatura e passarei para as outras faixas.
Agora, suponha que o processo atinja 70 ° C. Os novos parâmetros são carregados e o contador integral é redefinido. O erro pode ser de 1 ° C, mas a energia necessária é muito maior do que aquela para atingir 21 ° C, é certo que o controlador exigirá menos de P watt. Isso significa que a temperatura cairá muito antes que o termo integral exija P watt, e somente então o dP watt adicional levará o processo a 71 ° C (e certamente excederá). Quanto maior o P for comparado ao dP, pior será.
Parece que os aquecedores devem ser acionados com a soma da saída do controlador e a energia necessária para permanecer na "temperatura de referência" atual (por exemplo, 70 ° C). Mas os controladores de prateleira não oferecem isso, então deve haver outra maneira.
o que estou perdendo? Qual é o caminho certo?
fonte
Respostas:
Como ajustar um controlador PID para um processo não linear?
Você não Você lineariza o processo e o controlador PID trabalha com os valores lineares.
Ao "linearizar o processo", não pretendo realmente tornar o processo linear. Isso geralmente não pode ser feito devido à física. No entanto, você pode colocar algo não linear entre a saída do controlador PID e a entrada do processo, para que a saída PID controle linearmente o processo do ponto de vista do controlador PID.
Esse linearizador não precisa ser muito preciso, pois está dentro do loop de feedback. Seu objetivo é dar a aparência de ganho aproximadamente constante em toda a faixa dinâmica de controle. Uma maneira simples e geral é uma função baseada em tabela linear por partes. 16 ou 32 segmentos geralmente são suficientes para qualquer coisa, exceto processos não lineares muito elevados.
O pior exemplo que encontrei foi controlar a corrente através de um tubo de elétrons, alterando a força com que o filamento do cátodo era acionado. A função da temperatura do cátodo para a corrente do feixe de elétrons é altamente não linear e o sistema que controla a corrente do filamento do cátodo também é um pouco não linear. Nesse caso, era muito difícil prever toda essa bagunça, então usei um procedimento de calibração durante a produção que percorreu os valores de controle da unidade de filamento, mediu a corrente do feixe para cada um e calculou uma tabela de pesquisa de 32 segmentos a partir dela. Funcionou muito bem e conseguimos ajustar o controlador PID da corrente do feixe para obter uma boa resposta em toda a faixa.
Sem uma função de linearização na frente do processo, você precisa ajustar o controlador PID para obter estabilidade no ponto de ganho incremental mais alto do processo. Isso então resulta em um comportamento muito amortecido em outros pontos.
Adicionado
Nada na sua pergunta atualizada diz nada sobre por que o método acima ainda não é uma boa ideia e aplicável. Você diz que está usando um controlador analógico. Minha primeira reação é "Os anos 80 se foram, não faça isso". No entanto, o controlador PID e o linearizador da planta podem ser independentes.
Aparentemente, a entrada da planta é de potência e a saída é de temperatura. Meça a temperatura típica do estado estacionário em vários níveis de potência. A partir disso, é possível calcular a função que converte "energia" linearizada em entrada de energia real da planta. O controlador PID analógico provavelmente está colocando uma tensão proporcional à energia. Tudo o que você precisa fazer é inserir uma caixa preta alinhada com a tensão que faz a medida linear da conversão real do nível de potência.
Normalmente você faria isso com um microcontrolador que tenha um A / D embutido. Fazer esta pesquisa de tabela e interpolação linear entre pontos é trivial. Em seguida, ele gera o resultado de uma maneira que eventualmente é convertida em tensão. Como a planta é lenta em comparação com um microcontrolador, isso pode ser tão fácil quanto filtrar e tamponar uma saída PWM. Ou você pode dirigir um D / A diretamente, embora isso não pareça necessário neste caso.
De acordo com o tema dos anos 80 do seu controlador, você pode fazer isso com A / D, memória e D / A para uma sensação retrô.
De qualquer forma, o controlador PID agora está controlando efetivamente uma planta linear, tanto quanto ela sabe, e ajustá-la para um bom desempenho deve ser possível.
Fazer uma transformação linear por partes na entrada da planta em um só lugar é mais fácil do que ajustar 3 valores dentro do controlador PID na faixa de saída. O último é um argumento, enquanto o primeiro aborda o problema diretamente. Também é muito mais fácil medir os dados para a função linearizante do que determinar os ganhos de P, I e D em vários pontos. Mesmo se você tiver feito isso, ainda terá problemas transitórios, pois os ganhos corretos não são aplicados imediatamente à situação. Mais uma vez, "ganhar agendamento" é uma farsa.
fonte
Lembre-se de que, ao linearizar um modelo, você assume efetivamente que o modelo não linear y = f (x) é substituído por y = A * (x-x0) + B. Observe que x0 é o ponto de linearização. Quando você introduz intervalos para x, você termina com vários A, B e x0. De qualquer forma, a entrada do seu controlador será um erro em relação ao ponto de linearização atual. No entanto, você ainda desloca o sinal de entrada (com B); mesmo que o erro seja 0 em relação ao ponto de linearização atual, você continuará transmitindo um sinal.
No seu exemplo, mesmo que o erro seja 0 graus (no ponto de ajuste de 70 graus), o controlador ainda emitirá uma potência maior que 0.
fonte
Uma abordagem ao controle não-linear com controladores PID, amplamente utilizada na indústria, é chamada de 'programação de ganho'.
O problema de controle não linear é dividido em uma série de regiões lineares o suficiente e os parâmetros apropriados são usados para cada região.
fonte