Vous êtes sur la page 1sur 17

Semestre automne 2005 SY20 – Initiation à l’automatique

Compte-rendu de travaux pratiques


Sommaire
- Introduction

- Présentation de Matlab

- Bases de Matlab
Les premiers pas
Vecteurs et matrices
Représentations graphiques
Automatique : les fonctions de transfert
Diagramme de Bode, Nyquist, Black

- 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é

- Conclusion
Introduction
Dans le cadre de l’unité de valeur SY20, nous avons découvert deux logiciels largement
utilisés en automatique : Matlab et Simulink.

Dans un premier temps, nous présenterons Matlab, ses fonctions de bases ainsi qu’un exemple
d’utilisation de ce logiciel en automatique.

Ensuite, nous parlerons d’une extension de Matlab : Simulink. La présentation de Simulink


sera axée autour des connaissances acquises lors des cours et travaux dirigés d’automatique.

Enfin, pour conclure, nous résumerons les connaissances acquises lors de la formation Matlab
Simulink.
Présentation de Matlab
Matlab était, au départ, un logiciel de calcul matriciel. Aujourd’hui, c’est un logiciel de calcul
mathématique plus général.

On peut utiliser Matlab de plusieurs manières :

- en ligne de commande

- en écrivant des programmes et fonctions dans des fichiers *.m

x1(1) = 1;
x2(1) = 1;
dt = 0.01;
for k = 1:10000
x1(k+1) = (k*x1(k)*dt + 0.01*x2(k))/(0.01 + 0.1*dt);
x1(k+1);
x2(k+1) = ((0.01/dt)*x1(k) + 1 - 0.01*x2(k))/(1 + (0.5/dt));
x2(k+1);
end

- en utilisant des extensions graphiques

Les fonctionnalités de Matlab peuvent être étendues grâce à l‘utilisation de bibliothèques. Il


existe de nombreuses bibliothèques dans de nombreux domaines. Simulink est une extension
de Matlab utilisée en automatique.
Base de Matlab
Les premiers pas
Matlab, comme un langage de programmation, utilise des variables, des opérateurs et des
fonctions intégrées.

Pour définir une variable, on choisit le nom de la variable et on lui affecte une valeur ou
expression.

Voici quelques exemples d’opérateurs de base sous Matlab :

On voit bien la multiplication et l’addition. De même, il y a la soustraction, les puissances,


etc.

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, l’arithmétique, la trigonométrie, etc.

abs real round ceil sqrt


angle imag fix floor conj

On peut facilement obtenir de l’aide sur les commandes en consultant le menu Help
Vecteurs et matrices
Matlab était initialement un logiciel de calcul matriciel. De ce fait, présentons les fonctions de
calculs vectoriels et matriciels de Matlab.

On peut définir un vecteur de plusieurs manières différentes :


- vect = [1 2 3 4 5]
donne un vecteur en ligne

- vect = [1; 2; 3; 4; 5]
donne un vecteur en colonne ( ; signifie passage à la prochaine ligne)

- vect = 0 : 0.5 : 10
donne un vecteur contenant les nombres de 0 à 10 par pas de 0.5

- vect = linspace(0, 10, 50)


donne un vecteur contenant 50 nombres répartis régulièrement entre 0 et 10

- vect = logspace(0, 3, 50)


donne un vecteur contenant 50 nombres répartis selon une échelle logarithmique entre
100 et 103
Pour présenter le calcul matriciel, nous allons étudier un exemple :

disp('Création d une matrice d ordre m,n')

// Affiche 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 lignes de la matrice, et stocke le


résultat dans la variable m

n = input('Valeur de n')

// Fait de même pour n, le nombre de colonnes

X = zeros(m,n)

// Création de X, matrice de m lignes et n colonnes. Cette matrice ne contient que des 0

for t = 1:m

// Fait varier t de 1 à m, le nombre de lignes de la matrice X

for p = 1:n

// Fait varier p de 1 à n, nombre de colonnes de la matrice X

X(t,p) = t + j*p;

// 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, on peut rajouter qu’un tel programme ou qu’une fonction similaire peut être
sauvegardée sous la forme d’un fichier m. Ce fichier pourra par la suite être ouvert sous
Matlab et réutilisé directement.
Représentations graphiques

On voit très bien, sur cet exemple, la manière dont on a tracé le graphique :
- on choisit un vecteur abscisse de 80 points entre 0 et 30
- 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.
Automatique : les fonctions de transfert
Nous pouvons définir un système à partir de sa fonction de transfert :

- sys=tf(num,den)
où num désigne les cœfficients du numérateur et den ceux du dénominateur

- sys1=tf([2 0],[1 5])


donne le système

On peut, enfin, ajouter les fonctions Matlab associée aux fonctions de transfert :

- [y, 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,u, t)
calcul la réponse du système sys pour une entrée u(t). u et t sont deux vecteurs.

Voici un exemple :

On obtient :
Diagrammes de Bode, Nyquist, Black

Matlab permet d’utiliser les outils de bases de l’automatique linéaire que sont les
diagrammes de Bode, Nyquist et Black.

On déclare le système, puis on lance la commande bode(sys) qui donne le diagramme


de Bode pour le gain et pour la phase.

Pour obtenir l’un ou l’autre, on peut utiliser bodemag ou bodesys.

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, et
une expression pour afficher les diagrammes de Bode, Nyquist et Black avec la fonction plot.
Les gains et déphasages entre une sortie et son entrée peuvent être joliment représenter grâce
à Simulink …
Un outil largement utilisé en automatique : Simulink

Présentation
Simulink est une extension graphique de Matlab. Grâce à Simulink, on peut représenter des
fonctions mathématiques sous forme de blocs. Ensuite, une fois que le système est dessiné, on
peut régler différents paramètres et, enfin, lancer une simulation.

Sous Matlab, on peut démarrer Simulink en tapant simulink dans la fenêtre de commande de
Matlab.

Il existe aussi une icône :

Une fois Simulink appelé, on voit cette fenêtre :

Cette fenêtre donne accès à des groupes d’objets Simulink. Dans ces groupes, on trouve
différents blocs pouvant être utilisés pour dessiner des systèmes.

Pour pouvoir utiliser les blocs, il faut ouvrir un nouveau fichier dans le menu File. Ensuite, on
procède en faisant glisser les objets.

Pour lancer une simulation, menu Simulation.


Les blocs de Simulink

Dans cette partie, nous présenterons les groupes d’objets et les objets que nous avons
réellement utilisé lors des travaux pratiques. Ils sont liés aux connaissances d’automatique
acquises lors des cours et travaux dirigés.

Les sources :

Dans ce bloc, on trouve des sources de signaux. On trouve


une constante, une sinusoïde, une rampe, une horloge donnant
le temps. On peut aussi utiliser des données provenant d’un
fichier ou de l’espace de travail Matlab.

Le signal d’entrée que nous avons le plus utilisé lors de ces


travaux pratiques est, sans conteste, l’échelon de tension :

Les objets continus :

Ce groupe contient des opérateurs linéaires. On y trouve des


gains, des fonctions de transfert, etc.

On peut, grâce aux fonctions de transfert, simuler des


systèmes. Pour cela, il suffit de relier le bloc de transfert à
une source et à une sortie. Ensuite il suffit d’observer la
sortie.

Le bloc le plus utilisé a été le bloc Transfer Fcn.


Les sources :

Grâce à ces blocs, on peut observer les résultats (Scope,


Floating Scope, XY Graph), enregistrer les résultats dans
des fichiers (To File), envoyer les résultats dans l’espace
commande en ligne Maple (To Workspace). On peut
aussi stopper une simulation en cours.

En plus de ces groupes d’objet, nous avons aussi utilisé un objet du groupe Signal Routing :
le multiplexeur. Le multiplexeur sert à fusionner plusieurs sources pour n’en faire plus qu’une
seule.
Systèmes du premier ordre

Pour commencer, on va simuler un système du premier ordre :

A On choisit A=10 et τ = 0.001. τ est la constante de temps de ce système d’ordre 1.


1  p

On remarque une source échelon de tension,


la fonction de transfert correspondant à notre
système. On affiche la sortie grâce à un XY
Graph avec une horloge.

Ce système atteint très vite son régime


permanent car sa constante de temps est plutôt
petite.

Relançons la simulation avec une valeur de τ plus grande.

On remarque que le système met plus de temps à atteindre son régime permanent, du fait de
son τ plus grand.
Système de deuxième ordre : stabilité

Nous allons observer la stabilité d’un système du deuxième ordre avec Simulink. Ensuite nous
vérifierons que cela concorde avec le critère de Routh.

A
avec A = 100 et a, b réels
( p  a ) * ( p  b)

Appliquons le critère de Routh :

1 ab 0
-a -b 0 0
ab 0 0

Pour que le système soit stable, 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.


Changeons les valeurs de a et b :

Comme prévu avec le critère de Routh, le système est instable pour des valeurs de a et b
positives.

De même, une valeur positive et autre négative donne un système instable. Une valeur nulle
donne aussi un système instable.
Conclusion
Nous avons présenté, respectivement, les logiciels Matlab et Simulink.

Pour chacun de ces logiciels, nous avons présenté les fonctions de bases. Nous avons ensuite
étendu la présentation par des exemples reliés aux cours et travaux dirigés d’automatique.

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.

Bien que nous n’ayons vu qu’une infime partie des possibilités de Matlab et Simulink, nous
nous sommes rendu compte du professionnalisme et de l’immensité de ces logiciels.

Cette formation a sûrement atteint son but : nous donner envi d’en connaître plus sur
l’automatisme et sur ces logiciels.