Resposta de motores diferente com PWM de alta frequência

8

Estamos fabricando um robô de futebol júnior e acabamos de receber nossos brilhantes motores da Maxon. Configurando o timer PWM para baixas frequências (em torno de 39kHz ou 156 kHz), o robô age como esperado. Mas isso produz alguns problemas.

  1. Põe uma corrente pesada nas baterias (cerca de 1,5 A para 3 motores, que é muito alto).
  2. A alta corrente faz com que nossos drivers de motor (L6203) aqueçam muito rapidamente e até mesmo os dissipadores de calor não os ajudarão.
  3. Os motores emitem um som tão ruim que gritam e isso não é normal.

Por outro lado, quando configuro o timer em altas frequências (como 1250 kHz ou 10000 kHz), a corrente cai para 0,2 A, o que é ideal e os sons diminuem. Mas isso causa um problema: nossos 3 motores, quando configurados para rodar em sua velocidade mais alta (PWM configurada para 255), não rodam na mesma rpm. como um deles corre mais devagar do que outros, fazendo o robô virar para um lado específico e, portanto, nossas funções de manipulação não funcionam corretamente.

Perguntando a alguém, ele me disse que os motoristas não respondem da mesma forma às frequências, resultando em velocidades diferentes e, porque nas baixas frequências a diferença é muito pequena, não notarei, mas nas frequências mais altas a diferença se torna maior e perceptível.

Então, existe alguma solução alternativa para esse problema? ou devo continuar usando frequências baixas?

PS: Estou usando o ATMEGA16 como o controlador principal com um cristal externo de 10 mHz.

Miro Markaravanes
fonte
Só para esclarecer, todos os drivers são idênticos?
Joe Baker
Sim os drivers são todos idênticos ..
Miro Markaravanes
Existe uma frequência de corte específica em que ela se torna problemática? Além disso, você tem acesso a um analisador lógico por acaso?
Joe Baker
Não sei se existe uma frequência de corte ou não ... No entanto, meu palpite é que o cristal de 10mHz não pode produzir o relógio necessário para 3 motores. É mesmo possível? o que você quer dizer com analisador lógico? no entanto, eu possuo um osciloscópio.
Miro Markaravanes
Duvido muito que seja o cristal. Um analisador lógico é um tipo especial de escopo (ou, às vezes, um módulo adicional para um escopo existente). Certa vez, eu estava lidando com um problema de instabilidade nos sinais PWM que estavam causando tremores nos servos. Usamos um Salae ( saleae.com/logic ) para coletar uma amostra grande (~ 10k de pulso) dos pulsos em uma determinada largura e medimos o jitter calculando o desvio padrão das larguras do conjunto de amostras. É possível que você use seu escopo para procurar problemas semelhantes, mas provavelmente não pode obter uma amostra grande o suficiente de uma vez para cálculos do stdev.
Joe Baker

Respostas:

3

Embora eu não saiba como corrigir a causa raiz do problema, uma solução alternativa é usar o feedback em loop fechado. Se você pode medir a velocidade de cada roda (por exemplo, com codificadores), é possível usar um algoritmo semelhante ao PID para ajustar a velocidade de suas rodas, para que o robô siga em frente.

Uma bússola ou giroscópio também seria adequado para esta tarefa.

apnorton
fonte
Eu já estou usando uma bússola e PID para minhas funções de rotação reversa para colocar o robô na direção certa em relação ao objetivo do oponente. No entanto, sua resposta funcionaria, mas eu precisaria resolver o problema, apenas reduzir as velocidades até que o robô siga em frente. Thx
Miro Markaravanes 03/03
@MiroMarkarian - O ponto é que, se você tiver um loop PID por motor, não deve importar que eles respondam de maneira diferente, porque o loop PID ajustará a saída PWM de cada motor para que o codificador no volante rastreie a velocidade e posição desejadas .
Mark Booth
0

Dois problemas no hardware,

a) Chip leva tempo para ligar e desligar. Aquecer mais enquanto estiver ligado ou desligado. Portanto, não faz sentido usar frequência muito alta. Geralmente, 10, 15 ou 20KHz no máximo, fora da faixa do ouvido humano é suficiente.

Consulte os detalhes (explique os efeitos de frequência com exemplos de 20 chips de muitas empresas) (especialmente os itens com frequência ultra-sônica de 20KHz) em
http://www.pololu.com/category/11/brushed-dc-motor-drivers

b) A bobina do motor tem indutância. Freqüência muito alta reduz o fluxo de corrente, torque baixo e baixa rotação.

Aparentemente, 0,5A por motor parece estar na faixa normal. Provavelmente, a 6, 7,2 ou 12 volts, alguns watts a 10 watts por motor para um movimento rápido do robô.

EEd
fonte