P. 1
Tutorial Matlab

Tutorial Matlab

|Views: 0|Likes:
Published by Victor Solis Brevis

More info:

Published by: Victor Solis Brevis on Aug 22, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

02/20/2014

pdf

text

original

Sections

  • TUTORIAL DE MATLAB
  • TUTORIAL DE MATLAB 1
  • 2. Librería de Aplicaciones de MATLAB
  • 2.2.1 Desarrollo de aplicaciones utilizando la MATLAB C Math Library
  • 2.2.2 Utilización de MATLAB y de su compilador
  • Funciones matemáticas
  • Funcionales especiales y elementales
  • Algebra lineal numérica
  • Polinomios e interpolación
  • Métodos numéricos no lineales
  • Estadística y análisis de Fourier
  • Operaciones algebráicas y lógicas
  • 2.3.1 Generación Automática de ficheros MEX
  • 2.3.3 Opciones de ajuste del rendimiento
  • 2.3.5 Limitaciones del código compilado
  • 4. USO DE COMANDOS
  • 4.2 Instrucciones de MATLAB y Variables
  • 4.3 Obteniendo Información del Espacio de Trabajo
  • 4.4 Variables Permanentes
  • 4.6 Saliendo y Guardando el Espacio de Trabajo
  • 4.7 Manipulación de Vectores y Matrices
  • 4.8 Operaciones de Matrices
  • 4.9 Operaciones de Arreglos
  • 4.10 Ejemplos: Operaciones Aritméticas
  • 5. PROGRAMANDO CON MATLAB
  • 5.1 Generalidades
  • 5.1.1 Archivos-M: Comandos y Funciones
  • 5.1.2 Otras funciones
  • 5.1.3 Declaración function
  • 5.2 Operadores relacionales
  • 5.3 Operadores lógicos
  • 5.4 Caracteres especiales
  • 5.5 Control de flujo
  • 5.5.1 Declaración FOR simple
  • 5.5.2 Declaración FOR anidada
  • 5.5.3 Declaración WHILE
  • 5.5.4 Declaraciones IF, ELSE, ELSEIF y BREAK
  • 5.6.1 Creación de una matriz
  • 5.6.2 Cambio del orden de una matriz: reshape
  • 5.6.3 Modificación individual de elementos
  • 5.6.4 Modificaciones adicionales de una matriz
  • 5.7.1 Declaración fopen
  • Ejemplo
  • 5.7.2 Declaración fclose
  • 5.7.3 Declaración fread
  • 5.7.4 Declaración fwrite
  • 5.7.5 Declaración fprintf
  • 5.8 Variables globales
  • 5.9 Vectorización de algoritmos y estructuras (for, while)
  • 5.10 Gráficas en Dos Dimensiones
  • Comando Plot
  • Símbolo Color
  • Símbolo Estilo de línea
  • 5.10.6 Comandos gráficos
  • 5.11 Gráficos en 3 dimensiones
  • 5.12 Archivos de disco
  • 5.12.1 Manipulación 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 código-C en Simulink
  • 7. COMANDOS DE MATLAB
  • 7.1 General purpose commands:
  • Control System Toolbox Commands:
  • 8. APLICANDO MATLAB AL CONTROL DE PROCESOS
  • 8.1 Respuesta en el dominio del tiempo
  • 8.2 Respuesta en el dominio de la frecuencia
  • 8.3 Lugar de las raíces
  • 8.4 Controladores PID
  • 9. TRUCOS EN MATLAB®
  • Paper semilogarítmico gratis: papelbod.m

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

1
4 5 5 5 5

2. LIBRERÍA DE APLIC ACIONES DE MATLAB
2 . 1 S I G N A L P R O C E S S I N G TOOLBOX 2.2 THE MATLAB C MATH L I B R A R Y 2.2.1 Desarrollo de aplicaciones utilizando la MATLAB C Math Library 2.2.2 Utilización de MATLAB y de su compilador 2.2.3 Velocidad y Precisión 2.2.4 Lista parcial de funciones Funciones matemáticas Funcionales especiales y elementales Algebra lineal numérica Polinomios e interpolación Métodos numéricos no lineales Estadística y análisis de Fourier Operaciones algebráicas y lógicas 2.2.5 Utilidades 2.2.6 Requerimientos 2.3 THE 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 MATLAB COMPILER TOOLBOX Generación Automática de ficheros MEX. Rendimiento del compilador Opciones de ajuste del rendimiento Requerimientos del sistema Limitaciones del código compilado

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 17 18 20

2.4 SYMBOLIC MATH TOOLBOX 2 . 5 O P T I M I Z A T I O N T O O LBOX 2 . 6 I M A G E P R O C E S S I N G TOOLBOX 2.7 Neural Network Toolbox 2.8 NON LINEA R C O N T R O L D E S I G N T O O L B O X 2.9 NAG FOUNDATION TOOLBOX 3. INICIANDO MATLAB

1

4. USO DE COMANDOS 4 . 2 I n s t r u c c i o n e s d e M A T L A B y V a r i a b les 4.3 Obteniendo Información del Espacio de Trabajo 4.4 Variables Permanentes 4.6 Saliendo y Guardando el Espacio de Trabajo 4. 7 M a n i p u l a c i ó n d e V e c t o r e s y M a t r i c e s 4.8 Operaciones de Matrices 4.9 Operaciones de Arreglos 4.10 Ejemplos: Operaciones Aritméticas 5 . P R O G R A M A N D O C O N MATLAB 5.1 Generalidades 5.1.1 A r c h i v o s -M : C o m a n d o s y F u n c i o n e s 5.1.2 Otras funciones 5.1.3 Declaración function 5.2 Operadores relacionales 5.3 Operadores lógicos 5.4 Caracteres especiales 5.5 Control de flujo 5.5.1 Declaración FOR simple 5.5.2 Declaración FOR anidada. 5.5.3 Declaración WHILE 5.5.4 D e c l a r a c i o n e s I F , E L S E , E L S E I F y B R E A K 5.6.1 C r e a c i ó n d e u n a m a t r i z 5.6.2 C a m b i o d e l o r d e n d e u n a m a t r i z : reshape 5.6.3 M o d i f i c a c i ó n i n d i v i d u a l d e e l e m e n t o s 5.6.4 M o d i f i c a c i o n e s a d i c i o n a le s d e u n a m a t r i z 5.7.1 Declaración f o p e n Ejemplo 5.7.2 Declaración f c l o s e 5.7.3 Declaración f r e a d 5.7.4 Declaración fwrite 5.7.5 Declaración f p r i n t f 5.8 Variables globales 5.9 Vectorización de algoritmos y estructuras (for, while) 5.10 Gráficas en Dos Dimensiones

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

COMANDO PLOT
Símbolo Color Símbolo Estilo de línea 5.10.6 Comandos gráficos 5.11 Gráficos en 3 dimensiones 5.12 Archivos de disco 5.12.1 M a n i p u l a c i ó n d e A r c h i v o s d e D i s c o 5.12.2 Ejecutando Programas Externos 5.12.3 I m p o r t a n d o y E x p o r t a n d o D a t o s 5.13 INDICE ALFABETICO 6. S I M U L I N K 6.1 Acelerador de Simulink 6 . 2 Ge n e r a d o r d e c ó d i g o - C en Simulink 7. COMANDOS DE MATLAB 7.1 General purpose commands: C o n t r o l S y s t e m T o o l b o x C o m m a n d s:

60
60 61 63 66 73 73 73 73 74 75 77 77 78 78 81 2

8. APLICAN D O M A T L A B A L C O N T R O L DE PROCESOS 8.1 Respuesta en el dominio del tiempo 8.2 Respuesta en el dominio de la frecuencia 8.3 Lugar de las raíces 8.4 Controladores PID 9. TRUCOS EN MATLAB® Paper semilogarítmico gratis: papelbod.m

86 86 91 95 97 99 99

3

M AT L A B e s u n s i s t e m a d e t r a b a j o i n t e r a c t i v o c u y o e l e m e n t o b á s i c o d e t r a b a j o son las matrices. E n e n t o r n o s universitarios. En el mundo industrial. Basic o C. sin necesidad de hacer uso de la programación tradicional. Permite resolver complicados problemas numéricos sin necesidad de escribir un programa. por ejemplo. El nombre de MATLAB proviene de la contracción de los términos MATrix LABoratory y fue inicialmente concebido para proporcionar fácil acceso a las librerías LINPACK y EISPACK. posee además una extraordinaria versatilidad y capacidad para resolver problemas en matemática aplicada. MATLAB goza en la actualidad de un alto nivel de implantación en escuelas y centros universitarios. 4 . como una importante herramienta para la impartición de cursos universitarios. Los usos más característicos de la herramienta los encontramos en áreas de computación y cálculo numérico tradicional. estadística. señal. MATLAB está siendo utilizado como herramienta de investigación para la resolución de complejos prob l e m a s planteados en la realización y aplicación de modelos matemáticos en ingeniería. etc. proceso digital de imagen. ¿QUÉ ES MATLAB? MatLab e s u n p r o g r a m a i n t e r a c t i v o p a r a c o m p u t a c i ó n n u m é r i c a y v i s u a l i z a c i ó n d e datos. proceso de señal y visualización gráfica en un entorno completo donde los problemas y sus soluciones son expresados del mismo modo en que se escribirían tradicionalmente. álgebra lineal. El programa permite realizar de un modo rápido la resolución numérica de problemas en un tiempo mucho menor que si se quisiesen resolver estos mismos problemas con lenguajes de programación tradicionales como pueden ser los lenguajes Fortran. ingenierí a. física. finanzas y muchas otras aplicaciones. tales como sistemas e ingenieria de control. Es ampliamente usado por Ingenieros de Control en el análisis y diseño. las cuales representan hoy en dia dos de las librerías más importantes en computación y cálculo matricial. prototipaje algorítmico. MATLAB es un entorno de computación y desarrollo de aplicaciones totalmente integrado orientado para llevar a cabo proyectos en donde se encuentren implicados elevados cálculos matemáticos y la visualización gráfica de los mismos. teoría de c o n t r o l a u t o m á tico. cálculo matricial. así como en departamentos de investigación y desarrollo de muchas c o m p a ñ í a s i n d u s t r i a l e s n a c i o n a l e s e i n t e r n a c i o n a l e s .1. MATLAB integra análisis numérico. MATLAB se ha convertido en una herramienta básica. tanto para los profesionales e investigadores de centros docentes. Está basado en un sofisticado software de matrices para el análisis de sistemas de ecuaciones. análisis de series temporales para el proceso digital de señal. química.

Su nombre proviene de MATrix LABoratory. control robusto. 1. T a m b i é n o f r e c e S i m u l i n k 5 . 1.MATLAB dispone también en la actualidad de un amplio abanico de programas de apoyo especializados. Fue el resultado de los proyectos Linpack y Eispack desarrollados en el Argonne National Laboratory. destacando entre ellos el 'toolbox' de proceso de imágenes. a n á l i s i s y v i su a l i z a c i ó n d e d a t o s . o un filtro digital de procesamiento de señales. 1. Gould. Por ejemplo una matriz puede representar el vuelo de una avión a 40.4 Productos La empresa MathWorks ofrece MatLab como su principal producto para c o m p u t a c i ó n n u m é r i c a . que extienden significativamente el número de funciones incorporadas en el programa principal. En este último sentido. redes neurales. análisis financiero. VAXstation y HP. lógica difusa. estadística. MicroVAX. Apple Macintosh y PC AT compatibles 80386 o superiores. matemáticas simbólicas. Al pasar de los años fue complementado y reimplementado en lenguaje C. Opera bajo sistemas operativos UNIX.1 Uso de Matrices MatLab emplea matrices porque con ellas se puede describir infinidad de cosas de una forma altamente flexible y matemáticamente eficiente. Además también se dispone del programa Simulink que es un entorno gráfico interactivo con el que se puede analizar.3 Plataformas MatLab está disponible para una amplio número de plataformas: estaciones de trabajo SUN.000 pies de altura. identificación de sistemas. Estos Toolboxes cubren en la actualidad prácticamente casi todas las áreas principales en el mundo de la ingeniería y la simulación. simulación de sistemas dinámicos. 1. una matriz puede describir el comportamiento de un sistema extremadamente complejo. modelizar y simular la dinámica de sistemas no lineales. una matriz puede describir una relación lineal entre los componentes de un modelo matemático. denominados Toolboxes. VAX. Una matriz de pixeles puede ser una imagen o una película. Actualmente la licencia de MatLab es propiedad de MathWorks Inc . Apollo. Y tal vez más significativamente. etc.2 Origen de MatLab MatLab fue originalmente desarrollado en lenguaje FORTRAN para ser usado en computadoras mainframe. señal. Macintosh y Windows. Una matriz de fluctuaciones de una señal puede ser un sonido o una voz humana.

procesamiento de señales. etc. Simulink es usado para simulación modelado no lineal avanzado. redes neurales. por ejemplo control. Se ofrecen además numerosas herramientas especiales en "Toolboxes" para resolver problemas de aplicaciones específicas. Estas herramientas son colecciones de rutinas escritas en MatLab.como un anexo a MatLab y que interactua con él en lenguaje de MatLab y lenguaje de bajo nivel C. 6 .

2. Diseño de filtros FIR mediante el algorítmo ó p t i m o d e P a r k s -McClellan. Procesamiento de la transformada rápida de Fourier FFT. Puede ser utilizada independientemente de MATLAB por programadores avezados en lenguaje C que necesiten prestaciones computacionales robustas y de alto rendimiento. retardo de fase. 7 . Funciones matemáticas elementales y especializadas. la C Math Library permitirá a los programadores de aplicaciones utilizar MATLAB para la creación de aplicaciones 'stand alone'. Chebyschev tipo I. retardo de grupo. Butterworth. Para los usuarios clásicos de MATLAB.2 THE MATLAB C MATH LIBRARY La MATLAB C Math Library proporcio n a a l u s u a r i o l a c a p a c i d a d c o m p u t a c i o n a l d e MATLAB en una libreria en formato objeto enlazable. El objetivo principal de la C Math Library es soportar el desarrollo de aplicaciones 'stand alone' utilizando MATLAB y su compilador. proporcionadas como libreri a s o b j e t o . Implementación de filtros. y transformada para no potencias de dos. Operadores lógicos y aritméticos. tanto directo como usando técnicas en el dominio de la frecuencia basadas en la FFT. Diseño de filtros IIR. Junto con el compilador de MATLAB. Librería de Aplicaciones de MATLAB 2. i n c l u y e n d o básicamente las siguientes categorías de funciones presentes en MATLAB y ficheros M compilados: • • • Algebra lineal.2. Para aquellos usuarios que sean nuevos en la tecnología MATLAB. Este incluye funciones para: • • • • • Análisis de filtros digitales incluyendo respuesta en frecuencia. La MATLAB C Math Library proporciona una amplia gama de funciones clásicas del programa MATLAB.1 SIGNAL P ROCESSING TOOLBOX MATLAB tiene una gran colección de funciones para el procesamiento de señal en el Signal Processing Toolbox. incluyendo la transformación para potencias de dos y su inversa. esta tecnología ofrece una nueva vía para la reducción del tiempo de desarrollo y puesta a punto de aplicaciones. incluyendo Chebyshebv tipo II y elíptico. se elimina así cualquier necesidad de volver a reescribir algoritmos en lenguaje C para ser utilizada por programas externos.

2 Utilización de MATLAB y de su compilador Para construir una aplicación del tipo 'stand alone' que incorpore código originalmente desarrollado como ficheros M de MATLAB . deberán seguirse los pasos siguientes: 1. 2. Respecto al mundo PC. Matrices especiales. Compilar el código C fuente en código objeto utilizando un compilador ANSI C. 2. Estadística básica y análisis de datos. Polinomios e interpolación.2. 3. (Nota: Las funciones del tipo Handle Graphics no están incluidas en la C Math Library). Enlazar el código resultante con la MATLAB C Math Library y con cualquier tipo de ficheros y prog ramas específicos que hayan sido previamente definidos por el usuario.1 Desarrollo de aplicaciones utilizando la MATLAB C Math Library La construcción y desarrollo de aplicaciones utilizando esta librería es un proceso de amplias perspectivas una vez se tiene un dominio adecuado de su operativa. análisis de datos y funciones de acceso a ficheros y matrices.2. Entradas y Salidas. Por otra parte la librería de toolboxes (toolbox library) contiene versiones compiladas de la mayoría de ficheros M de MATLAB para cálculo numérico. 8 . Utilizar el compilador de MATLAB para convertir ficheros M en C mediante la utilización de la instrucción mcc -e (la cual es externa a MATLAB). Gestión de cadenas de caracteres. El producto está dividido en dos categorías (como librerías objeto): la librería (built-in library) contiene versiones de las funciones de MATLAB en lenguaje C del tipo numérico. estas librerías pueden obtenerse como DLL's en el entorno Microsoft Windows o como librerias compartidas en equipos Apple MacIntosh. 2. En equipos UNIX estas librerias pueden ser igualmente obtenidas como librerías de tipo estáti c o ( s t a t i c l i b r a r i e s ) o b i e n c o m o l i b r e r í a s c o m p a r t i d a s ( s h a r e d libraries).• • • • • • • Matrices elementales y manipulación de vectores. lógico y utilidades. Gestión de memoria y errores.

imaginarias y complejas conjugadas. Diferenciación de polinomios.2. Toeplitz.D.2. vectorial o matricial con la misma facilidad sintáctica. La MATLAB C Math Library contiene más de 300 funciones numéricas. Interpolación por splines cúbicos. Evaluación de polinomios. Ma triz exponencial. Polinomios e interpolación Interpolación 1 . lógicas y de utilidad. etc. etc. Matrices de Hilbert. Funciones generales de evaluación de matrices.3 Velocidad y Precisión Los algoritmos utilizados en la MATLAB C Math Library han sido desarrollados por un grupo de renombrados expertos en programación algorítmica de funciones de tipo matemático (algebra lineal y cálculo numérico). Residuos de polinomios y residuos. Todas estas funciones le permitirán operar en datos de tipo escalar. 2. Las funciones de álgebra lineal han sido obtenidas de las librerias mundialmente reconocidas LINPACK y EISPACK. Vandermonde. Construcción polinomial.4 Lista parcial de funciones Funciones matemáticas Funcionales especiales y elementales Funciones gamma. Partes reales. Matrices inversas y factorización de matrices. 9 . normas.2. Funciones trigonomé tricas y de potencias. Matriz identidad y otras matrices elementales. beta y elíp ticas. rangos. Transformación de sistemas de coordenadas. Algebra lineal numérica Valores propios y descomposición de matrices.D y 2 . Multiplicación y división de polinomios. Determinantes. logarítmica y raíces cuadradas. Hadamard.

resta. Funciones max. Coeficientes de correlación y m a t r i c e s d e c o v a r i a n z a . Conversión de tipos de datos Fortran. Solución numérica de ecuaciones diferenciales ordinarias. Magnitudes y ángulos de fase. min. OR.D y 2 . la librería trabajará con aquellos enlazadores suministrados con la mayoría de compiladores ANSI C. 2. Funciones de fecha y hora. multiplicación. Deconvolución. NOT y XOR. Estadística y análisis de Fourier Convolución 1 . Clasificación de matrices.Métodos numéricos no lineales Búsqueda de ceros en funciones de una única variable. 2. división y potencias de matric e s . mean y otras funciones de estadística básica.6 Requerimientos La libreria MATLAB C Math Library cumple con la normativa estándar ANSI para compiladores C. Finalmente.2.D y 2 -D . Resolución numérica de integrales. que vienen 10 .2. Operadores lógicos AND. Matrix traspuesta.D y s u i n v e r s a . Operaciones algebráicas y lógicas Suma.D. Filtros digitales 1. Minimización de funciones de una o más variables.D y 2 . Conversión de n ú m e r o s a c a d e n a s y v i c e v e r s a . sum.5 Utilidades Gestión y mantenimiento de errores. Transformadas de Fourier 1 .

3. Esta opción es ideal para usuarios que quieren sacar la m á x i ma ventaja de MATLAB desde cualquier otra aplicación o producir código C eficiente a partir de los algoritmos desarrollados con MATLAB.The MATLAB Compiler . el compilador MATLAB elimina consumo de tiempo y la conversión manual de código. 2.3 THE MATLAB COMPILER TOOLBOX E l n u e v o c o m p i l a d o r d e M A T L A B . El compilador de MATLAB automatiza la creación de ficheros MEX de C (MATLAB Ejecutables). compilación y enlazado se inicia a través de una simple instrucción de MATLAB. El compilador de MATLAB traduce las funciones MATLAB en sus funciones equivalente en lenguaje C. T o d o e l p r o c e s o d e c o n v e r s i ó n . 2. Pueden construirse aplicaciones que se ejecutaran independientemente de MATLAB. Como un generador de código C fuente.M files . el compilador realiza llamadas a las rutinas de la libreria C para muchas de las instrucciones contenidas en el propio núcleo de MATLAB.2. El proceso en cuestión se realiza en tres pasos: 1. Pueden convertirse convenientemente ficheros M en código fuente C para incorporarlos posteriormente en los ficheros externos desarrollados en lenguaje C.de MATLAB.1 Generación Automática de ficheros MEX. La instrucción MATLAB cmex llama al compilador y al enlazador del sistema para construir un fichero MEX objeto. Los desarrollos 11 . para las cuales se generan de nuevo llamadas 'c a l l b a c k s ' a M A T L A B . Existen algunas funciones. si ese es el caso. Mientras se efectúa una conversión de los ficheros M en ficheros MEX. Pueden convertirse ficheros M en funciones C ejecutables que se ejecutaran desde dentro de MATLAB. que está disponible separadamente. 2. El intérprete de MATLAB enlaza automáticamente la función de MATLAB como 'runtime'. 3. incluyendo las rutinas 'Handle Graphics'. Mediante la conversión automática de ficheros M en código C fuente. Este compilador puede ser utilizado de dos modos: 1. Estas aplicaciones externa s requieren de la MATLAB C Math Library. Como un generador MEX automático. L o s f i c h e r o s M E X c o n t i e n e n c ó d i g o o b j e to q u e e s d i n á m i c a m e n t e e n l a z a d o c o m o 'runtime' en el entorno MATLAB por el intérprete del programa.p e r m i t e c r e a r c ó d i g o C optimizado procedente de ficheros M .

entera. Por ejemplo.7 12 .3 Opciones de ajuste del rendimiento E l c o m p i l a d o r d e M A T L AB ofrece varias opciones que permiten generar el programa final de la forma más eficiente. Sin embargo. depende fuertemente de cada aplicación. Para construir aplicaciones 'stand-alone' se debería seguir los siguientes pasos: 1. Obsérvese que las funciones gráficas de MATLAB no están incluidas. puede directamente: • • • Tratar todas las variables en ficheros como datos enteros y/o reales.4 Requerimientos del sistema Para utilizar el compilador de MATLAB para crear ficheros MEX se necesita la versión de MATLAB 4. 3.3. 2.2c y tener instalado uno de los siguientes compiladores de lenguaje C: PC/Microsoft Windows Metaware High C/C++ V. Desactivar el control de parámetros de entrada y el redimensionamiento dinámico de vectores. La velocidad de mejora de este rendimiento. Watcom C V.del tipo 'stand-alone' requieren para ello de la MATLAB C Math Library.2 Rendimiento del compilador Mediante la compilación de los ficheros M se puede obtener un rendimien to significativo. 2.e. 2. mediante la utilización del compilador se obtendrán significativas mejoras.3. Utilizar el compilador de MATLAB para convertir ficheros M en C con la instrucción externa mcc . Ud. 2. Utilizar una variable concreta como variable escalar.10. En algunos casos el rendimiento puede mejorar hasta en 200 veces la ejecución si la comparamos con el modo de trabajo interpretado del programa.3. real o una combinación de estas.0 o superior Power MacIntosh MetroWer ks CodeWarrior C V.3. Las opera ciones matriciales y vectoriales ejecutadas desde MATLAB ya están fuertemente optimizadas en su diseño. Compilar el código C fuente en código ob j e t o u t i l i z a n d o u n c o m p i l a d o r C .0 o superior. E n l a z a r e l c ó d i g o r e s u l t a n t e c o n l a s l i b r e r í a s m a t e m á t i c a s C d e M A T L A B y los ficheros específicos que dispongamos. vectorial.

4 UNIX y VMS Cualquier compilador ANSI C (Nota: El compilador de SunOS 4. determinantes. Algebra lineal exacta: Inversas.MPW MrC V. Funciones matemáticas especiales: E v a l u a c i ó n d e l a m a y o r í a d e l a s f u n c i o n e s utilizadas en matemáticas aplicadas. que se tengan las MATLAB C Math Library y un compilador ANSI C.0. Resolución de ecuaciones: Resolución numérica y simbólica de ecuaciones algebraicas y diferenciales. añade a MATLAB la capacidad de realizar cálculos simbólicos basados en MAPLE V © soportando además (The Extended Symbolic Math Toolbox) las librerías especializadas.5 680x0 MacIntosh MPW C Versión 3. Este no puede generar código de los diagramas de bloques de SIMULINK. canónicas de matrices simbólicas. no están soportadas por el compilador de MATLAB . The Basic Symbolic Math Toolbox es una colección de más de 50 funciones MATLAB las cuales permiten acceder al 13 . autovalores y formas Aritmética de precisión variable: Evaluación de expresiones matemáticas con diversos grados de precisión.X no es un compilador ANSI C). y los programas realizados para este último.3.0b2 o PPCC version 1. además del compilador de MATLAB. 2. como load y eval.1.5 Limitaciones del código compilado Ciertas instrucciones. integración y simplificación de expresiones matemáticas. Los toolboxes de MATLAB pueden incluir ficheros MEX y otros componentes que no son compilables. l o s p r i n c i p a l e s t i p o s d e o p e r a c i o n e s s o p o r t a d o s son los siguientes: • • • • • Algebra simbólica: Derivación. Existen dos versiones del mismo Toolbox. 2. Cualquiera que sea el equipo informático que vaya a utilizarse para desarrollar aplicaciones 'stand alone' se requiere.4 SYMBOLIC MATH TOOLBOX El Toolbox de Matemática Simbólica. Entre o t r o s .1.

se incluye una rutina especial para problemas de mínimos cuadrados no lineales. Resulta conveniente para una comprensión y mejor manejo de la toolbox poseer conocimientos básicos previos de análisis de funciones reales. sin imponer ninguna restricción o condición a la solución. si lo que se desea es obtener toda la potencia de cálculo del entorno. no lineales. Es posible utilizar este Toolbox sin conocimiento previos de MAPLE. Algunas de las áreas básicas que cubre este toolbox para MATLAB son las siguientes: • Cálculo de un extremo local (máximo o mínimo) de una función real f(x). Asimismo. Programación cuadrática.kernel de MAPLE utilizand o l a S i n t a x i s y el estilo del lenguaje MATLAB. • • • • • • • 14 . con o sin condiciones. en general. será necesario un a mplio conocimiento del manejo y la programación de MAPLE 2. Problemas de mínimos cuadrados no negativos. Programación lineal. Sin embargo. matrices y teoría de extremos. Solución de problemas minimax. condicionado a que la solución satisfaga ciertas condiciones de desigualdad (g(x)<=0) y/o igualdad (g(x)=0). ya que los ficheros contenidos en él son totalmente autónomos. de funciones reales las cuales son generalmente multivariables y no lineales. Como caso particular. posee funciones para la resolución de algunos tipos de problemas matriciales en extremos. y el acceso a los paquetes de funciones de más de veinte campos de las matemáticas e s p e c i a l e s a p l i c a d a s . en general multivariable y no lineal. The Extended Symbolic Math Toolbox aumenta esta funcionalidad incluyendo todas las características de programación de MAPLE.5 OPTIMIZATION TOOLBOX El toolbox de optimización consta de un conjunto de funciones que resuelven problemas de extremos. Cálculo de un extremo local (máximo o mínimo) de una función real f(x). en general multivariable y no lineal. Problemas de aproximación a un conjunto de objetivos. Cálculo de soluciones de un sistema de ecuaciones continuas y.

2.6 IMAGE PROCESSING TOOLBOX
Este Toolbox proporciona a MATLAB de un conjunto de funciones que amplia las capacidades del producto para realizar desarrollo de aplicaciones y de nuevos algoritmos en el campo del proceso y análisis de imagenes. El entorno matemático y de creación de MATLAB es ideal para el procesado de imágenes, ya que estas imágenes son, al fin y al cabo, matrices. Este toolbox incorpora funciones para: • • • • • Diseño de filtros. Mejora y retocado de imágenes. Análisis y estadística de imágenes. Operaciones morfológicas, geométricas y de color. Transformaciones 2D.

E l p r o c e s o d e i m á g e n e s e s u n c a m p o d e t r a b a j o a b s o l u t a m e n te c r u c i a l p a r a aquellos colectivos e industrias que estén trabajando en áreas como diagnóstico médico, astronomía, geofísica, ciencia medioambientales, análisis de datos en laboratorios, inspección industrial, etc. Los programas actuales de procesado y análisis de imágenes se clasifican actualmente en dos categorías: librerías de bajo nivel para programadores profesionales y paquetes de aplicación con capacidades limitadas de personalización. Ambos tipos de aplicaciones están, generalmente, pensados para ta reas básicas de visualización de datos y 'rendering'. Sin embargo, muchos de ellos adolecen de la posibilidad de efectuar análisis numéricos de los mismos. El Image Processing Toolbox entra dentro de la categoría de familias de funciones que, desde el ento rno de trabajo de MATLAB , permitirá al profesional efectuar una exploración exhaustiva y desde un punto de vista matemático de las imágenes y gráficos que se deseen tratar o analizar. Algunas de las funciones más importantes incluidas dentro de este toolbo x s o n las siguientes: • • • • • • • • Análisis de imágenes y estadística. Diseño de filtros y recuperación de imágenes. Mejora de imágenes. Operaciones morfológicas. Definición de mapas de colores y modificación gráfica. Operaciones geométricas. Transformación de imágenes. Proceso de bloques

15

2.7 Neural Network Toolbox
Este toolbox proporciona funciones para el diseño, inicialización, simulación y entrenamiento de los modelos neuronales de uso más extendido en la actualidad: Perceptrón, redes lineales, redes de retropropagación, redes de base radial, aprendizaje asociativo y competitivo, aplicaciones autoorganizativas, aprendizaje de cuantización vectorial, redes de Elman y redes de Hopfield. Mediante la inclusión de un amplio abanico de funciones y procedimientos escritos para MATLAB, el usuario puede mediante el Neural Network Toolbox efectuar el diseño de arquitecturas complejas, combinando los modelos que ya estan proporcionados por defecto en el toolbox. Asimismo, el usuario puede definir sus propias funciones d e transferencia e inicialización, reglas de aprendizaje, funciones de entrenamiento y estimación de error para usarlas posteriormente con las funciones básicas. El toolbox, aporta las facilidades y prestaciones gráficas de MATLAB para el estudio del compor tamiento de las redes: visualización gráfica de la matriz de pesos y vector de desplazamiento mediante diagramas de Hinton, representación de errores a lo largo del entrenamiento, mapas de superficie de error en función de pesos y vector de desplazamiento, etc. Estos gráficos resultan muy útiles en el estudio de la convergencia y estabilidad de los algoritmos de aprendizaje. Este toolbox incluye un manual de introducción al campo de las redes neuronales junto con una colección de demostraciones y aplicaciones muy didácticas, útiles para el estudio y la profundización en las cuestiones fundamentales de los paradigmas de redes neuronales básicos. Asimismo, se proporcionan las referencias bibliográficas más significativas referidas a los distintos modelos que aparecen en la aplicación. A pesar de que el estudio de las redes neuronales se inició ya hace algunas decadas, las primeras aplicaciones sólidas dentro de este campo no han tenido lugar hasta hace unos doce años y aun ahora constituyen un área de investigación en rápido desarrollo. Este toolbox tiene por tanto una orientación diferente a aquellos destinados a campos como el de sistemas de control u optimización donde la terminología, fundamentos matemáticos y procedimientos de diseño estan ya firmemente establecidos y se han aplicado durante años. Este toolbox pretende que sea utilizado para la valoración y diseño de diseños neuronales en la industria y sobre todo en educación e investigación. Esta herramienta tiene el soporte de MATLAB 4.2c y SIMULINK. La librería de SIMULINK contiene modelos de capas de redes neuronales de cada tipo de neurona implementada en el toolbox de redes neuronales. Es posible por tanto diseñar sistemas SIMULINK para simular redes neuronales creadas usando esta herramienta. Simplemente, las capas se conectan de acuerdo con la arquitectura de la red y se proporcionan como entrada a la caja de diálogo de cada capa la matriz de pesos apropiada y el vector de desplazamiento. Usando el generador de código C de SIMULINK es posible generar a u t o m á t i c a m e n t e e l c ó d i g o correspondiente a un diseño neuronal. 16

Dentro de las aplicaciones básicas de este toolbox, cabe destacar aquellas que están orientadas a aquellas que se enmarcan dentro del campo de la industria aeroespacial y automoción (simulación, sistemas de control, autopilotaje), banca, defensa (reconocimiento de patrones, procesamiento de señales, identificación de imágenes, extracción de características, compresión de datos), electrónica (control de procesos, análisis de errores, modelado no lineal, síntesis de voz, visión por ordenador), economía (análisis financiero, análisis predictivo), industria (control de procesos, identificación en tiempo real, sistemas de inspección), medicina, robótica (control de trayectorias, sistemas de visión), reconocimiento y síntesis del habla, telecomunicaciones (control de datos e imágenes, servicios de información automatizada, traducción del lenguaje hablado en tiempo real, diagnosis, sistemas de enrutamiento), etc. El toolbox contiene muchos ejemplos de al g u n a s d e e s t a s a p l i c a c i o n e s .

2.8 NON LINEAR CONTROL DESIGN TOOLBOX
Se trata del primer producto comercialmente disponible en la actualidad para el diseño de controladores automáticos en entornos de sistemas no lineales. Este n u e v o t o o l b o x e s t á p e n s a d o pa r a s e r u t i l i z a d o e x h a u s t i v a m e n t e p o r i n g e n i e r o s que diseñan controladores para industrias avanzadas, destacando el sector del automóvil, ingenieria aeroespacial, control de procesos y empresas petroquímicas. Según indica Jim Tung, Vicepresidente del área d e d e s a r r o l l o d e The MathWorks Group, Inc. "El proceso de aproximación tradicional en el diseño de controladores en sistemas no lineales ha sido hasta la fecha linealizarlos de algún modo para aplicar posteriomente un método de diseño lineal que requiere d e importantes ajustes manuales. El toolbox NCD permite por primera vez a los ingenieros de control diseñar directamente sus controladores en un ambiente no lineal, obviando la aproximación lineal y otros procedimientos auxiliares que antes se necesitaban de m o d o i m p e r a t i v o . Los resultados ahora son de elevada calidad, controladores más robustos y un ciclo de diseño mucho más rápido. El toolbox NCD extiende, además, las prestaciones que incorpora SIMULINK, el e n t o r n o d e d e s a r r o l l o d e d i a g r a m a s d e b l o q u e s p a ra l a m o d e l a c i ó n y a n á l i s i s d e sistemas dinámicos de The MathWorks, Inc. El usuario puede incluir uno o más bloques NCD en el sistema y describir posteriormente de modo totalmente gráfico las restricciones, tolerancias y límites de permisividad de cada uno d e estos bloques. Los métodos avanzados de optimización y la simulación del proceso son posteriormente analizados y ajustados mediante la inclusión de unas ciertas variables de contorno para poder obtener los tiempos de respuesta d e s e a d o s . E s t e t o o l b o x p u ed e s e r u t i l i z a d o p a r a a j u s t a r u n a a m p l i a v a r i e d a d d e controladores que se utilicen en un sistema, destacando los controladores PID, LQR, LQG y estructuras H infinito. El diseñador de sistemas puede utilizar el método de Montecarlo para el diseño y análisis de controladores robustos,

17

Además. los cuales cubren un amplio espectro de áreas d e i n t e r é s . podrán utilizarse modelos no lineales más sofisticados utilizando SIMULINK. etc. Actualmente. 2. aquellos usuarios de las librerías Fortran de NAG que a la vez sean usuarios de MATLAB. La NAG Foundation Toolbox es resultado de la colaboración corporativa que actualmente están llevando a cabo The MathWorks Group y The Numerical Algoriths Group para proporcionar un rápido acceso desde MATLAB a un importante de rutinas matemáticas contenidas en la NAG Foundation Library. estadística. destacando ordenadores personales tipo PC o Apple MacIntosh. e n t r e l a s qu e c a b e d e s t a c a r o p t i m i z a c i ó n . La NAG Foundation Toolbox añade también rutinas concretas para campos específicos tales como la resolución de problemas con condicion es de contorno. Este toolbox se encuentra actualmente disponible para una amplia va riedad de plataformas informáticas. e c u a c i o n e s d i f e r e n c i a l e s ordinarias y en derivadas parciales. problemas de cuadratura adaptativa multidimensional. ajuste de curvas y superficies y el acceso a los algoritmos LAPACK para la resolución de ecuaciones lineales. posteriormente. este toolbox incorpora 250 rutinas matemáticas. desde dentro de MATLAB. numerosas estaciones UNIX y ordenadores Digital VAX VMS. Los nombre de las funciones han sido directamente tomados de las especificaciones de función clásica que añade The Numerical Algorithms Group para sus librerías. a u n amplio conjunto de funciones matemáticas y estadísticas contenidas en las clásicas NAG Fortran Libraries de la empresa The Numerical Algorithms Group Incorpora más de 200 ficheros M. 18 . Por ello. Por ejemplo. podrán utilizarse toolboxes para el análisis de sistemas lineales para el diseño inicial. puede invocarse NCD para un mejor ajuste paramétrico y para la optimización de los controladores. encontraran bastante cómodo acceder a las rutinas NAG utilizando la nomenclatura original. El toolbox NCD es un componente avanzado del entorno integrado de desarrollo que ofrecen a los especialistas los programas MATLAB y SIMULINK.9 NAG FOUNDATION TOOLBOX Este toolbox proporciona un acceso interactivo. Como resultado de esto. Algunas de las áreas de cobertura de la NAG Foundation Toolbox son las siguientes: • • Ceros de polinomios Raíces de una o más ecuaciones de tipo trascendental. los diseñadores podrán beneficiarse de muchos de los toolboxes desarrollados para este entorno en materia de diseño de sistemas lineales. cuadratura.siempre que se detecten determinadas variaciones en los componentes del sistema.

Maximización y minimización de funciones.• • • • • • • • • • • • • • • • • • Suma de series. Cuadraturas. Valores y vectores propios. Análisis de series temporales. Ecuaciones lineales (LAPACK). Análisis de correlación y regresiones. Métodos multivariantes. Generación de números aleatorios. Estadística no paramétrica. Resolución de ecuaciones lineales simultáneas. Ecuaciones diferenciales en derivadas parciales. Factorización de matrices. Rutinas de clasificación. Aproximación de curvas y superficies. Aproximación de funciones especiales. 19 . Ecuaciones diferenciales ordinarias. Estadística básica.

Este indicador es de la siguiente forma: >> Al iniciar el uso de MatLab están disponibles dos comandos de ayuda y demostración. Por ejemplo: >>help permite obtener una ayuda sobre los diferentes comandos de MatLab. >>quit 4. La manera más fácil de entrar matrices pequeñas es enumerando los elementos de ésta de tal manera que: • • • los elementos estén separados por blancos ó comas. Para e j e c u t a r l o s s e e s c r i b e e l c o m a n d o e n l a l í n e a d e c o m a n d o s después del símbolo >> y se presiona la tecla Enter. INICIANDO MATLAB Después de ejecutar el programa MatLab desde el sistema operativo empleado.3. Si la matriz a introducir es muy grande se puede utilizar el siguiente formato: 20 . 4 5 6. l os elementos estén cerrados entre corchetes. Puede ejecutarse un comando si este está escrito después del símbolo >> y se presiona la tecla Enter. aparece el indicador de comandos el cual está listo para recibir instrucciones en lenguaje MatLab. muestre el final de cada fila con . (punto y coma). 7 8 9 ] resultaría en la matriz A= 1 2 3 4 5 6 7 8 9 MATLAB guarda esta matriz para utilizarla luego bajo el nombre de A. MATLAB trabaja esencialmente con matrices numéricas rectangulares. >>demo h a c e u n a d e m o s t r a c i ó n d e l a s d i f e r e n t e s a p l i c a c i o n es de MatLab. Para cerrar o finalizar el uso de MatLab se usa el comando quit . [ ]. por ejemplo haciendo doble click sobre el icono de MatLa b e n a m b i e n t e s Windows. Ejemplo: A = [ 1 2 3. USO DE COMANDOS La primera forma de interactuar con MatLab es a través de la línea de comandos.

Estas pueden estar formadas por un sólo elementos (escalar). por ejemplo: >>A=[1 2 3] define A como un vector de tres elementos.) al final del comando. 4 5 6] o >>A=[1 2 3 4 5 6] ambos comandos producen el mismo efecto: A= 1 2 3 4 5 6 su valor en pantalla 21 . puede presentarse escri biendo la variable después del prompt (>>).). >>A=[1 2 3. >>A Se pueden redefinir variables. Al definir A automáticamente MatLab presenta en pantalla su valor. >>A=1 define A como un escalar de valor 1. A(1)=1. debe agregarse punto y coma (. Estos elementos deben separase con espacios en blanco o comas (.A = [1 2 3 4 5 6 7 8 9] El comando load y la función fread p u e d e n l e e r m a t r i c e s g e n e r a d a s e n s e s i o n e s anteriores ó generadas por otros programas. por una fila o una columna (vector) o por una serie de filas y columnas (matriz propiamente dicha). A(2)=2 y A(3)=3. ) o c o n retorno (Enter). A= 1 Para no presentar el valor de la variable creada. Para definir una m a t r i z s e d e b e n s e p a r a r l a s f i l a s c o n p u n t o y c o m a ( . Después de crear una variable. Ya que MatLab se basa en el álgebra de matrices como ejemplo crearemos una matriz.

7321 4. 7 3 2 1 4 . 3 0 0 0 1 .(1+2+3) *4/5] resultaría en x = -1 .1 Elementos de matrices Los elementos de una matriz pueden ser cualquier expr e s i ó n d e M A T L A B . A = [A.3. T a m b i é n d i s t i n g u e l a s l e t r a s mayúsculas de las minúsculas.2 Instrucciones de MATLAB y Variables Si omites el nombre de la variable y e l s i g n o " = " .3000 1.sqrt(3). Ejemplo: x = [-1. Ejemplo: En el ejemplo anterior x(4) = abs(x(1)) resultaría x= -1. M A T L A B a u t o m á t i c a m e n t e c r e a la variable a n s p a r a g u a r d a r e l r e s u l t a d o .4. r] y resultaría A= 1 2 3 4 5 6 7 8 9 10 11 12 4. 8 0 0 0 Nos podemos referir a elementos individuales de la matriz con índices entre paréntesis.8000 0 1. 22 .3000 Para añadir otra fila a la matriz A de arriba podemos hacer lo siguiente: r = [10 11 12]. Todos los nombres de funciones deben ser en letras minúsculas.

Usando el comando load temp las obtienes nuevamente del archivo temp. Y. y que no se pueden eliminar.mat. s a v e guarda todas las variables en un archivo llamado matlab.mat. 4. Puedes combinar las funciones de acuerdo a tu necesidad. Si deseas guardar tu espacio de trabajo escribes s a v e . Para ver información adicional acerca de estas variables se utiliza el c o m a n d o w h o s .4. Z en el archivo temp.6 Saliendo y Guardando el Espacio de Trabajo Para salir de MATLAB se escribe quit ó exit . Su valor inicial es la distancia de 1. Se puede utilizar s a v e y load con otros nombres de archivos. A d e m á s d e éstas funciones todo usuario también puede crear otras funciones. Al terminar una sesión de MATLAB. Para listar las variables en el espacio de trabajo se utiliza el comando who .5 Funciones Las funciones que utiliza MATLAB son intrínsecas al procesador de éste.0 al próximo número de punto flotante mayor. load y s a v e también pueden impor tar y exportar información de archivos ASCII. ó para guardar solo variables seleccionadas Ejemplo: save temp X Y Z Este ejemplo guarda las variables X. las variables en el espacio de trabajo se borran. 23 .4 Variables Permanentes Las variables permanentes son aquellas con significado especial. Por ejemplo la singula r i d a d y el rango.3 Obteniendo Información del Espacio de Trabajo Los ejemplos que hemos dado se han guardado en variables que están en el espacio de trabajo de MATLAB. Ejemplo: x = sqrt(log(z)) 4.mat. La variable e p s es una tolerancia para determinar. Otras f u n c i o n e s e s t á n d i s p o n i b l e s e n l a l i b r e r í a e x t e r n a d e a r c h i vo s -M . 4. Estas son por ejemplo las variables a n s y e p s .

Si x y v son vectores.x(v(n))].. Por ejemplo x = 1:5 genera un vector fila que contiene los números enteros del 1 al 5: x = 1 2 3 4 5 No necesariamente se tiene que incrementar por números enteros. Para matrices. pueden ser decimales. 3) + A(3. 3) = A(1.. son importantes en MATLAB. 24 . Ejemplo: A= 1 2 3 4 5 6 7 8 9 A(3.. números negativos ó constantes.4. Índices Podemos referirnos a elementos individuales de matrices encerrando sus índices en paréntesis. 1) resultaría A= 1 2 3 4 5 6 7 8 10 Un índice puede ser un vector. :. entonces x(v) es [x(v(1)). los índices de vectores permiten acceso a submatrices contiguas y no -con t i g u a s . . x(v(2)).7 Manipulación de Vectores y Matrices Generando Vectores Los dos puntos.

8 Operaciones de Matrices Matrices Transpuestas El caracter ' (apóstrofe) denota la transpuesta de la matriz. si A y B son matrices 3 x 3. entonces A + B se puede calcular. 7:10) es la submatriz 5 x 4 de las pr i m e r a s c i n c o f i l a s y l a s ú l t i m a s c u a t r o c o l u m n a s . Entonces A(1:5. que consiste de los primeros cinco elementos en la tercera columna de A. B es la transpuesta de la matriz A. ó vector columna. 3) especifica la submatriz 5 x 1. También A(1:5. Las operaciones suma y resta también está definidas si uno de los operandos es un escalar. [3 5 10]) = B(:. Ejemplo: x= -1 0 2 25 . quinta y décima columna de A con las primeras tres columnas de B. Utilizando solo los dos puntos denota todo lo correspondiente a la fila ó columna.transposición 4.parte superior triangular ' .extrae ó crea una diagonal t r i l . Sumando y Restando Matrices Las operaciones suma (+) y resta (-) son definidas para las matrices siempre y c u a n d o é s tas tengan la misma dimensión.Por ejemplo. suponga que A es una matriz 10 por 10. una matriz 1 x 1. Si tenemos la matriz A y llamamos B = A'. Podríamos tener una instrucción como: A(:. Manipulación de Matrices diag . es decir. Es decir.parte inferior triangular triu . 1:3) que reemplaza la tercera.

Note que y' * x produce el mismo resultado. 3 2 1]. Producto escalar El producto interior (producto escalar ó producto punto) se consigue de la siguiente manera: x' * y asumiendo que x y y son vectores columnas.y = x . Para sumarlas se escribe la operación: >>A+B El resultado de la operación es por defecto almacenado en la variable ans e inmediatamente presentado en pantalla: ans = 7 7 7 7 7 7 Para almacenar la suma de A y B en la variable C: >>C=A+B C= 7 7 7 7 7 7 Multiplicando Matrices La operación de multiplicación de matrices está definida siempre que el número de columnas de la primera matriz sea igual a el número de filas de la segunda matriz.1 resultaría y = -2 -1 1 Ejemplo: >>A=[1 2 3. 26 . define las matrices A y B. B=[6 5 4.4 5 6].

e n t o n c e s A\B y B/A corresponden a la multiplicación izquierda y derecha de B por el inverso de A. el método usado es la Eliminación Gaussiana. Los factores son usados para resolver sistemas de ecuaciones sub-d e t e r m i n a d o s y sobre -determinados. Si A es cuadrada. donde k es el rango efectivo de A. Usando Exponentes con Matrices L a e x p r e s i ó n A ^ n e l e v a A a l a n. cualquier matriz.Producto de una matriz por un vector El producto de una matriz y un vector es un caso especial del producto matrizmatriz y naturalmente. X = A\B es una solución a A * X = B X = B/A es una solución a X * A = B A \B es definido cuando B tiene la misma cantidad de filas que A. k componentes diferentes de cero. Cada columna de X tiene.é s i m a p o t e n c i a y e s t a d e f i n i d o s i A e s u n a matriz cuadrada y n un escalar. al menos.s i n g u l a r . El resultado es una matriz X con las mismas dimensiones que B. También puede calcular funciones trascendentales de matrices. esto es. inv(A) * B y B * inv(A) respectivamente. Funciones Matriciales Trascendentales y Elementales MATLAB considera expresiones como exp(A) y sqrt(A) como operaciones de a r r e g l o s . B/A esta definido en términos de A\B p o r B / A = ( A ' \B ' ) ' . d e f i n i d a s e n los elementos individuales de A. El resultado es una matriz X m-p o r -n donde m es el número de columnas de A y n es el número de columnas de B. un escalar como pi. se factoriza utilizando la ortogonalización de Householder con pivoteo de columnas. Si A no es cuadrada. ó ser multiplicado por. como la matriz exponencial y la matriz 27 . Dividiendo Matrices En división de matrices. El resultado es obtenido directamente sin la computación del inverso. si A es una matriz cuadrada no. puede multiplicar.

0000 28 ./B y A. las operaciones de arreglos y las operaciones de matrices son iguales.9 Operaciones de Arreglos El término operaciones de arreglo se refiere a las operacio n e s d e a r i t m é t i c a elemento por elemento.\ y resulta z= 4. especiales están definidas solamente para Otras funciones elementales de matrices son: poly .traza kron .* denota multiplicación de arreglos elemento por elemento. Suma y Resta de Arreglos Para suma y resta. z = x.determinante trace . Ejemplo: z = x. Estas operaciones matrices cuadradas.5000 2.) antes de un operador indica una operación de arreglos elemento por elemento. Un punto (. \B d a n l o s c o c i e n t e s d e l o s e l e m e n t o s i n d i v i d u a l e s . y = [4 5 6]. *y resulta z = 4 10 18 Las expresiones A. Multiplicación y División de Arreglos El símbolo . Ejemplo: x = [1 2 3].p r o d u c t o t e n s o r i a l d e K r o n e c k e r eig .logarítmica.calcula los valores propios de la matriz 4.0000 2.p o l i n o m i o c a r a c t e r í s t i c o d e t .

10 Ejemplos: Operaciones Aritméticas Ejemplos: >> 1/2 ans = 0.^ denota exponenciación elemento por elemento.5000 >> 2\ 1 ans = 0.5000 >> a=[2.2.3] b= 1 2 3 >> a' ans = 2 1 2 >> b' ans = 1 2 3 29 . 4.Exponentes con Arreglos El símbolo .1.2] a= 2 1 2 >> b=[1.

*3 ans = 3 6 9 30 .*b' ??? Error using ==> .*b ans = 2 2 6 >> a*b' ans = 2 4 6 1 2 3 2 4 6 >> a.>> a*b ??? Error using ==> * Inner matrix dimensions must agree. >> a.* Matrix dimensions must agree. >> a*3 ans = 6 3 6 >> b.

^2 ans = 4 1 4 >> 2^a ??? Error using ==> ^ Matrix must be square. >> a.^b ans = 2 1 8 >> a^2 ??? Error using ==> ^ Matrix must be square. >> a. 31 .3333 0.6667 0.6667 >> a.>> a/3 ans = 0./3 ans = 0.6667 0.3333 0.6667 >> a^b ??? Error using ==> ^ Matrix dimensions must agree.

^a ans = 4 2 4 Precisión Aproximadamente 16 dígitos significativos computadoras utilizando aritmética flotante IEEE.- en Formatos de salida : 4/3 a) format short 1.33333333333333e00 e) format bank 1.33333333333333 d) format long e 1. utilizada .33 f) format hex 3ff5555555555555 32 .3333 b) format short e 1. El rango aproximado es: 1 0 ^-3 0 8 a 1 0 ^ 3 0 8 .>> 2.3333e+00 c) format long 1.

Los archivos de funciones.M se puede llamar a sí mismo recursivamente.M c o n s i s t e d e u n a s e c u e n c i a d e i n s t r u c c i o n e s n o r m a l e s d e M A T L A B .7 8 9] define la matriz A y el siguiente comando A' calcula y presenta en pantalla la transpuesta de A. Esto es así porque siempre tienen una extención de ". Un archivo . MATLAB simplemente ejecuta los comandos encontrados en dicho archivo.m" como la última parte de su nombre de archivo. PROGRAMANDO CON M ATLAB 5.M: los de comandos y las funciones. q u e p r o b a b l e m e n t e i n c l u y e n r e f e r e n c i a s a o t r o s a r c h i v o s. Los archivos de comandos.M. permiten añadir a MATLAB funciones adicionales expandiendo asi la capacidad de este programa. Estos pueden ser escritos uno por uno a través de la línea de comandos: >>A=[1 2 3.5. son archivosordinarios de texto ASCII. 5. ó diseñar secuencias 33 . resolver problemas. automatizan secuencias largas de comandos.7 8 9] A= 1 2 3 4 5 6 7 8 9 >>A' ans = 1 4 7 2 5 8 3 6 9 El primer comando A=[1 2 3.1. Los comandos son utilizados para hacer análisis.1 Generalidades Programar en MatLab es usar una serie de comandos que permitan realizar una tarea o función específica. comandos y funciones.M.1 Archivos -M: Comandos y Funciones Los archivos de disco que contienen instrucciones de MATLAB se llaman a r c h i v o s. Archivos de Comandos Cuando un archivo de comandos es invocado.M utilizando un editor de texto ó procesador de palabras. Ambos. Las instrucciones en un archivo de comando operan globalmente en los datos en el espacio de trabajo.4 5 6.4 5 6. Hay dos tipos de archivos . Puedes crear archivos. Un archivo .

m contiene los siguientes comandos de MATLAB: % U n a r c h i v o -M p a r a c a l c u l a r l o s e l e m e n t o s d e l a s e r i e d e F i b o n a c c i f = [1 1]. En una función. while f(i) + f(i+1) < 1000 f(i+2) = f(i) + f(i+1). end plot(f) S i e s c r i b i m o s fibo e n u n a v e n t a n a d e M A T L A B s e g u i d o d e " e n t e r " v e m o s q u e MATLAB calcula los primeros 16 números de Fibonacci. suponga que el archivo f i b o . y luego grafica estos. crear nuevas funciones para MATLAB utilizando el lenguaje propio de MATLAB. n] = size(x). Las variables definidas y manipuladas dentro de la función son locales a esta y no operan globalmente en el espacio de trabajo.. if m == 1 m = n. a diferencia de un comando.l a r g a s d e c o m a n d o s q u e s e c o n v i e r t a n e n interactivas. i = i + 1. Los programas de demostraciones incluidos en MATLAB son ejemplos de como usar comandos para hacer tareas más complicadas. Luego que la ejecución del archivo es completada. end y = sum(x)/m. Por ejemplo. Archivos de Funciones Un archivo . [m. mean(x) es un vector fila conteniendo el valor medio de cada columna. e s un archivo de función. Los archivos de funciones se utilizan para extender a MATLAB. % Para matrices. m contiene las instrucciones: function y = mean(x) % Valor medio.M q u e c o n t i e n e l a p a l a b r a f u n c ti o n a l p r i n c i p i o d e l a p r i m e r a l í n e a .e. Para utilizar estos escriba demos en el "prompt" de MATLAB. se deben de pasar los argumentos. i. i = 1. El archivo m e a n . las variables f y i permanecen en el espacio de trabajo. mean(x) retorna el valor medio de los elementos del vector x. % Para vectores. 34 .

Las primeras líneas documentan el archivo . por ejemplo. entonces. end x % Fin del archivo-m Este ejemplo es un archivo . permanecen sin cambios. y los argumentos de salida. for i=1:n x(i)=i^2.) No es necesario asi gnar los enteros de 1 al 99 en la variable x. (O si existen. el valor promedio es encontrado escribiendo m e a n ( z) que resultaría ans = 50 Veamos algunos detalles de m e a n . Utilizamos mean con una variable llamada z. Sin esta línea sería un archivo de comando. Este vector que contenía los enteros de 1 a 99 fue pasado ó copiado a mean donde se convirtió en una variable local llamada x.M y a p a r e c e n e n l a p a n t a l l a c u a n d o escribimos help mean. n. Para ejecutarlo. % indica que el resto de la línea es un comentario. Las variables m. e y son locales a mean y no existen en el espacio de trabajo. m: La primera línea declara el nombre de la función. Ejemplo % Ejemplo de un archivo-m % Cre a c i ó n d e l v e c t o r x u s a n d o e l c o m a n d o f o r n=5.(Las lineas que comienzan con "%" son interpretadas como comentarios por MATLAB). los argumentos de entrada. La existencia de este archivo en el disco duro define una nueva función en MATLAB llamada m e a n . en la línea de comandos se debe escribir el nombre del archivo: >>ejemplo x = 1 4 9 16 25 35 .m tipo comando. S i z e s u n v e c t o r d e l o s e n t e r o s d e s d e 1 a 9 9 . z = 1:99.

plot(x). Este vector debe ser definido previamente. La función promedio usa por parámetro un vector.Ejemplo % C a lc u l a e l p r o m e d i o d e l o s e l e m e n t o s d e u n v e c t o r y d i b u j a d i c h o v e c t o r % Sintaxis : p r o m e d i o ( x ) d o n d e x e s e l v e c t o r a p r o m e d i a r function p = promedio(x) n=length(x). p=0. >>promedio(A) ans = 3. se tiene: 36 . >>A=[1 2 4 3 7 5 6 1 2 0 8 5]. Al observar el contenido de dicha ventana luego de ejecutar la función promedio. P a r a e j e c u t a r l a f u n c i ó n . s e h a c e l a l l a m a d a en l a l í n e a d e c o m a n d o s i n c l u y e n d o el parámetro. end p=p/n. for i=1:n p=p+x(i).6667 MatLab presenta las imágenes en una ventana de figuras.

Puede agregársele archivos .tangente asin .n) M a t r i z d e m x n d e c e r o s y=zeros(size(A) Matriz del tamaño de A.tangente inversa Algunas funciones elementales son: real(a) Pa rte real imag(a) Parte imaginaria conj(a) C o n j u g a d o d e a fft(x) Transformada discreta de Fourier del vector x fft(x.n) FFT inversa de n puntos muestrados zero s Inicializa a ceros zeros(n) M a t r i z d e n x n d e c e r o s zeros(m.m i n c o r p o r a d o s ( b u i l t-in).seno cos .2 Otras funciones Funciones Matemáticas Algunas funciones trigonométricas utilizadas por MATLAB son: sin .seno inverso a c o s .m se usa el comando t y p e s e g u i d o d e l n o m b r e del archivo. Los comentarios incluidos en estos scripts y funciones se visualizan al usar el comando h e l p s e g u i d o d e l n o m b re d e l a r c h i v o .coseno inverso a t a n .m definidos por el usuario almacenando los mismos en el directorio principal de MatLab. 5.coseno t a n .n) FFT de n puntos muestrales ifft(x) Transformada inversa rápida de Fourier del vector x ifft(x. >>help promedio Calcula el promedio de los elementos de un vector y dibuja dicho vector Sintaxis : p r o m e d i o ( x ) d o n d e x e s e l v e c t o r a p r o m e d i a r P a r a v e r e l c o n t e n i d o d e u n a r c h i v o. M a t L a b p o s e e u n c o n j u n t o d e a r c h i v o s. todos ceros 37 .Esta imagen es el resultado del comando plot(x) al ejecutar la función promedio.1.

También es la base para la solución de sistemas lineales. [L. 38 .Ejemplo size R e g r e s a e l n ú m e r o d e f i l a s y c o l u m n a s A= 0 7 -6 1 0 0 0 1 0 >> [m n]=size(A) m = 3 n= 3 F u n c i o n e s ma t r i c i a l e s tril(A) Matriz triangular inferior triu(A) Matriz triangular superior p a s c a l Triangulo de Pascal t o c p l i t z Tocplitz Ejemplos >> A = 0 7 -6 1 0 0 0 1 0 >> toeplitz(A) ans = 0 1 0 7 0 1 -6 0 0 1 0 1 0 7 0 1 -6 0 0 1 0 1 0 7 0 1 -6 P r o d u c t o d e d o s matrices triangulares. U] = lu(A). Esta factorización se utiliza para obtener el inverso y el determinante. Para obtener la factorización LU de A escribimos.

Un ejemplo de una función es el archivo -M l l a m a d o h u m p s . Esta factorización se utiliza para resolver sistemas lineales con más ecuaciones que desconocidas. V ] = s v d ( A ) produce los tres factores en la descomposición de valores singulares A = U*S*V'. La función s v d ( A ) devuelve solamente los elementos de la diagonal de S. m contiene las siguientes instrucciones: function y = humps(x) 39 .norma 1.e s t i m a d o d e l n ú m e r o d e c o n d i c i ó n Funciones de Funciones MATLAB representa funciones matemáticas mediante archivos. Se utiliza para matrices cuadradas ó rectangulares. que son los valores singulares de A.M l l a m a d o h u m p s . rango y acondicionamiento asociadas son: c o n d . norma 2. Las matrices U y V son ortogonales y la matriz S es diagonal. La asignación [ X . D ] = e i g ( A ) p ro d u c e u n a m a t r i z d i a g o n a l D c u y o s e l e m e n t o s diagonales son los valores propios de A y las columnas de X son los vectores propios correspondientes. Las Funciones de norma.rango rcond . Descomposición de Valores Propios La Descomposición de Valores Propios se utiliza para obtener los valores y vectores propios de una matriz cuadrada A. La función e i g ( A ) devuelve los valores propios de A en un vector columna. La asignación triple [ U . norma F. Descomposición de Valores Singulares La descomposición de Valores Singulares es importante para el análisis de problemas que envuelvan matrices.Factorización Ortogonal ó Factori z a c i ó n Q R . norma rank .número de condición en la norma 2 nor m . S . m . de tipo Ejemplo: El archivo. Esta factorización también es la base para las funciones n u l l y orth . que generan bases orto normales para el espacio nulo y rango de una matriz rectangular dada.M función.

^2 +.c e r o d e u n a f u n c i ó n d e u n a v a r i a b l e c o n s t r .e.9). y para la gráfica de la función escribimos x = ... m d e s d e 0 h a s t a 1 e s c r i b i m o s : q = quad('humps'. 0./((x.8583 N o t e q u e e l a rg u m e n t o d e q u a d c o n t i e n e u n n o m b r e d e u n a f u n c i ó n . Ecuaciones No -lineales y Funciones de Optimización Las funciones de funciones para ecuaciones no -lineales y optimización incluyen: fmin .mínimo restricciones) de una función multi . P o r e s t o q u a d se llama una función de función.c u a d r a d o s m í n i m o s n o-lineales Funciones para Ecuaciones Diferenciales Las funciones de MATLAB para resolver ecuaciones diferenciales ordinarias son: problemas de valor inicial para ode23 .y = 1 .minimización con restricciones fsolve . 40 .01) + 1.1:.^2 +.04) .método Runge -Kutta -F e h l b e r g d e l a r g o d e p a s o v a r i a b l e q u e c o m b i n a u n método de orden cuatro con uno de orden cinco.3). plot(x.Kutta de largo de paso variable que combina un método de orden dos con uno de orden tres.01:2. Para integrar la función definida por h u m p s ..6. es una función que opera en otras funciones.variable (minimización no-l i n e a l sin fzero .método Runge.solución de ecuación no-l i n e a l l e a s t s q .mínimo de una función de una variable fmins . i. / ( ( x. humps(x)) Integración Numérica (Cuadratura) El área bajo la gráfica de la función f(x) se puede aproximar integrando f(x) numéricamente mediante una regla de cuadratura. 1) q= 29. ode45 .

xpunto(1)=x(1).trace).resultados intermedios default tol: ode23 -> 1. [t.v) function xpunto=vdpol(t.x] =ode23(`deriv'.*(1 -x ( 2 ) .xo).1.to. ^ 2 )-x(2).to.3 Declaración function Sintaxis: function nombre_1=nombr e_2(parametro_1.. parametro_n) Ejemplos: function y=promedio(x) function i=inodal(t.n o r e s u n t a d o s i n t e r m e d i o s 1 .x]=ode23(`edif'.x]=ode23(`deriv'.0 6 5.x) xpunto=zeros(2. 5.> 1.oe.1). xpunto(2)=x(1).0 3 ode45 . ode45 [t. ode45 trace => 0 ...2 Operadores relacionales Los operadores relacionales de MatLab son: < menor que <= menor o igual a > mayor que >= mayor o igual a == igual a =~ no igual a 41 .Ejemplo to=0.xo.tf. tf=10.0e .tf. [t.xo).tf.to. .to1.

. Estas funciones se usan en cláusulas i f . El resultado de B = ~A es una matriz cuyos elementos son uno donde A tiene un elemento cero. y ceros donde ambas tienen elementos cero. . if n>=0. end 5. any(any(A)). y ceros donde A ó B sean cero. F u n c i ó n e s any. a n y y a l l t r a b a j a n p o r c o l u m n a s p a r a d e v o l v e r u n v e c tor fila con el resultado para cada columna. "ó" y "no" El resultado de C = A & B es una matriz cuyos elementos son unos donde A y B sean ambos distintos de cero. A y B deben de ser matrices con las mismas dimensiones. siempre reduce la matriz a una condición escalar.5) .condiciones lógicas find . El resultado d e C = A | B e s u n a m a t r i z c u y o s e l e m e n t o s s o n u n o s d o n d e A ó B tienen un elemento diferentede cero. Aplicando la función dos veces. Las funciones relacionales y lógicas en MATLAB son: any . La función all(x) d e v u e l v e 1 s o l a m e n t e s i t o d o s l o s e l e m e n t o s d e x s o n d i f e r e n t e s de cero.. a menos que una sea un escalar. a menos que una de ellas sea un escalar. break. y ceros donde A tiene elementos diferentes de cero. de lo contrario devuelve 0.d e t e c t a i n f i n i t o s 42 . . | y ~ son los operadores de lógica "y". A y B deben de ser matrices con las mismas dimensiones. all La función any(x) devuelve 1 si cualquiera de los elementos de x es diferente de cero.3 Operadores lógicos Los operadores &.Ejemplo: if n< maxn .verifica si existen variables isinf . Por ejemplo: if all(A <. respectiv a m e n t e .condiciones lógicas all .halla í n d i c e s d e a r r e g l o s d e v a l o r e s l ó g i c o s exist . end Para argumentos matriciales.

end % inicia vector a en 0 43 . a(i)=0.4 ] sqrt(2) for i=1:n. a(i)=0. end for i=1:n. Termina filas de una matriz.v e r i f i c a p a r a l o s v a l o r e s f i n i t o s 5. argumentos declaraciones en líneas con declaraciones múltiples .4 Caracteres especiales Los caracteres especiales de MatLab son: [ ] Se utilizan para formar vectores y ma t r i c e s ( ) Define precedencia en expresiones aritméticas.0 9. Separador de elementos de una matriz.0 3.finite . separador de declaraciones % Comentario de funciones y Ejemplos: [6. Encierra argumentos de funciones en forma usual .

end Ejemplo: for i=1:n c(i)=a(i)*b(i). ó si tiene menos de n elementos. declaración n. end asigna 0 a los primeros n elementos de x. end o for i=1:n. Si n es menor de 1. x(i) = 0.. Si x no esta definido. end El ciclo FOR permite que una instrucción.5 Control de flujo 5. ó grupo de instrucciones. pueda repetirse un n ú m e r o d e t e r m i n a d o d e v e c e s . end for variable=inicio:final declaración 1. c(i)=a(i)*b(i). .5. entonces un espacio adicional es localizado automáticamente a x cada vez que sea necesario... 44 .5. P o r e j e m p l o .. for i = 1:n.1 Declaración FOR simple Sintaxis for variable=incio:paso:final declar ación 1. el ciclo sigue siendo válido pero MATLAB no ejecuta la instrucción intermedia. declaración n. .

Sintaxis for variable 1 = inicio1:paso1:fin1 for variable2 = inicio2:paso2:fin2 declaración 1. declaración n. .5. j) = 1/(i+j..5. 45 .0 . end Ejemplo for i = 1:m for j = 1:n A(i.2 Declaración FOR anidada . end end A La "A" al terminar el ciclo muestra en la pantalla el resultado final. en d end Ejemplo y=1 for t1=0:0.1:1 for t2=1: .1). 1 : 0 y(1)=sin(t1*t2) end i=i+1. Es importante que para cada for halla un e n d ..

Una posible definición de la función exponencial es mediante la serie: expm(A) = I + A + A^2/2! + A^3/3! + . llamado e x p m ( A ) en MATLAB.3 Declaración WHILE Sintaxis: while expresion proposición 1. en la precisión finita la de computadora.0. ut=sin(wo*t). La idea es sumar todos los términos necesarios hasta producir un resultado que. r e p e t i r s e u n número indefinido de veces. wo=2. while prod(1:n) < 1. end n Un cálculo más práctico ilustrando el ciclo while es en el cómputo del exponencial de una matriz. n = n+1.0+e)>1. ó g r u p o d e i n s t r u c c i o n e s . proposición 2.0*pi*60.end El ciclo WHILE permite a una instrucción ... bajo el control de una condición lógica. t=0. while (1.5.0e100.. Para esto procedemos de la forma siguiente: 46 . no cambie aunque más términos sean añadidos.0.5.t=t+dt. end it=1.0. El siguiente ciclo while halla el primer entero n para el cual n! es un número de 100 digitos: n = 1. .. while it<=npts.0001 e=e/2. end Ejemplos e=1.

E. 1) > 0 E = E + F... F = eye(size(A)). ELSE. proposición m... . else proposición 1. .4 Declaraciones IF. . w h i l e n o r m ( E + F. k = 1. ELSEIF y BREAK Sintaxis a) if expresió n proposición 1. E representa la suma parcial de la serie. y k es el índice de este término. F = A*F/k k = k+1.5. proposición n. F es un término individual en la serie.E = zeros(size(A)).. 5. end b) if expresión proposición 1. end Aqui A es la matriz dada. proposición n. end 47 ..

0.. end..c) if expresión proposición 1.. end end 48 .. proposición n. while i<=so n=input(`Introduzca n.. proposición r. else proposición 1. if n==0 sum=sum+n. y=1. . . break. . nmaxe=i. if n<0. end sum=0. end d) if expresión. else sum=sum+n/10. proposición m. break.. end Ejemplos if dv(i) > maxer maxer=dv(i). elseif proposición 1. interrumpe con valor negativo `). elseif n<=10 sum=sum+n/2.

break. Veamos: % Problema "3n+1" clásico de la teoria de números. también se muestra la función input (en este caso es una entrada del teclado).A continuación se muestra como un cálculo se puede dividir en tres casos. 2) == 0 n = n/2 else n = 3*n+1 end end end 49 . end while n > 1 if rem(n. ¿Habrá algún entero para el cual el proceso nunca termine? Aquí se ilustran los enunciados while y i f . que provee salidas abruptas de los ciclos. 2) == 0 A = even(n) else A = odd(n) end En el segundo. y el enunciado b r e a k . if n <= 0. se multiplica por tres y se le suma uno. '). si es impar. se divide entre dos. dependiendo del signo ó paridad de un entero n: if n < 0 A = negative(n) else if rem(n. while 1 n = input('Entre n. negativo termina. partiendo de un entero positivo n. si este es par.

6.2 Cambio del orden de una matriz: reshape Sintaxis: matriz_modificada = reshape(matriz_origin al. 2 5 8 11. 3 6 9 12] A= 1 4 7 10 2 5 8 11 3 6 9 12 >> B=reshape(A. filas.6) B= 1 3 5 7 9 11 2 4 6 8 10 12 5. columnas) Ejemplo >> A=[1 4 7 10.5.2.6. 7 8 9] A= 1 2 3 4 5 6 7 8 9 5.3 Modificación individual de elementos Ejemplos >> A=[1 2.6 Algebra Matricial 5.1)=A(1.2)+A(2.6. 3 4] A= 1 2 3 4 >> A(1.1) A = 5 2 3 4 50 . 4 5 6.1 Creación de una matriz Ejemplo >> A=[1 2 3.

>> A(1. 5 6 ] A= 1 2 3 4 5 6 Conversión de una matriz en un vector >> A=[1 2. 3 4.2)=10 A= 5 3 3 10 5.1) A= 5 3 3 4 >> A(2.2)=A(2. 5 6 ] A= 1 2 3 4 5 6 >> b=A(:) b= 1 3 5 2 4 6 51 .6. 3 4.4 Modificaciones adicionales de una matriz Ejemplo >> A=[1 2.

7500 1.5) de A matriz de 3x1 que tiene los tres primeros elementos de la columna 5 A(1:3.[4 6])=B(:.1 : 1 x = 5 4 3 2 1 >> x=0:0.Modificación de los elementos >> A(:)=10:15 A= 10 13 11 14 12 15 Generación de vectores: Ejemplos >> x=1:5 x = 1 2 3 4 5 >> x=5:. 5:9) matriz de 3x4 que tiene los tres primeros filas y las columnas de 5 a 9 de A A(:.25:1 x = 0 0.:) primeras cinco filas de A A(:. entonces: A(1:3.2500 0.0000 Acceso a submatrices contiguas y no contigua s Ejemplos Si la matriz original A es de 10*10.5000 0.1:2) primeras de A remplaza la cuarta y sexta columnas de A con las dos 52 .5) quinta columna de A A(1:5.

0000i 4.0000 2.Matrices vacias La declaración x = [ ] asigna una matriz de dimensión 0x0 a x Para la matriz A considerada previamente A(:.6000 0.2000 2.2000 0.y] ans = Columns 1 through 7 0 0.5])=[ ] borra columnas 3 y 5 de A A([3.0000i 3.0000i Generación de tablas >> x=(0. >> [x. > > y = e x p ( .6000 1.3096 0.0204 0.6000 0.2430 0.1231 0.1627 0.8000 1.0383 Columns 15 through 16 2.:)=[ ] borra filas 3 y 5 de A Declaración de matrices complejas A=[1 2.2:3.0000 0.0:0.3223 0. 7 8] o A=[1+5i 2+6i. 7 8] o A=[1 2.0000i 2.4000 2.[3.8000 3.2610 0.0000 + 8. 3 4] + i*[5 6 .4000 1.8000 2.2807 C ol um ns 8 thr ough 14 1.2018 0.0896 0.x). 3 4] + i*[5 6 .*sin(x).0000 + 5.5 ].0000 + 7.0000 1.0070 53 .2000 0 0. 3+7i 4+8i] A = 1.1610 0.3099 0.0000 + 6.4000 0.0613 0.0).

0000 v .0000 1. 1 0 0.6. 0 0 0 0 2.0 1 0] A= 0 7 -6 1 0 0 0 1 0 >> eig(A) ans = -3 . 7 8 9] A= 1 2 3 4 5 6 7 8 9 >> det(A) ans =0 D i a g o n a l d e A: diag(A) >> diag(A) ans = 1 5 9 Valores y vectores característicos : e i g ( A ) >> A=[0 7 .4 5 6.D e t e r m i n a n t e d e A: det(A) >> A=[1 2 3.valores característicos 54 .Vectores característicos d .

1 3 .8007 2.6.8729 0. 5 7 7 4 0.0.0 .9435 -0.0 1 0] A= 0 7 -6 1 0 0 0 1 0 >> expm(A) ans = 5.0000 0 0 0.0000 0 1. 3 1 4 5 . 8 0 4 4 0.2541 11.5774 -0 .6.0000 0 0 0 0.>> [v d]=eig(A) v= 0. 6 1 1 5 2.0757 . 1 0 0.0000 U = 1.Factori z a c i ó n L U d e A : l u ( A ) >> [L U]=lu(A) L= 0 1.2686 5. 0 0 0 0 0 0 0 2.0000 . 4 3 6 4 0 .0000 0 0 0 7.5774 d= -3 .2182 0.2541 .8571 55 .E x p o n e n c i a l d e u n a m a t r i z: e x p m ( A ) >> A=[0 7 .1048 -0.0000 . 3 5 1 0 .1429 1.4 .2686 .0000 0 0 0 1.

0000 0. 1 6 6 7 .0000 .E c u a c i ó n c a r a c t e r í s t i c a d e l a m a t r i z A: poly(A) >> p = p o l y ( A ) p= 1.0000 6.I n v e r s a d e A: inv(A) >> inv(A) ans = 0 1.0000 1.0000 .7.0000 0 0 0 1.Raices de la ecuación característica : roots(p) >> r=roots(p) r = -3 . 0 0 0 0 2.0000 -0 . 1 6 6 7 0 1 .0000 56 ..

7.2 Declaración fclose Sintaxis status = fclose(fid) o status = fclose (`all') .dat'.dat'.7. `permiso') donde p e r m i s o puede ser: `r' Abre archivo para lectura `r+ Abre archivo para lectura y escritura `w' Borra el contenido del archivo existente o crea un nuevo archivo y lo abre para escritura `w+' Idem que `w' únicamente que el archivo se abre para lectura y escritura `a ' Crea y abre un nuevo archivo o abre un archivo ` a + ' I d e m que `a' únicamente que el archivo es abierto para lectura y escritura Ejemplo fid = fopen(`archivo.7.'precision') registros `char' o `uchar' `short' o `long' `float' o `double' 57 .3 Declaración fread Lee un archivo abierto con una precisión indicada Sintaxis fread(fid.dat'. error 0. lectura/escritura normal [fid. mensaje = fopen(`archivo.5.'r ' ) 5.7 Archivos de E/S 5.cierra todos los archivos abiertos 5.registros.'r') fid = -1.1 Declaración fopen Sintaxis id = fopen(`nombre.

global ka.kb x p = [ x ( 1 ). Forma to %s .x) global ka.0.02 [t..7. de las cuales una sola copia es compartida por el programa principal y sus funciones.'short') 5.número decimal % f .10.x(2)+kb*x(1)*x(2)]. 58 .[1:1]).01 kb=0.. .5 Declaración fprintf Salida con formato Ejemplos: fprintf(fid. ' % f % 1 2 . .'float') 5..8 Variables globales Son variables.formato g 5.A.Ejemplo: A = fread(fid. . 7 f\ n'...4 Declaración fwrite Sintaxis fwrite(fid. variable_N Ejemplo function x=ccdifs(t.7. y).'titulo \ n'). Sintaxis: global variable1.ka*x(1)*x(2). f p r i n t f ( f i d .x]=ode23('ccdifs'.10.c a d e n a d e c i m a l %d .kb ka=0.punto flotante % g .

end ó t=0:dt:per. 59 . Esto es.100). for i = 1:100 y(i) = det(X^i). for t = 0:. Por ejemplo. y(i) = sin(t).5. y = sin(t). debemos convertir los ciclos for y while a operaciones de vectores ó de matrices. Veamos un ejemplo: y = zeros (1. En una computadora lenta. el interpretador de MATLAB irá aumentando el tamaño de "y" por uno cada vez que se itera en el ciclo. end Si no pre -asignamos el vector "y".01:10. fi=sin(wo*t). while) Para que los programas en MATLAB ejecuten más rá p i d o . i= i+1. podemos hacer que los ciclos for vayan más rápido pre -asignando cualquier vector en el cual el resultado de salida sea guardado. Permite incrementar la velocidad de proceso de MATLAB Sintaxis variable=inicio:incremento:final Ejemplo i=1. mientras que el segundo tomó 0. el primer ejemplo tomó 15 segundos.6 segundos. un modo de calcular la función "sin" para 1001 números entre 1 y 10 es: i = 0.A s i g n a d o s Si no podemos vectorizar un pedazo de código. d e b e m o s v e c t o r i z a r estos siempre que sea posible.9 Vectorización de algoritmos y estructuras (for. wo=2*pi*fo.01:10 i = i + 1. V e c t o r e s P r e. for t=0:dt:per f(i)=sin(wo*t). end Una versión vectorizada del mismo código es t = 0:.

5.'tipo_línea_n') Si y es un vector. líneas entre cortadas y texto a tus gráficas utilizando: tittle .'tipo_línea_1'. s e m i l o g y . . Si especifica dos vectores como argumentos.1 Funciones elementales para graficar p l o t . encabezamien tos de ejes.. Plot Símbolo Color y amarillo m magenta c cyan (azul claro) r rojo g verde 60 .'tipo_línea') d) plot(x1. loglog . y) produce una gráfica de y versus x .10 Gráficas en Dos Dimensiones 5.y2. plot(x.10.añade encabezamiento al eje-y text . .añade encabezamiento al eje-x ylabel .10.a ñ a d e t í t u l o a l a g r á f i c a xlabel . xn.'tipo_línea_2'.crea una gráfica de vectores ó columnas de matrices.crea una gráfica utilizando una escala logarítmica para el eje-x y u n a escala lineal para el eje-y .a ñade texto a la gráfica utilizando el ratón grid .y) c) plot(x. p l o t ( y ) p r o d u c e u n a g r á f i c a l i n e a l d e l o s e l e m e n t o s d e y v e r s u s el índice de estos.y1.y. semi l o g x .2 Creando una gráfica Comando Sintaxis: a) plot(y) b) plot(x.yn..añade una cadena de texto en una localización específica g t e x t .x2.crea una gráfica utilizando una escala logarítmica para el eje -y y u n a escala lineal para el eje-x . Puedes añadir títulos.crea líneas entrecortadas 5.c r e a u n a g r á f i c a u t i l i z a n d o u n a e s c a l a l o g a r í t m i c a p a r a a m b o s e j e s .

Y) grafica las filas ó columnas de Y versus el vector x. También puedes matriciales: usar la función plot con múltiples pares de argumentos plot (X1..) Cada par X -Y es graficado. si X es una matriz y y es un vector. Y1. s e g m e n t o p u n t o -. plot(x. E l e j e -x es encabezado por el vector índice de fila. ylabel('y=sin(t+)') 5. .10..'r-'.0).sólido : punteado -. Y2..y2.d i b u j a u n a l í n e a p a r a c a d a c o l u m n a d e Y . Si plot es usado con dos argumentos y si X ó Y tienen más de una fila ó columna. title('Angulo difuso'). plot(X.'g--').y1=sin(t+0.x=sin(t). donde m es el número de filas en Y.y1. . generando líneas múltiples.y2=sin(t+1.s e g m e n t o Ejemplo t=0:pi/200:2*pi. X2. Y) grafica las columnas de X versus las columnas de Y. si X y Y son ambas matrices del mismo tamaño. punto o circulo x marca + mas * asterisco . 61 . plot(x. entonces: si Y es una matriz.b azul w blanco k negro Símbolo Estilo de línea . Los pares diferentes pueden ser de dimensiones diferentes.3 Graficando Matrices plot(Y) . 1:m.5). y x es un vector. plot(X..x.y) grafica cada fila ó columna de X versus el vector y. xlabel('x=sin(t)').

P a r a e v a l u a r u n a f u n c i ó n . cos(tan(pi*x))) Para hacer esto más eficiente podemos usar la función fplot la cual concentra su evaluación sobre las regiones donde la rapidez de cambio de la función es más grande. function y = fofx(x) y = cos(tan(pi*x)). m. Este archivo se guarda con el nombre de f o f x . 5. La siguiente función oscila infinitamente rápido en el intervalo.5 Graficando Funciones Matemáticas Hay diferen tes formas de graficar funciones y = f(x).10.10. s e c r e a u n a r c h i v o d e e s t a f u n c i ó n y se le pasa el nombre del archivo a fplot. 0 x 1.5. El siguiente archivo -M de tipo función define la función anterior como fofx. [0 1]) prod u c e l a g r á f i c a : 62 .4 Importando Datos Puede importar y graficar datos generados fuera de MATLAB utilizando el comando load . Ahora la instrucción fplot('fofx'. Una de estas formas es evaluar la función en miles de puntos en el intervalo de interés. p lot(x. Podemos gráficarla como sigue: x = (0:1/2000:1)'.

.'tipo_línea_n') Ejemplo x = l o g s p a c e (.y) Ejemplo x=0:.b.'tipo_línea_1'.^x) 63 . semilogy(x. 5. plot(y'. fplot usa menos puntos para evaluar la misma función a intervalos más cerrados en la región donde la rapidez de cambio es mayor.y) b) loglog(x. 10^a y 10^b semilog(x).1.'-.') loglog Sintaxis a) loglog(x.exp(x)) donde l o g s p a c e tiene las formas: l o g s pa c e ( a .1:20. Es decir. hold on...y1'. semilog(y) Sintaxis a) semilogx(x.6 Comandos gráficos h o l d Permite añadir líneas al dibujo previo o n Activa hold off Desactiva h o ld Ejemplo plot(x).10.10. b ) logspace(a.3).'tipo_línea') c)loglog(x1'.b exponentes de los límites.y.yn.n) a.. xn.plot(yz.Aquí.y) b) semilogy(x. loglog(x.':').

fill(t.yb) d) [xb.4).y.yb]=bar(x.5:2*pi.'b') t=0:0.2). ini c i a n d o p o r l a f i l a s u p e r i o r Sintaxis: subplot(m.fill Dibuja el area interior de una curva en determinado color Sinta x i s: a) fill(x.yn.y). y=cos(t).2.'r') subplot Dibuja la pantalla en mxn subdivisioens. rang=smvars(:. fill(y.xn. x=sin(t).'c') b) fill(x1. numeradas por el parámetro p. plot(vt) subplot(2. => plot(xb..4) plot(ikd) bar Crea una gráfica de ba r r a s Sintaxis: a) bar(y). ikd=smvars(:.1).n.yb) 64 ..y).'c1'. => plot(xb.2.2. it=smvars(:.x.3) plot(rang) subplot(2.cn) Ejemplo t=0:0. b) bar(x.5:2*pi.y1..1).yb]=bar(y). x=sin(t)..x.p) Ejemplo: vt=smvars(:. subplot(2.2) plot(it) suplot(2. de izquierda a derecha.3). c) [xb.2.

2 ) polar Dibujo en coordenadas polares Sintaxis: a) polar(ángulo.y) n .pi]) fplot(`tanh'. únicamente sin líneas in ternas fplot Dibuja la gráfica de una función Sintaxis: a) fplot(`función'. 6 0 .ángulo) d) [x.Ejemplo x= .8:0.final].2:2. e x p (.[0.x.3 0 3 0 ] .n) c) fplot(`función'. `tipo_línea') Ejemplo t=0:0.y]=fplot(`función'.final]) => plot(x. polar(t.número de puntos á n gulo .sin(5*t)) 65 .8 b a r ( x .[ -2 2 ] ) function y=func(x) y=200*sin(x(:))./x(:).[.2.final]) b) fplot(`función'.final]. radio. fplot(`func'.*x) Nota: Los valores de x deben estar igualmente espaciados stairs Igual que b a r. [inicio.01:2*pi.n.radio) b) polar(ángulo. [inicio. [inicio.ángulo entre segmentos sucesivos de la función Ejemplo fplot(`sin'. [inicio.

cos(t).z) b) plot3(x.z1.'tipo_línea'.yn.colormap Colorea con sombreado el interior de una curva o polígono Sintaxis colormap(colorbase) donde colorbase es: gray hot cool copper pink Ejemplo t=0:0.y1. x ..05:2*pi.. Nota: 130 es opcional el rango 0.z.x.y. .y.'tipo_línea') Ejemplo t=0:0.y.n) 66 . colormap(hot(130))..11 Gráficos en 3 dimensiones plot3 Dibuja líneas y puntos en 3 dimensiones Sintaxis: a) plot3(x.zn.z) c) plot3(x. y ) => sombreado vertical 5..xn. plot3(sin(t).'tipo_línea) d) plot3(x1.05:10*pi..x) => sombreado horizontal f i l l ( y ..t) contour. x=sin(t). y=cos(t).255 fill(y. contour3 Genera dibujos compuestos de líneas de valores de datos constantes obtenidos de una matriz de entrada S i n ta x i s: a) contour(z) b) contour(z.

. .001.^2)+0.5. -2 < = y < = 2 [ X ..30) meshgrid Genera arreglos X y Y para dibujos en 3 dimensiones Sintaxis: a) [X.Y] = meshgrid(x) => meshgrid(x.n) c) contour3(x.y) Ejemplo..z) d) contour3(x. [x.y) b) [X..z) d) contour(x.y. Evalue y dibuje la funcion z=x*exp( -x^2 -y^2) sobre el rango -2 < = x < = 2 .8:0.y). mesh(Z) x= .y.30) contour3 Igual función de contour en 3 dimensiones Sintaxis: a) contour3(z) b) contour3(z.Y] = meshgrid(x. R=sqrt(x. Y ] = meshgrid(-2 : 2 : 2 ) .8..n) E j e mplo contour3(peaks.y.y.c) contour(x.. z=sin(R).^2+y. mesh(z) 67 . z = x ..z. y=x.n) Ejemplo contour(peeks) contour(peeks.x ^ 2 -y^2).y]=meshgrid(x. * e x p (..z./R.

y).y.y.y.z.c) b) surf(x. sobre y bajo el plano de referencia..z.c) f) surf(z) g) surfc(..y.y.y.z) e) surf(z.z) surf.c) d) mesh(x.y] = meshgrid(-3:2:3).y. meshz(x.c) b) mesh(x.z) c) surf(x. meshc(x.z) [x..c) d) surf(x. meshc y meshz Dibujan una superficie de malla tridimensional.z. z=peaks(x.y.z.y).y.mesh.) => misma S i n t a x i s que surf 68 .. crando una perspectiva del dibujo.c) f) mesh(z) g) meshc(.z) c) mesh(x.) => mismo que mesh meshc Añade un plano de contorno debajo del dibujo meshz Añ a d e u n p l a n o d e r e f e r e n c i a o c o r t i n a a l d i b u j o Ejemplo: [x.) => mismo que mesh h) meshc(.y] = meshgrid(-3:2:3)... surfc Crean superficies sombreadas en 3 dimensiones Sintaxis: a) surf(x.y. Sintaxis: a) mesh(x.z) e) mesh(z. z=peaks(x.

n = 2 ^ k -1 .y. empleada en procesamiento de señales y análisis numérico Ejemplo (matriz de 4*4) 1 1 1 1 1 -1 1 -1 1 1 -1 -1 1 -1 -1 1 sphere Genera una esfera Sintaxis [x.s) s .y).z) k = 5 .3:.2:3).c).y.dirección de la luz 69 . surf(x.y.Ejemplo [x.y.y. z=peaks(x.s) c) surfl(x. . colormap(hot) hadamar d M a t r i z h a d a m a r d c o m p u e s t a d e 1 ' s y -1's.z.z) o con : colormap(hot) surfl Superficie sombreada tridimensioanl con efecto de reflexión de luz Sintaxis: a) surfl(z) b) surfl(z.y.z] = sphere(n) n . y . .z) d) surfl(x. mesh(x. c = h a d a m a r d ( 2 ^ k ) .número de meridianos Ejemplo [x. z ] = s p h e r e ( n ) . surf(x.z]=sphere(20).y. . [ x .z.y]=meshgrid(.

ymax. z=peaks(x.y). zmin. xmax. ymin.z) shading Establece las propiedades de sombreado con color Sintaxis shading faceted shading interp shading flat shading flat .y. surfl(x.cada segmento de la superficie tiene un valor constante determinado por el color de los puntos extremos del segmento o sus esquinas s h a d i n g i n t e r p . zmax]) c) axis(`auto') d) axis(`ij') e) axis(`xy') f) axis(`square') g) axis(`equal' ) h) axis(`off') 70 .3:0. añadiendo: shading interp y posteriormente: colormap(gray). ymax]) b) axis([xmin.el color en cada segmento varia linealmente e interpolo los valores extremos o esquinas shading faceted superpuestas utiliza sombreado "flat" con líneas de malla negras Para el ejemplo anterior.01:3). axis Escala y apariencia de los ejes Sintaxis: a) axis([xmin.Ejemplo [x.y]=meshgrid(. ymin. xmax.

.4)) r a n d matrices y números aleato rios distribuidos uniformemente Sintaxis: a) rand(n) .n) .4). axis(`off') d e s a c t i v a l a s e t i q u e t a s d e l o s e j e s y l a s m a r c a s a x i s ( ` o n ' ) activa las etiquetas de los ejes y las marcas Para el ejemplo último: .4).. rand(3. El eje y es vertical y se numera de abajo hacia arriba a x i s ( ` s q u a r e ' ) d e t e r m i n a q u e l a r e g i ó n de los ejes es cuadrada axis(`equal') indica que los factores de escalamiento y marcas incrementales a lo largo de los ejes x y y son iguales. El eje y es vertical y es numerado de arriba hacia abajo..y1. axis([ . rand(20).yn.'c') b) fill3(x1. El eje x es horizontal y se numera de izquierda a derecha.z... rand(3.zn) Ejemplo colormap(hot) fill3(rand(3. El eje j es horizontal y es n u m e r a d o d e i z q u i e r d a a d e r e c h a . rand(20)) 71 .z1.. rand(20).m a t r i z d e m x n Ejemplo fill3(rand(20). rand(3.3 3 .3 3 . axis(`xy') regresa la forma de ejes cartesianos que existe por defecto .matriz de nxn b) rnad(m.xn. a x i s ( ` i j ' ) dibuja nuevamente la gráfica.y.4).i) axis(`on') donde: axis(`auto') realiza el escalamiento de ejes a su modo de autoescalamiento por defecto.8 8]) fill3 colorea polígonos de 3 dimensiones a) fill3(x.

.y. etc) Sintaxis a) load archivo b) l o a d a r c h i v o .x) c) presenta la matriz c como una imagen d) especifica los límites de los datos de la imagen en los ejes x e y.alfa) donde: 0<alfa<1 más brillante -1<alfa<0 más obscuro Del ejemplo anterior: . e x t donde: ext .e x t e n s i ó n Ejemplo load clown image crea un objeto imagen y lo presenta Sintaxis: a) image(x) b) image(x. 6 ) ó brighten(.0 . datos. sonido. 6 ) 72 . x e y son vectores Ejemplo load clown colormap(map) image(x) brighten hace más brillante o más obscura la imagen Sintaxis: a) brighten(alfa) b) brighten(map.load carga en el area de trabajo un archivo (imagen. En b) . brighten(0..

73 . delete y c d .12.12. También puedes hacer que tus programas manipulen datos directamente en archivos.m. Similarmente. 5.12.2 Ejecutando Programas Externos El simbolo "!" le indica a MATLAB que el resto de la línea de entrada es un coma ndo para el sistema operativo. L u e g o q u e e s t e programa sea completado. Para más información utiliza la Guía de Referencia de MATLAB ó el comando help.Fs) donde: Fs frecuencia especificada en Hz Ejemplo load train sound(y. MATLAB utiliza .1 Manipulación de Archivos de Disco Algunos comandos utilizados para la manipulación de archivos de disco son dir. Por ejemplo. type. puedes exportar datos de MATLAB a otros programas. ! edt darwin. plot(t.1 ) / F s .m invoca un editor llamado e d t e n u n a r c h i v o l l a m a d o darwin.Fs) t=(0:length(y).MAT.12 Archivos de disco 5. el sistema operativo devuelve el control a MATLAB. 5.m automáticamente. El comando diary c r e a un diario de tu sesión de MATLAB en un archivo de disco.y) 5.3 Importando y Exportando Datos Puedes i n t r o d u c i r d a t o s d e o t r o s p r o g r a m a s a M A T L A B p o r v a r i o s m é t o d o s .c l f borra la figura s o u n d convierte un vector en sonido (en computadoras sparc y macintosh) Sintaxis a) sound(y) b) sound(y. Si la extención no se especifica.

ifftn. rot90. hold. e lse i f. break. poly. gtext.13 INDICE ALFABETICO axis. f o p e n . e i g . contour3. hadamard. sound. peaks. text. tril. surfl. triu. fplot. surfc. f u n ct io n . ylabel. plot. colormap. for. real. d ia g . clf. Para información acerca de las técnicas utilizadas para importar y exportar datos consulte la sección de Importando y Exportando Datos de la guía de MATLAB ó utilice al comando help de MATLAB. if. plot3. i n v . sphere. meshgrid. rand. zeros. imag. while. contour. grid. reshape. size. l u . 74 .el cúal es el formato de archivo utilizado por MATLAB. reshape. meshc. f il l . shading (flat interp faceted). ifft. subplot. surf. f cl o s e. f f t n . pascal. conj. m e s h . l o a d . semilog. fread. fwrite. xlabel. polar. bar. f il l 3 . f f t . semilogy. all. ode45. l o g l o g . d et . toplitz. e lse . title. image. stairs. brighten. 5. meshz. ode23. any. e xp m.

tal como. Después de definir un modelo este puede ser analizado seleccionando una opción desde los menús de Simulink o entrando comandos desde la línea de comandos de MatLab. Simulink usa un ambiente gráfico lo que hace sencillo la creación de los modelos de sistemas. discretos en el tiempo o sistemas híbridos. integradores. Como una extensión de MatLab. Simulink tiene dos fases de uso: la definición del modelo y el análisis del modelo. Para simplificar la definición del modelo Simulink usa diferentes clases de ventanas llamadas ventanas de diagramas de bloques. El ambiente de MatLab está siempre disponible mientras se ejecuta una simulación en Simulink. Simulink puede simular cualquier si s t e m a q u e p u e d a s e r d e f i n i d o p o r e c u a c i o n e s diferenciales continuas y ecuaciones diferenciales discretas. La ventana principal de Simulink se activa escribiendo simulink en la línea de comandos de MatLab. bloques de ganancia o servomotores. Simulink adiciona muchas características específicas a los sistemas dinámicos. mientras conserva toda la funcionalidad de propósito g e n e r a l d e M a t L a b . En esta nueva ventana se colocarán todos los bloques interconectados que formarán el sistema deseado . inclusive aquellos con elementos no lineales y aquellos que hacen uso de tiempos continuos y discretos. La definición del modelo significa construir el modelo a partir de elementos básicos construidos previamente. sino un anexo a él. En estas ventanas se puede crear y editar un modelo gráficamente usando el ratón. S i m u l i n k u s a d i a g r a m a s d e b l o q u e s p a ra representar sistemas dinámicos. y se muestra a continuación: Haciendo doble click en cualquiera de las librerías presentes en esta ventana se abrirá otra ventana conteniendo una cantidad de bloques relativos a dicha librería. Mediante una interface gráfica con el usuario se pueden arrastrar los componentes desde una librería de bloques existentes y luego interconectarlos mediante conectores y alambre. El análisis del modelo significa realizar la simulación. linealización y determinar el punto de equilibrio de un modelo previamente definido. Para realizar un sistema debe abrirse una nueva ventana de diagrama de bloques seleccionando la opción file del menú principal del Simulink y allí la opción new. 75 . SIMULINK Simulink es una herramienta para el modelaje. Esto significa que se puede modelar sistemas continuos en el tiempo. análisis y simulación de una amplia variedad de sistemas físicos y matemáticos. A s í S i m u l i n k n o e s c o m p l e t a m e n t e u n p r o g r a m a s e p a r a d o de MatLab.6.

Existen numerosos bloques y funciones incorporados en las librerías de simulink que pueden ser empleados para simular cualquier sistema. para implementar un sistema que emplea un controlador PID tenemos: En este diagrama se tiene al bloque llamado PID que fue definido previamente y agrupado como uno solo. También está la opción parameters que activa el panel de control de Simulink en donde se definen los métodos y parámetros usados para la simulación. A continuación se muestra el bloque PID: 76 . se puede observar la respuesta al hacer doble click en el osciloscopio. Haciendo doble click so bre cada elemento del sistema se pueden ver y modificar sus características. Al osciloscopio se le definen las escalas horizontal y vertical. Para ejecutar el programa se usa la opción simulation en el menú de la ventana del archivo . frecuencia y fase. En este submenú está la opción start que permite ejecutar el programa. Este sistema se almacena como un archivo .m creado.Como ejemplo se ha tomado un generador de ondas seno de la librería de fuentes "sources" y un osciloscopio de la librería "sinks". Por ejemplo.m. tal como se muestra a continuación: Al ejecutar el programa seno. ambos se unieron mediante un conector usando el ratón.m creado mediante simulink. Por ejemplo. El contenido de dicho bloque se obtiene haciendo doble click sobre él. al generador seno se le puede modificar su amplitud.

1 Acelerador de Simulink Para incrementar la velocidad de Simulink se debe instalar el acelerador "Accelerator". etc. El propósito del acelerador es aumentar la velocidad de simulació n . No requiere ser escrito manualmente por un programador pues es creado a nivel de diagramas de bloques en Simulink. discretos en el tiempo y híbridos. 6. Este código es la forma en la que puede usare el Simulink para adquisición de datos. Este puede ser útil para varios propósitos: puede ser usado para control en tiempo real. la simulación es ejecutada en la ventada de modelos de Simulink exactamente igual que antes sólo que más rápidamente.C para un modelo dado. PC o microprocesadores. Sus aplicaciones pueden ser control de movimiento. simulación en tiempo real o simulación acelerada en tiempo no real.2 Generador de código-C en Simulink Una vez se ha creado un modelo dinámico en Simulink. El código-C es diseñado tal que puede ser ejecutado en tiempo real. Esta acción es totalmente t r a n s p a r e n te en el sentido de que el incremento de la velocidad se presenta sin ningún otro requerimiento por parte del usuario. Si el programa MatLab posee instalado el "Accelerator" podrá iniciarse la acción aceleradora seleccionando la opción simulation en el menú principal del Simulink y dentro de esta seleccionando la opción Accelerate. sistemas automotores. Este pe rmite automáticamente generar una versión mejorada de los modelos los cuales correrán diez veces más rápido que el original.6. 77 . El acelerador trabaja generando y compila n d o u n c ó d i g o . Una vez se completa la compilación. robótica. control de procesos. equipos médicos. se puede invocar el generador de código-C que permite convertir el diagrama de bloques implementado en un código C. El código generado puede correr sobre un amplio rango de hardware ubicado en estaciones de trabajo. El acelerador puede ser usado sobre modelos continuos.

L o c a t e f u n c t i o n s a n d f i l e s .List current variables.a n d M E X -files.1 General purpose commands: M a n a g i n g c o m m a n d s a n d f u n c t i o n s: help . lookfor . disp . save . type . clear . MAT .Execute operating system command & return result. long form.On -l i n e d o c u m e n t a t i o n .Keyword search through the HELP entries.C l e a r variables and functions from memory. whos .Size of matrix. COMANDOS DE MATLAB 7.Change current working directory. d emo .Save text of MATLAB session. size .L i s t M-f i l e . which . unix .Retrieve variables from disk.Directory l i s t i n g . Working with files and the operating system: cd .Execute operating system command. Managing variables and the workspace: who .Directory listing of M-. length . ! .S a v e w o r k s p a c e v a r i a b l e s t o d i s k . load . pack . what .C o n s o l i d a t e w o r k s p a c e m e m o r y . diary .Get environment value.Display matrix or text. path . getenv .Run demos.Length of vector. dir .List current variables.Delete file.7. delete . 78 .Control MATLAB's search path.

^ Array power arith \ Backslash or left division slash / Slash or right division slash .C o n t r o l l i n g t h e c o m m a n d w i n d o w: cedit .M -f i l e e x e c u t e d w h e n M A T L A B i s i n v o k e d . General information: info . Operators and special characters: Char Name HELP topic + Plus arith .Information about new features not yet documented. whatsnew . clc .E c h o c o m m a n d s i n s i d e s c r i p t f i l e s . hostid .* Array multiplication arith ^ Matrix power arith .S e t c o m m a n d l i n e e d it/recall facility parameters. matlabrc .M A T L A B . startup . a n d T O O L B O X v e r s i o n i n f o r m a t i o n . ver .I n f o r m a t i o n a b o u t M A T L A B a n d T h e M a t h W o r k s .Send cursor home.Set output format. subscribe . home .T e r m i n a t e MATLAB.C o n t r o l p a g e d o u t p u t i n c o m m a n d w i n d o w . I n c .B e c o m e s u b s c r i b i n g u s e r o f M A T L A B . echo . Starting and quitting from MATLAB: quit . format .Master startup M-f i l e . more ./ Array division slash 79 .MATLAB server host identificati o n n u m b e r .Minus arith * Matrix multiplication arith .Clear command window. S I M U L I N K .

A. Parent directory punct . isnan . f i n d .zero elements..True for sparse matrix. isstr . 80 .T r u e f o r e m p t y m a t r i x .True if all elements of vector are true.kron Kronecker tensor product kron : Colon colon ( ) Parentheses paren [ ] Brackets paren .T r u e f o r N o t. Comma punct .T r u e i f a n y e l e m e n t o f v e c t o r i s t r u e .T r u e f o r t e x t s t r i n g . isempty . issparse . isglobal .. a l l . Continuation punct .Number. isinf .True for global variables.F i n d i n d i c e s o f n o n .T r u e f o r f i n i t e e l e m e n t s . any . Decimal point p u n c t . Semicolon punct % Comment punct ! Exclamation point punct ' Transpose and quote punct = Assignment punct == Equality relop < > Relational operators relop & Logical AND relop | Logical O R relop ~ Logical NOT relop xor Logical EXCLUSIVE OR xor Logical characteristics: exist .True for infinite elements. finite ..C h e c k i f v a r i a b l e s o r f u n c t i o n s a r e d e f i n e d .

ssselect .Select subsystem from larger system. c2dm .t i m e c o n v e r s i o n .Form continuous state estimator from gain matrix.F e e d b a c k s y s t e m c o n n e c t i o n . outputs.F o r m d i s c r e t e s t a t e e s t i m a t o r f r o m g a i n m a t r i x .Build state -space system from block diagram.Discrete to continuous. conv .Append system dynamics.Generate random continuous mod e l .P a r a l l e l s y s t e m c o n n e c t i o n .Con t r o l S y s t e m T o o l b o x C o m m a n d s: Model building : append .time conversion w i t h m e t h o d .G e n e r a t e A .C o n t i n u o u s t o d i s c r e t e c o n v e r s i o n w i t h d e l a y . series .Generate random discrete model.time conversion.Form discrete controller/estimator from gain matrices.D i s c r e t e t o c o n t i n u o u s. reg .Roots to polynomial conversion.time conversion with method.Continuous to discrete .Convolution of two polynomials. Model conversions>: c2d .S e r i e s s y s t e m c o n n e c t i o n .P a r t i a l f r a c t i o n e x p a n s i o n .A u g m e n t s t a t e s a s o u t p u t s .Pade approximation to time delay. estim .C l o s e l o o p s o f s y s t e m . B . connect . augstate . rmodel . ssdelete .Block diagram modeling. destim . pade . c2dt . b l k b u i l d .F o r m c o n t i n u o u s c o n t r o l l e r / e s t i m a t o r f r o m g a i n m a t r i c e s . parallel . d2cm . cloop . residue . ord2 .Delete inputs. poly . 81 . dreg . or states from model. feedback . d2c .Continuous to discrete. drmodel . D f o r a s e c o n d-order system. C .

esort .s p a c e c o n v e r s i o n . damp . ss2ss . dsort .Z e r o.M i n i m a l r e a l i z a t i o n a n d p o l e.Balanced realization.Sort continuous eigenvalues by real part. tf2zp . dgram . ss2zp .Transfer function to state.Z e r o.Transfer function to zero -p o l e c o n v e r s i o n . 82 . dmodred .Apply similarity transform. ctrbf .Discrete steady state (D. ddamp .Eigenvalues and eigenvectors.Discrete controllability and observability gramians.S t a t e . dcovar .s p a c e c o n v e r s i o n .S o r t d i s c r e t e e i g e n v a l u e s b y m a g n i t u d e . dbalreal .Discrete model order reduction. eig .ss2tf . modred . obsvf .space to transfer function conversion.Model order reducti o n .zero cancellation. Model reduction : balreal . zp2ss .Observability staircase form.D i s c r e t e d a m p i n g f a c t o r s a n d n a t u r a l f r e q u e n c i e s . zp2tf .Discrete covariance response to white noise.space to zero -pole conversion.Controllability staircase form. minreal . M o d e l r e a l i z a t i o n s: canon .pole to state. dcgain . ctrb . tf2ss .) gain.Continuous steady state (D.) gain.Continuous covariance response to white noise.C a n o n i c a l f o r m .pole to transfer function conversion.Damping factors and natural frequencies.Discrete balanced realization. Model properties : covar .C.C o n t r o l l a b i l ity matrix. ddcgain .C.State .

Discrete simulation to arbitrary inputs. dinitial .gram .Low level time response function.S I S O z . dstep . freqz .Discrete step response. dbode . freqs .C o n t i n u o u s s i m u l ation to arbitrary inputs. dnyquist .Discrete singular value frequency plot.Impulse response.Gain and phase margins. roots . step . fbode . ltifr . printsys . dsigma .Step response.Discrete Nichols plo t. filter .T r a n s m i s s i o n z e r o s u s i n g r a n d o m p e r t u r b a t i o n m e t h o d .Discrete unit sample response.Discrete initial condition response. tzero .transform frequency response. dlsim . impulse .Bode plot (frequency response). Frequency response: bode .T r a n s m i s s i o n z e r o s .Laplace . lsim . initial .Continuous initial condition response.Low level frequency response f u n c t i o n .Discrete Nyquist plot.Discrete Bode plot (frequency response). margin .P o l y n o m i a l r o o t s . stepfun . Time response: dimpulse . nichols .Controllability and observability gramians.F a s t B o d e p l o t f o r c o n t i n u o u s s y s t e m s .Display system in formatted form.Nichols plot.transform simulation. dnichols .S t e p f u n c t i o n . ltitr . tzero2 .Z.t r a n s f o r m f r e q u e n c y r e s p o n s e .Observability matrix. o b sv . 83 .

dlqry . lyap2 . lqe2 .Discrete regulator design from continuous cost function. dlqr .SISO pole placement. lqe . lqr . d l q e w . lqr2 .Discrete estimator design from continuous cost function. Equation solution: are .Lyapunov equa tion solution using diagonalization. R o o t l o c u s: pzmap .L i n e a r. rlocus . rlocfind . place .Discrete Lyapunov equation solution.G e n e r a l l i n e a r-quadratic estimator design. lqry . dlyap .quadratic regulator design. nyquist .Algebraic Riccati equation solution.D r a w g r i d l i n e s f o r N i c h o l s p l o t .D i s c r e t e l i n e a r -q u a d r a t i c e s t i m a t o r d e s i g n . 84 . lqed . Gain selection: acker .Linear quadratic estimator design using Schur method.zero map. z g r i d .P o l e p l a c e m e n t . sigma .D r a w d i s c r e t e r o o t l o c u s w n .D i s c r e t e l i n e a r -q u a d r a t i c r e g u l a t o r d e s i g n . lqrd .General discrete linear quad ratic estimator design.P o l e.Singular value frequency plot. z g r i d .R e g u l a t o r d e s i g n w i t h w e i g h t i n g o n o u t p u t s .Linear quadratic regulator design using Schur method. lyap . l q e w .C o n t i n u o u s L y a p u n o v e q u a t i o n s o l u t i o n .D i s c r e t e r e g u l a t o r d e s i g n w i t h w e i g h t i n g o n o u t p u t s . sgrid .ngrid . dlqe .L i n e a r-quadratic estimator design.Interactive root locus gain determina tion.Nyquist plot.D r a w c o n t i n u o u s r o o t l o c u s w n . zgrid .E v a n s r o o t-locus.

Demonstrations: ctrldemo - Introduction to the Control Toolbox. boildemo - LQG design of boiler system. jetdemo - Classical design of jet transport yaw damper. diskdemo - Digital control design of hard disk controller. kalmdemo - K a l m a n f i l t e r d e s i g n a n d s i m u l a t i o n .

85

8. APLICANDO MATLAB AL CONTROL DE PROCESOS 8.1 Respuesta en el dominio del tiempo
Para obtener la respuesta de un sistema en el tiempo ante una entrada estándar, debe primero definirse el sistema. Para el lo puede definirse en MatLab la función de transferencia propia del sistema o las ecuaciones de estado. La función de transferencia de un sistema es una relación formada por un numerador y un denominador:

En MatLab debe definirse el numerado r Y(s) y el denominador U(s) como vectores, cuyos elementos son los coeficientes de los polinomios del numerador y del denominador en potencias decrecientes de S. Por ejemplo, para definir la función de transferencia:

>>y=[1]; >>u=[1 0.25 1];

Para d e t e r m i n a r l a r e s p u e s t a e n e l t i e m p o p a r a u n a e n t r a d a e s c a l ó n u n i t a r i o d e este sistema se usa el comandos step indicando el vector del numerador y del denominador entre paréntesis. step(num,den) >>step(y,u)

MatLab presenta la respuesta en el tiempo en la ventana de figuras:

86

Puede definirse el tiempo en el cual se desea la respuesta al escalón, mediante un vector de tiempo T, step(num,den,T) >>t=0:0.1:20; >>step(y,u,t)

Se define t como un vector cuyo elemento inicial es 0, su elemento final es 20 y existen elementos que son el incremento desde 0 hasta 20 de 0.1 en 0.1. Al ejecutar el comando step para y y u se obtiene en la ventana de figuras la respuesta escalón para los primeros 20 segundos. Otra forma de definir el sistema en MatLab es usando las ecuaciones de estado de la forma: x = Ax + Bu y = Cx + Du

MatLab permite hacer la conversión de una función de transferencia a su equivalente en ecuaciones de estado, mediante el comando tf2ss. Se deben especificar las cuatro matrices de estado de la forma: [A,B,C,D]=tf2ss(num,den)

Para el ejemplo anterior tenemos: >>[a,b,c,d]=tf2ss(y,u) a = -0 . 2 5 0 0 -1 . 0 0 0 0 1.0000 0 b = 1 0 c = 0 1 d = 0

87

Se deben especificar los vectores para almacenar los coeficientes del polinomio numerador y del denominador. Su Sintaxis e s : [num.C.c.c.c.u) A= -6 .C.B.0000 0.d) Para obtener la respuesta en el tiempo para una entrada impulso unitario se usa el comando impulse.d) Ejemplo >>[num.0000 den = 1. con Sin taxis idéntica a la utilizada con el comando step: Si se define el sistema en MatLab por los polinomios denominador de la función de transferencia tenemos: » y=[1 5 4].den]=ss2tf(a.B.1 1 .d) num = 0 0 1.b. » u=[1 6 11 6].Se puede hacer la conversión de una ecuación de estado a su equivalente función de transferencia.b.D]=tf2ss(y. mediante el comando ss2tf.2500 1.den]=ss2tf(a.b.u) del numerador y Si por el contrario el sistema se defin e en MatLab por las ecuaciones de estado: » [A. » impulse(y.0000 P a r a o b t e n e r l a respuesta escalón de un sistema a partir de las ecuaciones de estado se usa el comando step con la Sintaxis: step(A.D) Ejemplo >>step(a.6 1 0 0 0 1 0 88 .

C.B= 1 0 0 C= 1 5 4 D = 0 » impulse(A.D) En ambos casos. MatLab presenta la respuesta en el tiempo en la ventana de figuras: 89 .B.

T) usando la función de transferencia.C. también obtener respuesta para otras entradas tal como rampas o sinusoides.MatLab permite. >>PLOT(T.Y.1:10 >>U=T. La Sintaxis de este comando es: lsim(A.T) usando las matrices de estado o lsim(NUM. además de obtener la respuesta en el tiempo para una entrada escalón o impulso.U.U. El comando lsim permite obtener la respuesta en el tiempo para un sistema con una entrada u.B. >>DEN=[1 0. El comando plot permite presentar en la ventana de figuras la variable Y (salida) y la entra da U (rampa) en función del tiempo.D.U.DEN. se define U de la siguiente forma: >>T=0:0.T.25 1]. obteniéndose: 90 .X]=lsim(NUM. T es el vector de tiempo variando desde 0 hasta 10 s e g .DEN.T). Para obtener la respuesta en el tiempo para una función rampa. En la variable Y se almacena la salida del sistema en función del tiempo T. >>[Y. donde u se define como una función del tiempo.U) Al hacer U=T se está definiendo la función rampa. N U M y D E N s o n l o s v e c t o r e s d e l o s c o e f i c i e n t e s d e c r e c i e n tes en potencia de S de los polinomios del numerador y del denominador respectivamente. >>NUM=[1].

25 1].u) MatLab presenta el diagrama de bode en la ventana de figuras: 91 . se definen dos vectores cuyos elementos son los coeficientes de los polinomios del numerador y del denominador en potencias decrecientes de S.den). Para obtener el diagrama de Bode de una función de transferencia. >>bode(y. Se define la función de transferencia: Ejemplo >>y=[1]. Estos vectores son usados en el comando b o d e c o n l a s i g u i e n t e Sintaxis: bode(num. de Nyquist y de Nichols. >>u=[1 0.8.2 Respuesta en el dominio de la frecuencia Para el estudio de un sistema en el dominio de la frecuencia existen tres herramientas disponibles en MatLab como son: los diagramas de Bode.

D). Para especificar un rango deseado de frecuencias en las cuales se desea obtener el diagrama de Bode. den. >>bode(y.C. se emplea un vector de frecuencias en el que se especifica la frecuencia inicial.D.1:100. >>u=[0. >>nichols(y. Otra herramienta de análisis en el d o m i n i o e n l a f r e c u e n c i a q u e o f r e c e M a t L a b es el diagrama de Nichols.W) si se emplean las matrices de estado o nichols(num. cuya Sintaxis es idéntica a la del comando bode: nichols(A. Por ejemplo: >>W=0:0. Si se define y como el vector de los coeficientes del polinomio del numerador y u como el deldenominador: >>y=[0 0 100]. el incremento y la frecuencia final.B. Para obtener el diagrama de Nichols se utiliza el comando nichols.Otro formato mediante el cual el comando bode presenta el diagrama de bode.u.B.04 1 0].W) si se emplea la función de transferencia.u) MatLab presenta en la ventana de figuras el diagrama de Nichols: 92 .D).C. es a través de las ecuaciones de estado representadas por las matrices de estado (A.W) Este comando muestra el diagrama de Bode entre 0 y 100 rad/s.B.C. Su Sintaxis e s : bode(A.

Si se define y como el vector de los coeficientes del polinomio del numerador y u como el del denominador: >>y=[1].W) si se emplean las matrices de estado o nyquist(num.W) si se emplea la función de transferencia. >>u=[1 6 5].Otra herramienta de análisis en el dominio en la frecuencia que ofrece MatLab es el diagrama de Nyquist.u) M a t L a b p r e s e n t a e n l a ventana de figuras el diagrama de Nyquist: 93 .D. cuya Sintaxis es idéntica a la del comando bode y nichols: nyquist(A. Para obtenerlo se utiliza el comando nyquist. >>nyquist(y.B.den.C.

W) toma los vectores de magnitud.B. frecuencia de cruce de ganancia (Wcg) y la frecuencia de cruce de fase (Wcp) cuando se trabaja con las matrices de estado (A. C . la frecuencia de cruce de ganancia y la frecuencia de cruce de fase MatLab dispone del comando margin. margen de fase (Pm).Wcg. [Gm. >>[Gm. [Gm.den) 94 .Wcp] = MA R G I N ( N U M .7487 Wcg = NaN Wcp = 3. fase y frecuencia del diagrama de Bode.Pm.C.Wcg. D ) dibuja el diagrama de Bode y muestra con líneas verticales los m á rg e n e s d e g a n a n c i a y d e f a s e . B .Pm.Pm. >>den=[1 0.C.den) Gm = Inf Pm = 4.Para obtener el margen de ganancia. Las diferentes formas de utilizar este comando son: [Gm.Wcp] =margin(num.Wcp] = MARGIN(A.Wcg.Wcg. M A R G I N ( A .PHASE.3114 >>margin(num. el margen de fase.D). D E N ) cuando se trabaja con la función de transferencia.Pm.Wcp] = MARGIN(MAG.B.25 1].D) retorna los valores de margen de ganancia (Gm). >>num=10.

D) son equivalentes a las Sintaxis anteriores pero empleando las matrices de estado para hallar el lugar de las raíces. D E N ) c a l c u l a y dibuja el lugar de las raíces cuando se trabaja con la función de transferencia donde NUM y DEN son los vectores de los coeficientes en potencia descendiente de S de los polinomios del numerador y denominador de la función de transferencia G(S).B. o [R. 95 . de longitud igual al número de elementos de K. rlocus(A.C. R=rlocus(A.K): calcula y dibuja el lugar de las raíces cuando se trabaja con la función de transferencia y ha sido previamente definido el rango de valores de K.D.B.K]=rlocus(A.C. MatLab dispone del comando rlocus. MatLab g enerará automáticamente un conjunto de valores de la ganancia K. Por ejemplo de 0 a 100 co n incrementos de 10: k=0:10:100 R = rlocus(NUM.DEN.C.B.3 Lugar de las raíces Para obtener el lugar de las raíces de un sistema como el mostrado en el siguiente diagrama: Se debe determinar su ecuación característica. estas pueden además ser complejas. la cual es de la forma: Para obtener el lugar de las raíces. R tendrá tantas columnas como raíces existan.K) o [R. rlocus(NUM.DEN.8. Las diferentes Sintaxis para utilizar este comando son: r l o c u s ( N U M . la localización de las raíces.K] = rlocus(NUM.K).D).DEN) no dibuja el lugar de las raíces pero almacena en la matriz R.

MatLa b retorna el valor de k para esta localización y los polos asociados a esta ganancia.D. 2 6 8 8 . >>den=[1. Su Sintaxis e s : [K.den. D ) .C.6655 poles = -2 . 7 7 7 3 i Para seleccionar el punto en el cual calcular los polos del lugar de las raíces sin usar el cu rsor se agrega un parámetro al comando rlocfind. P O L E S ] = r l o c f i n d ( A . 5 5 5 i . » [k. cuando se trabaja con la función de transferencia. La nueva Sintaxis es: [K. Este debe ser el punto o los puntos en donde se desea tomar el valor de k.0 . A l e j e c u t a r e l c o m a n d o r l o c f i n d c o n l a f u n c i ó n d e transferencia anterior. Por medio del curso en el lugar de las raíces se selecciona una localización.4623 en la parte real y . d e n ) Select a point in the graphics window selected_point = -2 .1].P) o [K. C .den) MatLab dispone del comando rlocfind que permite determinar los polos del sistema para una valor dete rminado de k. 4 6 2 5 -0 .POLES] = rlocfind(A. Por ejemplo: P=3+0i o P=1 -0 . 0 1 3 2 e n l a p a r t e i m a g i n a r i a .B.p o l e s ] = r l o c f i n d ( n u m .0 .Para la siguiente forma modificada de la ecuación característica de un sistema se desea hallar el lugar de las raíces mediante MatLab: >>num=[0.0 .3.2. 96 . MatLab activa la ventana de figuras en espera de que el usuario seleccione un punto del lugar de las raíces mediante el cursor.0. Cuando se trabaja con las matrices de estado.POLES] = rlocfind(num.0]. 0 1 3 2 i k = 1.den) p e r m i t e d e t e r m i n a r l o s p o l o s p a r a u n v a l o r determinado de k.P) P debe definirse previamente indicando la parte real e imaginaria del mismo. 2 6 8 8 + 0 . 4 6 2 3 . En este caso el punto seleccionado fue 2. las Sintaxis para el comando rlocfind es: [ K .POLES] = rlocfind(num.0. B . >>rlocus(num. 7 7 7 3 i -0 .

Si se multiplica el controlador C(S) por la función de transferencia del proceso o planta G(S) se formará la función de transferencia de lazo abierto. PD. que es una constante o valor es c a l a r .4 Controladores PID Para implementar los diferentes tipos de controladores (P. El controlador PID es C(S)=Kp + Ki/S + Kd S que se representa como: que es de nuevo una relación entre dos polinomios. C(S)=Kp. Para el caso del controlador proporcional. PI. Si dicho sistema es de la forma: donde G(S) es la función de transferencia de la planta o proceso. PID) en MatLab se hace uso de la función de transferencia propia del sistema a objeto de estudio . Los coeficientes decrec i e n t e s en potencias de S de estos polinomio pueden ser almacenados en vectores en MatLab.8. Por ejemplo un G(S) puede ser: 97 . mientras que C(S) es la función de transferencia del controlador. E l c o n t r o l a d o r P I e s C ( S ) = K p + K i / S q u e p u e d e r e p r e s e n t a r s e c o m o u n a relación ente dos polinomios.

. >>num1=[Kd Kp Ki].denc) Se usa el comando c o n v p a r a o b t e n e r l a c o n v o l u c i ó n y m u l t i p l i c a c i ó n p o l i n o m i a l d e dos vectores.sign) El signo de la realimentación viene dado por sign.den2). >>step(num.Para obtener la respuesta en lazo abierto ante una entrada escalón unitario tenemos: >>Kp=50.conv(den1. el cual genera los polinomios del numerador (numc) y denominador (denc) de la función de transferencia de lazo cerrado con realimentación unitaria a partir de los polinomios de la función de transferencia de l a z o a b i e r t o ( n u m y d e n ) . Para el ejemplo anterior. >>den2=[1 10 20 0]. >>Ki=1.den. S u Sintaxis es: [numc. tenemos: >>Kp=500. >>Ki=1. >>Kd=100. >>Kd=10.numd]=cloop(conv(num1. > > [numc. >>den=[1 10 20 0 0]. La salida obtenida mediante el comando s t e p se muestra a continuación: 98 . >>step(numc. >>num=[Kd Kp Ki].1). >>num2=1.den) Para obtener la respuesta de lazo cerrado en el tiempo para una entra da escalón unitario se emplea el comando cloop.num2).denc]=cloop(num. >>den1=[1 0].

^2.m Para cotejar sus diagramas de Bode: >>bode(num.'off') o simplemente >>axis off 99 .^2 .11 15.*B.*B.[1 5 0]) Precaución: El punto ".811]. TRUCOS EN MATLAB® Paper semilogarítmico gratis: papelbod. N o t a : E s t o da l a s c u r v a s e x a c t a s .'Visible'.^2 (notar el espacio después del primer 2) y no >>A. n o l a s a p r o x i m a c i o n e s a s i n t ó t i c a s c o n l í n e a s rectas.". donde A y B son a r r e g l o s y n o m a t r i c e s ( o s e a . C u a n d o e s c r i b i m o s un dígito pegado al punto como "2. el interpretador cree que es el número "2. debemos escribir >>A.den) donde n u m y d e n son vectores que contienen los coeficientes del numerador y denominador de H(s) en orden de potencias descendentes de s.elemento). Entonces si queremos calcular A2B2. q u e r e m o s o p e r a c i ó n e l e m e n t o -p o r. Escribimos >>bode([158. Ejemplo: Para .0".^2 Para remover ejes de la gráfica: >>set(gca." puede significar operación elemento -p o r -e l e m e n t o o punto decimal.9.

y.'children').3) (En el momento de creación) >>set(get(gca.Para cambiar el color de trasfondo de la gráfica: >> whitebg('c') donde c es el código del color descrito en help plot. Por ejemplo. es más fácil hacerlo al crearla que después. >>plot(x. Para establecer propiedades de la gráfica.'linewidth'.'linewidth'.3) ( D e s p u é s d e c r e a d a ) 100 . para graficar con una línea gruesa.

101 .

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->