Como posso ajustar automaticamente os parâmetros do PID em tempo real?

15

Eu tenho um sistema servo simples que usa um controlador PID implementado em um MCU para executar o feedback. No entanto, as propriedades do sistema mudam dinamicamente e, portanto, os parâmetros PID nunca podem ser ajustados para todas as circunstâncias.

Meu robô é um braço leve com motores elétricos com tração traseira, semelhante a este:

Braço robótico leve

O braço executa várias tarefas, incluindo pegar pesos pesados, empurrar e puxar objetos pela mesa. Cada uma dessas tarefas requer diferentes parâmetros de ajuste do PID que não posso prever com facilidade.

O que eu realmente gostaria é de alguma função de nível superior que possa ajustar cuidadosamente os parâmetros em resposta ao comportamento do braço. Por exemplo, se perceber que o braço está oscilando, poderá reduzir P e aumentar D.

Existem tais algoritmos? Eu ficaria feliz mesmo se o algoritmo não aperfeiçoasse os parâmetros imediatamente. Por exemplo, o braço poderia oscilar algumas vezes antes dos parâmetros serem ajustados aos seus novos valores.

Rocketmagnet
fonte

Respostas:

10

Certa vez, um colega de trabalho e eu implementamos um algoritmo simplex para o ajuste rápido dos parâmetros PID de um circuito de controle de corrente de um motor. Essencialmente, o algoritmo modificava um parâmetro de cada vez e depois coletava dados sobre algum parâmetro de feedback que era nossa medida de bondade. O nosso foi o desvio percentual de um ponto de ajuste de destino atual. Com base em se o parâmetro de feedback ficou melhor ou pior, o próximo parâmetro foi modificado de acordo.

Ou, na Wikipedia, fale:

Que um programa linear seja dado por um quadro canônico. O algoritmo simplex prossegue executando operações de pivô sucessivas, cada uma fornecendo uma solução viável básica aprimorada; a escolha do elemento de articulação em cada etapa é amplamente determinada pelo requisito de que essa articulação melhore a solução.

Tecnicamente, usamos o método Nelder-Mead, que é um tipo de simplex. Também poderia ser descrito como um algoritmo de escalada , se você observar como ele modifica seus parâmetros de entrada, enquanto procura um parâmetro de saída ideal.

Animação Nelder-Mead

Nedler-Mead funcionou melhor em nosso caso, porque pode perseguir um ponto de ajuste. Isso foi importante porque nosso atual ponto de ajuste alvo mudou à medida que a demanda de torque aumentou.

a técnica de Nelder-Mead é um método de busca heurística que pode convergir para pontos não estacionários

embedded.kyle
fonte
você poderia vincular sua abordagem e resultados, se estiverem disponíveis?
SPRajagopal
@SPRajagopal Desculpe, mas não. Não trabalho mais para essa empresa e não tenho acesso a nenhum dado.
embedded.kyle
4

Uma boa abordagem para esse problema é chamada controle adaptativo. Em resumo, é uma metodologia de controle que presume que o modelo é conhecido, mas os parâmetros do modelo (massa, inércia etc.) não são. Seu trabalho é estimar os parâmetros desconhecidos. Uma breve introdução pode ser encontrada na wikipedia . O texto Robótica: Modelagem, Planejamento e Controle de Siciliano et al. cubra o tópico mais detalhadamente.

Edite em resposta à consulta @Rocketmagnets:

Em resumo, você deve ter um modelo matemático do seu sistema, ou seja, as equações que descrevem como o sistema evolui ao longo do tempo quando forçado ou não, mas você não precisa conhecer parâmetros dinâmicos, como a massa dos vários componentes, a inércia, etc. .. É tarefa do controlador adaptativo estimar esses parâmetros. Você precisa dar uma estimativa inicial para cada um dos parâmetros desconhecidos. Então, enquanto o sistema funciona, ele usa os sinais de controle, os sinais de saída e um método como regressão linear ou descida de gradiente para atualizar os valores de parâmetros desconhecidos. Com o tempo, os parâmetros convergirão para valores que resultarão em um estado estacionário, embora possam não corresponder aos parâmetros reais, ou seja, pode haver erros na massa, mas o valor ainda funcionará.

A partir daqui, aconselho a referência a um texto que discute o método. Acabei de notar, por exemplo, que o Dr. Marc Bodson está oferecendo uma cópia do seu texto Controle Adaptativo: Estabilidade, Robustez e Convergência em formato PDF em seu site .

DaemonMaker
fonte
Você pode dar uma explicação do método?
Rocketmagnet
11
Duvido que eu pudesse fazer justiça, uma vez que só recentemente aprendi sobre o método. Além disso, não é um método único, mas uma coleção de técnicas que foram desenvolvidas nos últimos 50 anos. No entanto, editarei minha resposta para elaborar um pouco mais.
DaemonMaker 31/10/12
2

O processo que você está descrevendo é conhecido como PID adaptável.

Parece meio que um exagero. Eu achei o PID bastante robusto ao lidar com distúrbios externos e as tarefas que você descreve não parecem além das capacidades de um único conjunto de ganhos.

user65
fonte
Estes são mais do que apenas distúrbios externos. Essas são mudanças nas características da articulação. Dobrar a massa do robô, por exemplo, leva ao excesso.
Rocketmagnet