Vous êtes sur la page 1sur 15

Matlab/Simulink

MASTER ASE 1re anne


UE M1-103 :

Outils de simulation
Partie : Matlab

Pierre Bonnet

USTL - Master ASE M1 Outils de simulation - 2008-2009

Matlab/Simulink

Prsentation du logiciel Matlab/Simulink(V6)


Le logiciel Matlab est un logiciel de programmation structure et de manipulation de donnes
numriques dont le champ dapplication est essentiellement les sciences appliques. Son objectif, par
rapport aux autres langages, est de simplifier au maximum la transcription en langage informatique dun
problme mathmatique, en utilisant une criture la plus proche possible du langage naturel scientifique.
Le logiciel fonctionne sous Windows (mais aussi sous Linux ou sur des stations de travail). Son
interface de manipulation HMI utilise les ressources usuelles du multi-fentrage. Son apprentissage
nexige que la connaissance de quelques principes de base partir desquels lutilisation des fonctions
volues est trs intuitive.

I - Introduction
Matlab est un logiciel interprt (donc sans phase intermdiaire de compilation) qui excute les
oprations demandes squentiellement, avec possibilit de boucles, de test et de saut. Il ne manipule
que des donnes numriques et ne sait effectuer aucun calcul formel priori.
Ecran de base

L'cran de base comprend l'cran de contrle Command Window ainsi que des fentres
complmentaires permettant de suivre le fonctionnement gnral d'une application.
Les instructions frappes (ou colles) dans la Command Windows s'excutent directement.

Les commandes peuvent tre relances dans la fentre Matlab simplement en remontant la liste
par et en validant la ligne par Return .
L'excution d'une ligne provoque automatiquement l'affichage des rsultats sous forme d'une
liste de donnes numriques. Cette fonctionnalit peut tre bloque en mettant un ";" la fin de chaque
ligne de programme (prfrable lorsque le calcul concerne une matrice de grande dimension).

USTL - Master ASE M1 Outils de simulation - 2008-2009

Matlab/Simulink

Programme Matlab

Il est toutefois prfrable de construire un programme avec un diteur de texte (Bloc-Notes sous
Windows, Open Office ou l'diteur intgr), de le sauver sur disque sous le nom monappli.m .

Le programme peut tre lanc depuis la fentre d'dition en appuyant sur le bouton
.
D'autres boutons permettent le dbogage des programmes avec points d'arrt et excution pas pas. A
noter que Matlab possde toutes les fonctionnalits d'un logiciel moderne de programmation.
Tout programme enregistr sous l'extension .m peut tre lanc depuis la Commande Windows
de Matlab, en frappant son nom (sous rserve que le chemin d'accs au fichier soit dclar sous Matlab
voir la commande Set Path du menu Fichiers - .
Aide sur Matlab

Il existe deux types d'aides sur Matlab 6 : l'aide intgre aux fonctions (existant sur les
prcdentes versions ) ou l'aide hypertexte.
La commande >> help ou >> help nom-de-fonction permet d'obtenir une aide sur le logiciel en
gnral, un Toolbox ou une fonction particulire. C'est pourquoi il n'est pas indispensable de connatre
le manuel complet de Matlab pour s'en servir !
L'aide hypertexte est d'une trs grande richesse. Elle inclut la description des fonctions, des
exemples, des dmonstrations en ligne, des rfrences bibliographiques. L'aide hypertexte est un
vritable cours ! Attention au volume total de la documentation fournie, qui reprsente l'quivalent
d'une encyclopdie (plus de 30 000 pages en 2003)

II - Variables Matlab
Les variables s'utilisent sans dclaration pralable de type, Matlab adoptant en interne l'objet
matrice pour toutes les variables (scalaires ou non, relle ou imaginaire, chane de caractres...) . Le
type (dimensionnement de la matrice) est donc gr automatiquement d'aprs l'usage (affectation) de la
variable. Des calculs ou application de fonctions entre types non cohrents seront signals par un
message d'erreur et blocage de l'excution du programme cette ligne.

USTL - Master ASE M1 Outils de simulation - 2008-2009

Matlab/Simulink

Exemple de dclaration:
>> A = 1 <return>
A=
1
>> B = 2 + 3i <return>
B=
2.0000 + 3.0000 i
>> whos <return>
Name
Size
Elements
B
1 by 1
1
A
1 by 1
1

Bytes
16
8

Density Complex
Full
Yes
Full
No

Toute variable utilise est range dans l'espace mmoire appel workspace et y reste moins
d'effacer le workspace par la commande clear all ou commande au menu. Le contenu du workspace peut
tre affich par l'instruction who (nom seul des variables) ou whos (noms avec description du type). La
valeur d'une variable s'affiche en frappant simplement son nom (sans le ";" en fin de ligne!). Son
dimensionnement s'obtient par : >> size(variable)
Sur la version 6, le workspace est affich dans une fentre spcifique. En cliquant sur une
variable de la fentre, les valeurs apparaissent.

Certaines variables usuelles comme i , pi ou eps (epsilon de valeur 2-52 ) sont prdfinies
(attention, pi peut tre modifi !). Le nombre de variables utilisables n'est limit que par la place
mmoire. Les variables sont locales (sauf spcification contraire) et il n'y a aucun risque de modification
d'une variable par une fonction qui utiliserait une variable interne de mme nom.
Le langage Matlab manipule sans difficult toutes les variables usuelles.
Scalaires:

C'est le type le plus simple, avec la gestion implicite des complexes.


r=3

y = -99.25

theta = 1.60210E-20

u = 3 + 4*i

t = 1 + 3.14E-3i

w = r * exp(i*theta)

Il est possible de dfinir une variable partir d'autres, pourvu qu'elles aient une valeur
numrique, donc qu'elles aient t prcdemment dfinies :
Vecteurs et Matrices

Les vecteurs et matrices suivent l'criture naturelle, les lments tant des nombres ou des
variables prcdemment dfinies.
>>
>>
>>
>>

x1=
y1 =
y2 =
z=

[-1 0 1] ;
[-1 ; 0 ; 1 ]
[ -1 0 1 ] '
[1 2 3;4 5 6]

% vecteur ligne
% vecteur colonne
% ' signifiant "transposition"
% matrice 2 lignes x 3 colonnes

USTL - Master ASE M1 Outils de simulation - 2008-2009

Matlab/Simulink

Les vecteurs ou matrices peuvent tre gnrs suivant une loi incrmentale:
>> x = 1 : 5 <return>
x=
12
3
4
>> y = 5 : -1 : 1 <return>
y
5
4
3
>> z = ( 0.0 : 0.2 : 1.0 )' ;

2
1
% vecteur colonne 6x1 par utilisation de la transposition

Le pas peut tre spcifi, avec ventuellement une valeur ngative.


Les lments des vecteurs et matrices sont accessibles individuellement ou par groupes:
>> A = randn(10) ;
%cre une matrice de taille 10x10 coef alatoires
>> som1= A(1,1) + A(2,2) + A(3,3) ;
>> x = A( 1:5 , 3 ) ;
% met dans x les lments 1 5 de la colonne 3 de A
>> y = A(1:5, :) ;

% met dans y les 5 premires lignes de A

Construction par Concatnation :


>> z = [ x x ]

% z est une matrice 6lignes x2 colonnes

Matlab permet de gnrer directement des matrices particulires:


>>
>>
>>
>>
>>
>>

zeros(m, n) ;
ones (m,n) ;
randn() ;
eye() ;
linspace()
logspace(n1,n2)

% matrice nulle de dimension mxn


% matrice de "1"
%matrice lments alatoire de distribution normale,
%matrice identit,
%vecteurs en suite linaire
%vecteurs en suite logarithmique de 10^n1 10^n2.

III - Fonctions Matlab


L'criture est voisine de l'criture informatique avec quelques variantes lorsque le rsultat ne
correspond pas une mthode clairement identifie en mathmatique.
Expressions arithmtiques

Les oprateurs les plus courants sont :


+

Attention: les variables tant ventuellement des matrices, certaines oprations doivent tre
interprtes.
>> nb_scalaire = 3 ;
>> A = [ 1:5 ; 2 : 6 ] ;
>> B = A* nb_scalaire ;

% multiplication de tous les lments de A par nb .

Fonctions mathmatiques

L'utilisateur dispose de toutes les fonctions usuelles telles abs, sqrt (racine carre), real, imag,
conj, angle (phase d'un complexe) , sign, exp, log, log10 ,sin, cos, tan, asin, acos, atan, sinh ...
Ces fonctions s'appliquent tout type de variables ( scalaire, complexe ou matriciel)
>> x = [0 : 0.1 : 10] ;
>> alpha = 3 ;
>> y = alpha * (exp ( i * x ) exp( -i * x ))/ ( 2 * i );

% dfinition vecteur x
% y est un vecteur

USTL - Master ASE M1 Outils de simulation - 2008-2009

Matlab/Simulink

Calculs Matriciels

Les oprations de bases ( + , - , * ) sappliquent implicitement aux matrices.


>> A = [ 1:5 ] ;
>>
>>
>>
>>

B = [ 11 : 15 ] ;
C1 = A * B ;
C2 = B * A ;
C3 = A * A ;

% donne un scalaire
% donne une matrice 5x5
% calcul impossible (erreur de dimension)

Matlab vrifie les dimensions des calculs ; certaines erreurs seront ainsi dtectes mais il arrive
souvent que le calcul corresponde une expression calculable.
La division matricielle de deux matrices carres de mmes dimensions correspond la fonction
inverse de la multiplication:
>> C = A / B
>> C = B \ A

% quivalent C = A * inv(B)
% quivalent C = inv(B) * A

Les oprations propres au calcul matriciel sont gnralement dfinies en Matlab comme le
dterminant det(A), l'inversion inv(A), la diagonalisation diag(A) , les valeurs propres eig(A).
Le polynme caractristique P dfini par det I A d'une matrice peut tre extrait et
ses racines calcules.
>> A = [ 1 2 3 ; 3 1 2 ; 4 6 5 ] ;
>>
>>
>>
>>
>>

lambda = eig(A) ;
k = det(A) ;
P = poly (A) ;
R = roots(poly(A))
prodrac = prod(R)

% donne les valeurs propres ranges en colonne


% dterminant (= produit des valeurs propres)
% polynome caractristique dfini par ses coefficients
% redonne les valeur propres de A ranges en colonne
% redonne le dterminant

Les oprations comme la racine carre, le logarithme demandent interprtation. Par dfaut,
l'opration usuelle s'applique aux lments de la matrice et donne un rsultat de mme dimension.
Pour la racine carre B d'une matrice A (qui satisfait l'quation B*B = A ), on dispose de la
fonction sqrtm(A) qui est diffrente de l'opration sqrt(A) qui donne la racine carre de ses lments.
Un certain nombre doprations sont tendues aux matrices non-carres comme la rsolution de
X = A \ B solution de A * X = B avec X vecteur qui fait appel la solution usuelle dfinie par les
moindres -carrs ( X = (ATA)-1ATB )
Calculs terme terme

Matlab permet aussi des oprations point par point (ou terme terme) c'est dire en
considrant les matrices comme des tableaux (array) et en n'utilisant pas les rgles du calcul matriciel.
Ces oprations sont notes avec un point pour signaler ce mode de calcul.
Les principales oprations point par point sont .* et ./
>> x = [0 : 0.1 : 10] ;
>> y = exp(- x / 10 ) .* sin ( x ) ;

% dfinition vecteur x
% y est un vecteur

NB : il est important de ne pas confondre les oprations classiques et les oprations


point par point .

USTL - Master ASE M1 Outils de simulation - 2008-2009

Matlab/Simulink

Traitement des donnes

Les fonctions les plus courantes sont crites comme :


- abs , min , max , valeur moyenne mean , valeur mdiane median , cart-type std , le tri sort ,
la somme sum , le produit prod , la drive numrique diff , lhistogramme hist sur des
vecteurs.
- la transforme de Fourier fft et son inverse ifft
- pour les signaux multiples (matrices composes de deux ou plusieurs vecteurs de mesures)
le module abs , la phase angle , les coefficients de corrlation corcoef , la matrice de
covariance cov la convolution conv de signaux ou la dconvolution deconv .
Fonctions graphiques

Lun des points essentiels de Matlab est la reprsentation graphique des rsultats dans une
fentre graphique Windows ( qui peut tre imprime ou recopie dans le presse-papier et incluse dans
une autre application Windows). Les fonctions graphiques sont trs simples, avec une trs grande
souplesse dutilisation grce la possibilit dintroduction dun nombre de paramtres variable en
entre de fonction.
Les fonctions graphiques sont destines reprsenter des vecteurs ou des matrices vues comme
une juxtaposition de vecteurs.
Les graphiques 2D de base sont:
>> plot ( vecteur_y )
>> plot (matrice)

% trace la courbe y avec comme abcisse le numro


d'lment pour y (chelles linaires)
% graphe de plusieurs courbes

>> plot (vecteur_x,vecteur_y) %graphe de y=f(x) si x et y ont mme longueur!

Les autres graphes sont :


>> semilogy ( vecteur_x,vecteur_y)
>> semilogx (vecteur_x,vecteur_y )
>> loglog (vecteur_x,vecteur_y )

Les graphes 2D peuvent tre enrichis par les instructions suivantes:


>> axis(xmin, xmax, ymin, ymax) dfinition manuelle des chelles (avant linstruction plot)
>> title(Titre)
>> xlabel(titre abcisse) >> ylabel(titre ordonnes)
>> text(x,y,texte) place un texte aux coordonnes (x,y) du graphique
>> gtext(texte) place le texte la souris
>> grid on fait apparatre la grille sur le graphe.
>> hold on permet de tracer plusieurs courbes successivement sur le mme graphe avec
remise lchelle automatique chaque nouvelle courbes. Les courbes doivent comporter le
mme nombre de points. Hold off annule la superposition .
>> subplot permet de subdiviser la fentre graphique et de tracer plusieurs courbes.
Sur Matlab 6, les graphiques sont des objets part entire, dans lesquels sont inclus les donnes
graphiques. L'utilisateur peut modifier la reprsentation des donnes sans r-excution du calcul.

USTL - Master ASE M1 Outils de simulation - 2008-2009

Matlab/Simulink

Exemple de programme sous Matlab

Rsultat graphique:

USTL - Master ASE M1 Outils de simulation - 2008-2009

Matlab/Simulink

Tests et Contrle de boucles


Instruction conditionnelle if

Le test suit les rgles usuelles des langages de programmation. La syntaxe des conditions est
celle du langage C :
if condition1
instruction1,
elseif condition2
instruction2,
else
instruction3;
end

La condition est construite autour d'un oprateur de relation du type == , > , < , >= etc .
La condition peut tre compose de plusieurs tests relationnels relis par "&" ou par " | " ;
chaque condition peut tre inverse par complmentation (signe " ~ ").
Exemple :
if (nombre > 10) & ~(nombre > 11 )
disp( 'nombre compris entre 10 et 11');
end

Boucle while

La boucle while est tout aussi simple:


while condition
instruction1,
instruction2,
end

Boucle for

La boucle for a une structure naturelle. Le pas est optionnel; les boucles peuvent tre imbriques.
for i = valdeb : pas : valfin
instruction1, instruction2;
end

Exemple:
omega = 0.5 ;
delta_t = 0.1 ;
for k= 1:50
% debut de boucle
t(k) = k * delta_t ;
% construction du vecteur temps
y(k) = sin ( omega * t(k) );
% construction du vecteur de sortie
end
% fin de boucle
plot( t , y )
% trac graphique

Il est possible de dfinir k comme un vecteur et de le donner paramtre du for.


t = [1 : delta_t : 50] ;
for t ....... end

Attention: dans ce cas, ne pas indicer une variable avec t dans la boucle (indice non-entier).

USTL - Master ASE M1 Outils de simulation - 2008-2009

Matlab/Simulink

10

Cration de nouvelles fonctions

La programmation MATLAB repose sur des fichiers textes. Tout ensemble d'instructions peut
tre transform en fonction pour une meilleure criture et une rutilisation dans d'autres programmes.
Pour transformer un ensemble d'instruction dites sous le bloc-notes en fonction,
1) ajouter l'entte suivant au texte :
function [param_retour1, param_retour2,...] = ma_fonction ( param_entree1, param_entree2,...)
% Lignes de commentaires qui serviront de "help"

debut instructions fonction


instruction1
instruction2....

fin fonction
2) sauvegarder le texte avec le nom ma_fonction . m dans un rpertoire accessible Matlab.
Une fois sauvegarde, la fonction est utilisable dans tout programme, comme toute autre
fonction du noyau Matlab.
A la diffrence des langages usuels, le nombre de paramtres d'entre ou de sortie dans une
fonction peut tre variable, sans toutefois dpasser le nombre annonc. Le nombre de paramtre se teste
par les fonctions nargin et nargout . Cette fonctionnalit permet de dfinir un usage multiple d'une mme
fonction, selon le nombre de paramtres introduits l'appel de la fonction. Le type des paramtres
(scalaire, matrice...) n'est pas non plus prcis ce qui offre une grande souplesse. Par un test du type
pass (isnumeric, ischar, iscomplex...) l'intrieur mme de la fonction, il est possible de modifier le
comportement de la fonction selon le type.
Il est donc possible de crer des nouvelles fonctions trs facilement partir des fonctions
existantes pour constituer une bibliothque dans un domaine d'application appele Toolbox ( Signal
Processing Toolbox , Control Toolbox... ). Une bibliothque est donc un ensemble de fichier textes
modifiables ventuellement par l'utilisateur pour ses propres besoins. Elle peut comprendre aussi des
fonctions compiles dont la vitesse d'excution est plus grande .

IV - Les systmes en Automatique


Matlab permet reprsenter directement les systmes dcrits par leur fonction de transfert.
Plusieurs reprsentations sont possibles : polynomiale, ples et zros ou tat; le logiciel dispose des
outils ncessaires pour passer d'une forme l'autre et pour tudier les rponses de ces systmes. Ces
outils sont applicables sur les systmes continus et les systmes discrets.
Forme polynomiale

On considre que la fonction de transfert G p est crite sous la forme :


G p =

b m pm bm1 p

m1

m1

.. . b0

a n p n a n1 p n1 .. . a 0

Cette fonction de transfert se dfini en Matlab sous forme de deux vecteurs ligne reprsentatifs
des coefficients des polynmes du numrateur et du dnominateur.
>> nume = [ bm bm1 .. . . b 0 ] et >> deno = [ a n a n1 .. . a 0 ]
Les noms utiliss pour la description sont gnriques (vous pouvez donner un autre nom au
numrateur ou au dnominateur)
La fonction TF permet de dfinir un systme partir de sa forme polynomiale
>> mon_systeme = TF(nume, deno).
USTL - Master ASE M1 Outils de simulation - 2008-2009

Matlab/Simulink

11

Le systme devient une entit objet qui pourra tre manipule directement.
Par dfaut, le systme est suppos reprsenter un systme continu de la variable 'p' ou 's' pour les
anglophones. La reprsentation supporte les systmes MIMO .
Systme retard pur

Il est frquent qu'un systme comporte physiquement un retard pur (par exemple coulement
d'un fluide dans un canal de transport) ; de plus, les modles de reprsentation usuels (Broda, Strejc)
font intervenir un retard pur dans la fonction de transfert. Matlab prend en compte un retard en
indiquant cette proprit dans la description du systme; cette proprit peut tre ajoute ds la
description initiale ou ultrieurement.
>> mon_systeme = TF(nume, deno, 'iodelay' , valeur_retard ).

ou
>> mon_systeme = TF(nume, deno)

puis >> set(mon_systeme,'iodelay', valeur_retard)

Forme zros-ples

Dans cette reprsentation, on considre que G p est reprsente sous la forme :


G p = K

p z 1 . .. p z n
p p1 .. . p p n

Cette fonction de transfert se dfini en Matlab sous forme de deux vecteurs lignes reprsentatifs
des coefficients des polynmes du numrateur et du dnominateur.
>> mes_zeros = [ z 1 z 2 .. .. z n ] et >> mes_poles = [ p 1 p 2 .. . pn ].
L'entit systme se dfinit partir des zros et ples par la fonction ZPK :
mon_systeme = ZPK(mes_zeros, mes_poles, K)

. La fonction pzmap permet de reprsenter les ples et zros dans le plan complexe.
Forme tat

Dans cette reprsentation, le systme continu est dcrit par les matrices A,B,C et D :
X = A X B u
Y =C X Du
Matlab est tout particulirement adapt cette reprsentation. Il suffit donc de dfinir les
matrices caractristiques et de construire le systme avec la fonction ss :
mon_systeme_etat = SS ( A, B, C, D)

Changement de reprsentation

Depuis les versions 5 et 6 incluant la notion de systme, le changement de reprsentation des


systmes continus est trs facile puisqu'il suffit de dfinir le nouveau systme partir de l'ancien.
Exemple:
mon_systeme = tf(nume, deno)
syst_etat = ss(mon_systeme)
syst_zp = zpk(syst_etat) ou syst_zp = zp(mon_systeme)

Les ples et zros d'un systme sont donns directement par zpkdata(sys)

USTL - Master ASE M1 Outils de simulation - 2008-2009

Matlab/Simulink

12

Passage continu <-> chantillonn

Tout systme continu peut tre transform en systme discret quivalent.


systeme_discret = c2d( systeme_continu, Tech, 'Method')

Les mthodes proposes sont des approximations (Euler, trapze, Tustin..). Elles ne
correspondent pas au mthodes exactes dfinies dans les cours d'Automatique (exponentielle de la
matrice ou transforme en z)
. Rponse temporelle
La rponse temporelle est obtenue sur un systme quelconque par simulation. Les diffrentes
possibilits offertes par Matlab sont:
y=impulse(systeme,t )

calcul de la rponse impulsionnelle pour les instants dfinis par le vecteur t

y=step(systeme, t)

calcul de la rponse indicielle pour les instants dfinis par le vecteur t

y=lsim(systeme,u,t)

calcul de la rponse l'entre u pour les instants dfinis par le vecteur t

Note: la dfinition du vecteur temps est optionnelle; en l'absence de vecteur temps, la fonction arrte le
calcul lorsque le rgime final est atteint.

Rponses frquentielles

Les diffrentes rponses frquentielles usuelles


bode(systeme,w)

lieu de Bode pour les pulsations du vecteur w

nyquist(systeme,w)

lieu de Nyquist pour les pulsations du vecteur w

nichols(systeme,w)

lieu de Black pour les pulsations du vecteur w ; ngrid


permet de faire apparatre les valeurs de la boucle ouverte

[margeGain,margePhase,Wcg,Wcp] =
margin(systeme)

calcul des marges de gain et de phase, ainsi que de leur


pulsations associes

Note: la dfinition du vecteur frquence est optionnelle; en l'absence de vecteur frquence, la


fonction arrte le calcul lorsque la rponse frquentielle atteint une asymptote.

Cascade de fonctions de transfert et boucle

Matlab permet de dterminer les fonctions de transfert de systmes en cascade, en parallle,


boucl en retour unitaire ou boucl par un transfert quelconque.
systeme3 = series(systeme1,systeme2)

mise en cascade de deux fonctions de transfert

systeme3 = parallel(systeme1,systeme2)

mise en parallle de deux fonctions de transfert

systemebf = cloop(systeme,sign)

calcul de la fonction de transfert boucle pour un retour


unitaire

systeme3 = feedback
(systeme1,systeme2,sign)

calcul de la fonction de transfert boucle pour un retour


quelconque

USTL - Master ASE M1 Outils de simulation - 2008-2009

Matlab/Simulink

13

V - Simulink
Le Toolbox Simulink est une fonction lance depuis Matlab qui donne accs une description
graphique des problmes avec application au traitement du signal, lautomatique classique, la logique
floue...
La base est une description en schma-bloc hirarchique, chaque bloc tant une fonction dcrite
en langage Matlab ou partir dautres blocs. Pour lutilisateur, la description et lexcution de Matlab
est transparente dans les problmes usuels. Il ne se proccupe que de la construction graphique de son
problme avec ventuellement cration de nouveaux blocs pour les problmes avancs. La sauvegarde
des applications Simulink est un fichier texte d'extension m .
Pour dmarrer Simulink, frapper dans la fentre de commande :
>> simulink

ou bien appuyer sur le bouton

de la fentre principale de Matlab.

Ds le lancement, Simulink propose dans une fentre la bibliothque des structures prdfinies
usuellement rencontres, ainsi que les objets graphiques dfinis dans les Toolbox.

Nouvelle feuille

Par appui sur File ->new, une fentre vide est ouverte pour construire le schma graphique. La
construction graphique se fait par "drag and drop" depuis les lments de la bibliothque. Un doubleclic sur un lment permet d'en faire apparatre les proprits.
USTL - Master ASE M1 Outils de simulation - 2008-2009

Matlab/Simulink

14

Menus

Ces menus donnent accs au contrle gnral de l'application.


menu "file":

permet de crer une fentre vide pour un nouveau schma , de rappeler


un schma prcdent ou de faire une sauvegarde.

menu "simulation" : permet de fixer les paramtres d'une simulation, de la lancer ou de la


stopper. Le pas de calcul et le temps total de simulation doivent tre
adapts au problme traiter (chelle des temps matriser).
Liaisons

La liaison entre les blocs se fait par cblage la souris dont le fonctionnement est implicite en
labsence de toute slection souris. Les entres de bloc sont gnralement gauche et les sorties
droite, les liaisons tant orientes sortie-bloc-prcdent vers entre-bloc-suivant .
Un branchement (jonction) se fait en pointant la liaison sur laquelle le branchement se fait, puis
en maintenant la touche "control" du clavier enfonce, en dplaant la souris . L'amaorce du
branchement est alors faite.
multiplexeur et dmultiplexeur

C'est un bloc particulier; il permet de passer plusieurs signaux dans une mme liaison. Il est
indispensable pour certains blocs prdfinis (blocs entre ou sortie du type vecteur), utile pour
visualiser deux signaux sur le scope , ou passer simplement plusieurs paramtres vers Matlab.
Le dmultiplexeur excute la fonction inverse.
Lensemble de ces outils permettent de crer trs rapidement un schma de simulation
incluant des fonctions du 1er ordre, 2me ordre, des gains, des sommateurs des boucles. La simulation
elle-mme se lance par le menu simulation, aprs avoir dfini la mthode de rsolution des quations
diffrentielles caractrisant certains blocs ( Euler, Range-Kuta dordre 23 ou 45, Adams...) et la
prcision souhaite.
Exemple de construction d'un schma de simulation:

Lancement de
la simulation

USTL - Master ASE M1 Outils de simulation - 2008-2009

Matlab/Simulink

15

Communication avec Matlab

La communication avec Matlab se fait avec des blocs workspace d'entre ou de sortie dans
lesquels l'utilisateur donne le nom du vecteur utilis sous Matlab .
Dans les versions actuelles, deux approches possibles (la deuxime est prfrable parce que plus
explicite et plus gnrale):
- placer un bloc in ou out dans le schma et paramtrer la simulation partir du menu
simulation --> parameters . La taille du workspace de sortie doit tre adapt au nombre de points de
calculs (fix par dfaut 1000, valeur presque toujours insuffisante). La mthode de simulation tant
gnralement pas variable, il est conseill de renvoyer le vecteur des instants de simulation (inutile si
ce vecteur a t donn en entre!).
- placer un bloc from workspace ou to workspace et le paramtrer. L'utilisateur retrouve dans le
workspace de sortie les valeurs issues du rsultat numrique de la simulation pour chaque instant, sous
forme d'un tableau (array) de rsultats de simulation. Le mode "structure" permet de retrouver le signal
par notation objet, en incluant les instants de simulation si ncessaire.

Pour retrouver les lments dans la structure de donnes, il suffit de parcourir l'arborescence de
l'objet. Dans l'exemple ci-dessus, la structure est la suivante :
sim_data =

time: [54x1 double]


signals: [1x1 struct]
blockName: 'ma_simulation/To Workspace'

Les valeurs de la sortie de la fonction de transfert sont accessibles par :


A = sim_data.signals.values( : , 2 )

Il est ainsi possible de mixer des calculs fait sous Matlab avec d'autres mens en simulation.
Parmi les nombreuses autres fonctionnalits utiles, il est possible de retrouver une reprsentation
de type tat ou transfert d'une simulation Simulink linarise autour d'un point de fonctionnement par
[num,den] = linmod('sys', x, u) o x est l'tat initial et u un vecteur d'entre amenant le systme un point
de fonctionnement donn.
Simulink offre aussi des perspectives de programmation classique, grce des fonctions de test
(bloc if et case), de boucle (blocs for et while )et de contrle de structure (bloc call ).

USTL - Master ASE M1 Outils de simulation - 2008-2009