Vous êtes sur la page 1sur 8

Utilitaires de Calculs III Calcul numrique et Simulation : Matlab/Simulink Scilab

3.2.

Matlab/Simulink 3.2.1. Gnralits

Il sagit dun logiciel parfaitement ddi la rsolution de problmes d'analyse numrique ou de traitement du signal. Il permet d'effectuer des calculs matriciels, de visualiser les rsultats sous forme graphique. La formulation des problmes s'apparente la formulation mathmatique des problmes rsoudre. Lutilisation du logiciel consiste lancer des lignes de commandes, qui peuvent le plus souvent sapparenter de la programmation en C. Associ Simulink (commande lance sous Matlab), il devient un outil graphique trs simple dutilisation pour la simulation de processus (programmation par copier/coller de blocs fonctionnels). 3.2.2. Travailler avec Matlab Matlab dispose de plusieurs fentres (selon les versions) dont la principale est la fentre de commande (Command Window) associe lespace de travail (Workspace). Il sagit de la premire fentre ouverte dans laquelle seront tapes les diffrentes 'commandes' aprs le prompt '>>'. C'est galement dans cet espace de travail que sont dfinies toutes les variables utilises par Matlab. (cf. Figure 3.4, commande whos) La syntaxe gnrale d'appel d'une fonction est : [s1, s2, ..., sn ] = nom_fonction(e1, e2, ..., ep) o les ei sont les paramtres d'entre de la fonction nom_fonction et les sj les paramtres de sortie. Le point virgule ';' facultatif dernire une commande empche l'affichage du rsultat de celle-ci (bien utile lorsque le rsultat est un vecteur de grande taille).

Walter.nuninger@univ-lille1.fr

page 23

Utilitaires de Calculs III Calcul numrique et Simulation : Matlab/Simulink Scilab

Figure 3.4 : Matlab v.5.2.1.1420 Fentres de Commande, Simulink, Scope, second.mdl

Figure 3.5 : Matlab v3 Fichier programme, courbe.m

Walter.nuninger@univ-lille1.fr

page 24

Utilitaires de Calculs III Calcul numrique et Simulation : Matlab/Simulink Scilab

Figure 3.6 : Matlab v3 Fentre graphique rsultat du programme courbe.m (figure 3.5) Lintrt de Matlab est de pouvoir travailler sur des fichiers dextension .m contenant des suites de commandes (crs avec un simple diteur de texte) et lanc par leur nom (sans extension) comme une commande. Un exemple est donn sur la Figure 3.5, avec son rsultat sur la Figure 3.6. Il est impratif avant d'utiliser une commande de regarder sa syntaxe, c'est le rle de la commande : help <commande_cherche> lorsque la commande est connue lookfor <mot clef anglais> permet une recherche par mot clef (ou une partie) Toutes les commandes unix sont utilisables dans le workspace, il suffit de faire prcder celles-ci d'un point d'exclamation. Par exemple, ! ls la) (= dir). On notera que Matlab permet de manipuler facilement les fonctions de Transfert (cf. cours dAutomatique, cf. cours de Mathmatiques (transforme de Laplace)) pour ltude du processus. Associ Simulink, cela en fait un outil trs pratique.

3.2.3. Travailler avec Simulink Simulink est un logiciel de simulation de systmes dynamiques muni d'une interface graphique pilote par souris, ce qui facilite les deux phases d'utilisation du logiciel : saisie du modle et analyse du modle. Il sagit dune extension du logiciel de calcul Matlab qui propose de nombreuses bibliothques de modles intressant lingnieur (modles de type fonctions de transfert (linaire ou chantillonnes...)) car immdiatement exploitables. La figure 3.6 prsente la fentre de bibliothque (Library) ainsi quun exemple de fichier de simulation (second.mdl).

Walter.nuninger@univ-lille1.fr

page 25

Utilitaires de Calculs III Calcul numrique et Simulation : Matlab/Simulink Scilab

Figure 3.7 : Simulink v1.3c Fentre bibliothque de modles Pour accder aux modles qu'elles proposent, il suffit de cliquer deux fois (bouton de gauche) sur l'icne correspondante. Les diffrentes bibliothques sont (cf. figure 3.7) : Sources Sinks Discrete Linear Nonlinear Connections Extra permet de crer des signaux d'entres (ex. chelon, sinus, bruits...) permet de rcuprer les signaux de sorties (ex. oscilloscope, fichier,...) propose des modles de fonctions de transfert numriques propose des modles de fonctions de transfert analogiques modles non linaires divers outils permettant de connecter diffrents blocs (multiplexeur) contient diffrentes bibliothques spcifiques

Pour travailler, il convient de crer un nouveau fichier en ouvrant le menu droulant FILE et en slectionnant : NEW. Vous crez ainsi un espace de travail Simulink qui vous permettra de crer vos propres modles. N'oubliez pas de sauvegarder votre fichier. Pour utiliser un modle existant il suffit de slectionner le modle l'aide de la souris, dans le menu EDIT de copier celui-ci (COPY) puis de le coller (PASTE) dans son espace de travail (fichier .mdl). L'utilisation des raccourcis Ctrl-C et Ctrl-V (copier/coller) est possible. Sur la Figure 3.4, un exemple de fichier de simulation dun systme du premier ordre avec retour de la sortie est donn ainsi que le rsultat de la simulation dans la fentre Scope (rponse indicielle). On note que pour dfinir les paramtres du modle copi, il suffit de cliquer deux fois sur celui-ci. Une fentre de dialogue s'ouvre alors (cf. Figure 3.8). Vous devez remplir les informations ncessaires en respectant la syntaxe propose. Il est trs intressant d'introduire des paramtres formels dans les blocs utiliss. L'intrt est une plus grande souplesse de travail lorsque lon choisit de modifier les paramtres. Les variables utilises (ou cres) par Simulink sont dfinies (ou rcupres) dans l'espace de travail de Matlab. Ainsi, on crera un programme Matlab qui dfinira toutes les variables ncessaires (par exemple numrateur et dnominateur des fonctions de transfert).

Walter.nuninger@univ-lille1.fr

page 26

Utilitaires de Calculs III Calcul numrique et Simulation : Matlab/Simulink Scilab

Figure 3.8 : Simulink v1.3c Exemple de fentre de dialogue pour le bloc Transfer Fcn Les connections entre les diffrents blocs se ralisent la souris en cliquant sur la sortie d'un bloc et en tirant le fil ainsi cr jusqu' l'entre du bloc suivant. Pour modifier la position d'un fil, il suffit de le slectionner en cliquant avec le bouton de gauche de la souris (la slection est visualise par un cercle). Les signaux de sortie sont rcuprs dans une variable du Workspace, dans un fichier dextension .mat ou visualiss lcran selon la SINKS choisie (cf. Figure 3.10 Avant de simuler, assurez-vous que votre schma comporte un signal d'entre (chelon par exemple pour une rponse indicielle), un signal de sortie et que tous les paramtres des blocs sont dfinis. Afin de rcuprer le temps de simulation, il est prudent d'ajouter une horloge (Clock) et d'en sauvegarder la valeur de sortie dans un vecteur.

Figure 3.9 : simulink v1.3c Exemple de fentre de dialogue pour le bloc Transfer Fcn

Walter.nuninger@univ-lille1.fr

page 27

Utilitaires de Calculs III Calcul numrique et Simulation : Matlab/Simulink Scilab

Enfin, il est impratif de configurer les paramtres de simulation (cf. Figure 3.9) en choisissant : Algorithme de simulation L'instant de dpart L'instant de fin de simulation Le pas de calcul minimal Le pas de calcul maximal linsim (si vous travaillez en linaire), runge-kutta etc. Start time gnralement 0 seconde Stop time, pour atteindre le rgime permanent Min step size (cf. priode dchantillonnage) Max step size

Le pas de calcul varie du pas min au pas max. Ceci permet au logiciel d'augmenter la vitesse de simulation cependant ceci peut empcher l'observation de certains phnomnes transitoires. Pour viter ce problme, on peut dans un premier temps choisir les deux pas gaux. Pour un systme du premier ordre de constante de temps T, on sait que le temps de rponse est de l'ordre de 4 5 fois cette constante de temps. Il suffit donc de choisir la dure de simulation en consquence soit Stop time >5T. Par ailleurs, on prend gnralement au moins 10 points par constante de temps, ce qui conduit un pas de calcul Step size < T/1. Pour les systmes d'ordre n de constantes de temps T1, T2, ..., Tn, on peut faire les choix suivants : Stop time > 5.max(T1,..., Tn), Step size < min(T1,..., Tn)/10. On lance la simulation en cliquant sur Start du menu Simulation. Au bip, la simulation est termine. Vous pouvez ds lors utiliser ces rsultats. Attention, si vous simulez nouveau, vous perdrez les anciens rsultats. On peut galement la lancer dun fichier par : linsim('fichier_simulink',[start_time,stop_time],[ ],[tolerance, min_step_size,max_step_size]); 3.2.4. Commandes utiles de Matlab et modles de Simulink % whos clear, clear <var> help lookfor mot fprintf('chargement \n'); load <fchier_donnes> save <esultat> <var> ligne de commentaire donne la liste des variables dj dfinies et leur taille efface toutes les variables (ou l'une d'elle <var>) donne la liste de toutes les commandes (bibliothques) cherche les commandes avec 'mot' dans leur nom ou dfinition. affiche un commentaire l'cran chargement des donnes de fichier_donnes.mat sauvegarde la variable var (si elle existe) dans rsultat.mat

Vecteurs, matrices, variables t=deb:pas:fin; cre un vecteur de points espacs de pas sur [deb,fin] a=2+3j dfinie un nombre complexe (i tel que i*i=-1 est not i ou j ) find(condition_sur_x) renvoie les indices des points de x vrifiant la condition (x>100) n=[2 1]; A=[1 2 ; 2 4] dfinition de vecteur (polynme) ou matrice zeros(1,4), cre un vecteur ligne (1x4) de zros ones(5,1) cre un vecteur colonne (5x1) de 1 eye(4) cre une matrice identit 4x4 diag(x) cre une matrice diagonale avec les lments de x [y,m]=max(x) renvoie le maximum de x (y) et son indice (m) si x est un vecteur
Walter.nuninger@univ-lille1.fr page 28

Utilitaires de Calculs III Calcul numrique et Simulation : Matlab/Simulink Scilab

size(A) renvoie le nombre de ligne et de colonne de A A(i,j), A(:,2), A(1,:) renvoie l'lment de la ime ligne et de la jme colonne de A , renvoie la deuxime colonne de A , la premire ligne de A inv(A) calcul l'inverse de A A' calcul de la transpose de A det(A) calcule du dterminant de A Tracs de courbes Figure, figure(i) cre une nouvelle figure, rend active la figure numro i w=logspace(-2,2,100); cre une chelle logarithmique de 100 points entre 0.01 et 100 diff drive numrique. plot(t,y) trac de y en fonction de t plot(t,y,'r',t,z,'g') trac de y (rouge) et z (vert) fonction de t sur le mme graphe title('titre') , grid met le 'titre' en titre de la figure ; trace une grille sur le graphe xlabel, ylabel tiquettes des abscisses et des ordonnes gtext place un commentaire ( la souris) sur le graphe hold on, hold off permet de tracer plusieurs courbes sur le mme graphe zoom on, zoom off permet de faire le zoom d'une zone l'aide de la souris close, close (i) fermet la fentre active ou prcise (i) subplot(231); subplot(232) permet de diviser la fentre graphique en 6 zones (2x3), 2 lignes, 3 colonnes. Les diffrentes zones sont repres de 1 6 (cf. tableau) colonnes puis lignes. Statistiques mean(x) , std(x) polyfit(x,y,n) polyval(P,x)

valeur moyenne de x et cart-type de x (standard deviation) calcul les coefficient s d'un polynme , de degr n, passant par les points spcifis : M(x,y) permet le calcul des valeurs d'un polynme P(x), defini par ses coefficients P=(p(i,j)), pour des valeurs de x.

Sur les systmes dynamiques n=[2 1]; d=conv(n,[1 1]) dfinition du polynme d convolution de n=2x+1 et (1.x+1) printsys(n,d) permet d'afficher la fonction de transfert n/d [a,b,c,d]=tf2ss(n,d) renvoie la reprsentation d'tat correspondante n/d (cas continu) y=step(n,d,t); rponse indicielle (chelon) du systme n/d, chelle de temps : t [nbf,dbf]=cloop(n,d,-1) boucle ferme avec retour unitaire ngatif [nbf,dbf]=feedback(n,d,nc,dc,-1) boucle ferme avec correcteur (nc/dc) et retour ngatif bode, margiN Diagrammes de Bode loglog, semilogx, Trac en chelle log/log ou semi-log nyquist Diagrammes de Nyquist rlocus lieu d'Evans k=place(A,B,P) calcul du gain k tel que les ples de (A- Bk) soit P (vecteur)

Walter.nuninger@univ-lille1.fr

page 29

Utilitaires de Calculs III Calcul numrique et Simulation : Matlab/Simulink Scilab

Figure 3.10 : Simulink v1.3c Modles SOURCE et SINKS

Figure 3.11 : Matlab v5 Editeur/Debugger avec fichier td1.m ouvert.


20

15

10

y 5 0 -5 -4

-3

-2

-1

0 x

Figure 3.12 : Matlab v5 Rsultat du fichier td1.m (cf. Figure 3.11).


Walter.nuninger@univ-lille1.fr page 30

Vous aimerez peut-être aussi