Asservissement en poursuite d'un moteur à courant continu

Pour toutes les questions sur l’asservissement, les systèmes bouclés, les différents correcteurs, les diagrammes de représentation des systèmes : Bode, Nyquist et Black, etc

Modérateur : Modérateur

maoussecostaud
NOUVEAU
NOUVEAU
Messages : 3
Inscription : 16 oct. 2007 14:27

Asservissement en poursuite d'un moteur à courant continu

Message par maoussecostaud »

Bonjour à tous

Je doit réaliser un asservissement en position d’un moteur à courant continu.

Je tiens à préciser que ce n’est pas une régulation, c’est ce qu’on appelle un asservissement en poursuite, c’est à dire que ma consigne (mon objectif à atteindre) n’est pas une valeur fixe (comme pour une régulation) mais un ensemble de valeurs (équivalent à une trajectoire de position).

Le but de mon asservissement est de faire en sorte qu’il n’y ait pas d’erreur (ou l’erreur la plus petite possible) entre la consigne (trajectoire de position) et la position réelle du moteur. Pour information ma consigne est de type parabolique (défini sur un certain temps).

Si mon problème avait été une régulation, j’aurai sûrement utilisé un simple PI, l’action intégrale assurant une erreur statique nulle et l’action proportionnel assurant une marge de stabilité satisfaisante. J’aurais aussi pu utiliser un PID, plus complet que le PI.

Le problème, c’est que comme je dois réaliser un asservissement en poursuite, je suis obligé d’avoir une erreur statique nulle tout le temps, c'est-à-dire tout au long de la trajectoire !!!

Étant donné que ma consigne est de type parabolique, je me suis dit qu’il fallait faire une sorte de PI triplé, c’est à dire un correcteur avec 3 intégrateurs purs (associés à 3 zéros) pour annuler l’erreur statique.

En effet j’ai appris en cours que :
l’action intégrale simple permet d’avoir une erreur statique nulle par rapport à une entrée en échelon (polynôme de degré zéro)
l’action intégrale double permet d’avoir une erreur statique nulle par rapport à une entrée en rampe (polynôme de degré un)
l’action intégrale triple permet d’avoir une erreur statique nulle par rapport à une entrée parabolique (polynôme de degré deux)
et de manière générale :
l’action intégrale (n+1) permet d’avoir une erreur statique nulle par rapport à une entrée polynomiale de degré n.

Le problème c’est que j’ai essayé (en simulation sous MATLAB) mais ça ne marche pas.

Bien sûr me direz vous, le fait de mettre 3 intégrateurs purs dans la chaîne provoque une instabilité mais je mets (comme pour un PI classique) 3 zéros qui sont censés compenser l’instabilité générée par les 3 intégrateurs purs.

HELP ME…Pouvez-vous m’aider svp ? Si vous voyez n’importe quelle méthode pour obtenir un correcteur qui me permette d’avoir une erreur nulle ça serait géniale…

Rqs : Pour simplifier le problème je ne prends pas en compte (volontairement) les perturbations du système.
Les caractéristiques du moteur à courant continu sont classiques, sa puissance est de quelques Watt. C’est un moteur 12V. Si vous voulez ses principales caractéristiques je vous les donnerai mais je pense que ce n’est pas utile pour résoudre mon problème.
La régulation que je dois faire est numérique mais cela ne change rien. En effet je fais d’abord la synthèse en analogique, correcteur de type C(p), puis je numérise pour avoir un correcteur de type C(z).

Si ma question/requête est incomplète, floue ou autre je me ferai un plaisir de vous éclaircir.

Merci d’avance
Il n'y a pas de choses urgentes, il n'y a que des gens pressés

jpn

Message par jpn »

Bonjour,
Une méthode de synthèse possible pour ce problème est la suivante :
Utiliser un correcteur qui permette d'annuler l'erreur de traînage tout en assurant une bonne stabilité de façon à ce que la fonction de transfert en boucle fermée soit de la forme : (2z-1)/z^2. Avec cette fonction de transfert, en réponse à une rampe, la boucle anticipe d'un échantillon sur l'autre l'évolution de la rampe ce qui lui permet de garantir une erreur de vitesse (ou de trainage) nulle. Avec une consigne non linéaire comme une parabole, si la variation de cette consigne entre deux échantillons reste faible (échantillonnage rapide) le résultat sera sensiblement le même (pas d'écart entre consigne et variable de retour).
Pour calculer le correcteur :
En écrivant : R(z) = correcteur, BO = fct de transfert en BO du processus avec blocage d'ordre 0
En boucle fermée : (R.BO)/(1+(R.BO)) = (2z-1)/z^2 : calculer R(z)
On aboutit dans le cas d'un asservissement de position (fonction de tranfert supposée sans blocage d'ordre 0 : BO = K/(p(1+Tp)) ) à un régulateur qui se présente sous la forme d'un rapport de 2 polynomes d'ordre 3 (1 pôle = 1 car le régulateur amène une intégration supplémentaire évidemment).
En faisant une application numérique, je l'ai vérifié sous simulink.
Si tu me laisses une adresse mail, je peux te joindre cet exemple.
En espérant avoir répondu à ta question...

maoussecostaud
NOUVEAU
NOUVEAU
Messages : 3
Inscription : 16 oct. 2007 14:27

Message par maoussecostaud »

Merci beaucoup pour ta réponse claire et détaillée, je ferai des simulations ce week end pour vérifier tout cela (même si j'ai confiance en toi)

Merci d'avance
Il n'y a pas de choses urgentes, il n'y a que des gens pressés

mido

Message par mido »

Bonjour,
J'ai un projet similaire à celui de "maoussecostaud", en fait le projet consiste à réaliser un tapis roulant de démonstration pour une maquette de véhicule X-by-Wire autonome développé par Atmel. L’objectif est de garder la voiture (qui roule à une vitesse entre 4000 et 6000 tr/min) toujours au centre de tapis, donc pour réaliser cet asservissement il faut que le tapis tourne à une vitesse égale à celle de la voiture et il nous faut des capteurs pour connaitre la position de la voiture, les données acquises par les capteurs seront traitées par une carte de commande de tapis.
Actuellement, je suis en phase de modélisation et simulation, j'espere avoir des idées et des solutions de votre part en tout ce qui concerne : modélisation de moteur CC, acquisition de données analogiques, simulation sous simulink ou scilab, algorithmes d'asservissement .

"JPN", j'ai lu votre réponse et j'aimerais bien que vous m'envoyer des exemples d'applications sur cette boite mail:
fflash1010@yahoo.fr

Je vous remercie d'avance

Répondre