travaux pratiques d’automatique – fip 2a 1...

22
FIP 2ème Année Automatique, 2012-2013 Travaux pratiques d’automatique – FIP 2A 1 Préparation Il est impératif de préparer chaque séance de travaux pratiques. On estime à 1 heure le temps nécessaire pour préparer un TP. L’essentiel du travail consiste à lire et à comprendre ce qui est demandé et, le cas échéant, à rechercher les informations qui pourront être utiles pendant la séance. Quelques questions sont également explicitement posées pour la préparation du TP2 (section préparation). 2 Présentation des sujets 1. Le TP 1 peut être considéré comme un TD sur machine (simulation sous Matlab et Simulink). Il servira à mettre en évidence l’effet de l’échantillonnage et de la quantification lors de la transposition de correcteurs et dans l’immunité aux bruits. 2. Le TP 2 porte sur l’asservissement en position d’une maquette moteur de faible puissance. Vous mettrez en évidence la différence de comportement des correcteurs synthétisés par transposition et des correcteurs synthétisés directement en numérique. 3. Le TP 3 porte sur l’asservissement de température d’une maquette pédagogique d’un système thermique. Deux méthodes de synthèse seront mises en oeuvre dans le cas très courant en pratique d’un système à retard : synthèse fréquentielle continue puis transposition, et synthèse numérique directe. 3 Déroulement des TPs Les TPs seront réalisés en binômes et il y aura une rotation entre les sujets (se rapporter au planning des rotations qui vous sera remis). En raison du nombre limité de maquettes le respect du planning est OBLIGA- TOIRE. 4 Evaluation L’évaluation des TPs d’automatique est faite en contrôle continu et se fait sur la base 1. du travail effectué pendant chacunes des 3 séances de 4heures ; 2. des comptes-rendus de chaque TP qui doivent également comporter les réponses aux questions théoriques de la préparation. En principe, deux étudiants d’un même binôme ont la même note. Cependant, si un déséquilibre important apparaît dans le travail fourni, rien n’interdit d’attribuer des notes différentes. Le travail attendu pour un trinôme éventuel est bien sûr plus important que pour un binôme. 5 Conseils pour la rédaction des comptes-rendus L’objectif du compte-rendu est de montrer le travail qui a été réalisé pendant la séance et de montrer l’analyse et la compréhension des résultats. Par conséquent le compte-rendu COMPORTERA : – l’étude théorique éventuellement demandée en préparation 1

Upload: tranque

Post on 12-Sep-2018

234 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013

Travaux pratiques d’automatique – FIP 2A

1 Préparation

Il est impératif de préparer chaque séance de travaux pratiques. On estime à 1 heure le temps nécessairepour préparer un TP. L’essentiel du travail consiste à lire et à comprendre ce qui est demandé et, le cas échéant,à rechercher les informations qui pourront être utiles pendant la séance. Quelques questions sont égalementexplicitement posées pour la préparation du TP2 (section préparation).

2 Présentation des sujets

1. Le TP 1 peut être considéré comme un TD sur machine (simulation sous Matlab et Simulink). Il servira àmettre en évidence l’effet de l’échantillonnage et de la quantification lors de la transposition de correcteurset dans l’immunité aux bruits.

2. Le TP 2 porte sur l’asservissement en position d’une maquette moteur de faible puissance. Vous mettrezen évidence la différence de comportement des correcteurs synthétisés par transposition et des correcteurssynthétisés directement en numérique.

3. Le TP 3 porte sur l’asservissement de température d’une maquette pédagogique d’un système thermique.Deux méthodes de synthèse seront mises en oeuvre dans le cas très courant en pratique d’un système àretard : synthèse fréquentielle continue puis transposition, et synthèse numérique directe.

3 Déroulement des TPs

Les TPs seront réalisés en binômes et il y aura une rotation entre les sujets (se rapporter au planning desrotations qui vous sera remis). En raison du nombre limité de maquettes le respect du planning est OBLIGA-TOIRE.

4 Evaluation

L’évaluation des TPs d’automatique est faite en contrôle continu et se fait sur la base

1. du travail effectué pendant chacunes des 3 séances de 4heures ;

2. des comptes-rendus de chaque TP qui doivent également comporter les réponses aux questions théoriquesde la préparation.

En principe, deux étudiants d’un même binôme ont la même note. Cependant, si un déséquilibre importantapparaît dans le travail fourni, rien n’interdit d’attribuer des notes différentes.

Le travail attendu pour un trinôme éventuel est bien sûr plus important que pour un binôme.

5 Conseils pour la rédaction des comptes-rendus

L’objectif du compte-rendu est de montrer le travail qui a été réalisé pendant la séance et de montrer l’analyseet la compréhension des résultats.Par conséquent le compte-rendu COMPORTERA :

– l’étude théorique éventuellement demandée en préparation

1

Page 2: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013

– le relevé synthétique des résultats obtenus accompagné de légendes– les réponses aux questions posées dans l’énoncé– l’analyse des résultats obtenus : est-ce ce qui était attendu, pourquoi, comment améliorer les résultats,

etc.– les explications théoriques et pratiques

Mais le compte-rendu NE CONTIENDRA PAS :

– une recopie de l’énoncé et des questions posées– des descriptions des commandes matlab tapées– des dizaines de courbes non commentées et non légendées– des résultats non observés durant la séance et obtenus de sources non autorisées (annales, autres binômes,

etc.)

2

Page 3: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 TP 1

TP 1 – Asservissement numérique d’un système continu

L’objectif de ce TP est de mettre en évidence les effets de l’échantillonnage et de la numérisation des cor-

recteurs continus. Ce TP s’effectuera entièrement en simulation avec Matlab et la boîte à outils Simulink.Le système étudié possède une seule sortie y et une seule entrée u (il s’agit de tensions, mesurées en Volts).

Sa fonction de transfert, identifiée au point de fonctionnement, s’écrit :

G(s) =Y (s)

U(s)=

2, 3

s(1 + 0, 1s),

où s désigne la variable de Laplace.

1 Correction proportionnelle

1.1 Correcteur analogique

Cette 1ère partie est un rappel de l’utilisation de matlab pour les systèmes continus. Vous ne devez pas y

passer plus d’une demie heure

1. Définir la fonction de transfert du système à l’aide de la commande :>>G=tf([2.3],[0.1 1 0])

et lancer l’utilitaire de tracé du lieu d’Evans avec la commande :>>rltool(G)

Les points rouges sur le lieu d’Evans correspondent à la position des pôles du système bouclé pour lavaleur du gain indiquée dans l’afficheur Gain. Ces pôles peuvent être déplacés le long du lieu d’Evans. Lavaleur du gain est alors réactualisée.

2. Faire la synthèse d’un correcteur proportionnel analogique de sorte que le système asservi ait un facteurd’amortissement égal à 0,707.

3. Simuler à l’aide de rltool la réponse indicielle du système asservi pour un échelon unitaire. Identifier leséléments caractéristiques de la réponse confirmant le bon réglage du correcteur.

4. Lancer Simulink avec la commande :>>simulink

Construire un modèle Simulink du système analogique en boucle fermée comprenant le correcteur propor-tionnel déterminé. Pour cela, on recherchera dans les menus de Simulink les différents blocs nécessaires(fonction de transfert continue, sommateur, gain, oscilloscope pour visualiser, etc.), que l’on fera glisserdans le modèle. La fonction de transfert G(s) de même que le gain déterminés précédemment seront uti-lisés dans ce modèle, Simulink partageant les variables de l’environnement de Matlab (son Workspace enanglais dans le logiciel).

5. Ce modèle construit, retrouver la réponse indicielle du système en boucle fermée pour un échelon unitaire.

1.2 Correcteur numérique

1. Créer un nouveau modèle. Transformer l’asservissement analogique en un asservissement numérique ensupposant que la chaîne directe intègre alors un bloqueur d’ordre zéro et qu’un retard d’une période

d’échantillonnage apparait pour modéliser le temps de calcul de la commande.

2. Simuler la réponse indicielle du système asservi pour différentes périodes d’échantillonnage : 10, 25, 50, 100, 250et 500 ms. Comparer ces réponses à celle l’asservissement analogique et commenter. Pour quelle périoded’échantillonnage le système asservi devient-il instable. Pour quelles périodes le comportement continuest-il bien approché ? Quelle règle faut-il respecter ?

3. Nous faisons maintenant l’hypothèse que le système asservi est soumis à un bruit de mesure dans saboucle de retour. Ce bruit est sinusoïdal, de fréquence 122 Hz et d’amplitude unité (Attention, dansmatlab, frequency signifie en fait pulsation). Comparer la réponse indicielle du système asservi avec le

3

Page 4: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 TP 1

correcteur analogique à celle du système asservi numériquement avec une période d’échantillonnage de25 ms. Expliquer la différence de comportement face à ce bruit. (Attention, si vous observez un compor-tement erratique des signaux dans le cas analogique, ce peut être le signe que la résolution de calcul desimulink est insuffisante. Il faut alors modifier les paramètres de simulation dans le menu simulation).

4. Refaire l’expérience avec un bruit à 150 Hz et commenter.

5. Ajouter un filtre analogique de Butterworth (commande butter ) d’ordre 2 à l’asservissement numériquede manière à rejeter correctement les bruits de mesure. Vérifier l’efficacité du filtrage par un essai indiciel.

2 Rejet de perturbations

2.1 Rejet d’une perturbation d’entrée

Le convertisseur numérique/analogique (CNA) a un offset dépendant de la température ambiante. Cet offsetpeut-être modélisé comme une perturbation d’entrée constante sur la commande.

1. Créer un nouveau modèle. Simuler la réponse indicielle du système asservi avec le correcteur numériqueprécédent et un offset de 0,2 V .On souhaite synthétiser un correcteur d’ordre réduit permettant de rejeter cette perturbation d’entrée. La

synthèse sera faite par transposition d’un correcteur continu.

2. A l’aide de rltool, calculer un correcteur analogique du second ordre (au plus) tel que le système bouclérespecte le cahier des charges suivant :– erreur statique nulle malgré l’offset du CNA ;– dépassement inférieur à 15% ;– temps d’établissement à 5% inférieur à 1 s.Pour cela on notera que dans l’utilitaire rltool, il est possible d’ajouter des pôles et des zéros au correcteur(dans Tools → Edit compensator ou simplement en cliquant sur le bloc K). Il est également possibled’utiliser le bouton Add zero (flèche pointant un cercle) ou le bouton Add pole (flèche pointant une croix)puis de cliquer à l’endroit du plan complexe où on désire placer le zéro ou le pôle. Ces derniers peuventêtre déplacés par la suite en cliquant sur le bouton drag pole/zero (flèche seule) ; le lieu d’Evans est alorsréactualisé.

3. Appliquer la transformation bilinéaire :

s →2

Te

z − 1

z + 1

où Te est la période d’échantillonnage, pour passer du correcteur continu au correcteur numérique. Ceciest réalisé en utilisant la fonction c2d de Matlab. Expliquez comment choisir la période d’échantillonnage.

4. Simuler la réponse indicielle de l’asservissement numérique ainsi obtenu.

2.2 Effet de la quantification

Le convertisseur numérique/analogique (CNA) et le convertisseur analogique/numérique (CAN) introduisentrespectivement une quantification de la commande et une quantification de la mesure de position. Nous faisonsl’hypothèse que le pas de quantification est de 0,5.

1. Simuler l’effet de la quantification au niveau de la commande sur la réponse indicielle du système avec lecorrecteur numérique précédent. Utiliser pour cela le bloc quantizer de la bibliothèque non linéaire deSimulink.

2. Simuler l’effet de la quantification au niveau de la mesure (CAN) sur une réponse indicielle.

3. Expliquer pourquoi ces effets sont très différents. Si la mesure de position est réalisée avec un codeurincrémental, calculer quelle devrait être la résolution minimale de ce codeur pour que l’amplitude du bruitde quantification soit inférieure à un 0,1 V .

4

Page 5: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 TP 2

TP 2 – Correction numérique d’un moteur à courant continu

Le but de ce TP est de mettre en place des correcteurs numériques pour asservir la position d’une maquette

construite autour d’un moteur à courant continu et d’un codeur optique incrémental.Le TP comporte plusieurs cahiers des charges à satisfaire. Pour chacun des jeux de contraintes les phases à

réaliser sont les suivantes :

1. Synthèse d’un correcteur à l’aide du lieu des racines ;

2. Test du correcteur à l’aide du logiciel de simulation Simulink

3. Codage en langage C de la loi de commande

4. Test du correcteur sur la maquette

5. Etude et analyse des résultats obtenus

Cette démarche est la méthodologie classique de synthèse et d’implantation sur un système réel. Il est biensûr inutile de passer d’une étape à la suivante sans l’avoir validée.

Les correcteurs seront implantés sur un PC muni d’une carte assurant l’interface avec le banc moteur.Pour ce qui concerne le logiciel, les fonctions d’entrée–sortie sont fournies, ainsi que le programme assurant lecadencement de la commande. Seul le correcteur est à programmer.

1 Préparation

1.1 Modélisation du système étudié

Le système étudié est un banc moteur de type HMC. Ce banc est composé d’un moteur à courant continude faible puissance (< 20 W ) couplé à un réducteur qui est lui-même couplé à un volant d’inertie. Le codeurincrémental qui fournit la mesure de la position est couplé à l’arbre moteur. La grandeur de commande dusystème est la tension U d’entrée d’un amplificateur à transistors qui est proportionnelle à la tension appliquéeà l’induit du moteur.

La fonction de transfert théorique, reliant l’entrée U du système à la mesure de position Θ, s’écrit :

G(s) =Θ

U=

K

s(1 + τs)(1)

Les valeurs numériques sont :– K = 70 deg.V −1 et τ = 0, 047 s pour le banc à moteur couleur aluminium ;– K = 63 deg.V −1 et τ = 0, 084 s pour le banc à moteur couleur verte ;Le système est piloté à l’aide d’un ordinateur réalisant l’asservissement numérique. Le CNA utilisé est mo-

délisé par un bloqueur d’ordre zéro B0(s). En supposant que l’on échantillonne de façon synchrone la commandeet la mesure, et que le gain du CNA est unitaire, la représentation du système en boucle ouverte est celle décritepar la figure 1.

Figure 1 – Système à commander.

Le PC qui réalise l’asservissement temps réel est également celui qui est utilisé pour développer et compiler leslogiciels. Cette machine possède une carte convertisseur numérique/analogique pour l’application des commandesainsi qu’une carte compteur pour convertir les impulsions du codeur incrémental en position angulaire. Lesystème d’exploitation utilisé est Xenomai (linux temps-réel).

Question : Donner la fonction de transfert G(z) entre la commande U(z) et la sortie Θ(z), pour une périoded’échantillonnage Te quelconque.

5

Page 6: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 TP 2

1.2 Algorithme de commande

On souhaite réaliser la commande numérique de ce système. La majorité du logiciel est déjà écrite. La partieréalisant la commande est globalement organisée conformément à la description de la figure 2.

Figure 2 – Organigramme du logiciel de commande.

On supposera par la suite que le temps nécessaire pour effectuer la mesure, le calcul, et l’envoi de la commandeest négligeable (très petit devant la période d’échantillonnage).

Le programme effectue des instructions en boucle infinie. La boucle est organisée en cinq étapes :

1. La mesure de la position est acquise au moyen d’un codeur optique incrémental. Les fonctions assurant lalecture du compteur et la conversion en degrés sont implémentées. La variable mesure contient la mesurecourante.

2. La variable consigne donne la consigne courante. Cette consigne est définie par l’utilisateur avant lelancement de l’asservissement (échelon ou rampe).

3. La partie à coder est le calcul de la commande (variable commande).On demande en préparation d’écrire l’algorithme d’un correcteur numérique d’ordre n en supposantque l’on connaît :– les n + 1 coefficients des polynômes N(z−1) et D(z−1) (Numérateur et Dénominateur de la fonction

de transfert du correcteur exprimés en puissances de z−1), qui sont rangés dans des variables (de typetableau) b et a dans l’ordre des puissances croissantes de z−1 :

N(z−1) = b[0] + b[1]z−1 + . . .+ b[n]z−n

D(z−1) = a[0] + a[1]z−1 + . . .+ a[n]z−n

6

Page 7: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 TP 2

– les n+ 1 dernières mesures (dont la mesure courante) rangées dans le tableau mes, de telle sorte que :

mes[0] = θ(k), mes[1] = θ(k − 1), . . .

– les n+ 1 dernières consignes rangées dans le tableau cons, de telle sorte que :

cons[0] = θd(k), cons[1] = θd(k − 1), . . .

– les n+ 1 dernières commandes rangées dans le tableau com, de telle sorte que :

com[0] = u(k), com[1] = u(k − 1), . . .

L’algorithme doit calculer la commande u(k) en fonction des données, stocker cette commande dans lavariable commande et mettre à jour les différents éléments des tableaux.

4. La commande stockée dans commande est ensuite envoyée dans le CNA.

5. On attend enfin le prochain top d’horloge avant de reboucler (fonctions de gestion de l’horloge existantesen bibliothèque)

2 Manipulation

2.1 Connexion informatique

A la fenêtre de login le nom d’utilisateur est ensps et le mot de passe ulp. Ouvrir un terminal en cliquantl’icône de la barre des tâches.

Taper la commande ini_rst pour initialiser le TP. Cette commande crée un répertoire nommé rst contenantplusieurs fichiers dont iofunctions.h (à ne pas modifier) et rst.c. Pour aller dans ce répertoire, taper cd rst.Pour éditer le fichier rst.c, taper la commande nedit rst.c &. Ce fichier contient le code du programmed’asservissement.

Lancer Matlab à partir de l’icône du bureau ou en tapant matlab dans un terminal.Attention ! : Pour vous éviter de perdre du temps, n’écrasez pas vos schémas et résultats. Ils sont utilisés

à plusieurs reprise tout au long du TP.

2.2 Calcul d’un correcteur par transposition

1. A l’aide de rltool déterminez un correcteur analogique d’ordre minimal tel que :– Le comportement en boucle fermée soit du second ordre avec ωn = 25 rad.s−1 et ζ = 0, 7.– L’erreur permanente vis à vis de l’entrée soit nulle.

2. Transposez ce correcteur en un correcteur numérique en utilisant l’approximation bilinéaire. La périoded’échantillonnage est imposée à 10 ms. Cette période d’échantillonnage est-elle suffisante pour garantirun bon comportement de l’asservissement numérique ? Justifiez.

3. Simuler avec Simulink le comportement du système analogique asservi avec votre correcteur numérique.Comparez les résultats avec le comportement attendu. Comment expliquez vous les différences observées ?

4. Ecrivez la loi de commande temporelle correspondant à ce correcteur

5. Implémenter le correcteur en langage C. Seul le calcul de la commande doit être programmé, le reste est déjàfait (la partie à compléter est signalée par un commentaire) (voir figure 3). Il vous est également demandéde réaliser la saturation logicielle de la commande entre les valeurs -CNA_AMPLITUDE et CNA_AMPLITUDE

qui sont les valeurs limites que peut transmettre le CNA. Pourquoi est-il important d’écrire ces saturationslogicielles ? Que peut-il se passer si on ne sature pas correctement la commande ? Vérifiez également bien lapériode d’échantillonnage du système définie en haut du fichier par la macro #define SAMPLING_PERIOD

et exprimée en nano-secondes !

Pour compiler le programme rst.c, taper simplement make.

6. Tester le correcteur :– lancer le programme d’asservissement en tapant rst ;

7

Page 8: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 TP 2

– à l’invite, entrer le type de consigne souhaitée (échelon ou rampe), l’amplitude ou la pente voulue etla durée de l’asservissement (après cette durée les commandes ne sont plus envoyées au système). Laquestion du choix des coefficients rst concerne une autre manipulation et n’a donc pas d’importanceici : tapez le choix 2.

– Tester le comportement du système pour différentes valeurs d’échelon et pour une rampe.

7. Commenter les résultats obtenus. Quelles sont les caractéristiques problématiques de la réponse indicielle ?Pourquoi n’est-ce pas conforme à ce qui était prévu ? Quel type de perturbation (perturbation d’entrée,de sortie ou de mesure) est responsable de ce phénomène ? Quelle est leur origine physique ?

2.3 Synthèse directe en numérique

On veut réaliser l’asservissement du moteur selon le même cahier des charges que précédemment :– Le comportement en boucle fermée soit du second ordre avec ωn = 25 rad.s−1 et ζ = 0, 7.– L’erreur permanente vis à vis de l’entrée soit nulle.En revanche, on propose de réaliser la synthèse du correcteur directement en numérique sans passer par une

synthèse analogique.La période d’échantillonnage choisie est toujours de 10 ms.

1. En utilisant la fonction c2d de Matlab et les paramètres adéquats, vérifiez le calcul de G(z) fait enpréparation.

2. Déterminez un correcteur à l’aide de rltool.Attention ! rltool est buggé pour les systèmes numériques. Lorsque vous cliquez sur les pôles de la bouclefermée, rltool affiche sous la fenêtre l’amortissement et la pulsation naturelle correspondants à la positiondes pôles. Les valeurs sont justes mais deviennent erronnées dès que vous déplacez la souris. D’autre partles contraintes de pulsation sont fausses et ne doivent donc pas être utilisées.

3. Simuler avec Simulink le comportement du système analogique asservi avec votre correcteur numérique.Comparez les résultats avec le comportement attendu et avec les résultats obtenus avec la première synthèse(par transposition).

4. Ecrivez la loi de commande temporelle correspondant à ce correcteur

5. Implémenter le correcteur sur le système réel.

6. Tester le correcteur pour différentes valeurs d’échelon et pour une rampe.

2.4 Correction à faible fréquence d’échantillonnage

Pour des raisons de temps de calcul, il est parfois nécessaire de d’augmenter la période d’échantillonnage.Pour cette partie nous prendrons Te = 100ms.

1. Reprenez le correcteur analogique synthétisé au début du TP et transposez le en numérique avec la nouvellepériode d’échantillonnage. Testez le avec Simulink sur le modèle du système. Que se passe-t’il ? Quellerègle n’est plus respectée ?

2. Faites maintenant une synthèse directement en numérique avec la nouvelle période d’échantillonnage. Oùsont les pôles de la boucle fermée ? Simulez l’effet de ce correcteur à l’aide de Simulink. Observez le signalde sortie et le signal de commande.

3. Implantez ce correcteur sur le système réel et testez-le (pensez à modifier la période d’échantillonnage dusystème).

2.5 Amélioration du correcteur

La période d’échantillonnage est maintenant reprise à Te = 10ms. L’objectif de cette partie est de remédierau problème apparu lors du test des correcteurs sur le système réel : l’erreur statique n’est pas nulle. Onconsidérera en première approximation que les frottements secs à l’origine de l’erreur statique peuvent êtremodélisés par une perturbation d’entrée constante.

– Synthétisez un nouveau correcteur directement en numérique vérifiant le nouveau cahier des charges :– Erreur statique vis-à-vis de la consigne nulle

8

Page 9: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 TP 2

– Rejet des perturbations d’entrée d’ordre 0– Dépassement de l’ordre de 20%– Temps d’établissement à 5% inférieur à 300 msCette synthèse est délicate et il est utile de se référer aux conseils de l’utilisation du lieu d’Evans vus encours. On prendra notamment soin de ne pas positionner de pôles du correcteur dans la partie réelle néga-tive afin d’éviter des commandes alternées qui peuvent être néfastes à haute fréquence d’échantillonnage.On fera également attention à ne pas placer de zéro trop près de 1. Enfin, on notera que lorsqu’un systèmea 1 pôle réel et 2 pôles complexes conjugués, la configuration la plus rapide est obtenue lorsque les 3 pôlessont alignés (même valeur réelle).Pour faciliter la synthèse vous pouvez répondre aux questions d’aide suivantes :– Un correcteur d’ordre 1 est-il suffisant ?– Quel est l’ordre du système en boucle fermée ? Peut-on alors utiliser les abaques et les contraintes de

rltool ?– Où faut-il placer les zéros du correcteur pour faire rentrer les branches dans le cercle unité ?– Où faut-il théoriquement placer les pôles de la boucle fermée pour ne pas avoir de dépassement ?

Pourquoi cela ne fonctionne-t’il pas ici ? Quelle est l’origine du dépassement ?– Testez ce correcteur à l’aide de Simulink. Vérifiez notamment que les perturbations d’entrée d’ordre zéro

sont correctement rejetées et testez la réponse à des rampes.– Implantez ce correcteur et testez le comportement du système en réponse à différents échelons et en réponse

à des rampes.– Commentez les résultats obtenus.

2.6 Question bonus : correcteur à réponse pile

On reprend Te = 0.1s et on fait la synthèse directement en numérique. Le cahier des charges est le suivant :– Erreur statique nulle– Temps de convergence minimal– Où faut-il placer les pôles de la boucle fermée pour que la réponse soit la plus rapide possible ? Essayez

de positionner les pôles de cette façon sans compenser les zéros du système.– Déterminez ensuite la fonction de transfert de la boucle fermée. Déduisez-en l’équation aux différences qui

relie entrée et sortie et calculez les premières valeurs de la sortie. En combien de pas d’échantillonnage lasortie converge-t’elle vers la valeur désirée ? Vérifiez à l’aide de rltool.

– Testez ce correcteur sur la maquette. Attention ! : ce type de correcteur, appelé correcteur à réponse pile,a un comportement très violent et nécessite un modèle précis du procédé. Le test sera réalisé avec prudence(amplitudes réduites des échelons, temps d’asservissement court) et sous la supervision des encadrants afinde ne pas dégrader le matériel.

9

Page 10: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 TP 3

TP 3 – Asservissement numérique de température

L’objectif de ce TP est de réaliser un asservissement numérique de température. Le système à réguler estune maquette d’un système thermique Feedback. Les particularités de ce système sont :

– une constante de temps lente ;– un retard dû au transport de l’air.

1 Moyens

On dispose :– d’une maquette Feedback ;– d’un ordinateur compatible PC équipé du système d’exploitation temps réel (xenomai). Il possède par

ailleurs une carte d’interface qui comporte en entrée un convertisseur analogique numérique et en sortieun convertisseur numérique analogique modélisé par un bloqueur d’ordre 0.

– un programme réalisant l’interface graphique entre l’utilisateur et le module d’asservissement (temp) ;– Matlab.Après démarrage du système, entrer le nom d’utilisateur ensps et le mot de passe ulp. Ouvrir un terminal

en cliquant l’icône de la barre des tâches.Taper la commande ini_temp pour initialiser le TP. Cette commande crée un répertoire nommé temp

contenant, entre autres, le fichier temp.c. Pour aller dans ce répertoire, taper cd temp. Pour éditer le fichiertemp.c, taper la commande nedit temp.c &. Ce fichier contient le code du programme d’asservissement. Seulle calcul de la commande doit être programmé, le reste est déjà fait (la partie à compléter est signalée par uncommentaire) (voir figure 3).

Pour compiler temp.c, taper simplement make.

2 Expérimentation

La fonction de transfert du système lorsque l’ouverture du clapet est à 35 degrés ou throttle sur 4 (suivantle modèle de maquette) et lorsque le capteur est placé à l’extrémité du conduit est la suivante (résultat d’uneidentification par analyse de réponse indicielle) :

G(s) =e−0,18s

(1 + 0, 25s)2(2)

Dans ce qui suit, on suppose que le temps nécessaire au calcul de la commande est négligeable devant lapériode d’échantilonnage.

2.1 Méthode de synthèse basée sur le correcteur continu

Pour cette première synthèse, on déterminera tout d’abord un correcteur analogique qui sera ensuite trans-posé en numérique.

1. Donnez la forme générale d’un correcteur d’ordre 2.

2. Faire la synthèse d’un correcteur C(s) continu du second ordre tel que le système corrigé bouclé satisfasseau cahier des charges suivant :– Erreur permanente nulle pour une consigne en échelon,– Compensation des pôles dominants du système,– Marge de phase de 45 deg.On pourra avantageusement utiliser la fonction bode de matlab. Cette fonction trace le diagramme debode d’une fonction de transfert F lorsqu’elle est appelée par :– bode(F)Elle retourne des tableaux de points pris sur les diagrammes lorsqu’elle est appelée par :– [ ampl, ph, w ] = bode(F)

10

Page 11: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 TP 3

Figure 3 – Organigramme du logiciel de commande.

Il n’est pas possible de définir le retard dans les fonctions de transfert sous matlab 5.2. Le retard devradonc être ajouté "manuellement" aux tableaux de valeurs obtenus par la fonction bode.Lors de la synthèse du correcteur analogique vous devrez garder à l’esprit qu’il doit ensuite être transposéen numérique. La période d’échantillonnage minimale est de 10 ms.

3. Appliquer la transformation bilinéaire pour passer de C(s) à C(z) :

s →2

Te

z − 1

z + 1(3)

avec Te, la période d’échantillonnage du correcteur numérique (fonction c2d de Matlab). On choisira Te

suffisamment faible pour bien approcher le correcteur continu (pas moins de 10 ms).

4. Etudier en simulation le système analogique avec son correcteur numérique en utilisant Simulink. Utiliserle bloc "transport delay" de la bibliothèque Simulink pour modéliser le retard.

5. Programmer le correcteur obtenu dans temp.c à l’emplacement prévu à cet effet. Ne pas oublier de définirla période d’échantillonnage en haut du programme à la ligne (#define SAMPLING_PERIOD). Compiler lemodule en tapant make.

6. Tester le correcteur en lançant temp. Commenter les résultats obtenus.

2.2 Synthèse directe du correcteur numérique

On souhaite réaliser une synthèse directement en numérique.

1. Calculer la transmittance échantillonnée G(z) du système en boucle ouverte (commande c2d).

11

Page 12: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 TP 3

2. Faire la synthèse d’un correcteur numérique du second ordre à l’aide du lieu des racines (fonction rltool

de Matlab) qui respecte le cahier des charges suivant :– Erreur permanente nulle pour une consigne en échelon,– Compensation des pôles dominants du système,– Dépassement nul.

3. Simuler le correcteur numérique sur le système analogique. Ensuite, implanter le correcteur numérique surle système réel et mesurer les caractéristiques du système réel corrigé.

12

Page 13: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 TP 4, page 13

TP 4 – Asservissement d’un bras flexible

L’objectif de ce TP est de réaliser l’asservissement numérique de la position angulaire d’un bras qui est relié

à un ensemble moto-réducteur via une liaison flexible. Ce système simule par exemple le comportement d’un bras

robotique entraîné par un actionneur comportant un réducteur «harmonic drive» réputé pour son importante

flexibilité en torsion.

1 Description de la manipulation

1.1 La maquette «rotflex»

Figure 4 – Schéma de la maquette rotflex de Quanser consulting.

Le système étudié est décrit par la figure 4. La grandeur de commande Um est une tension de faible puissanceenvoyée à un amplificateur de gain 1. La sortie de l’amplificateur est une source de tension connectée au bobinaged’induit d’un moteur à courant continu. Ce moteur entraîne la rotation d’une plateforme à travers un réducteurmécanique à train d’engrenages. La position angulaire de la plateforme par rapport à la base – donc par rapportau sol – est notée θ. Sur la figure, la flèche donne le sens positif de rotation. La plateforme entraîne un brasen rotation suivant le même axe que la sortie du réducteur par l’intermédiaire de 2 ressorts. Un potentiomètrepermet de mesurer la déviation α du bras due à l’allongement des ressorts par rapport à la position de repos. Laposition angulaire γ du bras par rapport à la base est donc la somme du déplacement angulaire de la plateformeθ et de α.

13

Page 14: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 TP 4, page 14

1.2 Le système «dspace»

La maquette rotflex est commandée par une carte «dspace». Il s’agit d’une carte au format PCI insérée dansun ordinateur hôte. Cette carte est reliée à un bornier regroupant toutes les connectiques de ses interfaces :convertisseurs numériques-analogiques, convertisseurs analogiques-numériques, compteurs, entrées et sorties bi-naires TTL. La carte dspace est une carte-mère miniature comprenant entre autres un processeur PowerPC, dela RAM et de la mémoire flash. Ce processeur fait tourner un système d’exploitation embarqué temps-réel demanière totalement asynchrone de l’ordinateur hôte qui tourne sous windows et n’est donc pas temps-réel.

La carte dspace est couplée à un logiciel qui permet de visualiser en quasi temps-réel tous les signauxsur l’ordinateur hôte et qui donne la possibilité de changer des paramètres comme des gains ou la consigneen cours d’asservissement au moyen d’une interface graphique conviviale. De plus, ce logiciel est couplé àmatlab/simulink. Il permet de décrire la structure d’asservissement de manière très intuitive grâce à la paletted’outils graphiques de simulink. En outre, le passage de la description graphique au code d’asservissement sefait automatiquement par la pression d’un seul bouton de l’interface. Cette conversion comprend 3 phases : laconversion du schéma-bloc en code C, la compilation croisée de ce code source pour le processeur PowerPC dela carte dspace et finalement le téléchargement et le lancement du code objet sur le système embarqué de lacarte dspace. Le système dspace est donc particulièrement adapté au prototypage rapide de lois de commandegrâce à la simplification extrême du passage de la simulation à l’expérience.

2 Modélisation du système (travail préliminaire)

Cette partie requiert un travail préliminaire à la séance de TP. Elle vise à comprendre la modélisation dusystème.

2.1 Modélisation de l’amplification

La sortie d’un des convertisseurs numérique-analogique de la carte dspace (modélisé par un bloqueur d’ordrezéro) est connectée à un amplificteur de puissance externe (voir figure 5). Cet ampli a un gain statique de 1

Figure 5 – Amplificateur.

et une bande passante qui dépasse largement les fréquences les plus hautes requises pour asservir le systèmerotflex. C’est pourquoi on négligera son effet dans la suite. Sa fonction de transfert approchée est simplement 1.

2.2 Modélisation du moto-réducteur

Celui-ci est constitué d’un moteur à courant continu relié à un réducteur de rapport de réduction 1/70. Lasortie du réducteur entraîne la plateforme du système rotflex. L’autre extrémité de l’arbre moteur entraîne uncodeur incrémental. Celui ci fournit des signaux carrés au format TTL qui sont reliés à une entrée compteur de

14

Page 15: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 TP 4, page 15

la carte dspace. Le comptage des périodes des signaux carrés permet de mesurer le déplacement angulaire del’arbre moteur. En effet, il y a 1024 périodes par tour de moteur.

La tension Um de l’induit du moteur est commandée par une des sorties «DAC» (Digital to analog converter)de l’interface dspace via l’amplificateur de puissance de gain 1.

On peut démontrer qu’un groupe moteur+réducteur peut être modélisé par un moteur équivalent. Nousallons donc ici simplifier le problème en considérant que l’association moteur+réducteur peut être simplementmodélisée par un moteur équivalent dont les caractéristiques sont supposées connues (données pendant le TP).

On rappelle ici les équations d’un moteur à courant continu :– Equation électrique : Um − Em = RmIm + LmIm– Equations de couplage électro-mécaniques : Γm = KmIm et Em = Kmθ– Equation mécanique : Γm − Γr = fmθ + Jmθ

avec Um, Im et Em respectivement la tension d’induit, le courant d’induit et la force contre-électromotrice ;Rm et Lm respectivement la résistance et l’inductance de l’induit ; θ, θ, θ et Γm respectivement la position,la vitesse, l’accélération angulaire et le couple du rotor ; Km, fm et Jm respectivement la constante de couple,le coefficient de frottement visqueux et l’inertie du rotor couplé à la plateforme. La grandeur Γr est le couplerésistant provoqué par le bras relié à la plateforme.

1. Donnez le schéma-bloc du moteur en considérant que Um est l’entrée principale, Γr une entrée de pertur-bation, et θ la sortie.

2.3 Modélisation du bras flexible

Soient Kr, Jr et fr respectivement la raideur équivalente en torsion des ressorts, l’inertie du bras et lecoefficient de frottement visqueux. En appliquant le principe fondamental de la dynamique au bras, on peutécrire que Γr = Jrγ et Jrγ = Kr(θ − γ) + fr(θ − γ).

1. Donnez le schéma-bloc décrivant le comportement du bras avec pour entrée θ et pour sortie γ.

2. En déduire le schéma-bloc total du système ayant pour entrée Um et pour sortie γ. Faites bien apparaîtrele lien entre Γr et γ.

3. Simplifiez le schéma bloc précédent afin de pouvoir exprimer facilement la fonction de transfert en boucleouverte γ(s)/Um(s).

3 Commande proportionnelle

3.1 Initialisation de l’environnement

Allez dans le répertoire Mes Documents/Rotflex. Sélectionner et copier le répertoire Original. Collez cerépertoire dans Mes Documents et donnez lui un nom nom1-nom2 où nom1 et nom2 sont les 2 noms de famille devotre binôme.

3.2 Vidéo d’initiation

Allez dans le répertoire Mes Documents/Rotflex. Lancez la vidéo rotflex.mpg. Notez en particulier com-ment ouvrir un modèle simulink depuis l’environnement dspace, comment compiler un schéma-bloc et commentpasser du mode édition au mode animation. La vidéo décrit pas à pas les étapes demandées dans les sections3.3 et 3.4.

3.3 Test en boucle ouverte

Allez dans le répertoire Mes Documents/nom1-nom2/Proportionnel (Attention : veillez bien à travaillerdans votre répertoire et non dans le répertoire original). Double-cliquez sur l’icône d’expérimentation dspaceTP_ROTFLEX.cdx. Suivez la procédure décrite dans la vidéo pour ouvrir le schéma-bloc simulink correspondantà cette expérience (Attention : dans l’onglet File selector, veillez à sélectionner le même répertoire que celuide l’expérience dspace courante, à savoir Mes Documents/nom1-nom2/Proportionnel). Glissez le fichier simu-link rotflex.mdl depuis le File selector jusqu’à la ligne Simulink comme indiqué dans la vidéo. Saisissez

15

Page 16: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 TP 4, page 16

dans matlab la commande Te=0.01 pour préciser la période d’échantillonnage de l’asservissement numérique(Fréquence = 100Hz). Compilez le schéma-bloc. Repassez dans l’environnement dspace.

Attention : En cas de mauvaise manipulation le bras peut se déplacer très rapidement. Veillez à

dégager tout obstacle dans le périmètre de déplacement du bras. Ne mettez pas votre visage à

hauteur du bras. En cas de problème, vous avez la possibilité d’appuyer sur le bouton Arrêt de

l’interface dspace. Par défaut, après la compilation, le système est en mode Arrêt. Lorsque vous

appuyez sur Marche, soyez prêt à immédiatement appuyer sur Arrêt en cas de problème.

Mettez l’amplificateur sous tension (bouton marche/arrêt à l’arrière du boitier). Passez en mode Animation

sous dspace. Appuyez sur le bouton Marche. Le bras devrait faire des aller-retours avec une amplitude de 45maximum.

Des curseurs permettent de régler l’amplitude et la fréquence du signal carré fourni par le générateur designaux (voir schéma-bloc simulink). Modifiez légèrement ces deux grandeurs et observez l’effet sur le système.

Appuyez sur Arrêt avant de passer à la suite.

3.4 Asservissement proportionnel

Modifiez le schéma simulink pour réaliser un asservissement proportionnel de la position γ du bras. Réglez legain à 1. Compilez le schéma-bloc. (Si les bibliothèques d’éléments Simulink n’apparaissent pas à l’écran, allezdans le menu View et sélectionnez Library browser.)

Dans l’environnement dspace, rajoutez un curseur pour régler le gain (vous pouvez copier puis coller uncurseur existant). Pour associer une variable à ce curseur, il faut aller dans l’éditeur de variable (ongletVariable browser à côté de File selector). A partir de Model Root, parcourez l’arborescence des variablesjusqu’à trouver celle qui correspond au gain du correcteur. Faites glisser cette variable vers le curseur pour fairel’association. Double-cliquez sur le curseur pour régler la valeur par défaut (1) et la plage de variation (de 0 à5).

Appuyez sur Marche et modifiez le réglage du gain. Concluez quant aux performances de ce correcteur.

4 Placement de pôle avec commande en tension

Étant données les piètres performances du correcteur proportionnel, dans cette partie nous allons mettre enœuvre une stratégie de commande plus élaborée basée sur le placement de pôles.

4.1 Calcul du modèle échantillonné de la boucle ouverte

Fermez matlab et dspace. Allez dans le répertoire Mes Documents/nom1-nom2/Commande_tension. LancezTP_ROTFLEX.cdx. Ouvrez rotflex.mdl depuis l’environnement dspace.

Depuis le Workspace Matlab allez dans le répertoire Mes Documents/nom1-nom2/Simulation. Lancez lescript init_const.m pour initialiser les valeurs de toutes les grandeurs du modèle. Définissez dans Matlab lafonction de transfert de la boucle ouverte γ(s)/Um(s) que vous avez obtenue en préparation en utilisant lesparamètres créés dans Matlab (Km, Jm, ...) (vous pouvez définir plusieurs fonctions de transfert partielles etensuite les combiner. Par exemple, la commande F = feedback(G, H) crée la fonction de transfert F qui estla rétroaction de G par H).

Montrez que la fonction de transfert peut être approchée par :

γ(s)/Um(s) =58.7108(s+ 339.9)

s(s+ 22.8)(s2 + 20.47s+ 514.8). (4)

Vous pourrez utiliser la fonction zpk pour afficher les pôles et zéros de la fonction de transfert. Justifiez lavalidité de l’approximation.

En déduire la fonction de transfert échantillonnée entre U(z) et γ(z), respectivement l’entrée du convertisseurnumérique analogique et la mesure de position échantillonnée. On utilisera pour cela la fonction c2d de matlab.Quels sont les arguments à utiliser ? Expliquez pourquoi.

16

Page 17: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 TP 4, page 17

4.2 Synthèse du correcteur

Importez cette dernière fonction de transfert sous rltool et faites une synthèse numérique directe quirespecte le cahier des charges suivant :

– Correcteur d’ordre 2,– Erreur statique nulle par rapport à la consigne,– Système le plus rapide possible,– Sans dépassement.Exportez le correcteur dans l’environnement matlab. Toujours dans le répertoire Simulation, ouvrez le

modèle simulink simu_bo.mdl (open simu_bo). Ajouter votre correcteur (on utilisera un bloc LTI : ouvrez cebloc et saisissez le nom du correcteur exporté par rltool ("C")). Simulez et validez la synthèse.

4.3 Expérience

Dans le workspace Matlab retournez dans le répertoire Mes Documents/nom1-nom2/Commande_tension. Dé-finissez Te = 0.01. Sélectionnez la fenêtre décrivant le modèle simulink pour dspace. Faites Edit->Update diagram

dans la fenêtre simulink. Ignorez le message d’erreur. Ceci permet de réactualiser la valeur de C dans le blocLTI pour qu’il corresponde au correcteur que vous avez exporté depuis rltool. Compilez.

– Expliquez comment le compilateur obtient la loi de commande temporelle du correcteur à partir de lafonction de transfert numérique en z.

Il est possible de sauvegarder les données expérimentales au moyen de dspace. Cliquez sur le bouton Settings

de la fenêtre dspace (si le bouton n’est pas visible allez dans le menuview->control bars->Capture->Settings Window).Sélectionnez l’onglet Acquisition. Sélectionnez Autosave. Choisir le répertoire (le vôtre) et le nom du fichierde sauvegarde.

Passez en mode Animation. Appuyez sur Marche. Lors de l’expérience, les données sont stockées en temps-réel sur le disque dur. Il est possible ensuite de charger dans matlab les données ainsi sauvegardées au moyen dela commande load nom_du_fichier. On peut ensuite accéder aux différents champs de la manière suivante :

– nom_du_fichier.X.Data : instants d’échantillonnage en seconde.– nom_du_fichier.Y.Name : noms des éléments de la structure.– nom_du_fichier.Y(n).Data : permet d’accéder aux données dont la description correspond à la nième

ligne de la commande précédente.Il est donc possible d’afficher les résultats de l’expérience grâce à la commande plot de matlab.

1. Quelles sont les améliorations apportées par cette commande par rapport à la commande proportionnelle ?

2. Est ce que l’erreur statique est conforme à la simulation ? Expliquez. Vous pourrez notamment observerle signal de commande pour comprendre.

3. Créez une perturbation en modifiant manuellement l’orientation de la tige après convergence (vous pren-drez garde à d’abord diminuer la fréquence des créneaux de consigne). Comment se comporte le systèmepar rapport à une perturbation ? Expliquez. Vous pourrez également observer le signal de commande.

5 Placement de pôle avec commande en vitesse

Afin de palier le défaut principal de l’asservissement précédent, nous allons rajouter une boucle interne devitesse. Celle-ci sera imbriquée dans la boucle de position. Le correcteur de la boucle de position génèrera doncune commande de vitesse et non plus une commande de tension.

5.1 Réglage du PI de la boucle de vitesse

L’asservissement imbriqué de la vitesse θ est réalisé au moyen d’un correcteur PI numérique. Ce PI seraréglé expérimentalement.

– Donnez la forme d’un PI numérique obtenu par la transposition bilinéaire d’un PI analogique. Ecrivez lafonction de transfert de sorte à faire apparaître un gain proportionnel et un gain intégral.

17

Page 18: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 TP 4, page 18

Fermez matlab et dspace. Allez dans le répertoire Mes Documents/nom1-nom2/Boucle_vitesse. Définissezla période d’échantillonnage Te = 0.01s. Lancez TP_ROTFLEX.cdx. Ouvrez rotflex.mdl depuis l’environnementdspace. Asservir la vitesse theta_dot à l’aide du correcteur de la figure 6. Compilez. Dans l’environnementdspace, rajoutez 2 curseurs que vous associez à gain_prop et gain_int.

Figure 6 – Correcteur PI de la boucle de vitesse.

Réglez les plages de variations des 2 curseurs de 0 à 10. Réglez la valeur initiale des curseurs à 0, 5 et 0 pourrespectivement le gain proportionnel et intégral. Réglez manuellement les 2 gains en mode Animation jusqu’àobtention d’un comportement satisfaisant. Essayez d’observer l’effet de chacun des gains et jugez de la difficultéde régler à l’aveugle un correcteur pourtant simple.

5.2 Réglage du correcteur de la boucle de position

Fermez matlab et dspace. Allez dans le répertoire Mes Documents/nom1-nom2/Commande_vitesse. LancezTP_ROTFLEX.cdx.Ouvrez rotflex.mdl depuis l’environnement dspace. Dans cette partie les gains du correcteursPI de la boucle de vitesse sont imposés : 1.5 pour le gain proportionnel et 10 pour le gain intégral.

Allez dans le répertoire Mes Documents/nom1-nom2/Simulation. Lancez le script comp_bv.m. Il permet decalculer automatiquement le modèle échantillonné de la boucle ouverte entre la consigne de la boucle de vitesseθ∗ et la position angulaire du bras γ. La transmittance ainsi générée s’appelle H_simple dans matlab :

Hsimple(z) =γ(z)

θ∗(z)(5)

Observez la fonction de transfert obtenue et synthétisez un correcteur par placement de pôle sous rltool

en respectant le cahier des charges suivant :– Correcteur d’ordre 5,– Erreur statique nulle par rapport à la consigne,– Temps de réponse court,– Réponse indicielle sans dépassement.Pour simplifier la synthèse, compensez tous les pôles et zéros du procédé que vous pouvez compenser sans

créer de problèmes (instabilité, commande alternée) (principe du correcteur parfait).Exportez le correcteur dans l’espace de travail. Lancez Simulink et ouvrez le modèle simu_bo. Simulez l’effet

de votre correcteur. N’oubliez pas que vous avez réalisé une boucle interne de vitesse ! !Retournez dans le répertoire Mes Documents/nom1-nom2/Commande_vitesse. Faites Update diagram dans

le schéma simulink de l’asservissement dspace. Compilez. Testez.

1. Le comportement est-il conforme à ce qui était attendu ? En pratique la commande envoyée au procédéest saturée entre −10 et +10V . Simulez l’effet de cette saturation sur le modèle simu_bo. Modifiez votrecorrecteur pour limiter l’effet de la saturation.

2. Que pensez-vous de l’effet intégral de la commande synthétisée ?

3. Testez l’effet d’une perturbation de sortie. Conclure quant à la réjection des perturbations.

18

Page 19: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 Aide mémoire

Aide mémoire pour l’utilisation de Matlab et Simulink

1 Utilisation générale de matlab

Il existe deux versions de Matlab en salle de TPs d’automatique que vous serez amenés à utiliser. Matlab6.5 sur les machines sous environnement Windows et Matlab 5.2 pour les machines sous environnement Linux.Les fonctions disponibles sont sensiblement les mêmes, mais l’utilisation du logiciel diffère.

1.1 Lancement

Sous windows : double cliquez sur l’icône Matlab6.5 sur le bureau. Matlab ouvre alors plusieurs fenêtres(ou une fenêtre contenant plusieurs sous-fenêtres). Les deux plus importantes sont la fenêtre de commande("Command Window") et la fenêtre de l’éditeur de script.

Sous linux : cliquez sur l’icône Matlab. Matlab démarre dans un terminal qui devient la fenêtre de commande,repérable au prompt >>. Pour travailler avec des scripts ou des fonctions ".m", vous avez besoin d’un éditeurde texte séparé. Pour cela, cliquez sur l’icône de nedit ou tapez nedit dans un terminal.

2 Généralités

Matlab est un logiciel de calcul matriciel. Il peut être utilisé simplement comme une calculatrice pour tousles calculs scalaires et dispose de nombreuses fonctions de calcul matriciel (déterminant, inverse, etc.). Enautomatique, en plus des fonctions de base de calcul, vous utiliserez des fonctions appartenant à la boîte à outils"Control Toolbox" et à la boîte à outil "Simulink".

Il existe 2 principales façon d’utiliser Matlab :– en ligne de commande : l’utilisateur tape des commandes dans la fenêtre de commande ("command

Window" pour matlab 6.5 sous Windows). Celles-ci sont directement executées par matlab. Une commandese termine par un retour chariot ("entrée"). Il est possible d’exécuter plusieurs commandes successivementen les écrivant sur la même ligne et en les séparant par le caractère " ;". Lorsqu’une commande se terminepar le caractère " ;" elle est muette : le résultat n’est pas affiché à l’écran. Le caractère % indique descommentaires. Tout ce qui se trouve après ce caractère sur la même ligne n’est pas interpreté par Matlab.Exemples :>> a = 2 % Affectation de 2 à la variable a

a =

2

>> b=1; % Affectation de 1 à la variable b sans affichage

>> a+b

ans =

3

>> c = a + b; d = c + 1;

>> d % permet d’afficher le contenu de la variable d

d =

4

Les variables créées sont stockées dans l’espace de travail (workspace) et peuvent être réutilisées à toutmoment.En ligne de commande, les commandes tapées précédemment peuvent être rappelées en utilisant les flèchesvers le haut et vers le bas.

19

Page 20: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 Aide mémoire

– par l’intermédiaire de scripts ou de fonctions. Les commandes sont écrites dans un fichier texte de la mêmefaçon qu’en ligne de commande. Le fichier doit être sauvegardé avec une extension ".m" pour signifier qu’ils’agit d’un script Matlab. Pour exécuter ce script il suffit de taper son nom (sans l’extension ".m") dansla fenêtre de commande. Toutes les commandes du script sont alors exécutées successivement. Attention,pour que les fichiers ".m" puissent être lancés depuis matlab vous devez vous placer dans le répertoire oùse trouve le fichier.Exemples :Fichier exemple.m *****************************************a = 2 % Affectation de 2 à la variable a

b=1; % Affectation de 1 à la variable b sans affichage

a+b

c = a + b; d = c + 1;

d % permet d’afficher le contenu de la variable d

******************************************>> exemple

a =

2

ans =

3

d =

4

Les variables créées dans un script sont stockées dans le workspace lors de l’exécution du script. Ellespeuvent donc ensuite être utilisées en ligne de commande.Afin de garder simplement une trace de vos travaux, il est conseillé de travailler à l’aide de scripts.

Matlab dispose d’une aide en ligne permettant d’obtenir les détails d’utilisation d’une commande : paramètresd’entrée, arguments de sortie, etc. Par exemple, pour obtenir des informations sur la commande d’inversion dematrice "inv", il suffit de taper

>> help inv

2.1 Quelques fonctions mathématiques utiles

– cos, sin, tan– acos, atan, asin– exponentielle : exp– logarithme : Attention ! ! logarithme népérien : log, logarithme décimal : log10

3 Fonctions de la "Control toolbox"

Pour utiliser ces fonctions, il suffit de les taper soit dans la fenêtre de commande, soit dans un script.Voici la plupart des fonctions qui vous seront utiles en TP.– créer une fonction de transfert : ex : G(s) = s+2

s2+3s>> G = tf([1 2], [1 3 0])

– créer une fonction de transfert numérique : ex : Gz(z) = z+0.5z−0.2

>> Gz = tf([1 0.5], [1 -0.2], Te)

où Te est la valeur de la période d’échantillonnage.– créer une fonction de transfert par les pôles, zéros et gain : ex : G(s) = 5(s+2)

s2+3s = 5(s+2)(s+3)s

>> G = zpk([-2], [0 -3], 5)

– mettre une fonction de transfert G sous forme de pôles et zéros>> zpk(G)

– Transposer une fonction de transfert continue en numérique>> Gz = c2d(G, Te, ’method’)

20

Page 21: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 Aide mémoire

où Te est la période d’échantillonnage et où method est la méthode de transposition choisie (zoh, tustin,prewarp ou matched)

– Tracer la réponse indicielle d’un système donné par sa fonction de transfert G>> step(G)

– Obtenir la carte des pôles et des zéros d’un système>> pzmap(G)

– Diagramme de bode :>> bode(G) %trace les diagrammes de Bode de G

>> bode(G, {w_min, w_max}) % trace les diagrammes entre les pulsations

%w_min et w_max

%par exemple

>> bode(G, {0.1, 100})

%trace les diagrammes de Bode entre 0.1 et 100 rad/s

>> [gain, phase, w] = bode(G) % Ne trace pas les courbes, mais rend trois tableaux :

%le gain sans dimension (pas en décibels) et la phase (en degrés)

%déterminés aux pulsations w

– Diagramme de Nyquist :>> Nyquist(G)

Trace le diagramme de Nyquist. Attention, les éventuels cercles à l’infini ne sont pas représentés. Il fautdonc analyser la fonction de transfert pour pouvoir déterminer avec certitude la stabilité d’une bouclefermée.

– Lieu des racines :>> rltool(G)

Trace le lieu des racines de G, avec retour unitaire. Les pôles et zéros du système G sont représentés pardes croix et cercles bleus. La position des pôles de la boucle fermée est représentée par des carrés rouges.En cliquant sur ces carrés, il est possible de les déplacer le long du lieu d’Evans. Le gain affiché en hautde la fenêtre est alors modifié simultanément.rltool est un utilitaire permettant de régler un correcteur par la méthode du lieu des racines. Une foisle lieu des racines de G tracé, l’utilisateur a de nombreux outils.Il est ainsi possible d’ajouter des pôles et des zéros sur la carte des pôles et zéros. Ces zéros et pôles sontaffectés au correcteur. Ils peuvent être déplacés par des "cliqué - glissé".Pour éditer le correcteur, cliquer sur le bloc C rouge (ou K cyan selon la version) dans le schéma blocreprésenté en haut à droiteOn peut afficher les abaques d’iso-amortissement et d’iso-pulsation sur la carte des pôles soit en cliquant"grid on" (version Linux), soit en cliquant avec le bouton droit de la souris et en choisissant afficher lagrille.– file → import : permet d’affecter des fonctions de transfert aux différents éléments du modèle. Ces

fonctions de transfert doivent avoir été définies dans le workspace. Attention, les blocs de gain doiventêtre entrés sous la forme de fonction de transfert (par exemple, pour H = 5, il faut entrer H = tf([5],[1]))

– file → export : permet d’exporter un bloc vers le workspace (par exemple le correcteur)– Analysis → response to step command (ou cliquer sur le bouton "step" en bas à gauche) : trace la

réponse indicielle du système en boucle fermée pour le gain donné.– Clic droit dans la fenêtre rltool (ou tools → Add grid / boundary) : permet de définir des contraintes

pour le système bouclé : dépassement, temps d’établissement, etc. Attention : ces contraintes ne sontvalables que si le système en BF est équivalent à un système du 2eme ordre.

4 Utilisation de Simulink

Simulink est un utilitaire de simulation permettant de représenter les systèmes à partir de schémas bloc.Pour lancer simulink, tapez

21

Page 22: Travaux pratiques d’automatique – FIP 2A 1 …eavr.u-strasbg.fr/~nageotte/sujets_TP_FIP2A.pdf · FIP 2ème Année Automatique, 2012-2013 TP 1 TP 1 – Asservissement numérique

FIP 2ème Année

Automatique, 2012-2013 Aide mémoire

>> simulink

dans la fenêtre de commande.L’utilisation de Simulink est assez intuitive. Elle consiste à sélectionner des blocs représentant des fonctions

de transfert, des gains, etc. et à les glisser sur le schéma de simulation. Les blocs sont reliés entre eux par destraits orientés tracés à l’aide de la souris.

– file → new → model : crée un nouveau modèle simulink– Les fonctions de transfert continues se trouvent dans le menu "Continuous" ou "Linear"– Les fonctions de transfert numériques se trouvent dans le menu "discrete" ou "discontinuous"– Les convertisseurs numériques analogiques (BOZ) sont dans le menu "discrete" ou "discontinuous"– Les gains sont dans le menu "math operations" ou "Linear"– Les comparateurs sont dans le menu "math operations" ou "Linear"– Les outils de mesure (scope) sont dans le menu "sink"– Les sources (échelons (step), rampes, etc.) sont dans le menu "source"– Les retards à utiliser sont appelés "transport delay" et se trouvent (et c’est une erreur !) dans le menu

"non linear" ou "Continuous"– Les saturations sont dans le menu "non linear"– Les quantificateurs sont dans le menu "non linear"Remarques

– Il n’y a pas de bloc "CAN". Simulink détermine la nature des signaux en fonction de la nature desblocs dans lesquels ils entrent. Il est nécessaire pour les blocs de nature "numérique" de spécifier lapériode d’échantillonnage en double cliquant dessus. Attention, Matlab n’est pas dérangé par des périodesd’échantillonnage diférentes selon les blocs et ne vous avertira pas en cas d’erreur.

– Par défaut, les échelons démarrent à l’instant t = 1s. Il est parfois utile de modifier en t = 0.Une fois les blocs placés sur le schéma, vous pouvez les modifier en double cliquant dessus. Par exemple, en

cliquant sur un bloc fonction de transfert vous pouvez ajouter des pôles et des zéros, modifier les gains, etc.Il est possible d’utiliser dans ces blocs des variables définies dans le workspace. Par exemple, si vous avez

défini

>> K = 5

alors en mettant K dans un bloc simulink, sa valeur sera 5La simulation est ensuite lancée par simulation→start. Les résultats de la simulation peuvent être obtenus

en double cliquant sur les scopes. Une fenêtre s’ouvre alors avec les tracés des signaux mesurés.Les paramètres de la simulation peuvent être modifiés en faisant simulation → parameters. On peut notam-

ment modifier la durée de la simulation. Lorsque les courbes des "scopes" sont tronquées, il suffit d’ouvrir lebloc "scope" et d’augmenter le paramètre "Data history" de l’onglet "Settings".

5 Dangers

Les versions de Matlab disponibles en salle de TP comportent plusieurs erreurs, bugs ou difficultés qu’ilconvient de connaître. Parmi celles-ci vous rencontrerez les suivantes :

– Dans simulink, rltool et les fonctions de la control toolbox, ce qui est appelé frequency correspond à despulsations

– Pour les simulations de systèmes continus, il est important d’utiliser une résolution de calcul suffisante.Lorsque les signaux observés semblent bruités (bruit de résolution numérique des équations différentiellesrégissant les systèmes analogiques), les paramètres de simulation peuvent être modifiés dans le menusimulation → simulation parameters, puis dans l’onglet "solver".

– les blocs retard ("transport delay") se trouvent dans ceratines versions dans les bibliothèques "non linear".Il s’agit d’une erreur car les retards sont des systèmes linéaires.

– Sur les versions 5.2 de matlab sous linux, l’affichage des amortissements et pulsations propres par rltoolest buggé pour les systèmes numériques. Lorsqu’on clique sur les pôles de la BF, l’affichage est juste maisil devient faux dès que l’on déplace la souris. De plus les contraintes de pulsations pour les systèmesnumériques sont fausses et ne doivent donc pas être utilisées.

22