Les pics de courant sur un banc de moteurs brushless font échouer de bons moteurs, en masquent de mauvais et peuvent endommager l'ESC ou l'alimentation. La plupart viennent de la façon dont le test pilote ou mesure le moteur, pas du moteur. Apprenez à distinguer les cinq causes habituelles, à corriger chacune, et à enregistrer les éléments de preuve dans une procédure TofuPilot pour que le prochain pic soit diagnostiqué à partir des données du run.
Diagnostic rapide
Regardez quand le pic survient et ce que fait la tension de bus au même moment :
| Symptôme | Cause probable | Vérification |
|---|---|---|
| Pic à chaque changement de gaz, montée puis décroissance | Gaz en marches, courant d'accélération | Disparaît-il avec une rampe ? |
| Pic à chaque redémarrage d'un test moteur du contrôleur de vol | Arrêt et redémarrage de MAV_CMD_DO_MOTOR_TEST | Comparer le nombre de redémarrages et de pics |
| Courant négatif et tension de bus qui monte quand le gaz baisse | Freinage régénératif | Tension de bus au-dessus de la consigne de l'alimentation |
| La tension de bus chute au moment du pic, l'ESC bipe ou se réarme | Limite de courant ou foldback de l'alimentation | Alimentation en mode courant constant |
| Échantillons hauts isolés sans lien avec le gaz | Repliement d'échantillonnage ou parasites | Disparaissent-ils avec le moyennage ? |
Des valeurs d'exemple mesurées sur un moteur de taille 3115, 1250 KV, avec un ESC 4-en-1 BLHeli_32 sur un bus 6S, sans hélice, donnent l'ordre de grandeur : environ 2,65 A établis à 70 % de gaz, des pics de courant jusqu'à environ 10 A par moteur sur des marches de gaz, et un bus porté à 36,6 V à la descente avec une alimentation de banc à découpage.
Cause 1 : gaz en marches
Une marche de gaz demande un changement de vitesse en un temps nul. L'ESC fournit le courant maximal que le moteur accepte jusqu'à ce que la vitesse rattrape la consigne, donc chaque marche produit un pic de courant, d'autant plus haut que la marche est grande.
Les tests moteur des contrôleurs de vol rendent les marches inévitables. La commande MAV_CMD_DO_MOTOR_TEST d'ArduPilot prend un gaz et une durée, et le gaz ne peut pas être modifié pendant le test. Un profil 25 %, 50 %, 70 % s'exécute donc en trois tests distincts, chacun démarrant le moteur depuis l'arrêt. Chaque redémarrage est une accélération complète, et chacun apparaît comme un pic.
Corrections :
- Générez le DShot depuis un microcontrôleur et exécutez-y les rampes, pour que le gaz change à une pente bornée (par exemple 20 %/s sans hélice).
- Si le contrôleur de vol doit rester dans la boucle, lancez un test par niveau et excluez de la fenêtre de mesure les premières secondes après chaque démarrage.
- Ne mesurez jamais le courant établi pendant le transitoire. Attendez que la vitesse se stabilise, puis échantillonnez.
Cause 2 : courant d'accélération
Même une rampe consomme plus que le régime établi, parce qu'accélérer le rotor demande du couple, et le couple demande du courant :
T_accel = J x alpha J: rotor + propeller inertia (kg m^2), alpha: rad/s^2Kt = 60 / (2 x pi x KV) torque constant (N m/A), KV in rpm/VI_accel = T_accel / Kt current added on top of the steady current1250 KV motor: Kt = 60 / (2 x pi x 1250) = 0.00764 N m/ALe courant supplémentaire croît avec l'inertie et avec la pente de la rampe. Une hélice ajoute bien plus d'inertie que le rotor nu, donc la même pente qui passe inaperçue sans hélice produit un fort dépassement avec.
Ce courant est attendu. Il ne devient un problème que lorsque la limite n'en tient pas compte. Corrections :
- Choisissez la pente de rampe d'après le dépassement de courant que vous acceptez, et gardez-la identique pour chaque unité afin que les pics soient comparables.
- Posez la limite de régime établi sur la moyenne pendant un palier, et une limite distincte, plus large, sur la crête pendant la rampe.
- Utilisez la même pente en production et dans les runs d'unités de référence qui fixent les limites.
Cause 3 : freinage régénératif à la décélération
Quand le gaz baisse, l'ESC freine activement le moteur, qui fonctionne alors en générateur. L'énergie récupérée retourne dans le bus DC. Avec une batterie, la batterie l'absorbe. Avec une alimentation de banc à découpage, rien ne l'absorbe : la plupart des alimentations de banc peuvent fournir du courant mais pas en absorber, donc les condensateurs du bus se chargent et la tension monte. Sur le banc d'exemple, une marche descendante a porté un bus 6S nominal (22,2 V) à 36,6 V, bien au-dessus des 25,2 V d'une batterie 6S pleine.
Sur un moniteur de courant bidirectionnel comme l'INA228, la régénération apparaît comme un courant négatif. Sur la relecture de l'alimentation, elle n'apparaît pas du tout, ce qui explique qu'elle passe souvent inaperçue.
La surtension contraint les condensateurs et les MOSFET de l'ESC, ainsi que tous les autres équipements du bus. Comparez les tensions nominales de la fiche technique de l'ESC avec la tension de bus la plus haute que vous enregistrez.
Corrections, de la plus simple à la plus robuste :
| Correction | Principe | Limites |
|---|---|---|
| Décélération en rampe | Réduit la puissance de freinage, donc l'énergie renvoyée par seconde | Reste une hausse ; fixez la pente d'après la crête de bus mesurée |
| Batterie en parallèle de l'alimentation | La batterie absorbe le courant renvoyé | Vérifiez que l'alimentation tolère une batterie sur sa sortie ; une diode anti-retour protège l'alimentation et laisse la batterie absorber la régénération |
| Résistance de freinage avec écrêteur de tension | Dissipe l'énergie dans une résistance au-dessus d'une tension fixée | Dimensionnez la résistance pour la puissance de freinage |
| Alimentation bidirectionnelle (source et puits) | L'alimentation absorbe elle-même le courant | Coût |
Cause 4 : limite de courant et foldback de l'alimentation
Une alimentation de banc en mode tension constante passe en mode courant constant quand la charge demande plus que sa limite. Pendant un pic, la tension de bus baisse. Si elle baisse assez, l'ESC subit une sous-tension et redémarre, et le redémarrage est une nouvelle accélération depuis l'arrêt, avec son propre pic. Les alimentations avec protection foldback réduisent encore leur courant de sortie après une surcharge, ce qui rend la chute plus profonde et plus longue.
Signes : la tension de bus chute exactement quand le courant culmine, la face avant de l'alimentation affiche CC, l'ESC joue ses tonalités de démarrage au milieu d'un test.
Corrections :
- Dimensionnez la source pour la crête, pas pour la moyenne :
P = V x I_crête x moteurs, plus une marge. Quatre moteurs avec des crêtes de 10 A sur 22,2 V demandent déjà environ 890 W. - Relevez la limite de courant pour couvrir la crête, et désactivez le foldback si l'alimentation le permet.
- Ajoutez de la capacité de découplage près de l'entrée de l'ESC, ou utilisez une batterie, qui fournit des crêtes qu'une alimentation ne peut pas fournir.
Cause 5 : repliement d'échantillonnage et parasites
Certains pics n'existent que dans les données. Le courant de l'ESC porte une ondulation à la fréquence PWM de l'ESC, des dizaines de kHz. Un moniteur réglé sur un temps de conversion court sans moyennage, interrogé à des instants irréguliers depuis Python, attrape des points au hasard sur cette ondulation. Les plus hauts ressemblent à des pics. Des lignes de mesure longues et non blindées, posées à côté des fils de phase du moteur, ajoutent les parasites des fronts de commutation.
Test : activez le moyennage. Avec l'INA228, un temps de conversion de 540 µs et 16 moyennes intègrent sur environ 8,6 ms par voie. Les pics repliés disparaissent ; les vrais subsistent et restent alignés sur les changements de gaz ou les événements de tension de bus.
Corrections : réglez temps de conversion et moyennage pour la grandeur visée, torsadez la paire de mesure Kelvin et éloignez-la des fils de phase, et n'interrogez pas plus vite que la mise à jour du registre de résultat.
Enregistrer les preuves dans le test
Un pic diagnostiqué une fois est utile. Un pic enregistré à chaque run, avec la tension de bus à côté, est un diagnostic qui attend sur le dashboard. Enregistrez courant et tension de bus sur le même axe de temps et posez des limites sur leurs extrêmes :
procedure.yaml37 lines
main: - name: Throttle Profile key: profile python: phases.profile:run_profile timeout: 90s measurements: - name: Current and Bus key: current_bus description: INA228, VSHCT 540 us, AVG 16. Negative current is regen. x_axis: legend: Time unit: s y_axis: - legend: Current key: current unit: A aggregations: - type: max validators: - operator: "<=" expected_value: 4.0 - type: min validators: - operator: ">=" expected_value: -1.0 - legend: Bus Voltage key: bus unit: V aggregations: - type: max validators: - operator: "<=" expected_value: 26.0 - type: min validators: - operator: ">=" expected_value: 21.0phases/profile.py33 lines
import timePROFILE = [(25, 5.0), (50, 5.0), (70, 5.0), (0, 0.0)] # (gaz %, palier s)RATE_PCT_S = 20def run_profile(motor, current_monitor, measurements, log): times, current, bus = [], [], [] t0 = time.monotonic() def sample_for(duration_s): end = time.monotonic() + duration_s while time.monotonic() < end: times.append(round(time.monotonic() - t0, 3)) current.append(current_monitor.read_current()) bus.append(current_monitor.read_bus_voltage()) time.sleep(0.02) previous = 0 for target, hold_s in PROFILE: motor.ramp_to(1, target, RATE_PCT_S) sample_for(abs(target - previous) / RATE_PCT_S + hold_s + 0.5) previous = target m = measurements.current_bus m.x_axis = times m.y_axis.current = current m.y_axis.bus = bus m.y_axis.current.aggregations.max = max(current) m.y_axis.current.aggregations.min = min(current) m.y_axis.bus.aggregations.max = max(bus) m.y_axis.bus.aggregations.min = min(bus) log.info(f"Bus {min(bus):.2f} to {max(bus):.2f} V, current {min(current):.2f} to {max(current):.2f} A")Chaque limite désigne une cause quand elle échoue :
| Agrégation en échec | Désigne |
|---|---|
| Courant max | Marches, pente de rampe trop forte, ou défaut moteur |
| Courant min (négatif) | Freinage régénératif à la décélération |
| Bus max | Régénération sans exutoire |
| Bus min | Limite de courant ou foldback de l'alimentation |
Les plugs motor et current_monitor sont le pilote de gaz et le moniteur INA228 du banc ; réglez workers: 1 dans execution pour qu'aucune autre phase ne pilote le moteur en même temps, et arrêtez le moteur dans une phase de teardown. Sur le dashboard, le Pareto des défauts par mesure montre laquelle des quatre agrégations échoue le plus, ce qui indique la cause dominante sur ce poste.
Pièges courants
Relever la limite de courant jusqu'à ce que les pics passent. La limite masque alors les vrais défauts. Supprimez d'abord la cause.
Chercher les pics sur l'afficheur de l'alimentation. Il moyenne sur des centaines de millisecondes et ne peut pas montrer la régénération. Mesurez à l'entrée de l'ESC.
Prendre un courant négatif pour une erreur de capteur. Sur un moniteur bidirectionnel, un courant négatif pendant la décélération est de la régénération, et il est réel.
Ignorer la surtension de bus parce que le moteur a passé. C'est l'ESC qui a encaissé la contrainte. Posez une limite sur le maximum du bus.
Comparer des crêtes mesurées avec des pentes ou des moyennages différents. Gardez le profil et la configuration du moniteur fixes, et écrivez-les dans la description de la mesure.
Points clés
- La plupart des pics viennent du test : marches de gaz, redémarrages du test moteur du contrôleur de vol, accélération trop rapide.
- Baisser le gaz renvoie de l'énergie dans le bus ; une alimentation de banc à découpage ne peut pas l'absorber et la tension monte (36,6 V sur un bus 6S dans l'exemple).
- Une alimentation en limite de courant fait chuter le bus, peut réinitialiser l'ESC et provoque un nouveau pic au redémarrage.
- Les pics repliés disparaissent avec le moyennage ; les vrais pics restent corrélés au gaz ou à la tension de bus.
- Enregistrez courant et tension de bus sur un même axe de temps avec des limites sur le max et le min, pour que chaque agrégation en échec nomme sa cause.
Pour une vue d'ensemble des bancs de test de moteurs et d'actionneurs, consultez Motor and Actuator Testing with TofuPilot.
