à MATLAB

Transcription

à MATLAB
Introduction
à MATLAB
D. Bichsel
J.-M. Allenbach
0.0 13 7
0 .01 35
0.0 13 3
0 .01 32
0.0 13 0
0 .01 28
0.012 7
0 .0 12 5
0.0 13 9
0 .02 33
0.0 22 7
0 .02 22
0.0 21 7
0 .02 13
0.020 8
0 .0 20 4
0.0 14 1
0 .02 38
0.0 47 6
0 .04 55
0.0 43 5
0 .04 17
0.040 0
0 .0 38 5
0.0 14 3
0 .02 44
0.0 50 0
0 .14 29
0.1 25 0
0 .11 11
0.100 0
0 .0 37 0
0.0 14 5
0 .02 50
0.0 52 6
0 .16 67
1.0 00 0
0 .50 00
0.090 9
0 .0 35 7
0.0 14 7
0 .02 56
0.0 55 6
0 .20 00
0.2 50 0
0 .33 33
0.083 3
0 .0 34 5
0.0 14 9
0 .02 63
0.0 58 8
0 .06 25
0.0 66 7
0 .07 14
0.076 9
0 .0 33 3
0.0 15 2
0 .02 70
0.0 27 8
0 .02 86
0.0 29 4
0 .03 03
0.031 2
0 .0 32 3
0.0 15 4
0 .01 56
0.0 15 9
0 .01 61
0.0 16 4
0 .01 67
0.016 9
0 .0 17 2
Ecole d’Ingénieurs de Genève
N° X
Edition 2006
Table des matières
TABLE DES MATIÈRES
INTRODUCTION
1
1 VECTEURS
2
2 MATRICES
4
3 POLYNÔMES
8
4 FONCTIONS
12
5 ÉQUATIONS DIFFÉRENTIELLES
16
6 LE « SYMBOLIC TOOLBOX »
24
5 SIMULINK
25
i
060829
Table des matières
ii
060829
Introduction
MATLAB est d'abord un langage de programmation qu'on peut qualifier de "orienté objet". Il
est particulièrement prévu pour le calcul numérique matriciel ou vectoriel. Par cette qualité de base,
le programmeur est souvent dispensé d'écrire des boucles. La syntaxe des programmes MATLAB
rappelle un peu d'autres langages tel que Ada, C ou Pascal.
Une autre spécificité de MATLAB est sa très vaste bibliothèque de fonctions déjà comprise
dans la version de base. Cela permet de rédiger des programmes d'application extrêmement
compacts utilisants des algorithmes éprouvés. Chaque fonction est spécifiée par ses entrées,
variables et paramètres, la tâche à exécuter et ses sorties. En comparant à d'autres langages dans
lesquels l'affichage est très coûteux en temps de codage, MATLAB offre des routines très simples
d'emploi et très performantes.
Le langage MATLAB n'est pas seulement conçu pour les études universitaires et associées,
mais aussi pour l'usage industriel où il est très prisé. Mathworks vend aussi des paquets de fonctions
(Toolboxes) orientés plus particulièrement pour tel ou tel domaine d'application, avec des outils
spécifiques.
1
! "
&
(
$
#
)
&
$
$)
& -
$
$
$
$
+
$
#
%
!
$ $
#
$
$
'
! *
$
$
,
! $
$
$
'
$$
'
)
$
$
!
$
,
+
$
$
)
$
$
'
$
$
'
! .
)
$
&
#
$
$
# /
$
#
0 +1
4 04+
40
7
#
+
23
23
26
!54 1
0 +1
4 04+
4 0 541
$
23
23
2
$
$
$
$
$
/
4
4 0 54
9
<
+
$
$
$
! =
+
26
$
7
$
# /
$
! *
9
$
$
/
$
$
8
!
!
$
: ; <
$
$
$$ #
$ $
$
$
$
$
,
$
$
$
$
$
!
+
$
,
$
$
+
!
!
!
!
>
! "
! .
'
'
#
! .
#
$
'
'
$
#
$
$
$
$
#
?,
$
'
$
$
'
1
!
#
$
$
$
)
9
#
'
$ &
!
$
'
$$
!
'
#
$
#
#
/
'
!
"
(
#
! 6
!
#
! " #
!
/
$
!
"
!
!
#
#
)
,
$
$
)
)
$ +
?
)
!
'
)
"
'
)
%
(
,
<
& !
$
%
&
&
%
$
$
:
$
;
<
"
)
$
.
"
!
!
$
!
,
<
!
@
$
$
.
$
,
+
?
$
"
$
$
&A
:
;
!
<
<
$
$
#
!
!
'
*
+)
,
&
-
"
%
( !
"
'
)
'
#
B
'
#
#
! "
#
$
9
$
#
#
, $
$
'
/
<
!
#
'
# !
#
'
)
&
!
$
! 6
#
$
$
$
$
)
&
!
'
:
$
'
)
1
!
; <
!
*
,
"
! "
#
$$ #
!
$
)
! ?
$
'
$
+
+
C
$
)
"
%
"
"
.
/
D
$
$$
$$
$
)
$$
!
$
)
$
$
!
!
&
#
$
, -
9
$
$
$
$
$
!
!
"
0
#
$ $
$
$ $
$'
$
$$
$$
/ )
!
1
$
#
#
$ $
$$
,
$ $
"
B
#
#
$ $
'
!
'
$ $
$
!
&
#
<
+ :
+
;+
:
$ $
;
!
!
#
$
$ $ !
; +
?E6?"F!
#
$ ,
$ $
$
$
:
:
$ $
#
$
;
,
$ $
#
#
#
#
$ $
$ $
$
$ $
$ $
<
$
$
&
$ $
G
$ $
$
!
$
.
#
$ $
$ $
+
!
!
,
!
,
,
!
-
)
#
2
" 1
,
(
G
!
!
& +
3
$ ( %
$
%
14
14
5
#
"
"
,1
6
7
"
3
%
' !
8
,
8
:
3
,
3
;
"
1444
)
$
.
%
8
!
"
9
$
%
5<<=
H
3 9
.
(
14
1444
2
"
/1444
5<<=
$ .
, -
( >
( ?
3
!
!
*
@
"
( ?
'
%
*
!
%
"
8
@
+ !
&
@
#
( ?
)
!
.
( ?
( ?
( ?
3
*
!
,
#
@
"
!
'
8
8
3
$
$
I
+
$ .
$ .
( $
$
I
I
$
)
$
$
$
&
#
!
$ .
$
I
$
&
"
)
$
$
%
$
+
@
I
I
#
!
( ?
( ?
!
( ?
A
'
'
3
+
( ?
3
6
#
"
$ .
$
$
I
$
!
&
#
$
#
$
I
B
$
#
! *
!
&
$
$
&
&
$
$
$
I
$
I
&
#
! "
$
#
<
$
#
B
#
J
<
$
!
I
,
$ .
.
#
$
$
$
I
$
I
!
I
$
$
#
&
#
I
$
&
I
I
, +
#
*
$
#
<
<
$
!
&
I
!
"# $
)
"
/
K
$
$ .
I
$
$
$
$
#
#
$
$
$
$
&
)
- $
$
K
'
$
'
B
$ $
$
'
B
!
$
&
'
! *#
+
!
!
!
!
"
!
+
!!
!
K
!!
!
#
!!
!
!!
!
!!
!
&
!!
!
*
$$ #
+
!!
!
!!
!
!!
!
!!
!
!!
!
L
!!
!
'
$
+
!
"
$
$
I
$
.
D
I
#
#
#
9
)
$
!
$
I
! ?
$
!
$
$
!
! =
$
I
K
$
'
#
'
!!
!
&
$ $
#
I
"
, $
$ $
$
<
!
&
/
#
$$
$ $
M!
$$
$
&
!
3
$
0
#
)
I
$
#
I
! *
#
!
!
@
&
( )
$ .
$
&
!
I
$
(
,
(
$
$
<
:
/
;
!
A
( ?
6
( ?
.@
( ?
( ?
3
(5 (
1
#
<
9
)
$
,
&
?,
&! . $
$
'
&
#
$
&
%
%
<
$
$
'
<
$
#
$
$
& %
! ?,
<
$
<
&
! (
$
$
(
%
( ?
! *
! "
'&
% &
&
(
$ .
$
"
I
K
( ?
8 ! 3
3
,
#
$
/
)
K
%
( ?
K
K
'
&
"
#
#
#
! 3
/
<
$
#
$
#
'
(
(
&
N
! *
B
8
$
I
@
!
1
2
$
/$
#
#
I
$
'
$
<
$
$
I
$
#
'
#
$
!
+
(
'
*
?$
$ .
'
)
)
$
&
*
$
$
+$"#,#
#
)
)
)
)
!
'
## - &
)
)
'
*
'
)
)
)
)
)
)
)
)
)
)
)
)
/
) A
)
(
)
"
)
.
!
,
.
6
&B!C
)
3
(
.@
3
'
"
0
( ?
D
3
'
(
3
.
"
(
( ?
"
1
$
$
I
:
,#
! (
$
; $$
9
:
9
&
0
0
/ 0
$
&
+
/ 0
;!
&(
#
$
#
$
3
&
(
,
#
#
#
$
(
K
'
$
)
#
$
)
!
&
$
#
# !
#
$
<
$ !
(
(
#
# !
$
$ &
(
!
+
/
&
,
$
(
#
&
#
$
3
$
&
&
$
&
&
)
!
$
&
$
!
,
! 6
!
$
! "
#
#
&
$
$$ #
! "
&
#
&
&
#
,
,
&
)
3
51
4
*
#
&
$
&
$
$
$
$
+
$
+
&
<
$
' >
(
#&
3
)
'
$
4
)
%
(
$
( ;! O
!
5
"
&
,1%
:(
:(
( ; :(
(
'
3
6
+
! &
( ;!
(
#
&
/
(
@
)
4
&
$
#
:(
(
+
$
)
$
( ;!
6
.
!
#
<
'
3
( $
"
%
$
:
$
$
$
;
+
'
<
+ :(
(
';!
%
#
#
#
#
$
K
$
&
:(
&
$
4
&
+)
$
!
$
! #
$
$
! *
$
;!
(
(
"
"
$
'
7
&
"
% $
,
%
Zéros de la fonction sinus sur [-10; 10]
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-10
-8
-6
-4
-2
+ P
+&
"
/
K
0
$
K
$
'
10
&
9
!
$
! *
I
$
#
$
#
$
!
$
$
$
#
$ + : "
&
&
!
(
;
"(
&
&
K
#
'
! *
<
&
7
8
4
$
"
6
Q/ N 1 NR
&
$
4
&
$
7
2
$
)
:
#
+ :
"
(
K
:,
"
(
"
;$
" ( ;
$
$)
0 ( 2 #10 ,$ ; 8 $
#
$
#
&
#
&
N
!
!
7
&
&
! *
&
#
$$
K
#
&
#
)
!
.
&
0
&
#
0
$
#
!
&
K
&
K
0! .
&
$
!
>
! .
$
&
0
#
K
0 &
&
<
<
& &
0
$
$
?
7
$
&
&
#
&
$
K
K
#
#
! =
D 4
&
&
&
$
&
$$
!
$
'
$$
#
$ #
$$
#
A!
&
$
!
4
K
D 4
+
$$ #
#
(
(
9 #
#
&
(
9 #
&
&
+
!
$
$$
(
(
<
,
#
$
(
(
(
)
'
!
)
*
$
$
(
)
"
$$ #
8
!
'
)
3
;
3
D E
1
D E
$
5
8
"
# %
2 &$,#3
'
+'
3
'
&
#
#
&
7
7
!
0
0
$
& $
&
K
$
&
$
#
&
&
#
&
> !
#
$$
&
#
&
"
$
I
$
$
#
$
! "
/9
!
&
!
+ +
6
$
$
$
I
3
!
)
7
&
$
#
#
#
! &
# ! " #
$
)
!
$
I
$$
"
"
5
7
&
$$ #
&
! (
&
&
#
)
K
K
@
)
#
$
#
%
&
# !
&
! &
D 4
$
!
Maxima relatif
1.5
1
0.5
0
-0.5
-1
-1.5
0
0.1
0.2
0.3
0.4
7+
0.5
0.6
&
0.7
0.8
0.9
1
0.7
0.8
0.9
1
&
Minima relatif
1.5
1
0.5
0
-0.5
-1
-1.5
0
0.1
0.2
0.3
>+
0.4
0.5
&
C
0.6
&
)
!%
5
#
$
#
$
<
&
#
* 3
#
$
* 3$
$
)
8
!
)
$
#
#
)
#
$
'
'
'
#
! D
B
!
!
6
)
+ A
3 !
)
)
(
)
#
)
, -
+ A
)
(
)
)
!
+
)
"
)
)
)
)
(
)
"
)
(
(
)
*
)
3
)
?$$ #
.
0
)
)
)
8
)
$
,
$
$
$
9
$
$
! "
$
!
#
* 3
&
)
)
(
$
$
)
/
$
!
&
@
!
"
,
3
)
.
3
$+
+
!
"
+"
;F
8
3
$
6
73
%
)
"
8
3
+
+"
(
&
(
%
3 9
)
3
3
8
#
$
*
! ?
$
B
$
$
$
'
$
$
$
$ /
$
!
$
$
'
7@
$
$
$
! *
A!
G
$
#
! 6
&
$
/
Euler α =1 , Dx = 0.04
Euler α =50 , Dx = 0.04
0.7
2
0.6
1.5
0.5
1
0.4
0.5
0.3
0
0.2
-0.5
0.1
-1
0
0
0.7
0.5
1
1.5
-1.5
0
2
Euler α =1 , Dx = 0.0375
1
1.5
2
Euler α =50 , Dx = 0.0375
2
0.6
0.5
1.5
0.5
0.4
1
0.3
0.5
0.2
0
0.1
0
0
0.5
1
1.5
@+
-0.5
0
2
*
)
)
H
0.5
1
)
1.5
2
Euler α =1 , Dx = 0.026667
Euler α =50 , Dx = 0.026667
0.7
1.5
0.6
1
0.5
0.4
0.5
0.3
0.2
0
0.1
0
0
0.5
1
1.5
-0.5
0
2
0.5
Heun α =1 , Dx = 0.026667
1
0.6
0.8
0.5
0.6
0.4
0.4
0.3
0.2
0.2
0
0.1
-0.2
0.5
1
1.5
)
8
-0.4
0
2
C+ *
S
)
S
$
$
$!
$
$ $
$
#
$
! "
)
! "
!
)
!
(
$
$
!
+
)
1.5
2
)
S
#
$
!
!
3
$
#
! .
<
$
$
$
$
)
#
)
)
&
*
,
!
$
$
+
$
$
*
$$
&
)
S
1
)
*
(
.
&
&
0.5
)
&
)
)
2
9
$
$
1.5
Heun α =50 , Dx = 0.026667
0.7
0
0
1
G
$
(
)
(
)
$$
*
&
$
&! ,
$
C$
+"
$
$
&
)
$
J
$
$
)
G
(
*
3
)
ode45 α =1
ode45 α =50
0.7
1
0.6
0.8
0.5
0.6
0.4
0.4
0.3
0.2
0.2
0
0.1
-0.2
0
0
0.5
1
1.5
-0.4
0
2
0.5
ode45 α =500
1
1.5
2
ode45 α =5000
1
1.5
1
0.5
0.5
0
0
-0.5
0
0.5
1
1.5
G+
)
8
6
"
*
S
T
(
)
F
6
&
&
$
) !
#
8
$
$
!
,
) &
)
8
$
$
#
&
$
$
$
C!
$
@
*
* $
#
$
$
!
S
$
!
&
$
8
$
$
#
* $ #
K
0
/
@C
&! ,
7H
G!
8
!
$
*
@C
@C
S
$
#
!
8
&
!
$
$
$ $
;
)
!
2
E
! "
$
$$
$
:
)
1.5
!
&
#
&
1
! ? 9
$
$
)
0.5
0 :;
$
#
#
-0.5
0
2
$
$
'
!
#
$
#
' &
@C
$$
&
6
$
CNNN
'
$
/
! .
$
%
@C
$
#
<
#
<
#
$
L
#
$$
,#
$
! D
)
$
#
/
$
!
*
*
$
'
$
$ ! ?
$
&
+
)
)
(
)
+
)
)
B
#
&
$
$
#
$
)
)
)
$
,
@!
1H
& ;
$
#
#
&! ,
'
$
$
#
&
#
J !6
5I !
$
1
$$
&
/
$
)
$
&
'
# ! ?,
'
$$ #
$
3
"
"
3
D E
3
3
/
#
!
3
4 &
3
&/
<
'
3
.
#
$
#
)
3
3
$
#
3
#
' !
#
CN
5
! *
! *
!
#
$
,
$
$
+
&
$
5I
5I
%
&
H!
$
8
<$ =
!
$
)
' #
#
!
14
&
)
+
)
$
&
)
)
$
A
#
*
)
$
#
' &
! =
$ $
$
$
)
#
))
D 4
$$ #
!
#
/
)
)
%
#
E $
(
4 &
)
"
( 8
"
3
7N
4 &
"
Euler implicite α =1 , Dx = 0.5
Euler implicite α =50 , Dx = 0.5
0.7
1
0.6
0.8
0.5
0.6
0.4
0.4
0.3
0.2
0.2
0
0.1
-0.2
0
0
0.5
1
1.5
-0.4
0
2
Euler implicite α =500 , Dx = 0.5
1
0.5
0.5
0
0
0.5
1
1.5
H+ *
-0.5
0
2
$
1
1.5
2
Euler implicite α =5000 , Dx = 0.5
1
-0.5
0
0.5
)
)
7
0.5
1
)
1.5
2
Euler implicite α =1 , Dx = 0.1
Euler implicite α =50 , Dx = 0.1
0.7
1
0.6
0.8
0.5
0.6
0.4
0.4
0.3
0.2
0.2
0
0.1
-0.2
0
0
0.5
1
1.5
-0.4
0
2
Euler implicite α =500 , Dx = 0.1
1
0.5
0.5
0
0
0.5
1
1.5
J+ *
-0.5
0
2
$
1
1.5
2
Euler implicite α =5000 , Dx = 0.1
1
-0.5
0
0.5
)
)
77
0.5
1
)
1.5
2
3
'
!
( 8
3
)
"
"
)
3
"
"
& -
$
#
<
&
=
( >
3
3
! .
#
<
/
!
'
"
3
0
.
&
(
3
>
+
/+
"
%
* !
&
G
(
+"
+"
7H
8
8
3
8
&
&
#
! #
#
! #
'
!
!
!
8
!
!
!
;,!,6
)
+
34
"
3
3
3
3
3
8
3
"8
,
$
:
'
@C ;
$
:
5
"8
B
"
&
!
&
/
7> ;
E/ /"
7>
)
( 8
)
6
Le "Symbolic Toolbox"
On rappelle que les variables utilisées par MATLAB – scalaires ou matrices – peuvent être de trois types qui
peuvent subir des opérations spécifiques à leur nature:
• les grandeurs numériques (numeric).
• les grandeurs littérales (symbolic).
• les chaînes de caractères (string).
Si le premier et le dernier type sont de maniement évident, le deuxième nécessite quelques précisions. Lorsqu'on
écrit une expression sur une ligne de commande, MATLAB s'attend à que chacune des variables qui la forme ait
été désignée au préalable et que sa valeur figure dans l'espace de travail (workspace). Une variable littérale
n'ayant pas de valeur numérique connue, elle doit être déclarée comme telle avant toute opération qui la contient,
par exemple la variable x:
» syms x;
Cette variable étant déclarée, on peut demander ensuite au "Symbolic Toolbox" toutes les opérations – par
exemple l'inversion d'une matrice qui contient cette variable – sans que la valeur numérique de x soit
préalablement connue. Le résultat sera donné sous forme symbolique, très voisine de celle qu'on obtient par
calcul littéral manuel. Pour ceux qui on appris à utiliser MapleV, on signale que "Symbolic Toolbox" utilise
implicitement des routines Maple, adaptées à la syntaxe MATLAB .
Dans les versions récentes de MATLAB (≥ 5.0), la syntaxe du calcul symbolique est la même que celle du calcul
numérique: MATLAB utilise alors les routines de calcul appropriées en fonction du type de variables utilisé dans
l'expression écrite par l'utilisateur sur la ligne de commande.
Exercice 41: Cet exercice a pour but l'entraînement du calcul vectoriel avec des variables symboliques (synergie
avec Maple).
A Appeler les données des matrices A, b, c.
» exoZ
B Construire une matrice X, de même taille que A, qui contient la variable symbolique x dans la diagonale
principale et des 0 partout ailleurs.
C Construire une matrice Y = X – A. Calculer Z, l'inverse de Y.
D Calculer G = c * Z * b. Calculer P = 1/G. Présenter P comme on l'écrirait à la main.
E Calculer les racines du polynôme P. Calculer les valeurs propres de la matrice A. Qu'observe-t-on? Quelle
conclusion en tirer?
24
7 Simulink
Il s'agit ici d'un langage de programmation graphique qui – comme son nom l'indique – permet de simuler des
systèmes physiques en les représentant par un schéma formé de blocs fonctionnels reliés par des flèches. Chaque
bloc symbolise l'exécution d'une opération particulière sur son signal d'entrée pour élaborer son signal de sortie.
Les flèches indiquent le sens des interactions: elles ont un bloc de départ et un ou des blocs d'arrivée. Simulink
est une sorte de Toolbox qui ne fonctionne qu'en association avec MATLAB.
Lorsqu'on a «dessiné» le schéma Simulink d'une installation, on a implicitement construit le système d'équations
différentielles - linéaires ou non – qui la décrit. Lorsqu'on demande au logiciel l'exécution d'une simulation
pendant un intervalle temporel prescrit, il doit résoudre numériquement le système d'équations différentielles
pour déterminer l'évolution dans le temps des valeurs de chacune des grandeurs physiques en présence. C'est à
l'opérateur que revient la responsabilité du choix de la méthode de résolution, de son pas de calcul ou de ses
paramètres. Comme déjà évoqué au chapitre 5, ce choix est capital:
• Une méthode trop complexe ou un pas de calcul trop court peuvent provoquer un temps de calcul
exagérément long.
• Un pas de calcul trop long peut donner comme résultat des courbes "polygonales", l'interpolation entre deux
points de calcul consécutifs étant trop grossière. On peut aussi aboutir à un résultat qui est un comportement
oscillatoire dont la valeur moyenne est le comportement attendu.
• Une méthode inadaptée, ou même un pas de calcul trop long, peut donner un résultat totalement faux!
Exercice 42: Cet exercice a pour but de mettre en évidence l'effet de la méthode de résolution des équations
différentielles sur la qualité de la simulation.
A Lancer une simulation avec le fichier simulink simafpos.mdl. (W:\ReguTool\Réglage). Il s'agit de la
simulation d'un moteur à courant continu réglé en position, les frottements sont simulés selon le modèle de
Coulomb, qui implique une discontinuité de la fonction à vitesse nulle. Récupérer les données depuis l'espace de
travail et les afficher dans la figure 1 de 0 à 0,6 [s] sur une amplitude de –0.2 à 0.6. Par la suite, chaque essai
devra faire l'objet d'une nouvelle figure, afin de pouvoir comparer. Dans chaque cas, indiquer un titre à la figure
qui permette de repérer l'essai concerné.
B Dans le bloc «Régulateur3», remplacer la valeur 0.026 par 0.027 (moins de 4 % de changement!). Lancer une
simulation. Qu'observe-t-on? Arrêter la simulation après un moment.
C Dans la fenêtre de choix des paramètres de simulation, remplacer la méthode Dormand-Prince d'ordre 5 à pas
de calcul variable (Ode45) par celle de Dormand-Prince d'ordre 5 à pas fixe de 0.01 [s] (Ode5) sans rien changer
d'autre par rapport à B. Lancer une simulation. Qu'observe-t-on? Quelle conclusion en tirer?
D Augmenter la valeur du pas par rapport à C à 0.016 [s]. Lancer une simulation. Qu'observe-t-on? Augmenter
la valeur du pas à 0.017 [s]. Lancer une simulation. Qu'observe-t-on? Quelle conclusion en tirer?
E Par rapport à C, remplacer la méthode Ode5 par Ode1 sans changer le pas. Lancer une simulation.
Qu'observe-t-on? Quelle conclusion en tirer?
Souvent, dans les applications professionnelles, on utilise la même structure de schéma pour simuler plusieurs
installations semblables (p. ex. moteurs électriques de plusieurs dimensions). Seules varient alors les valeurs
numériques incluses dans un nombre limité de blocs. En général, ces paramètres sont désignés dans le schéma
par un nom de variable plutôt qu'une valeur numérique. Les valeurs numériques sont dans ce cas fixées dans un
programme MATLAB qui lance également l'exécution du schéma Simulink concerné. En variante, on peut aussi
concevoir le programme d'appel pour qu'il se limite à ouvrir la fenêtre du schéma: la simulation sera dansce cas
lancée manuellement par l'utilisateur.
25
Depuis Simulink, les résultats peuvent être transférés dans l'espace de travail MATLAB, sous forme de tableaux de
valeurs. On dispose alors de tous les outils MATLAB pour les traiter par calcul, les présenter graphiquement, etc.
A l'inverse, un tableau de valeur peut aussi être importé depuis l'espace de travail MATLAB dans un schéma
Simulink. Ce sont les blocs To Workspace et From Workspace.
Exercice 43: Dans cet exercice, il s’agit de travailler la construction de vecteurs, l’usage d’une boucle, le
transfert de données entre un programme MATLAB et un fichier Simulink et enfin l’usage des fonctions graphique.
A créer un schéma simulink contenant 3 blocs reliés :
Step, Transfer Fcn et To Workspace
La fonction de transfert sera la suivante, un filtre analogique d’ordre 2 :
Gs ( s ) =
K
(1 + s* 2 * delta / omega + s ^ 2 / omega^ 2)
B Créer sous MATLAB un programme d’exécution du fichier créé en A avec tracé sur le même graphique de six
courbes : l’entrée et la sortie pour les valeurs suivantes des paramètres littéraux :
K=1
omega=50
delta= 0.2, 0.5, 1/ 2 , 1, 2
Chaque courbe doit se distinguer, même à l’impression sur imprimante NB, et doit être munie d’une légende
indiquant le valeur de delta.
On veillera à la “ beauté ” des courbes et à la rapidité des calculs : essayer différents paramétrage pour la
résolution numérique des équations différentielles cachées derrière le fichier Simulink.
Exercice 44 Refaire l’exercice 36 à l’aide d’un schéma simulink et d’un script d’appel. On peut se contenter
d’une seule figure. Essayer avec diverses valeurs de α et diverses méthodes de résolution (sélectionnées dans la
fenêtre « simulation/simulation parameters » du fichier simulink).
Indications : sim, plot, …
Modifier le script pour qu’on puisse définir le mode de résolution et le premier pas dans l’espace de travail. On
peut alors fermer la fenêtre simulink.
Indications : simset, simget, …
Exercice 45 Refaire l’exercice 40 – un circuit RLC – à l’aide d’un schéma simulink et d’un script d’appel.
Indications : sim, plot, …
Certains blocs Simulink font explicitement appel à des fonctions MATLAB, qui seront appelées et exécutées à
chaque instant de calcul.
26