Semestre automne 2005

SY20 – Initiation à l’automatique

Compte-rendu de travaux pratiques

Sommaire .Conclusion . Black .Présentation de Matlab .Bases de Matlab Les premiers pas Vecteurs et matrices Représentations graphiques Automatique : les fonctions de transfert Diagramme de Bode.Introduction .Un outil largement utilisé en automatique : Simulink Présentation Les blocs de Simulink Systèmes du premier ordre Systèmes du deuxième ordre : stabilité . Nyquist.

nous présenterons Matlab. ses fonctions de bases ainsi qu’un exemple d’utilisation de ce logiciel en automatique. Ensuite. . nous résumerons les connaissances acquises lors de la formation Matlab Simulink. Dans un premier temps. nous parlerons d’une extension de Matlab : Simulink. Enfin. pour conclure. nous avons découvert deux logiciels largement utilisés en automatique : Matlab et Simulink.Introduction Dans le cadre de l’unité de valeur SY20. La présentation de Simulink sera axée autour des connaissances acquises lors des cours et travaux dirigés d’automatique.

01/dt)*x1(k) + 1 . x2(k+1). Aujourd’hui.01*x2(k))/(1 + (0. x1(k+1).01 + 0.Présentation de Matlab Matlab était.5/dt)).1*dt). On peut utiliser Matlab de plusieurs manières : en ligne de commande en écrivant des programmes et fonctions dans des fichiers *.0. c’est un logiciel de calcul mathématique plus général. Il existe de nombreuses bibliothèques dans de nombreux domaines.01. x2(k+1) = ((0.01*x2(k))/(0. end - en utilisant des extensions graphiques Les fonctionnalités de Matlab peuvent être étendues grâce à l‘utilisation de bibliothèques. un logiciel de calcul matriciel. Simulink est une extension de Matlab utilisée en automatique. for k = 1:10000 x1(k+1) = (k*x1(k)*dt + 0. x2(1) = 1. au départ.m x1(1) = 1. . dt = 0.

Base de Matlab Les premiers pas Matlab. on choisit le nom de la variable et on lui affecte une valeur ou expression. utilise des variables. l’arithmétique. Voici quelques exemples d’opérateurs de base sous Matlab : On voit bien la multiplication et l’addition. la trigonométrie. etc. les puissances. On peut donner des exemples de fonctions initialement intégrés à Matlab : abs donne la valeur absolu d’un réel ou d’un complexe angle donne l’argument d’un réel ou d’un complexe sqrt donne la racine d’un nombre Il existe d’autres commandes pour les arrondis. des opérateurs et des fonctions intégrées. etc. abs angle real imag round fix ceil floor sqrt conj On peut facilement obtenir de l’aide sur les commandes en consultant le menu Help . il y a la soustraction. De même. Pour définir une variable. comme un langage de programmation.

5 vect = linspace(0.5 : 10 donne un vecteur contenant les nombres de 0 à 10 par pas de 0. 2.Vecteurs et matrices Matlab était initialement un logiciel de calcul matriciel. 50) donne un vecteur contenant 50 nombres répartis selon une échelle logarithmique entre 100 et 103 . 5] donne un vecteur en colonne ( . 3. 3.vect = [1 2 3 4 5] donne un vecteur en ligne vect = [1. On peut définir un vecteur de plusieurs manières différentes : . 4. signifie passage à la prochaine ligne) vect = 0 : 0. 50) donne un vecteur contenant 50 nombres répartis régulièrement entre 0 et 10 - - - vect = logspace(0. présentons les fonctions de calculs vectoriels et matriciels de Matlab. De ce fait. 10.

Cette matrice ne contient que des 0 for t = 1:m // Fait varier t de 1 à m.Pour présenter le calcul matriciel. matrice de m lignes et n colonnes. on peut rajouter qu’un tel programme ou qu’une fonction similaire peut être sauvegardée sous la forme d’un fichier m. le nombre de lignes de la matrice X for p = 1:n // Fait varier p de 1 à n. nombre de lignes de la matrice.n) // Création de X. // La matrice peut être remplie à la t nième ligne et p nième colonnes end end // On met fin aux deux boucles pour X // On affiche la matrice X en entier Pour terminer. le nombre de colonnes X = zeros(m. nous allons étudier un exemple : disp('Création d une matrice d ordre m.n à l’écran m = input('Valeur de m') // Demande à l’utilisateur d’entrer la valeur de m. nombre de colonnes de la matrice X X(t.p) = t + j*p. Ce fichier pourra par la suite être ouvert sous Matlab et réutilisé directement.n') // Affiche création d’une matrice d’ordre m. et stocke le résultat dans la variable m n = input('Valeur de n') // Fait de même pour n. .

. sur cet exemple.Représentations graphiques On voit très bien. la manière dont on a tracé le graphique : .on définit le vecteur ordonné en fonction du vecteur abscisse .on lance la fonction plot(abscisse. ordonné) On aurait pu utiliser la fonction subplot pour tracer plusieurs courbes dans la même fenêtre graphique.on choisit un vecteur abscisse de 80 points entre 0 et 30 .

enfin. t] = step(sys) fournit des échantillons de la réponse indicielle du système sys sous la forme d’un vecteur t et d’un vecteur y y = lsim(sys.[1 5]) donne le système - On peut. Voici un exemple : - On obtient : . ajouter les fonctions Matlab associée aux fonctions de transfert : [y.den) où num désigne les cœfficients du numérateur et den ceux du dénominateur sys1=tf([2 0]. t) calcul la réponse du système sys pour une entrée u(t).Automatique : les fonctions de transfert Nous pouvons définir un système à partir de sa fonction de transfert : sys=tf(num.u. u et t sont deux vecteurs.

Il existe la fonction nyquist pour le diagramme de Nysquist : Imaginary Axis Diagramme de Nyquist d’un circuit RC Il est bon de noter que l’on peut se passer de ces fonctions et utiliser un vecteur abscisse. Pour obtenir l’un ou l’autre. Nyquist et Black. Nyquist. puis on lance la commande bode(sys) qui donne le diagramme de Bode pour le gain et pour la phase. Les gains et déphasages entre une sortie et son entrée peuvent être joliment représenter grâce à Simulink … .Diagrammes de Bode. Nyquist et Black avec la fonction plot. on peut utiliser bodemag ou bodesys. et une expression pour afficher les diagrammes de Bode. Black Matlab permet d’utiliser les outils de bases de l’automatique linéaire que sont les diagrammes de Bode. On déclare le système.

on trouve différents blocs pouvant être utilisés pour dessiner des systèmes. Sous Matlab. Ensuite. Pour pouvoir utiliser les blocs. . Il existe aussi une icône : Une fois Simulink appelé. une fois que le système est dessiné. on peut démarrer Simulink en tapant simulink dans la fenêtre de commande de Matlab. lancer une simulation. Grâce à Simulink. Dans ces groupes.Un outil largement utilisé en automatique : Simulink Présentation Simulink est une extension graphique de Matlab. on peut régler différents paramètres et. enfin. on peut représenter des fonctions mathématiques sous forme de blocs. menu Simulation. on voit cette fenêtre : Cette fenêtre donne accès à des groupes d’objets Simulink. on procède en faisant glisser les objets. Pour lancer une simulation. Ensuite. il faut ouvrir un nouveau fichier dans le menu File.

l’échelon de tension : Les objets continus : Ce groupe contient des opérateurs linéaires. Le signal d’entrée que nous avons le plus utilisé lors de ces travaux pratiques est. grâce aux fonctions de transfert. on trouve des sources de signaux. On trouve une constante. etc. . Les sources : Dans ce bloc. On peut. une sinusoïde. sans conteste. Le bloc le plus utilisé a été le bloc Transfer Fcn.Les blocs de Simulink Dans cette partie. Ils sont liés aux connaissances d’automatique acquises lors des cours et travaux dirigés. il suffit de relier le bloc de transfert à une source et à une sortie. simuler des systèmes. On y trouve des gains. Pour cela. Ensuite il suffit d’observer la sortie. On peut aussi utiliser des données provenant d’un fichier ou de l’espace de travail Matlab. une rampe. nous présenterons les groupes d’objets et les objets que nous avons réellement utilisé lors des travaux pratiques. une horloge donnant le temps. des fonctions de transfert.

on peut observer les résultats (Scope. En plus de ces groupes d’objet. nous avons aussi utilisé un objet du groupe Signal Routing : le multiplexeur. envoyer les résultats dans l’espace commande en ligne Maple (To Workspace). Floating Scope. On peut aussi stopper une simulation en cours. Le multiplexeur sert à fusionner plusieurs sources pour n’en faire plus qu’une seule. XY Graph). enregistrer les résultats dans des fichiers (To File).Les sources : Grâce à ces blocs. .

Relançons la simulation avec une valeur de τ plus grande.001. Ce système atteint très vite son régime permanent car sa constante de temps est plutôt petite. . On remarque que le système met plus de temps à atteindre son régime permanent. τ est la constante de temps de ce système d’ordre 1. On affiche la sortie grâce à un XY Graph avec une horloge.Systèmes du premier ordre Pour commencer. la fonction de transfert correspondant à notre système. A 1  p On remarque une source échelon de tension. on va simuler un système du premier ordre : On choisit A=10 et τ = 0. du fait de son τ plus grand.

b réels ( p  a ) * ( p  b) Appliquons le critère de Routh : 1 -a -b ab ab 0 0 0 0 0 Pour que le système soit stable. Ensuite nous vérifierons que cela concorde avec le critère de Routh. A avec A = 100 et a. il faut que a et b soient tous les deux strictement négatifs. . Qu’en est-t-il avec Simulink ? Posons : On obtient : Le système est effectivement stable.Système de deuxième ordre : stabilité Nous allons observer la stabilité d’un système du deuxième ordre avec Simulink.

le système est instable pour des valeurs de a et b positives. De même.Changeons les valeurs de a et b : Comme prévu avec le critère de Routh. . une valeur positive et autre négative donne un système instable. Une valeur nulle donne aussi un système instable.

Bien que nous n’ayons vu qu’une infime partie des possibilités de Matlab et Simulink. Pour chacun de ces logiciels. Nous avons ensuite étendu la présentation par des exemples reliés aux cours et travaux dirigés d’automatique. les logiciels Matlab et Simulink. .Conclusion Nous avons présenté. Cette formation a sûrement atteint son but : nous donner envi d’en connaître plus sur l’automatisme et sur ces logiciels. respectivement. Plutôt que de détailler la totalité des travaux pratiques effectués. nous avons choisis de présenter ce rapport sous forme de synthèse. nous nous sommes rendu compte du professionnalisme et de l’immensité de ces logiciels. nous avons présenté les fonctions de bases.

Sign up to vote on this title
UsefulNot useful