guia matlab

Upload: valdivia-francisco

Post on 21-Jul-2015

115 views

Category:

Documents


0 download

TRANSCRIPT

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

1

PrefacioLa aplicacin de la Matemtica en Ingeniera y Ciencias ha sido intensa en todos los tiempos, pero hoy en da con la ayuda computacional basada en las PCs, esta aplicacin es una prctica comn. Existen diversas compaas que disean programas de clculo matemtico. Entre las ms importantes estn Mathematica (Wolfram Research Inc.), Maple (Maplesoft Inc.), MathCad (Mathsoft Engineering &Education, Inc), y el ms usado en el mundo en el rea de ingeniera: MATLAB (The Math Works, Inc.). Todos estos paquetes manejan la matemtica de una manera muy simple y adems disponen de una utilera que permite a los usuarios realizar complicados procedimientos matemticos con una gran facilidad. Un ejemplo lo constituyen los mtodos de optimizacin que requieren una gran cantidad de cmputo matemtico. Tradicionalmente se usaban lenguajes como Fortran o C, que requeran de programadores expertos para llevar a cabo los programas. Hoy en da con paquetes como MATLAB se pueden realizar procesos de optimizacin an con programadores inexpertos con tiempos de desarrollo muy breves. Esto se debe a la existencia de una gran cantidad de programas agrupados en paquetes especializados llamados toolboxes , desarrollados por renombrados especialistas de todo el mundo y que simplifican la labor de desarrollo de tcnicas de resolucin de problemas. MATLAB es una herramienta de cmputo orientada para realizar clculos sobre matrices. Cuenta con una gran cantidad de toolboxes para anlisis y procesamiento de datos. Adems cuenta con una gran cantidad de herramientas para graficar funciones en 2D y 3D que estn integradas dentro de MATLAB. Tambin proporciona un ambiente de programacin, el cual puede ser ampliado por el usuario desarrollando sus propios archivos-m e integrndolos dentro del conjunto de programas de MATLAB. La manera de desarrollar programas en MATLAB es muy intuitiva y permite generar cdigos de una manera muy rpida. MATLAB trabaja con una memoria dinmica que no requiere que se le declaren las variables que se van a usar durante el programa, sino que se definen al usarlas por primera vez. Esto es una gran ventaja ya que el usuario tiene la libertad de definir sus variables segn lo requiera al escribir el cdigo. MATLAB permite el intercambio de datos con EXCEL, desarrollo de interfases grficas, resolucin de problemas con SIMULINK, entre otras tcnicas avanzadas. El SIMULINK es una herramienta para simular sistemas lineales, no-lineales, continuos y de datos muestreados, y modelar los mismos en forma sencilla tanto para sistemas simples o complejos usando bloques que representan partes del sistema. MATLAB permite realizar la interfase con el mundo fsico real, pudindose controlar y monitorear procesos y mquinas desde el entorno de MATLAB. Por las razones expuestas muy brevemente, y muchas otras, MATLAB es la herramienta ms adecuada para la resolucin de problemas en ingeniera y ciencias. Para confeccionar este material se ha utilizado la versin 6.1.0.450 (R12.1) de MATLAB. En las versiones ms modernas, la mayora de los comandos se conservan, no obstante como se agregan funciones y herramientas, siempre es conveniente verificar la sintaxis de las sentencias y comandos, utilizando el Help como ayuda irremplazable. Estas notas tienen el propsito de despertar la inquietud y motivar la posterior profundizacin en el empleo de MATLAB, SIMULINK y otros Toolboxes, por parte de los Profesores y estudiantes de las carreras de Ingeniera (tanto en Ciencias Bsicas, Tecnologas Bsicas y Tecnologas Aplicadas) de las Facultades de Ingeniera de la UTN-FRBA/FRH, UNLZ y EST, en las cuales imparto cursos de Sistemas de Control e Ingeniera de Control Avanzado.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

2

Estas notas no hubiesen sido posibles sin el apoyo de muchas personas. Del Ing. A. Furfaro Director del departamento de Electrnica de la UTN-FRBA que me dio las facilidades de tiempo y equipo para poder desarrollar estas notas. Al Ing P. Cerallo y Lic. E. Ciccolella, por la cooperacin y revisin del material y por el constante apoyo en la difusin de esta herramienta en el rea de la ingeniera Electrnica, Elctrica y Mecnica. Al Ing. Ricardo Am, Coordinador del ciclo Superior de la carrera de Ingeniera Mecnica de la UNLZ por su apoyo y constante motivacin, para que impartiramos el curso. Al Ing. C. Gonzlez, Director del departamento de Electrnica de la UTN- FRH, por su apoyo en el curso de Ingeniera de Control Avanzado, que se est dictando en la UTN-FRH y en el cual se hace uso intensivo de estas herramientas. Finalmente deseo agradecer a todos aquellos colegas y estudiantes que me permitieron y siguen permitiendo la difusin de estas tcnicas, sobre todo en relacin con la ingeniera.

Ing. Amadeo M. Mariani

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

3

1. 1.1

Introduccin Programa MatLab

El nombre del programa MATLAB proviene de MATrix LABoratory, y es un programa de alto nivel diseado para cmputo tcnico, sobre la base del clculo con vectores y matrices, no obstante se pueden realizar clculos con escalares y nmeros complejos. Integra en un mismo ambiente muy fcil de utilizar: Clculos. Visualizacin. Programacin.

En este ambiente los problemas y sus soluciones se pueden expresar en notacin matemtica fcil de entender. Algunos de los usos ms comunes de MATLAB son: Clculos matemticos. Desarrollo de algoritmos Modelado y simulacin Anlisis de datos Obtencin de grficas Desarrollo de interfases grficas

El lenguaje de programacin de MATLAB es ms poderoso que lenguajes tales como FORTRAN, C, Basic, Visual Basic o Pascal, entre otros. Junto con MATLAB se han Desarrollado una coleccin de herramientas (Toolboxes) que programadas en lenguaje de MATLAB pueden realizar un conjunto de actividades en ciertas reas de la ingeniera, las ciencias, las finanzas y la economa, entre otras muchas. Algunas de estas herramientas (Toolboxes) se han desarrollado para resolver problemas vinculados con: Anlisis y diseo de Sistemas de Control.

Control System Toolbox Proporciona un entorno interactivo y grfico para el modelado, anlisis y diseo de sistemas de control, utilizando tanto los mtodos clsicos como los modernos: root locus, loop shaping, pole placement, LQR/LQG regulation. Soporta sistemas LTI, SISO, MIMO y diversos mtodos de conversin. Fuzzy logic Toolbox Es una herramienta interactiva para el desarrollo de algoritmos de lgica difusa, aplicable a reconocimiento e identificacin de imgenes con patrones difusos, procesamiento de seales y desarrollo de procesos inteligentes y adaptivos. Robust Control Toolbox Herramientas para el modelado y diseo de sistemas de control multivariables mediante tcnicas de H , donde la robustez del sistema es un factor crtico.Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

4

-Analysis and Sinthesis Toolbox Algoritmos para aplicables al anlisis de rendimiento y robustez en sistemas con incertidumbre en el modelado y parametrizacin. LMI Control Toolbox Algoritmos de optimizacin para la resolucin de inecuaciones matriciales lineales (LMI) presentes en control robusto, en control multiobjetivo, etc. Model Predictive Control Toolbox Es un conjunto completo de herramientas para implementar estrategias de control predictivo. Model-Based Calibration Toolbox Conjunto de herramientas para la calibracin de conjuntos motrices complejos. Cubre los tres aspectos de la calibracin: planificacin de la prueba fsica en el dinammetro, utilizacin de los datos medidos para producir una serie de modelos de respuesta que refleja el comportamiento del motor y empleo de estos modelos para calibrar el sistema motriz. Procesamiento de seales.

Signal Processing Toolbox Conjunto de funciones para analizar, manipular y visualizar seales y sistemas lineales. Incorpora una interfase para disear y analizar de forma interactiva filtros digitales (FIR y IIR) Filter Design Toolbox Complementa al Signal Processiong Toolbox, agregando tcnicas avanzadas de filtros digitales para aplicaciones complejas de DSP en tiempo real. Tambin proporciona funciones para simplificar el diseo de filtros de punto fijo y para el anlisis de los efectos de cuantificacin. Communications Toolbox Conjunto de funciones para MATLAB que facilitan el diseo de algoritmos y componentes de sistemas de comunicaciones. System Identification Toolbox Proporciona herramientas para crear modelos matemticos de sistemas dinmicos, de los cuales se desconoce su comportamiento, a partir de los datos de entrada y salida observados. Esto se aplica en una gran variedad de campos. Wavelet Toolbox Son funciones basadas en el anlisis Wavelet para analizar y procesar seales, imgenes (seal bidimensional) y series temporales. Son adecuadas para el estudio de seales con caractersticas no estacionarias o transitorias en las que el anlisis del tiempo en que dichas seales experimentan los cambios es fundamental (para el estudio de este tipo de seales no es adecuado el mtodo de Fourier) . estas aplicaciones son muy convenientes para la eliminacin de ruidos y ecos, compresin de imgenes y video.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

5

Procesamiento de imgenes.

Image Processing Toolbox. Entorno interactivo que proporciona un conjunto de herramientas para el anlisis y procesado de imgenes con un amplio abanico de aplicaciones. Entre las aplicaciones se encuentran: operaciones geomtricas, anlisis de imagen, eliminacin de ruidos, filtros lineales, filtros 2D, transformaciones, ROI (Region Of Interest), operaciones binarias, conversiones de color, procesado por neighborhood y por bloques, etc. Mapping Toolbox Conjunto de herramientas para el anlisis y visualizacin de informacin grfica de tipo geogrfico. SIMULINK y herramientas adicionales(Blocksets y Generadores de Cdigos)

Un campo de gran aplicacin en la ingeniera, es la automatizacin del diseo mediante simulacin dinmica de sistemas. Los productos ms importantes en el rea de simulacin dinmica son: Simulink Es un entorno grfico interactivo para el modelado, anlisis y simulacin, de una gran variedad de sistemas dinmicos (lineales, no lineales, analgicos, discretos e hbridos), mediante la utilizacin de diagramas en bloques. Permite la incorporacin de los algoritmos y controles que se hayan desarrollado en lenguaje C, previamente a la utilizacin de Simulink. Trabaja totalmente integrado con MATLAB. Stateflow. Es un entorno grfico interactivo para el modelado de la lgica de sistemas dinmicos basados en eventos (temporales o de estado) . se basa en la teora de mquinas de estado finito y utiliza diagramas de transicin de estado para expresar la lgica del sistema y diagramas de control de flujo.Trabaja perfectamente integrado con Simulink. Simulink Report Generador. Permite realizar la documentacin automtica, mediante la creacin de diversos informes de los modelos desarrollados por Simulink. Simulink Performance Tools. Es un conjunto de 4 herramientas que gestionan y optimizan el rendimiento de Simulink en las simulaciones de modelos de gran escala: Simulink Accelerator, Simulink Model Profiler, Simulink Model Differencing y Simulink Model Coverage. Requirements Management Interface Permite coordinar, registrar e implementar los cambios en el diseo de especificaciones a lo largo del ciclo de desarrollo. Esta herramienta permite asociar los requerimientos del proyecto con modelos de Simulink, diagramas de Stateflow, y algoritmos de MATLAB. Virtual Reality

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

6

Permite la creacin de escenas e imgenes en movimiento en un entorno de realidad virtual de 3D. Desde MATLAB y Simulink se puede representar y visualizar en este entorno de realidad virtual el modelo que se est simulando e interactuar con l, o bien desde Simulink o bien desde el propio entorno de realidad virtual. DSP Blockset Proporciona un conjunto de bloques para Simulink que son el fundamento para el diseo de muchas aplicaciones de procesado de seales digitales (DSP) , como procesado bsico de seal, estimacin espectral, diseo de filtros. Todos los bloques soportan simulacin por muestreo y por frames. Communications Blockset Conjunto de ms de 150 bloques para Simulink que permite disear en forma completa y simular sistemas de comunicaciones. CDMA Reference Blockset Conjunto de bloques de Simulink para crear y simular modelos de sistemas de comunicaciones inalmbricos bajo el estndar IS-95A. Fixed-Point Blockset Permite emular la aritmtica del punto fijo cuando se disea y simula sistemas dinmicos o filtros digitales que al final sern implementados en targets digitales de punto fijo. Dials & Gauges Blockset. Realiza el monitoreo de seales y parmetros de simulacin mediante elementos grficos (instrumentos de aspecto real). Permite aadir a los modelos de Simulink estos elementos grficos y as visualizar el entorno que se est modelando. Nonlinear Control Design Blockset. Proporciona una aproximacin al diseo de sistemas de control basada en una optimizacin que ajusta los parmetros de acuerdo con unas restricciones en la respuesta transitoria temporal del sistema fijadas por el usuario. Power System Blockset. Permite modelar y simular en Simulink sistemas elctricos de potencia (generacin, transmisin y distribucin) y su control (motores, transformadores, tiristores, diodos, etc.) Sym Mechanics Blockset Permite modelar y simular de forma sencilla en Simulink los componentes de un sistema mecnico, ver y animar su movimiento, estudiar su cinemtica y dinmica (directa e inversa) etc.-. Real-Time Workshop.(RTW) Genera cdigo C en tiempo real a partir de los modelos realizados en Simulink, lo que permite realizar prototipos rpidos, acelerar las simulaciones o realizar simulaciones en tiempo real. Real-Time Workshop Embedded Coder.(RTWEC)Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

7

Genera cdigo C en tiempo real optimizado en velocidad de ejecucin y con unos mnimos requerimientos de memoria para usarlo en sistemas embedded de tiempo real. Este cdigo puede ser descargado directamente al procesador target. El cdigo generado es comparable al cdigo optimizado escrito a mano. Stateflow Coder Genera cdigo C en tiempo real a partir de los diagramas de transicin realizados en Stateflow. Real-Time Windows Target (RTWT) Permite ejecutar los modelos de Simulink y Stateflow en tiempo real en una PC con Windows. Durante la ejecucin se puede comunicar con una amplia variedad de tarjetas de I/O (ms de 100), lo cul permite controlar sensores, actuadores, y otros dispositivos para poder experimentar, desarrollar y probar los sistemas en tiempo real. xPC Target Permite agregar bloques de I/O a SIMULINK, generar cdigo con RTW (Real-Time Workshop) y descargar este cdigo en una segunda PC que ejecuta el kernel de xPC target. Es ideal para realizar prototipos rpidos. Permite la ejecucin de modelos en tiempo real en una segunda PC (como target) sin necesidad de Windows. Con esta solucin, la PC que acta como host y la que acta como target se mantienen comunicadas durante la ejecucin en tiempo real. xPC Target Embedded Option. Esta opcin permite que el modelo desarrollado se ejecute en la PC que acta como target sin necesidad de que est conectada a la PC host. Esta opcin es la adecuada cuando el modelo est finalizado y se entrega para su funcionamiento en produccin.

Adquisicin de datos(Data Acquisition)

Data Acquisition Toolbox Permite el control y la comunicacin con una gran variedad de dispositivos de adquisicin de datos estndares en la industria (National Instruments, Agilent, Computer Boards, etc.). Incluye kit de adaptacin para el desarrollo de interfaces para nuevos dispositivos. Instrument Control Toolbox. Permite la comunicacin con instrumentos (analizadores de espectro, osciloscopios, generadores de funciones) y dispositivos externos. Soporta protocolos de comunicacin GPIB (IEEE-488, HPIB) y VISA( Serial, GPIB, VXI, GPIB-VXI) y proporciona soporte avanzado de puerto serie(RS-232, RS-422, RS-485) Curve Fitting Toolbox. Mediante una interfaz grfica se puede realizar ajustes de curvas, visualizando y preprocesando los datos y usando una amplia gama de modelos y mtodos de ajuste.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

8

Math Toolboxes.

Symbolic Math. Permite integrar la expresin y el clculo simblicos (clculo, transformadas, lgebra lineal, ecuaciones) al entorno de clculo y visualizacin de MATLAB Extended Symbolic Math. Incluye todas las caractersticas de Symbolic Math, proporciona soporte completo para programacin en Maple y permite el acceso completo a las libreras matemticas de Maple. Database Toolbox. Permite intercambiar directamente desde MATLAB datos con las bases de datos ODBC/JDBC ms populares (Oracle, Sybase SQL Server, Sybase SQL Anywhere, Microsoft SQL server, Microsoft Access, Informix y Ingres) de forma dinmica, preservndolos durante el intercambio y simultneamente con ms de una base de datos. Excel Link Toolbox. Integra toda la potencia de MATLAB con Microsoft Excel, permitiendo la transferencia de datos en los dos sentidos, ejecutando cualquier funcin de MATLAB desde una frmula de Excel o utilizando Excel desde MATLAB como editor de vectores. Statistics Toolbox. Funciones y herramientas interactivas para el anlisis de datos histricos, el modelado y simulacin de sistemas, y para el desarrollo de algoritmos estadsticos. Soporta 20 distribuciones de probabilidad, incorpora el control estadstico de proceso, el diseo de experimentos, estadstica descriptiva, anlisis cluster, etc. Optimization Toolbox. Proporciona diversos algoritmos y tcnicas para solucionar problemas de optimizacin no lineales, tanto generales como a gran escala. SplineToolbox Mediante una Interface grfica proporciona potentes funciones para el ajuste de datos, visualizacin, interpolacin y extrapolacin mediante tcnicos spline. Partial Differential Equartion Toolbox. De aplicacin en muchos campos de la fsica e ingeniera, como ser transferencia de calor, flujo en medios porosos, propagacin electromagntica, medios conductores, clculo de esfuerzos y fatigas en estructuras, campos magnticos, etc. Usa el mtodo FEM (Finite Element Method, que incorpora el algoritmo de triangulacin de Delaunay) para solucionar ecuaciones diferenciales parciales. Neural Network Toolbox Proporciona las versiones ms comunes de paradigmas y algoritmos para el diseo y simulacin de redes neuronales. Incluye bloque de SIMULINK para poder utilizar este Toolbox en aplicaciones de Control y simulacin de sistemas. Incluye ejemplos de control predictivo y adaptivo. Entre las aplicaciones ms comunes de las redes neuronales se tienenIng. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

9

las tcnicas de clasificacin, prediccin, filtrado, optimizacin, reconocimiento de patrones, aproximacin a funciones, interpretacin y clasificacin de imgenes. Finanzas y Economa. Financial Toolbox. Proporciona las herramientas bsicas para las finanzas cuantitativas y la elaboracin de prototipos analticos, aplicables a la optimizacin de portfolios (carteras) y anlisis de riesgos, clculo de precios y sensibilidades segn diversos modelos, anlisis de volatilidad (ARCH/GARCH), anlisis bsico de series temporales, etc. Financial Time-Series Toolbox. conjunto de herramientas para el anlisis de series temporales en mercados financieros, anlisis y transformacin de datos, anlisis tcnico(ndices, osciladores, indicadores, etc.) y visualizacin. Financial Derivatives Toolbox. Permite la creacin y generacin de portfolios con diversos instrumentos financieros, as como calcular sus precios y sensibilidades. Proporciona anlisis hedging (compensaciones). Garch Toolbox. Proporciona un entorno de clculo integrado para trabajar con el modelo de GARCH sobre volatilidad. Utiliza un modelo compuesto ARMX/GARCH para realizar simulaciones, previsiones, estimacin de parmetros de series temporales, etc. Datafeed Toolbox Permite el acceso desde MATLAB a los servicios financieros (Bloomberg, Interactive Data, Yahoo Finance) para su descarga y posterior anlisis en MATLAB.

1.2.

Requisitos mnimos e Instalacin

Con relacin al hardware, el programa exige para el correcto funcionamiento ciertas caractersticas mnimas, muy bsicas, que actualmente estn disponibles en cualquier PC. Basta con dispones de una PC con procesador Pentium III o superior para trabajar con Windows 98, 2000, NT, XP o Vista, con tarjeta grfica SVGA y monitor color. Tambin es imprescindible contar con 500 MB de RAM (recomendable 1GB 2 GB). Disco duro con capacidad libre de 5 GB (actualmente los discos rgidos permiten cumplir ampliamente con este requisito) si se va a utilizar todo el sistema. Unidad de CD-ROM. Mouse y teclado. En cuanto al Software, el programa exige disponer del sistema operativo Windows, 98, Me, 2000, NT, XP o Vista. Existen versiones de MATLAB para el programa UNIX (Sun Solaris, HP UX, HP 700, Compaq Alpha) LINUX y MAC. Si se va a utilizar MATLAB en una Notebook es necesario disponer de Microsoft Word 7.0 o versin superior (Office 2000 o XP). Si se van a construir ficheros MEX propios, es necesario disponer de Microsoft Visual C/C++ (versin 5.0 o superior), de Borland C++ (versin 5.0 o superior) o de Lcc 2.4 (propio de MATLAB). Tambin es necesario disponer de Adobe Acrobat Reader si se quiere ver la ayuda en lnea de MATLAB en formato PDF.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

10

Para instalar el programa en Windows se coloca el CD (el 1 si hay ms de uno) en la unidad de CD-ROM de la PC. Al cerrar la unidad lectora, automticamente se inicia el proceso de instalacin con una pantalla temporal que tiene el logo de MATLAB. Durante unos segundos el programa prepara el proceso de instalacin mostrando una nueva pantalla en la cul se debe pulsar Next. A continuacin aparece una pantalla en la cul se debe introducir la clave PLP del CD-ROM y suministrada por Math Works. Despus de introducir la clave PLP, se pulsa nuevamente Next y se obtiene la pantalla de acuerdo de Licencia (License Agreement). Si se est de acuerdo con las condiciones de la Licencia, se pulsa Yes y se obtiene la pantalla de identificacin (Name, Company), que permite, pulsando nuevamente Next , seleccionar el directorio en que se instalar MATLAB , las opciones de instalacin, como ser: documentacin, opciones de idioma y productos componentes de MATLAB. En la parte derecha de la pantalla se informa del espacio disponible en el disco rgido y del espacio requerido para instalar los productos seleccionados. Al pulsar Next, el programa crea el directorio seleccionado para MATLAB (Ejemplo C:\matlabR12). Una vez aceptado el directorio, se pulsa Yes y comienza el proceso de instalacin, y automticamente van apareciendo pantallas que informan de la instalacin de las diversas componentes de MATLAB. Si se ha seleccionado la instalacin de la documentacin (manuales y help) de MATLAB el proceso pedir la introduccin del CD correspondiente. Al pulsar OK se instalan los archivos de ayuda (Help) y manuales (Documentation). Al terminar la carga de la documentacin, se debe pulsar Next, con lo cual se muestra la pantalla de Instalacin Completa (Installation Complete). En dicha pantalla se deber seleccionar el Reinicio de la PC en ese instante (now) para memorizar la configuracin de MATLAB o bien hacerlo ms tarde (later).

1.3.

Comenzando con MATLAB

Una vez concluida la tarea de instalacin de MATLAB y reiniciado el sistema, se dispone del programa instalado. Para comenzar a trabajar con MATLAB se va al botn de Inicio y se selecciona Programas y all se busca y luego se abre MATLAB. Tambin se puede abrir desde el acceso directo (que se crea automticamente) existente en el escritorio. Una vez instalado el programa MATLAB en la PC, aparecer el icono de MATLAB como acceso directo. Al presionar este icono para comenzar a utilizar MATLAB, aparecer la ventana de MATLAB como se muestra en la figura1, mostrada a continuacin:

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

11

Fig. 1.-Ventana de MATLAB Dentro de la ventana de MATLAB, se tienen cuatro ventanas fundamentales, que son: Ventana de la derecha: Command Window (ventana de comandos). Ventana de abajo a la izquierda: Comand History (Historia de comandos). Ventana de abajo a la izquierda(bis): Current Directory ( Directorio actual) Ventana de arriba a la izquierda: Workspace (Espacio de trabajo). En la ventana de Command History se registra la historia de los comandos dados en la sesin actual y en sesiones previas. El Current Directory (directorio actual) contiene todos los archivos que se encuentran en el directorio en el cual estamos trabajando (el directorio por defecto de MATLAB es C:\Matlab\work). Otra ventana muy importante que se puede desplegar es la ventana de ayuda (HELP), la cual se puede abrir tecleando sobre el icono Help. La indicacin de que podemos dar comandos a MATLAB es:Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

12

>> EDU>>

En la versin Profesional En la versin estudiantil

2.

Componentes de MATLAB.

Bsicamente son cinco. I. Lenguaje MatLab. Es un lenguaje de alto nivel para tratamiento de matrices y vectores, con sentencias de control de flujo, funciones y estructuras de datos, entradas y salidas y programacin orientada a objetos. Permite crear pequeos programas como as tambin programas extensos y complejos. II. Entorno de Trabajo MatLab. Es el conjunto de herramientas con las que se puede trabajar como un usuario o programador. Para ello cuenta con las facilidades como para manejar variables en el espacio de trabajo, importar y exportar datos. Tambin posee herramientas de programacin, desarrollo y manipulacin de archivos (M-Files). III. Manipulador de grficos. Es el sistema de graficacin de MatLab. Incluye una serie de comandos de alto nivel para la visualizacin de imgenes en 2D y 3D, animaciones y presentaciones. IV. Librera de Funciones Matemticas. Es una amplia coleccin que contiene las funciones elementales como Sen, Cos, Sec, etc., hasta las transformadas de Laplace, Transformada Rpida de Fourier (FFT) y otras. V. Interfase de aplicacin de programas de MatLab. Es una librera que permite escribir programas en C y Fortran, que interactan con MatLab. Incluye la posibilidad de llamar rutinas desde MatLab y para leer y escribir MAT-Files.

3.

SIMULINK.

Simulink es un programa de MatLab que consiste en un sistema interactivo para modelar, simular y analizar sistemas, los cuales pueden ser: lineales, no-lineales, de tiempo continuo o de datos muestreados o combinacin de ambos. Los sistemas que se simulan en SIMULINK reciben el nombre de modelos. Para modelar sistemas SIMULINK tiene una interfase grfica que sirve para construir modelos como diagramas de bloques. Para este propsito SIMULINK incluye una muy completa biblioteca de componentes lineales y no lineales, fuentes y, elementos de salida y conectores. Adems el usuario puede crear sus propios componentes. Despus de que se define un modelo para un sistema, este se puede simular usando mens en SIMULINK. Las limitantes para los modelos de SIMULINK es la cantidad de Toolboxes que se hayan comprado (actualmente hay alrededor de 170 toolboxes).Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

13

MATLAB, cuenta tambin con un programa llamado Real-Time-Workshop (RTW) que permite generar un cdigo en lenguaje C, desde el diagrama en bloques, y correrlo en una variedad de sistemas en tiempo real.

4.

La Versin de MatLab.

Para conocer la versin del programa MATLAB que se est utilizando, se abre el programa y se escribe la palabra ver, con lo cual se obtiene la siguiente salida.

5.

Tipos de archivos con los cuales trabaja MatLab.a. Archivos M. Son archivos de texto que contienen cdigos de MatLab. El usuario puede crearlos usando los mismos comandos que ingresa por lneas de comandos y otras sentencias que se vern ms adelante. El archivo se guarda con la extensin .m (ejemplo: Mario_archivo.m) y se puede llamar desde la lnea de comandos para ejecutarlo.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

14

b. Archivos Mat. Son archivos que contiene datos binarios que se guardan con extensin .mat y que se detallarn ms adelante. c. Archivos Mex. Son archivos MatLab ejecutables compilado a partir de C o Fortran. Se guardan con la extensin .mex. d. Archivos MDL. Corresponden a modelos realizados con SIMULINK. Ms adelante retornaremos a este archivo. El comando what, produce una lista de archivos M-, MAT-, MEX- y MDL, presentes en el directorio de trabajo actual. As, por ejemplo:

6. SINTAXIS GENERAL En MATLAB, en general, las letras minsculas y maysculas NO SON IGUALES. La ejecucin de cualquier comando puede abortarse mediante CONTROL + C. Se pueden escribir varios comandos en una misma lnea, separndolos por coma o por punto y coma. Se pueden recuperar comandos anteriores, usando las teclas de flechas arriba y abajo. Con las flechas izquierda y derecha se puede desplazar sobre la lnea de comando y modificarlo.

6.1. Constantes.Enteros: Reales: Complejos: .053 1.6e+5 -.658e-21 (i j son smbolos que representan la unidad Imaginaria) Caracteres (entre apstrofes): esto es una cadena de caracteres string 12 8.02 1+ 2i -3 -5.7 -3+ 5j

6.2. Operaciones Aritmticas elementales.Suma: Resta: Multiplicacin: Divisin: Exponenciacin: + * / ^

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

15

Se puede utilizar MATLAB como simple calculadora, escribiendo expresiones aritmticas y terminando por RETURN (). Se obtiene el resultado inmediatamente a travs de la variable del sistema ans (de answer). Si no se desea eco en la terminal, deben terminarse las rdenes por punto y coma.

6.3. Variables. En MATLAB se pueden definir variables que a diferencia de lenguajes de programacin como FORTRAN y C, no necesitan declararse previamente en otra instruccin. Es decir, la variable se crea al momento de escribirse. Por ejemplo, la variable x1 se crea en MATLAB cuando se escribe por primera vez con

Esta variable tendr este valor hasta que el usuario lo cambie por otro. Los nombres de las variables pueden tener un tamao de hasta 63 caracteres de largo, letras y nmeros. Si un nombre de una variable tiene ms de 63 caracteres, solo se conservan los primeros 63. El primero debe ser una letra. No se pueden utilizar los caracteres especiales: + = * ^ < >

Las variables en MATLAB no necesitan ningn tipo de declaracin y pueden almacenar sucesivamente distintos tipos de datos: enteros, reales, escalares, matriciales, caracteres, etc. Se crean, simplemente, asignndoles un valor. Se pueden eliminar variables mediante el comando clear.

Atencin: Recurdese que las variables AB, ab, Ab y aB SON DISTINTAS. Los nombres de las variables no son iguales si se escriben con letras maysculas o minsculas. De esta manera la variable M es distinta de la variable m. Para conocer en cualquier instante el valor almacenado en una variable basta con teclear su nombre. Se pueden conocer todas las variables definidas hasta el momento tecleando el comando

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

16

Para conocer las variables cargadas en el espacio de trabajo, MatLab cuenta con los comandos who y whos, los cuales producen una lista de variables en el espacio de trabajo actual. Veamos un ejemplo:

El comando who, solo indica el nombre de las variables, en cambio el comando whos adems de indicar las variables, muestra el tamao, nmero de Bytes que ocupa, y el formato.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

17

6.4. FormatosEl nmero de dgitos con los cuales MATLAB escribe una cantidad numrica puede variarse. Esto se puede realizar usando algunos de los formatos disponibles. Por defecto cuando MATLAB nos muestra un valor real, nos muestra slo cinco dgitos (formato corto). Se puede modificar la forma de mostrar los valores, mediante el comando format, segn se muestra en la Tabla N 1:

Tabla N1. Comando format

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

18

Nota: cada vez que MATLAB ejecuta alguna accin, el resultado se escribe en la pantalla.

Para suprimir la escritura del resultado, es necesario escribir punto y coma despus de escribir la operacin que deseamos realizar, por ejemplo:

6.5. Variables Predefinidas.Algunos nombres estn pre-definidos por MATLAB, como se muestra en la tabla N 2:

Tabla N 2. Algunos nombres predefinidos

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

19

6.6. CadenasUna cadena de caracteres, es una serie de letras, nmeros u otros smbolos. Las cadenas de caracteres se encierran dentro de tildes. Algunos ejemplos de caracteres son: facultad mecnica buen da etc. Una variable de MATLAB puede ser una cadena de caracteres. Por ejemplo:

De esta manera las variables m y a son todo lo est contenido dentro de las comillas. Los elementos de una cadena tienen una posicin dentro de la cadena. Cada elemento se puede obtener con el nombre de la cadena seguido entre parntesis de la posicin que tiene.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

20

Por ejemplo, para la cadena m =Francisco Gonzlez, el primer elemento m(1) es F, mientras que el penltimo elemento m(16) es e. Veamos con MATLAB:

Si se desea especificar un rango de caracteres, se usa cadena ( i : j ) que dar los caracteres del i-simo al j-simo. Ejemplo

Se pueden concatenar varias cadenas especificndolas, como: nueva _ cadena = [cadena1, cadena2, cadena3] Ejemplo. Si, por ejemplo, tenemos cuatro cadenas a, b, m, i dadas por a =Argentina, b = Brasil, m =Mxico, i = Italia, se pueden crear nuevas cadenas con:

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

21

Tambin se pueden crear nuevas cadenas con elementos de cadenas como:

En MATLAB existen funciones para las cadenas. Entre ellas se tienen algunas, como se muestra en la Tabla N 3:

Tabla N 3. Algunas funciones para las cadenas.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

22

Ejemplos.

La funcin strrep (c1, c2, c3) reemplaza los caracteres c2 por los caracteres c3 en la cadena c1. Por ejemplo, en la cadena MATLAB ejecuta los clculos matemticos, se puede cambiar ejecuta por efecta con:

Las unciones upper y lower convierten caracteres alfabticos en una cadena a letras maysculas y minsculas, respectivamente. Y los dems caracteres no cambian. Por ejemplo para las cadenas m1 y m2.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

23

6.7. Guardado de una sesin y sus variables.Hasta este momento slo se ha mencionado que una variable se define cuando se usa por primera vez. Las variables de la sesin estn disponibles mientras no se cierre MATLAB o mientras no se ejecute la instruccin clear. En ocasiones deseamos seguir utilizando nuestras variables en otra sesin de MATLAB y por lo tanto es conveniente tener alguna manera de guardarlas. Esto es posible con la instruccin diary que guarda una copia de la sesin de MATLAB en un archivo. En este archivo se incluyen todas las instrucciones que el usuario haya escrito, as como las respuestas que haya obtenido de MATLAB. Para ilustrar el uso de diary considrese la siguiente sesin de trabajo.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

24

Si ahora se desea guardar la sesin de trabajo en un archivo que se llamar sesion.txt, se usa: >> diary (sesion.txt)

sesion.txt, como se muestra en la figura 2, siguiente.

Si se observan los archivos del directorio, se ve que hay un nuevo archivo llamado

Fig.2. Archivo Sesion.txtAl abrirlo vemos que se grabaron en l todas las instrucciones junto con las respuestas que dio MATLAB, que se escribieron a partir de diary (sesion.txt) hasta que se escribi diary (off), como se muestra en la figura 3, mostrada a continuacinIng. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

25

Fig.3. Contenido del archivo sesion.txt Si se repite esta accin, se volvern a grabar todas las instrucciones junto con las respuestas en el mismo archivo que usamos antes, y que recibi el nombre de sesion.txt. Si solamente se usa diary, se generar un archivo con el nombre diary en el subdirectorio donde estamos trabajando. Otra manera de guardar la informacin de la sesin es usando el comando Save Workspace As .. al cual podemos tener acceso con O con :

En este caso slo se guarda informacin de las variables de la sesin. Por ejemplo, para guardar la sesin anterior ms nuevas variables que declaramos, se escribe en la ventana de trabajo de MATLAB dos nuevas variables,

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

File

Save Workspace As Control + S

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

26

Se han definido dos nuevas variables, ww y zz, adicionales a las que tenamos anteriormente. Ahora lo salvamos con File Save Workspace As.. con lo que se abre la ventana de dilogo que se muestra e la figura 4, donde se nos pregunta el nombre del archivo donde guardaremos esas variables.

Fig. 4. Archivo Work MATLAB le da la extensin .mat de manera automtica. Si lo salvamos con el nombre de variables entonces se crear un archivo con el nombre variables.mat conteniendo las variables de la sesin con sus valores. Cerremos MATLAB y lo volvemos a abrir. Veamos que variables existen en MATLAB con la instruccin who. Vemos que al escribir who en la ventana de trabajo no existe ninguna variable. Ahora se abre el archivo con el icono de abrir archivos, o en File Open.. con lo que se abre la ventana de dilogo que se muestra a continuacin , figura 5, donde se selecciona el archivo variables.mat .

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

27

Fig.5. Contenido del archivo Work.

Al abrirlo, se cargan todas las variables de la sesin anterior, con sus valores como se muestra en la figura 6 , despus de usar la instruccin who y whos. Esta ltima nos da una lista de variables y el tamao de cada una de ellas.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

28

Fig. 6. Instrucciones Who y Whos Alternativamente se pueden salvar las variables con el comando save como Save (variables) Que es equivalente a: Save (variables.mat) Y MATLAB ejecutar la accin equivalente a Save Workspace As.., escribiendo las variables en el archivo variables.mat. Se pueden cargar las variables que estn en variables.mat con Load (variables.mat) O simplemente Load (variables)

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

29

Fig. 7. Creacin del archivo sesion.m

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

30

6.8. Instrucciones de entrada y salida.Hasta ahora hemos usado MATLAB como una calculadora sencilla, donde el resultado se obtiene inmediatamente. En ocasiones, esto no es muy conveniente, especialmente si los resultados intermedios de un clculo que requiere muchos pasos no nos interesan. Afortunadamente podemos evitar el desplegado de los resultados intermedios si usamos punto y coma al final de una instruccin de MATLAB. Ejemplo

Otro uso del punto y coma es para escribir varias instrucciones en un mismo rengln separndolas con un punto y coma. Por ejemplo

En ambos casos el punto y coma evita que se desplieguen los valores de a, b y c.

6.8.1 Salida formateada. Aparte de la salida que se obtiene en la ventana de trabajo(workspace), es posible escribir el resultado de un clculo junto con algn texto, o simplemente escribir un texto. Para esto se utiliza la instruccin fprintf. Si deseamos escribir el texto: MATLAB realiza clculos matemticos Se utiliza entonces

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

31

ntese que en esta instruccin el punto y coma no suprime la escritura del texto. Tambin debe notarse el \ n al final de la lnea. Esto quiere decir que despus de escribir se empiece una lnea nueva. Si no lo usamos entonces el siguiente fprintf continuar escribiendo en la misma lnea. As por ejemplo, si escribimos

El fprintf no empieza por s solo un nuevo rengln, por lo que se hace necesario usar \ n Ejemplo.

Pero si usamos un \ n entonces escribir el siguiente fprintf en un nuevo rengln, como

Esto nos da la salida con un rengln entre un texto y el otro. Alternativamente se puede declarar una cadena y escribir dentro del fprintf el nombre de la cadena. Ejemplo

Para escribir un texto con una variable, se tiene que dar el formato con el cul se desea escribir la variable. Los formatos son, los que se muestran en la tabla N 4:

Tabla N 4. Algunos formatos para escribir variables

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

32

Ejemplo Sea la variable x = 256789451.3456789876543, para escribirla podemos usar

6.8.2 Entrada de datos en MATLAB. La forma ms sencilla de dar datos a MATLAB es con la instruccin input que tiene el formato x = input (Dame el valor de x) Con este formato MATLAB despliega un mensaje para que inmediatamente se pueda escribir el valor de x. De esta manera se puede escribir

Ntese que input no genera salto de lnea. Esto solo se genera con \n, el cual puede ir en cualquier lado. Si en lugar de darle un valor numrico le damos un nombre con letras o un carcter como & @ , o algn otro, se obtiene:Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

33

Vemos que en el caso del nombre nos dice que ese nombre est indefinido y nos vuelve a preguntar el valor de y. En el caso de un carcter alfanumrico nos manda un mensaje de error. Si en lugar de datos numricos se desea leer una cadena, lo indicamos aadiendo s dentro del input, de la siguiente manera:

Como todos los datos son cadenas, nunca se marcar un error.

6.9. Ayudas en MATLAB Las ayudas en MATLAB se pueden acceder con el comando help con lo que se obtiene la lista de todos los tpicos para los que podemos obtener ayudas. A continuacin se muestran los tpicos del comando help.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

34

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

35

Para obtener ayuda de un tpico especfico, podemos escribir tambin el nombre del tpico. Por ejemplo, para obtener ayuda de los demos, usamos help demos, que nos lista todos los demos de MATLAB.

Tambin se puede obtener ayuda presionando el icono Help en la barra de herramientas con lo que se puede la ventana que se muestra a continuacin (que cada asistente vea su ventana) En esta ventana se tiene del lado izquierdo el navegador de ayuda (Help Navigator) con cuatro pestaas: Contents, Index, Search y Favorites. Para buscar informacin de un tpico se selecciona la pestaa Search (bsqueda) donde se ve un campo para datos donde se escribe alguna palabra relacionada con el tpico de inters o el nombre de alguna instruccin de la cual se desea ver ms informacin.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

36

6.9.1 El comando lookforEste comando seguido de una palabra sirve para encontrar todas las funciones que en su descripcin de la ayuda contenga esa palabra. El formato es: lookfor palabra As, por ejemplo, si se desea encontrar las funciones que en su descripcin contengan la palabra hyperbolic, se hace con lookfor hyperbolic

De esta manera, con el comando help podemos obtener informacin de la funcin que nos interesa.

6.9.2 El comando whichEste comando sirva para localizar el directorio donde se encuentran archivos-m. El formato es:Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

37

which nombre_del_archivo_o_funcin Por ejemplo para localizar la funcin poly se escribe:

un uso adicional del comando which es para saber si un nombre de funcin ya existe. de esta manera se evita darle a alguna de nuestras funciones el mismo nombre de una que ya existe, lo que elimina problemas de ejecucin.

6.10. Variables y funciones.Uno de los atributos ms poderosos de MATLAB es la manera en que puede manejar variables y funciones. Mientras que en otros lenguajes se deben definir desde un principio las variables a utilizar, en MATLAB stas se definen conforme se plantean por primera vez, no importa si se trata de variables de una dimensin o multidimensionales, matrices o cualquier otro elemento numrico o simblico.

6.10.1 VariablesComo se ha mencionado precedentemente, las variables se definen al momento que se usan por primera vez. Por ejemplo, si en un problema es necesario especificar el valor inicial de una variable Xo, esta variable se crea al escribir su valor

Esta variable tendr ese valor hasta que el usuario lo cambie por otro. Los nombres de las variables pueden tener un tamao de hasta 31 caracteres de largo (depende de la versin de MATLAB) y el primer carcter no debe ser un nmero. Si un nombre de variable tiene ms de 31 caracteres, slo se conservan los primeros 31. As, por ejemplo, si se escribe

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

38

Se ve que MATLAB 6 slo conserva los primeros 31 caracteres en el nombre. Los nmeros y variables pueden ser reales o complejos. Ejemplo

6.10.2 FuncionesExisten dos tipos de funciones en MATLAB Predefinidas por MATLAB Definidas por el usuario

A las funciones predefinidas en MATLAB se les llama funciones elementales. Ms abajo se pueden ver algunas de estas funciones. Es posible definir funciones dentro de MATLAB. As, por ejemplo, le ecuacin para calcular el volumen de un cilindro recto de radio r es:

V = r2 h

6.10.3 Variables simblicas Una variable simblica es una variable a la cual no se le ha asignado un valor numrico. MATLAB incluye un bloque de matemtica simblica (Symbolic Math Toolbox) que sirve para que el usuario pueda definir funciones. Una variable simblica se define con:Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

39

a = sym (a) x = sym (x) As, por ejemplo, si se desea trabajar con una funcin:

f = 5 x3 + ax + bLa funcin se puede crear definiendo primero las variables a, b y x, como simblicas para poder definir luego la funcin f.

Tambin se pueden definir variables complejas. Por ejemplo, si se quiere definir:

z =x+ j ydonde x e y son variables reales, entonces lo primero es declarar x e y como variables simblicas reales con:

Con x, y, z definidas as se pueden realizar funciones con nmeros complejos.

Ejemplo

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

40

Para quitar la restriccin de que x e y son reales, se emplea el comando

De esta manera, x e y pueden ser definidas como variables complejas.

Otras funciones simples, son las mostradas en la tabla N 5:

Tabla N 5. Algunas funciones simples

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

41

MATLAB tiene una herramienta para observar el comportamiento de una funcin. esta herramienta tiene el nombre de funtool (herramienta de funciones) y se ejecuta escribiendo en la ventana de trabajo: >> funtool Al ejecutar este comando aparecen tres ventanas como se muestra a continuacin. Estas ventanas estn numeradas como a, b y c ( 1, 2 , 3) La figura c contiene cuatro espacios para dar datos de : Funcin f(x) Funcin g(x) Rango de valores de x Valor de una constante a. Adicionalmente contiene teclas para efectuar operaciones con estas funciones. Las operaciones van desde calcular la derivada de f hasta calcular la funcin composicin de f [g(x)] . Los datos sirven para graficar las funciones f y g se muestran en la en la figura 8, (a) y (b) respectivamente. Al abrirse funtool da como valores de las funciones f ( x) = x y g ( x) = 1 , pero estos valores pueden ser modificados por el usuario.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

42

Fig. 8. (a) Grfica de la funcin f, (b) grfica de la funcin g, (c) Ventana principal de funtool

Ejemplo As, para las funciones:

f ( x) = sen( x) g ( x) = 1 ( x + 1) a=3Al presionar el botn f *g se obtienen las figuras 9 y 10 mostradas a continuacin:

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

43

Fig. 9. Grfica de f(x)*g(x)

Fig. 10. Grfica de g(x) En la figura 11 se muestra la pantalla de funtool, mediante la cual se cargaron las funciones f(x) y g(x).

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

44

Fig. 11. Pantalla de funtool El botn de Cycle permite usar distintas funciones que MATLAB tiene programadas para f y g.

6.11. Funciones Matemticas Elementales. Algunas funciones matemticas elementales se muestran en la tabla N 5

Tabla N 5. Algunas funciones matemticas elementales Los argumentos pueden ser, siempre que tenga sentido, reales o complejos, y el resultado se devuelve en el mismo tipo del argumento.Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

45

6.12. Algunos Comandos Utilitarios y de Ayuda.El principal comando de ayuda de MATLAB es el help, que nos da una lista de tpicos sobre las que pedir ayuda.Tambin se puede pedir ayuda directamente sobre un comando, como se muestra en la tabla N 6.:

Tabla N 6. Ayuda (Help) sobre un comando.

6.13. Elementos sobre ficherosSe pueden utilizar ficheros para: Guardar el valor de todas o algunas de las variables definidas en una sesinIng. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

46

Agrupar un conjunto de sentencias que puedan utilizarse en cualquier momento Almacenar todas las sentencias ejecutadas durante una sesin de trabajo Definir nuevas funciones (Se ver ms adelante).

En la Tabla N 7, se muestran algunos elementos sobre ficheros.

Tabla N 7. Algunos elementos sobre ficheros.

7.

Reloj y Fecha.

Para conocer la hora y fecha actual, MatLab cuenta con un comando llamado Clock. Veamos un ejemplo:

El primer nmero es un multiplicador, y los siguientes nmeros de la segunda lnea tienen el formato: [Ao, mes, da, hora, minuto, segundo] Los nmeros de la segunda lnea se pueden mostrar en formato entero, de la siguiente manera:

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

47

8.

Ruta de bsqueda.

El comando path, muestra la ruta de bsqueda vigente de MatLab. El comando ruta=path, devuelve una cadena llamada ruta que contienen la ruta.

9.

Diario.

Si se desea guardar en algn archivo las entradas por lneas de comando, la sentencia diary on guarda todo lo que se introduce por teclado, as como la mayor parte de lo que se enva a la pantalla, en un archivo llamado diary. La sentencia diary off termina la escritura.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

48

10.

Formato para exhibicin de nmeros.

En la tabla N 8, se muestran algunos comandos para la exhibicin de nmeros.

Tabla N 8. Algunos comandos para la exhibicin de nmeros. Ejemplos

11.

Caracteres especiales y operadores.

En la tabla N 9, se muestran los caracteres y operadores ms usuales de MatLab.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

49

Tabla N 9. Algunos caracteres aritmticos y operadores ms usuales.

12.

Operaciones bsicas.muy simples de

Las operaciones bsicas de suma, resta, multiplicacin y divisin son realizar en MatLab. Ejemplo.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

50

Nmero de cifras exactas. MatLab dispone de una funcin que permite visualizar el resultado de una operacin con un determinado nmero de cifras exactas. El comando es el siguiente:

Ejemplo. Supngase que se desea calcular 14 elevado a la 37 con 30 cifras exactas.

MatLab provee otras funciones para operar con nmeros enteros. En la tabla N 10, se indican algunas de ellas.

Tabla N 10. Algunas funciones para operar con nmeros enteros Estos son algunos de los muchos comandos que dispone MatLab. Dejamos a la inquietud de los lectores la bsqueda de otros comandos, que no se han explicado en estas notas.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

51

Ejemplo.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

52

13.

Escalares, Vectores y Matrices.

El nombre MATLAB viene de MATriz LABoratory. En MATLAB todos los datos son matrices. Los vectores y escalares son casos particulares de matrices. En MATLAB no es necesario especificar previamente las dimensiones de una matriz. Se definen de forma interactiva, al crearla. De hecho, una vez creada, se pueden modificar sus dimensiones. Existen muchos problemas en Ingeniera y Ciencias que involucran el empleo de matrices y vectores, y MatLab se basa fundamentalmente en el empleo de los vectores y matrices. De esta manera se resuelven casi todos los problemas de Ingeniera y Ciencias. Una matriz es un arreglo de n x m elementos (n filas y m columnas, un caso particular es n=m, matriz cuadrada).Un escalar es una matriz de orden 1x1, un vector fila es una matriz de orden 1xn, y un vector columna es una matriz de orden nx1. 13.1. Definicin de vectores. Un vector fila de dimensin n (una matriz de dimensiones 1xn) se puede definir en MATLAB escribiendo sus componentes entre corchetes rectos [ ] y separndolos por comas o espacios en blanco:

La orden anterior crea en MATLAB una variable v que contiene un vector-fila de longitud 4 (una matriz 4x1). Un vector columna se crea igual, pero separando las componentes por punto y coma:

La orden anterior crea una variable w, que almacena un vector-columna de longitud 6 (una matriz de dimensiones 6x1). Otras rdenes para definir vectores son:

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

53

Ejemplo.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

54

Ejemplo.

Ejemplo. Determinar el vector transpuesto de:

v = [1.5, 2.3, 6,14.9,18.05]

Las componentes de un vector se designan mediante el nmero de su subndice

Atencin: En MATLAB, los subndices de los vectores y matrices comienzan siempre por 1 Tambin se puede acceder a un bloque de componentes de un vector, indicando los subndices mnimo y mximo, o indicando un subconjunto de ndices.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

55

13.2. Operaciones con vectores y escalares. Si v es un vector (fila o columna) y k es un escalar, las operaciones que se muestran en la tabla N 11, dan el resultado que se indica:

Tabla N 11. Algunas operaciones con vectores y escalares. Ejemplos.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

56

13.3. Operaciones entre vectores. Si v y w son dos vectores (fila o columna) de las mismas dimensiones, las operaciones que se muestran en la Tabla n 12, dan el resultado que se indica:

Tabla N 12. Algunas operaciones con vectores. Ejemplos.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

57

13.4. Funciones especficas de vectores. Las funciones matemticas elementales admiten vectores como argumentos y se interpretan componente a componente. Algunas funciones especficas para vectores son las que se muestran en la Tabla N 13:

Tabla N 13. Algunas funciones especficas para vectores.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

58

13.5. Norma de una vector.La norma de un vector de dimensin n se define como:

x

p

n p = xi i =1

1

p

La norma ms conocida es la norma Euclidiana (p=2) que es la tpica magnitud del vector x

x

2

n 2 = xi i =1

1

2

2 2 = x1 + x2 +

2 + xn

Para calcular en MATLAB la norma de un vector, se usa: >>norm(x, p ) El valor predeterminado de p es 2.Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

59

Ejemplo Determinar la norma Euclidiana (p=2), la norma p=inf, y la norma para p=5 del vector

x = [3 -2 5 1 7]

13.6. Producto escalar y vectorialEl producto escalar, tambin llamado producto punto de dos vectores v y w dados por

v1 v v = 2 vn es un escalar y est definido por

w1 w w = 2 wn + vn wn

vi w = v1w1 + v2 w2 +MATLAB lo calcula mediante >>dot (v,w)

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

60

Ejemplo Hallar el producto escalar de los vectores

3.2 2.4 v= 5.6 7.1

0.8 7.3 w= 1.6 9.4

El producto escalar tambin se puede calcular si el primer vector columna se traspone para que se convierta en vector fila, y luego se multiplica por el segundo vector columna, es decir

v '* wAplicado al caso anterior se obtiene

El producto vectorial v w de dos vectores de tres dimensiones es otro vector y se obtiene con MATLAB mediante >>cross (v,w) Ejemplo Hallar el producto vectorial entre los vectores

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

61

5 a = 3 8

13 b= 6 35

Mayor informacin se puede obtener en la ayuda, escribiendo dot y cross en la Bsqueda en Search

13.7 Funciones de matrices y vectoresSe pueden calcular funciones de matrices y vectores. As por ejemplo si

x = [1.5,3, 5] , se

puede calcular el sin( x ) , que es otro vector dado por el vector cuyas componentes son las funciones seno de cada componente. Ejemplo Hallar el seno del vector

x = [1.5,3, 5]

Las funciones definidas en MATLAB y aquellas definidas por el usuario se pueden usar con vectores. Esto es para cualquier funcin f ( x ) , si A es una matriz se obtiene:

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

62

f (a11 ) f (a ) 21 f ( A) = f (am1 ) Si

f (a12 ) f (a22 ) f (am 2 )

f (a1n ) f (a2 n ) f (am n )

v

es un vector, entonces

f ( v ) = [ f (v1 )

f (v2 )

f (vn )]

Donde v puede ser un vector columna o un vector fila. Ejemplo Para el polinomio definido por p(x)=x^3+2*x^2-5*x+13, donde x puede ser un escalar, un vector o una matriz. Si D es una matriz dada por

3 2 D= 5 8 Entonces

Un tipo especial de vector es el que se forma para evaluar una funcin en un intervalo dado, por ejemplo: evaluar una funcin f(x) en un intervalo [xi, xf]. Si el espaciamiento entre los puntos es lineal, se puede usar x=linspace(a, b, n) Esta instruccin genera n valores igualmente espaciados entre a y b. Ejemplo

Para crear un vector similar se puede utilizar:Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

63

x = a: incremento: b Donde a es el valor inicial y los siguientes puntos son a + incremento, a + 2*incremento, hasta llegar a b que es el valor final. Dependiendo del valor del incremento, el valor final puede ser distinto de b. Ejemplo

Para crear un espaciamiento logartmico se usa x = logspace (a, b, n) Donde el primer punto es 10 ^ a, el ltimo punto es 10 ^b y hay n puntos en el intervalo.

13.8

Sistemas de ecuaciones

Si se tiene un conjunto de ecuaciones simultneas:

ax+b y = c d x+ey = fDichas ecuaciones se pueden resolver mediante:

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

64

Linsolve, resuelve el mismo problema si se expresa el conjunto de ecuaciones en forma matricial. As, para el problema anterior

a b A= d e

c v= f

x w= y

Cuando se tiene un sistema de ecuaciones simultneas, sus coeficientes se pueden expresar en forma matricial, y por lo tanto pueden ser manejados por MATLAB Ejemplo Sea el sistema de ecuaciones

2a 2b 2a + 6b 2c

=5 =0

2b + 6c 2d = 0 2c + 8d = 0Dicho sistema se escribe en forma matricial como

Ax = bLa matriz A y los vectores x y b son

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

65

2 2 0 0 2 6 2 0 A= 0 2 6 2 0 0 2 0

a b x= c d

5 0 b= 0 0

Para resolver este sistema se obtiene la inversa de la matriz A y luego se multiplica por b

Otra manera de resolver el sistema es mediante la instruccin >>x = A \ b Aplicado al ejemplo anterior, se obtiene

13.9.

Factorizacin LU

La factorizacin LU, permite escribir una matriz cuadrada no singular A como el producto de una matriz triangular inferior L y una matriz triangular superior U, es decir la matriz A se puede expresar como

A = LU

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

66

Ejemplo Dada la matriz A factorizar LU.

0.5 2.2 6.8 0.1 4 2 7 9 A= 12.5 11.7 12 8.6 4 6 9 3

Si la matriz A forma parte de un sistema de ecuaciones dado por Ax=b, entonces la solucin se puede obtener con >>x = U \ (L \ b) Supngase que b = [2;3;-5;0], entonces para la matriz dada anteriormente:

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

67

En la ventana rebsqueda (Search) se puede encontrar ms informacin sobre el tema LU.

13.10. Vectores propios y formas de JordanUna operacin muy utilizada en clculos con matrices es la obtencin de los vectores propios (o eigenvectors) y los valores propios (o autovalues). Estos vectores obedecen a la operacin

Ax = xEs decir, al multiplicar el vector por A, ste solo cambia de tamao pero no de direccin. A x y se los llama eigenvector (autovector) y eigenvalue (autovalor) de la matriz A, respectivamente. Ejemplo Considrese la matriz A siguiente, obtener los autovalores (valores propios o ingenvalue) de A

1 1 A= 3 4

2 3 4 4 9 16 1 0 5 7 3 8

Si se desea obtener los vectores propios se usa la instruccinIng. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

68

>> [V, E] = eig (A) MATLAB devuelve dos matrices V y E. Las columnas de V son los vectores propios y los elementos de la diagonal principal de E son los valores propios. Para la matriz anterior se obtiene:

Para diagonalizar una matriz usamos la expresin >> jordan (A) MATLAB devuelve la forma cannica de Jordan que cumple con

A = M -1J MDonde la matriz J es una matriz diagonal formada por los valores propios y M es la matriz formada por los vectores propios. Aplicando esto a la matriz A dada anteriormente se obtiene:

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

69

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

70

13.11. Definicin de matrices.Las matrices se definen de forma similar a los vectores, introduciendo sus filas como vectores-fila y separando unas filas de otras mediante punto y coma o saltos de lnea. Ejemplo.

Las componentes de una matriz se designan mediante los nmeros de sus subndices. Un vector - fila de dimensin n es en realidad una matriz de dimensin 1xn. Un vector-columna de dimensin m es en realidad una matriz de dimensin mx1.

13.12. Operaciones con matrices. Algunas de las operaciones con matrices, se indican en la tabla N 14:

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

71

Tabla N 14. Algunas operaciones con matrices.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

72

Las matrices pueden tambin utilizarse como argumento de las funciones intrnsecas. 13.13. Funciones especficas para matrices. Algunas funciones especficas para el manejo de matrices, son las que se muestran en la Tabla N 15:

Tabla N 15. Algunas funciones especficas para el manejo de matricesIng. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

73

Obsrvese la diferencia de comportamiento de la funcin diag, en funcin de que el argumento de entrada sea una matriz o un vector.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

74

Tambin se pueden definir matrices por bloques. Algunos de los bloques se muestran en la tabla N 16:

Tabla N 16. Algunos operadores para definir matrices, mediante bloques.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

75

13.14 Matrices sparse (huecas). MATLAB dispone de un sistema especial de almacenamiento y manipulacin de matrices huecas. La funcin

donde: i,j c n,m son vectores de subndices, de la misma longitud es un vector de la misma longitud que los anteriores son nmeros naturales,

genera una matriz de dimensin n x m , cuyos nicos elementos no nulos son los de subndice ( i(k) , j(k) ) , de valor c(k)

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

76

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

77

13.15

Polinomios.

En MATLAB los polinomios se identifican con el vector-fila de sus coeficientes: p = [3, 5, 0, 1, 2] representa el polinomio:

3x 4 + 5 x3 + x + 2

Algunas de las sentencias que dispone MATLAB, para operar con polinomios se muestran en la Tabla N 17:

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

78

Tabla N 17. Algunas sentencias para operar con polinomios.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

79

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

80

13.16 Otros Comandos para operar con matrices.En las tablas N 18 , 19 y 20, se muestra un resumen de algunas de las funciones principales para operar con matrices.

Tabla N 18. Algunas de las funciones principales para operar con matrices

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

81

Tabla N 19. Algunas funciones principales, adicionales, para operar con matrices

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

82

Tabla N 20. Otras funciones para operar con matrices. Ejemplos.

1 4 2 Ingresar la matriz A = 7 3 11 y calcular: 5 9 6 a) Determinante de A. b) Transpuesta de A. c) Inversa de A (si es posible). d) Comprobar que A * A1 = I e) Traza de A. f ) A2 y A5 g) Autovalores de A h) e i) Polinomio caracterstico P ( ) .A

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

83

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

84

1 2 3 6 5 2 4 5 6 ; B = 0 7 3 , calcular: Dadas las matrices A = 7 8 9 11 15 4

a) A + B. b) A - B. c) AB d) BA e) AB BA f) IAI g) IBI h) IABI i) IAI IBI j) IA + BI k) IAI + IBI

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

85

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

86

3 5 14 1 2.5 0.6 3.1 6.25 , Dada la matriz A = 4.2 8.45 7.43 15.12 7 0 11.65 6.98autovectores.

calcular los autovalores y los

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

87

13.17

Algunas Matrices Especiales.

MatLab dispone de algunos comandos que generan matrices particulares, que son de utilidad, como los que se muestran en la tabla N 21.

Tabla N 21. Algunos comandos para generar matrices particulares

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

88

13.18 Sistemas Lineales. Algunos de los comandos para operar con sistemas lineales se muestran en la Tabla N 22.

Tabla N 22. Algunos comandos para operar con sistemas lineales.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

89

Ejemplo. Una aplicacin importante del lgebra lineal, es la solucin de ecuaciones algebraicas lineales. Para considerar este caso se plantear otro ejemplo algebraico.

2.5 y +6.3 z +4 w = 9 3x 2 x +y 7.35w = 7 3z Dado el sistema lineal , 11w = 5 x 0.24 y 0.33 z 18 x +14 y 7.89 z +1.23w = 0.86 matricial.

resolverlo en forma

13.19 Consideraciones adicionales sobre escalares y vectores.De acuerdo a lo visto hasta el momento se puede ver claramente que un vector es un caso particular de una matriz, y puede ser un vector columna (nx1) o un vector fila (1xn).Pero para MATLAB el concepto de vector es mucho ms general, ya que toda lista de datos como: mediciones, registros, tabla de valores, listas generadas, etc., pueden ser tratados como vectores. En la tabla N 23, se muestran una serie de funciones adicionales para el manejo de vectores.Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

90

Tabla N 23. Algunas funciones adicionales para el manejo de vectores. Ejemplo de aplicacin sobre la tabla precedente. Dados los vectores anterior.

v1 = [1 2 5] , v2 = [ 7 4 9] , obtener las funciones de la tabla

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

91

13.20 Funciones adicionales sobre polinomios.La necesidad de utilizar polinomios es muy frecuente en Ingeniera y en Ciencias Bsicas tanto en ecuaciones diferenciales, funciones de transferencia, modelos de estado, aproximacin polinmica de datos experimentales (por ejemplo mtodo de cuadrados mnimos), etc. Esta necesidad hace que MatLab disponga de un conjunto de comandos que permiten tratar los polinomios como vectores, y as poder realizar las operaciones usuales con los mismos. En la tabla N 24, se muestran algunas funciones adicionales bsicas, para el manejo de los polinomios.

Tabla N 24. Algunas funciones adicionales bsicas para el manejo de polinomios.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

92

Ejemplo. Dados los polinomios P ( x) = x5 + 3.5 x 4 6.25 x 2 + 5 x + 7.25

y

Q( x) = x9 + 13.5 x 7 8.5 x 4 + 2.8 x 2 10 x + 3Se pide a) P + Q b) P Q c) Q/P d) Evaluar P en 2.25 y Q en 0.78 e) Hallar la derivada y la integral de P y Q considerando nulas las constantes de integracin. f) Hallar las races de P y Q. g) Hallar la descomposicin en fracciones simples de P(x)/Q(x).

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

93

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

94

13.21 Ajuste de curvas. 13.21.1 Ajuste mediante polinomios.

En muchas aplicaciones de ingeniera y ciencias es necesario describir un conjunto de datos de mediciones en forma analtica mediante un polinomio. La expresin de los datos de esta manera permite predecir resultados o simplemente describir el experimento mediante una ecuacin matemtica. para expresar los datos por medio de un polinomio, MATLAB utiliza el comando polyfit , cuya sintaxis es: polifix (x,y,n) Donde x, y son los vectores de datos y n es el orden del polinomio deseado Ejemplo En la tabla siguiente se muestran los datos obtenidos mediante una medicin experimental.

En primer lugar se graficarn los puntos de medicin mediante un asterisco. Para ello se emplean los comandos:

En la figura 12, se muestra la grfica de puntos de la s mediciones. En el grfico se han cambiado las escalas de los ejes x, y en el men Edit Axis Properties de -1 a 7 .El smbolo *k indica que los puntos se grafican con asteriscos.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

95

Fig. 12. Grfica de los puntos de las mediciones Utilizando el comando polyfit se determina un polinomio de grado 3 que pasa por dichos puntos.

Estos valores indican que, el polinomio de grado 3 obtenido, es:

p ( x) = 0.1472 x3 + 0.7726 x 2 + 0.7770 x 0.0429Ahora se graficarn simultneamente el polinomio p(x) con los puntos de las mediciones, para ello se emplea.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

96

As, se obtiene el grfico de la figura 13, que se muestra a continuacin

Fig. 13. Polinomio aproximador de grado 3. En el grfico de la figura 13 se puede ver que el polinomio de grado 3 es una aproximacin pobre, ya que en algunos puntos la diferencia entre la medicin y la aproximacin analtica puede ser considerable. Si se cambia a un polinomio de gado 5, se obtiene:

En la figura 14 se muestra la aproximacin, mediante un polinomio de quinto grado.Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

97

Fig. 14. Polinomio aproximador de grado cinco

13.21.2

Ajuste mediante splines cbicos.

Un spline proporciona otra manera de ajustar una curva a un conjuntote datos. El spline es una funcin formada por varios polinomios de tercer grado, con la condicin que el spline es diferenciable en todo punto. El spline es exacto en los puntos de medicin. La sintaxis es: y =spline (entrada x, entrada y ,x)

entrada x y entrada y son las coordenadas de los puntos de medicin y x es un vector depuntos por donde se desea que el spline y tomara los valores del vector y. Ejemplo

Donde:

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

98

MATLAB devuelve el grfico mostrado en la figura 15.

Fig. 15. Ajuste mediante splines cbicos. Si se compara este resultado con el que se obtuvo utilizando un polinomio de quinto grado, mediante polyfit, se puede ver que el spline da un mejor resultado, ya que este es exacto en los puntos de medicin.

13.21.3

Interfase para ajuste de curvas

Otra manera de realizar el ajuste de curvas, consiste en utilizar la interfase de ajuste llamada Basic Fitting que se encuentra en el men Tools. Para usar esta interfase primero seIng. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

99

deben graficar los puntos correspondientes a los datos, como se hizo anteriormente y que se muestra a continuacin, figura 16, para mejor comprensin.

Fig. 16. Basic Fitting en el men Tools

Seleccionando Basic Fitting en el men Tools, y pulsando, se obtiene la pantalla mostrada en la figura 17.

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

100

Fig. 17. Ventana del Basic Fitting. En la pantalla de la figura 17, se muestran varias opciones para polinomios interpoladores. Para continuar con el mismo ejemplo, se seleccionan las opciones: spline interpolation y 5th degree polynomial, al hacer esto se ve que MATLAB grafica automticamente el polinomio de quinto grado y la aproximacin por splines, que por otra parte son idnticas a las obtenidas anteriormente. Adems se puede mostrar las ecuaciones de los polinomios al marcar el espacio Show equations. Adicionalmente se puede ver el error de cada aproximacin marcando el espacio de Plot residuals que dispone de la opcin para representarlos con una grfica de barras (bar plot), con puntos (scatter plot), o con lneas

(line plot). Ver figuras 18 y19

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

101

Fig.18. Interpolacin por spline con error en forma de barras (bar plot).

Fig.19. Interpolacin por spline con error en forma lineal (linear plot)Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

102

En el ngulo inferior derecho de la pantalla de Basic Fitting hay una flecha que abre una ventana que muestra los coeficientes del polinomio de 5 grado, y otra flecha que al presionarla abre otra ventana donde se puede evaluar el polinomio que se obtuvo como se muestra en la figura 20.

Fig.20. Ventana de Basic Fitting, para ver el polinomio y la evaluacin en algunos puntos.

13.22 Otras funciones disponibles en MATLABMATLAB dispone de otras funciones que sirven para evaluar funciones, como as tambin para medir el tiempo de ejecucin.

13.22.1

Instrucciones eval y feva feva val

Para evaluar una funcin se puede emplear el comando eval Ejemplo

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

103

El comando eval requiere que la funcin a evaluar est entre tildes como si fuera una cadena de caracteres, adems debe estar definida por MATLAB o haberse definido previamente por el usuario. Otro comando til es feval, que permite evaluar una funcin en un punto o en un conjunto de puntos, es decir en un vector. As por ejemplo

13.22.2

Comando pause

El comando pause causa que MATLAB pase y espere un determinado tiempo antes de continuar los clculos durante la ejecucin de programas escritos usando MATLAB. Las opciones de pause son las siguientes:

Ing. A. M. Mariani rea Control--Dtos. Electrnica y Elctrica -- Universidad Tecnolgica Nacional FRBA y FRH.

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07)

Pg.

104

13.22.3

Comando wavread y sound

El comando wavread permite que se lea un archivo wav. La sintaxis es

>> [y, fs] = wavread(fnombre)Donde fnombre es el nombre del archivo que se desea leer, y es un vector fil