Pacman

La réalisation du robot s'est effectuée selon quatre grands axes.

Il n'est bien entendu pas possible de parler en détails de tout ce qui a été fait pour faire fonctionner notre robot. Mais nous allons essayer de présenter ici les points les plus importants qu'il nous a fallu traiter.

Nous profitons également de l'occasion pour mettre à votre disposition la librairie Eagle que nous avons créee pour les composants qui ont étés mis à notre disposition et qui ne se trouvaient pas encore dessinés dans les librairies de base du logiciel.

Pacman

1. La mécanique

2. L'électronique de puissance

Pour assurer la mobilité du robot, nous utilisons des moteurs à courant continu à commutation électronique. Afin d’obtenir une vitesse de déplacement maximale, nous utilisons deux moteurs Maxon brushless de 20W. De tels moteurs ont l’avantage de ne pas utiliser de dispositif mécanique de commutation par balais et collecteurs.

La disparition de ce mécanisme permet d’augmenter sensiblement le rendement et la durée de vie des moteurs à courant continu. Le seul bémol que l’on peut attribuer à la commutation électronique est qu’elle nécessite l’utilisation d’un dispositif de commande plus complexe pour en garantir le bon fonctionnement.

Après maintes réflexions, nous avons conclut que la commande de nos moteurs nécessitait l'utilisation d'un boost et d'un onduleur.
Le boost permet d'élever les 12V fournit par les accumulateurs pour atteindre la tension nominale des moteurs qui est de 24V.
L'onduleur s'occupe de la bonne commutation des tensions appliquées aux enroulements du moteurs ainsi que du hachage de la tension qui leur est appliquée afin de commander la vitesse de rotation du rotor.
Le schéma bloc qui représente notre architecture se trouve repris à la Fig 2.1.

Schéma bloc de l'architecture de puissance
Fig. 2.1: Schéma bloc de l'architecture de puissance.

2.1 Conception du boost

Le but du boost est de fournir une tension continue de 24V à partir d’une source de tension continue de 12V. Ceci se fait en hachant le courant. Le schéma le plus simple que l’on puisse utiliser est un hacheur parallèle comme tel celui de la Fig. 2.2.

La tension moyenne aux bornes de la charge vaut alors : Uc = Us / (1 - alpha). Où alpha est la fraction de la période de temps durant laquelle le transistor T1 conduit.
Un tel boost aurait suffit si notre moteur ne faisait que tourner. Malheureusement l’utilisation des moteurs ne se borne pas à l’entraînement des roues, elle s’étend également au freinage de celles-ci. Il nous faut donc utiliser un schéma un peu plus compliqué afin de pouvoir supporter les conditions d’utilisation. Ce schéma est issu de l’association d’un hacheur série et d’un hacheur parallèle, comme décrit à la Fig. 2.3.

Schéma d'un boost simple
Fig. 2.2: Schéma d'un boost simple.
Schéma d'un boost réversible en courant
Fig. 2.3: Schéma d'un boost réversible en courant.

Ce nouveau boost est réversible en courant et nous permet de travailler dans deux cadrans: en moteur ou en frein, ce qui est suffisant pour l’utilisation que nous avons à en faire. Le choix du sens de rotation du moteur, se fait par le biais de la commande de l’onduleur. Il ne faut donc pas prévoir de réversibilité en tension du boost.

Ce circuit réversible en courant comporte en plus l’avantage de s’autoréguler, en effet si la tension sur la charge est trop importante, celle-ci diminuera d’elle même en renvoyant du courant vers la source.

La tension moyenne aux bornes de la charge est toujours Uc = Us / (1 - alpha).
Le transistor T1 conduit entre le temps t et le temps t+alpha*T, et le transistor T2 conduit entre t+alpha*T et t+T. T étant la période de hachage de l'onduleur.

2.2 Réalisation de l'onduleur

Le but de l’onduleur est de permettre au moteur de fonctionner en assurant une commutation correcte de l’alimentation de ses enroulements.

2.2.1 Schéma électrique du circuit

Le schéma de la figure 2.4 représente la connectique de base pour notre étude. Comme on peut le voir, il s’agit d’une structure en pont triphasé. Pour répondre aux besoins du moteur en terme de commutations, chaque intérupteur est constitué de la mise en parallèle d’une diode et d’un transistor MOS.

L’utilisation de transistors de type NMOS tant sur la partie supérieure que sur la partie inférieure des bras de l’onduleur est rendue possible et même très aisée par l’emploi de “bootstrap driver” dont le fonctionnement et l’emploi sont détaillés au point 2.3.1.

Les diodes placées en parallèle avec les transistors sont importantes. Sans celles-ci, lorsque les transistors formant un bras de l’onduleur sont ouverts simultanéments, aucun courant ne pourrait passer par ce bras. L’ouverture de ces transistors risquerait de couper le courant dans la source de courant que forme l’enroulement du moteur commandé par ce bras. Cela n’aurait pour conséquence que de mener à la destruction du moteur. La présence de la diode permet de regler ce problème en laissant toujours un chemin libre au courant vers l’alimentation. Comme le moteur alimenté par ce circuit présente les caractéristiques d’un filtre (les enroulements sont essentiellement des selfs), il ne faut pas prévoir de 12 dispositif de lissage de la tension ou du courant de sortie. Pour ce qui est de son alimentation, ce circuit sera connecté au boost décrit à la section 3. Ce dernier dispose déjà des éléments de filtrage nécessaire à une alimentation correcte de l’onduleur.

Le circuit de la figure 2.5 représente donc le schéma électrique de l’onduleur à réaliser.

Schéma conceptuel de l'onduleur
Fig. 2.4: Schéma conceptuel de l'onduleur.
Schéma électrique de l'onduleur
Fig. 2.5: Schéma électrique de l'onduleur.

2.2.2 Commande de l’onduleur

Sans entrer dans les détails de la logique de commande, il convient tout de même de préciser quelque peu la commande des transistors qui composent l’onduleur.

La logique de commutation des enroulements est suivie par le FPGA du boitier PicFlex. Les signaux provenants du boitier ont une tension maximale de 3,6V (logique TTL). Cette tension n’est malheureusement pas suffisante pour commander directement les bootstraps qui gèrent les transistors MOS (Voir point 2.3.1). Il faut donc prévoir un interface qui s’occupera de la mise à niveau des tensions pour le bon fonctionnement de l’ensemble.

Dans notre cas, ce rôle d’interface est rempli par des inverseurs à trigger de Schmitt (HEF40106). Lorsqu’on les alimente à une tension de 5V, ceux-ci se comportent tout à fait normalement avec un signal de 3,6V d’amplitude. Les sorties de ces inverseurs sont en full-swing. Le signal est donc restauré lors de cette inversion et le problème de commande des bootstraps est ainsi réglé.

Il s’agit tout de même de ne pas oublier que toutes les entrées du circuit sont, de ce fait, inversées. Il faudra donc fournir un 1 logique (3,6V) pour ouvrir un transistors et un 0 logique (0V) pour le fermer. Mais cela ne pose pas de problème majeur et s’implémente facilement dans le FPGA.

2.3 Autres détails

2.3.1 Commande des transistors

L’utilisation de transistors de puissance demande de disposer de signaux qui soient suffisament puissants que pour fournir les courants de pointe nécessaires à la charge et la décharge de la capacité grille.

De tels courants sont disponibles aiséments si on utilise un “driver” pour commander les transistors. Parmis le choix de composants qui nous sont proposés, figure un circuit appellé “bootstrap”. Ce circuit intégré remplit plusieures fonctionnalités intéressantes.

Le point ii est très utile car cette fonctionnalité permet de commander des transistors placés sur une tension de source élevée. On peut donc commander un circuit de puissance fonctionnant à 24V avec une tension de commande de 12V.

Le point iii présente un grand interêt. En effet, la tension qui commande le transistors est celle présente entre la grille et la source. Lors de l’utilisation en pont de tels transistors, celui de la partie supérieures de la branche voit la tension de sa source varier avec la tension de sortie. La tension de commande appliquée à la grille de ce dernier dépend alors de la tension de source et peut s’avérer difficile à générer.

Le bootstrap s’occupe tout seul de régler la tension de grille du transistor supérieur et en assure la bonne commutation. Il n’y a donc plus de difficulté à utiliser deux NMOS pour les branches d’un onduleur.

2.3.2 Délais de commutation

Lors de la mise en oeuvre de système d’électronique de puissance, il convient toujours de vérifier les bonnes commutations des interrupteurs utilisés. C’est-à-dire qu’il faut vérifier que l’on ne court-circuite jamais une source de tension ou qu’on ne déconnecte jamais une source de courant.

Si l’architecture présente ce risque, il faut prendre des précautions afin de s’assurer qu’un tel accident ne se produise pas. Le moyen le plus simple est d’introduire des retards de commutation.

Comme on peut le constater, la possibilité de court-circuiter des sources d’alimentation se présente à plusieurs endroits de notre installation de puissance. Pour éviter cela, on rajoute des délais à l’enclenchement afin de s’assurer que le transistor qui doit s’ouvrir ait bien eu le temps de finir sa commutation.

Un moyen simple pour implementer de tels délais est d’utiliser un condensateur que l’on charge et décharge lors des transitions. Si on permet une décharge rapide du condensateur, l’ouverture du transistor ne souffira d’aucun délai. Il suffit ensuite de ralentir la charge de ce même condensateur pour retarder l’instant de fermeture du transistor.

La mise en parallèle d’une résistance et d’une diode permet cette fonctionnalité. Un schéma tel celui de la figure 2.5 rempli bien cette fonction.

Pour un passage de 1 à 0, le condensateur chargé se décharge au travers de la diode polarisée en sens passant. Cette décharge se fait donc rapidement et aucun délai significatif n’est ajouté.
Lors d’un passage de 0 à 1, la diode est bloquée et le condensateur ne peut se charger qu’au travers de la résistance. Le temps de charge impose donc un délai à l’enclenchement.

Délai à l'enclenchement
Fig. 2.6: Délai à l’enclenchement.

Si vous voulez en savoir plus concernant notre étude de l'électronique de puissance dans le cadre du projet mécatronique, vous trouverez encore plus de détails dans le rapport que nous avons rendu.

3. Les capteurs

4. La programmation du PicFlex PicFlex