Planete Sciences

forums de Planete Sciences
It is currently Wed 22 May 2013, 22:07

All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 32 posts ]  Go to page 1, 2, 3  Next
Author Message
 Post subject: Asservissement vitesse
PostPosted: Fri 09 Mar 2012, 00:33 
Offline

Joined: Thu 08 Mar 2012, 22:22
Posts: 12
Bonjour,
Je compte mettre un asservissement sur mon robot en vitesse .
Pour cela je dispose de 2 moteurs avec codeur 360pas. J'ai compris comment fonctionné le PID, mais maintenant que je doit le mettre en oeuvre je bute un peut. J'ai cherché pas mal sur mon amis Google, mais je n'ai pas trouvé d'exemple de mise en oeuvre. Si vous avez des liens, je prend !
Je travail avec une Arduino Mega. J'ai deja le soft qui me permet de compter les ticks.
Merci.


Top
 Profile  
 
PostPosted: Fri 09 Mar 2012, 01:00 
Offline
PMI
User avatar

Joined: Thu 24 May 2001, 02:00
Posts: 4041
Location: colombe
ben commence par faire simple car on passe souvent trop de temps a faire des usine

une foi le basic est fait tu devrai voir tout seul ce qui cloche

par contre il faut que tu est des éléments de mesure pour vérifier la qualité de ton système


Top
 Profile  
 
PostPosted: Fri 09 Mar 2012, 01:48 
Offline

Joined: Thu 08 Mar 2012, 22:22
Posts: 12
Bonjour ??
Je comprend pas ce que tu veut dire...


Top
 Profile  
 
PostPosted: Fri 09 Mar 2012, 02:05 
Offline
User avatar

Joined: Mon 27 Dec 2004, 10:30
Posts: 304
TooShuss wrote:
Bonjour ??
Je comprend pas ce que tu veut dire...


Non nous non plus on ne le comprend pas très bien mais à force on s'habitue. :)

TooShuss wrote:
Bonjour,
Je compte mettre un asservissement sur mon robot en vitesse .
Pour cela je dispose de 2 moteurs avec codeur 360pas. J'ai compris comment fonctionné le PID, mais maintenant que je doit le mettre en oeuvre je bute un peut. J'ai cherché pas mal sur mon amis Google, mais je n'ai pas trouvé d'exemple de mise en oeuvre. Si vous avez des liens, je prend !
Je travail avec une Arduino Mega. J'ai deja le soft qui me permet de compter les ticks.
Merci.


La question est vaste mais si je devais donner un point de départ, ce serait celui là :
http://ancrobot.free.fr/Old_version/fichtech/action/pid/index.htm

Ca t'explique le PID et comment le mettre en oeuvre algorithmiquement. D'autres questions plus précises devraient arriver après cela je pense. ;)

Bonne chance,
Jorus

_________________
Geonobot
Le blog : http://geonobotblog.free.fr
Le wiki : http://geonobotwiki.free.fr

Le Portail des équipes :
http://poivron-robotique.fr/planet/


Top
 Profile  
 
PostPosted: Fri 09 Mar 2012, 02:17 
Offline

Joined: Thu 08 Mar 2012, 22:22
Posts: 12
Je connais cet article .
Le probleme, c'est de passer de l'algo comme ecrit en bas de la page, au code.


Top
 Profile  
 
PostPosted: Fri 09 Mar 2012, 09:42 
Offline
User avatar

Joined: Mon 27 Dec 2004, 10:30
Posts: 304
Hello,

Ouais mais c'est pas en prenant un code tout fait que tu vas mieux comprendre. ;)

Sur ta Arduino tu prévois de coder en C je suppose ? Si c'est bien le cas essaye de préciser ce qui te pose problème.

++

_________________
Geonobot
Le blog : http://geonobotblog.free.fr
Le wiki : http://geonobotwiki.free.fr

Le Portail des équipes :
http://poivron-robotique.fr/planet/


Top
 Profile  
 
PostPosted: Fri 09 Mar 2012, 17:20 
Offline

Joined: Thu 08 Mar 2012, 22:22
Posts: 12
Quote:
Ouais mais c'est pas en prenant un code tout fait que tu vas mieux comprendre

Je sais bien, la fois ou je l'ai fait j'ai mis 3 mois a le comprendre !
Je ne veut pas simplement copier/coller un code, mais avoir un exemple pour voir la 'tete' que ca a.

Je code sur l'IDE Arduino donc oui c'est en c.

Code:
préciser ce qui te pose problème.

Par exemple comment integrer mon comptage (codeur), comment integré tout ca a mon code actuel....

Merci de vos reponse !


Top
 Profile  
 
PostPosted: Fri 09 Mar 2012, 17:41 
Offline
User avatar

Joined: Mon 27 Dec 2004, 10:30
Posts: 304
ok, peux-tu poster ton code actuel ?

Je travaille aussi sur Arduino mais pas via l'IDE.

_________________
Geonobot
Le blog : http://geonobotblog.free.fr
Le wiki : http://geonobotwiki.free.fr

Le Portail des équipes :
http://poivron-robotique.fr/planet/


Top
 Profile  
 
PostPosted: Fri 09 Mar 2012, 17:47 
Offline

Joined: Thu 08 Mar 2012, 22:22
Posts: 12
... :-?


Top
 Profile  
 
PostPosted: Mon 12 Mar 2012, 18:16 
Offline

Joined: Thu 06 Sep 2007, 10:39
Posts: 93
Location: retourne toi je suis là
Le principe de base est:
- Je calcule une consigne de vitesse
- Je mesure ma vitesse actuelle
- Je fait en sorte via un correcteur que ma vitesse rejoigne ma consigne

Une vitesse étant une distance sur un temps, si tu connais le nombre de ticks (donc la distance parcourue) recu dans un laps de temps donné, tu devrais pouvoir calculer ta vitesse.

Après pour le correcteur, il y'en a tellement...

_________________
L'asservissement c'est simple comme un PI


Top
 Profile  
 
PostPosted: Mon 12 Mar 2012, 18:57 
Offline

Joined: Thu 08 Mar 2012, 22:22
Posts: 12
'Je me suis retourné pour te repondre, mais je t'ai pas vu' :lol:

- Je calcule une consigne de vitesse (ex: 30ticks/sec)
- Je mesure ma vitesse actuelle (ex: 33ticks/sec)
- Je fait en sorte via un correcteur que ma vitesse rejoigne ma consigne (donc le correcteur abaisserai la vitesse)

Ok, jusque la je n'avais pas vu la mention de temps.... :o
donc: il faut un timer qui tout les sec (par exemple) compare le nb de tick passé durant cette derneire second avec la consigne et le remette a 0.
suivant le resultat obtenue, il renvois vers le correcteur (une fonction) qui ajuste la vitesse.
C'est bien ça ?
Merci :wink:


Top
 Profile  
 
PostPosted: Mon 12 Mar 2012, 19:53 
Offline

Joined: Thu 06 Sep 2007, 10:39
Posts: 93
Location: retourne toi je suis là
C'est ca. A toi de jouer maintenant.
Petite précision : Ton correcteur calcule une commande de (au choix : courant / tension / PWM) qui sera envoyée au moteur. Il n'ajuste pas la vitesse directement.
Reviens vers nous si problèmes.

_________________
L'asservissement c'est simple comme un PI


Top
 Profile  
 
PostPosted: Mon 12 Mar 2012, 19:57 
Offline

Joined: Thu 08 Mar 2012, 22:22
Posts: 12
merci, maintenant je pense y arriver, grace a toi !


Top
 Profile  
 
PostPosted: Mon 12 Mar 2012, 20:31 
Offline

Joined: Thu 08 Mar 2012, 22:22
Posts: 12
Donc, je veux realiser un asservissement pour que le robot aille droit..
Actuellement dans mon code, le comptage des tocks est compté grace a une interruption. Le probleme est que si le robot tourne, le nombre de ticks du moteur qui tourne sera focemement superieur a celui qui est a l'arret... Ca risque de faire quelque chose de bizare ... Il faudrai que la fonction de comptage/correction soit dans la partie du code qui dit au robot d'aller 'droit'... (a savoir un else (si aucun objet est detecter))

Il faudrai que mon interruption timer survienne quand il esr dans ce else.

(je tien aussi a preciser que la vitesse du robot est ajustable via un potentiometre... ca risque pas de poser probleme ??)

Merci

edit : je pense aussi que je dit une betise...
L'asservissement se fait indepandement de chaque moteur en fonction de la consigne, donc si un moteur est a l'arret et l'autre avance, seulement le moteur qui avance sera asservit... c'est ça ??


Top
 Profile  
 
PostPosted: Mon 12 Mar 2012, 23:27 
Offline
User avatar

Joined: Mon 27 Dec 2004, 10:30
Posts: 304
Désolé j'étais pas trop présent. ;)

Si tu asservis chaque moteur indépendamment, chaque moteur tournera en fonction de la commande que tu lui enverras.
Donc pour tourner, tu fais avancer un moteur et reculer l'autre. Tu vois ?

A+
Jorus

_________________
Geonobot
Le blog : http://geonobotblog.free.fr
Le wiki : http://geonobotwiki.free.fr

Le Portail des équipes :
http://poivron-robotique.fr/planet/


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 32 posts ]  Go to page 1, 2, 3  Next

All times are UTC + 1 hour [ DST ]


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You can post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group