Test Types & Methods

Pourquoi des pics de courant en test moteur ?

Comprenez d'où viennent les pics de courant sur un banc moteur brushless, des marches de gaz à la régénération, et comment corriger chaque cause.

JJulien Buteau
intermediate9 min de lecture27 octobre 2026

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ômeCause probableVérification
Pic à chaque changement de gaz, montée puis décroissanceGaz en marches, courant d'accélérationDisparaît-il avec une rampe ?
Pic à chaque redémarrage d'un test moteur du contrôleur de volArrêt et redémarrage de MAV_CMD_DO_MOTOR_TESTComparer le nombre de redémarrages et de pics
Courant négatif et tension de bus qui monte quand le gaz baisseFreinage régénératifTension 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éarmeLimite de courant ou foldback de l'alimentationAlimentation en mode courant constant
Échantillons hauts isolés sans lien avec le gazRepliement d'échantillonnage ou parasitesDisparaissent-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 :

acceleration-current.txt
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/A

Le 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 :

CorrectionPrincipeLimites
Décélération en rampeRéduit la puissance de freinage, donc l'énergie renvoyée par secondeReste une hausse ; fixez la pente d'après la crête de bus mesurée
Batterie en parallèle de l'alimentationLa 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 tensionDissipe l'énergie dans une résistance au-dessus d'une tension fixéeDimensionnez la résistance pour la puissance de freinage
Alimentation bidirectionnelle (source et puits)L'alimentation absorbe elle-même le courantCoû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.yaml
37 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.0
phases/profile.py
33 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 échecDésigne
Courant maxMarches, pente de rampe trop forte, ou défaut moteur
Courant min (négatif)Freinage régénératif à la décélération
Bus maxRégénération sans exutoire
Bus minLimite 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.

Plus de guides

Mettez ce guide en pratique