Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Pr. : E. EL GUARMAH
1
Matlab – Mise en pratique
Présentation de Matlab
2
Matlab– Mise en pratique
Premiers pas
3
Matlab– Mise en pratique
Syntaxe
variable = expression
expression est évaluée, affectée à variable et affichée
expression
expression est évaluée, affectée à ans et affichée
variable = expression;
expression est évaluée, affectée à variable et n’est pas affichée
4
Matlab– Mise en pratique
Manipulation de matrices
A = [1 2 3; 4 5 6] donne
A=
! 1. 2. 3. !
! 4. 5. 6. !
b = [1 2 3]
b=
! 1. 2. 3. !
b = [1 2 3]'
b=
! 1. !
! 2. !
! 3. !
5
Matlab– Mise en pratique
Matrices particulières
6
Matlab– Mise en pratique
La fonction size
7
Matlab– Mise en pratique
Opérations matricielles
+ - addition soustraction
8
Matlab– Mise en pratique
Types de données
pi 3,1415927
i
1
9
Matlab– Mise en pratique
Constructions des matrices
vecteurs Matrices
x:y nombres de x à y par pas de 1 A(i,j) coefficient d’ordre i, j de A
A(i1:i2, :) lignes i1 à i2 de A
x:p:y nombres de x à y par pas de p
10
Matlab – Mise en pratique
i=0:2:12 (vecteur prenant des valeurs de 0 a 12 avec un pas de 2)
i=
! 0. 2. 4. 6. 8. 10. 12. !
linspace(0,1,6)
ans =
! 0. 0.2 0.4 0.6 0.8 1. !
11
Matlab – Mise en pratique
Extraction de termes
A(2,3)
12
Matlab– Mise en pratique
Commandes principales
Pour for x= vecteur
instruction;
end
Tant que while booleen, instruction; end
Si if booleen
instruction;
end
Sinon else instruction; end
13
Matlab– Mise en pratique
Les boucles
for i=1:4
x = 2^i
end
La boucle while
x=3
while (x > 1)
x=x/2
end
14
Matlab– Mise en pratique
BOUCLES ET INSTRUCTIONS
CONDITIONNELLES
10/02/2020
x=16;
if (x>0) then
y=-x
Matlab en pratique
else
y=x
end
Résultat : y = -16
15
15
Matlab– Mise en pratique
Instructions conditionnelles
==
<
<=
>=
~= (différen t de)
& et
| ou
~ non
16
Matlab– Mise en pratique
DÉFINITION DE FONCTIONS AVEC MATLAB
• function
[arguments_sortie]=nom_de_la_fonction(arguments_entrée)
<instructions>
Matlab en pratique
• function [y1,y2,y3] = nomfonction(x1,x2,x3,x4)
y1 = x1+x2
y2 = x1*x3
y3 = x1+x2+x3+x4
%les xi sont les arguments d'entrée et les yj les arguments de sortie
17
Matlab– Mise en pratique
Les graphiques
x=-%pi:.1:%pi; ( ou x=linspace(-%pi,%pi,100) )
plot(x,sin(x))
18
Matlab– Mise en pratique
LES GRAPHIQUES
o Les courbes dans le plan
x=-pi:.1:pi; ( ou x=linspace(-%pi,%pi,100) )
10/02/2020
plot(x,sin(x))
Matlab en pratique
plot peut également prendre un certain nombre
d'options de style
o Les surfaces
x=linspace(0,2*%pi,31);
z=cos(x)'*cos(x);
plot3(x,x,z)
19
19
Matlab– Mise en pratique
LES GRAPHIQUES MULTIPLE
On peut tracer plusieurs graphiques dans la même fenêtre en utilisant
l’instruction subplot pour diviser la fenêtre en plusieurs parties.
- Diviser la fenêtre en deux parties (2 x 1)
subplot(2,1,1)
subplot(2,1, 2)
subplot(1,2,1) subplot(1,2,2)
20
Matlab– Mise en pratique
LES GRAPHIQUES MULTIPLE
On peut tracer plusieurs graphiques dans la même fenêtre en utilisant
l’instruction subplot pour diviser la fenêtre en plusieurs parties.
- Diviser la fenêtre en quatre parties (2 x 2)
22
Matlab– Mise en pratique
Travaux Pratiques
Environnement MATLAB et bases de programmation
• Définir le vecteur ligne age de 1 à 25 par pas de 1.
• Calculer la somme des éléments du vecteur age par une boucle for et faire la
moyenne.
1 2
A 3 4
0 m / l * cos(2 / 3)
23
Environnement MATLAB et bases de
programmation
• Définir la matrice de rotation
cos( ) sin( )
B pour
sin( ) cos( ) 4
• Faire le produit A par la matrice B.
• Ajouter 1 aux éléments de la matrice A. Calculer la matrice B + I (I est
la matrice identité).
• Évaluer eye(B)/B et comparer avec inv(B).
• Faire A. A, A./A, sin(A), max(A).
• Résoudre le système linéaire Bx=(1 1)’
• Dessiner la courbe de la fonction y(x) = x sin(x) sur l’intervalle [0, 10] avec un
pas de 0.05.
• Superposer les courbes y(x) = x et y(x) = x sin(x) en utilisant un ou deux appels
successifs `a plot.
24
TP 1 : Equations différentielles
• Résolution de l’équation différentielle :
25
Équation de la chaleur
• Problèmes paraboliques : Position du problème
On considère une barre métallique homogène de longueur L en contact
à ses deux extrémités avec deux sources thermiques de même
température (U=0)
x
L
26
U U 2
2 (0 x L ; t 0)
t x
( P) U (0, t ) U ( L, t ) t 0
U ( x,0) U ( x) 0 x L
0
On se propos de résoudre ce problème par les différents
schémas de discrétisation, (explicite et implicite), dans un
intervalle de temps [0, T]
27
Méthode des différences finies
28
Méthodes des différences finies :
Aperçu sur les schémas à deux niveaux
• Considérons une discrétisation en temps de pas k et une
discrétisation en espace de pas h
M nj1 M nj 1 M nj11
(n+1)k
t
M nj1 M nj M nj1
nk
(j-1)h jh (j+1)h
Δx = h
Δt = m
x
29
Pour la dérivée en temps
n 1
U U U n
( jh, nk )
j j
t k
30
Schéma explicite
• Ce schéma 2consiste à approcher la dérivée
seconde U2 au niveau (n k)
x
U
2
U 2U Un
j 1
n n
j 1
j
( jh , nk )
x 2
h 2
n 1 n 1 n 1
U
2
U j 1 2U U j 1
j
( jh , nk )
x 2
h 2
33
34
34
Matlab et les images
10/02/2020
• Pour Matlab, une image de taille (m,n) est
Matlab en pratique
une matrice X de taille (m,n), et la valeur de
X(i,j) correspond à la valeur du niveau de gris
de l’image au pixel (i,j)
35
35
Matlab et les images
10/02/2020
• Pour charger une image :
Matlab en pratique
Si l’image se trouve dans le toolbox de
matlab on utilise la commande : load
nom_image
36
Exemple
% chargement d’une image
load gatlin2
%l’image est chargée dans la variable X
%visualisation
imagesc(X)
%affichage au niveau de gris
colormap gray
37
38
Bruitage d’une image
function out=bruitage(I,s);
[m,n]=size(I);
J=zeros(m,n);
J=s*randn(m,n);
out=I+J;
figure(2)
imagesc(out)
colormap gray;
39
40
41
SNR
Parmi les critères quantitatifs les plus courants pour évaluer les
performances d'un algorithme de débruitage, nous avons retenu
le rapport signal à bruit (Signal to Noise Ration, SNR), il s'exprime
en décibels par le rapport entre l'image de référence I1 et l'image I2
après l'analyse :
2 ( I1 )
SNR 10 log 10 2
( I1 I 2 )
où est la variance
42
Débruitage d’images
Filtres basées sur l’EDP de la chaleur
U
U ( t , x , y ) 0 dans x(0, T )
t
U (0, x , y ) U 0 ( x , y ) dans
43
Schéma explicite
• On procède par la discrétisation du premier terme :
n 1
U U i , j U i , j
n
t k
n
U i 1, j U i 1, j
n
4U i , j
n
U i , j 1 U i , j 1
n n
U ( t n , x i , y j ) 2
h
44
Schéma explicite
• En remplaçant dans l’EDP de la chaleur on aura :
U in, j 1 n
k
Ui, j 1 4 2
k
h h 2
U n
i 1, j U n
i 1, j U n
i , j 1 U n
i , j 1
45
Programme sous Matlab
function sol=eqch(U,k,h,d,X)
[m,n]=size(U);
a=????;
b= ????;
for l=1:d
for i=2:m-1
for j=2:n-1
???????
??????
end;
end;
B=U;
end;
sol=B;
figure(3)
imagesc(?????);
colormap gray;
46
47
Amélioration
U
CU ( t , x , y ) 0 dans x(0, T )
t
U (0, x , y ) U 0 ( x , y ) dans
C varie de 0.1 à 1
48
Schéma de discrétisation
U in, j 1
U in, j 1 4C
k Ck n
h h
2
2
U
i 1, j U n
i 1, j U n
i , j 1 U n
i , j 1
49
Peronna-Malik
Pour améliorer les résultats obtenus par l’EDP de la chaleur, Peronna
et Malik ont proposé de modifier l’équation en y intégrant le processus
de détection des bords
U
t div C U U dans x( 0, T )
U
(P1) 0 sur x(0, T)
N
U ( 0, x ) U 0 ( x ) dans
Où C est une fonction croissante de R+ dans R+
50
Schéma numérique
• Sur le même principe que l’EDP de la chaleur, écrire le schéma
numérique pour (P1).
• Tester le nouvel algorithme avec les fonctions
1
C (t )
1 t 2
et
C (t ) 1
1 t
2
avec p ( p1 , p 2 )
51
Débruitage d’images
Filtres basées sur l’EDP de Perona-Malik
• Dans ce qui suit on s’intéresse au filtrage
utilisant l’EDP de Perona-Malik s’écrit sous la
forme :
U
t
div C U U dans x(0, T )
2
U (0, x ) U 0 ( x ) dans
log e t
C1 ( t )
1 t
1 t
C 2 (t )
t
C 3 (t ) 1
1 t
52
Sur un modèle non-linéaire pour le
débruitage de l'image
U 1
div U 0 dans x(0, T )
t U
2
1
U ( x ,0) U 0 ( x ) dans
U ( x , t ) 0 dans x(0, T )
53
Simulink
Simulink, un environnement puissant de modélisation par
schémas-blocs et de simulation de systèmes linéaires ou non,
continus ou discrets.
54
Simulink
Démarrage et exécution de Simulink
55
Démarrage et exécution de Simulink
• Tapez la commande suivante à l'invite
de commande Matlab
>> simulink
• La bibliothèque de Simulink doit
s'afficher
• La sélection de simulation de
démarrage à partir du menu déroulant
va lancer la simulation dynamique.
Cliquez sur les blocs pour afficher les
données ou modifier les paramètres
d'exécution
56
Signaux et Systèmes dans Simulink
• Deux grands ensembles de bibliothèques
pour la construction simulations simples
dans Simulink :
• Signaus: Sources and Sinks
• Systèmes: Continuous and Discrete
57
Exemple de Simulink de base
• Copier "sine wave" source et "scope"
sink sur un nouvel espace de travail
Simulink en se connectant.
• Exécuter la simulation :
Simulation - Start
58
• SIMULINK® permet de modéliser, simuler et analyser les systèmes
dynamiques. Il supporte les systèmes linéaires et non-linéaires,
modélisé en temps continus, discrets ou hybrides.
Aérospatial et Défense
Automobile
Communications
Instrumentation médicale…
59
SIMULINK : LIBRAIRIES
L’outil principal de Simulink
est l’explorateur de librairies.
Il comprend tout ce qui est
nécessaire sous Simulink :
Les blocs regroupés en
librairies par caractéristiques
communes
La barre d’outils pour la
gestion des modèles
Une aide très complète
60
Librairie « Commonly
used ». Contient les
blocs les plus fréquents :
Constante
Gain
Sommateur
Intégrateur
Mux
…
61
Librairie « Sinks ».
Contient les blocs de
sorties, en particulier :
Visualisation graphique :
Scope, Floating Scope,
Display
Enregistrement des
données : To File, To
Workspace
Création de ports de
sortie : Out1
62
Librairie « Sources ».
Contient les blocs d’entrées,
en particulier :
Génération de signaux :
Step, Sine Wave, Ramp,
Pulse Generator, …
Chargement de données :
From File, From Workspace
Création de ports d’entrée :
In1
63
SIMULINK : TRAVAIL DIRIGÉ
Exercice de prise en main de Simulink :
Visualisation simultanée d’une sinusoïde et de son intégrale
64
1 – Création d’un nouveau
modèle :
Cliquez sur l’icône
dans la barre d’outils Matlab
Cliquez sur l’icône
Pour créer un schéma-bloc.
Pensez à enregistrer votre
modèle dans votre espace
de travail
65
2 – Ajout des blocs :
Ajout par « glisser / déposer » (drag
and drop) de la fenêtre de librairie
vers la fenêtre du modèle :
Librairie « commonly used » :
Intégrateur, Mux
Librairie « Sinks » :
Scope
Librairie « Sources » :
Sine Wave
66
3 – Organisation des blocs :
Pour déplacer un bloc vous
pouvez :
Cliquer et glisser le bloc
Sélectionner le bloc, et le
déplacer au moyen des
flèches du clavier.
67
4 – Connection des blocs :
Pour connecter une entrée à une sortie
vous devez :
Cliquer sur le port (une croix apparait)
Maintenir enfoncé le bouton. En
Arrivant sur l’autre port, une double
croix apparait.
Relacher le bouton de la souris
Connections à réaliser :
68
5 – Création d’un branchement :
Pour brancher une entrée à un
signal existant vous devez :
Cliquer sur le port (une croix
apparait)
Maintenir enfoncé le bouton. En
Arrivant sur le signal, une double
croix apparait.
Relacher le bouton de la souris
69
6 – Simulation :
Cliquer sur l’icône pour
lancer la simulation
70
SIMULINK : SIMULATION
Paramètres de simulation :
Menu « Simulation » → « Configuration Parameters »
71
Intervalle de simulation :
72
Solveur : résolution numérique par pas temporels
Zoom sur une région :
la résolution numérique
se fait à intervalles de
temps variables ou fixes.
la solution globale est
obtenue par interpolation
linéaire entre ces différents points (segments de droites).
73
Types de solveurs : « variable-step »
74
Types de solveurs : «fixed-step »
75
Différences entre pas fixe et pas variable :
« Variable-step » :
76
En cas de « mauvaise » simulation :
Préférer au maximum un « Variable-step » (par défaut). Mettre une
valeur de « Max Step Size » suffisamment petite.
Si calcul de simulation trop long, préférer alors un « Fixed-step »,
mettre une valeur suffisamment petite pour le pas.
A savoir :
Si vous avez des non-linéarités dans votre modèle, choisir un
solveur « stiff » (odes).
Le « Fixed-step » est le seul qui soit réalisable physiquement
(période d’échantillonnage fixe) et donc le seul qui permet de la
génération de code ou l’implémentation dans un composant.
77
Analyse et contrôle du signal temporel
TP0
Sommaire du TP0
1) Introduction à Matlab
2) Exercices
3) Transformée de Fourier discrète avec Matlab :
commande fft
a) Impulsion en 0 et Fourier discrète et inverse
b) Impulsion en a
c) Fonction Porte
c1) Echantillonnage et TFD
c2) Influence de la fréquence d’échantillonnage et de la durée de l’échantillon
78
Fin
79
• Pour ouvrir une librairie de blocs de modélisation, il suffit de double
cliquer dessus ou d'effectuer un "clic droit > open the … library".
• Parmi les librairies les plus courantes, citons :
80
Simulation avec Simulink
• Avant de lancer une simulation, on doit choisir les paramètres
appropriés au modèle du système. Pour cela, sélectionner Menu
Simulation>configuration parameters.
81
82