Como detectar quando um motor de passo parou?

12

Como posso detectar quando um motor de passo parou?

Uma pesquisa no google me levou a algumas pessoas que dizem que, quando o motor de passo para, a corrente aumenta, o que é facilmente detectável com um sensor Hall. (Ou, suponho, por qualquer um dos outros sensores de corrente mencionados em "Como posso sentir a corrente do motor?" ).

No entanto, eu medi a corrente através de (um dos 4 fios) do meu motor de passo, e está sempre dentro de alguns por cento de 0,5 A, se o meu motorista de passo está mantendo uma posição, movendo-a normalmente (o que na minha aplicação é muito lenta ), ou o motorista do stepper acha que está dizendo para o stepper se mover normalmente, mas o motor está atrelado ao limite rígido. Medir a corrente na fonte de alimentação de + 12V direcionada ao driver do motor de passo também parecia fornecer uma corrente bastante constante. Isso pode ter acontecido porque eu diminuí o limite de corrente para esse valor no driver do meu motor de passo "chopper".

Estou perdendo alguns detalhes importantes na abordagem "medir a atual"?

Uma pesquisa no google me levou a outras pessoas que medem o back-EMF (BEMF) em uma bobina do stepper durante o tempo em que o driver do stepper está dirigindo apenas a outra bobina. Mas isso parece apenas distinguir entre "um motor se movendo rapidamente" vs "um motor parado" e não parece distinguir entre o meu caso de "um motor se movendo lentamente" vs "um motor parado".

Existe alguma maneira de aplicar a abordagem BEMF, mesmo em um sistema em que eu sempre conduzo o stepper devagar e nunca o giro rapidamente?

No momento, estou usando uma placa de driver de passo com o chip TI DRV8825 e espero que o pino de "falha" me diga quando o motor de passo parar contra minha parada. Mas isso não parece estar fazendo nada - deveria me contar sobre uma barraca, mas eu a conectei errado?

Existe alguma outra técnica de chip ou drive que detecta quando o stepper parou contra o hard stop?

Existe alguma outra técnica para detectar uma parada difícil que eu possa "adicionar" a um sistema usando um driver de motor de passo pronto para uso?

(Existe algum outro site StackExchange mais apropriado para perguntas sobre motores e drivers de motores?)

David Cary
fonte
Veja também: robotics.stackexchange.com/questions/865/…
Anonymous Penguin
sensor de corrente através de um resistor shunt alimentado a um amplificador operacional para um controlador PID simples para o trabalho adc poder ...
Hã? Como isso me ajuda a detectar quando um motor de passo está parado? Como mencionei na pergunta original, "eu medi a corrente ... e sempre está dentro de alguns por cento de 0,5 A, se meu driver de passo está ... movendo-o normalmente (que no meu aplicativo é muito lento) ou o o motorista de stepper acha que está dizendo para o stepper se mover normalmente, mas o motor está atrelado ao limite rígido ".
David Cary
Isso não fornece uma resposta para a pergunta. Para criticar ou solicitar esclarecimentos a um autor, deixe um comentário abaixo da postagem - você sempre pode comentar em suas próprias postagens e, quando tiver reputação suficiente , poderá comentar em qualquer post .
Shahbaz
Eu fui procurado isso também. eu acho melhor maneira possível usando codificador de feedback comparando ângulo de passo e pisar número com pulso de entrada

Respostas:

6

Uma opção é um driver de motor de passo que usa sistema de estolagem sem sensor , como o STMicroelectronics L6470 dSPIN: Driver de motor de micro passo totalmente integrado com motor de movimento e SPI .

Uma vez calibrado, ele pode detectar uma condição de estol e elevar o pino FLAG para alertar os uC do problema.

Mark Booth
fonte
3
Bem-vindo à robótica kurtnelle, e obrigado pela sua resposta. Eu o editei para fornecer um pouco mais de contexto e fornecer informações suficientes no link para que as pessoas possam encontrar as informações em outro lugar se o link apodrecer .
Mark Booth
Descobri que a detecção de estol L6470 é muito difícil de calibrar. Meu processo foi encontrar os kvals mínimos necessários para uma operação normal e confiável (ignorando o limite de paralisação). Em seguida, subo o limite de paralisação até que ele pare de relatar erros de paralisação. Então eu aumento um pouco mais para o espaço livre. Mas, muitas vezes, ele ainda não detecta uma condição de estol ... você tem alguma sugestão?
Dave
4

Descobri que a FFT da forma de onda atual do stepper geralmente mostra as harmônicas de frequência natural do sistema motor + driver E que durante uma paralisação aparecem harmônicas de frequência extra !!! tudo o que você precisa é de um IC de conversão de corrente em tensão bidirecional rápido e um filtro de passagem de banda estreita para detectar se há harmônicos extras.

Max Witter
fonte
2

Infelizmente, como você descobriu, é difícil saber se um motor de passo está parado porque a corrente através das bobinas de um motor de passo é aproximadamente a mesma se estiver parado (não pode pisar), mantendo a posição ou pisando normalmente .

Definitivamente, você poderia detectar uma paralisação com facilidade se adicionasse um codificador ou usasse um motor de passo que já o possuía.

Por que você deseja detectar a parada do motor de passo? Ao contrário de um motor DC escovado, parar um motor de passo normalmente não é ruim para ele. Você poderia alcançar o mesmo objetivo com um interruptor de limite?

Ryantm
fonte
2
A detecção de estol é importante para detectar etapas perdidas, esp. na fresagem CNC, onde as tolerâncias das peças são críticas.
Poste antigo, mas detectar barracas também é importante se você estiver dirigindo um único eixo (em uma máquina CNC, por exemplo) com dois motores. Caso contrário, você é um pórtico quadrado, cuidadosamente construído e sem dúvida caro, pode se despedaçar.
3Dave
2

Se você deseja detectar etapas perdidas, deseja um codificador. Felizmente, existem codificadores magnéticos e ópticos que fornecem facilmente 4096 passos por rotação, portanto, mesmo um motor passo a passo com micro-passos será medido com pelo menos um passo por passo.

Observe que algumas usinas CNC podem não necessariamente detectar etapas perdidas; cabe ao operador não programar um caminho de ferramenta muito difícil para o eixo e a ferramenta e ouvir o problema quando isso acontecer. Em vez disso, esses CNCs usam apenas interruptores de fim de curso para encontrar a casa absoluta e depois trabalham inteiramente assumindo que as medidas foram tomadas.

Os codificadores também podem permitir que você experimente outros recursos, como usar um motor DC auxiliar para movimentos não engatados para corredeiras muito rápidas :-)

Jon Watte
fonte
2

Você precisa quantificar: "Eu medi a corrente através de (um dos 4 fios) do meu motor de passo, e está sempre dentro de alguns por cento de 0,5 A". Um 'poucos por cento' pode ser tudo o que você precisa para detectar um pouco de corrente extra durante a paralisação (se houver corrente extra, como eu também assumiria, mas precisaria provar), que pode ser detectada e comparada à corrente normal. Em alguns casos, 40 uA é maior e, em alguns casos, 4 mA é a principal diferença. Sem os seus parâmetros de medição, é impossível aconselhá-lo realmente.

Então, qual é exatamente a corrente para uma etapa versus paralisação e a diferença é consistente? Gostaria de medir todos os fios também ... Você está usando um unipolar correto? Eu usei steppers, mas nunca me preocupei em medir a corrente, pois os steppers que eu utilizava correspondiam aos requisitos de carga e nunca paravam. Portanto, uma resposta rápida é apenas para obter um passo maior.

Wolly
fonte