Telechargé par Olivier Kamta

cahierTPAutomatique4AE

publicité
Département Génie Electrique et informatique
Travaux pratiques d’automatique
4ème année AE
Semestre 2
v2.0
TPs d’AUTOMATIQUE 4AE-SE
Table des matières
1 Recherche de chemins dans un graphe : LegoRover
1.1 But de la manipulation . . . . . . . . . . . . . . . .
1.2 Présentation de la maquette . . . . . . . . . . . . . .
1.3 Présentation du dossier TPTomTom . . . . . . . . .
1.4 Présentation des fichiers EV3 . . . . . . . . . . . . .
1.5 Présentation des fichiers PC . . . . . . . . . . . . . .
1.6 Mise en place de la partie Guidage . . . . . . . . . .
1.7 Mise en place de la partie Gestion de la trajectoire .
1.8 Mise en place de la partie Gestion du plan . . . . . .
1.9 Extensions possibles . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 ASNL : Méthode du plan de phase
2.1 But de la manipulation . . . . . .
2.2 Rappels de cours . . . . . . . . . .
2.3 Manipulation . . . . . . . . . . . .
2.4 Réalisation sur site réel . . . . . .
2.5 Références bibliographiques . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
. 7
. 7
. 9
. 11
. 11
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
3
4
4
4
5
5
5
6
3 Commande numérique : PI numérique
3.1 But de la manipulation . . . . . . . . . . . . . . . .
3.2 Description du procédé . . . . . . . . . . . . . . . . .
3.3 Modélisation et identification du processus . . . . . .
3.4 Mise en place d’un correcteur de type PI numérique
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
12
12
12
13
4 ASNL : Méthode du 1er harmonique
4.1 Présentation de la manipulation . . .
4.2 Matériel utilisé . . . . . . . . . . . .
4.3 Manipulation . . . . . . . . . . . . .
4.4 Références bibliographiques . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
16
16
17
17
18
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
TPs d’AUTOMATIQUE 4AE-SE
5 Commande numérique : réponse pile & Commande optimale
5.1 But de la manipulation et présentation du procédé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Etude théorique (préparation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Etude expériementale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
20
20
21
6 Commande optimale : le pendule inversé
6.1 But de la manipulation . . . . . . . . . . .
6.2 Présentation de la maquette . . . . . . . . .
6.3 Présentation du dossier RobotPendule . . .
6.4 Manipulation . . . . . . . . . . . . . . . . .
6.5 Conclusion . . . . . . . . . . . . . . . . . .
6.6 Références bibliographiques . . . . . . . . .
.1
Concepts de base sur les graphes . . . . . .
.2
Recherche de plus courts chemins . . . . . .
.3
Références bibliographiques . . . . . . . . .
.4
Introduction et principes de fonctionnement
.5
Configuration manuelle d’Xpc Target . . . .
.6
xPC target sur la toile . . . . . . . . . . . .
.7
Introduction et principes de fonctionnement
.8
Obtention de la matrice K . . . . . . . . . .
.9
Références bibliographiques . . . . . . . . .
23
23
23
23
24
25
25
26
26
28
29
29
32
33
33
36
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
TPs d’AUTOMATIQUE 4AE-SE
Les niveaux sont numérotés selon leur niveau dans la hiérarchie :
- niveau 3 : gestion de la mission et de l’environnement ;
- niveau 2 : gestion du plan ;
Manipulation
1 1 : gestion de la trajectoire ;
- niveau
- niveau 0 : guidage.
Une couche physique incluant capteurs et effecteurs et une couche correspondant à la
base de données sont définis autour de ces niveaux.
Recherche de chemins dans un graphe : LegoRover
Ces différents niveau de commande correspondent à différents
Le robot legot EV3
☞ Les
capteurs
définis de
comme
les moyens de mesures
des variables
relatives
au déplachamps
dusont
domaine
l’Automatique
en générale,
et sont
illustrés
cement du véhicule, à ses ressources, à la mission et à l’environnement.
sur la Figure 2.
1.1
But de la manipulation
L’objectif de cette manipulation est de commander un robot
Lego sur 2 roues motrices et une roue libre pour l’équilibre, dont la
commande est semblable à celle d’un rover (Figure 1), de manière :
— à ce qu’il suive de manière efficace une ligne noire au sol
pour guider sa trajectoire (commande de bas niveau de type
commande continue : Niveau 0)
— à ce qu’il choisisse correctement un chemin à suivre en fonction d’un critère et de contraintes données (commande de
haut niveau type Intelligence Artificielle : Niveau 2)
— à ce qu’il suive correctement le chemin voulu (commande
type contrôleur d’exécution : Niveau 1)
Niveau 3
Niveau 1
COUCHE PHYSIQUE
Niveau 2
Gestion du plan
BASE DE DONNEES
COUCHE PHYSIQUE
Gestion de la mission et de son environnement
Gestion de la trajectoire
Niveau 0
Guidage
Fig. 3.13 – Organisation hiérarchique des niveaux dans l’architecture, couche physique
Figure 2 – Les différents niveaux de commande dans une archiet couche de la base de données
tecture d’autonomie
Les niveaux communiquent selon le principe de la figure 3.13. Les capteurs ont accès
à la couche physique : ils ont les informations concernant l’état. Le niveau de guidage
1.2
Présentation de la maquette
On travaille avec un robot 88
Lego monté sur 2 roues et une roue
libre pour l’équilibre représenté sur la Figure 19.
Le capteur utilisé pour effectuer le suivi de ligne est un capteur LineLeader (Figure 4). Il est composé de 8 couples photodiodes/phototransistors, qui, après calibration, renvoient un bit à 1
lorsque le couple est devant la couleur noire (Figure 5). Une fonction a été développée pour renvoyer une somme pondérée suivant
la position du capteur par rapport à une ligne noire (voir fonction
CapteurLigne dans PilotRobert.java).
Le fonctionnement du robot est géré par un microprocesseur
ARM9.
Figure 1 – Le rover Curiosity
3
TPs d’AUTOMATIQUE 4AE-SE
Figure 4 – le capteur LineLeader
Figure 3 – le robot Lego
Le robot se déplace sur une carte constituée de lignes noires et
de points identifiés.
1.3
Présentation du dossier TPTomTom
Figure 5 – Schéma de principe du suivi de ligne
Télécharger dans votre répertoire le dossier TP TomTom contenu sous moodle. Ouvrir le fichier MiseEnPlace-TPTomTom.pdf,
suivre la mise en place du projet TPTomTom jusqu’à la fin. Le
projet EV3 correspond aux fichiers de programmation du Robot
Lego. Le code généré sera embarqué dans la brique du robot. Le
projet PC correspond aux fichiers de programmation du PC qui
va communiquer avec le robot.
1.4
— MissionRobot.java : traite les missions envoyées par le
PC et reçues par le robot ;
— CommBTRobot.java : gestion de la communication Bluetooth avec le PC ;
— Message.java : gestion des messages envoyés par le PC et
reçus par le robot ;
Présentation des fichiers EV3
1.5
Le projet EV3 contient les fichiers suivants :
— Pilote.java : Fonction main de la classe Pilote, création
d’une mission, démarrage ;
— PilotRoberto.java : guidage du robot, régulation
Présentation des fichiers PC
Le projet PC contient les fichiers suivants :
— ShortestPath.java : classe principale du PC. Mise en
place de la carte, lancement de l’interface graphique, lancement du Dijkstra, construction de la mission, lancement de
4
TPs d’AUTOMATIQUE 4AE-SE
—
—
—
—
—
—
—
—
—
1.6
réglée à 300◦ /s .
I Faire varier la vitesse entre 0 et 500 de manière à déterminer
la plage de valeurs acceptable pour la vitesse.
I Faire varier Kp entre 5 et 40 par exemple de manière à
mettre en évidence les caractéristiques d’un régulateur proportionnel.
Une fois la commande de bas niveau (Niveau 0 : guidage)
validée, on va mettre en place la commande de niveau 1 : gestion de la trajectoire.
la mission sur le robot ;
test BasNiveau.java : programme de test pour la partie
guidage. Test sur 3 points, pour valider le guidage.
Dijkstra.java : code de l’algorithme de Dijkstra ;
CommBTPC.java : gestion de la communication Bluetooth
avec le robot Lego ;
InterfaceDialogue.java : interface graphique ;
Map.java : gestion de la carte ;
Message.java : construction des messages entre le PC et
le robot ;
MissionPC.java : gestion de la mission ; séquencement des
ordres envoyés au robot ;
Order.java : classe ordre à envoyer au robot ;
Point.java : classe point ;
1.7
Mise en place de la partie Gestion de la trajectoire
Cette partie consiste à vérifier que la gestion de la trajectoire
est bien effectuée sur le robot. Pour cela, on se contente de valider
le bon séquencement d’un mission écrite ”à la main”.
I En reprenant le fichier test BasNiveau.java, créer à la
main une mission allant du point A au point Q sur la
carte, avec une vitesse de 360◦ /s en utilisant des commandes du type : listOfOrders.add(new Order(int angle,
int distance, int speed)) ; avec les angles en degrés, la
distance en mm et la vitesse en degrés par seconde.
I Valider cette mission sur le robot.
Mise en place de la partie Guidage
Dans un premier temps, l’objectif est de mettre en place la
commande de bas niveau sur le robot, c’est-à-dire le guidage autour d’une ligne noire, suivant le schéma de la Figure 6.
1.8
Figure 6 – Schéma de régulation
Mise en place de la partie Gestion du plan
Cette partie consiste à élaborer une stratégie pour l’élaboration
d’un plan de mission. Pour cela, on est amené à définir un graphe
dont les sommets sont les points visitables et les arcs les chemins
entre ces points..
I Formaliser le problème d’optimisation que vous allez tenter de résoudre pour élaborer un chemin pour le robot en
établissant un critère d’optimisation, en vous inspirant de
l’annexe intitulée ”Théorie des graphes - Algorithme de Dijkstra”.
I Expliquer le schéma de régulation. Pourquoi les commandes
envoyées sur les deux moteurs sont différentes ?
I Compléter le fichier PilotRoberto.java de façon à mettre en place la boucle de régulation proportionnelle autour
d’une consigne en vitesse notée speed et d’une position centrale sur la ligne noire, sachant que l’erreur et la commande
sont de type (float). La valeur de kp est fixée et vaut 10.
I Tester votre régulation en réel avec le fichier
test BasNiveau.java avec une valeur de vitesse constante
5
TPs d’AUTOMATIQUE 4AE-SE
I Compléter la fonction SetArc dans le fichier Map.java de
manière à définir le poids des arcs dans le graphe suivant
le critère choisi.
I Proposer sur le papier une méthode de recherche de chemin
intuitive, par exemple un algorithme glouton qui permettrait de trouver un chemin entre un point de départ et un
noeud fin.
I Ouvrir le fichier Dijkstra.java. Etudier le code de manière
à retrouver les étapes du pseudo-algorithme donné en annexe.
I Compléter le fichier Dijkstra.java :
— méthode Trouvmin() qui retourne le sommet le plus
proche du sommet initial : compléter la boucle de recherche
du nœud de valeur minimale non encore exploré dans
tab value.
— méthode MajCcum(int noeud retenu) qui met à jour
tab value et tab noeuds.
I Tester cet algorithme en utilisant un critère de distance
(plus court chemin). Note : penser à décommenter la ligne
53 dans ShortestPath.java (ligne BuildPath.ComputeDijkstra).
I On s’intéresse maintenant à faire un chemin le plus rapide
en terme de temps de trajet. Modifier la fonction SetArc
dans le fichier Map.java de manière à adapter l’algorithme.
I Mettre en évidence un changement suite à ce changement
de critère en changeant éventuellement les vitesses sur la
carte.
1.9
Extensions possibles
Cette partie vise à étendre l’algorithme pour prendre en compte
d’autres critères ou d’autres façon de modéliser le problème. Par
exemple,
I Proposer une solution permettant au robot de partir d’un
noeud initial, d’arriver à un noeud fin, en passant par des
points particuliers précisés et non ordonnés, de manière optimale (typique d’une tournée de facteur par exemple).
6
I Proposer une solution si les ressources du robot sont limitées
et qu’il peut par exemple effectuer une distance limitée (carburant limité).
I On imagine maintenant un rover sur mars, qui doit effectuer
des points de mesures de plus ou moins grande importance,
avec une quantité de ressource limitée. Imaginer un algorithme permettant de résoudre sur problème en maximisant
les récompenses sur les points de mesures tout en garantissant que les ressources seront suffisantes.
TPs d’AUTOMATIQUE 4AE-SE
Manipulation 2
ASNL : Méthode du plan de phase
(seuil et hystérésis du relais, taux de contre-réaction tachymétrique,
conditions initiales).
Etude d’un asservissement de position à relais
2.1
But de la manipulation
2.2
Le but de cette manipulation est d’étudier sous Matlab, le
comportement d’un système commandé par un régulateur toutou-rien, avec seuil, et/ou hystérésis (Figure 7), par la méthode du
plan de phase.
Généralités sur la méthode du Plan de Phase
La méthode du plan de phase permet d’étudier des systèmes
dont le modèle est non linéaire par une méthode dans l’espace
d’état (à l’opposé de la méthode du 1er harmonique qui est une
méthode fréquentielle). En pratique, cette méthode se limite aux
systèmes du deuxième ordre. Au-delà, la représentation graphique
est impossible.
6 9ROW
0
Δ
Ʃ++
+
Ʃ −+
+
Ʃ −+
Ʃ ++
Rappels de cours
Soit un système physique à un degré de liberté régi par une
équation différentielle du deuxième ordre qui s’écrit :
ε 9ROW
ẍ = f (x, ẋ)
0
(1)
si on pose : ẋ = y l’équation (1) devient équivalente au système :

 ẋ = y
(2)

ẏ = f (x, y)
Figure 7 – Élément non linéaire
L’intérêt principal du régulateur tout-ou-rien réside dans sa
simplicité. Un relais ou un simple interrupteur peuvent servir à
matérialiser le dispositif de commande. L’inconvénient est souvent une usure prématurée des composants due aux changements
brusques et rapides de la commande. Afin de vérifier certains
résultats donnés dans la partie du cours de systèmes asservis non
linéaires qui a trait à cette méthode, on simulera un tel système
avec Simulink. On tracera les trajectoires dans le plan de phase
du système. On évaluera également s’il y a lieu, l’amplitude et la
période des auto-oscillations pour différentes valeurs des paramètres
L’évolution dépend donc de deux paramètres, la position x
et la vitesse ẋ du système, que l’on peut définir comme les deux
variables d’état du système X = (x1 = x, x2 = ẋ).
— L’état du système est caractérisé dans le plan (x, v = ẋ), appelé plan de phase par le point P de coordonnée (x1 , x2 ) =
(x, ẋ)
— L’évolution du système en fonction du temps pour des conditions initiales données est décrit par la trajectoire dite
trajectoire de phase du plan P dans le plan de phase.
7
TPs d’AUTOMATIQUE 4AE-SE
sidérer le système comme linéaire par morceaux. L’intégration de
l’équation (2) est relativement facile à faire par des méthodes analytiques. On obtient, pour les différents états de cette non linéarité,
une équation non paramétrique indépendante de t de la forme
f (x, y) = 0 définissant plusieurs types de trajectoires élémentaires.
La construction de la trajectoire globale sera faite à partir de ces
trajectoires élémentaires raccordées en des points de commutation correspondant au changement d’état de la discontinuité. On
montre ainsi que dans certains cas (relais avec hystérésis par exemple), la trajectoire obtenue tend vers un cycle limite stable ; on
peut alors étudier la stabilité d’un tel cycle, et en calculer l’amplitude et la période par la méthode des transformations ponctuelles
de Poincaré.
Figure 8 – Exemple de trajectoire de phase
— L’ensemble des trajectoires de phase correspondant aux diverses conditions initiales (x0 , ẋ0 ) en P0 permises, constitue
le portrait de phase du système.
Notion de points singuliers
Propriétés particulières liées à la forme ẋ1 = x2
Tout point tel que Ẋ = 0 est appelé un point fixe, point
critique ou encore point d’équilibre. Un couple (x1 , x2 ) tel que
Ẋ = 0 est un point d’équilibre, il peut être stable ou instable. Ces
points constituent pour les trajectoires des points singuliers. Pour
tout autre point qu’un point singulier, il n’existe qu’une trajectoire
de phase qui passe par ce point.
Sens de parcours des trajectoires de phases : Étant
donné que x augmente dans le domaine pour lequel ẋ > 0 et
que x diminue dans le domaine associé à ẋ < 0, les trajectoires de
phases sont parcourues dans le sens des aiguilles d’une montre.
Notion de cycle limite
Les cycles limites sont les trajectoires dans le plan de phase
qui correspondent aux oscillations limites du système, solutions
périodiques vers lesquelles tendent les trajectoires pour toutes les
conditions initiales situées dans une certaine région du plan de
phase. Rappelons le caractère essentiellement non linéaire de tels
phénomènes. La figure 8 montre un exemple de cycle limite stable
vers lequel convergent les trajectoires, divergeant à partir d’un
foyer instable et convergeant à partir des régions éloignées du plan
de phase.
Dans le cas des asservissements du 2ème ordre avec des non
linéarités de type discontinu (relais, frottement sec), on peut con-
8
TPs d’AUTOMATIQUE 4AE-SE
Intersection de l’axe Ox avec les trajectoires de phases :
Lorsque la trajectoire de phase coupe l’axe des x, soit elle est perpendiculaire à l’axe Ox, soit elle passe par un point singulier. En
effet, la tangente à la trajectoire de phase peut être définie comme
la droite faisant un angle α avec l’axe Ox tel que :
tanα =
dv
=
dx
dv
dt
dx
dt
=
Vθ*
ε
+
- -
Vr
Vθ
Sr
UHODLV
5HWRXU
WDFK\PpWULTXH
k2
9θ
.P
+ τS
dv
dt
car par définition
= f (x, v). On a alors deux cas :
— f (x, v) 6= 0 on a alors une tangente verticale
— f (x, v) = 0 et on a un point singulier (forme indéterminée).
ε
+
- Vθ
Vr
Sr
UHODLV
5HWRXU
WDFK\PpWULTXH
Position d’équilibre dans le plan de phase : Les positions
d’équilibre sont définies par v = ẋ = 0 et ẍ = v̇ = 0, et sont donc
sur l’axe des abcisses.
k2
9θ
S
θ
Ks
Vθ
Kg
f (x, v)
v
Vθ*
θ
.P
+ τS
θ
.V
G9θ
GW
S
Vθ
Kg
Figure 9 – Schéma bloc de l’asservissement
Notion de droites de commutation
— k2 est un paramètre ajustable pour régler la correction
tachymétrique.
— L’élément non linéaire est constitué par un relais avec seuil
et hystérésis dont la caractéristique Sr = F () est représentée
par la figure 7. Le niveau de la tension de sortie du relais
qui alimente le moteur est de ±M = ±10V .
La commutation de l’élément non linéaire a lieu lorsque l’entrée
est égale à des valeurs caractéristiques. A ce moment-là, la valeur
de sortie du relais bascule. Cela correspond dans le plan d’état à
deux droites décalées parallèlement. Par exemple, dans le cas d’un
seuil pur, le relais commute pour des valeurs = ± ∆
2 . Or on
peut exprimer la valeur de en fonction de l’entrée et de la sortie.
Cette équation définit donc deux droites de commutation : lorsque
la trajectoire coupe une des droites, le relais commute.
2.3
Remarque 1 : Afin de faciliter l’étude dans le plan de phase de
ce système simulé, on exprimera les angles en radians, les tensions
en volts et le temps en secondes ; De plus on supposera le système
autonome (entrée Vθ̇∗ (t) = 0), le système étant perturbé de sa
position d’équilibre par la condition initiale Vθ (0), les trajectoires
étant représentées dans le plan (Vθ (t), dVθ /dt).
Manipulation
Le schéma bloc de l’asservissement à étudier est donné par la
figure 9.
— Les paramètres physiques ont été identifiés
Étude du système sans correction tachymétrique
Km = 38.57rad/V.s Ks = 1.57V /rad
Kg = 0.23V.s/rad
τ = 0.27s
(3)
Etude du système linéaire :
I Calculer l’expression de la fonction de transfert Vθ (p)/Vθ∗ (p)
9
TPs d’AUTOMATIQUE 4AE-SE
sans tenir compte du relais. Quelles sont les caractéristiques
du système en boucle fermée ? (amortissement, pulsation
propre, erreur statique, dépassement, temps de montée,
. . . ). Sous Simulink, vérifier ces données sur la réponse indicielle du système avec des conditions initiales nulles.
I Donner sa représentation d’état en posant X1 = Vθ et X2 =
dVθ /dt
Etude du système complet : Rajouter l’élément non linéaire
dans le schéma Simulink, paramétrable avec H et ∆.
I
I
I
Etude
I
Les équations différentielles qui régissent le système sont :

V˙θ
Km Ks Sr
θ

= − τ1 dV
 ddt
dt +
9τ


dVθ
dt
= V˙θ
I Quels sont les conditions d’équilibre pour ce système ?
Etude du seuil pur (∆ 6= 0, H = 0)
I On prend par exemple ∆ = 5. Quelle est la condition sur
la condition initiale Vθ (0) pour que le système évolue vers
un point d’équilibre ? Montrez-le grâce à Simulink.
I Quelles sont les caractéristiques de ce système ? (erreur statique, dépassement, fréquence. . . )
I Justifier de manière théorique la forme des courbes : asymptotes, pente, etc.
I Les droites de commutations sont les droites sur lesquelles
l’élément non linéaire commute. Quelles sont les équations
des droites de commutation dans ce cas-là ? Montrez-les sur
vos courbes.
I Répéter cette étude en faisant varier la valeur de ∆. Que
remarque-t-on sur l’erreur statique ? Le dépassement ? Ya-t-il un lien avec les droites de commutations ? Conclure.
Etude de l’hystérésis pur (∆ = 0, H 6= 0) On effectue une étude
similaire pour l’hystéresis pur.
I On prend par exemple H = 5. Y-a-t-il une condition sur
Vθ (0) pour que le système évolue vers un point d’équilibre ?
—
—
Montrez-le grâce à Simulink. Est-ce que le système va se
stabiliser vers un point d’équilibre ? Justifier.
Justifier de manière théorique la forme des courbes : asymptotes, pente, etc.
Les droites de commutations sont les droites sur lesquelles
l’élément non linéaire commute. Quelles sont les équations
des droites de commutation dans ce cas-là ? Montrez-les sur
vos courbes.
Répéter cette étude en faisant varier la valeur de H. Y-a-t-il
un lien avec les droites de commutations ? Conclure.
avec le relais hystérésis + seuil (∆ 6= 0, H 6= 0)
. Faire une étude similaire dans ce cas. En particulier, pour
H = 5, trouver expérimentalement le ∆lim entre le mode
oscillant et le mode non-oscillant. De manière duale, pour
∆ = 5, trouver expérimentalement Hlim entre le mode oscillant et le mode non-oscillant.
Quelles sont les équations des droites de commutation dans
ce cas-là ? Montrez-les sur vos courbes.
Conclure
Remarque 2 Le choix du nombre d’itérations et de la valeur du
pas de calcul devra être un bon compromis entre la précision du
tracé et le temps d’exécution.
Influence de la correction tachymétrique sur le régime
transitoire
On met maintenant en place sur le système une boucle interne
de contre réaction (k2 non nul).
I Modifier votre modèle en conséquence et vérifier son bon
fonctionnement.
I Pour H = 5 , ∆ = 0 (hystérésis pur), trouver les nouvelles
équations des droites de commutation. Les idetifier sur vos
courbes.
I Identifier deux valeurs du taux de contre réaction qui correspondent l’un à un régime non-glissant, l’autre à un régime
10
TPs d’AUTOMATIQUE 4AE-SE
glissant.
I Chercher expérimentalement le taux de contre réaction limite et celui du régime optimum (origine atteinte après une
seule commutation), par exemple par dichotomie.
2.4
Réalisation sur site réel
I Pratiquez les résultats obtenus en 2.3 sur le site réel.
I Observez la commande en régime glissant et en régime optimum.
2.5
Références bibliographiques
F http ://moodle.insa-toulouse.fr/course/view.php ?id=66 Cours d’ASNL sous Moodle
F C. MIRA : Cours de systèmes asservis non linéaires. DUNOD
UNIVERSITE), 1969.
F K . OGATA : Modem control engineering PRENTICE HALL,
1970.
F J.C. GILLES, M. PELEGRIN : Systèmes asservis non linéaires
tomes 1,2 et 3. DUNOD AUTOMATIQUE, 1975
11
TPs d’AUTOMATIQUE 4AE-SE
Manipulation 3
Commande numérique : PI numérique
Régulation d’un niveau d’eau par PI numérique
3.1
But de la manipulation
L’objectif de cette manipulation est d’illustrer les différents aspects de la commande d’un processus par calculateur numérique :
— modélisation et identification des paramètres du processus ;
— synthèse théorique d’une commande ;
— mise en œuvre de la commande en temps réel du processus.
Le processus à commander est ici un réservoir de liquide dont
on veut réguler le niveau. L’outil de simulation est Matlab. La
mise en oeuvre numérique de la commande en temps réel est faite
dans l’environnement logiciel XPC Target.
X
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
Qe
0
1
0
1
0
1
0
1
0
1
0
1
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
Qs
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
1111111
0000000
000000000000000000000
111111111111111111111
0000000000000000000001111111111
111111111111111111111
0000000000
000000000000000000000
111111111111111111111
0000000000
1111111111
000000000000000000000
111111111111111111111
0000000000
0000000000000000000001111111111
111111111111111111111
11111111111
00000000000
S
Figure 10 – Schéma du principe de fonctionnement du procédé
3.2
Description du procédé
Si l’on suppose d’une part que le débit est linéaire en fonction
d’une grandeur U de commande : Qe = kq U et d’autre part que
la mesure de niveau se fait par un capteur linéaire : Xm = kc X,
l’équation non linéaire du système s’écrit :
√
kq kc
dXm
α kc p
=−
Xm +
U
dt
S
S
soit :
(
√
p
dXm
τ = α Skc
= −τ Xm + kU = f (Xm , U ) avec :
(4)
k k
dt
k = qS c
Le processus illustré Fig. 10 commandé dans ce TP est un simple réservoir cylindrique de section S. L’entrée est le débit d’entrée
Qe et la sortie est le niveau X de fluide dans le réservoir. Un débit
de fuite Qs est assuré à travers une vanne manuelle.
Qe est proportionnel à une tension de commande Qe = kq U .
Le niveau X est mesuré par un capteur linéaire Xm = kc X.
3.3
Modélisation et identification du processus
Modélisation
Le modèle de ce système est non linéaire si l’on considère que
le débit de fuite Qs est de type turbulent et dépend du niveau X
selon la relation :
√
Qs = α X
On pourrait vérifier (comme dans les TPs de Systèmes Bouclés
∗
de
p 2ème année) la non linéarité en traçant la courbe reliant U à
∗ , et vérifier qu’elle correspond bien à une droite.
Xm
Recherche d’un modèle linéarisé
Le bilan volumique conduit à :
1
dX = (Qe − Qs )dt
S
⇒
∗)
Le modèle linéarisé autour d’un point de fonctionnement (U ∗ , Xm
est obtenu en développant le modèle en série de Taylor autour de
dX
α√
1
=−
X + Qe
dt
S
S
12
TPs d’AUTOMATIQUE 4AE-SE
∗ ) tronquée au premier ordre. Pour cela on définit :
(U ∗ , Xm
∗
∆Xm = Xm − Xm
∆U = U − U ∗
I Tracer la réponse à un échelon d’amplitude 0.5, puis d’amplitude 1, autour du point de fonctionnement U ∗ = 5. Pour
ce faire :
1. Connecter la platine du procédé au boı̂tier d’interface :
— relier le point de mesure du niveau Xr (à gauche du
réservoir) à l’entrée In 0 du boı̂tier.
— relier le point d’entrée de la commande U à la sortie
Out 0 du boı̂tier.
— Attention on n’utilise pas dans le cadre de ce TP la
mesure du débit d’entrée (notée également Xr ) et
située à gauche de la platine.
2. Lancer une première acquisition assez longue (750s environ) pour connaı̂tre le temps d’établissement du régime
∗ de la sorpermanent du système, ainsi que la valeur Xm
tie pour le point de fonctionnement.
Figure 11 – Schéma bloc du système en Boucle Ouverte
On a alors :
d∆Xm
∂f
∗
≈ f (Xm
, U ∗) +
dt
∂Xm
∆Xm +
∗ ,U ∗ )
(Xm
∂f
∂U
3. Paramétrer correctement la durée entre le début de l’expérience et la date d’application de l’échelon, ainsi
que la durée totale de l’expérience et lancer l’acquisition
pour une valeur ∆U = 1. Recommencer l’expérience
avec ∆U = 0.5
∆U
∗ ,U ∗ )
(Xm
d∆Xm
−τ
∆Xm + k∆U
≈ p
∗
dt
2 Xm
La fonction de transfert valable autour du point de fonction∗ ) s’écrit alors :
nement (U ∗ , Xm
(
√
m∗
∆Xm (s)
K
T =2 X
τ
G(s) =
=
avec :
(5)
∆U (s)
1 + Ts
K = kT
I Après analyse de vos résultats, en déduire les paramètres de
la fonction de transfert autour du point de fonctionnement.
3.4
Mise en place d’un correcteur de type PI numérique
Le système est maintenant mis en boucle fermée sur le principe
de la figure 12.
Le procédé est commandé numériquement autour d’un point
∗ ). Le correcteur mis en place est un
de fonctionnement (U ∗ , Xm
PID numérique.
Pour réaliser la discrétisation du système, on choisira une discrétisation de type avant :
z−1
p=
.
Te
Identification
Afin de vérifier la validité de cette fonction de transfert et
d’identifier les paramètres K et T , on va étudier la réponse à un
échelon de position.
I En vous inspirant du schéma de la Figure 11, mettre en
place une commande sous Matlab qui permette de lancer un
échelon d’une amplitude donnée ∆U sur le système autour
d’un point de fonctionnement pour une entrée U ∗ = 5,
après l’établissement du régime permanent.
13
TPs d’AUTOMATIQUE 4AE-SE
suite manuellement (poignée rouge) la valeur limite Klim
pour laquelle le système en boucle fermée devient théoriquement
instable. Cette valeur est donnée par la velur du ”Compensator”.
I Vérifier ces résultats sous Simulink.
Figure 12 – Schéma bloc du système en Boucle Fermée
Vérification expérimentale On souhaite vérifier expérimentalement la perte de stabilité. Afin de réaliser la manipulation suivante vous devez :
Étude de la stabilité dans le cas d’un correcteur proportionnel P
1. Mettre en place sous Simulink une commande proportionnelle autour du point de fonctionnement (U, Xm ) déterminé
en début de manipulation, en vous inspirant de la Figure 12.
L’objectif est de rechercher théoriquement et expérimentalement la limite de stabilité du système bouclé avec un correcteur
proportionnel et d’étudier le comportement du système autour de
cette limite.
2. Choisir dans les paramètres une période d’échantillonnage
Te = 4s (l’expérience peut être répétée avec d’autres valeurs),
et se placer successivement sur une valeur égale au gain limite précédemment trouvé, sur une valeur un peu inférieure,
et sur une valeur un peu supérieure.
Étude théorique et simulation On veut étudier la stabilité du
système bouclé pour différentes valeurs de la période d’échantillonnage (entre 1 et 20 secondes). Sous Matlab, on fait appel à l’outil
sisotool qui permet d’étudier les réponses d’un système bouclé.
I Trouver théoriquement G(z) en discrétisant G(s) (discrétisation avant).
I En déterminant Te = f (Kp ) ou Kp = g(Te ), trouver le gain
critique pour une période d’échantillonnage Te = 4s.
I Créer la fonction de transfert discrète G(z) sous matlab. 1
I Lancer ensuite sisotool 2 dans matlab. La manière la plus
simple de procéder est de taper sisotool(G) dans matlab.
Cette commande ouvrira l’outil sisotool et chargera directement la fonction de transfert G dans l’outil. Rechercher en-
3. Analyses et conclusion sur la comparaison entre vos résultats
expérimentaux et théoriques.
Étude de la précision dans le cas d’un correcteur proportionnel P
Il s’agit ici de constater l’influence de la valeur du correcteur
proportionnel sur l’erreur statique.
I Toujours en restant avec un simple correcteur P , réaliser
une réponse à un échelon unitaire pour plusieurs valeurs de
K et pour une période d’échantillonnage donné (1 seconde
par exemple).
I Pour chacun de ces essais mesurer l’erreur statique. Comparer avec la théorie.
1. Deux solutions sont envisageables pour créer G(z). Soit on définit
G(s) avec la fonction tf(num, den) en continu, puis on utilise la fonction c2d(sys, Ts, method) en veillant à bien stipuler la bonne méthode de
discrétisation et la bonne période d’échantillonnage ; soit on définit directement
G(z) en utilisant tf(num, den, Ts) en spécifiant la période d’échantillonnage.
2. une vidéo d’aide sur sisotool ici : https://www.youtube.com/watch?v=
jXRD5Mc8Cy4
Remarque 3 Les expériences correspondant à ces essais étant
relativement longues, il est judicieux de sauvegarder l’expérimentation
14
TPs d’AUTOMATIQUE 4AE-SE
dès qu’elle est terminée, puis relancer immédiatement une nouvelle expérience. Cela permet de traiter les données pendant qu’un
nouvel essai se déroule.
Vérification expérimentale
I Expérimentalement, mettre en place sous simulink une commande de type PI avec les valeurs de Kp et Ki ainsi trouvées
et étudier la réponse à un échelon.
I Qu’observe-t-on et pourquoi ne retrouve-t-on pas les résultats théoriques ?
Réglage d’un correcteur PI
Afin de corriger l’erreur statique on se propose d’insérer l’intégrateur du PI.
Étude théorique
Réglage d’un correcteur PID (facultatif )
L’ajout de la partie intégrale annule les erreurs statiques mais
introduit des oscillations. La mise en place d’une partie dérivée
aura pour effet de corriger ce travers.
I Expérimentalement, chercher à régler les trois gains du
correcteur pour annuler les erreurs statiques tout en minimisant les oscillations.
I Conclure.
Soit le correcteur continu :
1
(6)
s
I Montrer que le correcteur continu (Eq. 6) se discrétise sous
la forme (Eq. 7) :
P I(s) = Kp + Ki
P I(z) =
Kpi (z + zpi )
z−1
(7)
I Exprimer Kpi et zpi en fonction de Kp et Ki .
Simulations
I Sous Matlab créer un correcteur discret (Te évidemment à
1 seconde) PI correspondant à Kp = 1 et Ki = 1.
I Lancer l’outil sisotool de Matlab en important le système
discrétisé G et le correcteur PI dans C. Régler ensuite
manuellement la position de zpi (qui apparaı̂t comme un
cercle rouge) et le gain (poignée rouge) afin de positionner
les pôles du système en boucle fermée le plus près possible
de l’origine.
I A l’aide du menu Compensators/Edit, relever les valeurs
des paramètres du correcteur. En déduire les valeurs correspondantes de Kp et Ki .
15
TPs d’AUTOMATIQUE 4AE-SE
Manipulation 4
ASNL : Méthode du 1er harmonique
Cette fonction de transfert dépend de la pulsation ω de l’amplitude
d’entrée Xl
Etude d’un asservissement de position à relais
4.1
Présentation de la manipulation
Wl /Xl = B(Xl , ω)
φ = φ(Xl , ω)
(jφ(X
,ω))
l
N (Xl , ω) = B(Xl , ω)e
But de la manipulation
Il s’agit d’étudier un asservissement de position dans lequel
l’élément d’amplification est un relais (élément non linéaire). Cette
étude porte essentiellement sur la détermination expérimentale du
lieu critique du relais, à partir de la connaissance du lieu de transfert de la partie linéaire, et des caractéristiques de l’oscillation de
pompage (amplitude et pulsation), mesurées expérimentalement.
Un cas très important en pratique est celui où N ne dépend
pas de la fréquence, et dépend seulement de l’amplitude du signal
d’entrée Xl . C’est le cas d’éléments non linéaires tels que : seuil,
saturation, tout ou rien, ... Dans ce cas, la fonction de transfert
généralisée N(x,) s’appelle GAIN COMPLEXE EQUIVALENT.
Rappels de cours : approximation du ler harmonique
Étude de la stabilité d’un asservissement non linéaire
bouclé
Lorsqu’on applique un signal sinusoı̈dal à un système non linéaire,
on obtient en général une sortie s(t) périodique mais non sinusoı̈dale.
Considérons le système de la figure 14.
Figure 13 – Élément non linéaire
Figure 14 – Bouclage non linéaire
Pour un tel système, on ne peut pas définir une fonction de
transfert comme on le fait pour un système décrit par une équation
différentielle linéaire à coefficients constants. La sortie s(t) est
décomposable en série de Fourier. En ne considérant que le 1er
harmonique de s(t) : Wl sin(ωt + (φ), on définit une fonction de
transfert équivalente ou généralisée :
module = Wl /Xl
La fonction de transfert généralisée en boucle ouverte de ce
système est :
s
= N (Xl ).L(jω)
x
Supposons Xl constant ; N (Xl ) est alors un nombre fixe (réel ou
complexe). En appliquant le critère du revers dans le plan de
argument = φ
16
TPs d’AUTOMATIQUE 4AE-SE
θ
Vθ*
Pe
+
Sr
ε
k1
- -
UHODLV
5HWRXU
WDFK\PpWULTXH
k2
.P
+ τS
9θ
Rr
θ
S
θ
Ps
Vθ
β
Figure 16 – Montage des différents éléments
POMPAGE.
4.2
Matériel utilisé
La manipulation comprend un moteur à courant continu étudié
en 3ème année, et un relais réglable.
Figure 15 – Critère géométrique de détermination d’un cycle limite
Remarque 4 : On utilisera une fonction de transfert G(p) pour
Km
le moteur assimilable à p(1+τ
p) avec Km = 42.8rad/s.V et τ =
0.214s .
Nyquist, on peut dire que l’asservissement est stable pour l’amplitude Xl de l’erreur si le lieu de transfert N (Xl ).L(jω) parcouru
dans le sens des ω croissants laisse le point critique - I à gauche.
On peut faire le même raisonnement en considérant la position
1
du lieu L(jω) par rapport au point − N (X
l)
Plus généralement, pour chaque amplitude Xl d’erreur, on peut
1
L’ensemble de ces points constitue
définir un point critique − N (X
l)
le lieu critique de l’élément non linéaire.
Sur ce lieu critique, on peut déterminer des régions pour lesquelles
il y a stabilité et des régions pour lesquelles il y a instabilité (voir
figure 15)
— Pour Xl < Xo le système est instable. L’amplitude de l’erreur va donc augmenter et on se déplace sur le lieu critique
vers X0 .
— Pour Xl > Xo le système est stable, Xl diminue vers X0 .
— A la limite le système oscille avec une amplitude X0 de
l’erreur, à une pulsation ω. Cette oscillation est appelée
4.3
Manipulation
Étude des auto-oscillations. Tracé du lieu critique
Il s’agit de construire expérimentalement le lieu critique correspondant à un relais ayant des caractéristiques déterminées, et
de comparer les résultats obtenus avec le lieu critique construit à
partir des formules mathématiques étudiées en cours.
Montage
I Réaliser l’asservissement de position sans le retour tachymétrique représenté par le schéma bloc suivant (Fig. 16) pour
lequel :
1. Pe , Ps sont respectivement les gains de conversion (données
physiques, tension) de commande et de sortie. Ps vaut
1.58V /rad ;
17
TPs d’AUTOMATIQUE 4AE-SE
2. Rr est un réducteur de rapport 1/9 ;
0.6, 0.5, 0.4, 0.3. Commentaires ?
I A partir des données réelles obtenues et du procédé connu,
tracer le lieu critique du relais.
I Que peut-on en conclure ?
3. k1 est un potentiomètre atténuateur (10 tours) (0 <
k1 < 1 ) qui permet de faire varier le gain en boucle
ouverte de la partie linéaire ;
4. La génératrice tachymétrique placée en bout de l’arbre
moteur délivre une tension avec un gain β = 0.1V /rad.s−1 .
Amélioration des performances de l’asservissement
Linéarisation par balayage Caractéristique du relais H =
1V ; atténuateur k1 = 0.5.
I On prend à présent le GBF que l’on règle préalablement
pour obtenir une sortie sinusoı̈dale de fréquence 50 HZ et
d’amplitude 0.2V.
I Le système étant en auto-oscillation, ajouter au signal d’erreur, sur une autre entrée du relais, la tension délivrée par le
GBF. Augmenter progressivement l’amplitude. Qu’observezvous ?
I Retrouver ce résultat avec Matlab.
I Conclusion
Mode opératoire
Il s’agit de construire expérimentalement le lieu critique pour
le relais avec hystérésis H = 1V
I Dans un premier temps, on veut vérifier la caractéristique
du relais désirée. On prendra sur X l’entrée du relais, et
sur Y la sortie du relais. On réglera l’oscilloscope en mode
XY en appuyant sur Main Delayed>XY, et en se servant
du mode persistant de l’oscilloscope Display> ∞Persist.
Observer la courbe Sr = f () après avoir réglé le seuil (dead
band) à zéro, puis l’hystérésis H à la valeur correcte de 1
V sur le module relais simulé. La sortie Sr vaut ±7.25V .
I Etude théorique : On prend k1 = 0.5. Tracer sous Matlab dans le plan de Nyquist le lieu de transfert de la partie
linéaire k1 .L(jω). L’intersection du lieu critique −1/N (Xl )
avec le lieu linéaire k1 .L(jω) donne lieu à une autooscillation
dont l’amplitude est Xl = X0 , et la pulsation de pompage
vaut ω. Noter ces valeurs théoriques.
I Pour remettre l’oscilloscope en mode normal, faire Main
Delayed>Roll. Régler k1 à 0.5. Relever la tension crête à
crête (2X0 ), ainsi que la fréquence pour ces auto-oscillations.
Comparer aux valeurs théoriques d’amplitude et de pulsation de pompage.
I En faisant varier l’atténuateur calibré, on fait varier le gain
k1 de k1 L(jω)) ; on détermine un nouveau point d’intersection avec le lieu critique et ainsi de suite. Confronter les
valeurs théoriques et expérimentales d’amplitude et de pulsation de pompage pour les valeurs de k1 suivantes : 0.7,
Correction par boucle secondaire tachymétrique La tension délivrée par la dynamo tachymétrique préalablement atténuée
par un potentiomètre remplace ici la tension sinusoı̈dale précédente :
on fait ce qu’on appelle un retour tachymétrique.
I Pour H = 1V ; régler k1 = 0.5. Quelle est l’amplitude de
l’auto-oscillation ?
I Déterminer expérimentalement la valeur du taux de contreréaction tachymétrique permettant de diviser par 2 l’amplitude de l’auto-oscillation.
I Retrouver ce résultat sous Matlab en utilisant le lieu critique tracé précédemment.
4.4
Références bibliographiques
F http ://moodle.insa-toulouse.fr/course/view.php ?id=66 Cours sur la méthode du 1er harmonique sous Moodle
18
TPs d’AUTOMATIQUE 4AE-SE
F C. MIRA Cours de systèmes asservis non linéaires. DUNOD
UNIVERSITE), 1969.
F J.C. GILLES, M. PELEGRIN Systèmes asservis non linéaires
tomes 1,2 et 3. DUNOD AUTOMATIQUE, 1975
19
TPs d’AUTOMATIQUE 4AE-SE
Manipulation 5
Commande numérique : réponse pile & Commande optimale
yc,k
Commande d’un moteur électrique par ordinateur
5.1
-
But de la manipulation et présentation du procédé
On dispose d’un moteur électrique, que l’on souhaite commander. L’entrée du système est une tension u(t) comprise entre +10
et -10V (on pourra rajouter un saturateur pour ne pas dépasser
les valeurs limites). La sortie est la vitesse de rotation ω(t) 3 .
Le moteur est modélisé par un premier ordre :
G(p) =
Régulateur proportionnel
numérique
B0(s)
G(s)
y(t)
TE
Figure 17 – Principe de bouclage discret
Ω(s)
Km
=
.
U (s)
1 + τs
I Calculer la fonction de transfert en boucle fermée, pour un
régulateur proportionnel K, en fonction de K, Km , TE et
τ.
I Calculer l’erreur statique de la régulation échantillonnée en
fonction de K, Km , TE et τ .
I En recherchant les conditions de stabilité limite, calculer la
surface de stabilité critique :
K = f (TE , τ, Km ),
(9)
où K représente le gain du régulateur proportionnel et TE ,
τ et Km la période d’échantillonnage, constante de temps
et gain du système respectivement.
Etude théorique (préparation)
Régulation numérique avec correcteur proportionnel
On met en place une régulation échantillonnée suivant le schéma
de la figure 17.
I Calculer la fonction de transfert échantillonnée du moteur
lorsque celui est précédé d’un convertisseur numérique analogique
fonctionnant en bloqueur d’ordre zéro B0 (p) :
G(z) = Z [B0 (p)G(p)]
K
uk
yk
Le but de cette manipulation est :
— d’étudier l’influence de la période d’échantillonnage ainsi
que du gain de boucle sur les performances d’une régulation
numérique ;
— de mettre en oeuvre une commande pile ;
— de mettre en place une commande linéaire quadratique
(LQ).
5.2
+
(8)
3. Le procédé en réalité deux sorties ω(t) et ω2 (t) qui représentent la vitesse
de rotation du moteur filtrée et non filtrée. Nous utiliserons la mesure filtrée
par un filtre de Butterworth.
20
Régulation numérique par commande à réponse pile
On désire réaliser une commande bouclée d’un procédé de fonction de transfert échantillonnée G(z) avec un correcteur discret
R(z) selon le schéma de la figure 18.
Dans le cas général, donner l’expression d’un correcteur R(z)
permettant d’obtenir pour le système bouclé un modèle par fonc-
TPs d’AUTOMATIQUE 4AE-SE
yc,k
uk
+
R(z)
yk
PCI-6024E AD) pour acquérir le signal de sortie et une voie CNA
(bloc Simulink PCI-6024E DA) pour envoyer le signal de commande sont utiles. Le signal issu des capteurs correspond à une
tension comprise entre -10.0 et +10.0 Volts. De même les valeurs
de sorties qui attaquent les CNA doivent être comprises dans cette
même plage de valeurs. On pourra donc rajouter un saturateur
pour ne pas dépasser les valeurs permises.
Le moteur est modélisé par un premier ordre
G(z)
-
Figure 18 – Correcteur discret
tion de transfert :
G(p) =
kdamp
Y (z)
= (d+1)
Yc (z)
z
− (1 − kdamp )
(10)
La première étape consiste à identifier les paramètres du moteur
en étudiant sa réponse indicielle. Pour cela, sous Matlab,
I Créer un .xls qui va gérer la commande. Mettre en place
une entrée échelon à 4 connectée au bloc CNA.
I Aller dans Simulation→ Model Configuration Parameters.
Dans Solver, prendre Inf en durée de simulation, type :
fixed step, ode4 (Runge Kutta), fixed step size : 0.01. Dans
Code Generation, renseigner le champs ”System target file”
par ”slrt.tlc”, puis cliquer sur Build. On génère ainsi un
programme temps réel qui va être chargé puis lancé sur
le moteur. Attention : si vous changez de commande, il
faudra toujours recliquer sur Build pour relancer la nouvelle
commande. Visualiser la vitesse du moteur à l’oscilloscope
ou via Matlab. Appuyer sur le stop de l’oscilloscope une
fois que le moteur a atteint son régime permanent.
I Grâce à cette réponse, identifier les paramètres du moteur.
où le paramètre d représente le retard pur du procédé et kdamp ∈
]0 1] le gain d’amortissement. Appliquez ensuite ce résultat à votre
système.
Contrôle par approche LQ (voir annexe pour aide)
Dans cette section, vous pouvez soit travailler sur le modèle
discrétisé ou continu.
I mettez le modèle sous forme de représentation d’état,
I mettez en place une commande LQ par retour d’état (donnez la représentation par blocs),
I Quels sont les paramètres de réglage de la synthèse LQ ?
Donner l’influence de chacun des paramètres. Implémentez
la synthèse sous Matlab/Simulink (voir annexe).
I tracez le diagramme de Nyquist et vérifiez les marges de
robustesse.
5.3
Km
.
1 + τp
Auto-oscillations
Etude expériementale
I Pour les valeurs de Km et τ identifiées sur le système réel,
tracer la courbe
Identification du procédé
K = f (TE , τ, Km ),
On dispose d’un moteur électrique, que l’on souhaite commander par xPC Target sous Simulink. Pour une présentation d’xPC
Target, se référer à l’annexe .3. Seule une voie CAN (bloc Simulink
(11)
I Pour la période d’échantillonnage T = 0, 35s, le gain Km et
temps de réponse τ identifié, donner la valeur du gain Klim
21
TPs d’AUTOMATIQUE 4AE-SE
correspondant à la limite de stabilité. Vérifier en simulation
avec votre application Simulink puis vérifier expérimentalement
ce résultat.
I Pour la période d’échantillonnage T = 0, 35s, le gain Km
et temps de réponse τ identifiés, calculer l’erreur statique
avec K = 1, sous Simulink et le vérifier en pratique.
Mise en œuvre d’une commande à réponse pile
Appliquez vos résultats théoriques au cas de la régulation de
vitesse du moteur, pour d = 0 et kdamp = {0.5 0.8 1}.
I Donner l’expression de R(z).
I Vérifier par simulation le résultat attendu puis comparer
avec des mesures expérimentales.
I Conclure
Mise en œuvre d’une commande LQ à horizon infini
En posant Q = ρ ∈ R∗+ et R = 1,
I mettez en place une commande LQ par retour d’état sur la
maquette,
I faites varier ρ et concluez sur son impact sur les performances en boucle fermée.
I concluez.
22
TPs d’AUTOMATIQUE 4AE-SE
Manipulation 6
Commande optimale : le pendule inversé
Le robot legot EV3
6.1
But de la manipulation
L’objectif de cette manipulation est de réguler le robot lego
EV3 de manière à le maintenir vertical sur ses deux roues (manipulation de type ”pendule inversé”). Le système est naturellement
instable. Pour cela, on va :
— passer d’une conception logicielle à une implémentation
matérielle, en passant par une étape de vérification par simulation. La chaı̂ne de conception se fera via Matlab et ses
boı̂tes à outils ;
— mettre en œuvre une commande par retour d’état par un
placement de pôles ;
— mettre en œuvre une commande optimale de type lqr, et
comparer différentes valeurs de Q et R.
6.2
Présentation de la maquette
Figure 19 – le robot Lego EV3
On travaille avec un robot Légo EV3. C’est un robot à deux
roues mobiles. Les entrées et les sorties du système sont représentées
sur la Figure 19.
Au niveau de chaque roue, un capteur de position angulaire
donne l’angle de la roue en degré. Un capteur ultrasons permet de
mesurer la distance à un obstacle avec une précision importante.
Il permet ainsi au robot de prendre une décision d’évitement. Les
distances mesurées sont en centimètres. Un capteur gyroscopique
permet de mesurer la rotation du robot grâce à un gyroscope à axe
unique placé sur un résonateur à quartz. Concrètement, ce capteur
gyroscopique mesure le nombre de degrés par seconde ainsi que la
direction de la rotation.
Le fonctionnement du robot est géré par un processeur ARM9
sous un OS Linux.
Pour une présentation plus détaillée du robot et de son modèle,
se référer à l’annexe.
6.3
Présentation du dossier RobotPendule
Copier sur votre répertoire, le dossier RobotPendule EV3 à
partir de Moodle ainsi que le fichier ”Guide penduleInverse”. Ce
fichier décrit le contenu de l’archive et vous permet de débuter le
TP.
23
TPs d’AUTOMATIQUE 4AE-SE
6.4
Manipulation
I Quelles valeurs de QQ et RR conservez-vous ? Justifier votre
réponse.
Commande LQ
Simulation Dans une première approche, on souhaite contrôler
le robot par retour d’état. Afin de déterminer le gain de ce retour
d’état, on utilise les principes de commande LQ (pour plus d’informations concernant cette commande regarder l’annexe). Pour cela,
vous devez effectuer les tâches suivantes pour plusieurs valeurs des
matrices de pondération Q et R :
I Quels sont les états du système, décrire le vecteur d’état.
Dans la mesure où le modèle de simulation réparti le même
couple sur les deux moteurs des roues, nous ne considèrerons
qu’une entrée. Que cela implique-t-il sur la représentation
d’état ? Donner la dimension de Q et R.
I Compléter le fichier matlab lego selbalance controller.m. Il
vous suffit de définir les matrices de pondération QQ et
RR. Ce fichier doit calculer le gain de retour d’état appelé
KK ici.
I Modifier le simulink ”Balance ans Drive Control”. Sur ce
fichier, vous disposez de plusieurs données :
— x1 ref consigne de modèle d’état
— theta ref consigne pour l’angle d’inclinaison des roues
— x1 mesure de modèle d’état
— theta mesure pour l’angle d’inclinaison des roues
— vol commande des moteurs des roues.
Vous devez implémenter le retour d’état en utilisant le gain
de retour d’état KK et les différentes données présentes
(toutes ne seront pas forcément utilisées à cet endroit là).
I Simuler le comportement du robot. On effectuera un
tableau comparatif des résultats pour différentes
valeurs de QQ et RR en fonction des réponses obtenues.
On essaiera le plus possible de classer les réponses en différentes
catégories dont on donnera les caractéristiques. Montrer
quelles composantes de QQ et RR ont de l’importance dans
la régulation, sur quelles caractéristiques ?
Test sur le robot réel Une fois que vous aurez déterminé par
simulation un réglage optimal pour QQ et RR, tester votre correcteur sur le robot en utilisant le mode ”external” de simulink.
Regarder les effets des perturbations sur votre réglage, comparer
les résultats expérimentaux et la simulation. Conclure.
Action intégrale
Lorsqu’on effectue une commande par retour d’état, l’erreur
statique n’est pas forcément nulle. Ceci n’est généralement pas
gênant dans la mesure où l’objectif poursuivi est une régulation.
Néanmoins, dans le cas où l’objectif consiste à suivre une trajectoire, on peut alors procéder de la même manière que pour
les systèmes asservis classiques en insérant un intégrateur dans la
chaı̂ne directe comme illustré sur la figure 23.
Figure 20 – Schéma bloc d’une commande par retour d’état avec
action intégrale
On propose dans cette partie d’introduire cet intégrateur dans
la fonction de commande du robot.
Une explication succinte de la théorie est donnée en annexe .6.
I Compléter le schéma bloc de la commande pour mettre en
place l’action intégrale.
24
TPs d’AUTOMATIQUE 4AE-SE
I Définir le système augmenté et calculer une valeur de Ki
permettant de réduire l’erreur statique par la méthode lqr.
I Tester le comportement du robot en simulation. Comparer
avec les résultats précédents. On effectuera un tableau
comparatif des résultats. Trouver une valeur de Ki qui
vous semble optimale.
I Implémenter cette commande en réel sur le robot. Tester.
Regarder les effets des perturbations sur votre réglage.
Placement de pôles avec action intégrale
On propose dans cette partie d’introduire un intégrateur dans
la fonction de commande du robot en conservant la commande par
placement de pôles.
I Reprendre le schéma bloc de la commande pour mettre en
place l’action intégrale.
I Définir le système augmenté et calculer une valeur de Ki
permettant de réduire l’erreur statique avec la fonction
place de Matlab.
I Tester le comportement du robot en simulation. Comparer
avec les résultats précédents. On effectuera un tableau
comparatif des résultats. Trouver une valeur de Ki qui
vous semble optimale.
I Implémenter cette commande en réel sur le robot. Tester.
Regarder les effets des perturbations sur votre réglage.
Commande par placement de pôles
La commande LQ a l’avantage et l’inconvénient de ne pas imposer le choix des valeurs propres de la matrice de commande corrigée. Ceci est un avantage car le concepteur n’a pas à réfléchir sur
le choix des valeurs propres, mais c’est également un inconvénient
car on ne choisit donc pas la dynamique du système.
On propose dans cette partie d’affiner les paramètres trouvés
dans la partie LQ de façon à essayer d’améliorer la dynamique.
I Trouver les valeurs propres imposées par la commande LQ
de la première partie qui vous semblent optimales.
I A l’aide de la fonction place de Matlab, trouver la valeur de
Kf pour imposer ces valeurs propres au système. Un rappel
du placement de pôles est donné en Annexe .6.
I Tester le comportement du robot en simulation. Comparer
avec les résultats précédents.
I Faites varier les valeurs propres imposées de manière à
améliorer le comportement du robot. Tester le comportement du robot en simulation. On effectuera un tableau
comparatif des résultats, de manière à conclure sur
des coefficients optimaux.
I Implémenter la meilleure commande en réel sur le robot.
Tester. Regarder les effets des perturbations sur votre réglage.
6.5
Conclusion
I Conclure sur une synthèse les avantages, les inconvénients,
et les performances de votre système selon le correcteur
utilisé, grâce aux différents tableaux mis en place.
I Tester éventuellement le robot avec des roues différentes.
Conclure.
6.6
Références bibliographiques
F Notice NXTway-GS Model-Based Design - Control of selfbalancing two-wheeled robot built with LEGO Mindstorms
NXT, Yorihisa Yamamoto.
F Réalisation, réduction et commande des systèmes linéaires,
A. Rachid, D. Medhi, Technip, Collection Méthodes et techniques de l’ingénieur (Paris)
25
TPs d’AUTOMATIQUE 4AE-SE
Annexe : Théorie des graphes - Algorithme de Dijkstra
La théorie des graphes est un outil privilégié de modélisation et
de résolution de problèmes de décision dans un très grand nombre
de domaines allant des sciences fondamentales (physique, informatique) aux applications technologiques les plus concrètes (conception de réseaux de télécommunications, problèmes d’affectation,
GPS et recherches de plus courts chemins, etc.). Les concepts de
base de la théorie des graphes sont présentés en détail dans le cours
Graphes du semestre 2 de la 4AE. Ne sont donc introduits ici que
les éléments indispensables pour la mise en oeuvre de l’algorithme
de Dijkstra permettant de rechercher le plus court chemin entre
un sommet et tous les autres dans un graphe.
.1
exemple représenter une distance, ou une vitesse, ou un coût ou
toute autre grandeur représentative du problème modélisé par le
graphe. On parle alors de graphe valué.
Chemins et circuits
Un chemin est une suite d’arcs telle que l’extrémité d’un arc
est l’origine de l’arc suivant dans ce chemin. Ainsi par exemple,
(X2 − X1 − X4 ) est un chemin entre les sommets x1 et x4 .
Un circuit est un chemin dont l’extrémité finale est aussi l’origine du chemin. Ainsi par exemple, (X2 − X1 − X4 − X2 ) est un
circuit.
La longueur d’un chemin (ou d’un circuit) est égale à la somme
des longueurs des arcs qui composent le chemin (ou le circuit).
Concepts de base sur les graphes
Graphe, sommets, arcs
Un graphe G(X, U ) est constitué
— d’un ensemble de sommets X = {x1 , x2 , . . . , xn }
— d’un ensemble d’arcs reliant ces sommets U = {u1 , u2 , . . . , um }.
Un arc u est défini par un couple de sommets : u = (xi , xj )xi ∈
X; xj ∈ X. xi est l’origine de l ?arc u et xj son extrémité.
.2
Recherche de plus courts chemins
Une problématique classique dans un graphe valué est de rechercher
le plus court chemin entre un sommet du graphe que l ?on notera
s (sommet source) et tous les autres. La théorie des graphes propose différents algorithmes de recherche de plus courts chemins
adaptés aux propriétés du graphe. Dans le cas particulier où toutes
les longueurs d’un graphe valué sont positives, on peut appliquer
l’algorithme de Dijkstra.
Cet algorithme est itératif. On associe 3 informations à chaque
sommet xi :
— λi : longueur du plus court chemin trouvé à l’itération
courante entre s et xi
— qi : dernier sommet avant xi sur ce chemin (permet de reconstituer le plus court chemin à la fin de l’algorithme)
— mi ∈ {0, 1} : le sommet xi est dit ”marqué” lorsque mi = 1.
Il est dit ”non marqué” lorsque mi = 0. Lorsque le sommet est marqué, λi correspond à la longueur du plus court
Longueur d ?un arc et graphes valués
Il est possible d’associer une valeur lij à chaque arc (xi , xj ).
Cette valeur (qui peut être positive, négative ou nulle) peut par
26
TPs d’AUTOMATIQUE 4AE-SE
chemin entre s et xi (λi a sa valeur définitive).
Algorithme détaillé
Principe général de l’algorithme
— Initialisations : λs est initialisé à 0 (le plus court chemin
entre s et s est de longueur nulle) ; les λi , ∀i 6= s sont initialisé à ∞ (les plus courts chemins entre s et xi ne sont
pas connus en début d’algorithme : leur longueur est donc
∞) ; ces longueurs ne sont pas définitives ⇒ mi = 0∀i
— A chaque itération :
— On repère le sommet non encore marqué (mi = 0) qui
a le plus petit λ.
— On marque ce sommet (mi = 1) car, compte tenu de la
propriété du graphe, on peut être sûr qu’il n’existe pas
de plus court chemin entre s et ce sommet.
— On essaie d’actualiser les λ des sommets suivants immédiats
du sommet qui vient d’être marqué (cf. algorithme détaillé).
— On recommence une nouvelle itération jusqu ?à ce que
tous les sommets soient marqués (mi = 1).
Mise en oeuvre sur un exemple
Considérons le graphe valué dessiné ci-dessous. On recherche
les plus courts chemins entre s=x1 et les autres sommets du graphe.
27
TPs d’AUTOMATIQUE 4AE-SE
Le tableau ci-dessous détaille les différentes itérations de l’algorithme. Les cases grisées montrent le sommet qui est marqué au
début de chaque itération (sommet non marqué ayant le plus petit
λ. Les valeurs actualisées au cours de l ?itération des λ et m des
sommets suivants celui qui est marqué apparaissent sur la même
ligne.
F Réalisation, réduction et commande des systèmes linéaires,
A. Rachid, D. Medhi, Technip, Collection Méthodes et techniques de l’ingénieur (Paris)
Reconstitution des plus courts chemins :
Par exemple le plus court chemin entre x1 et x6 est de longueur
6 (λ6 = 6). Le dernier sommet avant x6 sur ce chemin est x5 (car
q6 = x5 ). Le dernier sommet avant x5 sur ce chemin est x4 (car
q5 = x4 ). Le dernier sommet avant x4 sur ce chemin est x3 (car
q4 = x3 ). Le dernier sommet avant x3 sur ce chemin est x1 (car
q3 = x1 ). Le plus court chemin est donc : x1 − x3 − x4 − x5 − x6 .
.3
Références bibliographiques
F Notice NXTway-GS Model-Based Design - Control of selfbalancing two-wheeled robot built with LEGO Mindstorms
NXT, Yorihisa Yamamoto.
28
TPs d’AUTOMATIQUE 4AE-SE
Annexe : xPC Target
.4
Introduction et principes de fonctionnement
tions est graphique et dépend de l’application.
La Figure 21 présente les trois entités manipulées en TP : le PC de
développement avec Matlab/Simulink, le PC cible et le système à
contrôler.
xPC Target est un environnement logiciel qui permet de mettre au point, de tester et de mettre en œuvre des applications
temps réel sur du matériel de type PC. Cet outil offre l’avantage
d’être associé à Matlab/Simulink, ce qui permet de passer de la
phase essai/simulation à la phase mise en œuvre/expérimentation
très rapidement et très facilement en s’affranchissant de l’étape de
codage. La configuration matérielle standard est composée de 2
unités informatiques reliées par une liaison série asynchrone.
Le PC hôte sert d’unité de développement. A partir de Matlab/Simulink, il est possible d’engendrer directement l’application
temps réel. Il fonctionne dans l’environnement Windows habituel.
Figure 21 – Commande déportée sous XPC Target
Le PC cible est orienté temps réel. Il est donc démarré (à l’aide
d’un CD, d’une disquette ou d’une EPROM) non pas sur DOS
ou Windows mais sur un noyau temps réel spécifique. Ce noyau,
entre autres choses, permet de recevoir et faire exécuter le code
engendré par le PC hôte et d’assurer la communication entre les
deux machines (téléchargement, mise en marche, adaptation en
ligne de paramètres, rapatriement de données . . . ). Enfin ce PC est
équipé de cartes (dans notre cas deux cartes National Instrument
PCI 6024E avec convertisseurs analogique-numérique et convertisseurs numérique-analogique) qui lui permettent de commander le
processus.
.5
Configuration manuelle d’Xpc Target
Démarrez le PC cible.
1. Création de la communication entre le PC hôte et le
PC cible : Il s’agit de configurer l’environnement logiciel
XPCTarget. La commande matlab setxpcenv permet de
configurer la communication entre le PC hôte et le PC cible.
Récupérer le fichier ParamConnecXPC.m dans moodle, l’ouvrir, et renseigner les champs concernant l’adresse IP de
la cible (Target PC IP address), le port (TCP/IP Target
Port), le masque de sous-réseau (LAN subnet mask address), l’adresse du Gateway (TCP/IP gateway address) et
le driver (TCP/IP Target Driver) de votre PC Cible.
Tous ces renseignements se trouvent sur l’écran de votre
PC cible :
— Target PC IP address : IP Add
— TCP/IP Target Port : Port
— LAN subnet mask address : Subnet
La cible est équipée d’un moniteur sur lequel sont visualisés
deux types d’information : des informations liées à l’exécution
temps réel de l’application en cours (nom de l’application, temps
courant, période d’échantillonnage . . . ) ainsi qu’un rapport sur
l’exécution des commandes envoyées par le PC hôte (adaptation
de paramètres, mise en marche, . . . ). Le second groupe d’informa-
29
TPs d’AUTOMATIQUE 4AE-SE
— TCP/IP gateway address : Gateway
— TCP/IP Target Driver : Board
Les fonctions utiles sont les suivantes :
— configuration de la connection : setxpcenv
— connection ObjetXPC = xpc
— deconnection ObjetXPC.close
— vérification des paramètres et de la connection getxpcenv
— construire le programme pour la cible
rtwbuild(’nomDuModele’);
— lancement du programme sur le PC cible +tg
— arrêt du programme sur le PC cible -tg
L’écran suivant apparaı̂t :
2. Compilation d’un modèle développé sous Simulink :
Une fois le modèle réalisé, par exemple celui de la Figure
suivante.
Remarque : pour récupérer les données sur Matlab, on utilise
le bloc out de simulink.
Sélectionnez l’onglet Solver.
Partie Simulation Time : ce réglage permet de fixer le
temps au bout duquel le programme doit s’arrêter. Mettez inf dans Stop Time, ou une durée finie si vous
souhaitez que le programme s’arrête automatiquement. Ici
on met inf pour infini, le programme tournera donc sans
interruption sur la cible.
Pour compiler le programme, cliquez sur le menuModel
Configuration Parameters
Partie Solver options : Choisissez
30
Fixed-Step
dans
TPs d’AUTOMATIQUE 4AE-SE
Type. Mettez Discrete dans Solver. Tapez Te dans
Fixed-Step size. Appuyez sur ”Additional options” si vous
ne voyez pas Fixed-step size. Sauvegardez vos modifications
en cliquant sur le bouton Apply. Vous devez avoir l’écran
suivant :
lorsque vous avez la possibilité de taper de nouveau une
commande dans la fenêtre Command Window de Matlab.
3. Execution du programme sur le PC cible. Pour lancer
le programme sur le PC cible, il faut taper la commande
> +tg
Lorsque le PC cible exécute un programme, il affiche un
certain nombre de données,
— le temps au bout duquel il arrête l’exécution du programme (StopTime) ici réglé à l’infini
— le pas temporel d’échantillonnage (StepTime) ici réglé
à l’aide de Te
— Depuis combien de temps il exécute le programme (Execution)
Pour arrêter le programme sur le PC cible, il faut taper la
commande
> -tg
On remarque qu’au lieu d’afficher le temps d’exécution, le
PC Cible affiche stopped. Le programme est bien arrêté.
4. Récupération des données sous Matlab. Pour récupérer
les données issues d’un bloc ”Out” utilisé dans un modèle
tournant sous xPC, il faut taper la commande :
> y= tg.OutputLog ;
> t= tg.TimeLog ;
Après cette commande, y contient toutes les données des
blocs ”Out” du modèle concerné et t le vecteur temps.
Par exemple, pour tracer les courbes des données du modèle
Figure 2, on tape la commande :
> plot (t, y( :,1))
pour tracer la sortie
> plot (t, y( :,2))
Le paramètre Te sera le pas de calcul de l’horloge interne du
PC Cible. Il faudra le spécifier sous Matlab : Dans la fenêtre
Command Window de Matlab, fixer le pas de calcul. Mettre
le même pas Te comme sample Time dans les CAN/CNA
- (PCI 6024E).
Sélectionnez l’onglet Code generation. Dans le parapraphe
Target selection : Choisissez à l’aide du bouton Browse
slrt.tlc dans System target file.
Sauvegardez vos modifications en cliquant sur le bouton
Apply.
Pour compiler le programme, il vous suffit de taper dans la
fenêtre de commande ”Command Windows”.
> rtwbuild(’nomDuModele’)
La compilation prend un certain temps, elle est terminée
Une interface graphique est également disponible en tapant la
commande :
> slrtexplr
31
TPs d’AUTOMATIQUE 4AE-SE
.6
xPC target sur la toile
Le lien : http ://radio.feld.cvut.cz/Docs4Soft/matlab/toolbox/xpc/ch environment reference16.html
donne la liste des fonctions utilisables avec l’environnement xPC
Target.
32
TPs d’AUTOMATIQUE 4AE-SE
Annexe : Commande par retour d’état
.7
Introduction et principes de fonctionnement
La commande par retour d’état est une technique de contrôle
qui consiste à multiplier l’erreur entre la valeur de référence xref (t)
et la valeur de l’état mesurée x(t) par un gain de retour K et d’utiliser cette valeur en commande. De fait, la commande par retour
d’état peut être vue comme une généralisation de la commande
Proportionnel Dérivé (PD) dans la théorie de la commande classique. La figure 22 montre le schéma bloc d’une commande par
retour d’état.
xref
+
‐
K
x  Ax  Bu
rang(Mc ) = n,
(14)
n−1
Mc = [B, AB, . . . A
B],
(15)
avec n la dimension du système. La ”control” toolbox de Matlab
permet d’évaluer la matrice de commandabilité.
Exemple: Le système suivant est-il commandable ?
A = [0, 1; −2, −3], B = [0; 1] → commandable.
x
> A = [0, 1; -2, -3]; B = [0; 1];
> Mc = ctrb(A,B);
> rank(Mc)
ans = 2
.8
Figure 22 – Schéma bloc de la commande par retour d’état
De nombreuses méthodes existent pour trouver le gain K.
Toutefois, le placement de pôles (et/ou de structure propre) et la
commande linéaire quadratique (dite optimale) sont deux méthodes
très laregment utilisées par les ingénieurs pour obtenir le gain de
retour d’état K.
La commande et l’équation d’état de ce système sont les suivants :
u(t) = −K(x(t) − xref (t)),
(12)
ẋ(t) = (A − BK)x(t) + BKxref (t).
(13)
Obtention de la matrice K
Placement de pôles direct
Il est alors possible de stabiliser le système en choisissant le
gain de retour K de manière à placer correctement les valeurs
propres de A − BK.
Pour utiliser une commande par retour d’état, il est nécessaire
que le système soit commandable. Une condition nécessaire et suffisante pour la commandabilité du système est que la matrice de
commandabilité Mc soit de rang plein.
Cette méthode consiste à calculer le gain de retour K de manière
à placer les pôles (les valeurs propres) de la matrice A − BK à une
valeur précise. Les valeurs choisies sont évidemment stables, et
sont souvent tirées des performances souhaitées sur le système corrigé (vitesse, amortissement, découplage...). Il faut toutefois veiller
à ce que la valeur de K ne soit pas aberrante (numériquement bien
conditionnée, limitant les saturations...). Cette méthode requiert
33
TPs d’AUTOMATIQUE 4AE-SE
de résoudre un système linéaire.
il est à noter que la commande LQ possède, intrinsèquement, de
très bonnes propriétés de robustesse.
La fonction place de Matlab permet d’effectuer un placement
de pôles direct qui minimise la sensibilité.
Formulation mathématique (cas continu, a horizon infini) : Soit le système Linéaire à Temps Invariant (LTI) à nu
entrées et ny sorties défini par sa fonction de transfert H(s) ∈
Cny ×nu , complexe et analytique sur C+ , munie d’une réalisation,
Exemple: Calculer le gain de retour d’état pour le système
A = [0, 1; −2, −3], B = [0; 1] de manière à placer les pôles en −5
et −6.
ẋ(t) = Ax(t) + Bu(t), y(t) = Cx(t) + Du(t).
> A = [0, 1; -2, -3]; B = [0; 1];
> poles = [-5, -6];
> K = place(A,B, poles)
K =
28.0000 8.0000
(16)
L’objectif de la méthode LQ consiste à calculer le gain de retour
d’état K de manière à minimiser la fonction de coût J suivante :
Z ∞
J=
(x(t) − xref (t))> Q(x(t) − xref (t)) + u(t)> Ru(t) dt
0
(17)
sous la contrainte de la dynamique du système (16). Il est à noter
que le critère J représente le compromis entre l’énergie du système,
x(t)T Qx(t), et celle de la commande, u(t)T Ru(t).
Il peut être montré (voir cours au second semestre) que la
solution de ce problème est donnée par la commande
La commande optimale Linéaire Quadratique (LQ)
La commande par placement de pôles a pour objectif de synthétiser
K, un correcteur statique par retour d’état (eg. tel que u(t) =
Kx(t)) de telle façon que les pôles de la boucle fermée sont placés
aux endroits souhaités dans le demi-plan complexe gauche.
L’idée générale : Le principe de la commande Linéaire Quadratique (LQ), souvent - et abusivement - appelée ”commande optimale”, est de synthétiser K, un correcteur statique par retour
d’état (e.g. tel que u(t) = K(x(t) − xref (t)), qui minimise un
critère quadratique.
Dans le cas des systèmes échantillonnés, ce critère quadratique
n’est autre qu’une somme (finie ou infinie) pondérée de x(t), l’état
du système, et u(t), la commande qui lui est appliquée. Dans le
cas des systèmes continus, cette somme est une intégrale.
Alors que le placement de pôles peut être vu comme complexe pour un utilisateur (nécessitant de choisir les pôles), la commande linéaire quadratique, quant à elle, est basée sur un critère
énergétique, bien plus parlant pour l’ingénieur. A titre introductif,
u(t) = −K(x(t) − xref (t)),
(18)
K = R−1 B T P,
(19)
avec
où P > 0 (i.e. définie positive), est la solution de l’Equation
Algébrique de Riccati (EAR),
AT P + P A − P BR−1 B T P + Q = 0.
(20)
Il est à noter que le coût partiel est J(x(t), t) = 21 x(t)T P x(t).
Les paramètres de choix sont alors les poids des matrices symétriques pour l’état Q = QT , la commande R = RT . Les matrices sont le plus souvent choisies comme diagonales. Une solution
généralement adoptée pour avoir déjà une indication des ordres de
grandeur de ces coefficients est de fixer R = Inu et Q = ρIn , puis
34
TPs d’AUTOMATIQUE 4AE-SE
de faire varier le scalaire ρ (un ρ 1 indique que on va se concentrer sur la minimisation de l’énergie du système, alors ρ 1
indique que on va se concentrer sur la minimisation de la commande). On procède ensuite par essai erreur. La fonction lqr de
Matlab permet d’obtenir le gain de retour avec la méthode LQ.
il peut être prouvé que
F (−s)T F (s)
⇔
|F (jω)|
⇔ |1 + L(jω)|
⇔
|S(jω)|
Exemple: Calculer le gain de retour d’état pour le système
A = [0, 1; −2, −3], B = [0; 1] en utilisant Q = [100, 0; 0, 1] et R = 1.
(23)
La commande par retour d’état avec action intégrale
Lorsqu’on effectue une commande par retour d’état, l’erreur
statique n’est pas forcément nulle. Ceci n’est généralement pas
gênant dans la mesure où l’objectif poursuivi est une régulation.
Néanmoins, dans le cas où l’objectif consiste à suivre une trajectoire, on peut alors procéder de la même manière que pour
les systèmes asservis classiques en insérant un intégrateur dans la
chaı̂ne directe, en l’appliquant sur certaines sorties y(t). On considère donc une commande de la forme 4 (attention, ici nous avons
substitué x(t) − xref (t) par xref (t) − x(t)) :
ou
> A = [0, 1; -2, -3]; B = [0; 1];
> Q = [100, 0; 0,1]; R = 1;
> [P,L,G] = care(A,B,Q,R); % Résolution de l’EAR
> K=R\1*B’*P;
K =
8.1980 2.1377
Z
A propos de la robustesse : Si nous considérons un système
mono-entrée mono-sortie, bouclé par une commande u(t) = Kx(t),
où K est synthétisé par approche LQ à horizon infinie, avec R =
ρI. Dès lors, en notant le transfert de boucle L(s)
u(t) = −Kf (xref (t) − x(t)) + Ki
t
(yref (t) − y(t))dt
(24)
0
appliqué au système dynamique :
(21)
et le transfert F (s) (utilisé pour l’analyse de sensibilité et de robustesse) et la fonction de sensibilité S(s) par
F (s) = I + L(s) = S(s)−1 ,
1
1
1
1.
Par conséquence, si la fonction de sensibilité |S(jω)| ≤ 1, alors
— la marge de module du système ≥ 1,
— la marge de gain est ∞,
— la marge de phase ≥ 60deg.
> A = [0, 1; -2, -3]; B = [0; 1];
> Q = [100, 0; 0,1]; R = 1;
> K = lqr(A,B,Q, R)
K =
8.1980 2.1377
L(s) = K(sIn − A)−1 B,
≥
≥
≥
≤
ẋ(t) = Ax(t) + Bu(t)
(25)
y(t) = Cx(t)
(26)
Si l’on introduit une nouvelle variable z(t) telle que ż = yref (t)−
y(t), c’est-à-dire ż = Cxref − Cx(t). La commande a une expres-
(22)
4. Les ouvrages sur la théorie de la commande décrivent habituellement
cette commande avec xref = 0. On gardera ici l’expression de xref pour
améliorer les performances de suivi.
35
TPs d’AUTOMATIQUE 4AE-SE
sion de la forme
u(t) = −
Kf
Ki
x(t)
z(t)
+
Kf
Ki
xref
0
(27)
et elle peut être considérée comme étant
par retour
la commande
x(t)
d’état du système augmenté avec X =
z(t)
ẋ(t)
ż(t)
=
A 0
−C 0
x(t)
z(t)
+
B
0
u+
0
C
xref
(28)
Quand on considère le système stabilisé, on a alors y∞ = yref .
Le schéma bloc d’une telle commande est illustré Figure 23.
Figure 23 – Schéma bloc d’une commande par retour d’état avec
action intégrale
.9
Références bibliographiques
F Notice NXTway-GS Model-Based Design - Control of selfbalancing two-wheeled robot built with LEGO Mindstorms
NXT, Yorihisa Yamamoto.
F Réalisation, réduction et commande des systèmes linéaires,
A. Rachid, D. Medhi, Technip, Collection Méthodes et techniques de l’ingénieur (Paris)
36
Téléchargement
Explore flashcards