« Le cas du faux pas intermittent » du moteur encodeur JGB37-520
— Une analyse des causes profondes sur 72 heures
— Une analyse des causes profondes sur 72 heures
Auteur : Équipe ECU de l'Université RoboMaster
Date : 14 juillet 2025
Date : 14 juillet 2025
-
Symptôme
Le 20 décembre 2024, lors du réglage de notre robot d'infanterie RoboMaster 2025 :
• Lors d'un sprint en ligne droite à 1,5 m/s, le robot déviait de 3 à 5 cm vers la droite tous les 3 à 5 m.
• Lors de la dérive, la vitesse du JGB37-520 droit (12 V, 30:1, encodeur AB) chutait de 15 % ; la roue gauche était normale.
• Le redémarrage du maître STM32F407 masquait le problème pendant ~30 s, puis il réapparaissait.
• Température du moteur 35 °C, alimentation 12,1 V stable, pas d'alarmes de surintensité ou de sous-tension. -
Vérifications initiales
| Étape | Action | Résultat | Conclusion |
|---|---|---|---|
| ① | Échanger les moteurs gauche/droite | La direction de la dérive suit le moteur | Problème spécifique au moteur |
| ② | Examiner les formes d'onde A/B | Ondes carrées propres de 0 à 3,3 V | Matériel de l'encodeur OK |
| ③ | Exécuter en boucle ouverte (encodeur débranché) | Pas de dérive | Problème dans le chemin en boucle fermée |
| ④ | Analyser la sortie PID | Le PID sature à 100 % instantanément | Faux « objectif non atteint » | -
Analyse des causes profondes
-
Sauts de tension sur la masse dans le câblage partagé
L'alimentation du moteur et la masse de l'encodeur partagent un câble ruban de 30 cm (moteur AWG20, encodeur AWG28). À un courant >1 A, une pointe de masse de 60 mV apparaît. -
Filtre MCU trop étroit
Filtre d'entrée STM32 TIM réglé sur 0,1 µs → les bords de pointe sont comptés comme valides → 2 à 3 impulsions supplémentaires → le PID réduit la MLI → calage réel. -
Condition de déclenchement
Se produit uniquement lorsque la MLI >80 % et le courant du moteur >1,2 A ; les tests à basse vitesse ne l'ont jamais reproduit. -
Corrections
-
Recâblage
• Paire torsadée séparée de 24 AWG pour l'alimentation 5 V et la masse de l'encodeur, acheminée physiquement à l'écart de l'alimentation.
• Découplage de 100 µF + 0,1 µF à la borne du moteur pour éliminer les sauts de tension sur la masse. -
Paramètres MCU
• Filtre TIM élargi à 1 µs.
• Activer le déglitch numérique à 3 horloges. -
Protection logicielle
• Toutes les 1 ms, vérifier la vitesse « incrément d'impulsion × rapport d'engrenage » ; déviation >5 % → signaler « erreur d'encodeur » → revenir en boucle ouverte pendant 50 ms, puis resynchroniser. -
Vérification
• Aller-retour de 100 m à 2 m/s à pleine charge : aucune dérive.
• Rodage de 48 heures (MLI aléatoire de 80 à 100 %) : aucun mauvais comptage.
• Sept matchs de compétition, 3,6 km au total : aucune dérive lors des sprints. -
Leçons apprises
-
« L'encodeur semble bon » ≠ « la chaîne de signaux est bonne » ; les sauts de tension sur la masse sont le tueur silencieux.
-
À une MLI >80 %, le JGB37-520 peut consommer 1,5 A ; traitez son câblage de masse comme une ligne d'alimentation.
-
Ajoutez toujours une échappatoire logicielle : les systèmes en boucle fermée ont besoin d'une logique « capteur perdu → sécurité en boucle ouverte ».
L'équipe ECU a transformé cette analyse en « Liste de contrôle de câblage de la série JGB V2.1 », désormais obligatoire pour chaque futur robot.



