O caso do erro de passo intermitente do motor de codificação JGB37-520
¢ Uma análise das causas raiz de 72 horas
¢ Uma análise das causas raiz de 72 horas
Autor: Equipa da Universidade RoboMaster ECU
Data: 14 de Julho de 2025
Data: 14 de Julho de 2025
-
Sintoma
20 de dezembro de 2024, durante o ajuste do nosso robô de infantaria 2025 RoboMaster:
• A uma velocidade de 1,5 m/s em linha reta, o robô deslocou-se 3 ̊5 cm para a direita a cada 3 ̊5 m.
• No caso da deriva, a direita JGB37-520 (12 V, 30:1, encoder AB) velocidade caiu 15 %; roda esquerda normal.
• A reinicialização do mestre STM32F407 mascarou o problema por ~ 30 s, depois voltou.
• Temperatura do motor 35 °C, alimentação constante de 12,1 V, sem alarmes de sobrecorrência ou subvoltagem. -
Verificações iniciais
Passo. Ação. Resultado. Conclusão.
- Não, não, não.
1 Troca de motores para a esquerda/direita Direção da deriva segue o motor
2 Escala de onda A/B. Limpar ondas quadradas de 3,3 V. Hardware do codificador OK.
♫ 3 ♫ Execute em loop aberto (codificador desconectado) ♫ ♫ Sem deriva ♫ ♫ Problemas em caminho de loop fechado ♫
4 Lógico-analisar saída PID PID satura em 100% instantaneamente Falso "alvo não alcançado" -
Análise das causas raiz
-
Reboque de terra em cablagem compartilhada
A potência do motor e o codificador GND compartilham um cabo de fita de 30 cm (motor AWG20, codificador AWG28). -
Filtro MCU demasiado estreito
O filtro de entrada STM32 TIM definido em 0,1 μs → as bordas de pico contadas como válidas → 2?? 3 pulsos extras → o PID reduz o PWM → a paralisação real. -
Condição do gatilho
Ocorre apenas quando o PWM é > 80% e a corrente do motor > 1,2 A; os ensaios a baixas velocidades nunca o reproduziram. -
Correções
-
Religação
• Separar 24 AWG par torcido para o codificador 5 V & GND, fisicamente desviado da energia.
• Desacoplamento de 100 μF + 0,1 μF no terminal do motor para eliminar o salto do solo. -
Parâmetros da MCU
• Filtro TIM alargado para 1 μs.
• Ativar a desaceleração digital de 3 horas. -
Protecção do software
• A cada 1 ms, verificar o aumento de impulso × taxa de marcha; desvio > 5% → sinal de falha do codificador → voltar ao ciclo aberto durante 50 ms e depois sincronizar novamente. -
Verificação
• 100 m de ida e volta a 2 m/s a plena carga: deriva zero.
• 48 horas de combustão (80-100% PWM aleatório): não há erros de contagem.
• Sete partidas de competição, 3,6 km no total: sem drift de sprint. -
Lições aprendidas
-
O codificador parece bom ≠ a cadeia de sinal é boa ≠ o salto do solo é o assassino silencioso.
-
Em PWM > 80%, o JGB37-520 pode puxar 1,5 A; trate sua fiação de terra como uma linha de energia.
-
Adicione sempre escape de software: sistemas de circuito fechado precisam de perda de sensor → lógica de segurança de circuito aberto.
A equipe da ECU transformou este exercício em JGB-Series Wiring Checklist V2.1, agora obrigatório para todos os futuros bots.



