[02] TP Automatique (FST Marrakech).pdf

29
 LST-GE Travaux Pratiques Demi-Module : SYSTEMES ASSERVIS T.P. 1 T.P. 1 T.P. 1 T.P. 1 : Initiation à MATLAB…………………...…….……………...…….….………2 T.P. 2 T.P. 2 T.P. 2 T.P. 2  : Initiation à SIMULINK……………………………..……………….…….....26 T.P. 3 T.P. 3 T.P. 3 T.P. 3  : ANALYSE TEMPORELLE & FREQUENTIELLE D’UN SYSTEME DE PREMIER ORDRE …………………………………..………………….….28 T.P. 4 : T.P. 4 : T.P. 4 : T.P. 4 : ANALYSE TEMPORELLE & FREQUENTIELLE D’UN SYSTEME DE DEUXIEME ORDRE ………..……………….………………………….….29 Responsable ; Naji Abdenouri  Année Universitaire 2010-2011 

Transcript of [02] TP Automatique (FST Marrakech).pdf

Page 1: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 1/28

LST-GE

Travaux Pratiques

Demi-Module : SYSTEMES ASSERVIS

T.P. 1T.P. 1T.P. 1T.P. 1 : Initiation à MATLAB…………………...…….……………...…….….………2

T.P. 2 T.P. 2 T.P. 2 T.P. 2 : Initiation à SIMULINK……………………………..……………….…….....26

T.P. 3 T.P. 3 T.P. 3 T.P. 3 : ANALYSE TEMPORELLE & FREQUENTIELLE D’UN SYSTEME DE

PREMIER ORDRE …………………………………..………………….….28

T.P. 4 :T.P. 4 :T.P. 4 :T.P. 4 : ANALYSE TEMPORELLE & FREQUENTIELLE D’UN SYSTEME DE

DEUXIEME ORDRE ………..……………….………………………….….29

Responsable ; Naji Abdenouri

Année Universitaire 2010-2011

Page 2: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 2/28

2

T.P. N°1INITIATION À MATLAB

I. INTRODUCTION

Ce document constitue un support d’initiation au logiciel MATLAB. Il permet à l’étudiant de

se familiariser tout d’abord avec les outils de base dont dispose MATLAB, puis de prendre

connaissance des possibilités offertes dans le domaine de l’automatique des systèmes linéairescontinus facilitant ainsi leur compréhension et leur exploitation.

MATLAB (MATrix LABoratory) est un logiciel de calcul matriciel mis au point par

l’université d’Albuquerque (Nouveau-Mexique, Etats-Unis) et développé par la société MathWorks.

MATLAB est écrit en langage C et conçu à la base pour être un environnement informatique de calcul

scientifique et de visualisation de données. Il peut être considéré comme un langage de programmation

au même titre que le langage C, Pascal ou Basic. C’est un langage interprété, c’est-à-dire qu’il n’est

pas nécessaire de compiler un programme. Les instructions, écrites dans la fenêtre de commande, sont

exécutées immédiatement après avoir été tapées (après la frappe de return).

Dans le cadre universitaire, MATLAB constitue un outil standard pour les cours d’algèbrelinéaire ainsi que pour des cours plus avancés dans d’autres domaines. Dans l’industrie, il est utilisé

pour la recherche ainsi pour la résolution des problèmes pratiques de l’ingénieur et des problèmes

mathématiques.

MATLAB en tant que logiciel de conception des systèmes de traitement du signal est largement

répandu, aujourd’hui, autant dans les universités que dans les centres de recherche et développement,

ainsi que dans l’industrie.

MATLAB est un outil puissant qui permet la résolution de nombreux problèmes en beaucoup

moins de temps qu’il ne faudrait pour les formuler en C ou en Pascal.

MATLAB est un langage parfaitement adapté au traitement du signal. C’est aussi un excellent

outil de traitement numérique qui présente de nombreux avantages pour l’étude et même la conception

des systèmes de traitement numériques des signaux. Parmi ces avantages on peut citer :

• La syntaxe MATLAB est très proche du formalisme de l’algèbre linéaire, ce qui permet de

transcrire rapidement en code des opérations comme le produit scalaire de deux vecteurs

(corrélation) ou encore le produit d’une matrice et d’un vecteur (transformée).

• Toutes les variables sont par définition des matrices de complexes, ce qui signifie qu’on n’a pas

à déclarer une variable avant de l’utiliser (exemple la ligne a = 1 crée la variable a puis lui

affecte la valeur 1).

• MATLAB comprends de nombreuses librairies, notamment pour le traitement numérique des

signaux, ce qui permet de réaliser rapidement des opérations comme le filtrage numérique et les

transformées discrètes et même de concevoir des filtres numériques (Butterworth,

Chebyshev,…).

• MATLAB comprend également une bonne librairie graphique, ce qui permet d’observer

facilement les caractéristiques des signaux, leur analyse spectrale et le comportement des

systèmes numériques (réponse impulsionnelle, réponse en fréquence, fonction de transfert,…).

MATLAB compte plus de 500 fonctions prédéfinis et près de 10 000 fonctions ! dans sesToolbox. Leurs natures étant très diversifiées. Même les utilisateurs les plus chevronnés ne

prétendent pas connaître parfaitement la totalité des fonctions de MATLAB.

Page 3: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 3/28

3

II. ENVIRONNEMENT DE TRAVAIL, SCRIPTS ET FONCTIONS

1 – Répertoire de travail :

• Il est souhaitable de travailler dans votre répertoire et non dans le répertoire de MATLAB. De

même vous pouvez organiser vos fichiers dans des sous répertoires.

• Pour que vos fonctions et scripts soient accessibles à partir de la ligne de commande MATLAB

il faut, au début de chaque session MATLAB, déclarer vos répertoires de travail. Ceci est

réalisé à l’aide de la commande path. Cette commande permet de déclarer le chemin à suivre

par MATLAB pour exécuter vos fichiers.

• Il faut aussi se placer dans votre répertoire de travail. Pour cela il est possible de se déplacer

dans l’arborescence du disque de travail à l’aide des commandes cd et dir (même syntaxe que

MS-DOS).

• Par défaut, les scripts et fonctions sont enregistrés dans le répertoire work sous MATLAB.

2 – Sauvegarde et chargement de variables

• Lorsque le nombre de variables déclarés dans une cession MATLAB est élevé, il se peut qu’il

soit utile de les sauvegarder dans un fichier d’extension .mat pour une réutilisation ultérieure.Ceci est rendu possible à l’aide de la commande save dont la syntaxe est :

save nom du fichier noms des variables

Exemple :

save toto.mat A, B, C

• Si le nom des variables est omis, tout l’espace de travail est sauvé.

• Si l’extension du fichier est omise elle sera automatiquement .mat

• Si de plus, le nom du fichier est omis, la sauvegarde se fera dans le fichier matlab.mat.

Pour recharger les variables sauvées dans un fichier .mat, il suffit de taper : load nom

du fichier.

• Si le nom du fichier est omis, MATLAB chargera le fichier matlab.mat

• Pour effacer plusieurs variables dans l’espace de travail on utilise la commande clear.

Exemple :

clear x supprime la variable x

3 – Scripts

Il est parfois (souvent) souhaitable, pour ne pas avoir à taper plusieurs fois une même séquenced’instructions, de la stocker dans un fichier. Ainsi on pourra réutiliser cette séquence dans une

autre session de travail. Un tel fichier est dénommé script ou fichier de commande.

• Sous windows, Pour créer un nouveau fichier de commande, choisir New M-file dans

le menu File. Une fenêtre Untitled apparaît alors, dans laquelle la suite de commande désirées

peut être éditée comme dans un traitement de texte et de sauver le fichier avec une extension .m

• Pour ouvrir un fichier script, toto.m par exemple, dans la fenêtre de commande MATLAB il

suffit de taper open toto.m

• Pour enregistrer le fichier, choisir Save as… dans le menu File, introduire le nom désiré, par

exemple toto, sélectionner le dossier de destination, puis enregistrer. Le nom du fichier doitcomporter l'extension .m

• Par défaut, les fichiers .m sont stockés dans le dossier work.

Page 4: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 4/28

4

• En tapant le nom du fichier sous MATLAB, la suite d’instructions s’exécute.

• Si la fenêtre du script est active, par exemple lors de l’édition du fichier, il suffit de choisir la

commande save dans le menu File pour enregistrer les modifications.

• Les variables définies dans l’espace de travail sont accessibles pour le script. De même les

variables définies dans le script sont accessibles dans l’espace de travail. Les fichiers de

commandes partagent les variables définis dans la fenêtre de commande. Il s’agit donc de

variables globales.

• Dans le fichier script, il est possible, et même recommandé, d’introduire des commentaires.Ceci est réalisé à l’aide du caractère %. Toute commande située après % n’est pas prise en

compte par MATLAB jusqu’à la ligne suivante.

• MATLAB ne voit pas les espaces blancs entre les différents caractères des instructions de

commandes. Par conséquent on peut aérer suffisamment le fichier pour qu’il soit facilement

lisible.

4 – Fonctions

• MATLAB dispose de bibliothèques supplémentaires de fonctions appelées toolboxes, ou boîte

à outils, qui contiennent des fonctions spécialisées permettant d’utiliser l’environnementMATLAB pour résoudre des problèmes bien spécifiques.

• MATLAB compte plus de 500 fonctions prédéfinies, mais il se peut qu’on ait besoin d’une

fonction ne figurant pas dans son catalogue. Alors il est possible de créer de telles fonctions

dans un fichier séparé et les appeler de la même façon que les fonctions préexistantes.

• Si la première ligne est une ligne de commentaire alors elle sera affichée à chaque fois que le

help de cette fonction est sollicité.

• La première ligne (hormis la ligne de commentaires) d’une fonction doit impérativement avoir

la syntaxe suivante :

function [S1, S2,…] = nom fonction (E1, E2,…).

• nom fonction est une chaîne de caractère qui correspond au nom de la fonction. Ce nom doit

être différent de celui des autres fonctions déjà disponibles. Le fichier de commandes doit

porter le même nom que la fonction. E1, E2,… sont les variables transmises à la fonction

lorsqu’elle est invoquée. S1, S2,… sont les variables retournées par la fonction après son

exécution. Ces dernières variables définies à l’intérieur de la fonction sont locales.

• Par défaut, les fichiers .m contenant les fonctions sont stockés dans le dossier work.

Exemple :

% la fonction calcul la somme et le produit de deux nombres.

function [a, b] = somprod (x,y)

% Cette fonction retourne la somme et le produit de deux nombres.

a = x + y ;

b = x * y ;

>> [u, v] = somprod (3,4)

>> u =

7

v =

12

Page 5: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 5/28

5

• Le nom de la fonction doit impérativement être le même que le nom du fichier dans lequel elle

est stockée, sinon MATLAB ne prendra pas en compte ce nom mais uniquement celui du

fichier.

• Les variables de l’espace de travail ne sont pas accessibles à la fonction sauf si elles sontentrées comme variable d’entrée. De même les variables définies dans une fonction ne sont pas

accessibles dans l’espace de travail.

Il est vivement recommandé, avant d’écrire une fonction, de consulter la documentation ou lehelp afin de savoir s’il n’existe pas déjà une fonction similaire et peut être mieux écrite.

• Avant d’utiliser une fonction MATLAB pour la première fois il est souhaitable de consulter la

documentation ou le help pour vérifier qu’elle réalise bien ce que vous désirez.

5 – Help

• MATLAB est pourvu d’une fonction d’aide très utile : help. Ainsi si vous tapez help sur la

ligne de commande apparaissent tous les répertoires accessibles depuis MATLAB ainsi qu’une

explication (en anglais) concernant ces répertoires.

• Si vous tapez help suivi du nom du répertoire, MATLAB affiche une explication brève sur

toutes les fonctions et scripts de ce répertoire.

• Enfin si vous tapez help suivi du fichier script ou fonction apparaît une explication détaillée sur

l’utilisation de la fonction ou du script.

III. OUTILS DE BASE

1 - Commandes générales :

who : Affiche les variables actuellement présentes en mémoire.

whos : Affiche les variables actuellement présentes en mémoire ainsi

qu’une série d’informations comme leur nature, leur taille en nombre de

lignes et de colonnes pour les matrices, leur taille en bytes, etc...

exist (‘Nom variable’) : Affiche la valeur 1 si la variable Nom Variable existe, et la valeur 0 si la

variable n’existe pas.

clear Nom variable : Efface de la mémoire la variable Nom Variable.

clear : Efface toutes les variables en mémoire.

help Nom Fonction : Affiche la description et la syntaxe de la fonction Nom Fonction

save Nom Fichier : Enregistre dans le fichier Nom Fichier l’ensemble des variables

définies et actuellement présentes en mémoire.

Load Nom Fichier : Charge les variables stockées dans le fichier Nom Fichier.

X = input (‘message’) : Cette commande permet de saisir une donnée, elle produit

l’apparition à l’écran du ‘message’ et attend l’introduction des élémentsde X. Essayer avec ou sans point virgule.

fprintf (‘bonjour’) : Produit l’apparition à l’écran du message : bonjour.

pause : provoque un arrête momentané sur l’écran.Presser sur’importe

quelle touche pour reprendre la main sur le clavier.

2 - Caractères spéciaux

; : Utilisé à la suite d’une commande, ce caractère supprime l’écho

à l’écran de cette commande et de son résultat.

Page 6: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 6/28

6

... : Ajouté au cours d’une commande, ce caractère permet la

continuation de la commande à la ligne suivante.

3 - Valeur particulières

ans : Variable créée automatiquement quand le résultat d’une

expression n’est pas affecté à une variable.

pi : Constante correspondant au nombre π.

i, j : Constantes correspondant à 1− .

4 - Définitions de scalaires

z = 1 +2*i : Définit le nombre z = 1 + 2i.

a = 2 : Définit la variable a = 2.

a : En actionnant la touche RETURN, on visualise la valeur de a.

5 - Définition de vecteurs

x = [-1 0 2] ou x = [-1, 0, 2] : Définit le vecteur ligne : x = [-1 0 2].

x = [-1; 0; 2] : Définit le vecteur colonne :

=

2

0

1

x

x = [-1.3 sqrt(3) 6*4/5] : Définit le vecteur : x = [-1.3 1 .7321 4.8]

x (5) = x(1) : Etend la dimension de x jusqu'à 5 et assigne la valeur prescrite à

la dernière composante. L’élément x (4) n’étant pas défini, il vaut 0 par

défaut : x = [-1.3 1.7321 4.8 0 -1.3].

y = [y0 : D : yMax] : Définit un vecteur ligne dont la première composante est y0 et la

dernière yMax. Les valeurs intermédiaires sont obtenues par adjonction

successive de l’incrément D.

y = [y0 : yMax] : Si l’incrément D est omis, il vaut par défaut 1.

Donc y = [y0, y0+1, ..., yMax-1, yMax].

y = [1 : 5] : Définit le vecteur : y = [1 2 3 4 5].

y = linspace ( y0, yMax, n): Définit un vecteur ligne dont les n composantes sont linéairement

espacées entre les valeurs y0 et yMax.

y = linspace (-pi, pi, 4) : Définit le vecteur y = [-3.1416 -1.0472 1.0472 3.1416]

w = logspace (d1, d2, n) : Définit un vecteur ligne dont les n composantes sont

logarithmiquement espacées entre les valeur 10dl

et 10 d2

. C’est une

fonction adaptée à la création de vecteurs de pulsations utilisées pour

visualiser des réponses fréquentielles.

w = logspace(-2, 1, 50) : Génère 50 points compris entre 0.01 et 10.

6 - Définitions de matrices

A = [1 2 3 ; 4 5 6; 7 8 9] : Définit la matrice :

=

987

654

321

A

r = [10, 11, 12]

Page 7: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 7/28

7

A = [A; r] : Modifie A par adjonction de r comme nouvelle ligne

=

121110

987

654

321

A

ones (n, m) : Définit une matrice de dimension n x m avec tous les éléments

égaux à 1

O = ones (2, 3) : Définit la matrice :

=

111

111O

zeros (n, m) : Définit une matrice de dimension n x m avec tous les éléments

égaux à 0

size (A) : Définit un vecteur dont la première composante est le nombre de

lignes de A et la seconde son nombre de colonnes.

eye (n, m) : Définit une matrice identité de dimension n x m.

E = eye (size (A)) : Définit une matrice E de même dimension que A, qui contient

des 1 sur la diagonale principale et des 0 partout ailleurs.

=

000

100

010

001

E

diag(v) : Si v est un vecteur à n composantes, alors diag(v) est une

matrice carrée de dimension n qui porte sur la diagonale principale les

éléments du vecteur v.

D = diag ([1 2 3]) : Définit la matrice diagonale :

=

300

020

001

D

V = [] : Définit une matrice V de dimension 0 x 0.

7 - Manipulations de matrices ou de vecteurs

A (:, J) : Représente la j-ième colonne de A.

A (i, :) : Représente la i-ième ligne de A.

A (:, k : m) : Représente [A(:, k), A(:, k+1), … , A(:, m)]

A (:, 2)= [] : Efface la 2ème

colonne de la matrice A. On obtient :

=

1210

97

64

31

A

A (i, j) : En actionnant la touche RETURN on visualise la valeur del’élément (i, j) de la matrice A.

Page 8: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 8/28

8

Exemple :

Soit A = [1 2 3; 4 5 6; 7 8 9; 10 11 12];

A = A (1 : 3, :) : Produit la matrice

=

987

654

321

A

A = A (3, 2) : Visualise la valeur 8

8 - Opérations matricielle ou vectorielles

Soient x = [-1 0 2] , A = [ 1 2 3; 4 5 6; 7 8 0] et Z = [1+5*i, 2+6*i; 3 + 7* i, 4+8*i];

• Complexe conjugué transposé

B = A’ : Correspond à B =

=

063

852

741T

A

x = x’ : Produit le vecteur

=

2

0

1

x

W = Z’ : Produit la matrice

−−

−−=

ii

iiW

8462

7351

• Transposé

W = Z’. : Produit la matrice

++

++=

ii

iiW

8462

7351

• Addition et soustraction

Les opérations sont définies uniquement si les variables ont la même dimension ou si une des

variables est un scalaire .

C = A+B : Produit la matrice

=

01410

14106

1062

C

y = x –1 : Produit le vecteur

=

1

1

2

y

• Multiplication et division

Les dimensions des variables doivent être compatibles.

x’*y : Produit le scalaire ans = 4

x*y’ : Produit la matrice ans =

−−

224000

112

Page 9: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 9/28

9

b = A*x : Produit le vecteur

=

7

8

5

b

pi*x : Produit le vecteur ans =

2832.6

0

1416.3

C = A.*B : Correspond à la multiplication, élément par élément, des matrice A et

B, cij = aij bij.

=

04821

48258

2181

C

B/A : Correspond formellement à BA-1

, si A est une matrice carrée inversible.

z = x. /y : Correspond à la division, élément par élément, des vecteur x et y.Donne le vecteur :

=

2

0

5.0

z

• Puissance

A^n : correspond à An. Cette opération est définie si A est une matrice carrée

et si n est un scalaire.

Z = y.^x : Correspond à une élévation en puissance élément par élément. Donne le

vecteur :

=

1

1

5.0

z

z = x.^2 : Donne le vecteur

=

4

0

1

z

9 - Fonctions

• Fonctions matricielles élémentaires

Ces fonctions sont définies uniquement pour des matrices carrées. Soit A une matrice de

dimension n x n ;

det(A) : Déterminant de la matrice A.

inv(A) : Inverse de la matrice A.expm(A) : Exponentielle de la matrice A.

logm(A) : Logarithme naturel de la matrice A.

Page 10: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 10/28

10

sqrtm(A) : Racine carrée de la matrice A. Donne A = P-1

BP. Avec P matrice de

passage et B matrice diagonale. A1/2

= P-1

B1/2

P. B1/2

sera calculé élément par

élément.

poly(A) : Vecteur ligne de dimension n+1 dont les éléments sont les coefficients

du polynôme caractéristique det(sI-A) ordonnés en puissances décroissantes. .

eig(A) : Vecteur colonne contenant les valeurs propres de la matrice A.

[V, D] =eig

(A) Calcule les vecteurs propres et les valeurs propres de la matrice A et lesretourne respectivement dans les matrices V et D. Chaque colonne de la matrice

V correspond à un vecteur propre associé à la valeur propre se trouvant dans la

colonne correspondante de la matrice D. Ceci peut être écrit de la manière

suivante : A V = V D.

Exemple :

Considérons la matrice A tels que A = [2 0 4 ; 3 –4 12 ; 1 –2 5]

[V, D] = eig(A) donne

−−

−−

=

3714.02425.00

5571.004472.0

7428.09701.08944.0

V et

=

000

010

002

D

• Fonctions Mathématiques élémentaires

Il existe un ensemble de fonctions mathématiques élémentaires qui s’appliquent aux éléments

de vecteurs ou de matrices.

sin (A) : Sinus des éléments de la matrice A.

cos (A) : Cosinus des éléments de la matrice A.

tan (A) : tangente des éléments de la matrice A.

asin (A) : Arc sinus des éléments de la matrice A.

acos(A) : Arc cosinus des éléments de la matrice A.

atan (A) : Arc tangente des éléments de la matrice A.

abs (A) : Valeur absolue des éléments de la matrice A.

sqrt (A) : Racine carré des éléments de la matrice A.

real (A) : Partie réelle des éléments de la matrice A.

imag (A) : Partie imaginaire des éléments de la matrice A.

conj (A) : Complexe conjugué des éléments de la matrice A.exp (A) : Exponentielle des éléments de la matrice A.

log (A) : Logarithme naturel des éléments de la matrice A.

log10 (A) : Logarithme décimal à base de 10 des éléments de la matrice A.

Fonctions pour l’analyse des données

Les fonctions suivantes opèrent sur les colonnes d’une matrice ou sur les éléments d’un vecteur

ligne ou colonne.

Soient x = [ 6 4 1 2 5 3 ] et A = [ 9 8 4; 1 6 5; 3 2 7 ]

mx = max (x) : Fournit l’élément le plus grand du vecteur x, mx = 6.

mA = max (A) : Définit un vecteur contenant la valeur maximale de chaque

colonne de la matrice A, mA = [ 9 8 7].

mvx = mean (x) : Calcule la valeur moyenne du vecteur x, mvx = 3.5.

mvA = mean (A) : Définit un vecteur contenant la valeur moyenne calculée surchaque colonne de la matrice A, . mvA = [ 4.333 5.333 5.333].

sx = sort(A) : Classe les éléments de chaque colonne de la matrice A selon

Page 11: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 11/28

11

l’ordre croissant, sx = [1 2 3 4 5 6 ]

sA = sort(A) : Classe les éléments de chaque colonne de la matrice A

selon l’ordre croissant

=

789

563

421

sA

sux = sum(x) : Calcule la somme de tous les éléments du vecteur x, sux = 21.

suA = sum(A) : Définit le vecteur contenant la somme calculée sur chaque

colonne de la matrice A, sux = [13 16 16]

• Fonctions opérant sur des polynômes

MATLAB dispose également de fonctions qui opèrent sur des polynômes représentés par des

vecteurs de coefficients.

Soient p = [1 –6 –72 –27], a = [1 2 3] et b = [4 5 6]

r = roots (p) : Définit un vecteur colonne dont les composantes sont les racines

du polynôme s3 – 6s

2 – 72s – 27,

−=

3884.0

7345.5

1229.12

r

p2 = poly (r) : Calcule les coefficients d’un polynôme définit par ses racines,

p2 = [1 –6 –72 –27].

v = polyval (p, x) : Retourne, dans v, les valeurs calculées du polynôme p en chaque

point de x.

c = conv (a, b) : Effectue le produit des polynômes a(s) = s2 + 2s + 3 et

b(s) = 4s2 + 5s + 6 puis fournit un vecteur contenant les coefficients du

polynôme résultant, c = [4 13 28 27 18].

[q, r] = deconv (B, A) : Réalise la division polynomiale B/A et retourne dans q les

coefficients du polynôme quotient et dans r ceux du reste. C’est-à-dire B

= A q + r

Exemple :

[q, r] = deconv(c, a)

ans q = 4 5 6

r = 0 0 0 0 0

Ainsi c = q a + r 4x4 + 13x

3 + 28x

2 + 27x + 18 = (4s

2 + 5s + 6 ) (s

2 + 2s + 3) + 0

Page 12: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 12/28

12

On peut vérifier ce résultat en utilisant la commande conv entre les polynômes q et a pour voir

si le résultat donne bien le polynôme c.

• Fonctions opérant sur les fractions rationnelles.

Soient les polynômes A = [1 5 6] et B = [1],

[r, p, k] = residue (B, A) : effectue la division des polynômes B par A et la retourne

sous la forme suivante :

)()(

)(...

)2(

)2(

)1(

)1(

)(

)( xk

n p x

nr

p x

r

p x

r

x A

x B+

−++

−+

−=

Ainsi :2

1

3

1

65

12 +

++

−=

++ x x x x

[B, A] = residue (r, p, k) : Effectue l’opération inverse et retourne dans B les

coefficients de B(x) et dans A ceux de A(x).

IV. DOMAINE DE L’AUTOMATIQUE

Il sera question de savoir comment décrire et manipuler un système dynamique SLTI.

MATLAB dispose d’une représentation objet des SLTI continus ou discrets.

1 - graphiques

Avec MATLAB les données peuvent être examinées graphiquement. Pour la représentation

d’un graphe à l’écran il est possible de choisir le type d’échelle désiré pour les axes x et y.

Plot (x, y) : Graphe linéaire de y en fonction de x. x et y doivent être deux

vecteurs de même dimension.

Plot (x, y, ‘s1s2s3’) : Donne la courbe y(x). s1 et s2 et s3 sont trois paramètres qui

précisent la couleur, le type de point et la nature de lignes d’interpolation

choisies.

s1 (couleur) s2 (type de point) s3 (nature de lignes)

y jaunem magenta

c bleu ciel

r rouge

g vert

b bleu

w blanc

k noir

. pointo cercle

x marque x

+ plus

* étoile

s carreau

d diamant

^ triangle (haut)

v triangle (bas)

< triangle (gauche)

> triangle (droite)

p pentagone

h hexagone

-

solide: pointillé

-. tiret point

-- 2 tirets

Page 13: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 13/28

13

Plot (x, y, t, z) : Donne la courbe y(x) et la courbe z(t) sur le même graphique.

Eventuellement on peut ajouter les données concernant la couleur, le type

point et la nature d’interpolation choisies.

stem (n, y) : analogue à la commande plot sauf qu’elle trace la courbe du

signal numérique y en fonction du pas d'échantillonnage n.

subplot (nml) : subdivise la fenêtre du graphe en n lignes et m colonnes et

choisie la lème

pour être active. Les zones graphiques sont numérotées de

la gauche vers la droite et de haut vers le bas.loglog (x, y) : Graphe logarithmique en x et y.

semilogx (x, y) : Graphe logarithmique en x, linéaire en y.

semilogy (x, y) : Graphe linéaire en x, logarithmique en y.

Une fois le graphe est visualisé à l’écran, il est possible d’introduire un titre et des noms

indicatifs pour les axes x et y.

title (‘texte’) : Ajoute la phrase écrite entre apostrophe au sommet du graphe.

gtext (‘texte’) : Place le message entre apostrophe sur le graphique en cours.

Une fois la position choisie est indiquée par le témoin de la souris, il

suffit d’y cliquer ou d’appuyer sur une touche du clavier.

xlabel (‘texte’) : Ajoute le texte écrit entre apostrophe sur le graphe pour la

légende de l’axe des x.ylabel (‘texte’) : Ajoute le texte écrit entre apostrophe sur le graphe pour la

légende de l’axe des y.

clf : Efface toutes les courbes du graphe.

grid ou grid on : Place les lignes du quadrillage sur la courbe courante.

grid off : Supprime les quadrillages placés sur la courbe.

axis ([xmin xmax ymin ymax]): Définit les limites des coordonnées des axes x et y en tenant

compte des limites mentionnées par xmin, xmax, ymin et ymax

Exemple :

t = 0 : 0.05 : 4*pi ;

x = cos (t) ;y = sin(t) ;

plot ( t, x, ‘r.’, t, y, ‘g*’)

xlabel (‘t en radian’)

ylabel (‘cos(t) en rouge et sin(t) en vert’)

ou encore :

t = 0 : 0.05 : 4*pi ;

x = cos (t) ;

y = sin(t) ;

subplot (2,1,1)

plot ( t, x, ‘y.’)

xlabel (‘t en radian’)

ylabel (‘cos(t) en jaune’)

subplot (2, 1, 2)

plot (t, y, ‘b*’)

xlabel (‘t en radian’)

ylabel (‘sin(t) en bleu’)

2 – Fonction de transfert :

La fonction de transfert est une représentation très utilisée pour la description des systèmes.

a - Forme polynomiale d’une fonction de transfert analogique :

Soit :n

nn

mmm

d sd sd

nsnsns H +++

+++=−

....

...)(1

10

110

Page 14: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 14/28

14

Noter que la variable p, couramment utilisé en tant que variable de la fonction de transfert

analogique H, est remplacée dans MATLAB par la variable s.

Dans MATLAB, nous décrivons ce système par les deux vecteurs lignes suivants :

],...,[],...,[ 1010 nm d d d denet nnnnum ==

sys = tf (num, den) : crée le système sys dont la fonction de transfert continu a pour

numérateur num et pour dénominateur den.

get (sys) : permet de lister les caractéristiques du système sys.

Exemple :

Considérons le système défini par la fonction de transfert :1243

52)(

23

3

+++

++=

sss

sss H

L’introduction de ce système dans MATLAB se fait par les commandes suivantes :num = [1 0 2 5]

den = [3 4 2 1]

sys = tf (num,den)

b - Représentation pôles zéros d’une fonction de transfert analogique :

Soit :))...((

))...(()(

1

10

n

m

ps ps

zs zsK s H

++

++=

Dans MATLAB, nous décrivons ce système par les deux vecteurs colonnes et un scalairecomme suit :

],...,[],...,[; 21110 nm p p pPet z z z Z K K −−−=−−−==

Exemple : Considérons le système)5).(4).(3(

)2).(1(4)(

+++

++=

sss

sss H

L’introduction de ce système dans MATLAB se fait par les commandes suivantes :

K = 4 ;

Z = [-1 ; –2] ;P = [-3 ; –4 ; –5] ;

La représentation pôles zéros (p, z) peut être convertis sous forme polynomiale (num, den) en

appliquant la commande poly.

num = poly (Z)*K ;

den = poly (P) ;

L’opération inverse s’effectue en appliquant la commande roots.

Z = roots (num)

P = roots (den)

d – Systèmes avec retard

La représentation objet de MATLAB permet de définir des systèmes avec retard.

Page 15: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 15/28

15

Soit1

0 1

1

0 1

...( )

...

m mrs m

n n

n

n s n s n H s e

d s d s d

−−

+ + +=

+ + + où r est le retad pur en secondes du système.

Le numérateur et le dénominateur sont toujours décrits de la même manière. La commande tf est utilisée pour décrire le système sans retard sys.

Sys = tf (num, den)

La fonction set permet de changer quelques paramètres de l’objet sys et en particulier son

retard pur initialement mis à zéro. Le retard pur est repéré par le paramètre Td :

set (sys, ‘Td’,r) : Assigne la valeur r secondes au retard pur du système (analogique).

Exemple : considérons le système analogique défini par :3

3 2

2 5( )

3 4 2 1

s s H s

s s s

+ +=

+ + +

num = [1 0 2 5]

den = [3 4 2 1]

sys = tf (num, den)subplot (2,1,1)

impulse (sys)

set (sys, ‘Td’,5)

subplot (2,1,2)

impulse (sys)

e - Combinaison de fonctions de transfert

MATLAB fournit la possibilité de connecter deux systèmes dynamiques qui sont décrits

chacun par une fonction de transfert.

Cette opération qui consiste à réduire plusieurs systèmes dynamiques connectés en série en unseul système équivalent est intéressante car elle facilite, entre autre, l’analyse de la réponse du système

globale.

Soit (num1, den1) et (num2, den2) la représentation de deux systèmes dynamiques 1 et 2

connectés en série.

S1(p) S2(p)x y

La fonction de transfert du système équivalent est représentée par deux vecteurs ligne, num et

den, définis comme suit :

num = conv (num1, num2)

den = conv (den1, den2)

Où conv est la fonction réalisant le produit de convolution de deux polynômes. Plus

simplement, avec la représentation objet de MATLAB des systèmes linéaires, la mise en série de deux

systèmes peut être réalisée de la façon suivante :

sys1 = tf (num1, den1)sys2 = tf (num2, den2)

sys = sys1*sys2

Page 16: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 16/28

16

Exemple :

Soit :25.0

44.0)(

5.05.0

2)(

2

2

221++

++=

++

+=

ss

sss H et

ss

ss H deux systèmes mis en série.

Calculer la fonction de transfert H(s) des systèmes 1 et 2 et du système équivalent et tracer

leurs réponses impulsionnelles.

num1 = [1 2]

den1 = [0.5 1 0.5]

num2 = [1 0.4 4]

den2 = [1 0.5 2]

sys1 = tf (num1, den1)

sys2 = tf (num2, den2)

sys = sys1*sys2

subplot (3,1,1)

impulse (sys1)

subplot (3,1,2)

impulse (sys2)subplot (3,1,3)

impulse (sys)

sys donne125.2225.15.0

88.44.2)(

234

23

++++

+++=

ssss

ssss H

e - Quelques commandes utiles de plus :

printsys (num,den) : écrit sur l’écran la fonction de transfert sous forme d’un rapport

de deux polynômes dont les coefficients sont contenus dans les vecteurs

num et den en prenant s comme variable de la transformation.

printsys (num, den,’v’) : la variable s est remplacée cette fois ci par v.

Exemple :

num = [1 2] den = [3 4]

printsys (num, den) donne43

2

+

+

s

s

printsys (num, den, ‘b’) donne43

2

+

+

b

b

3 – Réponse temporelle des systèmes SLTI :

MATLAB fournit des commandes pour le calcul des réponses temporelles des systèmes

dynamiques linéaires et stationnaires. Nous présentons ci-dessous le cas des systèmes analogiques. Des

commandes analogues existent aussi pour le cas des systèmes numériques.

a – Réponse impulsionnelle

Soit un système analogique décrit par sys et un système discret représenté par sysd.

impulse (num,den) : donne la courbe de la réponse impulsionnelle, en fonction du

temps, correspondante au système défini par la fonction de transfert(num, den).

impulse (sys) : idem que impulse (num, den)

Page 17: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 17/28

17

impulse (num,den, t) : idem que impulse (num, den) sauf que le calcul est réalisé sur

l’intervalle de temps t choisi par l’utilisateur.

impulse (sys, t) : idem que impulse (sys) sauf que le calcul est réalisé sur

l’intervalle de temps t choisi par l’utilisateur.

y = impulse (sys) : retourne dans le vecteur y les valeurs de la sortie de la réponse

impulsionnelle.

y = impulse (sys, t) : retourne dans le vecteur y les valeurs de la sortie de la réponse

impulsionnelle en fonction du temps t choisi par l'utilisateur.y = impulse (sysd, T) : retourne dans le vecteur y les valeurs de la réponse

impulsionnelle d'un système discret décrit par la fonction de transfert

sysd calculées à chaque pas d'échantillonnage T choisi par l'utilisateur.

Exemple :

t = 0 : 0.01 : 10 ;

num = [1] ;

den = [3 4] ;

impulse (num, den, t) ;

Le même résultat peut être obtenu en remplaçant la dernière instruction par :

y = impulse (num, den, t) ;

plot (t, y)

Ou encore :

sys = tf (num,den)

impulse (sys, t)

b – Réponse indicielle :

step (num, den) : donne la courbe de la réponse à un échelon unitaire du système

linéaire et continu, en fonction du temps, dont la fonction de transfert est

défini par (num, den).

y= step (num, den, t) : retourne dans le vecteur y les valeurs de la réponse à un échelon

unitaire, en fonction du temps pour l’intervalle de temps t, du système

linéaire et continu dont la fonction de transfert est défini par (num, den).

Exemple :

t = 0 : 0.01 : 10 ;

num = [1] ;

den = [3 4] ;

step (num, den, t) ;

Le même résultat peut être obtenu en remplaçant la dernière instruction par :

y = step (num, den, t) ;

plot (t, y)

c – Réponse à une entrée arbitraire :

lsim (sys, u, t) : donne la courbe de la réponse temporelle, au signal d’entrée u en

fonction du temps t, du système défini par la fonction de transfert sys.

y= lsim (sys, u, t) : retourne dans le vecteur y les valeurs de la réponse temporelle,

au signal d’entrée u en fonction du temps t, du système défini par la

fonction de transfert sys.

Page 18: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 18/28

18

Exemple :

t = 0 : 0.01 : 10 ;

num = [2 1] ;

den = [3 4] ;

x = sin (t) ;

sys = tf (num,den) ;

lsim (num, den, x, t) ;

Le même résultat peut être obtenu en remplaçant la dernière instruction par :

y = lsim (sys, x, t) ;

plot (t, y)

3 – Réponse fréquentielle des systèmes SLTI :

a - Diagramme de Bode

bode ( num, den) ⇒ produit la representation de bode de la fonction de transfert

num (s)

den (s) . La

gamme de fréquence et le nombre de points sont choisis automatiquement.

bode ( num, den, ω) ⇒ utilise la gamme de fréquence choisie par l'utilisateur. Le vecteur ω

doit contenir les fréquences en rad / s.

[ Mag, phase, ω ] = bode ( num, den) ⇒ retourne les amplitudes dans Mag, les phases dans

phase, et les fréquences dans ω, sans représentation graphique. Pour effectuer cette dernière

nous devons utiliser l'instruction semilogx en faisant observer que les amplitudes ne sont

pas données en dB.

Exemple : clear

num = input ( ' num = ') ;

den = input ( ' den = ' ) ;

bode ( num , den )

gtext ( 'diagramme de BODE ')

Les mêmes représentations sont obtenues en remplaçant l'instruction " bode

( num, den )" par la série d'instructions suivante :

[ mag, phase , ω ] = bode ( num, den ) ;

subplot ( 211)

semilogx ( ω , 20 * log10 ( mag ) ) ;

grid

subplot ( 212 )

semilogx ( ω , phase )

grid.

b – Lieu de Nyquist

nyquist ( num, den) ⇒ produit la représentation de Nyquist de la fonction de transfert

num (s)

den (s)

Page 19: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 19/28

19

nyquist ( num, den, ω) ⇒ utilise la gamme de fréquence imposée par l'utilisateur dans le

vecteur ω (en rad/S).

[ Re, im, ω ] = nyquist ( num, den) ⇒ retourne dans Re les parties réelles de

num (jω)

den (jω) dans

im les parties imaginaires et dans ω les fréquences prises. La représentation de Nyquists'obtient alors par le biais de l'instruction plot ( Re, im ) .

c – Lieu de Black – Nichols

nichols ( num, den) ⇒ donne la représentation de Black - Nichols de la fonction

num (jω)

den (jω)

nichols ( num, den, ω) ⇒ donne le diagramme de Nichols pour la gamme de fréquences

choisie dans ω ( en rad/s).

[ Mag, phase, ω ] = nichols ( num, den) ⇒ retourne les amplitudes dans Mag, les phases

dans phase, et les fréquences dans ω, sans représentation graphique. Nous obtenons le

diagramme de Nichols à l'aide de l'instruction plot.

Exemple :clear

num = 2 ;

den = [ 1 0.5 1 ] ;

nichols ( num, den )

Le même résultat est obtenu en remplaçant la dernière instruction par :

plot ( phase , 20*log10 ( mag) )

axis ( [ -180 0 - 100 20 ] )

d - Marge de Gain - Marge de phase

[ Gm, Pm, ωcg, ωcp ] = margin ( mag, phase, ω ) : retourne la marge de gain dans Gm , la

marge de phase dans Pm et les fréquences associées dans ωcg et ωcp . Sachant que les

vecteurs mag, phase et ω doivent contenir respectivement les amplitudes, les phases et les

fréquences en rad /s.

margin ( mag, phase, ω ) : donne le diagramme de Bode avec les marges de gain et de phase

(indiquées pas des lignes verticales).

Exemple : num = 2 ;den = [ 1 0.25 1 ] ;

[ mag , phase , ω ] = bode (num, den ) ;

margin ( mag, phase, ω )

pause

[Gm, Pm, ωcg , ωcp ] = margin ( mag, phase, ω )

e – Système en boucle fermée

Soit le système en boucle fermée suivant :

Page 20: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 20/28

20

S1(p)

S2(p)

+

-

L’instruction feedback permet de réaliser un tel système.

Syntaxe : >>[num,den]=feedback(num1,den1,num2,den2,sign)

V. PROGRAMMATION AVEC MATLAB

Il est possible avec MATLAB de faire des programmes. Les lignesd’instructions d’un programme sont

crées avec l’éditeur associé à MATLAB (cliquer sur File,puis New (M-File) pour créer un fichier ou

sur Open M-File pour ouvrir un fichier déjà existant). Le fichier doit être sauvegarder avec l’extension

« .M » , il est ensuite executable dans l’environnement MATLAB.

Les tests classiques (for, while, if, …) existent avec MATLAB, décrivons les rapidement.

1. Tests et boucle

a. Instruction FOR

Cette instruction permet de faire une boucle de type « pour ».

Syntaxe : >> for variable = expression

…..

>> end

b. Instruction WHILE

Cette instruction permet de faire une boucle de type “tant que”.

Syntaxe : >> while expression

……….

>> end

c. Instruction IF

Cette instruction permet de faire des insructions différentes selon qu’un test est vrai ou

faux.

Syntaxe : >> if expression

………..

>> else

………..

>> end

2. Autres exemples de fonctions

break permet de quiter « anormalement » une boucle FOR ou WHILE.

input permet d’introduire une valeur dans une variable.

Ex : x = input (‘donner la valeur de x :’)disp(‘xxx’) affiche à l’écran la chaîne de caractères xxx.

clc efface l’écran.

Page 21: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 21/28

21

pause attend un apui sur une touche quelconque du clavier avant d’exécuter l’instruction

suivante.

Pause(n) suspend le déroulement du programme durant n secondes.

VI. CREATION DE FONCTION

Si une fonction, qu'on désire utiliser fréquemment, ne fait pas partie des fonctions

incorporées. Matlab dispose de structures pour créer de nouvelles fonctions sous la forme d'un fichierM. files

Les fonctions M. files doivent suivre des règles spécifiques parmi lesquelles on cite.

1- La première instruction d'une fonction doit s'écrire suivant la syntaxe :

function Y = Nomfon ( x1, x2 )

où : Y est l'argument de sortie

x1, x2 sont les arguments d'entrée

Nomfon le nom de la fonction.

2- Le nom de la fonction et celui du fichier doivent être identiques. Par exemple, la fonctionNomfon doit être sauvegardée sous le nom Nomfon.m.

3- Les fonctions peuvent avoir zéro ou plusieurs arguments d'entrée et zéro ou plusieurs

arguments de sortie.

4- Lorsqu'une fonction possède plus d'une variable de sortie, celles-ci sont mis entre crochets

comme [ V , D ] = eig(A)

5- Les fonctions M.files agissent comme des commandes MATLAB. Ainsi une fonction est

appelée (pour exécution) en plaçant les variables entre parenthèses comme det(A).

6- Une fonction peut être appelée de manière récursive, c -à - d qu'elle peut être appelée par elle

même.

Exemple :

Soit Fibona une fonction M.file qui calcule les X premièrs nombres de Fibonnaci.

function Fib = Fibona (X)

f = [ 1 1 ] ; i = 3

while i < = X

f (i) = f ( i-1) + f ( i -2 )

i = i + 1

end

f

Cette fonction doit être sauvegardé sous le nom Fibona.m . Le calcul des 25 premièrs nombres

de Fibonnaci est obtenu à l'aide de l'instruction Fibona (25).

Page 22: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 22/28

22

T.P. N°2

INITIATION À SIMULINK

Simulink est l’extension graphique de MATLAB permettant de représenter les fonctions

mathématiques et les systèmes sous forme de diagramme en blocs.

1-

Pour démarrer SimulinkDans la fenêtre commande de MATLAB, taper simulink.

La fenêtre simulink va s’ouvrir :

Figure 1 : Bibliothèque SIMULINK.

Cette fenêtre contient des collections de blocs que l’on peut ouvrir en cliquant dessus :

Sources sources de signauxSinks affichage

Discrete blocs discrets

Continuous blocs linéaires

Discontinuities blocs non linéaires

2- Construction d'un modèle simple

Pour commencer, dans le menu File, on choisit New-model.

Une fenêtre de travail Untitled s’ouvrira ;

Ouvrir les collections de blocs en cliquant dessus deux fois.

Page 23: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 23/28

23

Faire glisser dans la fenêtre de travail les blocs dont on a besoin pour construire le diagramme.

- Le bloc " signal Gen" génère un signal [ sources library]

- Le bloc " scope" représente un graphique d'un oscilloscope [ sinks library]

mettre le " horizontal range " et le " vertical range" à 10 et 3 respectivement

- Le braket (>) à la sortie du bloc" signal Gen" représente son port de sortie

- Le braket (>) à l'entrée du bloc " scope" représente son port d'entrée

- Pour lier ces deux blocs, utiliser le bouton de la sourie en même temps sur le port de sortie et le port

d'entrée.

- Maintenant vous pouvez commencer la simulation

- Pour sélectionner la technique d'intégration et les paramètres à utiliser durant la simulation, appeler le

menu Simulation et choisir Paramètres .

- Une boite est ouverte montrant tous les paramètres qui peuvent être modifiés.

- Changer la valeur du " Maximum step size" à 0,01 et cliquer sur OK.

- Lancer la simulation en choisissant start à partir du menu simulation- Si la fenêtre du " scope bloc" n'est pas ouverte, cliquer maintenant deux fois sur le bloc.

- Le générateur de signaux envoi le sin(t) à chaque pas de temps et l'oscilloscope le montre sous la

forme d'une onde sinusoïdale.

- Vous pouvez sélectionner différentes formes de signaux sur le générateur de signaux et voir les

résultats immédiatement sur l'oscilloscope.

- La simulation est arrêtée en choisissant la commande Stop du menu Simulation.

- Pour sauvegarder votre travail sous forme de fichier " M-file", choisir save du menu File. Choisir le

nom "Binôme NG" (N = numéro de Binôme, G = numéro de Groupe).

- Maintenant prendre une copy du " Gain bloc" du " linear subsystem" dans le bloc bibliothèque.- Ouvrir ce bloc en cliquant 2 fois.

- Changer la valeur du gain 2 et fermer le bloc.

- Maintenant lier le générateur de signaux au " Grain bloc"

- Ajouter un autre oscilloscope au modèle en copiant l'oscilloscope déjà existant en utilisant le bouton

droit de la sourie. La copie aura les mêmes valeurs de paramètres.

- Lier le bloc gain au 2ème oscilloscope.

- Ouvrir les deux oscilloscopes et lancer la simulation.

- Observer le résultat des deux oscilloscopes, remarquer que le bloc gain multiplie par deux son signald'entrée.

Page 24: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 24/28

24

- Arrêter la simulation

- Vous pouvez éliminer un bloc ou une ligne en le sélectionnant et en utilisant la touche Delete on en

choisissant Cut ou Clear du menu Edit

- Enlever le 2ème oscilloscope, sa ligne de connexion avec le bloc gain et la ligne de connexion du

générateur de signaux et l'oscilloscope

- A partir de la bibliothèque connections, ajouter un bloc Mux dans le modèle.

- Ouvrir le bloc Mux pour changer le nombre d’entrées en cas de besoin

- Connecter le générateur de signaux et le bloc gain à l'entrée du bloc Mux et diriger sa sortie à

l'oscilloscope.

- La fonction du bloc Mux est de multiplexer ses entrées dans un seul vecteur de sortie. Dans notre

exemple, la ligne de connexion du bloc Mux et l'oscillo est une ligne multivariable ( qui transmet

plusieurs valeurs pour chaque pas de temps).

- Maintenant faire une copie du bloc Workspace de la bibliothèque " Sinks" puis l'ouvrir. Le nom de la

variable apparaît dans l'icône du bloc ; c'est " yout" par défaut. On peut changer ce nom en entrant un

nouveau nom.

Le bloc To Workspace prend le vecteur d'entrée est le met dans le " Workspace Matlab" sous formed'une matrice. La matrice a une ligne par pas en temps et une colonne par élément du vecteur d'entrée

du bloc.

- Ouvrir le bloc " To Workspace"

- Changer le nom de la variable Matlab produit par la simulation de ce modèle à matrice1.

- Faire la connexion de la sortie du bloc Mux à l'entrée de bloc " matrice1". Une autre façon de faire

la liaison est d'utiliser une ligne de sortie existante. Positionner le pointeur sur la ligne " Mux"

"Scope", utiliser le bouton droit de la sourie et mettre le pointeur à l'entrer du bloc "

ToWorkspace".

Page 25: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 25/28

25

- Lancer une simulation de ce modèle.

- Stopper la simulation et sauvegarder ce modèle.

- Retourner à la fenêtre des commandes de MATLAB. Entrer la commande whos. Le résultat est :

Name size Total Complex

matrice 1 1000 by2 2000 No

Grand total is ( 2000 * 8) = 16 000 bytes.

- Entrer la commande plot ( matrice 1).

- On peut utiliser la commande Save de MATLAB pour sauvegarder les résultats de la simulation dans

un fichier data de Matlab.

- Un vecteur représentant les pas en temps peut être obtenu en connectant un bloc " Clock" au bloc "

To Workstation" ou en entrant un nom de variable (par exemple t) dans le champ " Return Variables"

de " Simulation Paramètres".

Application :Construire le modèle suivant :

Simuler puis visualiser la variable « sorties » sur une figure MATLAB.

Page 26: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 26/28

26

T.P. N°3

ANALYSE TEMPORELLE & FREQUENTIELLE D’UN SYSTEME DU PREMIER ORDRE

On considère le circuit RC suivant :

R

CVe Vs

Figure 1 : Circuit RC en série.

Analyse Temporelle

1/ Etablir la fonction de transfert( )

( )( )

s

e

V p H p

V p= en fonction de R et C ; Calculer H(p) pour les valeurs

suivantes R=3KΩ ; C=10µF.

2/ Relever expérimentalement la réponse indicielle et en déduire H(p)

Analyse Fréquentielle

Pour les valeurs de T1=……………………et α=………………………

Faites varier la fréquence du signal sinusoïdal d’entrée de 0 à une valeur supérieure à 1/T1

Quelle est la nature du signal de sortie ?

Remplir les Tableau suivant

ω(rad/s)

|H(jw)|dB

Arg(H(jw))

N.B. : Le nombre de points ainsi que les fréquences sont à choisir.

1./ Tracer le lieu de transfert du système sur les plans de Bode , Nyquist et Black,

2./ Comparer avec les tracés théoriques,

3./ Que peut on dire sur la stabilité du système ?

Page 27: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 27/28

27

T.P. N°4

ANALYSE TEMPORELLE & FREQUENTIELLE D’UN SYSTEME DE DEUXIEME ORDRE

I. PARTIE THEORIQUE

On considère le circuit RLC suivant :

R

CVe

L

Vs

Figure 1 : Circuit RLC série.

1. Ecrire l’équation différentielle qui régit le fonctionnement de ce système.

2.

Dans les conditions d’Heaviside, déterminer la fonction de transfert ( )( )( )

s

e

V p H pV p

= ; l’écrire

sous la forme :2

2

0 0

( )2

1

K H p

p p

ξ

ω ω

=

+ +

, puis donner ξ et ω0 en fonction des éléments du

montage.

3. Sachant que la bobine a une inductance L=0,1H et présente une résistance R=32Ω, déterminer ξ

et ω0 pour chacun des couple (R,C) suivant :

C(nF)

R(Ω)

4. Quelle est la valeur critique du coefficient d’amortissement ξ qui conditionne la réponse

temporelle du système ?

5. Donner la réponse temporelle Vs(t) (expression et allure sur le même graph) dans les trois cas ξ<ξcritique , ξ= ξcritique et ξ> ξcritique.

6. Pour la même valeur de C1 choisir deux valeurs R1 et R2 de R qui donnent des réponses

oscillatoires et deux autres valeurs R3 et R4 qui donnent des réponses apériodiques.

7. Etudier la fonction |H(jω)|=f(ω).

8. Quelle est la valeur critique du coefficient d’amortissement ξ qui conditionne la réponse

fréquentielle du système ?

9. Pour la même valeur de C1 choisir deux valeurs R1 et R2 de R qui donnent des réponses avec

résonance et deux autres valeurs R3 et R4 qui donnent des réponses sans résonance.

10. Donner le diagramme de Bode du système pour les quatre couples (R, C) de la question9.

Page 28: [02] TP Automatique (FST Marrakech).pdf

7/26/2019 [02] TP Automatique (FST Marrakech).pdf

http://slidepdf.com/reader/full/02-tp-automatique-fst-marrakechpdf 28/28

II. PARTIE PRATIQUEAnalyse Temporelle

1. Réaliser le montage suivant pour chaque couple (Ri, Ci) de la question 6 :

R

CVe

L

V sGBF

Voie1 de l’oscilloscope

Voie2 de l’oscilloscope

Masse

Figure 2 : Montage à réaliser.

avec : Ve est signal carré de fréquence assez faible.

2. Relever les réponses temporelles correspondantes à chaque montage.

3. En déduire :

Le temps de réponse à 5 %, Le temps du premier dépassement et la valeur de celui-ci en %,

Le temps de montée,

La pente à l’origine.

4. Comparer ces résultats avec la théorie.

5. Conclure sur l’influence des éléments R et C sur la réponse du système.

6. Relever la réponse temporelle du système pour un seul couple (R, C) en éliminant la bobine,

comparer la pente à l’origine de cette réponse aux précédentes et commenter ce résultat.

7. Montrer comment peut-on utiliser un potentiomètre pour régler la valeur de ξ à ξcritique , quelle

est la valeur correspondante de la résistance ?

Analyse fréquentielle1. Réaliser le montage suivant pour chaque couple (Ri, Cj) de la figure 2 :

Avec : Ve est signal sinusoïdal de fréquence variable.

2. Pour chaque montage relever les mesures nécessaires pour établir la réponse en fréquence du

système.

ω (rad/s)

|H(jω)|dB

Arg(H(jω))

N.B : le nombre de point ainsi que les fréquences sont à choisir.

3.

Tracer les diagrammes de Bode des différents systèmes sur papier semi-logarithmique.4. Tracer les lieux de transfert sur l’abaque de Black-Nichols.

5. Déterminer les caractéristiques fréquentielles de chacun de ces systèmes

Le gain statique,

La pulsation de coupure à -3dB,

La pulsation de résonance et le gain correspondant,

Le facteur de résonance.

6. Comparer ces résultats avec la théorie.

7. Que deviennent ces caractéristiques en boucle fermée.

8.

Proposer un schéma de montage en boucle fermée et vérifier 7. pour un couple (R, C).