Matlab/Simulink 1 MASTER ASE 1ère année UE M1-103 : Outils de simulation Partie

Matlab/Simulink 1 MASTER ASE 1ère année UE M1-103 : Outils de simulation Partie : Matlab Pierre Bonnet USTL - Master ASE M1 – Outils de simulation - 2009-2010 Matlab/Simulink 2 Présentation du logiciel Matlab/Simulink(V6) Le logiciel Matlab est un logiciel de manipulation de données numériques et de programmation dont le champ d’application est essentiellement les sciences appliquées. Son objectif, par rapport aux autres langages, est de simplifier au maximum la transcription en langage informatique d’un problème mathématique, en utilisant une écriture la plus proche possible du langage naturel scientifique. Le logiciel fonctionne sous Windows et sous Linux. Son interface de manipulation HMI utilise les ressources usuelles du multi-fenêtrage. Son apprentissage n’exige que la connaissance de quelques principes de base à partir desquels l’utilisation des fonctions évoluées est très intuitive grâce à l'aide intégrée aux fonctions. Une alternative à Matlab est Scilab, logiciel libre, dont la version 5 présente de nombreux points communs avec Matlab. De nombreuses entreprises (EDF, ...) ont fait le choix de passer sous Scilab. Le passage d'un logiciel à l'autre n'est cependant pas direct, certaines fonctions ayant des comportements différents (ce ne sont pas des erreurs mais des choix scientifiques différents). Tous les logiciels de calcul réutilisent des savoir-faire scientifiques anciens et éprouvés, développés dans les années 1960. I - Introduction Matlab est un logiciel interprété (donc sans phase préliminaire de compilation) qui exécute les opérations demandées séquentiellement, avec possibilité de boucle, test et saut. Il ne manipule que des données numériques et ne sait effectuer aucun calcul formel à priori. Ecran de base (présentation pouvant légèrement différer selon version) L'écran de base comprend l'écran de contrôle Command Window ainsi que des fenêtres complémentaires permettant de suivre le fonctionnement général d'une application. Les instructions frappées (ou collées) dans la Command Windows s'exécutent directement. Les commandes peuvent être relancées dans la fenêtre Matlab simplement en remontant la liste par  et en validant la ligne par Return . L'exécution d'une ligne provoque automatiquement l'affichage des résultats sous forme d'une liste de données numériques. Cette fonctionnalité peut être bloquée en mettant un ";" à la fin de chaque ligne de programme (préférable lorsque le calcul concerne une matrice de grande dimension). USTL - Master ASE M1 – Outils de simulation - 2009-2010 Matlab/Simulink 3 Programme Matlab Il est toutefois préférable de construire un programme avec un éditeur de texte (Bloc-Notes sous Windows, Open Office ou l'éditeur intégré), de le sauver sur disque sous le nom monappli.m . Le programme peut être lancé depuis la fenêtre d'édition en appuyant sur le bouton . D'autres boutons permettent le déboggage des programmes avec points d'arrêt et exécution pas à pas. A noter que Matlab possède toutes les fonctionnalités 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 réserve que le chemin d'accès au fichier soit déclaré sous Matlab – voir la commande Set Path du menu Fichiers - . Aide sur Matlab Il existe deux types d'aides sur Matlab 6 : l'aide intégrée aux fonctions (existant sur les précédentes versions ) ou l'aide hypertexte. La commande >> help ou >> help nom-de-fonction permet d'obtenir une aide sur le logiciel en général, un Toolbox ou une fonction particulière. C'est pourquoi il n'est pas indispensable de connaître le manuel complet de Matlab pour s'en servir ! L'aide hypertexte est d'une très grande richesse. Elle inclut la description des fonctions, des exemples, des démonstrations en ligne, des références bibliographiques. L'aide hypertexte est un véritable cours ! Attention au volume total de la documentation fournie, qui représente l'équivalent d'une encyclopédie (plus de 30 000 pages en 2003) II - Variables Matlab Les variables s'utilisent sans déclaration préalable de type, Matlab adoptant en interne l'objet matrice pour toutes les variables (scalaires ou non, réelle ou imaginaire, chaîne de caractères...) . Le type (dimensionnement de la matrice) est donc géré automatiquement d'après l'usage (affectation) de la variable. Des calculs ou application de fonctions entre types non cohérents seront signalés par un message d'erreur et blocage de l'exécution du programme à cette ligne. USTL - Master ASE M1 – Outils de simulation - 2009-2010 Matlab/Simulink 4 Exemple de déclaration: >> A = 1 <return> A = 1 >> B = 2 + 3i <return> B = 2.0000 + 3.0000 i >> whos <return> Name Size Elements Bytes Density Complex B 1 by 1 1 16 Full Yes A 1 by 1 1 8 Full No Toute variable utilisée est rangée dans l'espace mémoire 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 fenêtre spécifique. En cliquant sur une variable de la fenêtre, les valeurs apparaissent. Certaines variables usuelles comme i , pi ou eps (epsilon de valeur 2--52 ) sont prédéfinies (attention, pi peut être modifié !). Le nombre de variables utilisables n'est limité que par la place mémoire. Les variables sont locales (sauf spécification contraire) et il n'y a aucun risque de modification d'une variable par une fonction qui utiliserait une variable interne de même 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 définir une variable à partir d'autres, pourvu qu'elles aient une valeur numérique, donc qu'elles aient été précédemment définies : Vecteurs et Matrices Les vecteurs et matrices suivent l'écriture naturelle, les éléments étant des nombres ou des variables précédemment définies. >> x1= [-1 0 1] ; % vecteur ligne >> y1 = [-1 ; 0 ; 1 ] % vecteur colonne >> y2 = [ -1 0 1 ] ' % “ ' ” signifiant "transposition" >> z = [ 1 2 3 ; 4 5 6 ] % matrice 2 lignes x 3 colonnes USTL - Master ASE M1 – Outils de simulation - 2009-2010 Matlab/Simulink 5 Les vecteurs ou matrices peuvent être générés suivant une loi incrémentale: >> x = 1 : 5 <return> x = 1 2 3 4 5 >> y = 5 : -1 : 1 <return> y 5 4 3 2 1 >> z = ( 0.0 : 0.2 : 1.0 )' ; % vecteur colonne 6x1 par utilisation de la transposition Le pas peut être spécifié, avec éventuellement une valeur négative. Les éléments des vecteurs et matrices sont accessibles individuellement ou par groupes: >> A = randn(10) ; %crée une matrice de taille 10x10 à coef aléatoires >> som1= A(1,1) + A(2,2) + A(3,3) ; >> x = A( 1:5 , 3 ) ; % met dans x les éléments 1 à 5 de la colonne 3 de A >> y = A(1:5, :) ; % met dans y les 5 premières lignes de A Construction par Concaténation : >> z = [ x x ] % z est une matrice 6lignes x2 colonnes Matlab permet de générer directement des matrices particulières: >> zeros(m, n) ; % matrice nulle de dimension mxn >> ones (m,n) ; % matrice de "1" >> randn() ; %matrice à éléments aléatoire de distribution normale, >> eye() ; %matrice identité, >> linspace() %vecteurs en suite linéaire >> logspace(n1,n2) %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 résultat ne correspond pas à une méthode clairement identifiée en mathématique. Expressions arithmétiques Les opérateurs les plus courants sont : + - * / ^ Attention: les variables étant éventuellement des matrices, certaines opérations doivent être interprétées. >> nb_scalaire = 3 ; >> A = [ 1:5 ; 2 : 6 ] ; >> B = A* nb_scalaire ; % multiplication de tous les éléments de A par nb . Fonctions mathématiques L'utilisateur dispose de toutes les fonctions usuelles telles abs, sqrt (racine carrée), 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] ; % définition vecteur x >> alpha = 3 ; >> y = alpha * (exp ( i * x ) – exp( -i * x ))/ ( 2 * i ); % y est un vecteur USTL - Master ASE M1 – Outils de simulation - 2009-2010 Matlab/Simulink 6 Calculs Matriciels Les opérations de bases ( + , - , * ) s’appliquent implicitement aux matrices. >> A = [ 1:5 ] ; >> B = [ 11 : 15 ]’ ; uploads/Litterature/ cours-matlab-m1ase.pdf

  • 14
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager