34906816 Tutorial Matlab

download 34906816 Tutorial Matlab

of 101

Transcript of 34906816 Tutorial Matlab

Ing Sergio Casillas de la Torre Tutorial de Matlab

TUTORIAL DE MATLAB

TUTORIAL DE MATLAB 1. QU ES MATLAB? 1.1 Uso de Matrices 1.2 Origen de MatLab 1.3 Plataformas 1.4 Productos 2. LIBRERA DE APLIC ACIONES DE MATLAB 2.1 SIGNAL PROCESSING TOOLBOX 2.2 THE MATLAB C MATH LIBRARY 2.2.1 Desarrollo de aplicaciones utilizando la MATLAB C Math Library 2.2.2 Utilizacin de MATLAB y de su compilador 2.2.3 Velocidad y Precisi n 2.2.4 Lista parcial de funciones Funciones matemticas Funcionales especiales y elementales Algebra lineal numrica Polinomios e interpolacin Mtodos numricos no lineales Estadstica y anlisis de Fourier Operaciones algebricas y lgicas 2.2.5 Utilidades 2.2.6 Requerimientos 2.3 THE MATLAB COMPILER TOOLBOX 2.3.1 Generacin Automtica de ficheros MEX. 2.3.2 Rendimiento del compilador 2.3.3 Opciones de ajuste del rendimiento 2.3.4 Requerimientos del sistema 2.3.5 Limitaciones del cdigo compilado 2.4 SYMBOLIC MATH TOOLBOX 2.5 OPTIMIZATION TOO LBOX 2.6 IMAGE PROCESSING TOOLBOX 2.7 Neural Network Toolbox

1 4 5 5 5 5 7 7 7 8 8 9 9 9 9 9 9 10 10 10 10 10 11 11 12 12 12 13 13 14 15 16

1

Ing Sergio Casillas de la Torre Tutorial de Matlab

2.8 NON LINEAR CONTROL DESIGN TOOLBOX 2.9 NAG FOUNDATION TOOLBOX 3. INICIANDO MATLAB 4. USO DE COMANDOS 4.2 Instrucciones de MATLAB y Variables 4.3 Obteniendo Informacin del Espacio de Trabajo 4.4 Variables Permanentes 4.6 Saliendo y Guardando el Espacio de Trabajo 4.7 Manipulacin de Vectores y Matrices 4.8 Operaciones de Matrices 4.9 Operaciones de Arreglos 4.10 Ejemplos: Operaciones Aritmticas 5. PROGRAMANDO CON M ATLAB 5.1 Generalidades 5.1.1 Archivos -M: Comandos y Funciones 5.1.2 Otras funciones 5.1.3 Declaracin function 5.2 Operadores relacionales 5.3 Operadores lgicos 5.4 Caracteres especiales 5.5 Control de flujo 5.5.1 Declaracin FOR simple 5.5.2 Declaracin FOR anidada . 5.5.3 Declaracin WHILE 5.5.4 Declaraciones IF, ELSE, ELSEIF y BREAK 5.6.1 Creacin de una matriz 5.6.2 Cambio del orden de una matriz: reshape 5.6.3 Modificacin individual de elementos 5.6.4 Modificaciones adicionales de una matriz 5.7.1 Declaracin fopen Ejemplo 5.7.2 Declaracin fclose 5.7.3 Declaracin fread 5.7.4 Declaracin fwrite 5.7.5 Declaracin fprintf 5.8 Variables globales 5.9 Vectorizaci n de algoritmos y estructuras (for, while) 5.10 Grficas en Dos Dimensiones COMANDO PLOT Smbolo Color Smbolo Estilo de lnea 5.10.6 Comandos grficos

17 18 20 20 22 23 23 23 24 25 28 29 33 33 33 37 41 41 42 43 44 44 45 46 47 50 50 50 51 57 57 57 57 58 58 58 59 60 60 60 61 632

Ing Sergio Casillas de la Torre Tutorial de Matlab

5.11 Grficos en 3 dimensiones 5.12 Archivos de disco 5.12.1 Manipulacin de Archivos de Disco 5.12.2 Ejecutando Programas Externos 5.12.3 Importando y Exportando Datos 5.13 INDICE ALFABETICO 6. SIMULINK 6.1 Acelerador de Simulink 6.2 Generador de cdigo -C en Simulink 7. COMANDOS DE MATLAB 7.1 General purpose commands: Control System Toolbox Commands : 8. APLICANDO MATLAB AL CONTROL DE PROCES OS 8.1 Respuesta en el dominio del tiempo 8.2 Respuesta en el dominio de la frecuencia 8.3 Lugar de las races 8.4 Controladores PID 9. TRUCOS EN MATLAB Paper semilogartmico gratis: papelbod.m

66 73 73 73 73 74 75 77 77 78 78 81 86 86 91 95 97 99 99

3

Ing Sergio Casillas de la Torre Tutorial de Matlab

1. QU ES MATLAB?MatLab es un programa interactivo para computacin numrica y visualizacin de datos. Es ampliamente usado por Ingenieros de Control en el anlisis y diseo, posee adems una extraordinaria versatilidad y capacidad para resolver problemas en matemtica aplicada, fsica, qumica, ingeniera, finanzas y muchas otras aplicaciones. Est basado en un sofisticado software de matrices para el anlisis de sistemas de ecuaciones. Permite resolver complicados problemas numricos sin necesidad de escribir un programa. MATLAB es un entorno de computacin y desarrollo de aplicaciones totalmente integrado orientado para llevar a cabo proyectos en donde se encuentren implicados elevados clculos matemticos y la visualizacin grfica de los mismos. MATLAB integra anlisis numrico, clculo matricial, proceso de seal y visualizacin grfica en un entorno completo donde los problemas y sus soluciones son expresados del mismo modo en que se escribiran tradicionalme nte, sin necesidad de hacer uso de la programacin tradicional. El nombre de MATLAB proviene de la contraccin de los trminos MATrix LABoratory y fue inicialmente concebido para proporcionar fcil acceso a las libreras LINPACK y EISPACK, las cuales repre sentan hoy en dia dos de las libreras ms importantes en computacin y clculo matricial. MATLAB es un sistema de trabajo interactivo cuyo elemento bsico de trabajo son las matrices. El programa permite realizar de un modo rpido la resolucin numrica de problemas en un tiempo mucho menor que si se quisiesen resolver estos mismos problemas con lenguajes de programacin tradicionales como pueden ser los lenguajes Fortran, Basic o C. MATLAB goza en la actualidad de un alto nivel de implantacin en escuelas y centros universitarios, as como en departamentos de investigacin y desarrollo de muchas compaas industriales nacionales e internacionales. En entornos universitarios, por ejemplo, MATLAB se ha convertido en una herramienta bsica, tanto para los pro fesionales e investigadores de centros docentes, como una importante herramienta para la imparticin de cursos universitarios, tales como sistemas e ingenieria de control, lgebra lineal, proceso digital de imagen, seal, etc. En el mundo industrial, MATLAB est siendo utilizado como herramienta de investigacin para la resolucin de complejos problemas planteados en la realizacin y aplicacin de modelos matemticos en ingeniera. Los usos ms caractersticos de la herramienta los encontramos en reas de c omputacin y clculo numrico tradicional, prototipaje algortmico, teora de control automtico, estadstica, anlisis de series temporales para el proceso digital de seal.

4

Ing Sergio Casillas de la Torre Tutorial de Matlab MATLAB dispone tambin en la actualidad de un amplio abanico de programas de apoyo especializados, denominados Toolboxes, que extienden significativamente el nmero de funciones incorporadas en el programa principal. Estos Toolboxes cubren en la actualidad prcticamente casi todas las reas principales en el mundo de la ingeniera y la simulacin, destacando entre ellos el 'toolbox' de proceso de imgenes, seal, control robusto, estadstica, anlisis financiero, matemticas simblicas, redes neurales, lgica difusa, identificacin de sistemas, simulacin de sistemas dinmicos, etc. Ad ems tambin se dispone del programa Simulink que es un entorno grfico interactivo con el que se puede analizar, modelizar y simular la dinmica de sistemas no lineales.

1.1 Uso de MatricesMatLab emplea matrices porque con ellas se puede describir infinidad de cosas de una forma altamente flexible y matemticamente eficiente. Una matriz de pixeles puede ser una imagen o una pelcula. Una matriz de fluctuaciones de una seal puede ser un sonido o una voz humana. Y tal vez ms significativamente, una matri z puede describir una relacin lineal entre los componentes de un modelo matemtico. En este ltimo sentido, una matriz puede describir el comportamiento de un sistema extremadamente complejo. Por ejemplo una matriz puede representar el vuelo de una avin a 40.000 pies de altura, o un filtro digital de procesamiento de seales.

1.2 Origen de MatLabMatLab fue originalmente desarrollado en lenguaje FORTRAN para ser usado en computadoras mainframe. Fue el resultado de los proyectos Linpack y Eispack desarrol lados en el Argonne National Laboratory. Su nombre proviene de MATrix LABoratory. Al pasar de los aos fue complementado y reimplementado en lenguaje C. Actualmente la licencia de MatLab es propiedad de MathWorks Inc .

1.3 PlataformasMatLab est disponible para una amplio nmero de plataformas: estaciones de trabajo SUN, Apollo, VAXstation y HP, VAX, MicroVAX, Gould, Apple Macintosh y PC AT compatibles 80386 o superiores. Opera bajo sistemas operativos UNIX, Macintosh y Windows.

1.4 ProductosLa empresa MathWorks ofrece MatLab como su principal producto para computacin numrica, anlisis y visualizacin de datos. Tambin ofrece Simulink 5

Ing Sergio Casillas de la Torre Tutorial de Matlab como un anexo a MatLab y que interactua con l en lenguaje de MatLab y lenguaje de bajo nivel C. Simulink es usado para simulacin modelado no lineal avanzado. Se ofrecen adems numerosas herramientas especiales en "Toolboxes" para resolver problemas de aplicaciones especficas, por ejemplo control, procesamiento de seales, redes neurales, etc. Estas herramientas son c o l ecciones de rutinas escritas en MatLab.

6

Ing Sergio Casillas de la Torre Tutorial de Matlab

2. Librera de Aplicaciones de MATLAB2.1 SIGNAL PROCESSING TOOLBOXMATLAB tiene una gran coleccin de funciones para el procesamiento de seal en el Signal Processing Toolbox. Este incluye funciones para: Anlisis de filtros digitales incluyendo respuesta en frecuencia, retardo de grupo, retardo de fase. Implementacin de filtros, tanto directo como usando tcnicas en el dominio de la frecuencia basadas en la FFT. Diseo de filtros IIR, incluyendo Chebyshebv tipo II y elptico. Butterworth, Chebyschev tipo I,

Diseo de filtros FIR mediante el algortmo ptimo de Parks-McClellan. Procesamiento de la transformada rpida de Fourier FFT, incluyendo la transformacin para potencias de dos y su inversa, y transformada para no potencias de dos.

2.2 THE MATLAB C MATH LIBRARYLa MATLAB C Math Library proporciona al usuario la capacidad computacional de MATLAB en una libreria en formato objeto enlazable. El objetivo principal de la C Math Library es soportar el desarrol lo de aplicaciones 'stand alone' utilizando MATLAB y su compilador. Puede ser utilizada independientemente de MATLAB por programadores avezados en lenguaje C que necesiten prestaciones computacionales robustas y de alto rendimiento. Junto con el compilador de MATLAB, la C Math Library permitir a los programadores de aplicaciones utilizar MATLAB para la creacin de aplicaciones 'stand alone'. Para los usuarios clsicos de MATLAB, se elimina as cualquier necesidad de volver a reescribir algoritmos en lenguaje C para ser utilizada por programas externos. Para aquellos usuarios que sean nuevos en la tecnologa MATLAB, esta tecnologa ofrece una nueva va para la reduccin del tiempo de desarrollo y puesta a punto de aplicaciones. La MATLAB C Math Library propo rciona una amplia gama de funciones clsicas del programa MATLAB, proporcionadas como librerias objeto, incluyendo bsicamente las siguientes categoras de funciones presentes en MATLAB y ficheros M compilados:

Algebra lineal. Funciones matemticas elementales y especializadas. Operadores lgicos y aritmticos. 7

Ing Sergio Casillas de la Torre Tutorial de Matlab Matrices elementales y manipulacin de vectores. Matrices especiales. Estadstica bsica y anlisis de datos. Polinomios e interpolacin. Gestin de cadenas de caracteres. Entradas y Salida s. Gestin de memoria y errores.

(Nota: Las funciones del tipo Handle Graphics no estn incluidas en la C Math Library).

2.2.1 Desarrollo de aplicaciones utilizando la MATLAB C Math LibraryLa construccin y desarrollo de aplicaciones utilizando esta l ibrera es un proceso de amplias perspectivas una vez se tiene un dominio adecuado de su operativa. El producto est dividido en dos categoras (como libreras objeto): la librera (built-in library) contiene versiones de las funciones de MATLAB en lenguaje C del tipo numrico, lgico y utilidades. Por otra parte la librera de toolboxes (toolbox library) contiene versiones compiladas de la mayora de ficheros M de MATLAB para clculo numrico, anlisis de datos y funciones de acceso a ficheros y matrices. En equipos UNIX estas librerias pueden ser igualmente obtenidas como libreras de tipo esttico (static libraries) o bien como libreras compartidas (shared libraries). Respecto al mundo PC, estas libreras pueden obtenerse como DLL's en el entorno Microso ft Windows o como librerias compartidas en equipos Apple MacIntosh.

2.2.2 Utilizacin de MATLAB y de su compiladorPara construir una aplicacin del tipo 'stand alone' que incorpore cdigo originalmente desarrollado como ficheros M de MATLAB , debern seguirse los pasos siguientes: 1. Utilizar el compilador de MATLAB para convertir ficheros M en C mediante la utilizacin de la instruccin mcc -e (la cual es externa a MATLAB). 2. Compilar el cdigo C fuente en cdigo objeto utilizando un compilador ANSI C. 3. Enla zar el cdigo resultante con la MATLAB C Math Library y con cualquier tipo de ficheros y programas especficos que hayan sido previamente definidos por el usuario. 8

Ing Sergio Casillas de la Torre Tutorial de Matlab

2.2.3 Velocidad y PrecisinLos algoritmos utilizados en la MATLAB C Math Library han sido desarrollados por un grupo de renombrados expertos en programacin algortmica de funciones de tipo matemtico (algebra lineal y clculo numrico). Las funciones de lgebra lineal han sido obtenidas de las librerias mundialmente reconocidas LINPACK y EISP ACK. La MATLAB C Math Library contiene ms de 300 funciones numricas, lgicas y de utilidad. Todas estas funciones le permitirn operar en datos de tipo escalar, vectorial o matricial con la misma facilidad sintctica.

2.2.4 Lista parcial de funcionesFunciones matemticas

Funcionales especiales y elementalesFunciones gamma, beta y elpticas. Transformacin de sistemas de coordenadas. Matriz identidad y otras matrices elementales. Matrices de Hilbert, Toeplitz, Vandermonde, Hada mard, etc. Partes reales, imaginarias y complejas conjugadas. Funciones trigonomtricas y de potencias.

Algebra lineal numricaValores propios y descomposicin de matrices. Funciones generales de evaluacin de matrices. Dete rminantes, normas, rangos, etc. Matrices inversas y factorizacin de matrices. Matriz exponencial, logartmica y races cuadradas.

Polinomios e interpolacinInterpolacin 1 - D y 2 -D. Construccin polinomial. Interpolacin por splines cbicos. Diferenciacin de polinomios. Evaluacin de polinomios. Multiplicacin y divisin de polinomios. Residuos de polinomios y residuos.

9

Ing Sergio Casillas de la Torre Tutorial de Matlab

Mtodos numricos no linealesBsqueda de ceros en funciones de una nica variable. Minimizacin de funciones de una o ms variables. Resolucin numrica de integrales. Solucin numrica de ecuaciones diferenciales ordinarias.

Estadstica y anlisis de FourierConvolucin 1 - D y 2 - D. Filtros digitales 1 - D y 2 -D . Transformadas de Fourier 1 - D y 2 -D y su inversa. Coeficientes de correlacin y matrices de covarianza. Deconvolucin. Magnitudes y ngulos de fase. Funciones max, min, sum, mean y otras funciones de estadstica bsica.

Operaciones algebricas y lgicasSuma, resta, multiplicacin, divisin y potencias de matrices. Matrix traspuesta. Operadores lgicos AND, OR, NOT y XOR.

2.2.5 UtilidadesGestin y mantenimiento de errores. Conversin de tipos de datos Fortran. Funciones de fecha y hora. Clasificacin de matrices. Conversin de nmeros a cadenas y viceversa.

2.2.6 RequerimientosLa libreria MATLAB C Math Library cumple con la normativa estndar ANSI para compiladores C. Finalmente, la librera trabajar con aquellos enlazadores suministrados con la mayora de compiladores ANSI C. que vienen

10

Ing Sergio Casillas de la Torre Tutorial de Matlab

2.3 THE MATLAB COMPILER TOOLBOXEl nuevo compilador de MATLAB - The MATLAB Compiler- permite crear cdigo C optimizado procedente de ficheros M - M files- de MATLAB. Este compilador puede ser utilizado de dos modos: 1. Como un generador MEX automtico. Pueden convertirse ficheros M en funciones C ejecutables que se ejecutaran desde dentro de MATLAB. Como un generador de cdigo C fuente. 2. Pueden construirse aplicaciones que se ejecutaran independientemente de MATLAB. Estas aplicaciones externas requieren de la MATLAB C Math Library, que est disponible separadamente.

Mediante la conversin automtica de ficheros M en cdigo C fuente, el compilador MAT LAB elimina consumo de tiempo y la conversin manual de cdigo. Todo el proceso de conversin, compilacin y enlazado se inicia a travs de una simple instruccin de MATLAB.

2.3.1 Generacin Automtica de ficheros MEX.El compilador de MATLAB automatiza l a creacin de ficheros MEX de C (MATLAB Ejecutables). Los ficheros MEX contienen cdigo objeto que es dinmicamente enlazado como 'runtime' en el entorno MATLAB por el intrprete del programa. El proceso en cuestin se realiza en tres pasos: 1. El compilador de MATLAB traduce las funciones MATLAB en sus funciones equivalente en lenguaje C. 2. La instruccin MATLAB cmex llama al compilador y al enlazador del sistema para construir un fichero MEX objeto. 3. El intrprete de MATLAB enlaza automticamente la funcin de MATLAB como 'runtime'. Mientras se efecta una conversin de los ficheros M en ficheros MEX, el compilador realiza llamadas a las rutinas de la libreria C para muchas de las instrucciones contenidas en el propio ncleo de MATLAB. Existen algunas funciones, incluyendo las rutinas 'Handle Graphics', para las cuales se generan de nuevo llamadas 'callbacks' a MATLAB. Pueden convertirse convenientemente ficheros M en cdigo fuente C para incorporarlos posteriormente en los ficheros externos desarrollados en lenguaje C, si ese es el caso. Esta opcin es ideal para usuarios que quieren sacar la mxima ventaja de MATLAB desde cualquier otra aplicacin o producir cdigo C eficiente a partir de los algoritmos desarrollados con MATLAB. Los desarrollos 11

Ing Sergio Casillas de la Torre Tutorial de Matlab del tipo 'stand -alone' requieren para ello de la MATLAB C Math Library. Obsrvese que las funciones grficas de MATLAB no estn incluidas. Para construir aplicaciones 'stand-alone' se debera seguir los siguientes pasos: 1. Utilizar el compilador de MATLAB para convertir ficheros M en C con la instruccin externa mcc - e. 2. Compilar el cdigo C fuente en cdigo objeto utilizando un compilador C. 3. Enlazar el cdigo resultante con las libreras matemticas C de MATLAB y los ficheros especficos que dispongamos.

2.3.2 Rendimiento del compiladorMediante la compilacin de los ficheros M se puede obtener un rendimiento significativo. La velocidad de mejora de este rendimiento, depende fuertemente de cada aplicacin. En algunos casos el rendimiento puede mejorar hasta en 200 veces la ejecucin si la comparamos con el modo de trabajo interpretado del programa. Las operaciones matriciales y vectoriales ejecutadas desde MATLAB ya estn fuertemente optimizadas en su diseo. Sin embargo, mediante la utilizacin del compilador se obte ndrn significativas mejoras.

2.3.3 Opciones de ajuste del rendimientoEl compilador de MATLAB ofrece varias opciones que permiten generar el programa final de la forma ms eficiente. Por ejemplo, Ud. puede directamente: Tratar todas las variables en fic heros como datos enteros y/o reales. Utilizar una variable concreta como variable escalar, vectorial, entera, real o una combinacin de estas. Desactivar el control de parmetros de entrada y el redimensionamiento dinmico de vectores.

2.3.4 Requerimientos del sistemaPara utilizar el compilador de MATLAB para crear ficheros MEX se necesita la versin de MATLAB 4.2c y tener instalado uno de los siguientes compiladores de lenguaje C: PC/Microsoft Windows Metaware High C/C++ V.3.0 o sup erior. Watcom C V.10.0 o superior Power MacIntosh MetroWerks CodeWarrior C V.7

12

Ing Sergio Casillas de la Torre Tutorial de Matlab MPW MrC V.1.0b2 o PPCC version 1.0.5 680x0 MacIntosh MPW C Versin 3.4 UNIX y VMS

Cualquier compilador ANSI C (Nota: El compilador de SunOS 4.1.X no es un compilador ANSI C). Cualquiera que sea el equipo informtico que vaya a utilizarse para desarrollar aplicaciones 'stand alone' se requiere, adems del compilador de MATLAB, que se tengan las MATLAB C Math Library y un compilador ANSI C.

2.3.5 Limitaciones del cdigo compiladoCiertas instrucciones, como load y eval, no estn soportadas por el compilador de MATLAB . Este no puede generar cdigo de los diagramas de bloques de SIMULINK. Los toolboxes de MATLAB puede n incluir ficheros MEX y otros componentes que no son compilables.

2.4 SYMBOLIC MATH TOOLBOXEl Toolbox de Matemtica Simblica, aade a MATLAB la capacidad de realizar clculos simblicos basados en MAPLE V soportando adems (The Extended Symbolic Ma th Toolbox) las libreras especializadas, y los programas realizados para este ltimo. Entre otros, los principales tipos de operaciones soportados son los siguientes: Algebra simblica: Derivacin, integracin y simplificacin de expresiones matemticas. Algebra lineal exacta: Inversas, cannicas de matrices simblicas. determinantes, autovalores y formas

Aritmtica de precisin variable: Evaluacin de expresiones matemticas con diversos grados de precisin. Resolucin de ecuaciones: Resolucin numri ca y simblica de ecuaciones algebraicas y diferenciales. Funciones matemticas especiales: Evaluacin de la mayora de las funciones utilizadas en matemticas aplicadas.

Existen dos versiones del mismo Toolbox. The Basic Symbolic Math Toolbox es una coleccin de ms de 50 funciones MATLAB las cuales permiten acceder al

13

Ing Sergio Casillas de la Torre Tutorial de Matlab kernel de MAPLE utilizando la Sintaxis y el estilo del lenguaje MATLAB. The Extended Symbolic Math Toolbox aumenta esta funcionalidad incluyendo todas las caractersticas de programacin de MAPLE, y el acceso a los paquetes de funciones de ms de veinte campos de las matemticas especiales aplicadas. Es posible utilizar este Toolbox sin conocimiento previos de MAPLE, ya que los ficheros contenidos en l son totalmente autnomos. Sin embargo, si lo que se desea es obtener toda la potencia de clculo del entorno, ser necesario un amplio conocimiento del manejo y la programacin de MAPLE

2.5 OPTIMIZATION TOO LBOXEl toolbox de optimizacin consta de un conjunto de funciones que resuelven problemas de extremos, con o sin condiciones, de funciones reales las cuales son generalmente multivariables y no lineales. Asimismo, posee funciones para la resolucin de algunos tipos de problemas matriciales en extremos. Resulta conveniente para una comp rensin y mejor manejo de la toolbox poseer conocimientos bsicos previos de anlisis de funciones reales, matrices y teora de extremos. Algunas de las reas bsicas que cubre este toolbox para MATLAB son las siguientes: Clculo de un extremo local (mxi mo o mnimo) de una funcin real f(x), en general multivariable y no lineal, sin imponer ninguna restriccin o condicin a la solucin. Como caso particular, se incluye una rutina especial para problemas de mnimos cuadrados no lineales. Clculo de un extremo local (mximo o mnimo) de una funcin real f(x), en general multivariable y no lineal, condicionado a que la solucin satisfaga ciertas condiciones de desigualdad (g(x)