SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal ....

24
ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE ÉLECTRIQUE HIVER 2016 COURS ELE2700 ANALYSE DES SIGNAUX SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK section #1 section #2 Le logiciel MATLAB ainsi que l'outil Simulink seront utilisés pour réaliser les travaux pratiques du cours d'Analyse des signaux tout au long du trimestre. Le présent document comporte les trois parties suivantes: 1. Principales commandes MATLAB utilisées dans le cadre du cours d'Analyse des signaux; 2. Introduction à l’outil de simulation Simulink; 3. Travail à réaliser au laboratoire lors de la première séance de travaux pratiques. À noter que les deux premières parties ne constituent pas un document de référence exhaustif sur MATLAB et Simulink. D'autres manuels plus détaillés sont disponibles à la COOP ou sur Internet. Pour la partie 3, voir comme rappel Chapitre 5 pages 248 à 251 du livre du cours, "Signals, Systems, Transforms and Digital Signal Processing with MATLAB ©", (M. Corinthios), Taylor and Francis CRC Press 2009.

Transcript of SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal ....

Page 1: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ÉCOLE POLYTECHNIQUE DE MONTRÉAL

DÉPARTEMENT DE GÉNIE ÉLECTRIQUE

HIVER 2016

COURS ELE2700 ANALYSE DES SIGNAUX

SÉANCE #1 (TP0)

INTRODUCTION À MATLAB ET SIMULINK

section #1 section #2

Le logiciel MATLAB ainsi que l'outil Simulink seront utilisés pour réaliser les travaux pratiques

du cours d'Analyse des signaux tout au long du trimestre. Le présent document comporte les

trois parties suivantes:

1. Principales commandes MATLAB utilisées dans le cadre du cours d'Analyse des

signaux;

2. Introduction à l’outil de simulation Simulink;

3. Travail à réaliser au laboratoire lors de la première séance de travaux pratiques.

À noter que les deux premières parties ne constituent pas un document de référence exhaustif sur MATLAB et Simulink. D'autres manuels plus détaillés sont disponibles à la COOP ou sur Internet. Pour la partie 3, voir comme rappel Chapitre 5 pages 248 à 251 du livre du cours, "Signals, Systems, Transforms and Digital Signal Processing with MATLAB ©", (M. Corinthios), Taylor and Francis CRC Press 2009.

Page 2: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 2 -

TABLE DES MATIÈRES

1. Introduction à MATLAB

1.1 Matrices et vecteurs …………………………………….……………………. 3

1.2 Génération automatique de matrices et de vecteurs ….………………………. 4

1.3 Opérations sur les matrices et les vecteurs …….…………………….……….. 5

1.4 Nombres complexes ………………………..……………………….……….. 6

1.5 Affichage graphique ……………………………………………….…………. 7

1.6 Programmation de fonctions …….…………………………………………… 8

1.7 Exercices suggérés …………………………..……………………………….. 9

1.8 Liste des commandes utilisées le plus fréquemment ……………….………… 10

2. Introduction à Simulink

2.1 Simulation à l'aide de Simulink …………….………………….…………….. 14

2.2 Récupération des données ……………………………..………….………..…. 18

3. Travail à réaliser au laboratoire ……………………..……………………………… 20

Ce document a été rédigé avec la précieuse collaboration de Patricia Gilbert.

Les professeurs, Michael J. Corinthios

Michel Lemire

Page 3: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 3 -

Début de chaque session Au début de chaque session créez un dossier personnel sur le disque u :

Ouvrir Matlab. Sélectionnez votre dossier personnel que vous venez de créer sur le disque

u : comme l’adresse de destination. Ainsi tout script que vous créerez sera sauvé sur votre

dossier personnel. Simulink pourra ainsi accéder les données sur le WorkSpace générées

par vos programmes de Matlab.

Page 4: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 4 -

1. INTRODUCTION À MATLAB

MATLAB est un logiciel interactif permettant d’effectuer des calculs numériques complexes

particulièrement utiles dans le domaine de l’ingénierie. Disponible sur de gros systèmes, il fut

adapté pour l’ordinateur personnel muni d’un coprocesseur mathématique permettant une grande

capacité de calcul.

Notez que MATLAB est un logiciel auto-documenté ; des informations relatives à une

commande donnée peuvent être obtenues à l’écran en composant help , suivi du nom de la

commande.

1.1 Matrices et vecteurs

Le logiciel MATLAB est conçu en fonction de la manipulation de matrices et de vecteurs (un

vecteur de longueur N est une matrice de dimension 1×N, c’est-à-dire comportant une ligne et N

colonnes). On génère une matrice en écrivant ses éléments entre crochets, chaque ligne étant

délimitée par un point-virgule. Par exemple, pour générer la matrice

1 2 34 5 67 8 9

A = ,

on compose : A=[1 2 3 ; 4 5 6 ; 7 8 9]

On obtiendra la transposée et le déterminant de la matrice A par les commandes B=A.’ (ou

B=A’) et C=det(A) respectivement.

Page 5: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 5 -

Il est possible d’extraire un élément ou un groupe d’éléments d’une matrice, par exemple : D = A(2,1)

E = A([1 2],[2 3])

F = A(:,2)

G = A(2,:)

La matrice D contiendra l’élément situé à l’intersection de la 2e ligne et de la 1ère colonne de A.

La matrice E contiendra l’intersection des lignes 1 et 2 et des colonnes 2 et 3 de A :

2 35 6

E =

La matrice F de dimension 3×1 sera formée de la 2e colonne de A (car le symbole «:» dans

A(:,2) désigne toutes les lignes), tandis que la matrice G de dimension 1×3 sera formée de la

2e ligne de A (car le symbole «:» dans A(2,:) désigne toutes les colonnes). Que contiendra la

matrice H après l’exécution de la commande suivante : H=A([3 1],:)

1.2 Génération automatique de matrices et de vecteurs

Pour générer un vecteur, la commande est : A=AI:I:AF, où AI est la valeur initiale, I est

l’incrément et AF est la valeur finale. Si I est omis, un incrément de 1 est pris par défaut.

Exemples : A=1:0.25:2 produit A=[1 1.25 1.5 1.75 2]

B=(1:50)*3 produit B=[3 6 9 … 147 150]

C=10:-1:5 produit C=[10 9 8 7 6 5]

Un vecteur peut être utilisé comme indice; par exemple, en utilisant B défini ci-dessus,

D=B(30:-1:20) produit D=[90 87 84 … 63 60]

30e élément de B

20e élément de B

Page 6: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 6 -

Il est à noter que le premier élément d'un vecteur est désigné par l'indice 1. Ainsi, la commande

D(1) retournera 90 comme réponse, tandis que D(0) donnera un message d'erreur. Un indice

ne peut pas être négatif.

Il est possible de générer des vecteurs dont la progression des éléments est logarithmique :

E=logspace(K1,K2,N). Après l’opération, E sera un vecteur dont les N éléments varient

selon une progression logarithmique entre 10K1 et 10K2. Lorsque le nombre d’éléments n’est pas

spécifié, 50 est pris par défaut.

Il existe un certain nombre de matrices prédéfinies dans MATLAB. Les plus courantes sont:

eye(n) la matrice identité n × n

ones(m,n) la matrice m × n dont tous les éléments valent 1

zeros(m,n) la matrice m × n dont tous les éléments valent 0

rand(m,n) une matrice m × n dont les éléments sont générés de manière aléatoire

Si m=n, il suffit de spécifier une seule valeur de dimension: ones(n) est la matrice carrée n × n

dont tous les éléments valent 1.

1.3 Opérations sur les matrices et les vecteurs

Dans MATLAB, les opérations mathématiques peuvent être effectuées sur des matrices ou

vecteurs entiers à l’aide d’une seule commande, sans boucle for…end. Par exemple, soit le

vecteur produit par la commande T=2*pi*[0:100]/100. On veut évaluer le sinus et le

cosinus de chaque élément de T : R=sin(T) et S=cos(T) nous donne les vecteurs R et S

contenant les résultats désirés. Pour obtenir la somme des deux vecteurs : A=R+S, le produit

point à point : B=R.*S, le carré des éléments de R : C=R.^2 ou C=R.*R.

Notes : Tous les résultats des calculs effectués sont affichés à l’écran; en ajoutant un point-

virgule à la fin d’une commande, on annule l’affichage automatique du résultat. Pour faire

apparaître une valeur à l’écran, il suffit de composer son nom seul.

Page 7: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 7 -

Une multiplication de matrices sera réalisée par la commande A=B*C, où B et C sont les

matrices à multiplier. Après l’opération, le résultat sera dans A.

Attention : Il ne faut pas confondre les commandes B*C et B.*C. La première est la

multiplication matricielle de B et C dont les dimensions doivent être compatibles (par exemple,

M×N et N×P respectivement). La deuxième est la multiplication point à point des matrices B et

C dont les dimensions doivent être identiques. Exemple: Soient A=[1 2 3], B=[2 2 2] et

C=[2;2;2]. On a alors : A.*B qui donne [ 2 4 6 ]

A*C qui donne [ 12 ]

A*B qui est une commande impossible à réaliser (un message d’erreur apparaîtra)

1.4 Nombres complexes

MATLAB offre la possibilité de travailler avec des nombres complexes; il s’agit simplement de

définir les variables en conséquence. Exemples : z=sqrt(-1)

z1=5+2*z

z2=exp(-z*pi/4)

Dans MATLAB, les variables i et j sont initialement définies comme (-1)1/2 ; cette définition est

évidemment annulée lorsque ces variables sont redéfinies autrement. Certaines commandes ont

été spécialement conçues pour manipuler des nombres complexes:

real(z1) retourne la partie réelle

imag(z1) retourne la partie imaginaire

abs(z1) calcule le module

angle(z1) calcule la phase

conj(z1) génère le conjugué

Page 8: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 8 -

1.5 Affichage graphique

Forme : plot(X,Y), où X et Y sont des vecteurs de même longueur. Cette commande trace à

l’écran Y en fonction de X. Par défaut, les points seront reliés entre eux; on peut toutefois choisir

d’afficher uniquement les points : plot(X,Y,’o’) (d’autres caractères sont possibles comme

´x´, ´.´, ´*´ et ´ +´). Si X est omis, alors les éléments de Y seront tracés en fonction de leur rang

dans le vecteur.

Plusieurs courbes peuvent être affichées sur le même graphique de la façon suivante :

plot(X1,Y1,X2,Y2,X3,Y3).

stem(X,Y) affiche des signaux a temps discret.

Pour une échelle logarithmique, on utilisera les commandes semilogx(X,Y),

semilogy(X,Y) ou loglog(X,Y).

Pour l’affichage d’un titre et l’identification des axes, on utilise les commandes suivantes :

« title(’Ceci est le titre affiché’) », « xlabel(’identification de

l’’axe x’) » et « ylabel(’axe y’) ». La commande « grid » trace des lignes de

référence sur le graphique. La commande « axis » permet de fixer les bornes des abscisses et

ordonnées du graphique. Voici un exemple utilisant les vecteurs T, R, S et A définis dans le

premier exemple de la section 1.3 : plot(T,R,’o’,T,S,’x’,T,A) grid title(’Somme de deux sinusoïdes’) xlabel(’Temps (seconde)’) ylabel(’Amplitude (volt)’) axis([0 0,01 -1.5 1.5])

Page 9: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 9 -

1.6 Programmation de fonctions

Bien que chaque commande puisse être entrée directement au clavier, il est souvent utile de

grouper un ensemble de commandes à exécuter qui sera identifié par un seul nom et qui pourra

être conservé et édité à volonté. Ceci est possible en plaçant les instructions dans un fichier dont

le nom se termine par « .m ».

Exemple : on crée un fichier nommé graphe.m comprenant les lignes suivantes : % COMMANDE GRAPHIQUE plot(X,Y) grid % AFFICHAGE DU TITRE title(’RÉSULTATS’) % IDENTIFICATION DES AXES xlabel(’TEMPS (SEC)’) ylabel(’AMPLITUDE’)

À chaque fois que graphe sera appelé du clavier ou d’un autre fichier, la courbe de Y en fonction

de X sera tracée à l’écran avec affichage du titre et identification des axes (on suppose ici que les

vecteurs X et Y ont été préalablement définis avant l’appel de graphe).

Il est possible également de créer vos propres fonctions MATLAB auxquelles on doit transmettre

un ou plusieurs paramètres. Exemple : on crée un fichier nommé sa.m comprenant les lignes

suivantes : function Y=sa(X) if X==0 Y=1 else Y=sin(X)/X; end

À chaque fois que l’on demandera sa(V), on obtiendra l’évaluation de sin(V)/V. Avant

l’exécution de la fonction, la valeur du paramètre transmis est placée dans X; le résultat retourné

est la valeur de Y après que toutes les commandes aient été exécutées.

Page 10: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 10 -

Notez que les variables d’une fonction de type « function » sont indépendantes des autres

variables, ce qui n’est pas le cas lorsque le fichier ne débute pas par « function ».

Une fonction peut retourner plusieurs résultats. Par exemple : function [X,Y,Z]=calcul(A,B,C,D) X=A+B+C+D Y=A*B*C*D Z=A*B+C*D Les fichiers .m peuvent être crées à l’aide de l’éditeur de votre choix (qui peut être celui de Matlab).

1.7 Exercices suggérés

Exercice 1

a) Générez la matrice 1 2 34 5 6 .7 8 9

A =

b) Générez la transposée de A.

c) Trouvez le déterminant de A.

d) Générez un vecteur contenant uniquement la 2e ligne de A en composant A(2,:).

Exercice 2

a) Générez les vecteurs ( )0 1 2 3 20a = et ( )0 5 10 100b = .

b) Vérifiez si la longueur du vecteur a est la même que la longueur du vecteur b en utilisant

la commande « size ».

c) Évaluez /10nans b e−= où an et bn sont les éléments de a et b.

Page 11: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 11 -

Exercice 3

a) Soit le vecteur a défini par

[ ]3 4 5 9 3 4 5 9 3 4 5 9 3 4 5 9= + + − − − − − − − + − +a i i i i i i i i

b) Générez le vecteur m contenant les modules des éléments du vecteur a à l’aide la

commande « abs ».

c) Générez le vecteur p contenant les phases des éléments du vecteur a à l’aide la

commande « angle ».

d) Trouvez le conjugué de a à l’aide de la commande « conj ».

Exercice 4

Modifiez la fonction sa.m décrite à la section 1.6 de façon à ce qu’elle puisse être appliquée à un

vecteur plutôt qu’à une seule valeur.

1.8 Liste des commandes utilisées le plus fréquemment

Voici une courte liste des instructions utiles pour le cours, accompagnées d'une brève

description. Pour savoir comment utiliser ces fonctions, se référer à l'aide de MATLAB, par

exemple en tapant « help (nom de la commande) ».

Commandes générales

clear Efface les variables gardées en mémoire

save Enregistre les variables pour utilisation future

who Affiche le nom des variables

whos Affiche le nom, le type et les dimensions des variables

load Permet de lire des variables préalablement enregistrées

Page 12: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 12 -

Fonctions mathématiques

sin Évalue le sinus

sinh Évalue le sinus hyperbolique

exp Évalue l'exponentielle

log Évalue le logarithme naturel

log10 Évalue le logarithme en base 10

sqrt Évalue la racine carrée

mod Retourne le modulo

Matrices particulières

eye Crée une matrice identité

ones Crée une matrice dont tous les éléments valent 1

zeros Crée une matrice dont tous les éléments valent 0

rand Crée une matrice dont les éléments sont générés de manière aléatoire

logspace Génère un vecteur dont les éléments suivent une progression logarithmique

Manipulations de matrices

' Effectue la transposée conjuguée

.' Effectue la transposée (non conjuguée)

det Évalue le déterminant d’une matrice carrée

inv Évalue l'inverse d’une matrice carrée

size Affiche les dimensions d’une matrice

length Donne la longueur d’un vecteur

Manipulation de nombres

lcm Détermine le plus petit commun multiple

gcd Détermine le plus grand commun diviseur

fix Arrondit en conservant uniquement la partie entière

ceil Arrondit vers le plus gros entier suivant

Page 13: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 13 -

Manipulations de nombres complexes

real Retourne la partie réelle d'un nombre complexe

imag Retourne la partie imaginaire d'un nombre complexe

abs Évalue le module d'un nombre complexe

angle Évalue la phase d'un nombre complexe

conj Génère le conjugué d'un nombre complexe

Transformées

fourier Évalue la transformée de Fourier

ifourier Évalue la transformée inverse de Fourier

fft Évalue la transformée discrète de Fourier

ifft Évalue la transformée discrète inverse de Fourier

laplace Évalue la transformée de Laplace

ilaplace Évalue la transformée inverse de Laplace

ztrans Évalue la transformée en z

iztrans Évalue la transformée inverse en z

fftshift Inverse les deux moitiés de courbes obtenues suite au calcul de la fft

Convolution et corrélation conv Réalise la convolution de deux signaux

conv2 Réalise la convolution en deux dimensions de deux signaux

xcorr Réalise l’inter-corrélation de deux signaux, ou l'auto-corrélation d'un seul signal

xcorr2 Réalise la corrélation en deux dimensions de deux signaux

Filtres

filter Filtre les données qui lui sont fournies selon le type de filtre qui a été décrit

freqz Retourne la réponse en fréquence complexe d'un filtre numérique

freqs Retourne la réponse en fréquence complexe d'un filtre analogique

invfreqs Retourne les coefficients du numérateur et du dénominateur de la fonction de transfert du filtre

analogique ayant la réponse en fréquence voulue

invfreqz Retourne les coefficients du numérateur et du dénominateur de la fonction de transfert du filtre

numérique ayant la réponse en fréquence voulue

Page 14: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 14 -

fdatool synthèse de filtres

Statistiques

std Évalue l'écart-type

var Évalue la variance

mean Évalue la valeur moyenne

median Identifie la valeur médiane

max Identifie le plus grand élément

min Identifie le plus petit élément

Polynômes

roots Trouve les racines d'un polynôme

poly Retourne les coefficients du polynôme associé aux racines spécifiées

pzmap Affichage des pôles et zéros.

tf fonction de transfert

tfdata(sys,’v’) données de la fonction de transfert

Page 15: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 15 -

2. INTRODUCTION À SIMULINK

2.1 Simulation à l'aide de Simulink

Simulink est un outil de MATLAB qui permet de remplacer les équations mathématiques entre

certaines variables par des blocs organisés en un schéma. Pour ouvrir Simulink, cliquez sur

l'icône présent dans la fenêtre principale de MATLAB. Une boîte de dialogue contenant la

liste des librairies (semblable à celle de la figure 1) apparaît à l’écran.

La partie gauche de la boîte de dialogue montre les librairies, tandis que la portion droite

présente les blocs disponibles dans la librairie sélectionnée. Une courte description du bloc

sélectionné est affichée dans le haut de la fenêtre. Ce sont ces blocs qui servent à la création des

diagrammes, ou schémas-blocs.

Création des schémas-blocs

Les schémas-blocs doivent être créés dans un fichier Simulink distinct, de type « .mdl ». Pour

créer un nouveau fichier de travail Simulink : faire File, New, Model ou cliquer sur l'icône

Pour ouvrir un ancien fichier : faire File, Open ou cliquer sur l'icône

Pour insérer un bloc dans un fichier, il faut cliquer sur le bloc désiré puis le faire glisser jusqu'à

l'endroit approprié dans le fichier de travail, en maintenant le bouton gauche de la souris enfoncé.

Relâchez le bouton de la souris lorsque le bloc est placé à l'endroit voulu. On peut rechercher un

bloc de la liste en tapant une partie de son nom dans la case blanche apparaissant en haut de la

librairie, puis en appuyant sur RETOUR.

Page 16: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 16 -

Figure 1 - Liste des librairies de Simulink

Page 17: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 17 -

Une fois les blocs insérés dans le fichier, il faut les relier. Pour relier des blocs entre eux, cliquez

sur le « triangle » apparaissant sur le premier bloc, maintenez le bouton gauche de la souris

enfoncé et faites glisser le curseur jusqu'au « triangle » du second bloc. Si le lien est réalisé

adéquatement, une flèche pleine devrait apparaître. Si le trait symbolisant le lien n'est pas un

trait plein ou s'il comporte une double flèche en son centre, c'est que le lien n'a pas été réalisé

correctement. Il faut donc supprimer le trait et recommencer.

Certaines versions de Simulink offrent un raccourci pour relier deux blocs, il s’agit de :

- cliquer sur le premier bloc,

- maintenir la touche CTRL enfoncée,

- cliquer sur le second bloc à raccorder.

Cette méthode crée automatiquement le trait. Le sens du lien ainsi créé dépend de l'ordre dans

lequel les blocs ont été sélectionnés.

Ajustement des paramètres des blocs

Une fois les blocs insérés dans le fichier, leurs paramètres doivent être ajustés. Ceci se fait en

double-cliquant sur un bloc. Une fenêtre de dialogue apparaît, dans laquelle on insère les valeurs

appropriées.

Il faut porter une attention particulière au bloc « Time Scope » (voir figure 2). Celui-ci permet

de visualiser les courbes résultant de la simulation et aussi d'enregistrer ces données pour qu'elles

soient récupérées dans MATLAB. Voici les ajustements à faire :

- double-cliquer sur le bloc « Time Scope ». Une fenêtre s'ouvre (voir figure 3 / c'est là que

seront affichées les courbes suite à la simulation),

- cliquer sur l'icône Parametrs:

- aller dans l'onglet Data History (voir figure 4a),

- sélectionner Save data to workspace,

- au besoin, modifier le nom de variable « ScopeData » pour le nom voulu,

- choisir le format Array.

Page 18: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 18 -

Figure 2 - Bloc « Time Scope » Figure 3 - Fenêtre du « Time Scope »

(a) (b)

Figure 4 - Les deux onglets permettant d'ajuster les paramètres du « Time Scope »

L'oscilloscope ( « Time Scope » ) ne conserve que les dernières données de la simulation. Il est

possible de fixer le nombre de points conservés en l'indiquant à la suite de la mention Limit data

Page 19: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 19 -

points to last de la fenêtre Data History (figure 4a). Par défaut, le nombre de points est fixé à

5000, ce qui s'avère généralement adéquat.

Notez qu'il est possible d'avoir plusieurs entrées dans le bloc « Time Scope ». Pour ce faire, il

s’agit de :

- double-cliquer sur ce bloc,

- cliquer sur le bouton Properties, dans le haut de la fenêtre ayant apparu,

- sous l'onglet General, changer le nombre d'axes spécifiés (voir figure 4b).

Ajustement des paramètres de la simulation

Après avoir créé le schéma à exécuter, cliquez sur Simulation du menu dans le haut de la fenêtre

où se trouve le schéma, puis sélectionnez Normal. Ensuite, toujours dans Simulation, il faut :

- cliquer sur Simulation Parameters,

- aller dans l'onglet Solver,

- définir les temps de début et de fin de simulation (par défaut, ces temps sont 0s et 10s

respectivement),

- choisir le mode de simulation: Type « Fixed-Step ».

Enfin, lorsque les paramètres sont entrés, la simulation peut être amorcée de la façon suivante: - cliquer sur l'icône

- ou aller dans l'item Simulation du menu et faire Start.

Le temps de simulation apparaît dans la case en bas du fichier.

2.2 Récupération des données

Pour récupérer les données générées par la simulation, il faut insérer dans le schéma un bloc

provenant de la librairie Simulink, Sinks. Les deux blocs les plus utilisés sont le «Time Scope» et

« To Workspace ». Ce dernier enregistre les données dans MATLAB mais ne les affiche pas,

Page 20: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 20 -

contrairement à l'oscilloscope. Les ajustements de l'oscilloscope ont été décrits à la section

précédente. Pour le bloc « To Workspace », il faut suivre les étapes suivantes (avant l'exécution

de la simulation):

- double-cliquer sur le bloc,

- donner le nom de variable voulu,

- fixer le nombre de points à conserver (Limit data points to last),

- enregistrer le format à Array.

Une fois la simulation exécutée, on sauve les données dans des variables en écrivant dans la

fenêtre de commande MATLAB ou encore dans le M-File les commandes suivantes:

t=ScopeData(:,1)

y=ScopeData(:,2)

Le nom ScopeData doit être remplacé par le nom de variable que l'on a choisi lorsque l'on a

ajusté les paramètres de l'oscilloscope ou du bloc « To Workspace ». Les données de la première

colonne de cette variable correspondent au temps où ont été prélevés les échantillons, tandis que

les valeurs de la deuxième colonne sont les résultats eux-mêmes.

Page 21: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 21 -

3. TRAVAIL À RÉALISER AU LABORATOIRE

OBJECTIF

Le but de ce travail est de se familiariser avec la technique de « drag and drop » de Simulink en évaluant la réponse impulsionnelle d’un système linéaire (filtre) et en simulant le filtrage d’un signal. INTRODUCTION

La réponse impulsionnelle ( )h t d’un système linéaire est la sortie du système si l’entrée est l’impulsion de Dirac ( )tδ . Dans ce travail vous devrez évaluer la réponse impulsionnelle d’un système linéaire et l’afficher graphiquement. La fonction de transfert d’un système de quatrième ordre vous sera précisée au laboratoire. Vous devrez également évaluer la réponse à l’échelon d’un système. Vous aurez l’occasion d’observer les différentes réponses obtenues selon la position des pôles du système. La dernière partie du travail traite du filtrage d’un signal. Le but est d’observer la sortie d’un filtre du quatrième ordre, comme par exemple un filtre Butterworth ou Chebychev, dont l’entrée est un signal tel qu’une onde carrée périodique. PREMIÈRE PARTIE : RÉPONSE IMPULSIONNELLE D’UN SYSTÈME D’ORDRE 4

1. Ouvrir Matlab. 2. Cliquer sur le symbole coloré « Simulink » ou dans la fenêtre « Command Window » de

Matlab taper : simulink. 3. Dans la fenêtre « Simulink Library Browser », cliquer sur « file-new ». 4. Dans la « Library », choisir « Continuous ». Tirer la boîte « Transfer function » et la déposer

sur le nouveau document simulink.

Page 22: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 22 -

5. Programmer cette boîte en double cliquant et en spécifiant les paramètres de la fonction de transfert qui vous sera précisée au laboratoire. Exemple de fonction de transfert :

( ) 4 3 21.197 1.717 1.025 0.379KH s

s s s s=

+ + + +

où K est un constant ; par exemple 1K = . 6. Choisir la source d’entrée en cliquant sur « Sources » et transportant la boîte d’échelon

(Step). 7. Vu que le but est d’évaluer la réponse impulsionnelle plutôt que la réponse à l’échelon et vu

que les transformée de Laplace de δ (t) et u(t) sont :

( ) 1tδ ←→

( ) 1u ts

←→

il faudra annuler le pôle introduit par l’échelon. Vous pouvez effectuer ceci en multipliant ( )H s par s, et ainsi annuler le pôle de ( )u t par ce zéro. Vous devrez ainsi double-cliquer sur

la boîte « Transfer function » et programmer le numérateur par la vecteur [K 0]. 8. Pour observer la réponse à l’échelon du système, il faudra relier l’échelon à l’entrée de la

fonction de transfert sans oublier de brancher une boîte « Scope » (de la librairie « Sink » de « Simulink ») à la sortie de la fonction de transfert.

9. Cliquer sur la flèche noire « Start simulation ». 10. Double-cliquer sur « Scope » pour voir la réponse du système. 11. Pour prolonger la durée de la simulation, cliquer sur « Simulation - Simulation parameters ».

Augmenter « Stop Time » à 40, par exemple. 12. Préparer les éléments du rapport à remettre :

a) les paramètres de la fonction de transfert tels qu’observés en double-cliquant sur la boîte

« Transfer Function »,

b) la sortie du Scope.

c) Imprimer un plot par Matlab de la sortie a partir des données sur Workspace, qui contient

le titre du graphique et les identifications des deux axes.

Page 23: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 23 -

DEUXIÈME PARTIE : RÉPONSE À L’ÉCHELON D’UN SYSTÈME

Voir le livre Sec. 5.10 page 249

Un système du deuxiem ordre est decrit en general par la fonction de transfert

( ) ( )( )2 20 0

2 20 0 1 22

H ss s s p s p

ω ωω ς ω

= =+ + − −

Ayant des pôles 1p et 2p qui peuvent être réels, complexes ou double :

20 0

20 0

1 2

0

0

1, 1

1 , 0 1,, 1, 0

jp p

j

ω ς ω ς ς

ω ς ω ς ςω ς ςω ς

− ± − >− ± − < <=

− = ± =

Voir les pôles et leurs positions selon la valeur du facteur d’amortissement ς a la Fig. 5.25 page

250 du livre. La réponse a l’échelon du système dépend sans doute du facteur d’amortissement ς

et est illustre a la Fig. 5.26 du livre. Notre but est de reproduire ici la réponse a l’échelon d’un tel

système.

Soit 0 1ω =

Évaluer la réponse à l’échelon en programmant la boîte « Transfer function » par qu’elle soit

égale a cette valeur ( )H s pour les trois cas de positions des pôles suivants. Évaluer et dessiner

les pôles dans le plan s et la réponse à l’échelon pour chacun des cas suivant :

1. Le cas 0.5ς = . 2. Le cas 1ς = .

3. Le cas 2ς = .

4. Quelle est la valeur de la réponse en régime permanent, c'est-à-dire, quand t →∞ ?

5. Préparer les éléments du rapport à remettre (pour chacun des trois cas) :

a) les paramètres de la fonction de transfert tels qu’observés en double-cliquant sur la boîte

« Transfer Function »,

b) la sortie du Scope.

Page 24: SÉANCE #1 (TP0) INTRODUCTION À MATLAB ET SIMULINK · École polytechnique de montrÉal . dÉpartement de gÉnie Électrique . hiver 2016 . cours ele2700 . analyse des signaux .

ELE2700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 TP0

- 24 -

TROISIÈME PARTIE : FILTRAGE D’UN SIGNAL

1. Programmer une boîte « Transfer function » pour simuler le filtre du premier ordre :

( ) 11

H ss

=+

2. Transporter une source « Pulse Generator » de la bibliothèque de Simulink pour produire le signal qui sera appliqué à l’entrée au système.

3. Observer la sortie du système sur un « Scope ».

4. Ajuster la période T du générateur d’impulsions à 20 secondes et observer la sortie.

Remarquer le croissement relativement lent de l’onde causé par la coupure des hautes fréquences qu’introduit le filtre. Réduire T pour accélérer progressivement le peigne d’impulsions, et observer et noter l’effet sur la sortie. Imprimer la sortie pour les deux cas

20T = et 2T = sec et afficher la valeur de T sur chaque graphique Evaluer la fréquence fondamentale dans chaque cas, et la fréquence de coupure du filtre. En comparant la fréquence fondamentale dans chaque cas avec la fréquence de coupure du filtre justifier la sortie observée.

5. Remplacer le filtre du premier ordre par le filtre Butterworth :

( ) 4 3 2

12.613 3.414 2.613 1

H ss s s s

=+ + + +

(1)

6. Ajuster la période T du générateur d’impulsions pour que la sortie du système soit assez semblable à son entrée sauf pour un léger dépassement (‘overshoot’). Imprimer le résultat. Indiquer la valeur T .

7. Réduire successivement la période de l’entrée et observer l’effet sur la sortie. Ajuster la

période T pour que la sortie du système soit simplement le d-c de l’entrée, à part de quelques petites ondulations. Indiquer la valeur de T . Imprimer le résultat.

8. Effectuer une dé-normalisation pour obtenir ( )denormH s en remplaçant s par /1000s dans

( )H s . Ecrire la valeur de ( )denormH s . Afficher par pzmap de Matlab et imprimer les pôles

de ( )denormH s . Répéter les points 6 et 7. 9. Ecrire et soumettez votre rapport.