Aller au contenu


Information tutoriel

  • Ajouté le: déc. 17 2009 04:26
  • Date Updated: janv. 23 2015 01:45
  • Lectures: 37809
 


* * * * *
0 Notes

Choisir et simuler un moteur pour votre robot

Posté par Glius on déc. 17 2009 04:26
Introduction

Dans ce tutoriel, je vous propose deux choses :

- Une méthode pour trouver les caractéristiques des moteurs de votre futur robot.
- Une méthode pour simuler les performances réelles de votre futur robot.


Attention : cette partie nécessite d'avoir un minimum de connaissances sur les asservissements. Je vous invite à aller consulter les tutoriels tels que celui sur les asservissements et la régulation.
Pré-sélection d'un moteur !



Ici, nous allons voir comment pré-selectionner un moteur pour un robot dont les moteurs seraient équipés de roues rondes (sait-on jamais... ).

Avec un niveau de Terminale S, vous devriez pouvoir comprendre sans trop de problèmes. Sinon, vous pouvez aller directement aux résultats et il vous sera demandé de savoir multiplier et diviser wink.gif.

Dans ce tutoriel, nous pourrons prendre en compte l'existence d'une pente que le robot devra grimper ! Si vous n'avez pas de pentes, vous pourrez voir que les calculs sont presque les mêmes que ceux de Robocop dans son tutoriel sur la sélection de moteurs. La différence, ici, vient surtout de l'intégration d'une pente dans les calculs.

Vous êtes prêt ? C'est parti !

question.pngComment s'organise-t-on ?


1 / On regarde les données qui vont être nécessaires à nos calculs !
2 / On énonce le théorème physique et on l'explique
3 / On applique notre théorème pour connaitre les caractéristiques du moteur et on critique les résultats !
4 / On calcule l'accélération de notre robot !

Enfin, ceci nous permettra de connaitre les caractéristiques de notre moteur ! Il ne restera plus qu'à trouver un moteur correspondant à ce qu'il nous faudrait.

Données nécessaires pour le calcul


Notations :
- m est la masse totale du robot, en Kg
- v(t) la vitesse à un instant t, en Mètres / Seconde
- d une distance, en Mètres
- g constante gravitationnelle, en Mètres / s^2 (on peut l'arrondir à 10)
- r diamètre de la roue, en Mètres
- alpha la pente que le robot doit monter, en radians de préférence)

Rappel :
math_982_561a1d45f84b2433b1c23e1ea1014ab


Théorème à appliquer


Le théorème :
Pour calculer la puissance du moteur, on va utiliser le théorème de l'énergie cinétique. Voici ce qu'il traduit :
La variation de l'énergie cinétique entre l'instant 0 et l'instant t est égale à la somme des travaux des forces extérieures. Le travail d'une force est égal à la multiplication du vecteur force par le vecteur de déplacement...)
Mathématiquement :
math_984_51a0477e8e56df8a654b4cc1fcee43e


Avec :
math_982.5_73a644b753e88edd14dc8a537c626
math_974_0b0c1d5932e4dfea863edd832417ad3

Bilan des forces et application au théorème


Quelles sont les forces qui travaillent ?

Faisons un schéma simple pour visualiser le problème :

vfou1tk8l0.png


On a donc :
- La force moteur qui fait avancer le robot (force vers l'avant et parallèle au sol : le robot monte la pente). Le travail est positif car le la force est dans le même sens que le mouvement du robot :
math_993_69285370643408deee82d4566922cee

- Le poids du robot qui a tendance à lui faire descendre la pente. L'angle entre la verticale et la force est égal à l'angle de la pente (c'est mathématique). Le travail est négatif car le mouvement est en sens inverse de la force :
math_990.5_07d3b1a1e1b6afb9b80864bdbcef3

D'après la formule, s'il n'y a pas de pente (angle nul) alors il n'y a pas de travail de la part de cette force ! Inversement, plus l'angle est grand, et plus le travail est important (et négatif) : il faudra donc un travail plus important de la part du moteur pour faire avancer le robot !
- Le robot roule sans glisser, donc la réaction du support est perpendiculaire au support, donc pas de travail.

Mais que voulons nous ? Nous voulons que, dans cette situation, le moteur donne au robot une vitesse v(t) alors qu'il a parcourue une distance d.

Au final :
math_984_5dabffcec36b88b61da3468683983d7

Et donc :
math_984_51a0477e8e56df8a654b4cc1fcee43e

math_978.5_f418c79951fb17e18ea0614b36840

math_978.5_539c27a81964ae8d56fd8d9f92e04


On connait donc la force F (en Newton) que doit fournir le moteur par l'intermédiaire des roues (de rayon r) !
Cette force F est telle que la pente est compensée et qu'on a le mouvement voulu ! La force compense donc l'attraction terrestre et donne l'accélération voulue. Logique, non ? tongue.gif

Or un moteur fournit un couple. Pour connaitre ce couple, il suffit de multiplier la force par le rayon de la roue du robot :
math_983.5_2b879838282c824a32ed71858578d



Mais le couple n'est pas tout : il nous manque la vitesse du moteur !
Résumons nous : le robot doit avoir un couple Cm pour atteindre une vitesse v(t) ! Avec ces valeurs, on va pouvoir calculer la puissance que le moteur doit fournir ! Au vu des résultats précédents, on peut aisément calculer la puissance du moteur :
math_975.5_deee4d351bbc685007b6047531eaf

math_975.5_ece68b8bf7e3ea12b65c5868d272a

Le résultat du calcul nous donne la puissance du moteur !

Et voilà ! Nous connaissons le couple nécessaire du moteur pour avoir ce mouvement. Il ne reste plus qu'à éplucher les sites / catalogues des fournisseurs !

Accélération du robot


Accélération :
Pour connaitre approximativement l'accélération du robot, il suffit d'appliquer le Principe Fondamental de la Dynamique (PFD)et de le projeter sur la direction de déplacement du robot. On obtient :
math_990.5_8ecc0778811e4d0ece8cd3099d683

math_982_067de795583d8389b23963a79578c6f


Pourquoi approximativement ? Vous le verrez dans la deuxième partie du tutoriel !

Récapitulatif


math_975.5_8b13a38894795af62d83c25af5206

math_982_126f809bd8f9cff2ad24ddc60f0edd4

math_975.5_ece68b8bf7e3ea12b65c5868d272a



Remarque :
- Si la pente est nulle, il suffit de mettre l'angle nul. Dans le cas, le PFD donne directement un triple égalité qui permet d'avoir facilement accélération et force du moteur :
math_978.5_58fda4beae13660dadaee62d3ee21

- Si la pente est très faible, le sinus de l'angle l'est aussi... il est donc négligeable
- Le calcul ne tient pas compte de la "tenue de route"... veillez à mettre des pneus qui accrochent bien, comme du caoutchouc !
Voilà... Maintenant vous savez calculer les caractéristiques de votre moteur ! Il ne vous reste plus qu'à choisir !

Mais attention... ceci est très théorique, car cela implique que votre robot ait un couple qui reste constant jusqu'à ce que le robot ait atteint sa vitesse v(t). Mais dans la réalité, plus le moteur va vite et plus le couple diminue... donc il est possible que votre robot n'ait pas tout à fait la vitesse voulue ! Mais la différence ne devrait pas être très grande.
Dans la deuxième partie, je vous propose donc de simuler les performances de votre robot pour connaître les caractéristiques dynamiques "réelles" de votre engin wink.gif !

Simuler votre moteur

La sélection de moteurs est toujours un exercice périlleux : sera-t-il assez puissant ? Aurais-je la vitesse voulue ? ...
Tant de questions qui vous feront faire des cauchemars !
Ici, je vais tenter de vous expliquer comment simuler les capacités de votre robot, et plus particulièrement de votre moteur. C'est à dire qu'avec les caractéristiques de celui-ci, on va pouvoir calculer la vitesse "réelle" maximale de votre robot !

Toutefois :
- Il vous faut un minimum de notions en asservissement pour comprendre la démonstration
- Cette méthode peut aussi servir à obtenir la courbe de vitesse du robot, mais pour ça il vous faudra utiliser le module Simulink, qui est fournit avec Matlab (payant), ou le module Scicos fournit avec Scilab (gratuit... mais je ne le maitrise pas encore).

Par la suite, je vous présenterai des schémas qui ont été réalisés comme sur Simulink ! Si vous l'avez dans votre école, ou à votre travail, n'hésitez pas !

Modélisation d'un moteur à courant continue


Un moteur est un élément mécanique / électrique constitué de filaments. La présence de tant de filaments le font "ressembler" à une bobine, il a donc une inductance. Tant de câbles, faut aussi penser à une perte thermique, il a donc une résistance.

Dans un moteur, la tension V est à l'image de la vitesse : plus la tension est grande, plus le moteur va vite. Aussi, l'intensité est à l'image du couple : plus l'intensité est grande, plus le moteur aura de couple mécanique. Aussi, plus on élève les deux, et plus le moteur est puissant.
Et n'oublions pas que les deux sont nécessaires !
Par exemple : pourquoi avoir un robot qui pourrait aller vite s'il n'a pas la force de porter son poids ?

Le lien entre le couple et et l'intensité n'est pas quelque chose de "magique" ! Il y a une valeur (constante de couple) qui permet de convertir l'intensité en couple ! En effet, on a de la chance puisqu'il s'agit d'une relation linéaire.
Le moteur possède une vitesse maximale, c'est à dire qu'il y a un effet tendant à "ralentir" l'accélération : plus le moteur tourne vite, plus on s'approche de la vitesse maximale. On a un effet de régulation : plus la vitesse de rotation augmente et plus la rétroaction est importante. Cette rétroaction se retrouve au niveau de la tension relative qui se met aux bornes du moteur. Pour cela, la constante de vitesse entre en jeu.

On a donc toutes ces informations qui sont les caractéristiques techniques complètes de notre moteur !
Je ne vous le cache pas... les fournisseurs ne les donnent généralement pas toutes : il faut aller trouver la datasheet du fabriquant.

En résumé, ces informations sont donc :
U tension d'alimentation du moteur ( V )
R résistance du moteur ( Ohm )
L inductance du moteur ( H )
Ks constance de couple ( Nm/A )
J inertie du moteur ( Kg.m^2 )
Ke constante de vitesse ( V/(rad/s) )
f frottements visqueux ( Nm/(rad/s) ), noté aussi b
Cf et Cr les couples de frottements et de résistance. Il s'agit de perturbations telles que le couple engendré à cause d'un pente, etc.

attention.pngNotez bien les unités que je vous donne !


Ceci nous permet de modéliser notre moteur par la boucle d'asservissement ci-dessous. Regardez là, essayez de la comprendre... et ensuite on explique !

g41hafw6ic.png

Alors ? Analyse ? Résultat ! :heu:

- Le Step tout à gauche sert à mettre la tension dans le système.

- Le cercle avec le + / - est normalement connu ! Qu'est ce qu'il fait ? Il régule le système : il va diminuer la tension relative aux bornes du moteur, ce qui aura pour effet de diminuer l'accélération et tendre vers une vitesse de rotation constante.

- Le bloc de résistivité traduit la résistance du moteur et convertit donc la tension en courant. On retrouvé la résistance normale ®, mais aussi la résistivité (L) avec le terme "s" qui est la variable dans le domaine fréquentiel (homogène à l'inverse d'un temps, c'est à dire une fréquence). On obtient donc une intensité en sortie de ce bloc.

- La constance de couple convertir l'intensité en couple.

- Au couple fournit par le moteur, on enlève les perturbations (frottements, pente, etc.) sous forme de couple.

- On obtient donc le couple total sur l'axe du moteur. Ce couple va permettre de mettre en mouvement le robot qui a une certaine inertie (J) et qui est soumis à certains frottements visqueux (f) au niveau de l'axe. Il nous ressort donc une vitesse de rotation que l'on peut afficher grâce au scope.

- Enfin, cette vitesse de rotation est multiplié par la constante de vitesse qui va réguler la tension dans le moteur. Physiquement parlant, il s'agit de la force électromotrice, générée par la rotation du rotor dans le stator, qui va créer une tension inverse à celle d'alimentation. :tare: Bref... c'est l'influence de la vitesse de rotation du moteur sur la tension relative de ce moteur.

Si vous regardez les unités de chaque valeur, vous retrouverez facilement les résultats que je vous ai dit !

info.pngREMARQUE IMPORTANTE

On a vu plus tôt que, plus on va vite et plus la tension relative est faible. Or en diminuant la tension relative, on diminue l'intensité. Or en diminuant l'intensité, on diminue donc le couple mécanique ! Résultat : plus le moteur tourne vite, et moins le moteur a de couple ! o_O
Mais ceci est logique ! La puissance d'un moteur est constante, non ? Si vous vous dites ensuite que la puissance est une multiplication entre la vitesse et le couple, vous comprenez que si l'un augmente alors l'autre diminue... biggrin.gif


Si vous avez compris tout le charabia, je vous félicite... Si non, je vous conseille de le reprendre à tête reposé !

Calcul de la vitesse maximale


Et si on calculait la vitesse maximale maintenant ?

Il s'agit ici d'un asservissement avec une perturbation. On peut donc calculer la vitesse de rotation, dans le domaine fréquentiel :

math_978_bc4ae64abd982193a31eaa0ffd24427


On pourrait passer cela dans le domaine temporel, et avoir la courbe de vitesse... mais je pense que c'est trop complexe par rapport à ce qu'on souhaite faire ! Qui plus est, le but est de calculer la vitesse maximale, et pour cela nous n'avons pas besoin de repasser dans le domaine temporel et de résoudre l'équation différentielle qu'on obtiendrait !

Le théorème de la valeur finale nous donne tout simplement :

math_978_dd2afab7557ec4246bb0c1f27d2b1fb


Il ne vous reste plus qu'à mettre vos valeurs... et vous aurez la vitesse maximale du moteur !


Application : robot à deux roues


La théorie est faite... passons à la pratique ! Prenons un exemple simple qui vous servira surement !

On considère que notre robot est un système à 2 roues, placées de chaque coté du robot. On a le même moteur à chaque roue (logique). Les données pour les caractéristiques du moteur sont issues d'une véritable datasheet !

Les caractéristiques du robot et d'un moteur:

Roues de diamètres : 76 mm = 0.076 m
Poids total du robot : M = 3 Kg
Résistance du moteur : R = 1,1 Ohm
Inductance du moteur : L = 0,001 H
Constante de couple : Kc = 27,5 Nm/A
Constante de vitesse : Ke = 0.024533 V/(rad/s)
Inertie d'un moteur : Jm = 0.0000248 Kg.m^2
Inertie du robot : à calculer !
Frottements visqueux : 0 Nm/(rad/s)
Couples résistants : 0 (pente nulle, pas de vent, etc.)

Pour calculer l'inertie du robot, on peut considérer que tout le poids se trouve dans les roues !
Pourquoi ? o_O Oui ça parait bizarre. Mais l'idée est de se dire que l'inertie d'un robot dépend de la position de chaque composant, de chaque masse et répartition... autrement dit que les solutions sont infinies !
On peut donc simplifier avec cette hypothèse. Ce n'est pas gravissime car on se dit que cela revient à garder les roues immobiles et à faire tourner le corps du robot, comme si le poids était bien réparti sur un disque ! Bref... c'est une hypothèse assez plausible.
L'inertie du robot est donc :
math_982_b891e913407a21f285a525c008bdf0f

L'inertie totale est donc l'inertie du robot plus l'inertie des deux moteurs. Commençons en faisant comme s'il n'y avait qu'un seul moteur :
math_982_924d75b0b878cff175666fe84a06328

Dans ma simulation, je rentre donc toutes les valeurs que j'ai listées ci-dessus ! Pour l'inertie, on mettra celle calculée juste à la ligne précédente.
Les résultats sont donnés sur les courbe suivante :

a4owmghcjb.PNG


Légende : En jaune la tension, en violet la vitesse de rotation et en bleu la vitesse du robot.

On voit que, lorsqu'on met une tension au moteur (courbe jaune), celui-ci se met à accélérer jusqu'à une vitesse maximale d'à peu près 430 rad/s (lecture à l'oeil). On retrouve ce résultat en appliquant notre formule :

math_978_dd2afab7557ec4246bb0c1f27d2b1fb

math_982_248c4a7a7d10de34d49ac9e06a843d4


Magnifique ! On retrouve la même chose ! tongue.gif (Comme quoi je ne vous ai pas menti !)
Bien sur, si vous ajoutez des perturbations, la vitesse maximale sera moindre...


info.pngATTENTION !


Ne manque-t-il pas quelque chose ? Eh si ! Le robot a deux moteurs ! Cela va surement avoir une influence, non ? wink.gif
Réfléchissons encore quelques minutes... que se passe-t-il si nous mettons un deuxième moteur ? Les deux sont alimentés (chacun de leurs cotés), la tension donne une intensité qui donne un couple... et leurs couples mécaniques vont s'ajouter ! Ce couple est plus important et, via l'inertie, va se transformer en vitesse de rotation beaucoup plus vite. Mais plus la rotation est rapide, et plus la rétroaction est importante...

Considérons nos deux moteurs pour l'inertie :
math_982_79a19500ea4bd667958085f0c211453

Voyons déjà le schéma pour la simulation :

5dnekh7sav.PNG


Et observons la courbe obtenue :

0zmiyvjasw.PNG


Qu'observons nous ?
- Que la vitesse de rotation n'a quasiment pas augmentée (important ça ! :| ) Normal: puisqu'on a la même rétroaction sur chaque moteur. Si on met deux moteurs allant à 2000 tours par minute, ils ne tourneront pas à 4000 tours / minute ensuite !
- Que la vitesse maximale est atteinte plus rapidement avec les deux moteurs... à tel point qu'on a un petit dépassement de la vitesse au début ! Normal : les couples s'ajoutent et on a donc plus de force !

Bonus !


Maintenant... Je voudrais vous montrer quelque chose ! La tension ne se met en marche qu'à t=0,5 seconde. Mais si on mettait une perturbation qui agirait dès le début... que se passerait-il ? Mettons une perturbation constante qui représente, par exemple, une pente. Cette perturbation vaudrait donc :
math_982_4cb42bd3d82a21270b8bdbb4634bdd9

Pour cet exemple, j'ai repris les mêmes valeurs que précédemment, mais avec un seul moteur...

Voici le résultat

0iyrgk4vud.PNG


Que se passe-il ? A vous de trouver !
Secret (cliquez pour afficher)

Le robot part en arrière à cause de la perturbation (la pente). La vitesse de rotation des moteurs est donc négative et accélère ! Mais cette vitesse de rotation crée une tension qui va s'opposer au mouvement (pensez à la régulation !). On peut appeler ça le frein moteur d'ailleurs ! La vitesse devient donc négative et constante jusqu'à ce qu'on mette la tension à l'entrée du moteur ! On retrouve alors une phase d'accélération avec une vitesse maximale un peu moins élevée que s'il n'y avait pas les perturbations... !

Voilà... c'est déjà la fin ! Mais vous avez appris plein de choses ! wink.gif
Félicitation si vous avez tout compris ! Mais sinon, vous avez de quoi vérifier les capacités dynamiques de votre robot en le simulant et / ou en calculant sa vitesse maximale via une simple équation !
Alors ? C'était si compliqué que ça ?

Bon j'avoue... oui un peu ! Moi même j'ai du remplir quelques feuilles de papier pour re-comprendre le système et trouver un moyen à peu près simple de vous l'expliquer !
Mais si vous avez Maltab-Simulink à portée de main, n'hésitez pas à essayer ! Sinon, vous avez quand même largement de quoi faire !
smile.gif
@ bientôt !