Implementando o controle de feedback PID


2

Sou engenheiro de computação júnior trabalhando em um projeto que envolve uma impressora 3D. É uma impressora móvel com a cabeça de impressão presa às rodas que se movem ao longo do eixo x, y da superfície em que está imprimindo. Os movimentos da roda podem diminuir em menos de um milímetro enquanto a impressora está em movimento. Isso causa um problema sério após a impressão de algumas camadas, pois cada camada não cai sobre a outra.

Estou no processo de implementação de um sensor para detectar a localização da cabeça de impressão em relação a algum ponto de referência arbitrário. Minha tarefa é implementar um loop de controle de feedback para corrigir os movimentos da impressora e imprimir o objeto corretamente.

Eu tenho uma idéia de como eu quero resolver isso; usando o sensor para detectar a localização atual, leia o código para verificar qual é a localização desejada e, em seguida, implementei o código para mover a diferença.

Minha pergunta é onde o conceito de controle PID se encaixa? As seguintes equações foram retiradas da Wikipedia para domínios de tempo / frequência.

equação

equação

Estou confuso sobre os valores de t e s nas equações acima. Eu tenho valores numéricos para entrada, saída, erro e as constantes K. Nenhum dos valores são funções, então não entendo o que acontece com a derivada e a integração envolvidas. Desculpe se isso parece uma pergunta idiota, mas eu sou um novato em controlar teoria e tenho aprendido com artigos on-line.

Respostas:


1

e(t)

  • KP(vmvd)vmvdKP

    Essencialmente, o termo proporcional funciona ajustando o sistema ao valor desejado. Mas pode nunca alcançá-lo devido à necessidade de superar forças e alcançar o equilíbrio antes de atingir o alvo.

  • vmvdKIKI

    O objetivo do termo integral é superar gradualmente o erro persistente e levar em conta quaisquer alterações no sistema (vazamento de fluido hidráulico etc.).

  • O termo derivado é o erro da última vez menos o erro agora. Não é necessário na maioria dos sistemas, mas tem um efeito lento nos outros valores. Também é um pouco barulhento, portanto, você pode querer calculá-lo com um método mais sofisticado do que apenas com as duas amostras anteriores.

É melhor não olhar muito para a formulação matemática. Melhor procurar algum código que faça isso, é muito mais fácil.

  • Como este artigo sobre PID e código e evitando pequenos problemas.

Ok, então, com base na sua explicação, eu entendo como o erro pode ser uma função em relação ao tempo, assim como em cada movimento do robô, um novo valor de erro é obtido. Mas como proceder para obter essa função? Como a diferença entre o local desejado e o local real nem sempre será a mesma?
Jay

@ Jay e é por isso que é uma função. Você o calcula todas as vezes.
Joojaa 10/10

@ Jay para esclarecer, é uma função desconhecida, você apenas obtém a saída do seu sistema. É um aceno matemático dizendo que algo variável acontece aqui; os valores que você obtém são o que o erro cospe da sua medição. A medida é a função, você não obtém nenhuma função matemática.
joojaa

se a função é desconhecida, qual é a derivada de e (t)?
Jay

1
@ Jay Se você possui um modelo do sistema, pode prever sua dinâmica com antecedência. Como a implementação de um controlador PID sem nenhum conhecimento do sistema que você está tentando controlar pode levar a um loop de feedback instável.
fibonatic

1

e (t) e u (t) são funções.

e (t) mostra a diferença entre o local necessário e o local atual. u (t) é a tensão de entrada no motor.

Isso significa que suponha que a cabeça da impressora esteja no ponto de referência de 4 cm em t = 1s, mas deve estar no ponto de referência em 5 cm, para que a diferença seja de 1 cm em t = 1 s. Portanto, a entrada de tensão do motor será u (1) = Kp (1) + Ki (1 + e (t-1)) + Kd (1-e (t-1)) / 1. Portanto, quando t = 1.1se (1.1) diminuirá devido ao esforço anterior no motor por u (1). E logo o erro será reduzido a zero. Portanto, u (t) ee (t) variam com o tempo em que são funções.

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.