Automatique, 2012-2013
1 Prparation
Il est impratif de prparer chaque sance de travaux pratiques. On estime 1 heure le temps ncessaire
pour prparer un TP. Lessentiel du travail consiste lire et comprendre ce qui est demand et, le cas chant,
rechercher les informations qui pourront tre utiles pendant la sance. Quelques questions sont galement
explicitement poses pour la prparation du TP2 (section prparation).
4 Evaluation
Lvaluation des TPs dautomatique est faite en contrle continu et se fait sur la base
1. du travail effectu pendant chacunes des 3 sances de 4heures ;
2. des comptes-rendus de chaque TP qui doivent galement comporter les rponses aux questions thoriques
de la prparation.
En principe, deux tudiants dun mme binme ont la mme note. Cependant, si un dsquilibre important
apparat dans le travail fourni, rien ninterdit dattribuer des notes diffrentes.
Le travail attendu pour un trinme ventuel est bien sr plus important que pour un binme.
1
FIP 2me Anne
Automatique, 2012-2013
2
FIP 2me Anne
Automatique, 2012-2013 TP 1
Lobjectif de ce TP est de mettre en vidence les effets de lchantillonnage et de la numrisation des cor-
recteurs continus. Ce TP seffectuera entirement en simulation avec Matlab et la bote outils Simulink.
Le systme tudi possde une seule sortie y et une seule entre u (il sagit de tensions, mesures en Volts).
Sa fonction de transfert, identifie au point de fonctionnement, scrit :
Y (s) 2, 3
G(s) = = ,
U (s) s(1 + 0, 1s)
1 Correction proportionnelle
1.1 Correcteur analogique
Cette 1re partie est un rappel de lutilisation de matlab pour les systmes continus. Vous ne devez pas y
passer plus dune demie heure
1. Dfinir la fonction de transfert du systme laide de la commande :
>>G=tf([2.3],[0.1 1 0])
et lancer lutilitaire de trac du lieu dEvans avec la commande :
>>rltool(G)
Les points rouges sur le lieu dEvans correspondent la position des ples du systme boucl pour la
valeur du gain indique dans lafficheur Gain. Ces ples peuvent tre dplacs le long du lieu dEvans. La
valeur du gain est alors ractualise.
2. Faire la synthse dun correcteur proportionnel analogique de sorte que le systme asservi ait un facteur
damortissement gal 0,707.
3. Simuler laide de rltool la rponse indicielle du systme asservi pour un chelon unitaire. Identifier les
lments caractristiques de la rponse confirmant le bon rglage du correcteur.
4. Lancer Simulink avec la commande :
>>simulink
Construire un modle Simulink du systme analogique en boucle ferme comprenant le correcteur propor-
tionnel dtermin. Pour cela, on recherchera dans les menus de Simulink les diffrents blocs ncessaires
(fonction de transfert continue, sommateur, gain, oscilloscope pour visualiser, etc.), que lon fera glisser
dans le modle. La fonction de transfert G(s) de mme que le gain dtermins prcdemment seront uti-
liss dans ce modle, Simulink partageant les variables de lenvironnement de Matlab (son Workspace en
anglais dans le logiciel).
5. Ce modle construit, retrouver la rponse indicielle du systme en boucle ferme pour un chelon unitaire.
3
FIP 2me Anne
Automatique, 2012-2013 TP 1
correcteur analogique celle du systme asservi numriquement avec une priode dchantillonnage de
25 ms. Expliquer la diffrence 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 rsolution de calcul de
simulink est insuffisante. Il faut alors modifier les paramtres de simulation dans le menu simulation).
4. Refaire lexprience avec un bruit 150 Hz et commenter.
5. Ajouter un filtre analogique de Butterworth (commande butter ) dordre 2 lasservissement numrique
de manire rejeter correctement les bruits de mesure. Vrifier lefficacit du filtrage par un essai indiciel.
2 Rejet de perturbations
2.1 Rejet dune perturbation dentre
Le convertisseur numrique/analogique (CNA) a un offset dpendant de la temprature ambiante. Cet offset
peut-tre modlis comme une perturbation dentre constante sur la commande.
1. Crer un nouveau modle. Simuler la rponse indicielle du systme asservi avec le correcteur numrique
prcdent et un offset de 0,2 V .
On souhaite synthtiser un correcteur dordre rduit permettant de rejeter cette perturbation dentre. La
synthse sera faite par transposition dun correcteur continu.
2. A laide de rltool, calculer un correcteur analogique du second ordre (au plus) tel que le systme boucl
respecte le cahier des charges suivant :
erreur statique nulle malgr loffset du CNA ;
dpassement infrieur 15% ;
temps dtablissement 5% infrieur 1 s.
Pour cela on notera que dans lutilitaire rltool, il est possible dajouter des ples et des zros au correcteur
(dans Tools Edit compensator ou simplement en cliquant sur le bloc K). Il est galement possible
dutiliser le bouton Add zero (flche pointant un cercle) ou le bouton Add pole (flche pointant une croix)
puis de cliquer lendroit du plan complexe o on dsire placer le zro ou le ple. Ces derniers peuvent
tre dplacs par la suite en cliquant sur le bouton drag pole/zero (flche seule) ; le lieu dEvans est alors
ractualis.
3. Appliquer la transformation bilinaire :
2 z1
s
Te z + 1
o Te est la priode dchantillonnage, pour passer du correcteur continu au correcteur numrique. Ceci
est ralis en utilisant la fonction c2d de Matlab. Expliquez comment choisir la priode dchantillonnage.
4. Simuler la rponse indicielle de lasservissement numrique ainsi obtenu.
4
FIP 2me Anne
Automatique, 2012-2013 TP 2
Le but de ce TP est de mettre en place des correcteurs numriques pour asservir la position dune maquette
construite autour dun moteur courant continu et dun codeur optique incrmental.
Le TP comporte plusieurs cahiers des charges satisfaire. Pour chacun des jeux de contraintes les phases
raliser sont les suivantes :
1. Synthse dun correcteur laide du lieu des racines ;
2. Test du correcteur laide 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 rsultats obtenus
Cette dmarche est la mthodologie classique de synthse et dimplantation sur un systme rel. Il est bien
sr inutile de passer dune tape la suivante sans lavoir valide.
Les correcteurs seront implants sur un PC muni dune carte assurant linterface avec le banc moteur.
Pour ce qui concerne le logiciel, les fonctions dentresortie sont fournies, ainsi que le programme assurant le
cadencement de la commande. Seul le correcteur est programmer.
1 Prparation
1.1 Modlisation du systme tudi
Le systme tudi est un banc moteur de type HMC. Ce banc est compos dun moteur courant continu
de faible puissance (< 20 W ) coupl un rducteur qui est lui-mme coupl un volant dinertie. Le codeur
incrmental qui fournit la mesure de la position est coupl larbre moteur. La grandeur de commande du
systme est la tension U dentre dun amplificateur transistors qui est proportionnelle la tension applique
linduit du moteur.
La fonction de transfert thorique, reliant lentre U du systme la mesure de position , scrit :
K
G(s) = = (1)
U s(1 + s)
Les valeurs numriques 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 systme est pilot laide dun ordinateur ralisant lasservissement numrique. Le CNA utilis est mo-
dlis par un bloqueur dordre zro B0 (s). En supposant que lon chantillonne de faon synchrone la commande
et la mesure, et que le gain du CNA est unitaire, la reprsentation du systme en boucle ouverte est celle dcrite
par la figure 1.
Le PC qui ralise lasservissement temps rel est galement celui qui est utilis pour dvelopper et compiler les
logiciels. Cette machine possde une carte convertisseur numrique/analogique pour lapplication des commandes
ainsi quune carte compteur pour convertir les impulsions du codeur incrmental en position angulaire. Le
systme dexploitation utilis est Xenomai (linux temps-rel).
Question : Donner la fonction de transfert G(z) entre la commande U (z) et la sortie (z), pour une priode
dchantillonnage Te quelconque.
5
FIP 2me Anne
Automatique, 2012-2013 TP 2
On supposera par la suite que le temps ncessaire pour effectuer la mesure, le calcul, et lenvoi de la commande
est ngligeable (trs petit devant la priode dchantillonnage).
Le programme effectue des instructions en boucle infinie. La boucle est organise en cinq tapes :
1. La mesure de la position est acquise au moyen dun codeur optique incrmental. Les fonctions assurant la
lecture du compteur et la conversion en degrs sont implmentes. La variable mesure contient la mesure
courante.
2. La variable consigne donne la consigne courante. Cette consigne est dfinie par lutilisateur avant le
lancement de lasservissement (chelon ou rampe).
3. La partie coder est le calcul de la commande (variable commande).
On demande en prparation dcrire lalgorithme dun correcteur numrique dordre n en supposant
que lon connat :
les n + 1 coefficients des polynmes N (z 1 ) et D(z 1 ) (Numrateur et Dnominateur de la fonction
de transfert du correcteur exprims en puissances de z 1 ), qui sont rangs dans des variables (de type
tableau) b et a dans lordre des puissances croissantes de z 1 :
6
FIP 2me Anne
Automatique, 2012-2013 TP 2
les n + 1 dernires mesures (dont la mesure courante) ranges dans le tableau mes, de telle sorte que :
les n + 1 dernires consignes ranges dans le tableau cons, de telle sorte que :
les n + 1 dernires commandes ranges dans le tableau com, de telle sorte que :
Lalgorithme doit calculer la commande u(k) en fonction des donnes, stocker cette commande dans la
variable commande et mettre jour les diffrents lments des tableaux.
4. La commande stocke dans commande est ensuite envoye dans le CNA.
5. On attend enfin le prochain top dhorloge avant de reboucler (fonctions de gestion de lhorloge existantes
en bibliothque)
2 Manipulation
2.1 Connexion informatique
A la fentre de login le nom dutilisateur est ensps et le mot de passe ulp. Ouvrir un terminal en cliquant
licne de la barre des tches.
Taper la commande ini_rst pour initialiser le TP. Cette commande cre un rpertoire nomm rst contenant
plusieurs fichiers dont iofunctions.h ( ne pas modifier) et rst.c. Pour aller dans ce rpertoire, taper cd rst.
Pour diter le fichier rst.c, taper la commande nedit rst.c &. Ce fichier contient le code du programme
dasservissement.
Lancer Matlab partir de licne du bureau ou en tapant matlab dans un terminal.
Attention ! : Pour vous viter de perdre du temps, ncrasez pas vos schmas et rsultats. Ils sont utiliss
plusieurs reprise tout au long du TP.
7
FIP 2me Anne
Automatique, 2012-2013 TP 2
linvite, entrer le type de consigne souhaite (chelon ou rampe), lamplitude ou la pente voulue et
la dure de lasservissement (aprs cette dure les commandes ne sont plus envoyes au systme). La
question du choix des coefficients rst concerne une autre manipulation et na donc pas dimportance
ici : tapez le choix 2.
Tester le comportement du systme pour diffrentes valeurs dchelon et pour une rampe.
7. Commenter les rsultats obtenus. Quelles sont les caractristiques problmatiques de la rponse indicielle ?
Pourquoi nest-ce pas conforme ce qui tait prvu ? Quel type de perturbation (perturbation dentre,
de sortie ou de mesure) est responsable de ce phnomne ? Quelle est leur origine physique ?
8
FIP 2me Anne
Automatique, 2012-2013 TP 2
9
FIP 2me Anne
Automatique, 2012-2013 TP 3
1 Moyens
On dispose :
dune maquette Feedback ;
dun ordinateur compatible PC quip du systme dexploitation temps rel (xenomai). Il possde par
ailleurs une carte dinterface qui comporte en entre un convertisseur analogique numrique et en sortie
un convertisseur numrique analogique modlis par un bloqueur dordre 0.
un programme ralisant linterface graphique entre lutilisateur et le module dasservissement (temp) ;
Matlab.
Aprs dmarrage du systme, entrer le nom dutilisateur ensps et le mot de passe ulp. Ouvrir un terminal
en cliquant licne de la barre des tches.
Taper la commande ini_temp pour initialiser le TP. Cette commande cre un rpertoire nomm temp
contenant, entre autres, le fichier temp.c. Pour aller dans ce rpertoire, taper cd temp. Pour diter le fichier
temp.c, taper la commande nedit temp.c &. Ce fichier contient le code du programme dasservissement. Seul
le calcul de la commande doit tre programm, le reste est dj fait (la partie complter est signale par un
commentaire) (voir figure 3).
Pour compiler temp.c, taper simplement make.
2 Exprimentation
La fonction de transfert du systme lorsque louverture du clapet est 35 degrs ou throttle sur 4 (suivant
le modle de maquette) et lorsque le capteur est plac lextrmit du conduit est la suivante (rsultat dune
identification par analyse de rponse indicielle) :
e0,18s
G(s) = (2)
(1 + 0, 25s)2
Dans ce qui suit, on suppose que le temps ncessaire au calcul de la commande est ngligeable devant la
priode dchantilonnage.
10
FIP 2me Anne
Automatique, 2012-2013 TP 3
Il nest pas possible de dfinir le retard dans les fonctions de transfert sous matlab 5.2. Le retard devra
donc tre ajout "manuellement" aux tableaux de valeurs obtenus par la fonction bode.
Lors de la synthse du correcteur analogique vous devrez garder lesprit quil doit ensuite tre transpos
en numrique. La priode dchantillonnage minimale est de 10 ms.
3. Appliquer la transformation bilinaire pour passer de C(s) C(z) :
2 z1
s (3)
Te z + 1
avec Te , la priode dchantillonnage du correcteur numrique (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 systme analogique avec son correcteur numrique en utilisant Simulink. Utiliser
le bloc "transport delay" de la bibliothque Simulink pour modliser le retard.
5. Programmer le correcteur obtenu dans temp.c lemplacement prvu cet effet. Ne pas oublier de dfinir
la priode dchantillonnage en haut du programme la ligne (#define SAMPLING_PERIOD). Compiler le
module en tapant make.
6. Tester le correcteur en lanant temp. Commenter les rsultats obtenus.
11
FIP 2me Anne
Automatique, 2012-2013 TP 3
2. Faire la synthse dun correcteur numrique du second ordre laide 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 ples dominants du systme,
Dpassement nul.
3. Simuler le correcteur numrique sur le systme analogique. Ensuite, implanter le correcteur numrique sur
le systme rel et mesurer les caractristiques du systme rel corrig.
12
FIP 2me Anne
Automatique, 2012-2013 TP 4, page 13
Lobjectif de ce TP est de raliser lasservissement numrique de la position angulaire dun bras qui est reli
un ensemble moto-rducteur via une liaison flexible. Ce systme simule par exemple le comportement dun bras
robotique entran par un actionneur comportant un rducteur harmonic drive rput pour son importante
flexibilit en torsion.
1 Description de la manipulation
1.1 La maquette rotflex
Le systme tudi est dcrit par la figure 4. La grandeur de commande Um est une tension de faible puissance
envoye un amplificateur de gain 1. La sortie de lamplificateur est une source de tension connecte au bobinage
dinduit dun moteur courant continu. Ce moteur entrane la rotation dune plateforme travers un rducteur
mcanique train dengrenages. La position angulaire de la plateforme par rapport la base donc par rapport
au sol est note . Sur la figure, la flche donne le sens positif de rotation. La plateforme entrane un bras
en rotation suivant le mme axe que la sortie du rducteur par lintermdiaire de 2 ressorts. Un potentiomtre
permet de mesurer la dviation du bras due lallongement des ressorts par rapport la position de repos. La
position angulaire du bras par rapport la base est donc la somme du dplacement angulaire de la plateforme
et de .
13
FIP 2me Anne
Automatique, 2012-2013 TP 4, page 14
Figure 5 Amplificateur.
et une bande passante qui dpasse largement les frquences les plus hautes requises pour asservir le systme
rotflex. Cest pourquoi on ngligera son effet dans la suite. Sa fonction de transfert approche est simplement 1.
14
FIP 2me Anne
Automatique, 2012-2013 TP 4, page 15
la carte dspace. Le comptage des priodes des signaux carrs permet de mesurer le dplacement angulaire de
larbre moteur. En effet, il y a 1024 priodes par tour de moteur.
La tension Um de linduit du moteur est commande par une des sorties DAC (Digital to analog converter)
de linterface dspace via lamplificateur de puissance de gain 1.
On peut dmontrer quun groupe moteur+rducteur peut tre modlis par un moteur quivalent. Nous
allons donc ici simplifier le problme en considrant que lassociation moteur+rducteur peut tre simplement
modlise par un moteur quivalent dont les caractristiques sont supposes connues (donnes pendant le TP).
On rappelle ici les quations dun moteur courant continu :
Equation lectrique : Um Em = Rm Im + Lm Im
Equations de couplage lectro-mcaniques : m = Km Im et Em = Km
Equation mcanique : m r = fm + Jm
avec Um , Im et Em respectivement la tension dinduit, le courant dinduit et la force contre-lectromotrice ;
Rm et Lm respectivement la rsistance et linductance de linduit ; , , et m respectivement la position,
la vitesse, lacclration angulaire et le couple du rotor ; Km , fm et Jm respectivement la constante de couple,
le coefficient de frottement visqueux et linertie du rotor coupl la plateforme. La grandeur r est le couple
rsistant provoqu par le bras reli la plateforme.
1. Donnez le schma-bloc du moteur en considrant que Um est lentre principale, r une entre de pertur-
bation, et la sortie.
3 Commande proportionnelle
3.1 Initialisation de lenvironnement
Allez dans le rpertoire Mes Documents/Rotflex. Slectionner et copier le rpertoire Original. Collez ce
rpertoire dans Mes Documents et donnez lui un nom nom1-nom2 o nom1 et nom2 sont les 2 noms de famille de
votre binme.
15
FIP 2me Anne
Automatique, 2012-2013 TP 4, page 16
dans matlab la commande Te=0.01 pour prciser la priode dchantillonnage de lasservissement numrique
(Frquence = 100Hz). Compilez le schma-bloc. Repassez dans lenvironnement dspace.
Attention : En cas de mauvaise manipulation le bras peut se dplacer trs rapidement. Veillez
dgager tout obstacle dans le primtre de dplacement du bras. Ne mettez pas votre visage
hauteur du bras. En cas de problme, vous avez la possibilit dappuyer sur le bouton Arrt de
linterface dspace. Par dfaut, aprs la compilation, le systme est en mode Arrt. Lorsque vous
appuyez sur Marche, soyez prt immdiatement appuyer sur Arrt en cas de problme.
Mettez lamplificateur sous tension (bouton marche/arrt larrire du boitier). Passez en mode Animation
sous dspace. Appuyez sur le bouton Marche. Le bras devrait faire des aller-retours avec une amplitude de 45
maximum.
Des curseurs permettent de rgler lamplitude et la frquence du signal carr fourni par le gnrateur de
signaux (voir schma-bloc simulink). Modifiez lgrement ces deux grandeurs et observez leffet sur le systme.
Appuyez sur Arrt avant de passer la suite.
58.7108(s + 339.9)
(s)/Um (s) = . (4)
s(s + 22.8)(s2 + 20.47s + 514.8)
Vous pourrez utiliser la fonction zpk pour afficher les ples et zros de la fonction de transfert. Justifiez la
validit de lapproximation.
En dduire la fonction de transfert chantillonne entre U (z) et (z), respectivement lentre du convertisseur
numrique analogique et la mesure de position chantillonne. On utilisera pour cela la fonction c2d de matlab.
Quels sont les arguments utiliser ? Expliquez pourquoi.
16
FIP 2me Anne
Automatique, 2012-2013 TP 4, page 17
4.3 Exprience
Dans le workspace Matlab retournez dans le rpertoire Mes Documents/nom1-nom2/Commande_tension. D-
finissez Te = 0.01. Slectionnez la fentre dcrivant le modle simulink pour dspace. Faites Edit->Update diagram
dans la fentre simulink. Ignorez le message derreur. Ceci permet de ractualiser la valeur de C dans le bloc
LTI pour quil corresponde au correcteur que vous avez export depuis rltool. Compilez.
Expliquez comment le compilateur obtient la loi de commande temporelle du correcteur partir de la
fonction de transfert numrique en z.
Il est possible de sauvegarder les donnes exprimentales au moyen de dspace. Cliquez sur le bouton Settings
de la fentre dspace (si le bouton nest pas visible allez dans le menu
view->control bars->Capture->Settings Window).
Slectionnez longlet Acquisition. Slectionnez Autosave. Choisir le rpertoire (le vtre) et le nom du fichier
de sauvegarde.
Passez en mode Animation. Appuyez sur Marche. Lors de lexprience, les donnes sont stockes en temps-
rel sur le disque dur. Il est possible ensuite de charger dans matlab les donnes ainsi sauvegardes au moyen de
la commande load nom_du_fichier. On peut ensuite accder aux diffrents champs de la manire suivante :
nom_du_fichier.X.Data : instants dchantillonnage en seconde.
nom_du_fichier.Y.Name : noms des lments de la structure.
nom_du_fichier.Y(n).Data : permet daccder aux donnes dont la description correspond la nime
ligne de la commande prcdente.
Il est donc possible dafficher les rsultats de lexprience grce la commande plot de matlab.
1. Quelles sont les amliorations apportes par cette commande par rapport la commande proportionnelle ?
2. Est ce que lerreur statique est conforme la simulation ? Expliquez. Vous pourrez notamment observer
le signal de commande pour comprendre.
3. Crez une perturbation en modifiant manuellement lorientation de la tige aprs convergence (vous pren-
drez garde dabord diminuer la frquence des crneaux de consigne). Comment se comporte le systme
par rapport une perturbation ? Expliquez. Vous pourrez galement observer le signal de commande.
17
FIP 2me Anne
Automatique, 2012-2013 TP 4, page 18
Rglez les plages de variations des 2 curseurs de 0 10. Rglez la valeur initiale des curseurs 0, 5 et 0 pour
respectivement le gain proportionnel et intgral. Rglez manuellement les 2 gains en mode Animation jusqu
obtention dun comportement satisfaisant. Essayez dobserver leffet de chacun des gains et jugez de la difficult
de rgler laveugle un correcteur pourtant simple.
(z)
Hsimple (z) = (5)
(z)
Observez la fonction de transfert obtenue et synthtisez un correcteur par placement de ple sous rltool
en respectant le cahier des charges suivant :
Correcteur dordre 5,
Erreur statique nulle par rapport la consigne,
Temps de rponse court,
Rponse indicielle sans dpassement.
Pour simplifier la synthse, compensez tous les ples et zros du procd que vous pouvez compenser sans
crer de problmes (instabilit, commande alterne) (principe du correcteur parfait).
Exportez le correcteur dans lespace de travail. Lancez Simulink et ouvrez le modle simu_bo. Simulez leffet
de votre correcteur. Noubliez pas que vous avez ralis une boucle interne de vitesse ! !
Retournez dans le rpertoire Mes Documents/nom1-nom2/Commande_vitesse. Faites Update diagram dans
le schma simulink de lasservissement dspace. Compilez. Testez.
1. Le comportement est-il conforme ce qui tait attendu ? En pratique la commande envoye au procd
est sature entre 10 et +10V . Simulez leffet de cette saturation sur le modle simu_bo. Modifiez votre
correcteur pour limiter leffet de la saturation.
2. Que pensez-vous de leffet intgral de la commande synthtise ?
3. Testez leffet dune perturbation de sortie. Conclure quant la rjection des perturbations.
18
FIP 2me Anne
Automatique, 2012-2013 Aide mmoire
1.1 Lancement
Sous windows : double cliquez sur licne Matlab6.5 sur le bureau. Matlab ouvre alors plusieurs fentres
(ou une fentre contenant plusieurs sous-fentres). Les deux plus importantes sont la fentre de commande
("Command Window") et la fentre de lditeur de script.
Sous linux : cliquez sur licne Matlab. Matlab dmarre dans un terminal qui devient la fentre de commande,
reprable au prompt >>. Pour travailler avec des scripts ou des fonctions ".m", vous avez besoin dun diteur
de texte spar. Pour cela, cliquez sur licne de nedit ou tapez nedit dans un terminal.
2 Gnralits
Matlab est un logiciel de calcul matriciel. Il peut tre utilis simplement comme une calculatrice pour tous
les calculs scalaires et dispose de nombreuses fonctions de calcul matriciel (dterminant, inverse, etc.). En
automatique, en plus des fonctions de base de calcul, vous utiliserez des fonctions appartenant la bote outils
"Control Toolbox" et la bote outil "Simulink".
Il existe 2 principales faon dutiliser Matlab :
en ligne de commande : lutilisateur tape des commandes dans la fentre de commande ("command
Window" pour matlab 6.5 sous Windows). Celles-ci sont directement executes par matlab. Une commande
se termine par un retour chariot ("entre"). Il est possible dexcuter plusieurs commandes successivement
en les crivant sur la mme ligne et en les sparant par le caractre " ;". Lorsquune commande se termine
par le caractre " ;" elle est muette : le rsultat nest pas affich lcran. Le caractre % indique des
commentaires. Tout ce qui se trouve aprs ce caractre sur la mme ligne nest 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 dafficher le contenu de la variable d
d =
4
Les variables cres sont stockes dans lespace de travail (workspace) et peuvent tre rutilises tout
moment.
En ligne de commande, les commandes tapes prcdemment peuvent tre rappeles en utilisant les flches
vers le haut et vers le bas.
19
FIP 2me Anne
Automatique, 2012-2013 Aide mmoire
par lintermdiaire de scripts ou de fonctions. Les commandes sont crites dans un fichier texte de la mme
faon quen ligne de commande. Le fichier doit tre sauvegard avec une extension ".m" pour signifier quil
sagit dun script Matlab. Pour excuter ce script il suffit de taper son nom (sans lextension ".m") dans
la fentre de commande. Toutes les commandes du script sont alors excutes successivement. Attention,
pour que les fichiers ".m" puissent tre lancs depuis matlab vous devez vous placer dans le rpertoire 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 dafficher le contenu de la variable d
******************************************
>> exemple
a =
2
ans =
3
d =
4
Les variables cres dans un script sont stockes dans le workspace lors de lexcution du script. Elles
peuvent donc ensuite tre utilises en ligne de commande.
Afin de garder simplement une trace de vos travaux, il est conseill de travailler laide de scripts.
Matlab dispose dune aide en ligne permettant dobtenir les dtails dutilisation dune commande : paramtres
dentre, arguments de sortie, etc. Par exemple, pour obtenir des informations sur la commande dinversion de
matrice "inv", il suffit de taper
>> help inv
20
FIP 2me Anne
Automatique, 2012-2013 Aide mmoire
o Te est la priode dchantillonnage et o method est la mthode de transposition choisie (zoh, tustin,
prewarp ou matched)
Tracer la rponse indicielle dun systme donn par sa fonction de transfert G
>> step(G)
Obtenir la carte des ples et des zros dun systme
>> 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 dcibels) et la phase (en degrs)
%dtermins aux pulsations w
Diagramme de Nyquist :
>> Nyquist(G)
Trace le diagramme de Nyquist. Attention, les ventuels cercles linfini ne sont pas reprsents. Il faut
donc analyser la fonction de transfert pour pouvoir dterminer avec certitude la stabilit dune boucle
ferme.
Lieu des racines :
>> rltool(G)
Trace le lieu des racines de G, avec retour unitaire. Les ples et zros du systme G sont reprsents par
des croix et cercles bleus. La position des ples de la boucle ferme est reprsente par des carrs rouges.
En cliquant sur ces carrs, il est possible de les dplacer le long du lieu dEvans. Le gain affich en haut
de la fentre est alors modifi simultanment.
rltool est un utilitaire permettant de rgler un correcteur par la mthode du lieu des racines. Une fois
le lieu des racines de G trac, lutilisateur a de nombreux outils.
Il est ainsi possible dajouter des ples et des zros sur la carte des ples et zros. Ces zros et ples sont
affects au correcteur. Ils peuvent tre dplacs par des "cliqu - gliss".
Pour diter le correcteur, cliquer sur le bloc C rouge (ou K cyan selon la version) dans le schma bloc
reprsent en haut droite
On peut afficher les abaques diso-amortissement et diso-pulsation sur la carte des ples soit en cliquant
"grid on" (version Linux), soit en cliquant avec le bouton droit de la souris et en choisissant afficher la
grille.
file import : permet daffecter des fonctions de transfert aux diffrents lments du modle. Ces
fonctions de transfert doivent avoir t dfinies dans le workspace. Attention, les blocs de gain doivent
tre entrs sous la forme de fonction de transfert (par exemple, pour H = 5, il faut entrer H = tf([5],
[1]))
file export : permet dexporter 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
rponse indicielle du systme en boucle ferme pour le gain donn.
Clic droit dans la fentre rltool (ou tools Add grid / boundary) : permet de dfinir des contraintes
pour le systme boucl : dpassement, temps dtablissement, etc. Attention : ces contraintes ne sont
valables que si le systme en BF est quivalent un systme du 2eme ordre.
4 Utilisation de Simulink
Simulink est un utilitaire de simulation permettant de reprsenter les systmes partir de schmas bloc.
Pour lancer simulink, tapez
21
FIP 2me Anne
Automatique, 2012-2013 Aide mmoire
>> simulink
dans la fentre de commande.
Lutilisation de Simulink est assez intuitive. Elle consiste slectionner des blocs reprsentant des fonctions
de transfert, des gains, etc. et les glisser sur le schma de simulation. Les blocs sont relis entre eux par des
traits orients tracs laide de la souris.
file new model : cre un nouveau modle simulink
Les fonctions de transfert continues se trouvent dans le menu "Continuous" ou "Linear"
Les fonctions de transfert numriques se trouvent dans le menu "discrete" ou "discontinuous"
Les convertisseurs numriques 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 appels "transport delay" et se trouvent (et cest 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 ny a pas de bloc "CAN". Simulink dtermine la nature des signaux en fonction de la nature des
blocs dans lesquels ils entrent. Il est ncessaire pour les blocs de nature "numrique" de spcifier la
priode dchantillonnage en double cliquant dessus. Attention, Matlab nest pas drang par des priodes
dchantillonnage difrentes selon les blocs et ne vous avertira pas en cas derreur.
Par dfaut, les chelons dmarrent linstant t = 1s. Il est parfois utile de modifier en t = 0.
Une fois les blocs placs sur le schma, vous pouvez les modifier en double cliquant dessus. Par exemple, en
cliquant sur un bloc fonction de transfert vous pouvez ajouter des ples et des zros, modifier les gains, etc.
Il est possible dutiliser dans ces blocs des variables dfinies dans le workspace. Par exemple, si vous avez
dfini
>> K = 5
alors en mettant K dans un bloc simulink, sa valeur sera 5
La simulation est ensuite lance par simulationstart. Les rsultats de la simulation peuvent tre obtenus
en double cliquant sur les scopes. Une fentre souvre alors avec les tracs des signaux mesurs.
Les paramtres de la simulation peuvent tre modifis en faisant simulation parameters. On peut notam-
ment modifier la dure de la simulation. Lorsque les courbes des "scopes" sont tronques, il suffit douvrir le
bloc "scope" et daugmenter le paramtre "Data history" de longlet "Settings".
5 Dangers
Les versions de Matlab disponibles en salle de TP comportent plusieurs erreurs, bugs ou difficults quil
convient de connatre. Parmi celles-ci vous rencontrerez les suivantes :
Dans simulink, rltool et les fonctions de la control toolbox, ce qui est appel frequency correspond des
pulsations
Pour les simulations de systmes continus, il est important dutiliser une rsolution de calcul suffisante.
Lorsque les signaux observs semblent bruits (bruit de rsolution numrique des quations diffrentielles
rgissant les systmes analogiques), les paramtres de simulation peuvent tre modifis dans le menu
simulation simulation parameters, puis dans longlet "solver".
les blocs retard ("transport delay") se trouvent dans ceratines versions dans les bibliothques "non linear".
Il sagit dune erreur car les retards sont des systmes linaires.
Sur les versions 5.2 de matlab sous linux, laffichage des amortissements et pulsations propres par rltool
est bugg pour les systmes numriques. Lorsquon clique sur les ples de la BF, laffichage est juste mais
il devient faux ds que lon dplace la souris. De plus les contraintes de pulsations pour les systmes
numriques sont fausses et ne doivent donc pas tre utilises.
22