Vous êtes sur la page 1sur 27

UNIVERSITE SULTAN MOULAY SLIMANE

FACULTE DES SCIENCES ET TECHNIQUES


DEPARTEMENT DE GENIE ELECTRIQUE

FILIERE INGENIEUR
EEI 2016-2017

TRAVAUX PRATIQUE
SIGNAUX ET SYSTEMES

H.AISSAOUI

S & S EEA 2017


SOMMAIRE

SOMMAIRE
Introduction l'utilisation du logiciel Matlab......................................................................................3
0.0 Introduction................................................................................................................................3
1.1 Accs MATLAB......................................................................................................................3
1.2 Prise en main du logiciel MATLAB..........................................................................................4
1.2.1 Dclaration par une liste explicite des lments.....................................................................4
1.2.2 Par utilisation des fonctions et oprateurs offerts par Matlab.................................................4
1.2.3 Aide sur quelques fonctions utiles de Matlab.........................................................................5
Commandes gnrales............................................................................................................6
Fonctions mathmatiques..................................................................................................6
Matrices particulires.........................................................................................................6
Manipulations de matrices.................................................................................................6
Manipulation de nombres..................................................................................................7
Manipulations de nombres complexes...............................................................................7
Transformes.....................................................................................................................7
Convolution et corrlation.................................................................................................8
Filtres.................................................................................................................................8
Statistiques.........................................................................................................................8
Polynmes.........................................................................................................................8
Liste de commande avec des exemples.............................................................................9
1.3 Graphique sous matlab.............................................................................................................13
1.4 Fichiers de programmes...........................................................................................................14
1.5 Fonctions function.................................................................................................................15
1.7 Lecture de donnes..................................................................................................................16
1.8 Exemples d'applications...........................................................................................................16
Introduction Simulink......................................................................................................................18
2.1 Introduction Simulink...........................................................................................................18
Fig 2.2 Module simulink......................................................................................................19
2.2 Paramtres de simulation.........................................................................................................20
2.3 Paramtres des oscilloscopes...................................................................................................21
2.4 Rcupration de donnes.........................................................................................................22
OBJECTIF.....................................................................................................................................22
INTRODUCTION.........................................................................................................................22
PREMIRE PARTIE : RPONSE IMPULSIONNELLE DUN SYSTME DORDRE 4.........23
DEUXIME PARTIE : RPONSE LCHELON DUN SYSTME......................................24
Avec o , nous avons :........................................................................................................................24
3.Quelle est a valeur de la rponse en rgime permanent, c'est--dire, quand ?...............................24
TROISIME PARTIE : FILTRAGE DUN SIGNAL...................................................................25

S & S EEA 2017


Introduction l'utilisation du logiciel Matlab

0.0 Introduction

MATLAB est un logiciel interactif permettant deffectuer des calculs numriques complexes
particulirement utiles dans le domaine de lingnierie. Disponible sur de gros systmes, il fut
adapt pour lordinateur personnel muni dun coprocesseur mathmatique permettant une grande
capacit de calcul. Il est utilis en programmation scientifique, pour le calcul numrique et la
visualisation graphique, bas sur la reprsentation matricielle des donnes. Le nom est driv de
cette reprsentation MATLAB = MATrix LABoratory.

Ce logiciel travaille sur des matrices relles ou complexes. Par consquent, afin de l'utiliser
conformment, il est indispensable de garder toujours prsent l'esprit que toute variable ou
paramtre est systmatiquement considr comme une matrice (ou ses cas particuliers: vecteurs
ligne, vecteurs colonne et scalaire.

1.1 Accs MATLAB

MATLAB tant disponible sur diffrentes plates formes matrielles, on accde au logiciel en
lanant l'excutable matlab suivant la procdure habituelle de l'environnement concern.

Figure 1.1 Fentre de commande de Matlab

On se retrouve alors d ans un environnement dit fentre de commande dans lequel on peut crire des
commandes ou excuter des fonctions. La sortie du logiciel s'effectue en tapant quit ou exit.

Sur les systmes qui permettent le multi-fentrage, on peut travailler sous MATLAB dans une
fentre et conserver son diteur de texte dans une autre afin de modifier simplement les fonctions
mettre au point.

S & S EEA 2017


Notez que MATLAB est un logiciel auto-document; des informations relatives une commande
donne peuvent tre obtenues lcran en composant help, suivi du nom de la commande ou
seulement help pour avoir la liste des commandes de Matlab. Il y a aussi la possibilit dobtenir
laide en ligne sur le cite de Mathworks www.mathworks.com ou vous pouvez trouver toutes les
nouveauts de Matlab.

1.2 Prise en main du logiciel MATLAB

Matlab est un logiciel qui travaille sur des matrices relles ou complexes. Par consquent, afin de
l'utiliser conformment, il est indispensable de garder toujours prsent l'esprit que toute variable
ou paramtre est systmatiquement considr comme une matrice (ou un de ses cas particuliers:
vecteurs ligne, vecteurs colonne et scalaire.

1.2.1 Dclaration par une liste explicite des lments

Vrifiez les galits suivantes: (pour ces premiers exemples, rester dans la fentre de commande
Matlab et crire aprs l'invite >>)

A = [ 1 2 3 4 5 6 ]= [1,2,3,4,5,6]= [1:1:6] = [1;2;3;4;5;6]

B = [1 2 3;4 5 6;7 8 9]

Rq : L'indexation des lments d'un tableau commence toujours 1.

1.2.2 Par utilisation des fonctions et oprateurs offerts par Matlab

Utiliser (liste non exhaustive)

ones(3,4) ones(1,4)

zeros(3,4) randn(4,5)

Avec ces quelques commandes, vous venez de construire un certain nombre de variables. Matlab
vous donne la possibilit de lister ces variables. Pour cela, utilisez la commande who ou la
commande whos. Vous pouvez ensuite dtruire ces variables. Vrifiez l'effet de who, de clear et
puis de clear all.

Des oprateurs matriciels sont dfinis dans Matlab. Afin de vous familiariser avec ceux ci, traitez
l'exemple suivant :

soient deux vecteurs ligne a = [10:-1:1] et ones(1,10).

S & S EEA 2017


Vous pouvez extraire une matrice d'une autre matrice; essayez par exemple, aprs avoir crer
la matrice A, la commande A[5:10, 2:4].

Construisez maintenant un vecteur ligne complexe a+j*b. Appliquez ce dernier l'oprateur


" ' " puis recommencez avec l'oprateur " .' "

Il existe une aide "en ligne" que vous pouvez appeler grce Help, dans la barre de menu.
Vous accder alors une table de matire (table of contents) et un index. Appelez la table des
matires: une liste de rpertoires vous est alors propose. Slectionnez, l'aide de la souris, le
rpertoire ops et observer sont contenu.

1.2.3 Aide sur quelques fonctions utiles de Matlab

Oprations mathmatiques

Oprateurs sur les Matrices Oprateurs sur les Tableaux


+ addition + addition
- soustraction - soustraction

* multiplication .* multiplication
^ puissance .^ puissance
/ division droite ./ division droite
\ division gauche .\ division gauche
' transpose conjugu
.' transpose
- Remarque sur la multiplication

Si l'on veut multiplier un signal x par une fentre h, il suffit de taper :


y = x*h en vrifiant que x et h on bien la mme longueur. ATTENTION ! n'oubliez pas le point `.'
avant le `' car le signe `' effectue la multiplication matricielle, alors que `.' effectue la
multiplication terme terme. Ici aussi, il faut faire attention que les deux vecteurs aient la mme
taille et soient tous les deux lignes, ou tous les deux colonnes.

Oprateurs de relation

S & S EEA 2017


< infrieur
> suprieur
<= infrieur ou gal
>= suprieur ou gal
== gal
~= diffrent de
Liste des commandes utilises le plus frquemment

Voici une courte liste des instructions utiles pour les travaux pratiques, accompagnes d'une brve
description. Pour savoir comment utiliser ces fonctions, se rfrer l'aide de MATLAB, par
exemple en tapant help (nom de la commande) .

Commandes gnrales

clear Efface les variables gardes en mmoire

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 pralablement enregistres

Fonctions mathmatiques

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 carre

mod Retourne le modulo

Matrices particulires

eye Cre une matrice identit

ones Cre une matrice dont tous les lments valent 1

S & S EEA 2017


zeros Cre une matrice dont tous les lments valent 0

rand Cre une matrice dont les lments sont gnrs de manire alatoire

logspace Gnre un vecteur dont les lments suivent une progression logarithmique

Manipulations de matrices

' Effectue la transpose conjugue

.' Effectue la transpose (non conjugue)

det value le dterminant dune matrice carre

inv value l'inverse dune matrice carre

size Affiche les dimensions dune matrice

length Donne la longueur dun vecteur

Manipulation de nombres

lcm Dtermine le plus petit commun multiple

gcd Dtermine le plus grand commun diviseur

fix Arrondit en conservant uniquement la partie entire

ceil Arrondit vers le plus gros entier suivant

Manipulations de nombres complexes

real Retourne la partie relle 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 Gnre le conjugu d'un nombre complexe

Transformes

fourier value la transforme de Fourier

ifourier value la transforme inverse de Fourier

S & S EEA 2017


fft value la transforme discrte de Fourier

ifft value la transforme discrte inverse de Fourier

laplace value la transforme de Laplace

ilaplace value la transforme inverse de Laplace

ztrans value la transforme en z

iztrans value la transforme inverse en z

fftshift Inverse les deux moitis de courbes obtenues suite au calcul de la fft

Convolution et corrlation

conv Ralise la convolution de deux signaux

conv2 Ralise la convolution en deux dimensions de deux signaux

xcorr Ralise linter-corrlation de deux signaux, ou l'auto-corrlation d'un seul


signal

xcorr2 Ralise la corrlation en deux dimensions de deux signaux

Filtres

filter Filtre les donnes qui lui sont fournies selon le type de filtre qui a t dcrit

freqz Retourne la rponse en frquence complexe d'un filtre numrique

freqs Retourne la rponse en frquence complexe d'un filtre analogique

invfreqs Retourne les coefficients du numrateur et du dnominateur de la fonction de


transfert du filtre analogique ayant la rponse en frquence voulue

invfreqz Retourne les coefficients du numrateur et du dnominateur de la fonction de


transfert du filtre numrique ayant la rponse en frquence voulue

Statistiques

std value l'cart-type

var value la variance

mean value la valeur moyenne

S & S EEA 2017


median Identifie la valeur mdiane

max Identifie le plus grand lment

min Identifie le plus petit lment

Polynmes

roots Trouve les racines d'un polynme

poly Retourne les coefficients du polynme associ aux racines spcifies

demo permet de donner une dmonstration des possibilits que peut donner
MATLAB.

info donne des informations concernant MATLAB est ses toolboxs.

whatsnew affiche les fichiers Readme de MATLAB et ses ''toolboxs''.

help : donne un aide sur les fonctions spcifies.

Exp : help help.

Liste de commande avec des exemples

load permet de charger les fichiers de donnes.

Exp : load data.dat

save sauvegarde une variable dans un fichier.

Exp : save stock.dat x

delete efface le fichier spcifi.

Exp : delete stock.dat

type affiche le contenu dun fichier texte.

Exp : type data.dat

clear permet deffacer les variables spcifis de lespace mmoire.

Exp : clear x y z

who permet dafficher les variables de lespace mmoire.

roots permet de calculer les racines dun polynme.

Exp : a = [1 -1.2 0.35]; roots(a) = [0.5; 0.7];

S & S EEA 2017


conv calcul le produit entre deux polynmes.

Exp : a1 = [1 -0.5]; a2 = [ 1 -0.7]; conv(a1,a2) = [ 1 -1.2 0.35];

deconv calcul la division entre deux polynmes.

Exp : a1 = [1 -1.2 0.35]; a2 = [ 1 -0.7]; deconv(a1,a2) = [1 -0.5];

plot trace les courbes.

Exp : a = 1:100; plot(x);

axis dfinit les limites des axes des abscisses et des ordonnes.

Exp : xmin = 0; xmax = 100; ymin = -100; ymax = 100; axis([ xmin xmax ymin ymax]);

figure permet de visualiser les courbes dj traces.

Exp : figure(1);

clg permet deffacer les courbes traces.

clc permet deffacer lcran.

exit permet de quitter le logiciel MATLAB.

min cherche le minimum dun vecteur.

Exp : a = [1 4 3 10 9 0.5 2 6]; min(a) = 0.5;

max cherche le maximum dun vecteur.

Exp : a = [1 4 3 10 9 0.5 2 6]; max(a) = 10;

sum calcul la somme des lments dun vecteur.

Exp : a = [1 4 3 10 9 0.5 2 6]; sum(a) = 35.5;

prod calcul le produit des lments dun vecteur.

Exp : a = [1 4 3 10 9 0.5 2 6]; prod(a) = 6480;

Sort classe les lments dun vecteur dans lordre croissant.

Exp : a = [1 4 3 10 9 0.5 2 6]; sort(a) = [0.5 1 2 3 4 6 9 10];

rand gnre une matrice ou un vecteur de variables alatoires dont les valeurs sont comprises
entre 0 et 1. Distribution uniforme.

Exp : rand(1,1) = 0.4315;

S & S EEA 2017


randn gnre une matrice ou un vecteur de variables alatoires dont les valeurs sont comprises
entre 0 et 1. Distribution normale.

round arrondi une variable autour de lentier le plus proche.

Exp : a= 5.25 ; round(a) = 5;

eig calcul les valeurs propres dune matrice.

Exp : a = [2 5; 4 3]; eig(a) = [-2 7];

det calcul le dterminant dune matrice.

Exp : a = [2 5; 4 3]; det(a) = -14;

exp calcul lexponentiel dune variable.

Exp : a =1; exp(1) = 2.71;

expm calcul lexponentiel dune matrice.

Exp : a = [2 5; 4 3]; expm(a) = [7.38 148.41; 54,59 20.08];

eye gnre une matrice identit.

Exp : eye(2,2) = [1 0; 0 1];

zeros gnre une matrice dont les lments sont de valeurs nuls.

Exp : zeros(2,2) = [0 0; 0 0];

ones gnre une matrice dont les lments sont de valeurs gale un.

Exp : ones(2,2) = [1 1; 1 1];

inv calcul linverse dune matrice ou dune variable.

Exp : a =1 ; inv(a) = 1;

rem donne le reste dune division entre deux variables.

Exp : a =10 ; a2 = 4; rem(a1,a2) = 2;

real donne la partie rel dun complexe.

Exp : a = 4 + 3i ; real(a) = 4;

imag donne la partie imaginaire dun complexe.

Exp : a = 4 + 3i ; imag(a) = 3;

S & S EEA 2017


conj donne le conjugu dun complexe.

Exp : a = 4 + 3i ; Conj(a) = 4 - 3i;

abs calcul le module dun complexe.

Exp : a = 4 + 3i ; abs(a) = 5;

sqrt calcul la racine dune variable.

Exp : a = 4 ; sqrt(a) = 2;

sqrtm calcul les racine dune matrice.

Exp : a = [4 4; 4 4]; sqrtm(a) = [2 2; 2 2];

chdir permet de changer le rpertoire de travail.

Exp : chdir c:\dos

dir permet de lister les fichiers dans un rpertoire.

Exp : dir *.m

function permet de dclarer une fonction.

Exp : function mean = min (x); a = length (x); mean = sum (x)/a;

length donne la dimension dun vecteur.

Exp : a = [1 2 9]; length(a) = 3;

size donne la dimension dune matrice.

Exp : a = [1 4;5 9]; size(a) = [2 2];

logm calcul le logarithme nprien dune matrice.

Exp : a = [1 1;1 1]; logm(a) = [0 0; 0 0];

log calcul le logarithme nprien dune variable.

Exp : a = 1; log(a) = 0;

log10 calcul le logarithme dcimal dune variable.

Exp : a = 10; log10(a) = 1;

fmin calcul le minimum dune fonction une variable.

Exp : fmin('cos',3,4);

S & S EEA 2017


fzero calcul le zro dune fonction une variable.

Exp : fzero('sin',3);

Matlab permet, comme tout langage volu, d'crire des boucles l'aide d'instructions du type for,
while, mais ces instructions ne sont utiliser que lorsque l'criture matricielle ne permet pas de
rsoudre le problme (cas d'un problme itratif...), car la vectorisation des algorithmes rend les
programmes plus concis et rduit beaucoup leur temps d'excution.

La syntaxe est de la forme:

for compteur = dbut : pas : fin while relation

expression ; expression;

expression; end

end

Comparez, par exemple, les deux programmes suivants qui construisent le mme vecteur ligne.

a) b)

clear all clear all

i=0; t= [0:.01:20]

for t= 0:.01:20 y=sin(t);

i=i+1; plot(y)

y(i)=sin(t);

end
L'excution conditionnelle de programmes peut tre obtenue l'aide des instructions if, else et
elseif. Les programmes de boucle ainsi que les programmes excuts conditionnellement doivent se
terminer par l'instruction end.

La syntaxe est de la forme:

if relation if relation if relation Exemple

expression; expression; expression; for i=1:1:100

end else elseif relation if x(i)= = 0

expression; expression; x(i)= 1;

end else else

S & S EEA 2017


expression; x(i)= -1;

end end

end
1.3 Graphique sous matlab

MATLAB peut afficher des courbes planes, des courbes 3D, des surfaces mailles 3D ou des
surfaces facettes 3D. Les commandes respectives sont plot, plot3, mesh et surf.

Une commande plot suivante effacera le premier graphique pour tracer le nouveau dans la mme
fentre si la commande figure n'a pas t utilise entre temps. Cependant il est possible de tracer
des graphiques en surimpression l'aide de la commande hold on. Cette commande a pour effet de
conserver le graphe prsent avant de tracer le suivant. La commande hold off annule cette
possibilit.

MATLAB permet galement de tracer directement partir d'une fonction avec la commande fplot.
Soit la fonction sinus dfinie dans le fichier sinus.m par:

function y = sinus(x)

y = sin(x);

En excutant: fplot('sinus', [-pi pi]), on obtiendra le graphe.

Le graphe obtenu peut tre agrment d'un titre, de lgendes ou de texte. Les commandes MATLAB
correspondantes sont:

title('Ceci est le titre de la figure');

xlabel('Lgende des abscisses');

ylabel('Lgende des ordonnes');

gtext et text positionnement et criture dans la zone graphique.

Un graphe possde des attributs qui peuvent tre modifis l'aide de commandes, on consultera
l'aide de axis et plot.

S & S EEA 2017


Il est galement possible de tracer plusieurs graphes dans la mme fentre l'aide de la commande
subplot (voir aide). Enfin des reprsentations types sont obtenues l'aide des commandes polar,
bar, hist, etc...

La commande plot3 est identique la commande plot, elle ne fait appel qu' une coordonne
supplmentaire. La syntaxe de base est plot3(x,y,z). Les axes, titres et lgendes se traitent comme
dans le cas des courbes planes, la commande zlabel est disponible..

Supposons que l'on veuille reprsenter graphiquement la courbe y=sin(x) sur l'intervalle [-,] avec 200
points.

On excute alors les commandes suivantes :

x=-pi:pi/100:pi;

y=sin(x);

plot(x,y);

1.4 Fichiers de programmes

Pour ces premiers exemples, les instructions taient crites directement dans la fentre de
commande. Pour des programmes plus longs, il faut utiliser un diteur de texte. Vous utiliserez le
bloc-notes que vous pouvez ouvrir ds que vous slectionnez la commande new dans file de la barre
de menu. Vous pourrez aussi appeler un fichier existant avec la commande open et lancer
l'excution d'un programme avec Run Mfile.

Attention les fichiers ne pourront tre excuts que si leur nom possde l'extension.m. Vous pouvez
crire des programmes qui en appellent d'autres.

1.5 Fonctions function

Il est possible galement de crer vos propres fonctions MATLAB auxquelles on doit transmettre un
ou plusieurs paramtres. Exemple : on cre un fichier nomm sa.m comprenant les lignes
suivantes :

function Y=sa(X)

if X==0

Y=1

else

S & S EEA 2017


Y=sin(X)/X;

end

A chaque fois que lon demandera sa(V), on obtiendra lvaluation de sin(V)/V. Avant lexcution
de la fonction, la valeur du paramtre transmis est place dans X; le rsultat est retourn dans la
variable Y aprs que toutes les instructions aient t excutes.

Notez que les variables dune fonction de type function sont indpendantes des autres

variables, ce qui nest pas le cas lorsque le fichier ne dbute pas par linstruction function .

1.6 Macro-instructions

Bien que chaque instruction puisse tre entre directement au clavier, il est souvent utile de grouper
un ensemble dinstructions excuter qui sera identifi par un seul nom et qui pourra tre conserv
et dit volont. Ceci est possible en plaant les instructions dans un fichier dont le nom se
termine par .m .

Exemple : on cre un fichier nomm graphe.m comprenant les lignes suivantes :


% COMMANDE GRAPHIQUE
plot(X,Y)
grid
% AFFICHAGE DU TITRE
title( RSULTATS )
% IDENTIFICATION DES AXES
xlabel( TEMPS(SEC) )
ylabel( AMPLITUDE )
A chaque fois que graphe sera appel du clavier ou dun autre fichier, la courbe de Y en fonction de
X sera trace lcran avec affichage du titre et identification des axes (on suppose ici que les
vecteurs X et Y ont t pralablement dfinis avant lappel de GRAPHE)

1.7 Lecture de donnes

Afin de lire des donnes utiles l'excution, on peut procder de deux faons : soit en interrompant
l'excution du programme et en demandant l'utilisateur d'indiquer les donnes, soit en lisant un
fichier de donnes. Cette deuxime solution tant bien souvent prfrable.

Pour interrompre l'excution et demander une valeur, on utilise la commande input, dont voici un
exemple d'utilisation :

data=input('Donnez votre valeur (par defaut 0)');

S & S EEA 2017


Pour lire des fichiers de donne, on utilise la commande fscanf dont le principe de fonctionnement
est voisin de la commande fprint. Pour lire la donne data dans le fichier ficdon, on utilisera la
suite de commande suivante :

nfic=fopen(ficdon,'r'); %(ouvre le fichier ficdon en mode lecture)

data=fscanf(fid,'%d'); %(lit dans le fichier ficdon)

status=fclose(fid); %(ferme le fichier ficdon)

Pour plus d'informations, faire help fscanf, help fopen et help fclose. Il existe d'autres mthodes de lecture
et d'criture sur fichier, faire help iofun pour plus dinformations.

Maintenant, vous disposez de tous les outils ncessaires l'criture des programmes.

NB: Enregistrez vos programmes exclusivement dans le sous rpertoire correspondant votre
groupe de TP.

1.8 Exemples d'applications

1. Construire et visualiser le signal sinusodal:

y(t) = a cos (2 f t), sur 128 point avec a = 1, f = 10 Hz, et fe = 100 Hz.

Augmenter le nombre d'chantillons pour avoir plusieurs exemples.

2. Construire et visualiser le signal X redress double alternance issu du signal Y.

3. Construire et visualiser la somme de deux sinusodes S1 et S2.

S1(t)= a sin(2 f1t) f1 = 10 Hz a=1

S1(t)= b sin(2 f2t) f2 = 20 Hz b=1

4. Construire et visualiser la somme d'une srie de sinusodes Sn.

Sn(t)= a n sin(2 n f t) f = 10 Hz

avec a n = -4/(.n) pour n impaire et a n = 0 pour n paire.

Prendre n=5, 10, 100

Que remarquez-vous sur la forme que prend cette somme ?

5. Construire et visualiser la somme d'une srie de sinusodes Sn.

Sn(t)= a n sin(2 n f t) f = 10 Hz

S & S EEA 2017


avec a n = 1/n pour n impaire et a n = 0 pour n paire.

Prendre n=5, 10, 100

Que remarquez-vous sur la forme que prend cette somme ?

6. Composez cet exercice dans une macro-instruction. A laide de la fonction MATLAB

[M,P]=bode(NUM,DEN,W), trouvez le diagramme de Bode du filtre dont la fonction de

transfert est :

Comme vecteur de frquences, on utilisera W = logspace(-1, 1, 100).

2. Transformez M afin davoir le module en dB.

3. Affichez graphiquement le module en fonction de la frquence en utilisant linstruction


semilogx(W,M) et les commandes daffichage du titre et didentification des axes.

S & S EEA 2017


Introduction Simulink

2.1 Introduction Simulink

Simulink est un outil de MATLAB qui permet de remplacer les quations mathmatiques entre
certaines variables par des blocs. Lorsquon simule un schma en mode externe avec loutil Real-
Time Workshop (RTW), les donnes sont acquises et transformes en temps rel.

Pour ouvrir un fichier simulink(.mdl), cliquez sur l'icne reprsentant simulink: . La boite de
dialogue suivante apparat.

Figure 2.1 Simulink library browser

Cette boite contient une liste de bibliothques disponibles, ainsi quun menu semblable ceux
auquel vous tes familier dans les logiciels de traitement de texte.

Donc, pour ouvrir un nouveau fichier, il suffit de cliquer avec la souris sur licne , alors que

S & S EEA 2017


pour ouvrir un module simulink existant cliquer sur licne .

Lorsquun module simulink est ouvert vous pouvez, en vous dplaant dans la liste des librairies,
importez les blocs dsirs sur lespace de travail.

Pour importer un bloc dans votre fichier de travail, glissez le losange qui est devant le nom du bloc
jusqu' votre espace de travail. Vous pouvez rechercher un lment de la liste en tapant une partie de
son nom dans la case libre suivi de ENTER .

Vous pouvez vous exercer en essayant de raliser ce petit module fig. 2.2, avec lequel vous allez
pouvoir simuler une opration de quantification dun signal sinusodal.

Fig 2.2 Module simulink

A ce stade vous allez pouvoir ajuster les paramtres de chaque bloc dans votre module simulink en
double cliquant sur licne du bloc dsir. Par exemple, en double cliquant sur Quantizer la fentre
de la figure 2.3 va souvrir et vous allez pouvoir changer lintervalle de quantification.

S & S EEA 2017


Fig 2.3 Block des paramtres du quantizer

2.2 Paramtres de simulation

Avant de lancer la simulation vous devez fixer les paramtres de tous les blocs en vous assurant que
cela est conforme avec votre tude thorique.

Aprs avoir cr le schma excuter, assurez vous que la simulation Normale

est coche dans le menu droulant Simulation. Ensuite, en cliquant sur

Parameters sous longlet Solver fig 2.4, vous devez dfinir :

- les temps de dpart et darrive en secondes (vrifiez les spcifications demandes)

- le mode de simulation : Type Fixed-Step, Discrte

Fig 2.4 Paramtres de simulation

Enfin, lorsque les paramtres sont entrs, cliquez sur Start dans le menu Simulation ou cliquer

sur licne .

Le temps de simulation apparat dans la case en bas du fichier. Une fois que la simulation est

S & S EEA 2017


arrte, vous pouvez analyser les variables recueillies dans les blocs To Workspace et Time
Scope

La variable que vous avez dfinie dans le bloc To Workspace est transmise sur la fentre de
commande Matlab. Vous pouvez comparer son contenu en la traant, avec ce que donne Time
Scope.

Note : Matlab ne garde en mmoire que les derniers points de la simulation. Pour dfinir le nombre
de donnes garder en mmoire, on double-clique sur le bloc Time Scope

contenant la donne, on clique sur le bouton Properties et sous longlet Data History, on ajuste la
longueur du vecteur tel que dsir comme sur le schma ci-dessous :

2.3 Paramtres des oscilloscopes

Comme pour la simulation en mode normal, il est possible de rcuprer les donnes affiches sur un

Time Scope en ouvrant sa fentre, en cliquant sur le bouton de la fentre suivante :

S & S EEA 2017


Properties et, sous longlet Data History, en cochant Save Data to Workspace. Puisque le Time
Scope contient 2 graphiques, donc deux variables, il est impossible de rcuprer les donnes en
format Matrix , mais il faut le faire en format Structure with Time . Nous expliquerons dans la
suite comment transformer cette variable en donne manipulable.

2.4 Rcupration de donnes

Pour rcuprer les donnes gnres par la simulation, il faut insrer dans le schma un bloc
provenant de la librairie Simulink, Sinks. Les deux blocs les plus utiliss sont le Time Scope et
To Workspace . Ce dernier enregistre les donnes dans MATLAB mais ne les affiche pas,
contrairement l'oscilloscope. Les ajustements de l'oscilloscope ont t dcrits la section
prcdente. Pour le bloc To Workspace , il faut suivre les tapes suivantes (avant l'excution 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 excute, on sauve les donnes dans des variables en crivant dans la fentre
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 paramtres de l'oscilloscope ou du bloc To Workspace . Les donnes de la premire colonne
de cette variable correspondent au temps o ont t prlevs les chantillons, tandis que les valeurs

S & S EEA 2017


de la deuxime colonne sont les rsultats eux-mmes.
1. TRAVAIL RALISER AU LABORATOIRE

OBJECTIF
Le but de ce travail est de se familiariser avec la technique de drag and drop de Simulink en
valuant la rponse impulsionnelle dun systme linaire (filtre) et en simulant le filtrage dun
signal.
INTRODUCTION
La rponse impulsionnelle h(t ) dun systme linaire est la sortie du systme si lentre est
limpulsion de Dirac (t ) . Dans ce travail vous devrez valuer la rponse impulsionnelle dun
systme linaire et lafficher graphiquement. La fonction de transfert dun systme de quatrime
ordre vous sera prcise au laboratoire.

Vous devrez galement valuer la rponse lchelon dun systme. Vous aurez loccasion
dobserver les diffrentes rponses obtenues selon la position des ples du systme.

La dernire partie du travail traite du filtrage dun signal. Le but est dobserver la sortie dun filtre
Butterworth dont lentre est un signal tel quune onde carre priodique.

PREMIRE PARTIE : RPONSE IMPULSIONNELLE DUN SYSTME DORDRE 4


1. Ouvrir Matlab.

2. Cliquer sur le symbole color Simulink ou dans la fentre Command Window de Matlab
taper : simulink.

3. Dans la fentre Simulink Library Browser , cliquer sur file-new .

4. Dans la Library , choisir Continuous . Tirer la bote Transfer function et la dposer sur
le nouveau document simulink.

5. Programmer cette bote en double cliquant et en spcifiant les paramtres de la fonction de


transfert qui vous sera prcise au laboratoire. Exemple de fonction de transfert :
1
H (s) =
s + 1.197 s + 1.717 s 2 + 1.025s + 0.379
4 3

6. Choisir la source dentre en cliquant sur Sources et transportant la bote dchelon (Step).

7. Vu que le but est dvaluer la rponse impulsionnelle plutt que la rponse lchelon et vu que
les transforme de Laplace de (t) et u(t) sont :
L L1
d ( t ) 1 et u ( t )
s
il faudra annuler le ple introduit par lchelon. Vous pouvez effectuer ceci en multipliant H ( s )
par s, et ainsi annuler le ple de u (t ) par ce zro. Vous devrez ainsi double-cliquer sur la bote
Transfer function et programmer le numrateur par la vecteur [1 0].

S & S EEA 2017


8. Pour observer la rponse lchelon du systme, il faudra relier lchelon lentre de la
fonction de transfert sans oublier de brancher une bote Scope (de la librairie Sink de
Simulink ) la sortie de la fonction de transfert.

9. Cliquer sur la flche noire Start simulation .

10. Double-cliquer sur Scope pour voir la rponse du systme.

11. Pour prolonger la dure de la simulation, cliquer sur Simulation - Simulation parameters .
Augmenter Stop Time 40, par exemple.

12. Prparer les lments du rapport remettre :

a) les paramtres de la fonction de transfert tels quobservs en double-cliquant sur la bote


Transfer Function ,
b) la sortie du Scope.
c) Imprimer un plot par Matlab de la sortie a partir des donnes sur Workspace, qui contient le
titre du graphique et les identifications des deux axes.

DEUXIME PARTIE : RPONSE LCHELON DUN SYSTME

1. valuer la rponse lchelon en remplaant la bote Transfer function par deux de ces
botes connectes en parallle et dont les sorties sont additionnes par un sommateur (tir de la
librairie de Simulink : Mat-Sum).

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


1 1
H (s) = +
s - p1 s - p2
pour chacun des trois cas suivants :

p1 et p2 sont rels, par exemple, p1 1, p2 3 ,


p1 p2 , par exemple, p1 p2 1 ,
p1 et p2 sont complexes conjugus, par exemple, p1 = -0.5 + j , p2 = -0.5 - j .

*
noter que pour le cas p2 = p1 , il faudra remplacer les deux botes par une seule dont la
fonction de transfert est :
1 1 2 s - 2 Re [ p ]
H (s) = + = 2
s - 2 Re [ p ] s + p
* 2
s- p s- p

Avec p = a + j b o 0.2 et 1 , nous avons :


2 s - 2a 2s + 1
H (s) = = 2
s - 2a s + (a + b ) s + s + 1.25
2 2 2 .

3. Quelle est a valeur de la rponse en rgime permanent, c'est--dire, quand t ?

S & S EEA 2017


4. Prparer les lments du rapport remettre (pour chacun des trois cas) :

a) les paramtres de la fonction de transfert tels quobservs en double-cliquant sur la bote


Transfer Function ,
b) la sortie du Scope.

S & S EEA 2017


TROISIME PARTIE : FILTRAGE DUN SIGNAL

1. Programmer une bote Transfer function pour simuler le filtre Butterworth suivant :
1
H (s) =
s + 2.613s + 3.414 s 2 + 2.613s + 1
4 3

2. Transporter une source Pulse Generator de la bibliothque de Simulink pour produire le


signal qui sera appliqu lentre au systme.

3. Observer la sortie du systme sur un Scope . Remarquer le lissage quintroduit le filtre.

4. Ajuster la priode du gnrateur dimpulsions pour que la sortie du systme soit assez semblable
son entre sauf pour un lger lissage. Imprimer le rsultat.

5. Remplacer la fonction de transfert par

1
H (s) = ,
s +1
imprimer la sortie et indiquer le type du filtrage qui a produit sa forme.

6. Rduire successivement la priode de lentre et observer leffet sur la sortie. Continuer


jusquau cas o la sortie na presque pas doscillation. Imprimer le rsultat.

7. Observer la valeur finale de la sortie. Le filtre ayant admis uniquement les basses frquences,
expliquer la raison de la valeur finale de la sortie observe.

8. Prparer les lments du rapport remettre :

a) les paramtres de la fonction de transfert tels quobservs en double-cliquant sur la bote


Transfer Function ,
b) la sortie du Scope ltape 4 (indiquer la priode du gnrateur dimpulsions),
c) la sortie du Scope ltape 5 (indiquer la priode du gnrateur dimpulsions),
d) lexplication demande ltape 6.

S & S EEA 2017