You are on page 1of 27
= Travaux Pratiques d’Automatique Simulation sur MATLAB Prof : M. ALFIDI Avant Propos L’enseignement a I'ENSAF réclame un équilibre, parfois délicat & doser, entre enseignement pratique et théorique. L'enseignement théorique est remodelé en fonction des demiers résultats de recherche appliquée. L’enseignement pratique doit lui aussi suivre |’évolution de la technologie. Or, il est évident que la technologie logicielle tend supplanter la technologie matérielle, non seulement dans la conception méme des appareils mais encore dans les méthodes de travail des ingénieurs et des chercheurs. La «boite 4 outil» de l’automaticien moderme comporte autant sinon plus, de bibliothéques de méthodes numériques ou méme de logiciels, que d’appareils de mesure sophistiqués. Les étudiants doivent étre préparés maintenant a utiliser des produits qu'ils trouveront de fagon courante dans l'industrie demain. Le calcul matriciel, outil de base de toute la théorie moderne de la commande, en est le meilleur exemple : nous savons tous que nos exercices sur papier ne peuvent dépasser l’ordre deux, ce qui est quand méme une limitation importante quand on veut traiter des systémes multivariables ! Laceés & des logiciels permet d’illustrer des méthodes of un grand nombre de données ont besoin d’étre traitées : en particulier les problémes identification des systémes qui ne sont jamais résolus manuellement. Avec des logiciels un peu performants, on peut de plus simuler des blames réalisé ; Problemes réalisés en un mi imum de temps: on n’est plus obligé de se cantonner 4 une fonction de transfert du second ordre: on peut par exemple observer la détérioration du bruit, un retard ou des non- Ta réalité bien mieux qu’une vay I- Introduction : MATLAB est un logiciel de calcul scientifique général. Comme d'autres produits (Scilab, MatrixX), C'est un logiciel de calcul ‘Numérique. I propose notamment la résolution numérique d’un grand nombre de problémes mathématiques classiques, du plus grand intérét pour les ingénieurs et les chercheurs. Bien plus qu’une super calculatrice, Matlab permet de développer de fagon rapide des programmes de calcul scientifique pouvant présenter des interfaces homme machine trés conviviale avec des possibilités graphiques intéressantes, II n’est done pas dédié & un domaine ou application technique particuliére. Parmi ses utilisations, on peut citer = * Mathématique et calcul numérique * Développement d’algorithmes * Modélisation, simulation et prototypage de systémes * Analyse des données, exploration et visualisation * Graphisme scientifique et engineering * Développement d’applications notamment interface graphique. Matlab présente un ensemble de fonctions générales, fournies dans sa version de basse. A cela s’ajoute un certain nombre de groupes de fonctions spécialisées appelées boites a outils: « TOOLBOX» Ces boites a outils Permettent de traiter de problémes des sciences de l’ingénieur : dynamiques _ linéaires MU analysis and synthesis toolbox pour modélisation, analyse et lw comm nde «avancée » des systémes dynamiques ling stationnaires e Identification Toolbox pour identification des systémes dynamiques linéaires stationnaires © Ete... Par exemple, les boite 4 outils “Control System toolbox“et “Mu analysis and synthesis toolbox" traitent de la conception de lois de commande, La puissance de MATLAB est d’offrir tous les éléments nécessaires a la construction rapide d’un programme de CAO par ses utilisateurs, De ce point de ue, c’est un logiciel trés ouvert. Sa limitation est de ne pas en offrir un “tout fait" pour un utilisateur peu expert qui voudrait résoudre un probléme de CAO simple sans avoir & faire de développements. Dans le contexte de l’Automatique, MATLAB (MATrix LABoratory) offre un environnement de simulation et de prototypage. Le langage technique puissant est ala fois concis et descriptif, permettant de modéliser des systémes complexes avec des petites parties de code facile & comprendre. La vaste sibliothéque de fonctions, disponibles comme faisant partie du noyau MATLAB ou par l'intermédiaire de Boite a Outils orientées objet, permettent de construire rapidement des simulations et des modéles pour un grand nombre de types applications, Les outils de modélisation sont des solveurs ’équations différentielles dans MATLAB aux fonctions spécialisées des Bottes & outils pour les statistiques et l’apprentissage et la modélisation de réseaux de neurones. Des fonctions intégrées d’animation et des graphiques rapides 4 charger permettent de visualiser le comportement d’un modéle pour de l’analyse, des testes, du déboguage, des présentations de résultats. MATLAB est un langage interprété, dérivé du langage C, avec lequel il est possible de modifier un programme pour en voir immédiatement les effets, sans avoir 4 recompiler comme en C. Comme la plupart des algorithmes weue yao MIYEAU SUI LEE BeVEIOPPES po re un modéle dans MATLAB est 4 Ur Vou eaucouy ip construil S, pour le code Cou C++ correspondant. Ceci rend le code MATLA\ Plus court B faci nécessaite de gvoluer au cours d ile & Gcrire gue le 0 . ju temps. ot a faire sa Deux types de fonctions sont présentes sous Matlab es (écrites en langage C) et celles écrites dans le Jay + celles qui on ngage MAT] LAB compilé modifiées par l'utilisateur (¢° peuvent étre reprises, mod od une prong qui MATLAB étant programmée en langage C : il peut utiliser des de Nesbitt) aire appelé a partir d'un programme de langage C. La ou am enCou snvironnement de programme familier, Simulink et Statefl TLAB offre un environnement de conception graphique pour a fournissent un complexes de contréle, de traitement du signal et des ane et des systames logique- Batis a partir de MATLAB, ces produits var eS contrdlés par la quelle fonction MATLAB y compris des routines écrite appeler n’importe permettant de combiner le meilleur des 2 approches. Méi Spar Putilisateur, Boites 4 Outils peuvent étre imbriquée dans schémas ae f les ae des de fonctions disponibles dans les différentes bibliothéques é imulink le nombre S €tant trés grand, nous nous limiterons ici 4 une description sommaire des TP. ye MATLAB MATLAB est un environnement pour le calcul Matricie} d tel mi runiversité 4” Albuquerque (Nouveau-Mexique, Etats-Unis) et ee 8 Point par : i grot 58 portabilité. II permet d’effectuer toutes sortes de calculs ma £n Langage ¢ ans effort. La saisie des données et immédiate. Ainsi, instruction le Sophistiqués, sa : A= meeshamsa6} st équivalente a] ’écriture mathématique : e AS 1 2 “J 4 5 6 a BLA 8 9 Jest équivalent a : AS \ 4 \ 9 \ we Les opérations entre matrices sont écrites comme en i inai » ‘angage mathématique ordinaire (A*B, A*B) et des calculs sophistiqués sont accessib i ibles par un langage simple tel que : - det(A) fournit le déterminant de la matrice A, - iny(A) sa matrice inverse, -expm (A) sa matrice expontiel... etc. Le langage est ainsi interprété et fournit au fur et 4 mesure les résultats ou les messages d’erreurs permettant une correction immédiate. Quelques instructions de contréle : boules et répétition, instructions conditionnelles... etc permettent Pécriture de macro-commandes qui peuvent étre sauvegardées dans des fichiers (comme des données ou des résultats d’ailleurs) avec (Tile) et chargées simplement : LOAD (Tile) ou encore exécutéres : EXEC(Tile). ¢ des matrices dans MATLAB peut s ¢ faire de differen, Am { ed OHMS AT Ooh cy aniéres, Excl E35 4 5.65 7, 8, 0) oo wiieaes gu encore Salma 7:8 07 tuer Ja saisie a partir du clavier on Utilise 1j " * pour effectuer 1a sais © Vinstruction INpy ur (x= input (“message 7 Exemple : ” ity fee 4 = input (‘Matrice A=") > produit l’apparition a V’écran du Message Mati A : et attend introduction des tg attice A= A ; . "ents de A+ Remarques instruction» forint, produit~seulement-un-aftichage-a . Ho oP, m eet A Exemple fprintf (‘Bonjour, soyez les bien venus’) *Le caractére": "est trés important dans Matlab, i , secteurs dont les éléments sont consécutifs, Permet de générer des v écran du Syntaxe = cae [ X=] valeur initial :=[ pas : ] valeur finale silepas est omis il sera pris égal a 1, Exemple : 5; X=1:5 meena aya ed y=1/9:4 ° PSE maeSey er * Les éléments d’une matrice peuvent étre individ 3 indi luellement adressés par [a s.? mise entre parenthése de leurs indices. Exemple : A (2,3) fait référence a I’élément de la 2" ligne ét 3° colonne:y * L'indice peut étre un vecteur, ce qui autorise l’accés A des sous matrices. Exemple : C=A(1:2,3) 2 Ce D=A(2:3.1:2) @ D= —— (ss 7B + Liemploi du caraetére ": "seul & ta place gs ‘UN indice " a in ation de toute Ia ligne ou toute la colonne, miraine ta a consid Bxemple® pea) ® pe 2 5 8 axe d'une instruction Matlah 0 [variable =] expression [5] [.....] expressions sont composées dopérateurs et d? Les tions et de non variable. L’évaluation de l’ex, fonct PrESSION est Loujous suivie de raffecttion du résultat a la variable. Si le nom de la variable et jg signe = soit omis, une variable portant le nom ans (answer) est automatiquement créée, Exemple = 1900/81 = — ans= 23.4568 + sil'instruction se termine par le caractére";" pattie supprimée. : * Pour une instruction trop longue, trois indique qu’elle se termine sur la ligne suivante, lage-du résultat est Points de suspension (ou plus) Exemple : S=1 - 12+13-1/4+ 15-164 Dc. - V8 + 1/9- 110+ Wi -112; Evalue le résultat de l’expression l’affecte a S, mais ne ’affiche pas (Vinstruction se termine par ;) Transposé d’une matrice Le caractére "?" donne le transposé de la matrice Exemple: B= A’ donne B= Ovencore X= [-1 9.2 ? oX= tl a: . uste le transpos¢ on doit écrire Z: ou conj (2) & 7 geprt2ti i5s4 23Rori gsi) UF xX=2 oO X= ee “64 a2 2=3¥ eg 5 24 5zi ye Z’ ov Y= Conj(Z’) donne : Y= 1421 est une matrice carrée d?ordre n, poly(A) est un v. ecteur ligne d dimension (etl) dont les éléments sont les_coefficents du poltndne carctéristique " det(SI-A). peemple? P=poly(A)> P= 1 OP 272F 207 * Sir est un vecteur colonne qui contient les racines d’un polynéme P(9, instruction BOl¥(F)! retoune unsVecteur‘ligne’ *“dontiles(éléments:sont_les ene Racine'd’ ome mits: Si P est un vecteur ligne contenant les coefficients d’un polynéme, Toots(p) est un vecteur colonne dont les éléments sont les racines de cepolynéme. Exemple:R=rorts(p) > r= 12. 1229 -5. 7345 -0. 3884 1-6 -72 -27 ) retourne les racines, du polynéme s(poly()} _j roots(polx(A)) ain roe .5 — Vecteurs pro} res : gus nly wecteur qu content les valeurs ropres de A eat) ) : retourne une matrice GSORAIOD ay, wor °D avec yo FEE Cont Iescolonnes sontles aleurspropeeg YS Pps « ” \ SAPMCAEFIstique gui sont autre Pl naturelle = facteur d’amortissement 2 0 og }edamp(p) Pour p un vecteur ligne dont lege mnie carsetCristique: dine fonerts eet sont les jgnts dan polyn Tite een sours @EWIBAENIOR raarete Cee AH ce rise — sfultiplication olynomiale (aby Siaet b sont deux vecteurs dont les éléments convyndmes A(3) et B(s) alors conv(a,b) est un dem gssont les coefMicients du polyndme (S@)RBS)) d Sont les coefficients de Vecteur ligne dont les pxemple = a=(123] b=[4 5 6]; C=conv(a,b)? C= ia is) 28) 27) 18 pivision polynomiale sy)=deconv(b,a) > déclenche la division poly a (2 escosfcens du polynome quotes et dans et rou 4 Exemple : pep20-133; a=[11 q {q,1] = deconv(hb) > q= - 2 2 -1 Décomposition en éléments simples d’une fonction de transfert S[PPIK]=STesidte|(b]a)™ effectue la division Nas) eS SF? gy Ue terme directs dango Bs ~ sample E Esemrr us 9 41s 117 -5.7 8.2 -9.7] ioparasiaet) or) oj p= k= oS 1S. 2, i L 112" 35 bs : ot 4 1 ON ss . y= residue (r.p.k rn cffectue TERNS, ones 1B(S) et dans deuxidevA(s)sy NSE’ retourme dans 6 emple = ee r=[15 5 1] Bi P=[2 -4 5] K=[1 215 R pal residue (r pp jk) produit 4 So 1 1s 9 4 be 1 17 37 82 57 Fonetions graphiques : *Plot(xy)/: Si y et x deux vecteurs de méme dimension. Cette instruction cecum larepésntaion graphique deen fonction dex. a ’s]1S2’) donne la courbe y = f(x), s; et s; sont deux caractéres quiprécisent lagcouleor et leitype de ligneichoisis, ils sont choisis dans les listes - (- /-1:/.1 +1*18/x) (y/m/c/r/g/b/@/k). Tilte(text’): ajoute la chaine de caractére entre ’ ’ au sommet de’ la représentation graphique en guise de titre. xlabel(’text’) : ajoute le texte ’ ’ pour la légende de l’axe des x. ylabel(‘text”) : place le message entre ’ ’ sur la courbe pour la légende de l’axe - end Gid ou grid on: place les lignes de quadrillage sur la courbe courante. Gord~ off: les supprime, an 2108 erates pat Xray Yinacy ¥ min ses rites par Xmin Y: Ymna- cs se: sem" 20:.05 : 4¥Pii xesin(t) + ¥ =cos(t) Plot(t, x57." & ee xlabel ("variable indépendante en rad’) ylabel ("variable dépendantes x et y’) Tilte(‘les courbes sin(t) ct cos(t)") oycles de contréle * posse ie: le = expression Instructions 2 x» end & exemple forn=1:3 form=3:-1:1 A(am)= n*2 + m*2; end end A Aprés exécution on obtient: A= 2 5 5 8 10 13 2) while expression Instructions end. 3-ifexpression Instructions else Instructions end. in Tmax} J PRICE 18 BraAauatiON aes axes ¢1 Xes en tenant compte 10 13 18 s i ae se utiisation de Maide en ligne ¢ ne oo wiles conectement avec Matlab, Ondamentate | ya! souhaite obtenir de l'aide sur certaines ili ‘ foneti tle nom, ON utilise la fonction help, Par exemple cnn _ lab 7) : giron connal p> help con’ xv Convolution and polynomial multiplication, cor CONV(A, B) convolves vectors A and B, The result ing vector ; FENGTH(A)*LENGTH(B)1. a ) 4 Bare vectors of polynomial coefficients, convolving t om ee ig them is equivalent a Class support for inputs A, B: 2 goat: double, single so DECONV, CONV2, CONVN, FILTER and, in the i : = XCORR, CONVMTX. gnal Processing Reference page in Help browser doc conv silton cherche les noms des fonctions se rapportant “a un sujet précis, on utilise la fonction lookfor (puis le mot en Anglais). Par exemple = »lookfor polynom _ » POLYEIG Polynomial eigenvalue problem. » CONV Convolution and polynomial multiplication. »DECONV Deconvolution and polynomial division. IV Utilisation de Control Toolbox Génés 4 Labowte & outils dédiée a la commande (Control Toolbox) permet de disposer de Tombreux outils d’analyse pour I’automatique. goitesyseme deri ci « eésigne Io variable de Laplace. A Vide de Matte, on peut defn ie siemasiverent£ soratttl2 1],{1 2 1) (numérateur et dénominateur de la fonction de transfert) ou soreopk((-V/2b01 -1],2) (zéros, péles et facteur de gain de la fonction d le transfert) pour constituer un systéme a aide de différents sous-systém: ératil i eS OF effectuer différentes opérations. Soit G1 et G2 les représentations rl i é systémes: Les combinaisons de base sont : leux 3 a Gl en série avec G2 »Ge2 —_ ov >>parallel(G1,G2)ng G1 en paralléle avec G2 sofeedback(G1,G2) Gl bouclé par G2 On peut obtenir diverses informations sur le systéme défini pate représentation G >>pole(G) donne les péles du systéme vostep(G) trace la réponse indicielle” >>impulse(G) _trace la réponse impulsionnelle _ >>bode(G), trace le diagramme de Bode _ >nyquist(G) trace le diagramme de Nyquist _ >onichols(G) _trace le diagramme de Black-Nichols >>rlocus(G). trace le lieu d’Evans >rlocfind(G) donne les valeurs de: et du gain correspondant sur le lieu d’Evans *>damp(G) donne les péles, ainsi que la pulsation propre et sere oe Senate pune place les ples et les zéros dans le plan complexe ab et de ta Cont de M: 1 Toolbox courant continu (MCC) dont 1" pelle ici Is / enn dillustrer les concepts fondamentaux de Ja Control T, ‘etude ve ab. La fonction de transfert reliant la vitesse de rotation du rotor ies de ) so aT’induit s’écrit : a tensio ;quée a ’induit s’ecrit n appliau Gs) a (+r, s\ +r)" £t on ___ Kia, gain statique du systeme, Ko RR Kew constante de temps électromécanique, constante de temps ¢lectrique. on rappelle que dans ce modéle R représente la résistance de Vinduit du moteur, L son inductance; f est le coefficient de frottement visqueux et J | aaa : le moment d"inertic du rotor ; Kem est le rapport couple-courant (supposé égal au rapport force électromotrice-vitesse de rotation). Pour la mise au point d’un programme ou des calculs trés ponctuels, vous pouvez taper vos instructions sur la ligne de commande, Néanmoins : . A RETENIR — Des que !’on a une séquence d’instructions a exécuter, on a tout intéret a les regrouper sous forme d’un fichier script (fichier *.m). Si un fichier a l’extension .m (par exemple nomFichier.m), alors il sera exécuté en tapant son nom (>>nomFichier) sur la ligne de commande. Manipulation 1. Créer un script qui comporte les différentes opérations détaillées ci-dessous Pour cela on peut utiliser 1’éditeur de Matlab (>>edit). Des commentaires Pewvent étre introduits a l’aide du symbole %. om wapore 1e8 GIVETSES CONSLANLES GU prodieme jgul-constantes-mme.m par exemple “ent a un MCC un Maxon F 2260, numéro 885 : 1 (dans = ou pr (dans un script aleurs numériques choisies R= 1,440 L=5,610*H J=1,29 10" kgm? f=72 105 mNs Kem = 0,10 m.N.AT sealer le gain K et les constantes de temps électrique yet élecroméeanique ju MCC. Définir alors sa fonction de transfert. Pour cela, on note Num ws eur et le dénominateur de la fonction de transfert, 3.05 pole numéra jar 1a fonction appropriée, calculer les péles de cette fonction de transfert, aP s valent -7;! et ~r7} Vener que ces POle 5, Cet une figure (Me Ja fonction figure) et la diviser en deux sous-tracés jcc foreton subplot). Dans le premier, trace Ia réponse indicile du McG (ry esbelon unitaire de tension. A Taide de la sours, observer les caractéristiques accessibles du tracé (lic droit puis relacher on ie caractéristiques, pointer la courbe et clic gauche puis rester appuyé pour les vals). Dans Ja seconde sous-figure, tracer le diagramme de Bode du MCC. Analyser les différents traces. 6, L’asservissement de vitesse du moteur a courant continu est défini & la figure 1. Il comporte un correcteur proportionnel de gain K, = 10. La fonction de transfert du capteur de vitesse est assimilée un gain pur noté K, . La sortie de ce capteur valant 10 V pour une vitesse de rotation de 3000 tours/min calculer K, en unités ST. ¥ots}( E(s) ! 3) Ky Gls) ¥(s) | Ke FIG. 1 - Schéma de l’asservissement de vitesse du MCC ac “yele fermée en combinant les fonctions de i = jcle fern pow! FANsfert des gi éme figure, tracer les ré une méme figure, tracer Je 5, su 3. POnSeS indicietieg cle fermée. en boucle rte ct owe les diagrammes de Bode, Black et Nyquist dy , Tracer trois figures différentes (avec toujours K,= ul ‘ i ae du aysitme sur eg trices i gestal S¥Stéme 10). tdentifier | 1 boucle eS mares tilisant une boucle (>>help for), tracer sur un, méme eee eae alee ieee indicie indici Pour les valeurs de 00. Vérifier la cohérence de ces 000. al Braphe tes réponses réponses avec les K, €eales a 10; 199 MANES de stabititg ion précédente, ées a la question pi relevées ion de Simulink ul ink est une autre boite A outils de Demet de fie deg Sera Afni & Vide d'un out grapigne ee Se propose ie simi le pour deéfinir Passervissement en vitess a o pours ainsi visualiser no continu. © du moteur a courant, amment les réponses dy systéme 4 d’entrées. jfférents types ifférent Matlab qui cer Simulink, on peut soit utiliser les Pour ee commande’>>Simulink, Pour créer un nouvess Modele Simulink eds a : sur la ligne s le menu File, puis!Modél. Une feu d ; choisir tamer définir graphiquement notre systéme. Les différents outils laquelle on va ae trouvés dans les menus Correspondants. : (sources, disponibles se fomatiquey ‘continue, automatique: discrete, fonctions, wisualisation, a iteecs tables, automatique non-linéaire, signaux -et ee sa nature graphique Simulink peut etre aiseme ; e isystemes nt découvert, i (Sectionner et » Cet outil utilise la technique de tdragiana drop, Sons a i est facile de positioner les éléments nécessaires dans la fend ‘faire glisser). menus disponibles, soit taper lle de travail @pparait, sur ale. Enst ces élé nstituer le modéle. i i éléments entre eux pour cor : 7 du modé suite, on relie ces ‘ ; see Chaque ] ément posséde une description et Sana paramétres qui a P cliquer sur un élément. ve odifiés. Pour y accéder double-cliquer sur atre m¢ peuvent étre SoseRISF AMTOTAal, on i "un générateur sinusoidal, i on yeut visualiser le signal d’un gi : te ae re sion oa illoscope (menu ili a = correspondante’(menu Sources) et un os rn Oucomese suite ces deux éléments en attrapant ja sites cite a ée sur l’entrée de l’oscilloscope. st eae amenant la souris enfonc eae To ce on a liquant sur”) .dans le : vot. En effet, Sim Vensemble de la simulation a Paide d'un scrip. > ‘ensemble 16 TT aeo je Simulink 1" -g, OW peut jouer simulation depuis la ligne ae pt alation depuis un script). Ainsi sur lexem ‘Ommande (done lancer a init + Ple précé ole jxempleMinimum.mdl et le seript ci-apres, Précédent, on obtient te 0 : wmavnue 47898 s yutatonal technic sores crs ne WO yt ae east canes pt [sar S cer eofsel semper» PSHE Resear pead 2) IK base ae aa eee wn —— cranes seyge _Tontatet =| sii sod cancel) Hela | ance | HERE 4 Visualisation d'un signal sinusoidal d'amplitude 1.5, de 4 fréquence 1 Hz, sur un horizon de5s. % le modele simulé (voir ci-dessus) porte le nom exempleMinimum.mdl Tsimu-5 Xmax-15 fl sim(exempleMinimum’) seloM gnt certains rep set do | yatte® “Control Toolbox. Néanmoins il est conseilté de ce i ae | de sin ged Simulink eréer le modsle de Vasservissem arid Gn parcourra pour cela les menus de $i soit 2" esses. En particulier le bloc fonction se transfert, en sera trouvé dans le menu Continuous, Les constantes, Je nui ae sie inateur de la fonction de transfert seromt ae ie 1 Aéfinis dans le script og a1, a é " ale Ges simulations, & image de ’exemple précéde 7 . it ent de Vitesse vy dans ta imulink pour louver les nt. une meme figure, tracer la consigne et la réponse indicielle du systeme , : - 5 en d - ouverte Le tracé sera fait sur un horizon de temps judicicusement choisi pou ‘ . . Note : 07 peut envoyer. 4 un oscilloscope autant i exemple, si l’on souhaite afficher deux signaux différents i] faut utiliser u a : n ultiplexeur (Mux dans le menu Signals and Systems) pour les Mettre sur une moult meme ligne- péfinir le systéme en boucle fermée selon le schéma de la figure | avec K,= a Sur une méme figure, tracer la consigne et la réponse indicel du systime enboucle fermée. Jnstruction printsys Printsys (num, den, ’s’): écrit la fonction de transfert sous forme du rapport de deux polyndmes dont les coefficients sont = s contenus dans les vecteurs num et den en prenant s comme variable de transformation, Exemple = Num=[2 3 1]};den=[1.9 12 5; Printsys (num , den , ’z’) Donne Num / den = 22? + 3Z+1 +92 +1 2245 Impulse(num, den) © donne la réponse impulsionnelle du systéme linéaire et continu dont la fonction de transfert est num(s)/den(s) 18 wt @ retourne la réponse 4 un échelon unitaire du systéme yn, de) fonction de transfert est num(s)/den(s) cot y dont 1a "1 sel tint ree arbitraire ‘ a i ho ou t) @ retourne la réponse a un échelon unitaire du , dens anu dont 1a fonction de transfert est num(s)/den(s) au 6 et SO garinit dans U- it la représentation de bode de la fonction de transfert en) produit la rep rnum(sy/den(s). La gamme de fréquences et le nombre de points sont choisis automatiquement. den,o) © utilise Ja gamme de fréquence impos¢e par «(nummy - is Vutilisateur dans le vecteur @ (en rad/s). = nyquist(num, den) ® _ retourne dans Re les parties réelles de ei o} num(s)/ den(s) dans im les parties imaginaires et dans @ les fréquences prises, amme de Black — Nichols ls (A, den)> donne la représentation de black-nichols de la fonction “ de num(jo)/denGo) seis cum, den,0) donne le dagramme de nichols pour la gamme de féquence choisie dans a (en rad/s). ioe, phase,o] = nichols(num, den) > retourne les amplitudes dans Mag, les phases dans phase, et les fréquences dans ©, sans représentation graphique. Création de fonction Si une fonction, qu’on désire utiliser fréquemment, ne fait pas partie des fonctions incorporées, Matlab dispose de structures pour créer de nouvelles fonctions sous la forme d’un fichier M. files. Les fonctions M. files doivent suivre des régles spécifiques parmi lesquelles on cite : 1-La premigre instruction d’une fonction doit s’écrire suivant la syntaxe : Function Y = Nomfn(x, x2) ____———. ot a) Y est l’argument de sortie X, X2Sont les arguments d’entrée LS Nomfon Je nom de la fonction. | f ¢ vw sonetion et celur du teh } ave het cher doivent @ yes ‘ , 7 nt bt i foo < nction nomfon doit tre sauvegardée sous fe oma identiques, Par Je sang peuvent avoir zé Home og fonctions peuvent avoir zéro ou plusieurs ar, a & jysieuss arguments de sortie. Buments d'entrée et oo! ‘une fonction posséde plus 4° ors ¢ plus d'une variable i ent crochets comme [V, D] = eig(A) Ae soni, extles-c ai é F at Les fonctions M. files agissent comme des - Hs ion est apPeIe (POU exEciion) en ph gommandes MATLAB, sass comme det(A). asant Tes variables entre _ Une fonction peut étre appelée de maniére récursive : ¢-4 al parelle-méme. RScursive : c-id qu'elle peut at semple = fonction M. F>i soit Fibona une fonction M. F>ile qui calcule les X i en Premiers nombres de reson FD Fibona(X) aril in3 wile <= X f@) = fi -1) + £2) i=itl end f Cette fonction doit étre sauvegardée sous le nom Fibona.m. Equations differentielles Ode23 et odedS sont des fonctions Matlab qui calculent la solution numérique des équations différentielles usuelles. Un systéme d’équations difiérentielles non linéaires peut toujours étre exprimé par un jeu d’équations différentielles de premier ordre : a& qf) Syntaxe : [t, x] - ode23 (*xprime’, to, tf, x0 [toll L trace]) Cette instruction provoque |’intégration du systéme,_d’équations différentielles, en utilisant la formule de Rung-Kutta au 2 et 3 ordre pour ode23 et 4° et 5 ordre pour odel5. xPrime : une chaine de variables représent: équations a intégrer. ant le nom du Mefile qui contient les ty: le temps initial d’intégration pe ee eens ana UIE REUUIT Xo: vecteur colonne avec les conditions initiales. to): en option, pour indiquer la précision de la solution désirée, La valeur par défaut est le * pour ode23 et le ® pour ode45. Trace : en option provoque l’impression des résultats intermédiaires. Exemple : Considérons I’équation différenticlle du second ordre connue comme étant Péquation de Van der pol. xt (x? -Ixtxs0 Nous pouvons la réécrire sous la forme d'un systéme de deux équation: différentielles du 1“ ordre x1 =x,(1-x3) -x, =0 m=% La premiére étape pour simuler ce systéme est la création d’une fonction M-fil contenant ces équations différentielles. Nous pouvons |’appeler Vdpol.m. Fonction Xdo = Vdpol(t,x) Xdot(1) = x(1)*(1-x(2)2)-x(2) ; Xdot(2) = x(1) ; Pour simuler l’équation différentielle définit dans Vdpol sur l’intervalle 9<'S on a besoin du programme : to =0; tp=20; x9 =[0 .25] [t,x]=ode23(‘Vdpol, to, tz, x0) ; Plot(t,x) T.P. NOL Initiation 4 MATLAB Notes pre aires Le but du T.P est Minitiation at bibliothéque Automatique du logiciel MA’ TLAB (Cont ux commandes et fonctions de la trol Toolbox)+ Développer les programmes avant Ja séance de TP. Partie théorique : Le Choisir une matrice A pleine queleonque (3x3) et aul calculer : ne soit pas évidente. 1.1. Le transpos¢ de A (B= A) 2.1. La matrice C= A*B 3.1. Le déterminant de A 4.1. L’inverse de A 5.1. Les valeurs propres de A 6.1. Les vecteurs propres deA 7.1. L’exponentiel de A. II- Soit la fonction : 025403541 _ NG) G+05s+Is+05) D(s) 1.IL Déterminer les poles de G(s) (racines de D(s)) 2.[I. Décomposer G(s) en éléments simples. Partie pratique : |- Vérifier 4 l’aide du logiciel MATLAB les résultats obtenus pour la 1 question (partie théorique). 2- Effectuer le produit de convolution des 2 polynémes de D(s) (voir om question (partie théorique). 3- Visualiser a I’écran la nouvelle expression de G(s) obtenue. Gs)= 4- Déterminer les racines de D(s) 5- Décomposer G(s) en fractions rationnelles simples. 6 Déterminer les fréquences naturelles et facteur d’amortissement associés aux péles de G(s). vy a yrsuatser : a * La réponse impulsionnelle du systéme. + La réponse du systéme @ un échelon unitaire * La réponse du systéme 4 une excitation sinusoidale u(t)=sin2t * Le diagramme de Bode * Le diagramme de Nyquist * Le diagramme de Black-Nichols. T.P. N°2 Initiation 4 MATLAB ce des T.P. dével ayant Ia séance des elopper les programmes detest We décrits ci-dessous. raitement des Hm er. : ede 1" ordre ol ari pour chacune des fonctions d’ excitation suivantes : + UC) = (0) (impulsion) +u)= Tr) (échelon unite) 1-Fixer la valeur du gain & K=2 et représentés la réponse du sy , valeurs de 1a constante de temps +- conclusion. stéme pour aifférentes 2- mi 3. On considére la fonction G(s) = G(s)é* obtenue en aj crteneaseae a Sonetion GG) En tsa approximation de Putco 1—(ri2)s er E 1+ (r/2)s Représenter Ja réponse du systéme pour r = 1,5 ame travail en fixant t = | et faisant varier K — conclusion. 4- Tracer les diagrammes de Bode, Nyquist et Back de Get Gr me de 2'™* ordre 1-Dynamique d’un s Soit la fonction de transfert suivant : Gs)= a8 +.4,5 +a, 1- Exprimer le gain K, la pulsation naturelle @, et le facteur @amortissement & en fonction de bo, a2, a1, et ao 2- Pour chacun des cas suivants : * b= 1.5; a=1; a=4 et a3 * b= 155 a=1; a=0.25 et a= * be=l.5; a2; a2 etal a- Calculer K, et @,et € b- Déterminer les péles de G(s) et en déduire la stabilité du systéme. ge eck aKet c- Représenter la réponse & un échelon unitaire faire varier £2 Ke @, constants ms eq eo UAHUMIITIES UE NYAUISL, BOUE EL NTEN IOs, -ge ne =1.53 al; ay 3. Pout bo 25 ae vi pair de a couse de réponse du systtme fn " échelon unitai ire: Rel «Le dépassement en'% = wee # Le temps de réponse a 5% # Le temps de montée + La pseudo-période des oscillations. T.P. N° tion MATLAB ramime fonctionnel : a 39- FE rt du processus 4 réguler et C(s) celle du correct eur. Initia nt dgerit par son diag rasservissement suiva Soit + ye G(s) étant Ia fonction de transfe Lrentrée du systeme Ye tant UP échelon unitaire Représenter graphiquement Ja sortie du systéme dans les cas suivants : 1. Giy= Reaves ralet K=1 le, Tes a cE J at le correcteur wtilisé est [-l- un correcteur peoporionnel P) Caractérisé oe q yar a : . parc(s)=K,, faire yarier K, > Interpréter. 1-2- un correcteur proportionnel Intégral PI, dont la fonction de transfe ransfert correspondante est donnée arC(s)=K, +t 7 re parc(s)=K, +", prendre GG a8 Interpréter. ]-3- un correcteur proportionnel Dérivée PR do nt la foneti cemespondante est donnée parC(s)=K, + Kos» prendre Hanae p =8etK, =0.05, Cikerpret ie ]-4- un correcteur proportionnel Intégral Dérivée PID, dont la fonctio: . mn de transfert corres] K,=let K,=2, K, =1. Interpréter. ondante est donné: ok, +4 p e parC(s)=K, ++ Koss prendre 3 2.692 —— (O58 Et le correcteur utilisé est : 2-1 un correcteur sé parC(s)=K,, avec K, Interpréter. avance de phase avec C(s)= ips Proportionnel P. Caractéri 2-2 un correcteur 4 r=10, Interpréter. , Q

You might also like