Como otimizar os parâmetros de controle de um motor de passo?

9

Como roboticista industrial, passei a maior parte do tempo trabalhando com robôs e máquinas que usavam motores CC sem escova ou motores lineares, por isso tenho muita experiência em ajustar os parâmetros PID para esses motores.

Agora, estou passando a fazer robótica de hobby usando motores passo a passo (estou construindo meu primeiro RepRap ). Gostaria de saber o que preciso fazer de diferente.

Obviamente, sem o feedback do codificador, preciso ser muito mais conservador nas solicitações ao motor, certificando-me de sempre manter o envelope do que é possível, mas como descobrir se meu ajuste é ideal, subótimo ou (pior caso) marginalmente instável?

Obviamente, para uma determinada carga (no meu caso, a cabeça da extrusora), preciso gerar trens de pulso de passo que causam uma aceleração e velocidade exigidas que o motor pode suportar, sem perder etapas.

Meu primeiro pensamento é fazer algumas sequências de teste, por exemplo:

  • Motor doméstico precisamente no seu sensor doméstico.
  • Mover C se afasta de casa lentamente.
  • Mover M se afasta de casa com um perfil de movimento conservador.
  • Mover N etapas com o perfil de aceleração / velocidade do teste.
  • Mover N retorna ao início do teste com um perfil de movimento conservador.
  • Mover M volta para casa com um perfil de movimento conservador.
  • Mover C volta ao sensor de origem lentamente, verificando se o sensor foi acionado na posição correta.
  • Repita para uma variedade de N, M, aceleração / velocidade e perfis de carga.

Isso deve detectar de maneira confiável as etapas perdidas no movimento do perfil de teste, mas parece um espaço muito grande para ser testado, portanto, pergunto-me quais técnicas foram desenvolvidas para otimizar os parâmetros de controle do motor de passo.

Mark Booth
fonte
No mundo RepRap, o diagnóstico é que a impressão parece horrível. Essa é a detecção de etapas perdidas, até onde eu sei. Mas acho que a corrente usada pelo stepper poderia ser usada como um feedback se o stepper pudesse fazer a mudança. Mas nunca ouvi falar de alguém realmente fazendo isso.
Lars Pötter
(Esses tópicos estão ficando populares nesta semana. Deve ser por causa desse artigo da arma.) A melhor / mais fácil maneira é fazer impressões de teste, como o Teste de Tortura thingiverse.com/thing:33902

Respostas:

1

A maneira "matemática" de fazer isso é gerar uma curva de velocidade / torque para o seu stepper em uma determinada tensão e determinar a força máxima que será aplicada ao objeto em movimento (nesse caso, é provável que a maior força seja aceleração).

Observe que a maioria das impressoras hobby 3D é tão frágil que o quadro dobrado sob aceleração prejudicará a qualidade da impressão muito antes de você começar a perder as etapas. Nesse caso, você pode modelar a deflexão do quadro sob carga.

Na minha experiência, 90% das etapas perdidas são causadas por problemas mecânicos ou de software, como a fixação de eixos ou pulsos perdidos. Tente mover tudo à mão para verificar se está bom.

Velocidades e acelerações excessivamente agressivas devem ser visíveis (e audíveis) em uma impressora 3D muito antes dos interruptores.

Geralmente, uma única etapa perdida também fará com que as próximas etapas também sejam perdidas (já que o motor agora deve trabalhar ainda mais para alcançá-lo) e você terá alguns segundos de zumbido em vez de movimento.

user65
fonte