Dans cet article, je vous propose des schémas de cablage ainsi que des explications pour fabriquer vôtre variateur. J'ai souhaité que sa fabrication soît accéssible à un plus grand nombre et adaptable sur de nombreux véhicule (jusqu'à 100V 300A).
Le principe d'un variateur de vitesse pour moteur à courant continu (DC) est de faire varier la tension perçue par le moteur.figure 1
Dans le cas du moteur à courant continu la variation est effectuée en PWM (Pulse Width Modulation ou modulation par largeur d'impulsion).figure 2
En PWM l'interupteur est fermé plus ou moins longtemps ( on parle de rapport cyclique ) pendant une certaine periode T et à une fréquence f
On rentre dans le vif du sujet, alors techniquement comment faire ? On s'interresse maintenant au pilotage et dimensionnement des composants. L'interrupteur sera remplacé en pratique par un (ou plusieurs) commutateur de puissance (transistor MOS, IGBT...) Dans une optique d'évolution le pilotage du transistor en fonction de la tension de consigne se fera par microcontrôleur. Pour ma part j'ai choisi la plate-forme de développement Arduino qui permet une approche facile de la programmation de µcontrôleur. Une Arduino vous coûtera une trentaine d'euros maximum. la première chose c'est de se familiarisé avec la bête. Pour cela il suffit de lancer le programme "blink" qui fait clignoter une led. On peut ensuite changer les initialisations (changer la PIN de la led ...), ou le programme (par exemple le temps de la tempo). La plate-forme arduino nécessite néanmoins un rapide apprentissage du language C, mais possède aussi des librairies de fonctions simplifiées réduisant considérablement les difficultés au démarrage.
et concrètement...
Développement simplifié avec Arduino
Pour notre application je vous propose le premier schéma suivant.
Programme à copier dans votre logiciel Arduino :
/*
* Programme analog to pwm
*/
int pwm_pin = 9; // output connected to digital pin 9
int pot_pin = 0; // sensor connected to pin an0
unsigned long val_pot = 0;
int val_pot_256 = 0;
void setup() //ici on place les initialisations, elles sont effectuées qu'une seule fois
{
pinMode(pot_pin, INPUT);
pinMode(pwm_pin, OUTPUT);
TCCR1B = 0<
}
void loop() // ici le programme tourne en boucle
{
val_pot=analogRead(pot_pin); //read the value from ADC on 10 bits 1024 values
val_pot_256 = val_pot / 4; //adapt to 256 values
analogWrite(pwm_pin, val_pot_256); //apply PWM
}
Maintenant vous savez convertir vôtre consigne (poignée de moto électrique à potentiomètre ou effet hall ou autre) en PWM, mais pour les plus calés il y deja un problème. La fréquence de la PWM crée par cette fonction est de 500 Hz. Pour respecter les propriétés du moteur et opérer dans le domaine non-audible il faut changer les initialisations afin d'augmenter la fréquence de la PWM.
il faut rajouter dans les initialisations ( pour f=32kHz ):
TCCR1B = 0<< CS22 | 0<< CS21 | 1<< CS20; // Prescaler setting f=32kHz
La plate-forme Arduino fournissant les bons signaux de commandes, on s'interesse maintenant au choix du transistor et à sa mise en oeuvre.
On peut se laisser tenter pas l'utilisation de transistors en montage de surface ( SMD surface mount device ) car peu cher, mais leur mise en oeuvre est moins intuitive qu'un module de puissance. Pour orienter son choix il faut connaître les caractéristiques du moteur à piloter. J'utilise le moteur NPC black max acheté chez robot market place. Voir caractéristiques ci-dessous :
moteur 24V (peut s'utiliser en 36V avec régulation de courant)
Reversible, à aimant permanent
3400 trs/min @ 24V (approx 140 trs/min par volt)
consommation 200 ampères en moyenne, 470 ampères moteur bloqué
3.8 chevaux @ 24V
7 kilos
Mon choix s'est porté sur un module de puissance MOSFET de chez Microsemi APTM10AM02FG bien que nous ne l'utiliseront qu'à moitié pour ce variateur V1.
le choix du transistor est surdimensionné afin de pouvoir l'utiliser pour d'autres applications cependant il respecte les caractéristiques du moteur. Voir tableau ci-dessous.
Ensuite le paramètre le plus important à vérifier c'est si ce transistor va chauffer.
On peut déja se faire une idée de la puissance dissipée dans le transistor grâce à la documentation technique du composant ( ou datasheet ) et quelques notions d'électronique.
On peut maintenant calculer la puissance à dissiper par la formule de l'effet joule dans une resistance P=RI² avec R le Rdson max du transistor ( la resistance maximum mesurée à ses bornes lorsqu'il est passant ) et I le courant max traversant le transistor pour mon cas il est de 450 A. Cependant en régime PWM des pertes s'ajoutent lors de la commutation, pour un courant effectif de 450 A il faudra compter un courant consommé de 500 A.
On a RI² = 2,5.10^-3 * 500² = 625 W
la datasheet donne une resistance thermique de la jonction au boitier de 0,1 °C/W, c'est à dire que l'on produira un excédent de chaleur au niveau de la jonction ici de :
0,1 * 625 = 62,5 °C de plus que la température du boitier.
Le transistor de MICROSEMI sur son radiateur avec pistes de puissance ne pas oublier la pâte thermique!

Ce transistor est de technologie MOSFET, contrairement au transistor bipolaire il se commande en tension. On l'utilise ici en régime passant/bloqué, il faut donc repérer la tension à appliquer sur la grille (ou gate, repéré G sur la datasheet) pour laquelle on est sûr d'obtenir un passage suffisant du courant. On la détermine d'après la caractéristique de transfert suivante:
Cette tension de commande étant supérieure à la tension de sortie du µcontroleur, il faudra placer un circuit d'interfaçage entre le µcontroleur et la grille du transistor, ces types de circuits sont appelés MOSFET driver. On peut parfois les commander en samples (échantillon gratuit) chez certains fabriquant de composant ( je vous recommande MAXIM qui ne m'ont jamais refusé ce type de commande ).
Pour dimensionner et choisir ce composant, il faut connaître ce que doivent respecter ses caractéristiques. En premier lieu il faut savoir que la grille d'un transistor MOSFET est capacitive, c'est-à-dire que la grille met un certain temps pour atteindre la valeur de tension finale, ici de 6V min. Ces temps doivent être maîtrisés parce que l'on à décidé de fonctionner à une fréquence élevée.
Le programme effectue un découpage de la tension de sortie sur 256 valeurs à une fréquence de 32kHz. On choisira donc un temps de montée de 1/(256(32.10^3)) soit 120 ns.
D'après le calcul de la résistance de sortie qui permet de maitriser le temps de monté de la tension de commande du transistor. Le driver de mosfet devra respecter les caractéristiques suivantes :
Il doit pouvoir être alimenté par des tension supérieure à 9V.
Il doit avoir une resistance de sortie de l'ordre de celle calculé ci-dessous :
On connait le temps de charge d'un condensateur soummis à une alimentation résistive to = R*C avec R la resistance du conducteur et C la capacité du condensateur à charger. On connait Cgs la capa présente sur la grille du transistor et Tm le temps de monté de la tension sur la grille.
On obtient à 2*to -> 87% de la charge du condensateur on cherche donc R = (2*to)/ Cgs = 1,5 Ohms.
Le driver choisi est le MAX4420 de chez MAXIM.
Première version du variateur
deuxième version du variateur V1 avec radiateur plus mince et dans son boîtier
Schéma de la première version du variateur avec un convertisseur DC-DC type Traco
Le variateur dans son boitier connecté aux batteries et moteur
Jcle@base.be le 08/01/2011 à 23h50min48s
Bonjour,
Sur les photos je vois 4 capa électrochimiques (1 grosse noire et 4 grises). A quoi servent-elles?
Cordialement,
Jean-Claude
jocelyn le 12/01/2011 à 23h06min50s
Le gros condensateur noir permet de réguler le 24V en entrée du convertisseur DC-DC les capas grises sont pour le 12V en sortie de celui-ci.
le 23/01/2011 à 10h14min18s
Bonjour,
Dans votre programme vous dites de rajouter ceci:TCCR1B = 0<< CS22 | 0<< CS21 | 1<< CS20; // Prescaler setting f=32kHz.Comment les 32KHz sont-ils selectionnés? auriez vous un calcul? et n est ce pas plutot avec le timer 2 que l on obtient les bits CS22 CS21 CS20
merci d avance
caco74 le 18/05/2011 à 00h30min49s
par mesure de securité utilise la redondance. double ton potentiometre de commande car si une piste lache ca part à fond !!!!!
jocelyn le 24/05/2011 à 01h09min52s
Doublez les capteurs et souvent une bonne chose, mais pour ma part j'utilise une poignée de trottinette électrique (à effet Hall) plutôt sûre. De toute façon, un bouton d’arrêt d'urgence à porté de genou permet de coupez l'alimentation à tout moment.
Anonyme le 05/03/2012 à 17h08min39s
Bonjour,
Pensez vous qu'un tel montage serait possible avec un moteur un peu plus puissant (pour voiture)? J'ai un projet de conversion de citroen 2CV et suis très intéressé car je connais bien arduino...
Jocelyn le 15/03/2012 à 15h02min34s
Ce variateur est utilisé en 24V mais le transistor peut fonctionner jusqu'à 100V à 200A aisément. Soit une motorisation possible jusqu'à 20kW (p=u.i). Il suffit de changer le convertisseur dc dc en entrée du variateur.
Trottinette électrique Egret One le 14/05/2012 à 15h48min01s
Enfin une trottinette qui relance l'évolution dans le domaine
Nissan lance l'opération The big Turn on le 14/05/2012 à 15h09min39s
Une opération de communication de 100 jours pour passer à l'électrique
Une Yamaha R1 électrique Au TTXGP australien le 04/05/2012 à 19h17min18s
La Yamaha R1 électrique développée par Daniel Sailer
Dominos fait parler ses scooters électriques en Hollande le 20/04/2012 à 15h35min14s
Comment règler le problème des scooters électriques trop silencieux
Muench Racing remporte la première épreuve du FIM e-Power le 17/04/2012 à 15h27min26s
La première épreuve remportée par Muench Racing à Magny-Cours