Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Prsent par :
Plan de la prsentation :
1- Introduction / Gnralits 2- Fentre de Matlab 3- Programmation 4- Exemple dutilisation de Matlab en Automatique 5- Utilisation de Simulink
1- Introduction / Gnralits:
Matlab (abrviation de " Matrix Laboratory "), est un environnement informatique conu pour le calcul matriciel. L'lment de base est une matrice dont la dimension n'a pas tre fixe. Matlab est un outil puissant qui permet la rsolution de nombreux problmes en beaucoup moins de temps qu'il n'en faudrait pour les formuler en C. S'il est parfaitement adapt l'Automatique et au Traitement du Signal, sa facilit d'emploi avec des nombres complexes et ses possibilits d'affichages graphiques en font un outil intressant pour bien d'autres types d'applications.
2- Fentre de Matlab :
3- Programmation : 3-1- LES MATRICES
En Matlab, une matrice est un tableau rectangulaire de nombres reprsents en virgule flottante avec une double prcision, cest `a dire 8 octets pour un nombre rel et 16 octets pour un nombre complexe. Une matrice 11 est interprte comme un scalaire, celle ayant une seule ligne ou une seule colonne comme un vecteur.
Cration de matrices Pour crer une matrice il suffit douvrir un [, numrer les lments ligne par ligne, puis fermer le ]. Sur une mme ligne les lments sont spars par une virgule ou un espace, deux lignes successives sont spares par un point-virgule ou un retour chariot. Par exemple, linstruction
A= 1 5 9 13
-
2 6 10 14
3 7 11 15
4 8 12 16
Linstruction suivante cre la mme matrice, mais le rsultat nest pas affich car un point-virgule termine linstruction :
>> A = [1:4; 5:8; 9:12; 13:16] >> mat = rand(2,3), scal = pi, vlig = [1 2 3 4], vcol = zeros(3,1) mat = 0.4103 0.0579 0.8936 0.3529 scal = 3.1416 vlig = 1 2 3 4 vcol =0 0 0 0.8132 0.0099
Nous avons utilis ici loprateur deux-points. Cet oprateur est trs important, on lutilise trs souvent. Il permet de discrtiser un intervalle avec un pas constant. Linstruction : -
>> u = 0:9
Pour cre un vecteur u contenant les entiers de 0 peut spcifier une autre longueur de pas :
, spare 2 lments sur une ligne termine ; spare 2 lignes termine une instruction sans affichage
Certaines fonctions permettent de crer des matrices particulires : eye(n) cre une matrice identit de dimension n ; ones et zeros crent des matrices de 1 et de 0 ; rand et randn des matrices dont les lments sont choisis au hasard selon une loi uniforme sur ]0, 1[ et une loi normale centre rduite ; magic(n) cre un carr magique de dimension n (n >=3) ; diag permet dextraire des diagonales ou bien de crer des matrices diagona les ; triu et tril permettent dextraire les parties triangulaire suprieure et triangulaire infrieure Lecture / intrrogation de matrice (accs ses donnes) Pour accder aux lments dune matrice, on utilise la notation standard de lalgbre linaire :
A(2,:) extrait la deuxime ligne, A(:,1) la premire colonne A(2:4,1:3) retourne le bloc ans = 5 6 7 9 10 11 13 14 15 - Linstruction A(:) cre un vecteur colonne contenant les lments de A numrs colonne
par colonne. - Notons que linstruction A(7) retourne la valeur 10, car les lments dune matrice sont numrots selon ce mme ordre dnumration. Ainsi, llment A(i,j) est numrot i+m*(j-1), o m est le nombre de lignes de A.
1 2 .
m+1 m+2 .
2m + 1 2m + 2 .
. . . m
. . . 2m
. . . 3m
. . . ...
Cette numrotation permet dextraire des lments avec un tableau dindices. Par exemple, linstruction
Modification d'une matrice On peut modifier les lments dune matrice en leur affectant de nouvelles valeurs :
= aE(X)+b
et
(aX + b) = |a|(X).
+ * ^ \ /
division droite. Toutes ces oprations doivent respecter les rgles usuelles de lalgbre linaire.
>> M = [1,2] * [3;4], P = [1;2] * [3,4], Q = [1,2] * [3,4] M= 11 P= 3 4 6 8 ? ? ? Error using ==> * Inner matrix dimensions must agree.
Quand les oprandes sont une matrice et un scalaire (par exemple A+1, ou A/2), lopration est effectue entre le scalaire et chaque lment de la matrice.
A-1, A*2
2 2
2 2
Oprations lments par lments Matlab utilise un type doprations particulires appeles array operations. Ces oprations concernent *,b, / et \. Lorsquun de ces oprateurs est prcd dun point, lopration est effectue sur chaque lment de la matrice.
16
25
36
49
64
81
100
0.6667
0.7500
0.8000
0.3273 0 1
0.1746
-0.1867
0.7258
tan tangente atan tanh atanh log10 sign floor real angle
Largument dentre peut tre un scalaire, un vecteur ou une matrice. Largument de sortie est une matrice de mme dimension, la fonction etant applique sur chacun de ses lments.
>> log(0:5) Warning: Log of zero. ans = -Inf 0 0.6931 1.0986 1.3863 1.6094
Affichages graphiques
Matlab permet un grand nombre de types d'affichage 1D et 2D, seuls les plus courants seront dcrits ici. La commande plot permet l'affichage d'une courbe 1D : >> x = 0:0.1:2; y = sin(x*pi); >> plot(x*pi,y) % plot(abscisse,ordonne) On aurait pu tracer la courbe en semilog ou en log avec les fonctions semilogx, semilogy et loglog On peut ajouter un titre aux figures ainsi que des labels aux axes avec les commandes title, xlabel, ylabel:
4- Matlab en Automatique :
Le logiciel Matlab ralise aussi bien ltude de systmes dynamiques linaires, notamment dans le domaine des asservissements, que la modlisation de systmesplus complexes. Afin de matriser le logiciel "Matlab", nous allons d'abord tudier un systme du second ordre : H(p)= 10 / (s+2.s+10). Les instructions MATLAB sont crites en gras. Pour avoir des dtails, utiliser la commande : "help instruction" (parexemple taper "help nichols"). Ecriture de la fonction de transfert : num=10 ; den=[12 10] ; printsys(num,den) ; Etude de la rponse un chelon :
[x,y]=ginput(3) et cliquer avec la souris sur 3 points mesurer (pas de point-virgule, sinon commande inoprante) Pour tracer un quadrillage ou une ligne :
grid line([0 10],[1.05 1.05]) line([0 10],[1.05 1.05] ,'color','g') ces instructions permettent de tracer deux lignes horizontales et de faire apparatre le "tuyau des rponses 5%" :
line([0 10],[1.05 1.05]) line([0 10],[0.95 0.95]) la commande line([x1,x2],[y1,y2]) trace une ligne du point(x1,y1) au point (y1,y2).
Une sinusode :
sinus=sin(t); (Ne pas employer sin comme nom car c'est une fonction de Matlab et cela entranerait une "plante" du programme) z=lsim(num,den,sinus,t); plot(t,z) Afin de visualiser la sinusode originale et le signal de sortie, taper : hold on plot(t,sinus,'r') 'r' permet d'affecter la couleur rouge ce trac pour le diffrencier du prcdent. "hold on" permet de tracer plusieurs courbes dans la mme fentre. "hold off" annule cette commande.
[Gm,Pm,Wcg,Wcp] = MARGIN(num,den) mesure de la marge de phase et de la marge de gain ainsi que des pulsations correspondantes
Gm = Inf ; Pm = 53.1301 Wcg = Inf ;Wcp = 4.0000 figure pour ouvrir une nouvelle fentre "windows" pour avoir un diagramme de Bode personnalis :
Mesure de la marge de phase et de la marge de gain ainsi que des pulsations correspondantes :
La mthode consiste regarder o se trouvent les ples du systme boucl lorsque l'on fait varier le gain du correcteur proportionnel. Pour afficher le lieu des ples:
zeta=0.2; wo=5; sgrid(zeta,wo) Pour chercher la valeur du gain k permettant d'obtenir les ples dsirs en boucle ferme
[k,poles]=rlocfind(num,den); slectionner un point sur le graphique, les coordonnes s'affichent dans le "workspace". Pour construire un systme en boucle ferme :
Il est facile de voir l'influence d'un correcteur. Par exemple, sion considre un simple gain de 6, il faut redfinir le numrateur par l'instruction :
num=60 (106) Redfinir la fonction de transfert en boucle ferme : [numf,denf]=cloop(num,den,-1); et faire dessiner la rponse un chelon step(numf,denf)
Il apparat donc trs facile de montrer l'influence du changement d'un paramtre sur les rponses. L o il fallait avoir recours des calculs pour obtenir la rponse d'un systme, le logiciel fournit cette rponse de manire aise et rapide. Une autre manire de procder est de recourir Simulink, extension logicielle de Matlab destine faciliter la modlisation de phnomnes physiques. Un schma se substitue aux quations pour constituer le modle. Cette manire de rsoudre numriquement des systmes d'quations diffrentielles est trs proche de la manire de raisonnent par schma bloc, par fonction de transfert. Cela se faisait couramment avec les calculateurs analogiques.
Matlab-Simulink
1-Dfinition :
Simulink est l'extension graphique de MATLAB, il reprsente une plateforme de modlisation et de simulation des systmes dynamiques, en offrant un environnement de dveloppement graphique et une bibliothque permettant de reprsenter les fonctions mathmatiques et les systmes sous forme de diagramme en blocs, et galement on peut travailler avec le Simulink pour effectuer le traitement des signaux.
2-Prsentation de Simulink :
2-1- Lancer Simulink sous Matlab :
- Lancer Matlab: Cliquer licne Matlab sur le bureau pour lancer Matlab.
- Lancer Simulink : Soit taper simulink dans la fentre de Matlab, soit cliquer licne sur les barres doutils pour lancer Matlab.
N.B : Il faut changer les paramtres dun bloc pour satisfaire notre besoin.
Avant de lancer la simulation, il faut spcifier les paramtres de la simulation. Slectionnez Configuration parameters montr comme la figure 3et 4.
3-Exemples :
- Exemple 1 :(modification des paramtres)
Cliquez avec le bouton droit de la souris sur licne Sine Wave, et puis choisissez Sin parameters (ou directement double-cliquez sur cet icne) pour modifier les valeurs.( v(t) = Asin(wt) = 5sin(2f t) avec f=50 Hz)
- Exemple 2 :( la somme)
w(t) = u(t) + v(t)
V(t)= u(t)+u(0)
- Exemple 5 : (multiplexeur)
2) Saisissez la sortie de lchelon en cliquant dessus et en maintenant le bouton droit de la souris enfonc, puis dplacez-la jusqu lentre du gain :
3) Saisissez nimporte quel point dans la ligne en cliquant dessus et en maintenant le bouton droit de la souris enfonc, puis dplacez-la jusqu lentre de lopration
plus :