Automatique : asservissement en poursuite d'un moteur à courant continu
Répondre à la discussion
Affichage des résultats 1 à 18 sur 18

Automatique : asservissement en poursuite d'un moteur à courant continu



  1. #1
    invite5735c9fd

    Automatique : asservissement en poursuite d'un moteur à courant continu


    ------

    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

    -----

  2. #2
    Jack
    Modérateur

    Re : Automatique : asservissement en poursuite d'un moteur à courant continu

    Ca fait longtemps que je ne pratique plus, mais pourquoi ne pas utiliser un correcteur à variables d'état.

    Si je me souviens bien, on fixe la dynamique du système pour en déduire le correcteur. Il faut bien entendu modéliser ton système d'abord.

    Ca représente du calcul, mais puisque tu connais MATLAB çà devrait s'arranger.

  3. #3
    invitefaf9e594

    Re : Automatique : asservissement en poursuite d'un moteur à courant continu

    Salut

    je suis pas matheux comme toi et j'ai pas de solution mais j'y vais de mon idée si cela peut te donner une idée...

    Si j'ai bien compris, ton système est un système classique en boucle fermée ou tu as remplacé la partie régulateur PID classique par un triple PI...
    Si c'est pas cela oublies la suite...
    Mais si c'est cela, je dirais qu'obtenir une erreur nul lors d'un mouvement est impossible que tu utilises un PID, un double, un triple on n X un régulateur PI...

    Ton signal de consigne et l'information de position réel sont soustrait et donne ton signal d'erreur. Ce signal est traité par le régulateur afin de donner un signal de commande à ton ampli et faire bouger le moteur.
    Si l'erreur est nul, tu as rien en entrée de ton régulateur et un gain proportionel, intéral ou différentiel ou 3 gains proportionels et integrals donnera 0 en sortie: ton moteur ne bougra pas.
    Pour que ton moteur bouge, tu dois avoir une erreur, aussi faible que possible mais une erreur tout de même pour que ton régulateur puisse travailer...

    Mais comme je t'ai je suis pas un spécialiste, il y a peut être une solution... attendons l'avis d'un pro

  4. #4
    Jack
    Modérateur

    Re : Automatique : asservissement en poursuite d'un moteur à courant continu

    Pour que ton moteur bouge, tu dois avoir une erreur, aussi faible que possible mais une erreur tout de même pour que ton régulateur puisse travailer...
    Bien sur que non. Revoie tes cours sur les asservissements.
    Un régulateur de vitesse à correcteur PI par exemple ne se stabilisera que lorsque l'erreur de vitesse est nulle. C'est tout l'intérêt de l'intégrateur.

    Par contre, l'erreur de trainage, c'ets à dire lorsque la référence est une rampe sera constante et non nulle.

    Pour l'éliminer, il faudra ajouter un autre intégrateur.

    Même problème pour un asservissement de position: il faut encore ajouter un intégrateur. D'où les 3 intégrateurs évoqués par maoussecostaud

    A+

  5. A voir en vidéo sur Futura
  6. #5
    invite5735c9fd

    Re : Automatique : asservissement en poursuite d'un moteur à courant continu

    Merci à tous les 2 pour vos remarques je vais essayer de vous répondre et de faire avancer le schmilblik

  7. #6
    invite5735c9fd

    Re : Automatique : asservissement en poursuite d'un moteur à courant continu

    Tout d'abord merci a tous pour vos commentaires interessants, tous les avis sont à prendre en compte, je suis preneur de tout

    Citation Envoyé par Jack Voir le message
    Ca fait longtemps que je ne pratique plus, mais pourquoi ne pas utiliser un correcteur à variables d'état.
    Bonne remarque, j'y ai songé, et effectivement je peux fixerla dynamique de mon système (c'est du placement de pole, ou encore commande modale). Mais il y a 2 problèmes à cela :

    1) Faut mesurer tou l'état (mon état x est le vecteur défini par la vitesse de rotation et la vitesse angulaire), or je n'ai qu'un codeur incrémental (capteur de position angulaire) je n'ai pas de géné tachy ou autre pour mesurer la vitesse de mon moteur. Faut alors faire un observateur (pour reconstruire l'état), bref pas simple

    2) généralement la commande par variable d'état que tu évoques est souvent utilisé pour des systèmes multientrées multisorties (avion, fusée...) ici c'est un simple moteur avec une entrée (la commande en tension) et une sortie (la position angulaire) donc je crois qu'une approche fréquentielle avec correcteur de type PID doit suffire

    3) l'approche par placement de pole que tu évoques ne permet pas en soi d'annuler l'erreur statique, elle permet juste, comme tu l'as évoqué, de fixer une dynamique à mon système, pas de le rendre précis. Avec une approche par placement de pole et pour annuler l'erreur statique il faut rajouter des intégrateurs, donc on revient à la meme problématique

    Mais en tout cas 1000 fois merci pour cette remarque judicieuse

  8. #7
    invite5735c9fd

    Re : Automatique : asservissement en poursuite d'un moteur à courant continu

    Citation Envoyé par lemano Voir le message
    je suis pas matheux comme toi et j'ai pas de solution mais j'y vais de mon idée si cela peut te donner une idée...
    Merci bien pour ton aide, et petite remarque : je ne suis pas matheux (insulte supreme ) mais étudiant en automatique

    Citation Envoyé par lemano Voir le message
    Si j'ai bien compris, ton système est un système classique en boucle fermée ou tu as remplacé la partie régulateur PID classique par un triple PI...
    Si c'est pas cela oublies la suite...
    Si c'est cela tu as tres bien compris

    Citation Envoyé par lemano Voir le message
    Mais si c'est cela, je dirais qu'obtenir une erreur nul lors d'un mouvement est impossible que tu utilises un PID, un double, un triple on n X un régulateur PI...
    Je comprend ton point de vue, c'est vrai qu'avoir une erreur strictement nulle pendant un mouvement semble être impossible , mais la je parle d'erreur nulle dansle sens ou je veux avoir une erreur la plus petite possible

    Citation Envoyé par lemano Voir le message
    Ton signal de consigne et l'information de position réel sont soustrait et donne ton signal d'erreur. Ce signal est traité par le régulateur afin de donner un signal de commande à ton ampli et faire bouger le moteur.
    Si l'erreur est nul, tu as rien en entrée de ton régulateur et un gain proportionel, intéral ou différentiel ou 3 gains proportionels et integrals donnera 0 en sortie: ton moteur ne bougra pas.
    Pour que ton moteur bouge, tu dois avoir une erreur, aussi faible que possible mais une erreur tout de même pour que ton régulateur puisse travailer...
    je comprends ce que tu veux dire, même si je ne suis pas tout à fait d'accord. Effectivement 0 que multiplie un gain ou la dérivée de 0 ca fait bien 0, mais l'integrale de 0 c'est une constante. En fait c'est ce qu'explique Jack

  9. #8
    Jack
    Modérateur

    Re : Automatique : asservissement en poursuite d'un moteur à courant continu

    Malheureusement, je serais bien en peine aujourd'hui, d'aller jusqu'au bout de ton problème sans me replonger sérieusement dans l'autom.

    C'est bien dommage car j'adorais çà, mais je n'ai plus l'occasion de pratiquer.

    En tout cas bon courage. Tu devras tout de même passer par une phase d'identification de ton système physique avant de t'attaquer au correcteur.

    A+

  10. #9
    invite5735c9fd

    Re : Automatique : asservissement en poursuite d'un moteur à courant continu

    Citation Envoyé par Jack Voir le message
    Malheureusement, je serais bien en peine aujourd'hui, d'aller jusqu'au bout de ton problème sans me replonger sérieusement dans l'autom.

    C'est bien dommage car j'adorais çà, mais je n'ai plus l'occasion de pratiquer.

    En tout cas bon courage. Tu devras tout de même passer par une phase d'identification de ton système physique avant de t'attaquer au correcteur.

    A+
    Pas de soucis merci quand même pour l'aide, ce qui compte c'est le geste

    Par contre, et c'est pour ca que j'ai posté ce message ici, c'est que j'ai fait tout le travail classique d'un automaticien (que je n'ai pas la prétention d'être) à savoir j'ai deja :

    1) modélisé mon système
    2) identifier mon système (grace d'abord aux données constructeur et à quelques essais)

    Et la je suis donc dans la phase de synthèse du correcteur. Au lieu de le faire sur la maquette je fais d'abord des imulations, et c'est la le probleme c'est qu'en simulation (sous MATLAB) ben j'obtiens des trucs instables

    En fait mon soucis c'est que je crois ke je fixe mal mon PI triple et les 90*3=270° que j'injecte dans mon système le rend vraiment instable

    je suis perdu

  11. #10
    Jack
    Modérateur

    Re : Automatique : asservissement en poursuite d'un moteur à courant continu

    Si tu as 270° c'est que tu as des intégrateurs purs et que l'action proportionnelle n'agit pas.

    Mais c'est sur que c'est naturellement plus instable qu'une simple boucle de régulation de vitesse. Ca va être rude tout de même à garantir la stabilité. La moindre non linéarité ou une perturbation risquent de mettre à mal tous tes beaux calculs.

    A+

  12. #11
    invite0324077b

    Re : Automatique : asservissement en poursuite d'un moteur à courant continu

    pour moi il est tout simplement impossible qu'un asservissement suive une consigne variable sans erreur : plus l'asservissement sera puissant plus l'erreur sera faible mais jamais nulle

    pour que l'erreur soit exactement nulle il faut que l'asservissement predise l'avenir pour savoir avec quelle vitesse il doit ateindre la consigne pour pouvoir ateindre aussi la suivante

    par contre si la consigne lui est donné avec un temps d'avance l'asservissement peut faire les calcul qu'il faut pour avoir une erreur nulle

    j'ai des projet de commande numerique et je me suis apercu que c'etait pas bon de ne donner aux asservissement que les cotes a ateindre a l'instant t+1 : il faut aussi leurs donner la vitesse avec laquelle cette cote doit etre ateinte : cela revient a donner aussi la cote a ateindre a l'instant t+2

  13. #12
    Jack
    Modérateur

    Re : Automatique : asservissement en poursuite d'un moteur à courant continu

    pour moi il est tout simplement impossible qu'un asservissement suive une consigne variable sans erreur : plus l'asservissement sera puissant plus l'erreur sera faible mais jamais nulle
    Tu te trompes. Un aservissement de vitesse à consigne fixe fonctionnera avec une erreur nulle à la condition de trouver une action intégrale dans le correcteur.

    En revanche, si la consigne est une rampe de tension, il va alors exister une erreur dite "de trainage", erreur constante que l'on peut élimimer en ajoutant un intégrateur supplémentaire.

    Tant que l'erreur de trainage existera, l'intégrateur va réagir et compenser cette erreur. Tu sais bien que la sortie de l'intégrateur ne cessera d'évoluer que lorsque son entrée (donc l'erreur ici) sera nulle).

    A+

  14. #13
    invite43918a89

    Re : Automatique : asservissement en poursuite d'un moteur à courant continu

    en mode poursuite je déterminerai plus avec une dérivé et intégrateur.
    D=(position à ateindre)
    Dm=(position actuelle du moteur)
    V=V demandé = (D- Dm) /dt
    A=Accélération demandé =1/2( d²V /dt²)

    D=Vt +At² compensation =V(t+dt) +A(t +dt)²
    dt est le temps entre chaque mesure de la position de la courbe et
    la position du moteur.
    je pensse qu il faut plutôt mesurer l'écart entre le moteur et la courbe et
    faire une dérivé première et seconde pour éviter l'erreur.

    la tension à envoyer sur le moteur devient
    U=K1*V(t+dt) +K2*A(t +dt)²
    le + dt représente l'anticipation à apporter

    utilise tu un processeur ou dois tu le faire en analogique pure.
    en annalogique
    tu séparre en faite 2 donné vitesse et accélération par 2 dérivé succésive
    V & A avec un Gain= à 1

    et tu réuni le tout en une serie de 2 intégrateur le 2 éme est un somateur (pour l'ajout de At et V) intégrateur.
    Gain 1 =( K2/K1 )
    Gain 2 =K1

    et tu récupère U tension moteur =K1*V(t+dt) +K2*A(t +dt)²
    en fonction de K1 et K2 tu peut ajuster le système pour un réactivité sur la vitesse ou à l'accélération.

    La question est commant peut tu connaitre la distance Consigne et position actuel ?
    Commen est agencé le montage quel sont les moyen de détection?

  15. #14
    invite5735c9fd

    Re : Automatique : asservissement en poursuite d'un moteur à courant continu

    Citation Envoyé par Jack Voir le message
    Si tu as 270° c'est que tu as des intégrateurs purs et que l'action proportionnelle n'agit pas.
    Excellente remarque !!!

    En fait c'est bien un PI que j'ai et pas 3 intégrateurs purs. Donc en fait je n'amene pas 270° sur toute la plage fréquentielle mais simplement à une certaine fenetre fréquentielle

    J'applique l'action proportionnelle justement pour ne pas avoir ces fameux 270° vers ma fréquence de coupure, synonyme de marge de phase négative et donc d'instabilité. Le probleme c'est qu'en simulation ca ne marche pas : malgre l'action proportionnelle ben j'ai des simulations temporelle qui me montrent que mon systeme devient instable !!!

  16. #15
    invite5735c9fd

    Re : Automatique : asservissement en poursuite d'un moteur à courant continu

    merci chatelot16 pour tes remarques

    Codi19 je suis en train de reflechir à tes propositions

    Pour info mon correcteur est numérique, la consigne est aussi numérique ainsi que le traitement du retour de postion (mesure)

    seul le processus physique (moteur) est analogique (encore heureux lol)

  17. #16
    invitefaf9e594

    Re : Automatique : asservissement en poursuite d'un moteur à courant continu

    Je vais encore me ridiculiser...

    En fait mon soucis c'est que je crois ke je fixe mal mon PI triple et les 90*3=270° que j'injecte dans mon système le rend vraiment instable
    Si tu as 270° c'est que tu as des intégrateurs purs et que l'action proportionnelle n'agit pas.
    Et si c'etait MATLAB qui était trop parfait...

    Un régulateur de vitesse à correcteur PI par exemple ne se stabilisera que lorsque l'erreur de vitesse est nulle. C'est tout l'intérêt de l'intégrateur.

    Par contre, l'erreur de trainage, c'ets à dire lorsque la référence est une rampe sera constante et non nulle.

    Pour l'éliminer, il faudra ajouter un autre intégrateur.
    Tes 3 intégrateurs simuler dans MATLAB étant parfait, tu obtiens une erreur théorique de position constament nul donc comme dit Jack, tes correcteurs proportionels, tu peux mettre les gains que tu veux, ils ont même pas besoins de faire grêve, ils ont jamais rien à faire....

  18. #17
    Jack
    Modérateur

    Re : Automatique : asservissement en poursuite d'un moteur à courant continu

    Le problème avec certaines structures PI, c'est qu'il n'est pas possible d'agir indépendemment sur P et sur I, ce qui rend difficile le réglage.

    Il me semble qu'il existe des structures parralèles de correcteur PI. C'est juste une suggestion et ça vaut ce que ça vaut.

    A+

  19. #18
    Jack
    Modérateur

    Re : Automatique : asservissement en poursuite d'un moteur à courant continu

    Je viens de voir que ton correcteur est numérique. Je me demande si ce n'est pas plus "facile" dans ce cas d'implémenter ce PI parallèle.

    A+

Discussions similaires

  1. l'alimentation d'un moteur a courant continu
    Par invite6a4ea830 dans le forum Électronique
    Réponses: 4
    Dernier message: 21/11/2007, 13h34
  2. moteur à courant continu, asservissement
    Par inviteacd3f240 dans le forum Électronique
    Réponses: 1
    Dernier message: 13/03/2007, 18h37
  3. ASSERVISSEMENT MOTEUR A COURANT CONTINU "PSoC"
    Par invite66bc1b2f dans le forum Électronique
    Réponses: 0
    Dernier message: 12/03/2007, 22h15
  4. inducteur d'un moteur à courant continu
    Par invitea5777e03 dans le forum Technologies
    Réponses: 1
    Dernier message: 17/02/2007, 20h49
  5. Choix d'un moteur à courant continu.
    Par invite7631eac3 dans le forum Électronique
    Réponses: 1
    Dernier message: 28/12/2006, 07h36
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...