23
ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE ÉLECTRIQUE HIVER 2005 COURS ELE3700 ANALYSE DES SIGNAUX SÉANCE #1 INTRODUCTION À MATLAB ET SIMULINK section #1 section #2 28 janvier 21 janvier 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.

COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

ÉCOLE POLYTECHNIQUE DE MONTRÉAL

DÉPARTEMENT DE GÉNIE ÉLECTRIQUE

HIVER 2005

COURS ELE3700 ANALYSE DES SIGNAUX

SÉANCE #1

INTRODUCTION À MATLAB ET SIMULINK

section #1 section #2 28 janvier 21 janvier

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.

Page 2: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 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é par Michael J. Corinthios et Michel Lemire

avec la précieuse collaboration de Patricia Gilbert

Page 3: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 3 -

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.’ et

C=det(A) respectivement.

Page 4: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 4 -

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 5: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 5 -

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 6: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 6 -

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 7: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 7 -

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).

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 8: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 8 -

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 9: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 9 -

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 = L et ( )0 5 10 100b = L .

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 10: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 10 -

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 11: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 11 -

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 12: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 12 -

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 13: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 13 -

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

Page 14: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 14 -

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 15: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 15 -

Figure 1 - Liste des librairies de Simulink

Page 16: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 16 -

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 Properties:

- 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 17: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 17 -

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 18: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 18 -

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 19: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 19 -

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 20: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 20 -

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 Butterworth 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. 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 :

Page 21: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 21 -

( ) 4 3 2

11.197 1.717 1.025 0.379

H ss s s s

=+ + + +

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 :

( ) 1Ltδ ←⎯→

( ) 1Lu 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 [1 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.

Page 22: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 22 -

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

1. Refaire les étapes 3 et 4 de la première partie, mais en remplaçant la boîte « Transfer function » par deux de ces boîtes connectées en parallèle et dont les sorties sont additionnées par un sommateur (tiré de la librairie de Simulink : Mat-Sum).

2. Programmer les deux fonctions de transfert pour obtenir la fonction :

( )1 2

1 1H ss p s p

= +− −

pour chacun des trois cas suivants :

• 1p et 2p sont réels, par exemple, 1 21, 3p p= − = − , • 1 2p p= , par exemple, 1 2 1p p= = − , • 1p et 2p sont complexes conjugués, par exemple, 1 20.2 , 0.2p j p j= − + = − − .

À noter que pour le cas 2 1p p∗= , il faudra remplacer les deux boîtes par une seule dont la fonction de transfert est :

( ) 1 1H ss p s p∗= +

− −[ ]

[ ] 2

2 2Re2 Res p

s p s p−

=− +

Avec p jα β= + où 0.2 et 1= − =α β , nous avons :

( ) ( ) 22 2

2 2 2 0.40.4 1.042

s sH ss ss s

αα α β

− += =+ +− + +

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

4. 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 23: COURS ELE3700 ANALYSE DES SIGNAUX - GR2Mgoussard/ELE2700/travaux/labos/...ELE3700 – ANALYSE DES SIGNAUX / TRAVAUX PRATIQUES / SÉANCE #1 - 5 - Il est à noter que le premier élément

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

- 23 -

TROISIÈME PARTIE : FILTRAGE D’UN SIGNAL

1. Programmer une boîte « Transfer function » pour simuler le filtre Butterworth suivant :

( ) 4 3 2

12.613 3.414 2.613 1

H ss s s s

=+ + + +

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 ». Remarquer le lissage qu’introduit le filtre. 4. Ajuster la période du générateur d’impulsions pour que la sortie du système soit assez

semblable à son entrée sauf pour un léger lissage. Imprimer le résultat. 5. Réduire successivement la période de l’entrée et observer l’effet sur la sortie. Continuer

jusqu’au cas où la sortie n’a presque pas d’oscillation. Imprimer le résultat. 6. Observer la valeur finale de la sortie. Le filtre ayant admis uniquement les basses fréquences,

expliquer la raison de la valeur finale de la sortie observée. 7. 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 à l’étape 4 (indiquer la période du générateur d’impulsions),

c) la sortie du Scope à l’étape 5 (indiquer la période du générateur d’impulsions),

d) l’explication demandée à l’étape 6.