Il a t labor partir de lhomonyme guide prpar par Hoang Le-Huy, Professeur de lUniversit Laval, Quebec, Canada. Par rapport au document du Prof. Le-Huy quon peut tlcharger lURL http://www.gel.ulaval.ca/~lehuy/intromatlab ce guide propose une mise jour (version 5.3 de MATLAB et 3.0 de S IMULINK), des corrections et du nouveau matriel.
Un guide pour les lves de lcole Nationale Suprieure dIngenieurs Electriciens de Grenoble
Plus particulirement, une annexe sur la C ONTROL S YSTEM T OOLBOX a t ajoute. Pour la prparation de cette annexe, le Tutorial for Control System Toolbox de Finn Haugen (Telemark College, Porsgrunn, Norvge), sest avr trs utile. Ce dernier document peut tre consult lURL : http://www-pors.hit.no/~finnh/contoolb.html Commentaires et suggestions sont les bienvenus ladresse ml : Paolino.Tona@lag.ensieg.inpg.fr
Paolino Tona
Laboratoire dAutomatique de Grenoble P.Tona - Introduction MATLAB et S IMULINK 2
Introduction MATLAB
Introduction MATLAB
MATLAB est un logiciel de calcul matriciel syntaxe simple ; peut tre considr comme un langage de programmation adapt pour les problmes scientiques, grce ses fonctions spcialises ; est un interprteur, car ses instructions sont interprtes et excutes ligne par ligne ; possde des bonnes capacits graphiques pour prsenter des rsultats ou pour crer des applications ; peut tre intgr avec du code C ou F ORTRAN ; fonctionne dans plusieurs environnements tels que UNIX/X-Windows, Windows, Macintosh.
Blockset Blockset Blockset Blockset Blockset S IMULINK Fichiers MDL Fichiers MEX Toolbox Toolbox Toolbox Toolbox Toolbox M ATLAB Fichiers M Fichiers P Fentre Graphique Fentre de Commande Fentre Graphique GUI
Introduction S IMULINK Dmarrer S IMULINK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Construction dun diagramme S IMULINK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Simulation dun diagramme S IMULINK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La C ONTROL S YSTEM T OOLBOX Introduction . . . . . . . . . . . . . . . Reprsentation des systmes linaires Outils danalyse . . . . . . . . . . . . . Outils de synthse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fentre de Commande : dans cette fentre, lutilisateur donne les instructions et MATLAB retourne les rsultats ; Fentres Graphiques : MATLAB trace les graphiques dans ces fentres ; Fichiers M : ce sont des programmes en langage MATLAB (crits par lutilisateur) ; Fichiers P : version pr-interprte des chiers M ;
helpwin accder laide travers une fentre de navigation helpdesk accder la documentation MATLAB lookfor xyz chercher la chane de caractres xyz dans les descriptions des toutes les fonctions disponibles demo lancer les demos MATLAB
Commandes systme
pwd cd dir, ls mkdir delete copyfile nom du rpertoire courant changer de rpertoire contenu du rpertoire courant crer un nouveau rpertoire effacer un chier copier un chier
Aide
Pour obtenir de laide sur un sujet, une instruction ou une fonction, on tape help suivi par le sujet, linstruction ou la fonction dsire (en minuscule ! ! !). Exemple
help log10 LOG10 Common (base 10) logarithm. LOG10(X) is the base 10 logarithm of the elements of X. Complex results are produced if X is not positive. See also LOG, LOG2, EXP, LOGM.
Si la variable existe dj, MATLAB en change le contenu, et, si ncessaire, alloue plus de place en mmoire
C = [1 2 3; 4 5 6; 7 8 9] C = 1 4 7 2 5 8 3 6 9
Les variables ainsi dnies sont stockes dans lespace de travail et peuvent tre utilises dans les calculs subsquents.
Le rsultat dune instruction est afch par dfaut. Si lon veut que linstruction soit excute sans afcher de rsultat, il faut ajouter ; la n de la ligne
ws=2*pi/ts;
CLASSES Par la syntaxe introduite ci-dessus, MATLAB dnit des variables qui appartiennent la classe double array , cest dire des tableaux de rels qui peuvent correspondre des scalaires, des vecteurs ou des matrices. Mise part cette classe fondamentale, il faut signaler quil existe dautres classes MATLAB pr-dnies. La plus importante est certainement char array , laquelle appartiennent les chanes de caractres, dnies en utilisant
hi = salut hi = salut
INFORMATION SUR LESPACE DE TRAVAIL who afchage des variables dans lespace de travail whos afchage dtaill des variables dans lespace de travail Exemples
who Your variables are: C hi ts ws
whos Name Size Bytes Class C 3x3 72 double array hi 1x5 10 char array ts 1x1 8 double array ws 1x1 8 double array Grand total is 16 elements using 98 bytes
EFFACER DES VARIABLES DE LESPACE DE TRAVAIL clear var1 var2 effacer les variables var1 et var2 clear (all) effacer toutes les variables
VECTEURS ET MATRICES
x=[3 0.15 -1.5 2.42 -0.42] x = 3.0000 0.1500 -1.5000 2.4200 -0.4200
Oprations mathmatiques
Nombres et oprations arithmtiques
Nombres
Les nombres rels peuvent tre sous diffrents formats : 5 1.0237 0.5245E-12 12.78e6 0.001234 -235.087 Les nombres complexes peuvent tre crits sous forme cartsienne ou polaire : forme cartsienne 0.5 + i*2.7 forme polaire 1.25*exp(j*0.246) -1.2 + j*0.789 2.5 + 9.7i
ou exponentiel :
x=logspace(0,2,7) x = 1.0000 2.1544 4.6416 10.0000 21.5443 46.4159 100.0000
Formats dafchage
Pour choisir le format dafchage pour les nombres, on utilise linstruction format : format format format format format short long short e long e hex 0.1234 (format par dfaut) 0.12345678901234 1.2341E+002 0.123456789012345E+002 ABCDEF0123456789
Matrices
On dnit une matrice A en donnant ses lments :
A=[0.3 2.7 4.1;3.1 -0.74 2.1;6.7 -4.3 -2.1] A = 0.3000 3.1000 6.7000 2.7000 -0.7400 -4.3000 4.1000 2.1000 -2.1000
Oprations arithmtiques
+ * / Addition Soustraction Multiplication Division droite Division gauche Puissance
help +
Matrice unitaire :
B=eye(4) B = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
Vecteurs et matrices
Vecteurs
On peut dnir un vecteur x en donnant la liste de ses lments : 7
VECTEURS ET MATRICES
VARIABLES ET FONCTIONS
1 1 0 0 1 1 0 0
Oprations matricielles
Les oprations matricielles excutes par MATLAB sont illustres dans le tableau suivant : B E D Z X X = = = = = = A inv(A) A-B X*Y A\B A/B la matrice B est gale la matrice A transpose la matrice E est gale la matrice A inverse soustraction multiplication rsout le systme dquations quivaut (B/A)(help slash pour plus de details)
Polynmes
MATLAB ne fournit pas de types ou classes pr-dnis pour reprsenter directement des polynmes. Si lon utilise un vecteur P contenant les coefcients du polynme (en ordre dcroissant), les fonctions suivantes sont disponibles roots(P) polyval(P,x) conv(P1,P2) deconv(P1,P2) racines de ; valuation de en ; multiplication polynomiale division polynomiale
Si R est un vecteur contenant les racines dun polynme , la fonction poly(R) reconstruit les coefcients du polynme. Si A est une matrice, poly(A) calcule son polynme caracteristique.
Variables et fonctions
Variables
On dnit une variable en donnant son nom et sa valeur numrique ou son expression mathmatique : a x y z = = = = 1.25; 0:0.5:10; a*x; y.^2;
Concatnation
Loprateur [ ] permet denchaner des matrices ou des vecteurs entre eux pour former des matrices ou des vecteurs plus grands
A = ones(2) A = 1 1 B = 0 0 C = 1 1 D = 1 1 0 0 0 0 0 0 1 1
Expressions mathmatiques
On crit les expressions mathmatiques de la faon habituelle : z = 5*exp(-0.4*x).*sin(7.5*y);
B = zeros(2)
Fonctions mathmatiques
Les fonctions mathmatiques de base sont donnes dans le tableau suivant :
C = [A B]
D = [A ; B]
10
VARIABLES ET FONCTIONS
abs
valeur absolue module (nb. complexe)
angle
argument (nb. complexe)
sqrt
racine carre
real
partie relle
imag
partie imaginaire arrondir (vers ) logarithme base
conj
conjugue (nb. complexe)
round
arrondir
fix
arrondir (vers zro)
floor log
ceil
sign
signe
rem
reste
exp
exponentielle
log10
Graphiques
Introduction
Sil ny a pas de fentres graphiques actives, appeler une fonction graphique suft pour en ouvrir une. Les instructions graphiques suivantes continueront agir sur la mme fentre moins den ouvrir dautres (fonction figure). Les fonctions graphiques disponibles peuvent safcher en demandant laide sur graph2D , graph3D et specgraph (graphiques et fonctions spcialiss).
Les fonctions trigonomtriques sont donnes dans le tableau suivant : sin sinh Exemple
x=-2+5i x = -2.0000 + 5.0000i a=real(x); a = -2 b=imag(x); b = 5 m=abs(x); m = 5.3852 alpha=angle(x); alpha = 1.9513
cos cosh
tan tanh
asin asinh
acos acosh
atan atanh
atan2
Graphiques 2D
Trac de courbes
On utilise linstruction plot pour tracer un graphique 2D : plot(x,y) tracer le vecteur en fonction du vecteur plot(t,x,t,y,t,z) tracer , et sur le mme graphique plot(t,x,r:) tracer en trait pointill rouge
Taper help plot pour explorer toutes les possibilits de cette commande.
Format du graphique
On peut choisir le format du graphique : plot(x,y) semilogx(f,A) semilogy(w,B) polar(theta,r) bar(x,y) tracer tracer tracer tracer tracer
Exemple
y w=50; t=0.5e-3; y=25*exp(-4*t)*cos(w*t) = 24.9423
avec chelles linaires avec chelle avec chelle en coordonnes polaires sous forme de barres
donner un titre au graphique tiquette de laxe tiquette de laxe ajouter du texte au graphique avec la souris ajouter une lgende
Cration de fonctions
Lutilisateur peut crer des fonctions particulires pour ses applications. Voir la partie Programmation avec MATLAB .
11
12
GRAPHIQUES 2D
GRAPHIQUES 3D
diviser la fentre en deux parties (1 x 2)
subplot(1,2,1)
subplot(1,2,2)
Un exemple complet
Fonctions sinusoidales amorties 10
t=0:0.01e-3:0.06; y=10*exp(-60*t).*cos(120*pi*t); z=10*exp(-60*t).*sin(120*pi*t); plot(t,y,r,t,z,g),grid a=10*exp(-60*t); hold Current plot held plot(t,a,b-) plot(t,-a,b-) title(Fonctions sinusoidales amorties) xlabel(Temps , s),ylabel(Tension , V)
subplot(2,2,1)
subplot(2,2,2)
2 Tension , V
subplot(2,2,3)
subplot(2,2,4)
10
0.01
0.02
0.03 Temps , s
0.04
0.05
0.06
subplot(4,1,2)
2 z
subplot(4,1,3)
0
subplot(4,1,4)
2 4 6 4 2 0 2 y 4 6 8 10
Exemple
20 0
Graphique multiple
On peut tracer plusieurs graphiques dans la mme fentre en utilisant linstruction subplot pour diviser la fentre en plusieurs parties (le tracs se feront en suite avec plot, semilogx, etc.) : diviser la fentre en deux parties (2 x 1)
w=logspace(0,3,1000); s=j*w; H=225./(s.*s+3*s+225); AdB=20*log10(abs(H)); phase=angle(H)*(180/pi); subplot(2,1,1),semilogx(w,AdB),grid xlabel(w , rad/s),ylabel(Amplitude , dB) subplot(2,1,2),semilogx(w,phase),grid xlabel(w , rad/s),ylabel(Phase , )
Amplitude , dB
20 40 60 80 0 10
10
10 w , rad/s
10
50 Phase ,
subplot(2,1,1)
100
150
200 0 10
10
10 w , rad/s
10
subplot(2,1,2)
Graphiques 3D
Les deux exemples suivants montrent comment tracer des graphiques 3D.
13
14
25
20
15 temps
10
0 1
b=1200*pi; dt=50e-6; for j=1:15 for i=1:150 k(j)=j; a=(16-j)*50; t(i)=(i-1)*dt; y(i,j)=exp(-a*t(i)).*sin(b*t(i)); end end [K,T]=meshgrid(k,t); mesh(T,K,y)
0.5
0.5
1 15 8
x = input(Valeur de x = ) afcher sur lcran "Valeur de x = " en attendant quun nombre soit tap
Contrle de lexecution
Boucle FOR
On peut crer une boucle, ou des boucles imbriques en utilisant for Exemple boucle FOR simple :
for i=1:100 wt=24*i*0.01; x(i)=12.5*cos(wt+pi/6); end
end.
Nouvelles fonctionnalits
Lenvironnement propedit permet de changer les proprits dun graphique. Dans la version 5.3 la plupart de ces proprits sont directement accessibles partir de la fentre graphique. Donc, pratiquement toutes les manipulations faites par ligne de commande sont disponibles dans les menus, avec davantage de possibilits. Malheureusement, cet environnement est lheure actuelle un peu fragile (= bogues frquents).
boucles imbriques :
for i=1:5 for j=1:20 amp=i*1.2; wt=j*0.05; v(i,j)=amp*sin(wt); end end
end) sont
Boucle WHILE
On peut crer une boucle en utilisant while end .
15
16
FICHIERS M
PROGRAMMATION ORIENTE-OBJETS
Le nom de la fonction est dtermin par le nom du chier .m qui la contient, et non pas par le nom qui apparat dans la dnition syntaxique. Dans tous les cas, viter, si possible, dutiliser deux noms diffrents, et, surtout, ne jamais utiliser un nom de fonction qui correspond une fonction dj existante (en vrier lexistence avec which nomfonct ). Exemple
Excution conditionnelle
Les instructions if end , if else end , if elseif else switch case case end permettent de choisir entre plusieurs options. Exemple
n=input(Donner un nombre positif: ); if rem(n,3)==0 disp(Ce nombre est divisible par 3) elseif rem(n,5)==0 disp(Ce nombre est divisible par 5) else disp(Ce nombre nest pas divisible par 3 ou par 5) end
function y = eff(x)
end ,
% eff Calcul de la valeur efficace % Pour un vecteur eff(x) donne la valeur efficace % Pour une matrice, eff(x) donne un vecteur contenant % la valeur efficace de chaque colonne. m = length(x); y=sqrt(sum(x.*x)/m);
Si la fonction est contenue dans un chier eff.m on pourra lappeler par eff dans la ligne de commande, dans un autre chier M ou dans une autre fonction utilisateur :
v = [1; 2; 3]; val_effy = eff(v) val_eff = 2.1602
Fichiers M
Les chiers M sont des chiers ASCII (pur texte) contenant des suites dinstructions MATLAB et ayant extension .m , par exemple test1.m . Si lon tape test1 , les instructions contenues dans le chier test1.m seront excutes une par une. Pour crer des chiers M on peut utiliser nimporte quel diteur de texte, ou bien lditeur MATLAB intgr (commande edit ). Exemple
% ceci est un exemple de fichier M % les lignes de commentaire commencent par "%" for i=1:10 for j=1:4 x=0.005*i; x=30+j; z(i,j)=10*exp(y*x)*cos(120*pi*x); end end
Remarques les commentaires dentte donns dans la fonction eff seront afchs lcran lorsquon tape help eff ; la fonction nest accessible que si le chier qui la dnit se trouve dans le repertoire courant ou dans un repertoire inclus dans le path (help addpath ou help path pour plus de details).
Programmation oriente-objets
Pour le courageux, des fonctions telles que class , superiorto , inferiorto permettent daccder un semblant de programmation oriente-objets. En tous cas, la programmation fonctionnelle suft largement pour rsoudre les problmes plus communs.
17
18
Introduction S IMULINK
S IMULINK est lextension graphique de MATLAB permettant de reprsenter les fonctions mathmatiques et les systmes dynamiques sous forme de schmas en blocs.
Dautres blocs utiles se trouvent dans les collections des diffrentes toolbox.
Dmarrer S IMULINK
Dans la fentre Commande de MATLAB, taper simulink . La fentre contenant la bibliothque S IMU LINK va souvrir.
bibliothque Windows
position
Bien que linterface de la bibliothque ne soit pas homogne entre diffrentes versions et diffrentes machine, le concept de base est le mme : la bibliothque contient des collections de blocs simples quon peut connecter pour former des diagrammes.
rfrence
Kp
u V
Satellite
1 P
Scope
Kv
Collections de blocs
Dans la version 3.0 de SIMULINK les principaux blocs sont organiss comme suit COLLECTION Sources Sinks Continuous Discrete Math Function & Tables CONTENU sources de signaux afchage, stockage blocs continus blocs discrets oprateurs mathmatiques fonctions, interpolation 19 BLOCS LES PLUS UTILISS gnrateurs de signaux, horloges, chargement de donnes dun chier ou du workspace afcheurs de signaux, stockage de donnes dans un chier ou dans le workspace intgrateur, fonction de transfert, reprsentation dtat, retards intgrateur, fonction de transfert, reprsentation dtat, bloqueurs, ltres fonctions trigonomtriques, signe, valeur absolue, gains, somme, produit expression gnrique, tableaux dinterpolation, fonction MATLAB, S-fonctions
1 u
M masse
1 s
1 s
2 V
Dhabitude, on commence par mettre ensemble des sous-systmes plus simples. Ces sous-systmes doivent avoir des portes dentre (bloc In ) et de sortie (bloc Out ), pour relier les sous-systmes au schma principal. On cre des sous-systmes par lentre Create subsystem du menu Edit , aprs avoir cadr les blocs quon veut regrouper laide de la souris. Une deuxime faon consiste copier un groupe de blocs lintrieur dun bloc Subsystem dans la fentre du schma principal. Dans le schma principal, il faut se poser la question de comment grer le passage des donnes de et vers lespace de travail. Plusieurs solutions soffrent : on peut utiliser des blocs des collections Sources et Sinks ou bien encore des portes dentre-sortie.
20
Paramtres du diagnostic
Cette fentre permet de rgler le diagnostic pour la simulation et fournit aussi des mcanismes pour dboguer le schma.
Paramtres du solveur
Pour faire des premiers essais on peut se contenter des paramtres proposs par dfaut, en choisissant juste la dure dsire de la simulation. Cependant, ce menu a une inuence norme sur la qualit de la simulation pour des systmes peine compliqus et il faut apprendre bien sen servir.
DBUT DE LA SIMULATION FIN DE LA SIMULATION
VNEMENTS DTECTS
LONGUEUR MAXIMALE DES VECTEURS FACTEUR DLIMINATION DE POINTS VARIABLES CHARGES DE LESPACE DE TRAVAIL
FORMAT DE SAUVEGARDE
21
22
Les fonctions de transfert se crent laide de la fonction tf . Les premires deux paramtres de tf sont des vecteurs MATLAB contenant respectivement les coefcients du numrateurs et les coefcients du dnominateur, tandis que les paramtres suivants (facultatifs) spcient des proprits ultrieures de la fonction de transfert : tf(num,den) tf(num,den,Td,tr) tf(num,den,te) tf(num,den,te,Variable,z^-1) Exemples
nc = [1 -1]; dc = [1 2 1]; Gc = tf(nc,dc) Transfer function: s + 1 ------------s^2 + 2 s + 1
crer une f.d.t. continue ; crer une f.d.t. continue avec retard tr ; crer une f.d.t. en avec priode dchantillonnage te ; crer une f.d.t. en
nd dd ts Gd
= = = =
La fonction conv(a,b) utilise ci-dessus permet dobtenir la multiplication polynomiale entre les polynmes dont les coefcients sont dnis par les vecteurs a et b .
La fonction tfdata permet de rcuprer (entre autres) le numrateur et le dnominateur dune fonction de transfert : [num,den]=tfdata(fdt,v) extraire le numrateur et le dnominateur ; [num,den,te]=tfdata(fdt,v) extraire aussi la priode dchantillonnage ; [num,den,te,retard]=tfdata(fdt,v) extraire encore le retard. Exemple
[num,den,ts]=tfdata(Gd,v); num = 0 1.0000 0.9850
la classe zpk , moins utilise que les autres, correspond des systmes sous la forme zros-ples-gain, comme
La plupart des fonctions de la CST peuvent sappliquer des vecteurs et des matrices sans passer forcment par les objets LTI, comme dans les anciennes versions de cette toolbox (utiliser help pour plus de details)
23
24
0 2
1 D1 = 0
ss(A,B,C,D) crer un systme continu en variables dtat ; ss(A,B,C,D,te) crer un systme discret avec priode dchantillonnage te . Exemple
A=[0,1;-4,-4];B=[0;2];C=[1,0];D=0; syst_ss=ss(A,B,C,D); a = x1 x2 b = x1 x2 c = y1 a = y1 u1 0 x1 1 x2 0 u1 0 2 x1 0 -4 x2 1 -2
Les fonctions tfdata , zpkdata , ssdata peuvent en fait sappliquer nimporte quel objet LTI, car elles se chargent aussi de la conversion de reprsentation.
Conversion continu
discret
Un modle LTI se discrtise au moyen de la fonction c2d , avec la syntaxe syst_disc = c2d(syst_cont, te, methode) , o te est la priode dchantillonnage et methode est la mthode de discrtisation utiliser : bloqueur dordre 0 (zoh), bloqueur dordre 1 (foh), transformation bi-linaire de Tustin (tustin), etc. Si lon ne spcie pas de mthode, le bloqueur dordre 0 est utilis.
Continuous-time system.
25
26
OUTILS DANALYSE
syst_tf_z=c2d(syst_tf,0.1) Transfer function: 0.008762 z + 0.007668 --------------------z^2 - 1.637 z + 0.6703 Sampling time: 0.1
Une partie des proprits na pas de signication mathmatique, mais sert mieux documenter le modle
G.InputName=tension (V);G.OutputName=vitesse (rad/s) Transfer function from input "tension (V)" to output "vitesse (rad/s)": 1 ------s^2 + s
S YST 1
Outils danalyse
S YST 2 Les fonctions mentionnes dans la suite sont applicables indiffremment des objets tf , zpk et ss . Vue la exibilit de ces fonctions, lutilisation de laide est chaleureusement recommande, pour en explorer toutes les possibilits.
Syst2+Syst1 parallel(Syst1,Syst2)
feedback(Syst1,Syst2)
Analyse temporelle
La fonction step permet de tracer la rponse indicielle dun systme tracer la rponse indicielle, intervalle de temps et nombre de points choisis par MATLAB ; step(syst,tfin) tfin scalaire dtermine le temps nal (continu) ou le nombre total dchantillons (discret) ; step(syst,T) T vecteur de temps fourni par lutilisateur ; step(syst1,syst2,...) T tracer les rponses indicielles superposes de plusieurs systmes ; [y,t]=step(syst,...) stocke la rponse indicielle sans la tracer. step(syst) Exemple Userdata autres donnes/info
T=0:0.1:10; step(syst_tf,T)
Les fonctions series , parallel , feedback possdent des options pour obtenir des systmes plus complexes (help sur les noms de ces fonctions pour plus de dtails). Toutefois, partir dun certain degr de complexit il faut prendre en considration loption de dessiner les blocs dans un schma S IMULINK. TRUC : la fonction linmod , conue pour linariser un modle (non linaire) S IMULINK, peut tre aussi utilise pour rcuprer la reprsentation dtat globale dun ensemble de blocs linaires connects.
Ts priode dch.
PROPRITS TF PROPRITS ZPK num den z p k numrateur dnominateur zros ples gain Variable nom de la variable (s , z ,z^-1 , etc.)
a matrice A
La rponse impulsionnelle sobtient par la fonction impulse , dont la syntaxe est identique step . Pour la rponse initiale dun systme en variables dtats on utilise la fonction initial(sys,x0) avec des options similaires celles vue pour les fonctions ci-dessus. Pour obtenir des rponses des signaux dentres plus complexe on a deux choix : utiliser la fonction lsim avec un signal gnr par gensig , square ou sawtooth ; utiliser SIMULINK et le blockset LTI.
On peut lire ou modier ces proprits trs facilement. Soit syst un objet TF discret : syst.Ts=nouveauTe change la priode dchantillonnage (sans changer les coefcients) ; n=syst.num{1} rcupre le numrateur sous forme de vecteur ; syst.num=nouveauNum change le numrateur ;
27
28
OUTILS DANALYSE
OUTILS DE SYNTHSE
effectuer la transformation sur le vecteur dtat de syst calculer la forme compagnon de syst (si type gal companion ) calculer la matrice de commandabilit de syst calculer la matrice dobservabilit de syst ajouter les tats de syst ses sorties.
Pour mieux comprendre (et contrler) ce que ces fonctions font, il est probablement plus raisonnable de les utiliser sur les matrices et/ou les vecteurs de la reprsentation dtat, plutt que sur lobjet ss : CO=ctrb(syst.A,syst.B) calculer la matrice de commandabilit OB=obsv(syst.A,syst.C) calculer la matrice dobservabilit
En tapant pzmap(syst)tout court, les ples et le zros du systme sont tracs sur le plan ou . Des grilles correspondantes des frquences et des amortissements constants peuvent tre tracs laide de sgrid et zgrid , respectivement.
Analyse frquentielle
La fonction bode permet de tracer le diagramme de Bode dun systme tracer le diagramme de Bode, intervalle de frquences et nombre de points choisis par MATLAB ; bode(syst,wi,wf) tracer le diagramme de Bode entre les frquences wi et wf ; bode(syst,W) tracer le diagramme de Bode avec un vecteur de frquences gnr par lutilisateur (dhabitude avec logspace ) ; bode(syst1,syst2,...) tracer les diagrammes de Bode indicielles superposs de plusieurs systmes ; [G,P,W]=bode(syst,...) stocke le diagramme de Bode (gain, phase et frquence) sans le tracer. bode(syst) Une syntaxe similaire est prvue pour les fonctions nyquist et nichols . La grille pour le diagramme de Nichols se dessine avec ngrid . Pour un systme stable, la fonction [mg,mp,wmg,wmp]=margin(syst) , calcule le marge de gain et phase, aussi bien que les frquences qui leur sont associes.
Outils de synthse
Pour un systme mono-variable, il est possible de tracer le lieu de racines par la fonction rlocus(syst) . La fonction rlocfind(syst) permet de dterminer le gain sur lieu de racines de faon interactive. Un environnement graphique complet pour la synthse par cette mthode est accessible en tapant rltool(syst) . Le placement de ples en variables dtat sobtient par les fonctions acker et place , cette dernire tant mieux conditionne et applicable aussi aux systmes multi-variables. Les deux fonctions sont appliquer des matrices et non pas des objets LTI. La fonction estim(syst,L) permet de former un observateur partir dun gain , et la fonction estim(syst,K,L) permet de crer un ensemble rgulateur-observateur partis des gains et .
Autres outils
Dautres outils de synthse sont disponibles : pour la commande LQR (lqr, dlqr, lqry, lqrd ) ; pour la commande LQG (kalman, kalmd, lqgreg ) ; pour la rsolution dquations de Lyapounov (lyap, dlyap ) ; pour la rsolution dquations de Riccati (care, dare ).
Le LTIVIEWER
En tapant ltiview ou ltiview(syst) , on rentre dans un environnement graphique interactif pour lanalyse des modles LTI, qui est trs performant, mis part des bogues et une tendance fcheuse se planter, quon espre voir disparatre dans une prochaine version du logiciel.
Normes
norm(sys,2) norme norm(sys,inf) norme
29
30