Microsoft Word - UNLZ MatLab SimulinK AMM 2007

361
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH. 1 Prefacio La aplicación de la Matemática en Ingeniería y Ciencias ha sido intensa en todos los tiempos, pero hoy en día con la ayuda computacional basada en las PCs, esta aplicación es una práctica común. Existen diversas compañías que diseñan programas de cálculo matemático. Entre las más importantes están Mathematica (Wolfram Research Inc.), Maple (Maplesoft Inc.), MathCad (Mathsoft Engineering &Education, Inc), y el más usado en el mundo en el área de ingeniería: MATLAB (The Math Works, Inc.). Todos estos paquetes manejan la matemática de una manera muy simple y además disponen de una utilería que permite a los usuarios realizar complicados procedimientos matemáticos con una gran facilidad. Un ejemplo lo constituyen los métodos de optimización que requieren una gran cantidad de cómputo matemático. Tradicionalmente se usaban lenguajes como Fortran o C, que requerían de programadores expertos para llevar a cabo los programas. Hoy en día con paquetes como MATLAB se pueden realizar procesos de optimización aún 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 técnicas de resolución de problemas. MATLAB es una herramienta de cómputo orientada para realizar cálculos sobre matrices. Cuenta con una gran cantidad de toolboxes para análisis y procesamiento de datos. Además cuenta con una gran cantidad de herramientas para graficar funciones en 2D y 3D que están integradas dentro de MATLAB. También proporciona un ambiente de programación, el cual puede ser ampliado por el usuario desarrollando sus propios archivos-m e integrándolos dentro del conjunto de programas de MATLAB. La manera de desarrollar programas en MATLAB es muy intuitiva y permite generar códigos de una manera muy rápida. MATLAB trabaja con una memoria dinámica 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 según lo requiera al escribir el código. MATLAB permite el intercambio de datos con EXCEL, desarrollo de interfases gráficas, resolución de problemas con SIMULINK, entre otras técnicas 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 físico real, pudiéndose controlar y monitorear procesos y máquinas desde el entorno de MATLAB. Por las razones expuestas muy brevemente, y muchas otras, MATLAB es la herramienta más adecuada para la resolución de problemas en ingeniería y ciencias. Para confeccionar este material se ha utilizado la versión 6.1.0.450 (R12.1) de MATLAB. En las versiones más modernas, la mayoría 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 propósito de despertar la inquietud y motivar la posterior profundización en el empleo de MATLAB, SIMULINK y otros Toolboxes, por parte de los Profesores y estudiantes de las carreras de Ingeniería (tanto en Ciencias Básicas, Tecnologías Básicas y Tecnologías Aplicadas) de las Facultades de Ingeniería de la UTN-FRBA/FRH, UNLZ y EST, en las cuales imparto cursos de Sistemas de Control e Ingeniería de Control Avanzado.

Transcript of Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Page 1: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

1

Prefacio

La aplicación de la Matemática en Ingeniería y Ciencias ha sido intensa en todos los tiempos, pero hoy en día con la ayuda computacional basada en las PCs, esta aplicación es una práctica común. Existen diversas compañías que diseñan programas de cálculo matemático. Entre las más importantes están Mathematica (Wolfram Research Inc.), Maple (Maplesoft Inc.), MathCad (Mathsoft Engineering &Education, Inc), y el más usado en el mundo en el área de ingeniería: MATLAB (The Math Works, Inc.). Todos estos paquetes manejan la matemática de una manera muy simple y además disponen de una utilería que permite a los usuarios realizar complicados procedimientos matemáticos con una gran facilidad. Un ejemplo lo constituyen los métodos de optimización que requieren una gran cantidad de cómputo matemático. Tradicionalmente se usaban lenguajes como Fortran o C, que requerían de programadores expertos para llevar a cabo los programas. Hoy en día con paquetes como MATLAB se pueden realizar procesos de optimización aún 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 técnicas de resolución de problemas. MATLAB es una herramienta de cómputo orientada para realizar cálculos sobre matrices. Cuenta con una gran cantidad de toolboxes para análisis y procesamiento de datos. Además cuenta con una gran cantidad de herramientas para graficar funciones en 2D y 3D que están integradas dentro de MATLAB. También proporciona un ambiente de programación, el cual puede ser ampliado por el usuario desarrollando sus propios archivos-m e integrándolos dentro del conjunto de programas de MATLAB. La manera de desarrollar programas en MATLAB es muy intuitiva y permite generar códigos de una manera muy rápida. MATLAB trabaja con una memoria dinámica 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 según lo requiera al escribir el código. MATLAB permite el intercambio de datos con EXCEL, desarrollo de interfases gráficas, resolución de problemas con SIMULINK, entre otras técnicas 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 físico real, pudiéndose controlar y monitorear procesos y máquinas desde el entorno de MATLAB. Por las razones expuestas muy brevemente, y muchas otras, MATLAB es la herramienta más adecuada para la resolución de problemas en ingeniería y ciencias. Para confeccionar este material se ha utilizado la versión 6.1.0.450 (R12.1) de MATLAB. En las versiones más modernas, la mayoría 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 propósito de despertar la inquietud y motivar la posterior profundización en el empleo de MATLAB, SIMULINK y otros Toolboxes, por parte de los Profesores y estudiantes de las carreras de Ingeniería (tanto en Ciencias Básicas, Tecnologías Básicas y Tecnologías Aplicadas) de las Facultades de Ingeniería de la UTN-FRBA/FRH, UNLZ y EST, en las cuales imparto cursos de Sistemas de Control e Ingeniería de Control Avanzado.

Page 2: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

2

Estas notas no hubiesen sido posibles sin el apoyo de muchas personas. Del Ing. A. Furfaro Director del departamento de Electrónica 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 cooperación y revisión del material y por el constante apoyo en la difusión de esta herramienta en el área de la ingeniería Electrónica, Eléctrica y Mecánica. Al Ing. Ricardo Amé, Coordinador del ciclo Superior de la carrera de Ingeniería Mecánica de la UNLZ por su apoyo y constante motivación, para que impartiéramos el curso. Al Ing. C. González, Director del departamento de Electrónica de la UTN- FRH, por su apoyo en el curso de Ingeniería 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 difusión de estas técnicas, sobre todo en relación con la ingeniería. Ing. Amadeo M. Mariani

Page 3: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

3

1. Introducción 1.1 Programa MatLab El nombre del programa MATLAB proviene de “MATrix LABoratory”, y es un programa de alto nivel diseñado para cómputo técnico, sobre la base del cálculo con vectores y matrices, no obstante se pueden realizar cálculos con escalares y números complejos. Integra en un mismo ambiente muy fácil de utilizar:

• Cálculos. • Visualización. • Programación.

En este ambiente los problemas y sus soluciones se pueden expresar en notación matemática fácil de entender. Algunos de los usos más comunes de MATLAB son:

• Cálculos matemáticos. • Desarrollo de algoritmos • Modelado y simulación • Análisis de datos • Obtención de gráficas • Desarrollo de interfases gráficas

El lenguaje de programación de MATLAB es más poderoso que lenguajes tales como FORTRAN, C, Basic, Visual Basic o Pascal, entre otros. Junto con MATLAB se han Desarrollado una colección de herramientas (Toolboxes) que programadas en lenguaje de MATLAB pueden realizar un conjunto de actividades en ciertas áreas de la ingeniería, las ciencias, las finanzas y la economía, entre otras muchas. Algunas de estas herramientas (Toolboxes) se han desarrollado para resolver problemas vinculados con:

• Análisis y diseño de Sistemas de Control.

Control System Toolbox Proporciona un entorno interactivo y gráfico para el modelado, análisis y diseño de sistemas de control, utilizando tanto los métodos clásicos como los modernos: root locus, loop shaping, pole placement, LQR/LQG regulation. Soporta sistemas LTI, SISO, MIMO y diversos métodos de conversión. Fuzzy logic Toolbox Es una herramienta interactiva para el desarrollo de algoritmos de lógica difusa, aplicable a reconocimiento e identificación de imágenes con patrones difusos, procesamiento de señales y desarrollo de procesos inteligentes y adaptivos. Robust Control Toolbox Herramientas para el modelado y diseño de sistemas de control multivariables mediante técnicas de H∞ , donde la robustez del sistema es un factor crítico.

Page 4: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

4

µ-Analysis and Sinthesis Toolbox

Algoritmos para µ aplicables al análisis de rendimiento y robustez en sistemas con incertidumbre en el modelado y parametrización. LMI Control Toolbox Algoritmos de optimización para la resolución 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 calibración de conjuntos motrices complejos. Cubre los tres aspectos de la calibración: planificación de la prueba física en el dinamómetro, utilización 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 señales. Signal Processing Toolbox Conjunto de funciones para analizar, manipular y visualizar señales y sistemas lineales. Incorpora una interfase para diseñar y analizar de forma interactiva filtros digitales (FIR y IIR) Filter Design Toolbox Complementa al Signal Processiong Toolbox, agregando técnicas avanzadas de filtros digitales para aplicaciones complejas de DSP en tiempo real. También proporciona funciones para simplificar el diseño de filtros de punto fijo y para el análisis de los efectos de cuantificación. Communications Toolbox Conjunto de funciones para MATLAB que facilitan el diseño de algoritmos y componentes de sistemas de comunicaciones. System Identification Toolbox Proporciona herramientas para crear modelos matemáticos de sistemas dinámicos, 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 análisis Wavelet para analizar y procesar señales, imágenes (señal bidimensional) y series temporales. Son adecuadas para el estudio de señales con características no estacionarias o transitorias en las que el análisis del tiempo en que dichas señales experimentan los cambios es fundamental (para el estudio de este tipo de señales no es adecuado el método de Fourier) . estas aplicaciones son muy convenientes para la eliminación de ruidos y ecos, compresión de imágenes y video.

Page 5: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

5

• Procesamiento de imágenes.

Image Processing Toolbox. Entorno interactivo que proporciona un conjunto de herramientas para el análisis y procesado de imágenes con un amplio abanico de aplicaciones. Entre las aplicaciones se encuentran: operaciones geométricas, análisis de imagen, eliminación 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 análisis y visualización de información gráfica de tipo geográfico.

• SIMULINK y herramientas adicionales(Blocksets y Generadores de Códigos) Un campo de gran aplicación en la ingeniería, es la automatización del diseño mediante simulación dinámica de sistemas. Los productos más importantes en el área de simulación dinámica son: Simulink Es un entorno gráfico interactivo para el modelado, análisis y simulación, de una gran variedad de sistemas dinámicos (lineales, no lineales, analógicos, discretos e híbridos), mediante la utilización de diagramas en bloques. Permite la incorporación de los algoritmos y controles que se hayan desarrollado en lenguaje C, previamente a la utilización de Simulink. Trabaja totalmente integrado con MATLAB. Stateflow. Es un entorno gráfico interactivo para el modelado de la lógica de sistemas dinámicos basados en eventos (temporales o de estado) . se basa en la teoría de máquinas de estado finito y utiliza diagramas de transición de estado para expresar la lógica del sistema y diagramas de control de flujo.Trabaja perfectamente integrado con Simulink. Simulink Report Generador. Permite realizar la documentación automática, mediante la creación 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 diseño 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

Page 6: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

6

Permite la creación de escenas e imágenes 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 diseño de muchas aplicaciones de procesado de señales digitales (DSP) , como procesado básico de señal, estimación espectral, diseño de filtros. Todos los bloques soportan simulación por muestreo y por frames. Communications Blockset Conjunto de más de 150 bloques para Simulink que permite diseñar 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 inalámbricos bajo el estándar IS-95A. Fixed-Point Blockset Permite emular la aritmética del punto fijo cuando se diseña y simula sistemas dinámicos o filtros digitales que al final serán implementados en targets digitales de punto fijo. Dials & Gauges Blockset. Realiza el monitoreo de señales y parámetros de simulación mediante elementos gráficos (instrumentos de aspecto real). Permite añadir a los modelos de Simulink estos elementos gráficos y así visualizar el entorno que se está modelando. Nonlinear Control Design Blockset. Proporciona una aproximación al diseño de sistemas de control basada en una optimización que ajusta los parámetros 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 eléctricos de potencia (generación, transmisión y distribución) 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 mecánico, ver y animar su movimiento, estudiar su cinemática y dinámica (directa e inversa) etc.-. Real-Time Workshop.(RTW) Genera código C en tiempo real a partir de los modelos realizados en Simulink, lo que permite realizar prototipos rápidos, acelerar las simulaciones o realizar simulaciones en tiempo real. Real-Time Workshop Embedded Coder.(RTWEC)

Page 7: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

7

Genera código C en tiempo real optimizado en velocidad de ejecución y con unos mínimos requerimientos de memoria para usarlo en sistemas embedded de tiempo real. Este código puede ser descargado directamente al procesador target. El código generado es comparable al código optimizado escrito a mano. Stateflow Coder Genera código C en tiempo real a partir de los diagramas de transición 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 ejecución se puede comunicar con una amplia variedad de tarjetas de I/O (más de 100), lo cuál 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 código con RTW (Real-Time Workshop) y descargar este código en una segunda PC que ejecuta el kernel de xPC target. Es ideal para realizar prototipos rápidos. Permite la ejecución de modelos en tiempo real en una segunda PC (como target) sin necesidad de Windows. Con esta solución, la PC que actúa como host y la que actúa como target se mantienen comunicadas durante la ejecución en tiempo real. xPC Target Embedded Option. Esta opción permite que el modelo desarrollado se ejecute en la PC que actúa como target sin necesidad de que esté conectada a la PC host. Esta opción es la adecuada cuando el modelo está finalizado y se entrega para su funcionamiento en producción.

• Adquisición de datos(Data Acquisition) Data Acquisition Toolbox Permite el control y la comunicación con una gran variedad de dispositivos de adquisición de datos estándares en la industria (National Instruments, Agilent, Computer Boards, etc.). Incluye kit de adaptación para el desarrollo de interfaces para nuevos dispositivos. Instrument Control Toolbox. Permite la comunicación con instrumentos (analizadores de espectro, osciloscopios, generadores de funciones) y dispositivos externos. Soporta protocolos de comunicación 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 gráfica se puede realizar ajustes de curvas, visualizando y preprocesando los datos y usando una amplia gama de modelos y métodos de ajuste.

Page 8: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

8

• Math Toolboxes. Symbolic Math. Permite integrar la expresión y el cálculo simbólicos (cálculo, transformadas, álgebra lineal, ecuaciones) al entorno de cálculo y visualización de MATLAB Extended Symbolic Math. Incluye todas las características de Symbolic Math, proporciona soporte completo para programación en Maple y permite el acceso completo a las librerías matemáticas de Maple. Database Toolbox. Permite intercambiar directamente desde MATLAB datos con las bases de datos ODBC/JDBC más populares (Oracle, Sybase SQL Server, Sybase SQL Anywhere, Microsoft SQL server, Microsoft Access, Informix y Ingres) de forma dinámica, preservándolos durante el intercambio y simultáneamente con más 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 función de MATLAB desde una fórmula de Excel o utilizando Excel desde MATLAB como editor de vectores. Statistics Toolbox. Funciones y herramientas interactivas para el análisis de datos históricos, el modelado y simulación de sistemas, y para el desarrollo de algoritmos estadísticos. Soporta 20 distribuciones de probabilidad, incorpora el control estadístico de proceso, el diseño de experimentos, estadística descriptiva, análisis cluster, etc. Optimization Toolbox. Proporciona diversos algoritmos y técnicas para solucionar problemas de optimización no lineales, tanto generales como a gran escala. SplineToolbox Mediante una Interface gráfica proporciona potentes funciones para el ajuste de datos, visualización, interpolación y extrapolación mediante técnicos spline. Partial Differential Equartion Toolbox. De aplicación en muchos campos de la física e ingeniería, como ser transferencia de calor, flujo en medios porosos, propagación electromagnética, medios conductores, cálculo de esfuerzos y fatigas en estructuras, campos magnéticos, etc. Usa el método FEM (Finite Element Method, que incorpora el algoritmo de triangulación de Delaunay) para solucionar ecuaciones diferenciales parciales. Neural Network Toolbox Proporciona las versiones más comunes de paradigmas y algoritmos para el diseño y simulación de redes neuronales. Incluye bloque de SIMULINK para poder utilizar este Toolbox en aplicaciones de Control y simulación de sistemas. Incluye ejemplos de control predictivo y adaptivo. Entre las aplicaciones más comunes de las redes neuronales se tienen

Page 9: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

9

las técnicas de clasificación, predicción, filtrado, optimización, reconocimiento de patrones, aproximación a funciones, interpretación y clasificación de imágenes.

• Finanzas y Economía. Financial Toolbox. Proporciona las herramientas básicas para las finanzas cuantitativas y la elaboración de prototipos analíticos, aplicables a la optimización de portfolios (carteras) y análisis de riesgos, cálculo de precios y sensibilidades según diversos modelos, análisis de volatilidad (ARCH/GARCH), análisis básico de series temporales, etc. Financial Time-Series Toolbox. conjunto de herramientas para el análisis de series temporales en mercados financieros, análisis y transformación de datos, análisis técnico(índices, osciladores, indicadores, etc.) y visualización. Financial Derivatives Toolbox. Permite la creación y generación de portfolios con diversos instrumentos financieros, así como calcular sus precios y sensibilidades. Proporciona análisis hedging (compensaciones). Garch Toolbox. Proporciona un entorno de cálculo integrado para trabajar con el modelo de GARCH sobre volatilidad. Utiliza un modelo compuesto ARMX/GARCH para realizar simulaciones, previsiones, estimación de parámetros 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 análisis en MATLAB. 1.2. Requisitos mínimos e Instalación Con relación al hardware, el programa exige para el correcto funcionamiento ciertas características mínimas, muy básicas, que actualmente están 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 gráfica SVGA y monitor color. También es imprescindible contar con 500 MB de RAM (recomendable 1GB ó 2 GB). Disco duro con capacidad libre de 5 GB (actualmente los discos rígidos 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 versión superior (Office 2000 o XP). Si se van a construir ficheros MEX propios, es necesario disponer de Microsoft Visual C/C++ (versión 5.0 o superior), de Borland C++ (versión 5.0 o superior) o de Lcc 2.4 (propio de MATLAB). También es necesario disponer de Adobe Acrobat Reader si se quiere ver la ayuda en línea de MATLAB en formato PDF.

Page 10: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

10

Para instalar el programa en Windows se coloca el CD (el 1º si hay más de uno) en la unidad de CD-ROM de la PC. Al cerrar la unidad lectora, automáticamente se inicia el proceso de instalación con una pantalla temporal que tiene el logo de MATLAB. Durante unos segundos el programa prepara el proceso de instalación mostrando una nueva pantalla en la cuál se debe pulsar Next. A continuación aparece una pantalla en la cuál se debe introducir la clave PLP del CD-ROM y suministrada por Math Works. Después 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 identificación (Name, Company), que permite, pulsando nuevamente Next , seleccionar el directorio en que se instalará MATLAB , las opciones de instalación, como ser: documentación, opciones de idioma y productos componentes de MATLAB. En la parte derecha de la pantalla se informa del espacio disponible en el disco rígido 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 instalación, y automáticamente van apareciendo pantallas que informan de la instalación de las diversas componentes de MATLAB. Si se ha seleccionado la instalación de la documentación (manuales y help) de MATLAB el proceso pedirá la introducción del CD correspondiente. Al pulsar OK se instalan los archivos de ayuda (Help) y manuales (Documentation). Al terminar la carga de la documentación, se debe pulsar Next, con lo cual se muestra la pantalla de Instalación Completa (Installation Complete). En dicha pantalla se deberá seleccionar el Reinicio de la PC en ese instante (now) para memorizar la configuración de MATLAB o bien hacerlo más tarde (later). 1.3. Comenzando con MATLAB Una vez concluida la tarea de instalación de MATLAB y reiniciado el sistema, se dispone del programa instalado. Para comenzar a trabajar con MATLAB se va al botón de Inicio y se selecciona Programas y allí se busca y luego se abre MATLAB. También se puede abrir desde el acceso directo (que se crea automáticamente) 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 continuación:

Page 11: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

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 sesión 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 indicación de que podemos dar comandos a MATLAB es:

Page 12: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

12

>> En la versión Profesional EDU>> En la versión estudiantil 2. Componentes de MATLAB. Básicamente 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 programación orientada a objetos. Permite crear pequeños programas como así también 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. También posee herramientas de programación, desarrollo y manipulación de archivos (M-Files).

III. Manipulador de gráficos. Es el sistema de graficación de MatLab. Incluye una serie de comandos de alto nivel para la visualización de imágenes en 2D y 3D, animaciones y presentaciones.

IV. Librería de Funciones Matemáticas. Es una amplia colección que contiene las

funciones elementales como Sen, Cos, Sec, etc., hasta las transformadas de Laplace, Transformada Rápida de Fourier (FFT) y otras.

V. Interfase de aplicación de programas de MatLab. Es una librería que permite

escribir programas en C y Fortran, que interactúan 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 combinación de ambos. Los sistemas que se simulan en SIMULINK reciben el nombre de “modelos”. Para modelar sistemas SIMULINK tiene una interfase gráfica que sirve para construir modelos como diagramas de bloques. Para este propósito SIMULINK incluye una muy completa biblioteca de componentes lineales y no lineales, fuentes y, elementos de salida y conectores. Además el usuario puede crear sus propios componentes. Después de que se define un modelo para un sistema, este se puede simular usando menús en SIMULINK. Las limitantes para los modelos de SIMULINK es la cantidad de Toolboxes que se hayan comprado (actualmente hay alrededor de 170 toolboxes).

Page 13: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

13

MATLAB, cuenta también con un programa llamado Real-Time-Workshop (RTW) que permite generar un código en lenguaje C, desde el diagrama en bloques, y correrlo en una variedad de sistemas en tiempo real. 4. La Versión de MatLab. Para conocer la versión 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 códigos de MatLab. El usuario puede crearlos usando los mismos comandos que ingresa por líneas de comandos y otras sentencias que se verán más adelante. El archivo se guarda con la extensión .m (ejemplo: Mario_archivo.m) y se puede llamar desde la línea de comandos para ejecutarlo.

Page 14: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

14

b. Archivos Mat. Son archivos que contiene datos binarios que se guardan con extensión .mat y que se detallarán más adelante.

c. Archivos Mex. Son archivos MatLab ejecutables compilado a partir de C o

Fortran. Se guardan con la extensión .mex.

d. Archivos MDL. Corresponden a modelos realizados con SIMULINK. Más 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 minúsculas y mayúsculas NO SON IGUALES. La ejecución de cualquier comando puede abortarse mediante CONTROL + C. Se pueden escribir varios comandos en una misma línea, separándolos 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 línea de comando y modificarlo. 6.1. Constantes. Enteros: 12 -3 Reales: 8.02 -5.7 .053 1.6e+5 -.658e-21

Complejos: 1+ 2i -3+ 5j (i j son símbolos que representan la unidad Imaginaria) Caracteres (entre apóstrofes): ’esto es una cadena de caracteres’ ‘string’

6.2. Operaciones Aritméticas elementales. Suma: + Resta: - Multiplicación: * División: / Exponenciación: ^

Page 15: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

15

Se puede utilizar MATLAB como simple calculadora, escribiendo expresiones aritméticas y terminando por RETURN (<R>). Se obtiene el resultado inmediatamente a través 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 programación como FORTRAN y C, no necesitan declararse previamente en otra instrucción. 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 tamaño de hasta 63 caracteres de largo, letras y números. Si un nombre de una variable tiene más 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 ningún tipo de declaración y pueden almacenar sucesivamente distintos tipos de datos: enteros, reales, escalares, matriciales, caracteres, etc. Se crean, simplemente, asignándoles un valor. Se pueden eliminar variables mediante el comando clear.

Atención: Recuérdese que las variables AB, ab, Ab y aB SON DISTINTAS. Los nombres de las variables no son iguales si se escriben con letras mayúsculas o minúsculas. 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

Page 16: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

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 además de indicar las variables, muestra el tamaño, número de Bytes que ocupa, y el formato.

Page 17: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

17

6.4. Formatos El número de dígitos con los cuales MATLAB escribe una cantidad numérica puede variarse. Esto se puede realizar usando algunos de los formatos disponibles. Por defecto cuando MATLAB nos muestra un valor real, nos muestra sólo cinco dígitos (formato corto). Se puede modificar la forma de mostrar los valores, mediante el comando format, según se muestra en la Tabla Nº 1:

Tabla Nº1. Comando format

Page 18: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

18

Nota: cada vez que MATLAB ejecuta alguna acción, el resultado se escribe en la pantalla. Para suprimir la escritura del resultado, es necesario escribir punto y coma después de escribir la operación que deseamos realizar, por ejemplo:

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

Tabla Nº 2. Algunos nombres predefinidos

Page 19: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

19

6.6. Cadenas Una cadena de caracteres, es una serie de letras, números u otros símbolos. Las cadenas de caracteres se encierran dentro de “tildes”. Algunos ejemplos de caracteres son: ‘facultad’ ‘mecánica’ ‘buen día’ 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 posición dentro de la cadena. Cada elemento se puede obtener con el nombre de la cadena seguido entre paréntesis de la posición que tiene.

Page 20: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

20

Por ejemplo, para la cadena m =’Francisco González’, el primer elemento m(1) es F, mientras que el penúltimo 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 especificándolas, como:

nueva _ cadena = [cadena1, cadena2, cadena3]

Ejemplo. Si, por ejemplo, tenemos cuatro cadenas a, b, m, i dadas por a =’Argentina’, b = ’Brasil’, m =’México’, i = ’Italia’, se pueden crear nuevas cadenas con:

Page 21: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

21

También 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.

Page 22: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

22

Ejemplos.

La función strrep (c1, c2, c3) reemplaza los caracteres c2 por los caracteres c3 en la cadena c1. Por ejemplo, en la cadena ‘MATLAB ejecuta los cálculos matemáticos’, se puede cambiar ejecuta por efectúa con:

Las unciones upper y lower convierten caracteres alfabéticos en una cadena a letras mayúsculas y minúsculas, respectivamente. Y los demás caracteres no cambian. Por ejemplo para las cadenas m1 y m2.

Page 23: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

23

6.7. Guardado de una sesión y sus variables. Hasta este momento sólo se ha mencionado que una variable se define cuando se usa por primera vez. Las variables de la sesión están disponibles mientras no se cierre MATLAB o mientras no se ejecute la instrucción clear. En ocasiones deseamos seguir utilizando nuestras variables en otra sesión de MATLAB y por lo tanto es conveniente tener alguna manera de guardarlas. Esto es posible con la instrucción diary que guarda una copia de la sesión 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 considérese la siguiente sesión de trabajo.

Page 24: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

24

Si ahora se desea guardar la sesión de trabajo en un archivo que se llamará sesion.txt, se usa: >> diary (‘sesion.txt’)

Si se observan los archivos del directorio, se ve que hay un nuevo archivo llamado sesion.txt, como se muestra en la figura 2, siguiente.

Fig.2. Archivo Sesion.txt

Al 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 continuación

Page 25: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

25

Fig.3. Contenido del archivo sesion.txt

Si se repite esta acción, se volverán 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 información de la sesión es usando el comando Save Workspace As ……….. al cual podemos tener acceso con

File→Save Workspace As………… O con :

Control + S

En este caso sólo se guarda información de las variables de la sesión. Por ejemplo, para guardar la sesión anterior más nuevas variables que declaramos, se escribe en la ventana de trabajo de MATLAB dos nuevas variables,

Page 26: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

26

Se han definido dos nuevas variables, ww y zz, adicionales a las que teníamos anteriormente. Ahora lo salvamos con File→Save Workspace As….. con lo que se abre la ventana de diálogo 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 extensión .mat de manera automática. Si lo salvamos con el nombre de variables entonces se creará un archivo con el nombre variables.mat conteniendo las variables de la sesión con sus valores. Cerremos MATLAB y lo volvemos a abrir. Veamos que variables existen en MATLAB con la instrucción 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 diálogo que se muestra a continuación , figura 5, donde se selecciona el archivo variables.mat .

Page 27: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

27

Fig.5. Contenido del archivo Work. Al abrirlo, se cargan todas las variables de la sesión anterior, con sus valores como se muestra en la figura 6 , después de usar la instrucción who y whos. Esta última nos da una lista de variables y el tamaño de cada una de ellas.

Page 28: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

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 acción equivalente a Save Workspace As….., escribiendo las variables en el archivo variables.mat. Se pueden cargar las variables que están en variables.mat con

Load (‘variables.mat’)

O simplemente

Load (‘variables’)

Page 29: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

29

Fig. 7. Creación del archivo sesion.m

Page 30: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

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 cálculo 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 instrucción de MATLAB. Ejemplo

Otro uso del punto y coma es para escribir varias instrucciones en un mismo renglón separándolas 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 cálculo junto con algún texto, o simplemente escribir un texto. Para esto se utiliza la instrucción fprintf. Si deseamos escribir el texto:

MATLAB realiza cálculos matemáticos Se utiliza entonces

Page 31: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

31

nótese que en esta instrucción el punto y coma no suprime la escritura del texto. También debe notarse el \ n al final de la línea. Esto quiere decir que después de escribir se empiece una línea nueva. Si no lo usamos entonces el siguiente fprintf continuará escribiendo en la misma línea. Así por ejemplo, si escribimos

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

Pero si usamos un \ n entonces escribirá el siguiente fprintf en un nuevo renglón, como

Esto nos da la salida con un renglón 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 cuál 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

Page 32: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

32

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

6.8.2 Entrada de datos en MATLAB. La forma más sencilla de dar datos a MATLAB es con la instrucción 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

Nótese que input no genera salto de línea. Esto solo se genera con \n, el cual puede ir en cualquier lado. Si en lugar de darle un valor numérico le damos un nombre con letras o un carácter como & @ ¿, o algún otro, se obtiene:

Page 33: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

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 carácter alfanumérico nos manda un mensaje de error. Si en lugar de datos numéricos se desea leer una cadena, lo indicamos añadiendo ‘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 tópicos para los que podemos obtener ayudas. A continuación se muestran los tópicos del comando help.

Page 34: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

34

Page 35: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

35

Para obtener ayuda de un tópico específico, podemos escribir también el nombre del tópico. Por ejemplo, para obtener ayuda de los demos, usamos help demos, que nos lista todos los demos de MATLAB. También se puede obtener ayuda presionando el icono Help en la barra de herramientas con lo que se puede la ventana que se muestra a continuación (que cada asistente vea su ventana) En esta ventana se tiene del lado izquierdo el navegador de ayuda (Help Navigator) con cuatro pestañas: Contents, Index, Search y Favorites. Para buscar información de un tópico se selecciona la pestaña Search (búsqueda) donde se ve un campo para datos donde se escribe alguna palabra relacionada con el tópico de interés o el nombre de alguna instrucción de la cual se desea ver más información.

Page 36: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

36

6.9.1 El comando lookfor Este comando seguido de una palabra sirve para encontrar todas las funciones que en su descripción de la ayuda contenga esa palabra. El formato es:

lookfor palabra Así, por ejemplo, si se desea encontrar las funciones que en su descripción contengan la palabra hyperbolic, se hace con lookfor hyperbolic

De esta manera, con el comando help podemos obtener información de la función que nos interesa. 6.9.2 El comando which Este comando sirva para localizar el directorio donde se encuentran archivos-m. El formato es:

Page 37: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

37

which nombre_del_archivo_o_función

Por ejemplo para localizar la función poly se escribe:

un uso adicional del comando which es para saber si un nombre de función 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 ejecución. 6.10. Variables y funciones. Uno de los atributos más 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 dimensión o multidimensionales, matrices o cualquier otro elemento numérico o simbólico. 6.10.1 Variables Como 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 tamaño de hasta 31 caracteres de largo (depende de la versión de MATLAB) y el primer carácter no debe ser un número. Si un nombre de variable tiene más de 31 caracteres, sólo se conservan los primeros 31. Así, por ejemplo, si se escribe

Page 38: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

38

Se ve que MATLAB 6 sólo conserva los primeros 31 caracteres en el nombre. Los números y variables pueden ser reales o complejos. Ejemplo

6.10.2 Funciones Existen dos tipos de funciones en MATLAB

• Predefinidas por MATLAB • Definidas por el usuario

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

2V r hπ=

6.10.3 Variables simbólicas Una variable simbólica es una variable a la cual no se le ha asignado un valor numérico. MATLAB incluye un bloque de matemática simbólica (Symbolic Math Toolbox) que sirve para que el usuario pueda definir funciones. Una variable simbólica se define con:

Page 39: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

39

a = sym (‘a’) x = sym (‘x’)

Así, por ejemplo, si se desea trabajar con una función:

35f x ax b= + + La función se puede crear definiendo primero las variables a, b y x, como simbólicas para poder definir luego la función f.

También se pueden definir variables complejas. Por ejemplo, si se quiere definir:

z x j y= + donde x e y son variables reales, entonces lo primero es declarar x e y como variables simbólicas reales con:

Con x, y, z definidas así se pueden realizar funciones con números complejos. Ejemplo

Page 40: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

40

Para quitar la restricción 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

Page 41: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

41

MATLAB tiene una herramienta para observar el comportamiento de una función. 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 continuación. Estas ventanas están numeradas como a, b y c (ó 1, 2 , 3) La figura c contiene cuatro espacios para dar datos de :

• Función f(x) • Función 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 función composición 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

( ) ( ) 1f x x y g x= = , pero estos valores pueden ser modificados por el usuario.

Page 42: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

42

Fig. 8. (a) Gráfica de la función f, (b) gráfica de la función g, (c) Ventana principal de funtool Ejemplo

Así, para las funciones:

( ) ( )

( ) 1 ( 1)

3

f x sen x

g x x

a

=

= +

=

Al presionar el botón f *g se obtienen las figuras 9 y 10 mostradas a continuación:

Page 43: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

43

Fig. 9. Gráfica de f(x)*g(x)

Fig. 10. Gráfica 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).

Page 44: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

44

Fig. 11. Pantalla de funtool El botón de Cycle permite usar distintas funciones que MATLAB tiene programadas para f y g. 6.11. Funciones Matemáticas Elementales. Algunas funciones matemáticas elementales se muestran en la tabla Nº 5

Tabla Nº 5. Algunas funciones matemáticas elementales

Los argumentos pueden ser, siempre que tenga sentido, reales o complejos, y el resultado se devuelve en el mismo tipo del argumento.

Page 45: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

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 tópicos sobre las que pedir ayuda.También 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 ficheros Se pueden utilizar ficheros para:

• Guardar el valor de todas o algunas de las variables definidas en una sesión

Page 46: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

46

• Agrupar un conjunto de sentencias que puedan utilizarse en cualquier momento • Almacenar todas las sentencias ejecutadas durante una sesión de trabajo • Definir nuevas funciones (Se verá más 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 número es un multiplicador, y los siguientes números de la segunda línea tienen el formato: [Año, mes, día, hora, minuto, segundo] Los números de la segunda línea se pueden mostrar en formato entero, de la siguiente manera:

Page 47: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

47

8. Ruta de búsqueda. El comando path, muestra la ruta de búsqueda vigente de MatLab. El comando ruta=path, devuelve una cadena llamada ruta que contienen la ruta.

9. Diario. Si se desea guardar en algún archivo las entradas por líneas de comando, la sentencia diary on guarda todo lo que se introduce por teclado, así como la mayor parte de lo que se envía a la pantalla, en un archivo llamado diary. La sentencia diary off termina la escritura.

Page 48: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

48

10. Formato para exhibición de números. En la tabla Nº 8, se muestran algunos comandos para la exhibición de números.

Tabla Nº 8. Algunos comandos para la exhibición de números.

Ejemplos

11. Caracteres especiales y operadores. En la tabla Nº 9, se muestran los caracteres y operadores más usuales de MatLab.

Page 49: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

49

Tabla Nº 9. Algunos caracteres aritméticos y operadores más usuales.

12. Operaciones básicas. Las operaciones básicas de suma, resta, multiplicación y división son muy simples de realizar en MatLab. Ejemplo.

Page 50: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

50

Número de cifras exactas. MatLab dispone de una función que permite visualizar el resultado de una operación con un determinado número de cifras exactas. El comando es el siguiente:

Ejemplo. Supóngase que se desea calcular 14 elevado a la 37 con 30 cifras exactas.

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

Tabla Nº 10. Algunas funciones para operar con números enteros

Estos son algunos de los muchos comandos que dispone MatLab. Dejamos a la inquietud de los lectores la búsqueda de otros comandos, que no se han explicado en estas notas.

Page 51: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

51

Ejemplo.

Page 52: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

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 Ingeniería 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 Ingeniería 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. Definición de vectores. Un vector fila de dimensión n (una matriz de dimensiones 1xn) se puede definir en MATLAB escribiendo sus componentes entre corchetes rectos [ ] y separándolos 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:

Page 53: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

53

Ejemplo.

Page 54: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

54

Ejemplo.

Ejemplo.

Determinar el vector transpuesto de: [1.5, 2.3,6,14.9,18.05]v =

Las componentes de un vector se designan mediante el número de su subíndice

Atención: En MATLAB, los subíndices de los vectores y matrices comienzan siempre por 1 También se puede acceder a un bloque de componentes de un vector, indicando los subíndices mínimo y máximo, o indicando un subconjunto de índices.

Page 55: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

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.

Page 56: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

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.

Page 57: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

57

13.4. Funciones específicas de vectores. Las funciones matemáticas elementales admiten vectores como argumentos y se interpretan componente a componente. Algunas funciones específicas para vectores son las que se muestran en la Tabla Nº 13:

Tabla Nº 13. Algunas funciones específicas para vectores.

Page 58: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

58

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

1

1

n pp

ipi

x x=

= ∑

La norma más conocida es la norma Euclidiana (p=2) que es la típica magnitud del vector x

12

2 2 2 21 22

1

n

i n

i

x x x x x=

= = + + + ∑

Para calcular en MATLAB la norma de un vector, se usa:

>>norm(x, p )

El valor predeterminado de p es 2.

Page 59: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

59

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

[3 -2 5 1 7]x =

13.6. Producto escalar y vectorial El producto escalar, también llamado producto “punto” de dos vectores v y w dados por

1 1

2 2

n n

v w

v wv w

v w

= =

es un escalar y está definido por

1 1 2 2 n nv w v w v w v w= + + +i

MATLAB lo calcula mediante >>dot (v,w)

Page 60: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

60

Ejemplo Hallar el producto escalar de los vectores

3.2 0.8

2.4 7.3

5.6 1.6

7.1 9.4

v w

− = = −

El producto escalar también 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 w

Aplicado 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

Page 61: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

61

5 13

3 6

8 35

a b

− = =

Mayor información se puede obtener en la ayuda, escribiendo dot y cross en la Búsqueda en Search 13.7 Funciones de matrices y vectores Se pueden calcular funciones de matrices y vectores. Así por ejemplo si [1.5,3, 5]x = − , 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 [1.5,3, 5]x = −

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

Page 62: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

62

11 12 1

21 22 2

1 2

( ) ( ) ( )

( ) ( ) ( )( )

( ) ( ) ( )

n

n

m m mn

f a f a f a

f a f a f af

f a f a f a

=

A

Si v es un vector, entonces

[ ]1 2( ) ( ) ( ) ( )nf f v f v f v=v

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

5 8

= −

D

Entonces

Un tipo especial de vector es el que se forma para evaluar una función en un intervalo dado, por ejemplo: evaluar una función f(x) en un intervalo [xi, xf]. Si el espaciamiento entre los puntos es lineal, se puede usar

x=linspace(a, b, n) Esta instrucción genera n valores igualmente espaciados entre a y b. Ejemplo

Para crear un vector similar se puede utilizar:

Page 63: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

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 logarítmico 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 simultáneas:

a x b y c

d x e y f

+ =

+ =

Dichas ecuaciones se pueden resolver mediante:

Page 64: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

64

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

a b c x

d e f y

= = =

A v w

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

2 2 5

2 6 2 0

2 6 2 0

2 8 0

a b

a b c

b c d

c d

− =

− + − =

− + − =

− + =

Dicho sistema se escribe en forma matricial como

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

Page 65: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

65

2 2 0 0 5

2 6 2 0 0

0 2 6 2 0

0 0 2 0 0

a

b

c

d

− − − = = = − −

A x b

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 instrucción

>>x = A \ b Aplicado al ejemplo anterior, se obtiene

13.9. Factorización LU La factorización 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 = L U

Page 66: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

66

Ejemplo Dada la matriz A factorizar LU.

0.1 0.5 2.2 6.8

4 2 7 9

12.5 11.7 12 8.6

3 4 6 9

A

− = −

− −

Si la matriz A forma parte de un sistema de ecuaciones dado por Ax=b, entonces la solución se puede obtener con

>>x = U \ (L \ b)

Supóngase que b = [2;3;-5;0], entonces para la matriz dada anteriormente:

Page 67: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

67

En la ventana rebúsqueda (Search) se puede encontrar más información sobre el tema LU. 13.10. Vectores propios y formas de Jordan Una operación muy utilizada en cálculos con matrices es la obtención de los vectores propios (o eigenvectors) y los valores propios (o autovalues). Estos vectores obedecen a la operación

A x = λ x Es decir, al multiplicar el vector por A, éste solo cambia de tamaño pero no de dirección. A x y λ se los llama eigenvector (autovector) y eigenvalue (autovalor) de la matriz A, respectivamente. Ejemplo Considérese la matriz A siguiente, obtener los autovalores (valores propios o ingenvalue) de A

1 2 3 4

1 4 9 16

3 1 0 5

4 7 3 8

A

= −

Si se desea obtener los vectores propios se usa la instrucción

Page 68: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

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 expresión

>> jordan (A) MATLAB devuelve la forma canónica de Jordan que cumple con

-1A = M J M

Donde 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:

Page 69: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

69

Page 70: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

70

13.11. Definición 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 línea. Ejemplo.

Las componentes de una matriz se designan mediante los números de sus subíndices. Un vector - fila de dimensión n es en realidad una matriz de dimensión 1xn. Un vector-columna de dimensión m es en realidad una matriz de dimensión mx1.

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

Page 71: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

71

Tabla Nº 14. Algunas operaciones con matrices.

Page 72: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

72

Las matrices pueden también utilizarse como argumento de las funciones intrínsecas. 13.13. Funciones específicas para matrices. Algunas funciones específicas para el manejo de matrices, son las que se muestran en la Tabla Nº 15:

Tabla Nº 15. Algunas funciones específicas para el manejo de matrices

Page 73: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

73

Obsérvese la diferencia de comportamiento de la función diag, en función de que el argumento de entrada sea una matriz o un vector.

Page 74: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

74

También 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.

Page 75: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

75

13.14 Matrices “sparse” (huecas). MATLAB dispone de un sistema especial de almacenamiento y manipulación de matrices huecas. La función

donde: i , j son vectores de subíndices, de la misma longitud c es un vector de la misma longitud que los anteriores n , m son números naturales, genera una matriz de dimensión n x m , cuyos únicos elementos no nulos son los de subíndice ( i(k) , j(k) ) , de valor c(k)

Page 76: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

76

Page 77: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

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: 4 33 5 2x x x+ + +

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

Page 78: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

78

Tabla Nº 17. Algunas sentencias para operar con polinomios.

Page 79: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

79

Page 80: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

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

Page 81: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

81

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

Page 82: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

82

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

Ejemplos.

Ingresar la matriz

1 4 2

7 3 11

5 9 6

A

− =

y calcular:

a) Determinante de A. b) Transpuesta de A. c) Inversa de A (si es posible).

d) Comprobar que 1*A A I− =

e) Traza de A.

f ) 2 5A y A

g) Autovalores de A

h) A

e

i) Polinomio característico ( )P λ .

Page 83: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

83

Page 84: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

84

Dadas las matrices

1 2 3 6 5 2

4 5 6 ; 0 7 3

7 8 9 11 15 4

A B

− = − = − −

, calcular:

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

Page 85: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

85

Page 86: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

86

Dada la matriz

1 3 5 14

2.5 0.6 3.1 6.25

4.2 8.45 7.43 15.12

6.98 7 0 11.65

A

− − = − − −

, calcular los autovalores y los

autovectores.

Page 87: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

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

Page 88: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

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.

Page 89: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

89

Ejemplo. Una aplicación importante del álgebra lineal, es la solución de ecuaciones algebraicas lineales. Para considerar este caso se planteará otro ejemplo algebraico.

Dado el sistema lineal

3 2.5 6.3 4 9

2 3 7.35 7

0.24 0.33 11 5

18 14 7.89 1.23 0.86

x y z w

x y z w

x y z w

x y z w

+ + =− + − =

= + − + =

, resolverlo en forma

matricial.

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 más 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.

Page 90: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

90

Tabla Nº 23. Algunas funciones adicionales para el manejo de vectores.

Ejemplo de aplicación sobre la tabla precedente. Dados los vectores [ ] [ ]1 21 2 5 , 7 4 9v v= − = − − , obtener las funciones de la tabla

anterior.

Page 91: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

91

13.20 Funciones adicionales sobre polinomios. La necesidad de utilizar polinomios es muy frecuente en Ingeniería y en Ciencias Básicas tanto en ecuaciones diferenciales, funciones de transferencia, modelos de estado, aproximación polinómica de datos experimentales (por ejemplo método de cuadrados mínimos), 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 básicas, para el manejo de los polinomios.

Tabla Nº 24. Algunas funciones adicionales básicas para el manejo de polinomios.

Page 92: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

92

Ejemplo.

Dados los polinomios 5 4 2( ) 3.5 6.25 5 7.25P x x x x x= + − + + y

9 7 4 2( ) 13.5 8.5 2.8 10 3Q x x x x x x= + − + − +

Se 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 integración. f) Hallar las raíces de P y Q. g) Hallar la descomposición en fracciones simples de P(x)/Q(x).

Page 93: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

93

Page 94: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

94

13.21 Ajuste de curvas. 13.21.1 Ajuste mediante polinomios. En muchas aplicaciones de ingeniería y ciencias es necesario describir un conjunto de datos de mediciones en forma analítica mediante un polinomio. La expresión de los datos de esta manera permite predecir resultados o simplemente describir el experimento mediante una ecuación matemática. 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 medición experimental.

En primer lugar se graficarán los puntos de medición mediante un asterisco. Para ello se emplean los comandos:

En la figura 12, se muestra la gráfica de puntos de la s mediciones. En el gráfico se han cambiado las escalas de los ejes x, y en el menú Edit→Axis Properties de -1 a 7 .El símbolo ‘*k ’ indica que los puntos se grafican con asteriscos.

Page 95: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

95

Fig. 12. Gráfica 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:

3 2( ) 0.1472 0.7726 0.7770 0.0429p x x x x= − + + −

Ahora se graficarán simultáneamente el polinomio p(x) con los puntos de las mediciones, para ello se emplea.

Page 96: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

96

Así, se obtiene el gráfico de la figura 13, que se muestra a continuación

Fig. 13. Polinomio aproximador de grado 3.

En el gráfico de la figura 13 se puede ver que el polinomio de grado 3 es una aproximación pobre, ya que en algunos puntos la diferencia entre la medición y la aproximación analítica puede ser considerable. Si se cambia a un polinomio de gado 5, se obtiene:

En la figura 14 se muestra la aproximación, mediante un polinomio de quinto grado.

Page 97: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

97

Fig. 14. Polinomio aproximador de grado cinco 13.21.2 Ajuste mediante splines cúbicos. Un spline proporciona otra manera de ajustar una curva a un conjuntote datos. El spline es una función formada por varios polinomios de tercer grado, con la condición que el spline es diferenciable en todo punto. El spline es exacto en los puntos de medición. La sintaxis es:

y =spline (entrada x, entrada y ,x)

Donde: entrada x y entrada y son las coordenadas de los puntos de medición y x es un vector de puntos por donde se desea que el spline y tomara los valores del vector y.

Ejemplo

Page 98: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

98

MATLAB devuelve el gráfico mostrado en la figura 15.

Fig. 15. Ajuste mediante splines cúbicos. 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 medición. 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 se

Page 99: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

99

deben graficar los puntos correspondientes a los datos, como se hizo anteriormente y que se muestra a continuación, figura 16, para mejor comprensión.

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.

Page 100: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

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 automáticamente el polinomio de quinto grado y la aproximación por splines, que por otra parte son idénticas a las obtenidas anteriormente. Además se puede mostrar las ecuaciones de los polinomios al marcar el espacio Show equations. Adicionalmente se puede ver el error de cada aproximación marcando el espacio de Plot residuals que dispone de la opción para representarlos con una gráfica de barras (bar plot), con puntos (scatter plot), o con líneas (line plot). Ver figuras 18 y19

Page 101: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

101

Fig.18. Interpolación por spline con error en forma de barras (bar plot).

Fig.19. Interpolación por spline con error en forma lineal (linear plot)

Page 102: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

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 evaluación en algunos puntos. 13.22 Otras funciones disponibles en MATLAB MATLAB dispone de otras funciones que sirven para evaluar funciones, como así también para medir el tiempo de ejecución. 13.22.1 Instrucciones evalevalevaleval y fefefefevavavaval Para evaluar una función se puede emplear el comando eval

Ejemplo

Page 103: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

103

El comando eval requiere que la función a evaluar esté entre tildes como si fuera una cadena de caracteres, además debe estar definida por MATLAB o haberse definido previamente por el usuario. Otro comando útil es feval, que permite evaluar una función 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 cálculos durante la ejecución de programas escritos usando MATLAB. Las opciones de pause son las siguientes:

Page 104: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

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 fila que contiene los datos y fs es la frecuencia de muestreo con que se grabó el archivo wav. El comando sound reproduce un archivo wav con una frecuencia de muestreo especificada. La sintaxis es: >> sound (y, fs) El archivo wav se reproduce a través de la placa de sonido de la PC. El disco compacto que contiene el archivo musica.wav se puede escuchar si se tienen los datos de la frecuencia de muestreo con el que se grabó el disco compacto. Así por ejemplo >>fs = 26000 >>[y, fs]=wavread(musica) >>sound (y, fs) De esta manera se podrá escuchar el archivo musica.wav

Page 105: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

105

14. Funciones escalares. MatLab permite definir y operar funciones escalares de una manera simple, solo hay que adaptarse a la sintaxis del programa. Para tal fin, MatLab contiene una serie de funciones predefinidas, y además permite que el usuario defina sus propias funciones. Algunas de las funciones predefinidas, se indican en la tabla Nº 25 , a continuación.

Tabla Nº 25. Algunas funciones escalares predefinidas.

Por supuesto que MatLab cuenta con muchas funciones adicionales que no se indicaron en la taba precedente. Queda para el lector la búsqueda e investigación de dichas funciones. Ejemplo.

Definir las funciones ( ) , ( ) , ( ) xf x sen x g x tg x h x e= = = , en el intervalo [0,15].

El ejemplo anterior muestra como ingresar funciones en MatLab. Si se trabaja en forma numérica, se debe indicar los valores que toma la variable independiente. En el ejemplo x varia entre 0 y 15 en pasos de 0.01. Si no se indica el valor de x, MatLab devuelve una frase que dice “No se conoce la variable o función”.

Page 106: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

106

Comandos adicionales. Algunos (no todos) comandos adicionales, con relación a la operatoria de funciones escalares, son los que se muestran en la Tabla Nº 26.

Tabla Nº 26. Algunos comandos adicionales para la operatoria con funciones escalares.

Ejemplo.

Dada la función escalar ( ) 2.5 4 xf x sen x e

−= + . Definirla con la variable dada en forma simbólica, y calcular la imagen de 5.25.

Page 107: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

107

15. Operaciones de Cálculo comunes MATLAB permite realizar las operaciones de cálculos más comunes, como ser

Evaluación de límites Derivadas Integrales Resolución de ecuaciones diferenciales Series Etc.

Estas operaciones se pueden realizar en forma numérica o simbólica. 15.1 Límites La evaluación de límites es de primordial interés en cálculo. MATLAB nos proporciona el comando limit para este fin. La sintaxis para calcular el límite de una función f(x) cuando x tiende a xo

limit (f, x, xo)

que indica:

0

lim ( )x x

f x→

Ejemplo

Calcular el límite de 3( )f x x= , cuando 2x →

Ejemplo

Calcular el límite de 2( ) 1f x x x j= + →

Page 108: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

108

Ejemplo

Calcular el límite de 2( ) 1f x x x−= + → ∞

Para calcular “límites laterales” se utilizan las instrucciones siguientes:

De Cálculo, se sabe que una función ( )f x es continua en un punto a si los límites laterales son iguales. Ejemplo Considérese la función ( ) tan 2f x x en x π= = . Evaluando los límites laterales se

podrá saber si dicha función es continua en 2x π= . Se procede a calcular dichos límites:

Como los límites laterales no son iguales, concluimos que la función

( ) tan 2f x x en x π= = es discontinua en dicho punto.

Page 109: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

109

Los límites se pueden anidar, es decir, se pede calcular el límite de un límite Ejemplo

Calcular el límite de: 2

3 2

lim [lim ( , ) 3 8 ]x y

f x y x x y→ →

= +

En la pestaña de Búsqueda (Search) se puede obtener mayor información sobre límites (Limits) 15.2 Límites de sucesiones MATLAB puede calcular el límite de sucesiones. Considérese la sucesión:

2

1n

n

na

n

+=

Para calcular, por ejemplo, el límite de la sucesión cuando n → ∞ , es decir:

2

1lim lim n

nnn

na

n→∞→∞

+=

15.3 Continuidad Se sabe que una función ( )f x se dice continua en el punto x a= si se cumple que:

lim ( ) ( )x a

f x f a→

=

Page 110: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

110

Si esto no se cumple se dice que la función es discontinua. Si el límite existe pero es distinto de ( )f a entonces se dice que ( )f x tiene una discontinuidad evitable en x a= .

Considérese las funciones:

1( ) , ( )

sen xf x g x sen

x x

= =

El límite de ( )f x cuando x a→ se obtiene mediante

Cuando se quiera calcular el límite para 0x → , se obtiene

Para la función ( )g x cuando x a→

Pero para 0x →

Page 111: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

111

La devolución de MATLAB indica que el límite está en el intervalo [-1,1]. Si calculamos los límites laterales a derecha e izquierda se obtiene:

Esto comprueba que la función no es continua en 0x =

Si se considera una función de dos variables ( , )f x y , dada por ejemplo por:

Si se quiere calcular el límite cuando se tiende al punto ( )0 0,x y , se debe recordar que si el

límite en el punto ( )0 0,x y , tiene el mismo valor, independientemente de la forma como se

llegue a dicho punto, entonces el límite existe Ejemplo

Sea la función de dos variable 2 2

( , )x y

f x yx y

=+

y se desea calcular el límite al tender

al origen En la función dada, se puede tender al origen de muchas maneras, entre ellas las dos maneras siguientes:

Page 112: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

112

Como los dos límites son iguales, entonces el límite al acercarse al origen existe y es igual a cero. Una manera muy útil es calcular el límite llegando desde cualquier dirección. Así , si se desea tender al punto ( 0, 0 ) por medio de líneas rectas, se puede usar la ecuación de la familia de rectas que pasan por el origen dada por

y m x=

Donde m es la pendiente de las rectas. De esta manera la función ( , )f x y se convierte en:

2

2( , )

mxf x y

x mx=

+

De esta manera, el límite se calcula con solo hacer tender 0x →

También se puede tender al punto (0, 0 ) utilizando cualquier otra familia de curvas, por ejemplo la familia de parábolas:

2y m x=

Con lo que la función de dos variables se convierte en:

Page 113: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

113

1 2 3 2

2 2 2( , )

xy m xf x y

x y x mx= =

+ +

El límite es

Como se puede ver el cálculo de los límites coinciden, independientemente de la familia de curvas con las cuales se tiende al punto (0,0). 15.4. Derivación Como se ha mencionado oportunamente, MATLAB realiza cálculos en forma numérica y simbólica. Muchas veces no interesa el resultado numérico sino el resultado algebraico de haber realizado la operación matemática de derivación. Así por ejemplo, la derivada de

3( )f x x= , sabemos que es:23df dx x=

Para realizar esta operación con MATLAB es necesario definir la variable x como variable

simbólica. Para definir x como una variable simbólica, se escribe (' ')x syms x= o bien se puede escribir x syms x= , con lo cual MATLAB considera desde este momento a la

variable x como simbólica y no la evalúa numéricamente. Veamos como se realiza la derivada con MATLAB

La operación derivada es diff ( f ). Para calcular la derivada segunda y tercera se procede de la siguiente manera:

Page 114: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

114

Si se tiene el caso de una función de dos variables como la siguiente: 4 2( , ) 3g x y x y=

y, se desea realizar en primer lugar la derivada respecto de x , y luego con respecto a y .Para eso se tienen que definir las variables ,x y como simbólicas .

En general, en caso de existir dos variables simbólicas la derivada se realiza con respecto a las “últimas letras” del alfabeto, como son w, x, y, z, a menos que se indique lo contrario. Así

para la función 2( ) 3q x a x= , se tiene

Como se puede ver, MATLAB realizó la derivada con respecto de x Veamos otro ejemplo

( ) nf z z=

Page 115: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

115

Para calcular la derivada con respecto a z , se efectúa:

Si se desea derivar con respecto a n , es necesario explicitar a MATLAB que se debe derivar con respecto a n .

Siempre conviene, en caso de duda, explicitar claramente con respecto a que variable se desea realizar la derivada. Ejemplo

Sea la función ( , ) ( )f x y sen xy=

En este ejemplo, se ve que las variables simbólicas están ordenadas alfabéticamente, de manera que MATLAB al calcular f3 lo hace derivando respecto de x .(que está antes que y en el alfabeto).

Page 116: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

116

Nota: Téngase presente que las derivadas de funciones de dos o más variables con respecto a ellas son derivadas parciales, es decir:

( , ) ( , )f f

diff f x y diff f yx y

∂ ∂= =

∂ ∂

15.5. Integración La operación de integración “indefinida” está dada en MATLAB por:

int( ) ( )F f f x dx= → ∫

Donde la nueva función F satisface a:

( )diff F f= MATLAB devolverá F siempre que exista. Para una función de dos variables ( , )f x y se debe indicar explícitamente con respecto a qué variable vamos a integrar, es decir

int( , )f y Esto indica que MATLAB realizará la integración con respecto a y . Para resolver integrales definidas, tales como:

( ) , ( )

b b

a a

f x dx f v dv∫ ∫

MATLAB utiliza

int( , , ) , int( , , , )f a b f v a b

Ejemplo

Calcular cos( )x dx∫

Page 117: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

117

Ejemplo

Evaluar

1

0

5x dx∫

MATLAB permite calcular integrales impropias , siempre y cuando éstas converjan. Ejemplo

Calcular la integral impropia

2

0

(2 )xe sen xdx

x

∞ −

∫ , mediante MATLAB

Este resultado indica que la integral converge. Para el caso de integrales impropias en las cuales hay puntos singulares como por

Page 118: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

118

El comando int sólo integra funciones simbólicas, y por lo tanto es necesario tener instalado el paquete de matemática simbólica (Symbolic Math Toolbox). Para obtener información adicional se deberá consultar en la pestaña de Búsqueda (Search) escribiendo int en la sección de Symbolic Math Toolbox.

15.6 Series MATLAB Permite evaluar series de la forma:

( )b

n a

f n=∑

Para ello se emplea el comando symsum. El formato de dicho comando es:

symsum(f,n,a,b) Donde f es la función, n es la variable, a es el límite inferior y b es el límite superior. Ejemplo

Evaluar la serie de potencias 0

n

n

x∞

=∑

Ejemplo

Evaluar la serie

2

0

11

n

n n

−∞

=

+

Page 119: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

119

15.7. Ecuaciones diferenciales. MATLAB permite resolver ecuaciones diferenciales. Cuando se describe una ecuación diferencial en MATLAB, se emplea la notación siguiente:

2 2

/

2 /

/n n

Dy dy dt

D y d y dt

Dny d y dt

=

=

=

Así, para la ecuación diferencial

22

21 2 1 ^ 2

d yy D y y

dt= + ⇒ = +

Las ecuaciones diferenciales se resuelven con el comando dsolve. Ejemplo

Resolver la ecuación diferencial: 2

2

( )( ) 4

d y ty t

dt+ =

En la solución anterior C1 y C2 son constantes. Si se tienen las condiciones iniciales,

(0)(0) 1, 0

dyy

dt= =

se indican dentro de dsolve, después de la ecuación diferencial, como se muestra a continuación

Page 120: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

120

Como se puede ver MATLAB utilizó las condiciones iniciales para calcular las constantes. Obsérvese que MATLAB consideró como variable dependiente a t. Si se desea que x sea la variable dependiente, entonces se debe realizar este cambio en MATLAB, de la siguiente manera:

Ejemplo Resolver mediante MatLab la siguiente ecuación diferencial

2

2

( ) ( )( )

d y t dy ta by t c

dtdt+ + =

El comando dsolve nos da la solución

Esta solución se puede escribir en forma más fácil de leer con el comando pretty:

Page 121: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

121

Ejemplo Sea el sistema de ecuaciones diferenciales:

( )5 ( ) 8 ( )

, (0) 1; (0) 2( )

4 ( ) 9 ( )

dx tx t y t

dtx y

dy tx t y t

dt

= +

= = = − +

Con el comando dsolve se resuelve este sistema:

Otro método para resolver ecuaciones diferenciales es mediante la separación de variables. Así en la ecuación diferencial:

2 2(1 ) 0y senx dx y dy− + =

La ecuación diferencial se puede escribir como:

2

2

(1 )ysenx dx dy

y

+=

Page 122: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

122

El método, consiste en integrar ambos miembros por separado, y luego resolver la igualdad resultante. Para el ejemplo se tendrá:

Una ecuación diferencial muy interesante es la ecuación diferencial homogénea de orden n

1 2

1 2 1 01 20

n n

n nn n

d y d y d y dya a a a a y

dtdt dt dt

− −+ + + + + =

El polinomio característico de esta ecuación diferencial es:

1 21 2 1 0

n nn na x a x a x a x a

−−+ + + + +

Su ecuación característica es:

1 21 2 1 0 0n n

n na x a x a x a x a−

−+ + + + + =

Page 123: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

123

Si las raíces de la ecuación característica son 1 2, , , nr r r… , entonces la solución de la

ecuación diferencial está dada por:

11 21 2 1( ) n nr t r tr t r t

n ny t C e C e C e C e−−= + + + +

Donde 1 2, , , nC C C… , son constantes que se determinan conociendo las condiciones

iniciales. Ejemplo Resolver mediante MATLAB la ecuación diferencial homogénea:

2

2

( ) ( )7 10 0

d y t dy t

dtdt+ + =

Si se conocen las condiciones iniciales, se pueden calcular los coeficientes C1 y C2, empleando el comando solve.

Page 124: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

124

Aparte del comando dsolve MATLAB proporciona otros comandos para resolver ecuaciones diferenciales. Dos de ellos son:

La sintaxis de estas funciones es: [t, y] = ode23 (f, [t_ inicial, t_ final], yo) [t, y] = ode45 (f, [t_ inicial, t_ final], yo) Donde f es una cadena de texto, que indica dónde está definida la ecuación diferencial, t_ inicial y t_ final son los tiempos inicial y final para la simulación e yo es la condición inicial. Ejemplo Resolver mediante MATLAB, empleando ode23 y ode45 , la siguiente ecuación diferencial

4

:[0,1] , . . (0) 2

dyy t

dt

Intervalo C I y

=

= =

MATLAB devuelve el gráfico mostrado en la figura 21.

Page 125: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

125

Fig. 21. Gráfico de la solución de la ODE del ejemplo, según ode23. Empleando el comando ode45, se tiene lo siguiente:

MATLAB devuelve el gráfico que se muestra en la figura 22.

Page 126: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

126

Fig. 22. Gráfico de la solución de la ODE del ejemplo, según ode45.

Page 127: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

127

16 GRÁFICAS En este apartado se verá el potencial de MATLAB para graficar funciones y datos. Las características y opciones de graficado son muy variadas en MATLAB. Se tiene la posibilidad de generar gráficas en 2D y 3D hasta la posibilidad de cambiar las propiedades de ellas. 16.1 Representación gráfica de funciones definidas por una fórmula. Los comandos que se presentan en este apartado son funciones MATLAB,”fáciles de usar” (easy-to-use) para representar gráficamente, de forma rápida funciones definidas por una expresión matemática. Tienen solo un pequeño número de parámetros que se pueden especificar. Todas ellas hacen uso de otras funciones MATLAB que disponen de un número superior de opciones y parámetros que podemos modificar. Cuando se necesite hacer uso de gráficas de funciones que no vienen definidas por una fórmula (definidas a trozos, definidas a través de programas o por sus valores en un número de puntos,…) habrá que recurrir a dichas funciones más generales. 16.2 Curvas planas. El comando más fácil de usar de que dispone MATLAB para dibujar curvas planas definidas por una fórmula matemática (no por un conjunto de valores) es el comando ezplot, que puede ser usado de varias formas.

Ejemplo.

En la figura 23 se muestra la gráfica de la función.

Fig.23. Gráfica obtenida según ezplot.

Page 128: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

128

Ejemplo.

En la figura 24 se muestra la gráfica obtenida.

Fig.24. Gráfica obtenida según ezplot.

En la figura 25, se muestra la gráfica obtenida

Page 129: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

129

Fig. 25. Gráfica obtenida con el comando ezplot.

En la figura 26, se muestra el gráfico obtenido con ezplot.

Fig.26. Otro gráfico obtenido con ezplot.

Page 130: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

130

En la figura 27 se muestra el gráfico obtenido con ezpolar.

Fig.27. Gráfico obtenido con ezpolar 16.3 Curvas en el espacio Para dibujar curvas en el espacio tridimensional, MATLAB dispone del comando ezplot3:

En la figura 28 , se muestra la curva obtenida con ezplot3.

Page 131: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

131

Fig. 28. Curva obtenida con la instrucción ezplot3. 16.4 Superficies.

En la figura 29 se muestra la gráfica obtenida con la instrucción ezmesh.

Page 132: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

132

Fig. 29. Gráfica obtenida con la instrucción ezmesh.

En la figura 30 se muestra otra gráfica obtenida mediante ezmesh.

Page 133: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

133

Fig. 30. Otra gráfica obtenida mediante ezmesh.

En la figura 31 se muestra la gráfica obtenida.

Fig. 31. Otra gráfica obtenida con ezmesh.

Page 134: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

134

En la figura 32, se muestra la gráfica obtenida.

Fig. 32. Gráfica obtenida con ezcontour.

En la figura 33 se muestra la gráfica obtenida.

Fig. 33. gráfica obtenida con ezcontourf

Page 135: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

135

En la figura 34 se muestra la gráfica obtenida.

Fig. 34. Gráfica obtenida con ezmeshc.

En la figura 36 se muestra la gráfica obtenida.

Page 136: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

136

Fig. 36. Gráfica obtenida con ezsurf.

En la figura 37 se muestra la gráfica obtenida.

Fig. 37. Gráfica obtenida mediante ezsurfc.

Page 137: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

137

17 LA VENTANA GRÁFICA DE MATLAB En la figura 38 se muestra la pantalla que corresponde a la ventana gráfica de MATLAB

Fig. 38. Ventana Gráfica de MATLAB. 17.1 Algunos comandos gráficos auxiliares. Vamos a ver algunos comandos que modifican el aspecto de un gráfico. Veremos su efecto sobre la gráfica. En estas notas no se exponen todas las posibilidades de estos comandos. Utilizando el help de MATLAB, se pueden ver el resto de las opciones. Se utilizará como base el gráfico de la figura 39, sobre el cuál se mostrarán los comandos auxiliares.

Page 138: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

138

Fig. 39. Gráfico de referencia, sobre el cual se realizarán diferentes demostraciones. En la figura 40 se muestra la gráfica con y sin grilla.

Page 139: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

139

Fig. 40. Gráfica con y sin grilla. En la figura 41 se muestra la gráfica con etiquetas en los ejes y título

Fig. 41. Gráfica con etiquetas y título.

En la figura 42 , se muestra la gráfica la gráfica sin los ejes y con diferentes factores de escala.

Page 140: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

140

Fig. 42. Gráfica sin ejes y con diferentes factores de escala.

En la figura 43, se muestra la gráfica con diferente punto de observación y varios colores alternativos

Page 141: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

141

Fig. 43. Gráfica con diferente punto de observación y colores alternativos.

Page 142: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

142

En la tabla Nº 27 , se muestran algunos comandos accesorios para trabajar con las ventanas gráficas

Tabla Nº 27. Comandos accesorios para trabajar con las ventanas gráficas.

En la figura 44 se muestra el comando subplot

Fig. 44. Comando subplot.

Page 143: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

143

18. Resumen de los comandos básicos de dibujo 2D y 3D Veremos aquí un resuman de los comandos más completos de que dispone MATLAB para dibujar curvas planas y en el espacio, superficies, líneas de nivel, etc. En la figura 45 se muestra el comando plot .

Fig. 45. Comando plot (x, y)

En la figura 46 se muestra el comando plot para graficar varias curvas simultáneamente.

Fig. 46. Comando plot para graficar varias curvas simultáneamente.

Page 144: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

144

El comando plot asigna, por defecto, determinados colores a las gráficas. Estos colores, así como el tipo de línea a utilizar para dibujar (continua, de puntos, con marcadores, etc.) se pueden modificar, como se muestra en la figura 47.

Fig. 47. Comando plot con asignación de un parámetro.

En la figura 48 se muestra el comando plot para dibujar una curva tridimensional.

Fig. 48. Comando plot para graficar una curva tridimensional.

En la figura 49, se muestra el comando mesh en alguna de sus variantes.

Page 145: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

145

Fig. 49. Comando mesh y algunas de sus variantes.

En la figura 50 se muestra el comando surf en alguna de sus variantes.

Fig. 50. Comando surf con algunas de sus variantes.

En la figura 51 se muestra el resultado de usar el comando contour y algunas de sus combinaciones

Page 146: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

146

Fig. 51. Comando contour y algunas de sus variantes.

En la Tabla Nº 28 se muestran algunas posibilidades para colorear los gráficos o mapas.

Tabla Nº 28. Colormap y algunas de sus posibilidades.

Page 147: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

147

Ejemplos

Fig. 52. Ejemplos del uso de Colormap (m)

Page 148: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

148

EJEMPLOS. Ej.1) Sea el conjunto de puntos (x, y), dados en el cuadro de valores siguiente:

En la ventana de gráficos, se obtiene la gráfica mostrada en la figura 53:

Fig. 53. Gráfica de la curva definida por un conjunto de puntos.

Ej.2) Sea la función escalar: 0.5( ) 3 cos(6 2)xf x e x

−= +

En la pantalla gráfica de la figura 54 se muestra el dibujo, correspondiente a la función analítica dada..

Page 149: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

149

Fig. 54. Gráfica de la curva analítica del ejemplo.

Ej.3)

En la figura 55 se muestra la gráfica obtenida

Fig. 55. Gráfica de la función con línea de puntos.

Page 150: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

150

Ej.4a) Mostrar en el mismo gráfico, con ejes comunes, las siguientes funciones:

( ) 5 , ( ) cos(4 3), ( ) 2 cos3f x sen x g x x h x sen x x= = + = + , en el intervalo [0,10].

Se obtiene la figura 56 mostrada a continuación.

Fig. 56 Gráfica de varias funciones con ejes comunes.

Ej. 4b) Ídem anterior pero con selección de escala.

El gráfico obtenido, es el que se muestra en la figura 57.

Fig. 57. Gráfico con selección de escalas

Page 151: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

151

Ej. 5)

Graficar la función 2 3( ) 3 4.5x xf x e e

− −= − , en el intervalo [0,1], empleando el comando ezplot

El gráfico obtenido se muestra en la figura 58 .

Fig. 58. Gráfico de la función obtenido con el comando ezplot

Ej.6.)

Graficar las funciones 0.2( ) 2 , ( ) 1.5 cos ( 5)xf x e sen x y g x sen x x= = + + .

En la figura 59, mostrada a continuación, se puede ver el gráfico obtenido.

Page 152: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

152

Fig. 59. Gráfico de las funciones f(x), g(x) y f(x)+g(x), con distintos tipos de líneas. Ej.7.-)

Dada la función 3cos( 5)( ) x

f x e− += , definirla en forma simbólica y graficarla en el intervalo

[-10,10].

Mediante los comandos indicados más arriba se obtiene el gráfico mostrado en la figura 60.

Page 153: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

153

Fig. 60. Gráfico de la función con el comando ezplot.

MatLab cuenta con varios comandos (aparte de los ya vistos) que son importantes para el manejo de gráficos, algunos de los cuales se muestran en la Tabla Nº 29.

Tabla Nº 29. Algunos comandos auxiliares para el manejo de gráficos

Ejemplo.

Dada la función 3cos( 5)( ) x

f x e− += , definirla en forma simbólica y graficarla en el intervalo

[-3,3]. Para ello se puede modificar los comandos de la siguiente manera:

Page 154: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

154

En la figura 61 se muestra la gráfica obtenida.

Fig. 62. Gráfica de la función con escalas distintas

Fig. 63. Gráfica de la función con escalas iguales.

En muchas aplicaciones es necesario visualizar varios gráficos simultáneamente pero no superpuestos. Para ello MatLab dispone de una función que permite dividir la ventana gráfica en “n x m” subventanas, y coloca el gráfico en la ventana j-ésima. La sintaxis es:

Page 155: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

155

Ejemplo. Visualizar simultáneamente, pero no superpuestas, las gráficas de las siguientes funciones.

20.03 (3 2)( ) cos3 ; ( ) 5 ; ( ) ; ( )x sen xf x x g x sen x h x e k x e

− += = = =

Se obtienen los gráficos mostrados en la figura 64.

Fig. 64. Varios gráficos en ventanas individuales.

Page 156: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

156

en muchas aplicaciones de ingeniería y ciencias se facilita la interpretación y el trabajo con gráficos, si los mismos se representan en escalas semilogarítmicas y doble logarítmicas. Las funciones de MatLab que permiten lograr tales gráficos son las indicadas en la Tabla Nº 30.

Tabla Nº 30. Comandos de MATLAB para gráficos semilog y log/log.

Ejemplo.

Sea la función :20.3( ) x

f x e−= : representar la gráfica en escalas logarítmicas en combinación

con la operación subplot.

En la figura 65 se muestran los gráficos obtenidos en ventanas individuales.

Page 157: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

157

Fig. 65. Gráficos obtenidos con el comando subplot. Ejemplo.

Dada la curva definida en forma paramétrica mediante:( ) 3cos cos3

( ) 2 2

x t t t

y t sent sen t

= −

= −, con el

intervalo de validez : 0 12t≤ ≤ .

Se obtiene la salida gráfica, mostrada en la figura 66..

Page 158: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

158

Fig. 66. Gráfica de la función del ejemplo.

Ejemplo:

Se obtiene el gráfico mostrado en la figura 67.

Fig. 67. Gráfico polar.

Page 159: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

159

Ejemplo.

En la figura 68 se muestra el gráfico polar obtenido.

Fig. 68. Gráfico polar del ejemplo. Ejemplo: Aplicación a la Ingeniería de Comunicaciones. Modulación de amplitud y frecuencia Las expresiones matemáticas que modelan estos tipos de modulaciones son:

FM

Modulación en amplitud: ( ) ( cos )cos

Modulación en frecuencia: e ( ) cos( ( ))

AM p m m p

p pt

e t E E t t

t E f t

ω ω

ω

= +

= +

Donde:

Page 160: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

160

m

p

: amplitud de la portadora

: amplitud de la modulante

: pulsación de la modulante

: pulsación de la portadora

f(t): señal modulante en frecuencia

p

m

E

E

ω

ω

Para la señal modulada en amplitud, se considerarán modulaciones de 0%, 50%, 100% y 150% (sobre modulación).

En la figura 69 se muestran los gráficos obtenidos , para las modulaciones en amplitud.

Page 161: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

161

Fig. 69. Gráficos de las modulaciones en amplitud. Para la señal modulada en frecuencia, se emplea la expresión que describe tal tipo de modulación, como se describió al principio. Con el fin de obtener algunos gráficos ilustrativos, se considerarán cuatro señales modulantes, lineal, cuadrática, senoidal y exponencial. A continuación se muestra el conjunto de instrucciones requeridas para realizar los gráficos.

Page 162: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

162

En la figura 70 se muestran los gráficos obtenidos para las modulaciones en frecuencia.

Page 163: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

163

Fig. 70. Gráficos de la modulación en frecuencia.

Ejemplo.

Aplicación a la Ingeniería de Sistemas Dinámicos Lineales (Teoría de Control) Consideremos un sistema lineal de una entrada y una salida(SISO), cuyo modelo es:

El objetivo es graficar la respuesta a una señal de entrada escalón unitario, y la respuesta en frecuencia del sistema. Para ello es conveniente determinar la función transferencia del sistema de control:

3 2

( ) 5

( ) 4 1.8 5

Y s

U s s s s=

+ + +

Page 164: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

164

La salida en función del tiempo se muestra en el gráfico de la figura 71:

Fig. 71. Respuesta temporal del sistema de control del ejemplo.

La respuesta en frecuencia se suele expresar como un diagrama de Bode (Amplitud y fase) en un gráfico semilogarítmico.

Fig. 72. Respuesta en frecuencia del sistema de control del ejemplo.

Page 165: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

165

19 Otros tipos de gráficas 19.1 Gráfica de barras Este tipo de gráficas se obtiene con el comando bar (x, y, s) Donde y es un vector de valores de las coordenadas x, y s son las opciones de la gráfica. Así, por ejemplo, para graficar 51 puntos de -20 a +20, se usa:

MATLAB devuelve el gráfico de barras mostrado en la figura 73.

Fig. 73. Gráfico de barras.

Page 166: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

166

19.2 Gráfica de escalera. La misma función se puede graficar en forma de escalera mediante el comando

stairs (x, y, ‘s’)

MATLAB devuelve el gráfico mostrado en la figura 74.

Fig. 75. Gráfico tipo escalera.

Page 167: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

167

19.3 Gráfica de histograma La gráfica de histograma es similar a la gráfica de barras, pero sólo proporciona 10 barras entre el máximo y un mínimo del vector y . El comando es

hist (y, n) Donde y es la variable que se desea graficar y n es el número de barras de la gráfica.

MATLAB devuelve la gráfica mostrada en la figura 76.

Fig. 76. Gráfica tipo histograma.

Page 168: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

168

19.4 Gráfica de puntos (stem) Se refiere a una gráfica de puntos cuyo comando en MATLAB es:

stem(x, y, ‘s’)

Ejemplo Representar en una gráfica de puntos la secuencia aleatoria (random) de 60 puntos a ambos lados del eje de abscisas

MATLAB devuelve la gráfica mostrada en la figura 77:

Fig. 77. Gráfica de puntos (stem)

Page 169: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

169

19.5 Gráfica de brújula o circular (Compass) Está gráfica muestra la magnitud y argumento de números complejos. El comando es compass (z) = compass (x+jy) = compass (x,y) Donde el número complejo es: z x j y= +

Ejemplo Representar en un gráfico circular o de brújula, el vector dado por:

[3 2.5 , 5 3 ,8 10 , 5 6 ]z j j j j= + − + − − −

MATLAB devuelve el gráfico mostrado en la figura 78:

Fig. 78. Gráfico circular (compass).

Page 170: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

170

19.6 Gráfica de torta (pie) La gráfica de torta (pie) es una gráfica para mostrar que porcentaje de cada elemento en un vector o matriz contribuye a la suma de todos los elementos. Así los comandos

Ejemplo Obtener la gráfica de torta del vector:

[2.5,3.8,6,7.9, 4.1]=B

MATLAB devuelve el gráfico de tortas mostrado en la figura 79.

Fig. 79. Gráfico de torta (pie)

Page 171: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

171

20 PROGRAMACIÓN EN MATLAB MATLAB proporciona un lenguaje de programación muy poderoso con un ambiente computacional interactivo. Una ventaja muy importante que tiene la programación en MATLAB cuando se compara con otros lenguajes de programación, es que MATLAB no requiere la declaración de las variables y sus tipos al principio del programa, ya que las mismas se definen automáticamente cuando se usan por primera vez. A los archivos que contienen códigos de MATLAB se los llama archivos-M (M-files) y tienen la extensión .m. Existen dos tipos de archivos-M, que son los Scripts y Funciones. Los Scripts no aceptan datos de entrada o producen datos de salida. Usan datos de variables que se han usado con anterioridad en la sesión de MATLAB. Las funciones pueden aceptar datos o argumentos de entrada y regresan también datos de salida. Las variables internas de una función son variables locales. Para ver el contenido de un archivo-M se utiliza el comando type. Así por ejemplo para ver el archivo sesion.m se utiliza el comando

type sesión

Con lo cual se ve el contenido de dicho archivo

Para crear un archivo-M hay que utilizar la secuencia MATLAB→File→New→M-File Crtl+N En la figura 80, se muestra la pantalla correspondiente

Page 172: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

172

Fig. 80. pantalla para crear un archivo M-file

El directorio para guardar un archivo-M se abre con la secuencia:

File → Save Workspace as (o Save File as) En la figura 81, se muestra el archivo work

Fig. 81. Archivo work.

Page 173: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

173

Para ver la trayectoria donde se guardó un archivo-M, se procede de la siguiente manera a) Se selecciona Set Path (En la pestaña File de MATLAB) b) En la ventana Add Folder se indica dónde se desea guardar los archivos-M En la figura 82, se muestra la secuencia gráfica de pantallas.

Fig. 82. Visualización de la trayectoria de un archivo M-file. Los archivos-M más importantes y usados, son las funciones. La estructura de una función puede incluir los siguientes puntos:

1. Comentarios, los cuales comienzan con el símbolo % 2. Instrucción para leer los datos de entrada 3. Instrucciones a ejecutar 4. Instrucciones para escribir los datos de salida 5. Instrucción end para terminar la función.

Para editar un archivo-M se puede usar un editor de texto como Word. Lo único que se debe hacer al terminar es guardar el archivo como archivo de texto con la extensión .m. También se puede usar el editor de archivos-M “M-file Editor / Debugger”, el cuál se puede abrir con la secuencia: File → M-File, como se muestra en la pantalla de la figura 83.

Page 174: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

174

Fig. 83. Archivo Editor/Debugger

En la pantalla mostrada en la figura 83, se desarrolla el programa, por ejemplo, para calcular el volumen de un cilindro, como se muestra en la pantalla de la figura 84.

Fig. 84. Pantalla del Editor del programa.

Una vez que se escribió el programa (Untitled 8), se le coloca un título y se guarda en el sub-directorio “Mario”, dentro del directorio de MATLAB, como se muestra en la pantalla de la figura 85.

Page 175: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

175

Fig. 85. Archivo Mario.m Para buscar el programa, se puede seleccionar File → Open, y se tiene el archivo “Mario” con extensión .m, como se muestra en la pantalla de la figura 86.

Fig. 86. Archivo Mario.m en el directorio work.

Page 176: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

176

Presionando el botón “Abrir”, se despliega el programa realizado, para calcular el volumen del cilindro, bajo el título Mario.m. Si el archivo-M se guarda en otro directorio, se debe informar a MATLAB donde se encuentra con el comando Set Path en el menú File, de la manera que se mencionó más arriba. 20.1 Instrucciones básicas de programación. Son instrucciones simples que se requieren dentro de un programa de MATLAB. El uso de estas instrucciones permite realizar programas simples pero ilustrativos del potencial de MATLAB. 20.1. a) Instrucción ifififif----endendendend Un aspecto vital en todo lenguaje de programación es la posibilidad de poder cambiar la secuencia en que se ejecutan las instrucciones, dependiendo de que se satisfagan algunas condiciones que pueden depender de valores de las variables que se generaron durante el programa. En MATLAB la declaración if-end se usa para este propósito y su forma general es: >> if condición declaraciones >< end La condición del if puede contener operadores lógicos. Los operadores lógicos disponibles en MATLAB se muestran en la Tabla Nº 30. Si la condición se cumple entonces se ejecutan las declaraciones siguientes hasta el end. Si la condición no se cumple, el programa ejecuta la primera instrucción después de end.

Tabla Nº 30. Operadores lógicos de MATLAB

Page 177: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

177

La condición es de la forma 1 2e R e , donde 1 2ye e son expresiones aritméticas, y R es

alguno de los operadores de relación mostrados en la Tabla Nº 31.

Tabla Nº 31. Operadores de relación

Ejemplo

Usando la instrucción if-end, realizar un programa para la siguiente situación. Una calificación debe ser mayor que 7 para aprobar. El programa lee el dato e indica si el individuo está aprobado o reprobado. El archivo se genera con el editor de MATLAB y se guarda en el directorio C:\MATLAB6p1\work, con el nombre Archivo Ejemplo_1.m, como se indica en las pantallas de las figuras 87 y 88..

Fig. 87. Programa Ejemplo_1.m

Este programa que no tiene título, se guarda en el lugar mencionado previamente, como se muestra en la pantalla de la figura 88.

Page 178: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

178

Fig. 88. Programa Ejemplo_1, guardado en el archivo work. A continuación se abre la ventana de comando (Command window) y se corre el programa con calificaciones de 8.5 y 6 puntos, como se muestra en la pantalla de la figura 89:

Fig. 89. Ventana de comandos para correr el programa Ejemplo_1

Page 179: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

179

20.1 b) Instrucción ifififif----elseelseelseelse----endendendend La inclusión de la cláusula else en el if-end permite al programador el uso de un solo if en muchas aplicaciones para ejecutar dos conjuntos de declaraciones. La forma del if-else-end es

Si la condición se cumple, se ejecutan las declaraciones 1 a la na a . Después de la

declaración na , el programa continúa con la instrucción que sigue al end.

Si la condición no se cumple, se ejecutan las declaraciones 1 a mb b . Al terminar la

declaración mb , el programa continúa con la instrucción que sigue al end.

Como se puede ver claramente el if-else-end corresponde a dos if-end. Para las aplicaciones el programador puede usar lo que más le conviene. Ejemplo Realizar el programa del ejemplo precedente, utilizando la instrucción if-else-end En la pantalla de la figura 90, se muestra el programa designado Ejemplo_2

Page 180: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

180

Fig. 90. Programa Ejemplo_2 Desde la ventana de comandos se llama el programa Ejemplo_2 y se ejecuta para diferentes entradas (calificaciones).

Como se puede ver, el comportamiento del programa es idéntico al del ejemplo anterior. 20.1 c) Instrucción elseifelseifelseifelseif

La tercera forma de la declaración if usa la palabra clave elseif. Con el elseif se puede verificar un mayor número de condiciones. La sintaxis es:

Page 181: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

181

En el elseif se verifica qué condición se cumple primero, ejecuta las declaraciones después de la condición, y continúa con la instrucción que sigue al end.

Ejemplo

Realizar el ejemplo anterior, utilizando la instrucción elseif En la pantalla de la figura 91 se muestra el programa designado Ejemplo_3.

Fig. 91. Programa Ejemplo_3

Page 182: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

182

Luego se va a la ventana de comandos y se corre el programa, ingresando las entradas correspondientes.

También se puede observar que, si el usuario se equivoca al cargar los datos, el programa responde adecuadamente, dando señales del error cometido, por parte del operador. 20.1 d) Instrucción switch switch switch switch----casecasecasecase

La instrucción switchswitchswitchswitch----case case case case se utiliza cuando se desea verificar si una expresión es

igual a algún valor determinado. No se puede utilizar para verificar una condición como a>7 ó b 5≤ . No obstante, encuentra aplicaciones en muchas situaciones donde se requiere ejecutar declaraciones distintas dependiendo del valor de una expresión. La sintaxis utilizada tiene la forma siguiente:

Page 183: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

183

Cada valor puede ser numérico o una cadena de texto. Adicionalmente cada case puede tener uno ó más valores, como se muestra a continuación

En este caso si la expresión es igual a cualquiera de los valores valor1, valor2,…, valorh se ejecutan las declaraciones 1 a j. Ejemplo Veamos como se puede modificar el problema de los ejemplos anteriores, empleando la sentencia switch-case

En la pantalla de la figura 92 se muestra el programa, designado, Ejemplo_4

Page 184: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

184

Fig. 92. Programa Ejemplo_4. Una vez que el programa está cargado en el archivo con extensión .m, desde la ventana de comandos ejecutamos el mismo, como se muestra a continuación

20.1 e) Instrucción for for for for

La instrucción for se utiliza para formar ciclos o bucles de instrucciones que se tienen que repetir un número determinado de veces. La sintaxis que usa MATLAB es

Page 185: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

185

En esta expresión si se cumple que varaiable=expresión entonces se ejecutan las declaraciones de 1 a n, para continuar después con la declaración que está después del end. Si no se cumple, ya no se ejecutan las declaraciones 1 a n, y la siguiente declaración que se ejecuta es la está después del end. Es posible que en alguna aplicación, las declaraciones 1 a n no se ejecuten ni una sola vez. Ejemplo Realizar la suma de los primeros 20 enteros, utilizando la instrucción for. En la figura 93, se muestra el programa desarrollado para resolver el problema, y designado Ejemplo_ 6.

Fig. 93. Programa Ejemplo_6

Page 186: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

186

Luego en la ventana de comandos se ejecuta el programa, como se muestra a continuación:

Ejemplo Si se desea sumar los enteros pares entre 1 y 20, el programa sería, como el mostrado en la figura 94.

Fig. 94. Programa Ejemplo_7

En la pantalla de comandos se ejecuta el programa, como se muestra a continuación:

Comentarios: Nótese que 1:20 significa que la variable i cambia de 1 a 20 en incrementos de 1 en cada iteración. Esto también se puede escribir como 1:1:20 Para la suma de los números pares se ha utilizado 0:2:20 lo que indica que la variable i se incrementa de 2 en 2 a partir de cero, lo que da la suma de los enteros menores o iguales a 20 y mayores o iguales que cero. El incremento puede ser negativo (decremento), así por ejemplo 6: -1: 0 , comienza en seis(6) y continua con decremento de 1, lo que nos da 5, 4, 3 , 2 , 1 y termina en cero. Finalmente el incremento o decremento puede ser fraccionario, como por ejemplo en 5:0.25:7 esto da 5, 5.25, 5.50, 5.75, 6.0, 6.25, 6.5, 6.75, 7.0.

Page 187: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

187

Ejemplo

Calcular el factorial de un número entero ! 1 2 3n n= × × × × La operación de cálculo se puede ejecutar con la instrucción for, como se muestra en el programa de la figura 95.

Fig. 95. programa ejemplo_8

En la ventana de comando, ejecutamos el programa Ejemplo_8.m, como se muestra a continuación

Nota: Los for se pueden anidar, es decir, dentro de un ciclo for puede haber uno o más ciclos for.

Page 188: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

188

Ejemplo (del empleo de la instrucción for anidada) Se desea sumar todos los elementos ija de una matriz n m× . Esto se puede hacer

realizando la suma

1 1

n m

ij

i j

suma a= =

=∑ ∑

Esta suma se puede realizar con el programa indicado en la figura 96.

Fig. 96. Programa Ejemplo_9

Para correr el programa, se va a la ventana de comandos, y se ejecuta como se muestra a continuación.

Page 189: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

189

20.1 f) Instrucción while while while while La instrucción while sirve para repetir un conjunto de declaraciones e instrucciones un número indeterminado de veces. La diferencia con la instrucción for , es que ésta se ejecuta un número determinado de veces. La sintaxis es:

Modo de funcionamiento del while: Si la condición no se cumple, entonces se ejecuta la primera instrucción después del end. Si la condición se cumple, se ejecutan todas las declaraciones de la 1 hasta la n. En este punto se verifica si la condición todavía se cumple, y de ser así se vuelven a ejecutar las declaraciones de la 1 hasta la n y se vuelve a verificar la condición. Este proceso se repite hasta que la condición no se cumple, en cuyo caso se salta a ejecutar la primera declaración después del end.

Page 190: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

190

Ejemplo Calcular el volumen de una esfera de radio 1 hasta 4. En la figura 97, se muestra el programa Ejemplo_10

Fig. 97. programa Ejemplo_10

Desde la ventana de comandos se ejecuta el programa, como se muestra a continuación:

20.2 Funciones (function) Una function en MATLAB, es un subprograma que se puede emplear para escribir un programa muy grande en varios subprogramas más pequeños o para realizar una tarea repetitiva escribiendo solamente un programa. La forma que toma una función es:

Page 191: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

191

Donde: x es el argumento o parámetro de entrada y es el parámetro de salida operación es el nombre de la función Ejemplo

Cálculo de la factorial utilizando la instrucción function En la figura 98, se muestra el programa designado factorial.m

Fig. 98. Programa factorial.m Ejecutando esta función en la ventana de comandos, se tiene lo que se muestra a continuación

Page 192: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

192

Ejemplo

Solución de una ecuación de segundo grado 2 0ax bx c+ + = .Las soluciones analíticas

de esta ecuación están dadas por: 2

1,2 ( 4 ) 2x b b ac a= − ± −

Una función que calcula estas soluciones es la función cuadrática(a, b, c) guardada en el archivo cuadrática .m El programa se muestra en la figura 99.

Fig.99. Programa cuadratica.m

Page 193: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

193

Al correr esta función en la ventana de comandos, se obtienen las soluciones:

20.3 Manejo de archivos Hasta ahora los datos de los programas y funciones se dan a través del teclado(entrada) y se muestran los resultados en pantalla(salida) . Otra manera de dar datos a un programa de MATLAB es a través de archivos. Estos archivos pueden ser creados por MATLAB o por algún otro programa. Esta última opción permitiría intercambiar datos entre MATLAB y otros programas. Una ventaja de usar archivos con datos de entrada/salida es que se pueden guardar en disco. De esta manera, al apagar la computadora, los datos no se pierden y se pueden usar nuevamente cuando se encienda la computadora. 20.3.1 Abrir y cerrar archivos. Para leer de un archivo o escribir en un archivo es necesario abrirlo. MATLAB abre un archivo con el comando fopen, cuya sintaxis es: fid = fopen(nombre-del-archivo, permisos) Donde nombre-del archivo es el nombre del archivo, el cual ya debe existir para poder leerlo. Si este no existe, se creará con el nombre dado y permisos es una variable que especifica como se abre el archivo. Los códigos de permisos disponibles e identificadores para abrir archivos, se muestran en la tabla Nº 32.

Page 194: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

194

Tabla Nº 32. Permisos e identificadores para archivos.

Se pueden abrir tantos archivos como se desee; fid es un identificador que “identifica” el archivo que se acaba de abrir y se le llama identificador (handle). Este identificador comienza con el valor 3, ya que los identificadores -1 a 2 tienen un significado específico para MATLAB.

Después de terminar de usar los datos de un archivo, este se debe cerrar. El comando para cerrar archivos en MATLAB es close, que tiene la sintaxis:

status = fclose (fid) Donde fid contiene el identificador del archivo que se desea cerrar. La variable status nos da otro identificador para saber si el archivo se cerró correctamente. Un status = 0 , indica que se cerró correctamente, mientras que un status = -1 , indica que no se pudo cerrar el archivo.

Page 195: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

195

Ejemplo Uso de fopen Supóngase que se desea abrir un archivo inexistente llamado rodolfo_14.txt. Para ello utilizamos, la ventana de comandos como muestra la figura 100:

Fig. 100. Archivo inexistente rodolfo_14.txt El fid que llamamos identificador_archivo es -1 ya que se quiso leer un archivo inexistente. Si se utiliza’ w ‘, en lugar de ‘ r ‘ , se obtiene, lo mostrado en la figura 101.

Fig. 101. Archivo rodolfo_14.txt El valor que se obtiene para el fid es 3 , indicando que se creó el archivo rodolfo_14.txt , ya que no existía, y ahora ya se puede escribir en él los datos que se necesiten. este archivo abierto se identifica con identificador_archivo=3. Si ahora se crea otro archivo, por ejemplo datos_1.txt , con las sentencias mostradas en la figura 102.

Page 196: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

196

Fig. 102. Archivo datos_1.txt

Para este archivo, el identificador fid es 4, ya que estos identificadores se asignan secuencialmente. Con el comando dir se pueden ver todos los archivos abiertos en el directorio en el que estamos trabajando, en donde se verán los archivos que se acaban de abrir:

Como no se ha escrito nada, los archivos estarán abiertos. Se puede utilizar cualquier procesador de textos para ver su contenido, como por ejemplo el Bloc de notas de Windows o Word. Para cerrar un archivo se usa fclose, cuya sintaxis es:

status=flose(fid) Donde fid es el identificador con el que se abrió el archivo que se desea cerrar. La variable status indica si se cerró correctamente el archivo (status=0). Si no se pudo cerrar MATLAB envía un mensaje con la razón por la que no se pudo cerrar el archivo. Antes de cerrar MATLAB, es conveniente cerrar todos los archivos que se hayan abierto para evitar que se pierdan los datos que se escribieron en los mismos.

Page 197: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

197

20.3.2 Escritura de información en un archivo La forma más simple de escribir en un archivo es empleando la instrucción fprintf. Esta instrucción ya la hemos utilizado para escribir datos de salida en la pantalla de MATLAB. En la figura 103 se muestra el proceso.

Fig. 103. Uso del fprintf. Para escribir en un archivo, primero se necesita crearlo y abrirlo. Si se abren dos archivos, como se muestra en la figura 104.

Fig. 104. Apertura de dos archivos, archivo1.txt y archivo2.txt.

Para escribir a un archivo, se necesita indicar su “identificador”, como se muestra en la figura 105.

Fig. 105. Escritura en un archivo mediante el identificador.

Page 198: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

198

Para ver lo que se escribió en dichos archivos, primero se cierran los respectivos archivos con: >> fclose (3),fclose (4); Ahora se pueden abrir los archivos con el Bloc de Notas y observar lo que se escribió en ellos. 20.3.3 Escritura y Lectura de datos con formato MATLAB permite, también, escribir y leer datos formateados. Una buena manera de ver esto es a través de un ejemplo. Ejemplo Escritura de datos con formato Supóngase que se tiene información de las mejores(arriba de 7) notas del primer parcial del año 2007. Los datos son

1) Nombre -Cadena de 20 caracteres. 2) Apellido -Cadena de 20 caracteres. 3) Legajo - Cantidad de 6 dígitos.

4) Nota - Cantidad de 2 dígitos. Si cada dato es menor que los caracteres indicados, los caracteres restantes se llenan con espacios en blanco. Cada uno de los incisos se almacena en un arreglo. Si hay 10 alumnos que tienen notas arriba de siete, entonces cada inciso es un arreglo de 10 líneas. Los datos son:

Para ver los datos de uno de ellos, se ejecuta en la ventana de comandos:

Para escribir esta información en un archivo, se usa el programa script, mostrado en la figura 106

Page 199: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

199

Fig. 106. Archivo Ejemplo_2007.m

Luego de correr el programa, al abrir con el bloc de notas se puede ver el archivo, como se muestra en la figura 107.

Fig. 107. Apertura mediante el bloc de notas. Se pueden leer los datos del archivo desde un programa de MATLAB. Para ello se deben verificar varias cosas:

1. Si ya se llegó al final del archivo con un final de archivo end_of_file que se denota

por feof.

2. Leer cada cadena con un fscanf y asignarla a su campo correspondiente.

3. cerrar el archivo después de encontrar el final del archivo feof. El programa script, es el mostrado en la figura 108.

Page 200: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

200

Fig. 108. Programa script. Comentarios: (a) La condición de while prueba para ver si el archivo ya se terminó buscando el end-of-file (fin del archivo). (b) El fscanf busca los primeros caracteres usando el formato %9c, que lee los primeros 9 caracteres, incluyendo espacio. Si se hubiese utilizado el formato %9s, sólo se leen los caracteres y se ignoran los espacios. El 1 indica que solo se lee un elemento. De esta manera cadena = fscanf(fid_datos,’%9c’,1) indica que se lea un elemento del archivo abierto con el identificador fid_datos y que se coloque en la variable cadena. (c) La línea coma=fscanf (fid_datos,’%2c’,1, indica que después de leer la primera variable se lea una coma. No se hace nada con la coma pero se necesita leerla, ya que de otra manera la leería la siguiente instrucción fscanf. (d) Para el Legajo y Nota es necesario leer un dato numérico por lo que se usa %2d que lee un dato decimal de 2 caracteres. (e) Después de leer las notas se terminan los datos y se llega al final de la línea, lo cuál se lee con un carácter especial, por lo que es necesario leerlo con:

Page 201: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

201

fin_de_linea = fscanf (fid_datos,’%1c’,1) que aunque no se usa, es necesario leerlo para que no lo lea el siguiente fscanf, como se hizo con las comas. Para ver como funciona el programa, se corre el archivo en la ventana de comandos y se ven las variables:

Page 202: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

202

21 Intercambio de datos entre MATLAB y EXCEL Una de las hojas de cálculo más usadas en muchas áreas de ingeniería, ciencias, finanzas, contabilidad y otras es EXCEL. Dado que tanto MATLAB como EXCEL pueden leer y escribir datos en archivos, es posible que los datos de un archivo creado por MATLAB puedan ser leídos por EXCEL y viceversa. MATLAB puede crear archivos de datos separados por comas. Esto es ideal para que EXCEL pueda leer estos datos. Considérese el archivo del ejemplo anterior, guardado como Datos_del_curso.txt. Recuérdese que este archivo tiene los datos separados por comas, las cuales reciben el nombre de separadores o delimitadores. Si ahora se desea abrir estos datos con EXCEL, se ejecuta EXCEL y se selecciona Abrir Archivo, con lo que se ve la ventana mostrada en la figura 109

Fig. 109. Archivo Datos_del_curso.txt en el archivo work. Cuando EXCEL abre archivos y lee los datos reconoce que estos datos no fueron creados por EXCEL y que están delimitados por separadores, como se muestra en la figura 110, (Step 1 of 3).

Page 203: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

203

Fig. 110. Asistente para importar textos, paso 1 de 3. Para que EXCEL los pueda leer, se selecciona Delimited (Delimitados) y se presiona Next (siguiente) para obtener la ventana de diálogo que se muestra en la figura 111, (Step 2 of 3), donde se especifica la coma como delimitador (el delimitador por omisión es el Tab).

Fig. 111. Asistente para importar textos, paso 2 de 3.

Page 204: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

204

Antes de presionar el botón Siguiente, se seleccionan todos los datos, y aparece como se muestra en la ventana de la figura 112 (Step 3 of 3).

Fig. 112. Asistente para importar textos, paso 3 de 3.

Se presiona Finalizar, y EXCEL importa todos los datos y aparece como se muestra en la ventana de Excel de la figura 113. Ahora sí, se pueden procesar los datos en EXCEL.

Fig. 113. Archivo Datos_del_curso en Microsoft Excel.

Page 205: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

205

Los datos que va a escribir MATLAB a un archivo, se pueden separar automáticamente por comas con la instrucción csvwrite (nombre_del_archivo, m) donde csv son las iniciales de comma separated values (valores separados por comas). Así los datos de un arreglo A se escriben en el archivo matriz separados por comas, la extensión será csv. De esta manera para A dado por una matriz como se muestra en la figura 114.

Fig. 114. Matriz A.

Este arreglo, se puede escribir en un archivo matriz.csv, mediante la instrucción mostrada en la figura 115.

Fig. 115. Archivo matriz.csv

Este archivo se puede ver mediante el WordPad, como se muestra en la figura 116.

Page 206: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

206

Fig. 116. Vista del archivo con el WordPad Como EXCEL reconoce archivos con la extensión csv, se puede leer el archivo matriz.csv. Para hacer esto se ejecuta EXCEL y se abre el archivo. La ventana se ve como muestra la figura 117.

Fig. 117. Vista del archivo matriz.csv en Excel.

22. Lectura en MATLAB de datos creados en EXCEL. El formato csv permite el intercambio de datos entre distintos programas. EXCEL permite crear archivos con esta extensión que pueden ser leídos por MATLAB. Para ver como se procede, considérese el conjunto de datos en EXCEL como muestra la figura118.

Page 207: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

207

Fig. 118. Archivo datos_9_9.csv en Excel Los datos se salvan en el archivo datos_9_9.csv, como se muestra en la figura 119.

Fig. 119. Archivo datos_9_9 en work.

Page 208: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

208

Ahora que el archivo está salvado como datos_9_9.csv, se puede ver en MATLAB usando, la ventana de comandos, como se muestra en la figura 120.

Fig. 120. Archivo datos_9_9 en la ventana de comandos

Ejemplos de Programación. Ejemplo1. Supóngase que se desea determinar el volumen y la superficie de recipientes cilíndricos de diferente tamaño. Para ello se requiere una función que ingresando el radio y la altura dé los valores requeridos. Se ingresa al editor de archivos M de MatLab y se desarrolla el siguiente programa.

Luego se salva el archivo con el nombre (por ejemplo) de cilindro_vol_sup.m en el directorio de MatLab. Luego se retorna a la línea de comandos comand window de MatLab y se ejecuta el programa. A continuación se muestra, desde la ventana de comandos, el cálculo de la superficie y el volumen, realizado para diferentes valores del radio y la altura.

Page 209: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

209

Ejemplo2. Supóngase que se desea construir una función que no está en el archivo de funciones pre-

determinadas de MatLab. Considérese la función:2

( )1

xf x

x=

+. En primer lugar se

deberá desarrollar en el editor de archivos M de MatLab, la fórmula indicada.

El programa se guarda en el archivo de trabajo (work), bajo un nombre como ser myfile.m Luego en la ventana de trabajo de MatLab (Comand Window) se llama el archivo guardado mediante las instrucciones:

Así se obtiene el gráfico mostrado en la figura 121:

Page 210: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

210

Fig. 121. Gráfico de la función generada, y guardada en el archivo myfile.

Ejemplo3.

Considérese la función 2 2( ) 1 (1 ) (2 ) , nf x x x xξ ω ω= − + = , que representa el

módulo de la respuesta frecuencial, de la salida respecto a la entrada en un sistema subamortiguado de segundo orden. Los campos de variación de la frecuencia y del coeficiente de amortiguamiento, son respectivamente: 0 , 0 1yω ξ< < ∞ < < . El objetivo

es dibujar la curva de respuesta en función de x , empleando ξ como parámetro.

Page 211: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

211

En la figura 122, se muestra el gráfico obtenido

Fig. 122. Gráfico de la función f(x).

Page 212: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

212

Ejemplo 4. Obténgase la respuesta al escalón para un sistema de segundo orden, subamortiguado, para valores del coeficiente de amortiguamiento ξ (zeta) entre 0.1 y 0.7. La función transferencia que se desea graficar es la siguiente:

2

1( )

2 1G s

s sξ=

+ +

Se realiza el programa que se muestra en la figura 123,y se lo guarda con un nombre para emplearlo en el futuro, en nuestro caso se lo guardó con el nombre: Ejemplo4_UNLZ.m.

Fig. 123. Programa Ejemplo4_UNLZ.m

Una vez que el programa está desarrollado y guardado, se selecciona en la ventana Debug Run y se hace “clic” sobe dicho nombre, con lo cuál el programa corre y se obtiene el gráfico mostrado en la figura 124.

Page 213: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

213

Fig. 124. Gráfico de la respuesta subamortiguada en función del coeficiente de

amortiguamiento. Ejemplo 5. Variables de estado, polos y ceros. Un sistema se puede representar mediante su función transferencia si es SISO o mediante su matriz de transferencia si es MIMO. Así, para el sistema definido por:

2

3 2

7 3( )

9 20 21

s sG s

s s s

+ +=

+ + +

En MATLAB se representa mediante: >> n = [1 7 3]; >>d = [1 9 20 21]; La representación en variables de estado se puede obtener en MATLAB mediante tf2ss (transfer function to state variable)

Page 214: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

214

[A,B,C,D] = tf2ss(n,d) Al ejecutar dicha sentencia, se obtiene en la ventana de comandos las matrices de la representación de estado, como se muestra en la figura 125.

Fig. 125. Obtención de las matrices de la representación de estado mediante tf2ss. Si se conoce la representación de estados y se desea obtener la función transferencia, se puede emplear el comando ss2tf (state variable to transfer function).

>>[n,d]=ss2tf(A,B,C,D) Supóngase que se desea obtener la respuesta del sistema a una entrada escalón, considerando que el coeficiente de la derivada primera toma cuatro valores: alpha = 20, 15, 10 y 5. El coeficiente de la derivada primera representa la fricción viscosa, de manera que si se disminuye dicho coeficiente el sistema es cada vez más oscilatorio en su respuesta a una dada señal de entrada, como ser el escalón.

Page 215: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

215

El programa que permite graficar los resultados se designa como: Ejemplo5a_UNLZ.m, y se muestra en la figura 126.

Fig. 126. Programa para resolver y graficar la respuesta del sistema de 3º orden. En el gráfico de la figura 127 se muestran los resultados obtenidos para la respuesta al escalón.

Fig. 127. Respuesta al escalón del sistema de tercer orden.

Page 216: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

216

Si se desea resolver la ecuación matricial de estado:

d dt = +

= +

x Ax Bu

y Cx Du

Se utiliza la instrucción lsim, con el formato: >> [x,y]= lsim[A, B, C, D, t] Si el sistema tiene condiciones iniciales, a través de su vector de condiciones iniciales, se agrega dicho vector al final de la instrucción lsim, como se muestra a continuación. >< [x, y] = lsim[A, B, C, D, t, xo] Veamos el caso del sistema anterior con alpha = 20. El programa se muestra en La Fiogura 128.

Fig. 128. Programa para resolver las ecuaciones de estado.

Page 217: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

217

Corriendo el programa precedente se obtienen los gráficos que se muestran en la figura 129.

Fig. 129. Gráficos de las variables de estado y las salidas en función del tiempo Ejemplo 6. Magnitud de una función en el plano complejo Considérese la función transferencia dada por:

2

2

3( )

1

sG s

s s

+=

+ +

Esta función tiene dos polos ubicados en: 1,2

1 3

2 2p j= − ± y los ceros están en:

1,2 3z j= .

Page 218: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

218

La magnitud, ( )G jω se puede graficar en forma tridimensional en el plano complejo

s jσ ω= + . Para lograr esto en primer lugar se debe generar una rejilla para los valores

de σ y ω y luego obtener las partes real e imaginaria del numerador y denominador de la función. Finalmente, la magnitud se grafica con la instrucción mesh. En la figura 130 se muestra el programa que permite realizar lo mencionado.

Fig. 130. Programa para graficar la función de variable compleja.

En la figura 131 se muestra la gráfica de la función de variable compleja. En la figura 131 se puede ver que en las frecuencias de los polos la magnitud tiende a crecer a valores muy grandes, y que en los ceros esta magnitud vale cero.

Page 219: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

219

Fig. 131. Gráfica de la función transferencia. Ejemplo 7. Deformación de una viga Aplicación a la ingeniería civil y mecánica. Sea una viga horizontal de L = 20 m de longitud, apoyada en los extremos, como se muestra en la figura 132. Si la viga tiene una carga uniformemente distribuida de w = 100kg/m, encontrar la ecuación que describe la viga al deformarse.

Fig. 132. Viga horizontal apoyada en los extremos. El momento flexor M está dado por:

Page 220: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

220

2

2

2

1

2

d yEI wLx wx

dt= −

Donde: E = módulo de elasticidad de Young = 1000 I = Momento de inercia de la sección transversal = 100 L=10 Para resolver mediante MATLAB, conviene despejar la derivada de mayor orden, y luego integrar tantas veces hasta obtener y(x). De esta manera se tiene:

22

2

1 1( )

2

d yw Lx x

EIdt= −

Esta derivada segunda, en MATLAB, la podemos declarar como:

2 *( * ^ 2 / 2) /( * )d y w L x x E I= −

La primera integral la obtenemos con:

int( 2 )dy d y=

La segunda integral se evalúa con:

int( )y dy= Posteriormente se calculan las constantes de integración y se sustituyen los valores de los parámetros y la carga. El programa de MATLAB se ve como se muestra en la figura 133 .

Page 221: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

221

Fig. 133. Programa de MATLAB para obtener el gráfico de la elástica.

Al correr este programa en la ventana de comandos se obtiene la ecuación matemática de la elástica y el valor de la flecha máxima, como se muestra en la figura 134. La gráfica de la elástica se muestra en la figura 135.

Page 222: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

222

Fig. 134. Ecuación de la elástica y flecha máxima.

Fig. 135. Gráfica de la elástica.

Page 223: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

223

Ejemplo 8. Sistema amortiguado sometido a un movimiento armónico en la base. En muchas ocasiones se tiene un sistema Masa-Resorte-Fricción viscosa, como se muestra en la figura 136.El mismo se encuentra sometido a un movimiento armónico en su base.

Fig. 136. Sistema mecánico m-b-k, con movimiento armónico en la base. La ecuación de equilibrio dinámico de fuerzas se expresa como:

2

21

( )n

i

i

d xf t m

dt=

=∑

Realizando la sumatoria de fuerzas en el nodo “dx/dt” se tiene:

2

20

d x dx dym b kx b ky

dt dtdt+ + − − =

Como el desplazamiento de la base es ( ) ( )y t Ysen tω= , su derivada es la velocidad de

la base y está dada por: ( ) / cos( )dy t dt Y tω ω= .

Reemplazando en la ecuación diferencial se obtiene:

2

2( ) ( )

d x dxm b kx b Ycos t kY sen t

dtdtω ω ω+ + = +

Page 224: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

224

Lo que interesa es, básicamente, el desplazamiento y la velocidad de la masa m, para lo cuál se puede escribir la ecuación diferencial de segundo orden, como dos ecuaciones diferenciales de primer orden. Una manera es haciendo el cambio de variables:

1

2 1 /

x x

x dx dt dx dt

=

= =

Con esta elección de variables, las ecuaciones diferenciales se pueden escribir como:

1 2

2 1 2 cos( ) ( )

dx dt x

k b b Y kYdx dt x x t sen t

m m m m

ωω ω

=

= − − + +

Se considerarán los siguientes valores de los parámetros y amplitud de la excitación:

1 2100 , 500 , 0.1, 400,m kg m kg Y k= = = =

Sobre esta base, se pueden desarrollar los siguientes programas: a) El sistema de ecuaciones se puede programar en una función como: ec_dif.m, mediante el programa indicado en la figura 137.

Fig. 137. Programa ec_dif.m

b) El archivo-m para resolver el sistema de ecuaciones diferenciales para m =100 Kg. y m = 500 Kg., se muestra en la figura 138.

Page 225: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

225

Fig. 138. Programa para resolver el sistema de ecuaciones diferenciales de primer orden. Las gráficas de salida, se muestran en la figura 139. Aquí se puede ver claramente que el desplazamiento de la masa m se amortigua más a medida que la masa es mayor, al punto que para m = 500 Kg. el desplazamiento es la tercera parte que para m = 100 Kg.

Page 226: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

226

Fig. 139. Desplazamiento y velocidad de la masa m. Ejemplo 9. Tiro en el vacio (parabólico) El tiro en el vacio es un ejemplo muy común, y además muy didáctico para la Física. El

problema consiste en el lanzamiento de un proyectil de masa m con velocidad inicial 0v y

con un ángulo θ con respecto al eje horizontal, como se muestra en la figura 140.

Fig. 140. Tiro en el vacio

Page 227: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

227

Las preguntas que se hace el lanzador son básicamente las siguientes:

a) ¿Cuál es la máxima distancia que recorre el proyectil? b) ¿Cuál es la máxima altura que alcanza el proyectil? c) ¿Cuál es la trayectoria que sigue el proyectil?

Para contestar dichas preguntas, se deben plantear las ecuaciones que definen el movimiento del proyectil. En dirección horizontal no se tiene ninguna fuerza actuando sobre la masa del proyectil. En dirección vertical se tiene la fuerza de la gravedad actuando sobre la masa del proyectil. De esta manera las ecuaciones de Newton para las componentes vertical y horizontal de las fuerzas son:

2

2

2

2

0d x

mdt

d ym mg

dt

=

= −

Estas dos ecuaciones ODE de 2º orden, se pueden convertir en cuatro ecuaciones ODE de 1º orden (modelo de estado). Para ello se pueden elegir las siguientes variables de estado:

1

2

3 1

4 2

coordenada x

coordenada y

Componente de la velocidad según x

Componente de la velocidad se

x x

x y

x dx dt dx dt

x dy dt dx dt

=

=

= =

= = gún y

Con esta elección de variables de estado, las ecuaciones ODE del sistema, se transforman en:

1 3

2 4

2 23

2 24

=0

=d

dx dt x

dx dt x

dx dt d x dt

dx dt y dt g

=

=

=

= −

Estas ecuaciones se pueden programar en una función, como la mostrada en la figura 141:

Page 228: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

228

Fig. 141. Programa tiro_parabolico (t, x) La resolución de estas ecuaciones ODE, se pueden realizar con el programa desarrollado en un m-file, tal como se muestra en la figura 142.

Page 229: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

229

Fig.142. Programa para resolver el sistema ODE Después de salvar el archivo y correrlo mediante el Debug (save and run) se obtienen las gráficas que se muestran en la figura 143. La trayectoria es una parábola. La distancia aumenta linealmente con el tiempo. La altura aumente según una parábola, y alcanza un máximo, luego del cuál comienza a disminuir. De los cursos de Física, se sabe que la altura máxima del proyectil está dada por:

2 2 2 20

max

(100) (30º )127,42

2 2 9.81

v sen senh m

g

θ ×= = =

×

Asimismo la distancia horizontal máxima está dada por:

2 20

max

cos (100) cos (30º )882.80

9.81

vx m

g

θ ×= = =

A medida que aumenta el ángulo θ más corta es la distancia horizontal que alcanza el

proyectil. Cuanto mayor sea la velocidad inicial, mayor es el alcance horizontal del tiro en el vacio, ya que dicha distancia depende del cuadrado de la velocidad inicial. Cambiando el

ángulo y la velocidad inicial se pueden obtener gráficos del tiro en función de 0y vθ .

Page 230: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

230

Fig. 143. Gráficas del tiro en el vacio Ejemplo 10. Tiro considerando la resistencia del aire La resistencia del aire puede considerarse como una fuerza que se opone al movimiento del proyectil, y en general es proporcional al cuadrado de la velocidad. Dicha fuerza de rozamiento se puede modelar como:

2 vF c v

v= −

Esta fuerza tiene dos componentes una vertical (Fy) y otra horizontal (Fx). Teniendo en cuenta dichas componentes de la fuerza de rozamiento, las ecuaciones diferenciales ODE del proyectil son.

Page 231: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

231

2 22

2

2 22

2

0 0x

y

d x dx dx dym F c

dt dt dtdt

d y dy dx dym mg F mg c

dt dt dtdt

= + = − +

= − + = − − +

Estas ecuaciones diferenciales se pueden escribir como cuatro ecuaciones ODE de primer orden. Esto se obtiene mediante las variables de estado:

1 3

2 4

2 222 2

3 3 3 42

2 222 2

4 4 3 42

dx dt x

dx dt x

d x c dx dx dy cdx dt x x x

m dt dt dt mdt

d y c dy dx dy cdx dt g g x x x

m dt dt dt mdt

=

=

= = − + = +

= = − − + = − − +

El sistema ODE se resuelve con cualquiera de las funciones ode23, ode45, etc. En primer lugar se debe definir la función, mediante un programa como se muestra en la figura 144.

Fig. 144. Programa tro_parabolico_aire (t, x).

Page 232: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

232

El programa para llamar esta función y resolver el sistema ODE es el mostrado en la figura 145.

Fig. 145. Programa para resolver las ecuaciones del tiro con rozamiento del aire.

En la figura 146 se muestran los resultados gráficos, obtenidos para el tiro parabólico con fricción del aire.

Page 233: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

233

Fig. 146. Resultados del tiro parabólico con fricción del aire. En las gráficas anteriores se puede observar que tanto la altura como la distancia horizontal han disminuido debido a la resistencia del aire. Asimismo se puede observar que la distancia horizontal no es una función lineal del tiempo transcurrido.

Page 234: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

234

Ejemplo 11. Descenso de un paracaidista. El paracaidista se lanza desde un avión en 0t = , a una altura h y abre su paracaídas en

el instante 0t .

La dinámica del modelo es la siguiente: en el instante de lanzamiento 0t = la velocidad

inicial es: (0) 0inv v= = y la altura es (0)y h= . En el intervalo de tiempo 00 t t≤ ≤ el

paracaidista se desplaza en caída libre con una aceleración g. La velocidad del paracaidista es ( )v t g t= y la distancia recorrida por el paracaidista , al instante t, está dada por la

relación

2

( )2

g ty t h= − .

En el instante 0t t= se abre el paracaídas. En ese momento las condiciones de velocidad

y altura son:

0 0

20

0

( )

( )2

v t g t

g ty t h

=

= −

Es evidente, sobre la base de las ecuaciones precedentes, que para que el paracaidista no

se estrelle contra el piso, debe abrir el paracaídas en un tiempo genérico: 0t t= , tal que

0

20

0

( ) 0

2

2

y t

g th

ht

g

>

>

<

A partir que el paracaídas se abre, la velocidad del paracaidista disminuye debido a la resistencia del aire , que se hace evidente con una fuerza proporcional al cuadrado de la velocidad. De esta manera la ecuación del movimiento es:

2dvm mg kv

dt= − +

Page 235: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

235

Donde: m = masa del paracaidista k = coeficiente de rozamiento, que depende de la densidad del aire y del área transversal del Paracaídas. La densidad del aire es función de la altura y al nivel del mar tiene un valor de 1.29 kg/m^3 Cuando la fuerza de rozamiento equilibra la fuerza de gravedad, el paracaidista alcanza una velocidad límite (constante) ya que la aceleración se hace cero. La ecuación del movimiento se modifica a esta otra:

20 mg kv= − +

Así la velocidad límite es:

mgv

k=

Para resolver la ecuación del movimiento del paracaidista, conviene escribirla como:

2dv kg v

dt m= − +

La función en MATLAB para describir esta ODE, se puede escribir como se muestra en la figura 147.

Fig. 147. Programa de la función paracaidista (t, v) El programa o archivo .m que permite resolver el problema, se muestra en la figura 148.

Page 236: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

236

Fig. 148. Programa para resolver la ecuación del paracaidista.

Page 237: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

237

Fig. 149. Gráfica del paracaidista. 23. Números Complejos. Un número complejo es un par ordenado de números reales de la forma: ( , )z a b= y que admiten una notación en forma binómica o polar, dadas por las relaciones:

2 2 , tanjz a ib a jb a b e a b a

φ φ= + = + = + = . Demás está decir la importancia que tienen los números complejos en Ingeniería. Se los utiliza, por ejemplo en Electrotecnia, Circuitos Eléctricos, Análisis Dinámico de Sistemas, Funciones Transferencia, Análisis Vectorial y Fasorial, etc. MatLab cuenta con una serie de comandos que permite un buen manejo de estos números. Las funciones básicas se muestran en la tabla Nº 33.

Tabla Nº 33. Funciones básicas para operar con números complejos. Ejemplo. Dados los números complejos: 1 24.5 2.3 , 5.6 3.5z i z i= − + = − , se pide. a) Calcular los módulos y fase de los dos números complejos. b) El producto 1 2z z× y el cociente 1 2/z z .

c) El conjugado de 1z y 2z .

d) Graficar los números complejos 1z y 2z y sus conjugados.

Page 238: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

238

En la figura 150 se muestran las instrucciones cargadas en la ventana de comandos, para realizar los cálculos solicitados.

Page 239: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

239

Fig. 150. Ventana de comandos para realizar los cálculos.

En la figura 151 se pueden ver las instrucciones para graficar los complejos z1, z2 y sus conjugados, mediante sendos puntos.

Fig. 151. Instrucciones para graficar z1, z2 y sus conjugados.

Fig. 152. Representación mediante puntos de z1, z2 y sus conjugados.

Page 240: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

240

Mediante la utilización del comando line(x, y) se puede representar los complejos mediante sus vectores asociados. En la figura 153 se muestran los comandos necesarios, y en la figura 154 la gráfica correspondiente.

Fig. 153. Comandos para representar los complejos por sus vectores asociados.

Fig. 154. Representación de los complejos por sus vectores asociados.

Page 241: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

241

24. Funciones Reales de varias variables (campos escalares). La operación con funciones de varias variables reales, es similar a la operación con funciones de una variable. Debido a ello se darán ejemplos directamente. Ejemplo:

Sea las funciones reales: 2 3

2

2 ( )

: / ( , ) cos(2 3 )

: / ( , ) x y

f f x y x y

g g x y e− +

ℜ → ℜ = +

ℜ → ℜ =

Veamos como se evalúan mediante MatLab. En la figura 155 se muestran los comandos.

Fig. 155. Comandos para evaluar las funciones reales.

25. Gráficas Tridimensionales (3 D). MatLab posee una excelente potencialidad para la visualización de superficies en 3D como así también en la manipulación de gráficas en 3D. Algunos de los comandos para la realización de gráficos en 3D, son los indicados en la Tabla Nº 34.

Page 242: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

242

Tabla Nº 34. Algunos comandos para gráficas 3D

Ejemplo. Dada la curva definida en forma paramétrica por las ecuaciones:

3

3 (2 )

5cos( )

x sen t

y t

z t

=

=

=

Realizar el gráfico 3D.

Se obtiene el gráfico, mostrado en la figura 156.

Page 243: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

243

Fig. 156. Gráfico 3D para una curva. Ejemplo.

Sea la función (campo escalar) : 2 2

2 2

( )( , )

sen x yf x y

x y

+=

+, realizar una gráfica de la superficie

en 3ℜ .

Se obtiene la gráfica mostrada en la figura 157.

Page 244: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

244

Fig. 157. Superficie 3D.

Ejemplo.

Sea la función dada por: ( , ) cos .cosf x y x y= . Se desea graficarla empleando el comando meshc.

En la figura 158 se muestra el gráfico obtenido.

Page 245: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

245

Fig. 158. Gráfico 3D.

Ejemplo.

Dada la función : 3/ 2( , ) 0.7 2q x y y x= , se desea graficarla utilizando el comando mesh y contour .

Esto devuelve el gráfico mostrado en la figura 159.

Page 246: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

246

Fig. 159. Gráfico obtenido mediante mesh Para obtener el contorno se cargan las instrucciones siguientes:

MatLab devuelve el gráfico mostrado en la figura 160.

Page 247: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

247

Fig. 160. Gráfico de contornos.

26. Funciones Complejas y de variable compleja. Una función de variable compleja es una transformación del plano xy al plano uv, donde “u” y “v” son campos escalares de x e y, de tal manera que:

( ) ( , ) ( , )f z u x y iv x y= +

Es necesario poder ver como se transforma una curva descripta en forma paramétrica, tal como:

( ):

( )

( )

( )

x x tcon t D en el plano xy en otra dada por

y y t

u u tcon t D en el plano uv

v v t

γ

ξ

=∈ ⊆ ℜ

=

=∈ ⊆ ℜ

=

Reemplazando en la expresión de f(z), se obtiene:

Page 248: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

248

[ ] [ ] [ ]( ) ( ) ( ), ( ) ( ), ( )

( ) ( ) ( )

f x t iy t u x t y t iv x t y t

f t u t iv t

+ = +

= +

Ejemplo.

Sea la función compleja de variable compleja 3: / ( ) 2f C C f z z→ = + , para la misma se desea conocer las componentes real e imaginaria y determinar en que se transforma la región dada por:

( , ) / 4, 6 6x y C x yℜ = ∈ = − ≤ ≤

Los comandos para realizar lo pedido, se muestran en la figura 161

Fig. 161. Comandos para realizar los gráficos.

Page 249: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

249

MATLAB devuelve el gráfico mostrado en la figura 162.

Fig. 162. Gráficos correspondientes a la transformación.

En el gráfico anterior se pueden ver los puntos en que se transforma la región dada en el plano xy. En muchos casos interesa ver la superficie correspondiente al módulo y argumento de la función de variable compleja bajo consideración. El ejemplo siguiente ilustra sobre el particular. Ejemplo.

Para la función de variable compleja dada por: 3 2( ) 0.5 3f z z z= − + , se desea hallar y ver en un gráfico los campos escalares dados por:

( , ) ( ) ( , ) arg( ( ))x y f z x y f zρ ϕ= =

Page 250: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

250

En la figura 163, se muestran los comandos necesarios.

Fig. 163. Comandos para graficar los campos escalares.

MATLAB devuelve como salida el gráfico mostrado en la figura 164.

Fig. 164. Módulo y Argumento de f(z).

Page 251: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

251

Ejemplo. Se verá una aplicación a la teoría de circuitos. En la figura165, se muestra el circuito equivalente de un resistor en alta frecuencia. Considerando que la frecuencia (pulsación) varía de 100 rad/seg a 100 M rad/seg se pide: a) Obtener las gráficas del módulo y argumento de la impedancia, así como la parte real (resistencia) y la parte imaginaria (reactancia) en función de la pulsación. b) Obtener el gráfico de la reactancia en función de la resistencia.

Fig. 165. Circuito equivalente del resistor en alta frecuencia. La impedancia compleja del resistor en función de la pulsación, esta dada por:

2( )

(1 )

R j LZ j

LC jRC

ωω

ω ω

+=

− +

Page 252: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

252

Fig. 166. Comandos para realizar las gráficas solicitadas.

Fig. 167. Gráficas que muestran el comportamiento del resistor en alta frecuencia.

MatLab devuelve el gráfico mostrado en la figura 168.

Page 253: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

253

Fig. 168. Reactancia del resistor en función de la resistencia.

27. Diferenciación e Integración numérica. 27.1. Derivación e integración de funciones escalares. MatLab cuenta con varios comandos que permiten hallar la derivada e integral tanto en forma simbólica como en forma numérica. Entre ellos se cuenta con los comandos mostrados en la Tabla Nº 35.

Tabla Nº 35. Algunos comandos para realizar integración y diferenciación de funciones

escalares

Page 254: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

254

Ejemplo

Dada la función 3 3( , ) ( )cos( )f x y x y x y= + + , se desea obtener las derivadas parciales respecto de x e y.

Ejemplo.

Dada la función 2 3( ) 2.15 cosx

f x e x−= , realizar la derivada en forma numérica y obtener

los gráficos de la función y su derivada. En la figura 169 se muestran los comandos necesarios.

Fig. 169. Comandos para graficar la función y su derivada. MatLab devuelve los gráficos mostrados en la figura 170.

Page 255: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

255

Fig. 170. Gráficos de la función y su derivada.

Ejemplo.

Sea la función : 3 2 2 3( , ) 6 3 10f x y x y xy x y= + + + , se desea obtener la integral doble de la misma en el recinto [-1,1] x[-1,1]

Page 256: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

256

Ejemplo.

Dada la función 2( ) cos .cos(2 )f x x x= , calcular la integral, y graficar la función y la integral en el intervalo [0,10].

Fig. 171. Gráficas de la función y su integral

Page 257: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

257

28. Campos vectoriales. Conceptos básicos. Algunos de los comandos que se disponen en MatLab son los mostrados en la tabla nº 36:

Tabla Nº 36. Algunos comandos para trabajar con campos vectoriales.

Ejemplo.

Dado el campo vectorial: 2 2( , ) ( cos2 , 2 )x xx y e y e sen y

− −=f , se desea graficar las líneas de campo.

MatLab devuelve el gráfico mostrado en la figura 172.

Page 258: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

258

Fig. 172. Líneas de campo para la función del ejemplo.

29. Funciones adicionales para manejo de gráficos. Algunas funciones adicionales para el manejo de gráficos se muestran en la tabla Nº 37.

Page 259: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

259

Tabla Nº 37. Algunas funciones adicionales para el manejo de gráficos. Ejemplo.

Se tienen dos funciones : ( ) (3 ), ( ) 15cos(4 )f x sen x g x x= = , y se desea visualizarlas en la misma gráfica.

Fig. 173. Gráficas de las funciones f(x) y g(x).

Page 260: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

260

Ejemplo.

Dada la función 2( )f x x= , realizar una gráfica discreta con la función stem.

MatLab devuelve la salida mostrada en la figura 174.

Fig. 174. Gráfica discreta de la función.

30. Raíces de ecuaciones y mínimos de funciones. 30.1. Raíces de ecuaciones. Para calcular con MatLab una raíz de la ecuación ( ) 0f x = , es decir, un punto en el cual la función f vale 0, se usa la orden: >> fzero('expresion de la función', xprox)

Page 261: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

261

Donde xprox debe ser un valor “próximo” a la raíz buscada. Para elegir xprox se puede, en primer lugar , dibujar la función ( )y f x= y buscar, “ a ojo”, un valor próximo. Ejemplo Calcular con MatLab, una raíz de la ecuación: ln( 3) 0x x+ =

>> ezplot('x+log(x/3)').

MATLAB entrega el gráfico mostrado en la figura 175.

Fig. 175. gráfico de la función del ejemplo.

Se ve, a “simple vista” del gráfico de la figura 175, que la raíz está cerca de 1x = , luego empleamos el comando: >> fzero('x+log(x/3)',1)

ans =

1.0499

Page 262: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

262

Si la ecuación ( ) 0f x = tiene más de una raíz, es necesario tomar “puntos próximos distintos para cada raíz. Ejemplo. Calcular con MatLab, las raíces de la ecuación.

( / 2)cos( ) 0 [ ,3 ]sen x x en π π= −

>> ezplot('sin(x/2).*cos(sqrt(x))',[-pi,3*pi]) >> grid on MatLab devuelve el gráfico mostrado en la figura 176.

Fig. 176. Gráfico de la función del ejemplo.

A “simple vista”, se observa del gráfico de la figura 176 que la función tiene tres raíces: una “cerca” de x=0, otra “cerca” de x=2 y otra “cerca” de x=6. Mediante las instrucciones indicadas en la figura 177, colocadas en la ventana de comandos, se puede calcular fácilmente la función en dichos puntos.

Page 263: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

263

Fig. 177. Cálculo de la función en los puntos (raíces aproximadas) indicados.

Es bastante evidente darse cuenta que los puntos en los cuales se calculó la función no asegura que allí están las raíces correctas. Una vez acotada las raíces, las mismas se podrán calcular mediante diversos métodos disponibles. Uno de ellos es tomar un intervalo pequeño alrededor de la raíz y graficar la función de la misma manera. Dejamos a los lectores esta tarea. 30.2. Raíces de polinomios. Si lo que se desea es calcular las raíces de un polinomio

11 1 0 0n n

n na x a x a x a−

−+ + + + =…

Se puede usar la orden roots, que calcula todas las raíces del polinomio (incluidas las raíces complejas, si las tiene). Donde p es el vector cuyas componentes son los coeficientes del polinomio, ordenados en orden decreciente de potencias de x:

Page 264: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

264

Ejemplo.

Calcular las raíces de la ecuación polinómica: 3 25 11 0

2 2x x x− + + =

Ejemplo.

Calcular las raíces de la ecuación polinómica: 3 1 0x + =

30.3. Mínimos y máximos de funciones. Para calcular el (punto en el que se produce el) mínimo de una función ( )y f x= en un intervalo [a,b], se puede usar la orden:

fminbnd (‘expresion_de_la_funcion’,a,b)

Ejemplo.

Calcular el mínimo de la función: 2( ) 2 1 [ 2,2]f x x x en= + − −

Page 265: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

265

Para calcular el máximo de una función ( )y f x= en un intervalo [a,b], hay que calcular el

mínimo de la función ( )y f x= − en el mismo intervalo. Ejemplo.

Calcular el máximo de la función: 2( ) 2 1 [ 2,2]f x x x en= + − −

Ejemplo.

Hallar el mínimo de: 3

[ 1,1]

( )x

f x x x∈ −

= −

Page 266: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

266

Gráficamente se puede ver el mínimo en el intervalo [-1, 1], en la figura 178.

Fig. 178. Gráfico de la función con indicación del mínimo.

Otra manera de determinar mínimos relativos de funciones no lineales :N

f R R→

Se hace con MatLab mediante la función mostrada en la tabla Nº 38.

Tabla Nº 38. Otra manera de determinar mínimos.

Ejemplo.

Hallar el mínimo relativo de la función: ( ) (ln( ))f x sen x= .

En la figura 179 se muestra el conjunto de instrucciones para realizar la determinación del mínimo relativo y obtener la gráfica, y en la Figura 180 se muestra la gráfica de la función.

Page 267: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

267

Fig. 179. Conjunto de comandos para determinar el mínimo y la gráfica.

Fig. 180. Gráfica de la función. Ejemplo:

Hallar el mínimo relativo de la función : 2:f R R→ 1 2( ) ( ) ( )

2 2

x xf x sen sen=

Page 268: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

268

Fig. 181. Conjunto de instrucciones para realizar los cálculos y obtener las gráficas.

Fig. 182. (a) Superficie, y (b) curvas de nivel.

Page 269: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

269

31. Resolución numérica de ecuaciones diferenciales. 31.1 Ecuación diferencial única. MatLab dispone de varias funciones para resolver numéricamente Problemas de Valor Inicial para las Ecuaciones Diferenciales Ordinarias del tipo:

( , ) [ , ]

( )

o f

o o

dy dt f t y en t t

y t y

=

=

En la tabla Nº 39 se muestran algunas de las instrucciones disponibles.

Tabla Nº 39. Algunas instrucciones para resolver numéricamente las ODE

Para la mayoría de los casos será suficiente con utilizar ode45 o bien ode23. Para casos difíciles, ver la documentación de MatLab (help). La utilización de todas estas funciones ode* * es similar. Lo indicado en la tabla Nº 40 para ode23, es válido para cualquier otra.

Page 270: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

270

Tabla Nº 40. Instrucción para ejecutar ode23.

Ejemplo

Calcular la solución de : ' 2 [1, ]

(1) 0.5

y t y en

y

π = +

=

Las instrucciones son simples y se muestran a continuación:

MatLab devuelve el gráfico mostrado en la figura Nº 183.

Fig. 183. Gráfico de la solución de la ecuación diferencial.

Page 271: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

271

Otra manera de resolver la ODE es mediante los comandos indicados en la figura 184.

Fig. 184. Conjunto de comandos para graficar la solución, con un método alternativo, indicado en las tablas precedentes.

Page 272: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

272

MatLab devuelve la gráfica mostrada en la figura 185.

Fig. 185. Gráfica de la solución con el método alternativo.

Ejemplo.

Calcular la solución de: / 0.2cos( )

2

(1) 0.5

tdy dt y

y

=

=

Page 273: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

273

MatLab devuelve el gráfico de la solución, mostrado en la figura 186.

Fig.186. Gráfico de la solución de la ODE

Una sentencia que permite calcular la solución en puntos intermedios del intervalo es:

Ejemplo Calcular la solución de la ecuación diferencial indicada, y obtener la misma para 40 puntos del intervalo [1, pi].

/ 0.2cos( ) [1, ]2

(1) 0.5

tdy dt y en

y

π

= =

Page 274: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

274

MatLab devuelve el gráfico mostrado en la figura 187:

Fig. 187. Gráfico de la solución con los 40 puntos utilizados para la solución

Una sentencia que permite evaluar la solución para ciertos valores de parámetros es:

Ejemplo. Escribir un programa, en el m-file, que permita resolver el problema siguiente, para distintos valores del parámetro a:

/ cos( ) [0,6 ]2

(0) 1

tdy dt a y en

y

π

= =

Page 275: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

275

En el m-file se escribe el siguiente programa:

Luego en la ventana de trabajo se introducen las sentencias que permiten obtener la solución.

MatLab devuelve el gráfico mostrado en la figura 188.

Fig. 188. Gráfico de la solución para a = 1.

Page 276: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

276

MatLab devuelve el gráfico mostrado en la figura 189.

Fig. 189. Gráfico de la solución para a = 2.5. 31.2. Sistemas de Ecuaciones Diferenciales. Los sistemas de ecuaciones diferenciales se resuelven exactamente igual, teniendo en cuenta que, en este caso, la función del segundo miembro y la condición inicial toman valores vectoriales.

Page 277: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

277

Ejemplo. Resolver el siguiente sistema de ecuaciones diferenciales:

2 3

1 2 3 1 3

1 2

2 1 3

3 1 2

1 0

2

3

/ / ( , ) 0.7

0.5

/ 0.7

/ 0.5

0

(0) 0 (0) 1

1

(0) 1

(0) 1

y y

dy dt y y dY dt F t y y y

y y

dy dt y y

dy dt y y

y Y Y

y

y

= = = − −

= − = −

= = =

=

=

En la figura 190, se muestra la gráfica de la solución del sistema ODE.

Fig. 190. gráfica de la solución para el sistema ODE

Page 278: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

278

Ejemplo. Resolver el sistema de segundo orden:

2 2 1/ ( )

(0) 1

/ (0) 1

d y dt sen ydy dt

y

dy dt

= −

=

=

Realizando un cambio conveniente de variables, se obtiene:

2

2 1

0

/ ( , )1 ( )

1(0)

1

zdZ dt F t Z

z sen z

Z Z

= = −

= =

Sobre la pantalla de trabajo se cargan las instrucciones que se muestran a continuación:

MatLab devuelve el gráfico que se muestra en la figura 191.

Page 279: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

279

Fig. 191. Gráfica de la solución y su derivada. Otra manera de resolver las ecuaciones diferenciales y sistemas de ecuaciones diferenciales, mediante MatLab, es en la forma simbólica. Para ello MatLab cuenta con una serie de comandos, entre los cuales se pueden mencionar los mostrados en la tabla Nº 41.

Tabla Nº 41. Algunos comandos para resolver ODE en forma simbólica.

Ejemplo. Resolver y graficar la solución de la ecuación diferencial:

Page 280: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

280

( )( ) 5

(0) 1

dx tx t

dt

x

+ =

=

MatLab devuelve el gráfico mostrado en la figura 192.

Fig. 192. Gráfico de la solución simbólica de la ODE

Page 281: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

281

Ejemplo. Resolver y graficar la solución de la siguiente ecuación diferencial.

2

2

( )( ) / 2 ( )

(0) 1

(0) / 0

td x tdx t dt x t e

dt

x

dx dt

+ + =

=

=

>> x=dsolve('D2x+Dx=-2*x+exp(t)','x(0)=1','Dx(0)=0','t') x = 1/4*exp(t)+3/4*exp(-1/2*t)*cos(1/2*7^(1/2)*t)+1/28*exp(-1/2*t)*sin(1/2*7^(1/2)*t)*7^(1/2) >> ezplot('1/4*exp(t)+3/4*exp(-1/2*t)*cos(1/2*7^(1/2)*t)+1/28*exp(-1/2*t)*sin(1/2*7^(1/2)*t)*7^(1/2)',[0,5]) >> grid on >> ylabel(' x(t)') MatLab devuelve el gráfico la figura 193.

Fig. 193. Gráfico de la solución simbólica de la ODE.

Page 282: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

282

32. SIMULINK Simulink sirve para modelar, simular y analizar sistemas, los cuales pueden se lineales o no lineales, de tiempo continuo o de datos muestreados o combinación de ambos. Los sistemas discretos con los que puede trabajar SIMULINK, pueden ser de distinta frecuencia de muestreo. Los sistemas que se simulan en SIMULIK reciben el nombre de modelos. Para modelar sistemas, SIMUINK tiene una interfase gráfica que permite construir modelos en la forma de diagramas en bloques. Para este propósito, SIMULINK, incluye una muy completa biblioteca de componentes lineales, no lineales, fuentes(sources) , elementos de salida(links) y conectores. Adicionalmente el usuario puede crear sus propios componentes Después de que se define un modelo para un sistema, este se simula utilizando SIMULINK. Las limitaciones para los modelos de SIMULINK la determina la cantidad de Toolboxes que se hayan comprado. 32.1. Ecuaciones diferenciales como modelos Matemáticos. Es importante considerar el concepto que relaciona un modelo matemático y una ecuación diferencial. En general es deseable describir el comportamiento de un sistema o fenómeno real, ya sea físico, sociológico o incluso económico, en términos matemáticos. La descripción matemática de un sistema o fenómeno se llama modelo matemático y se construye con ciertos objetivos en mente. Ejemplos de estos objetivos, podrían ser:

Determinar la amplitud y periodo de las oscilaciones de un Flapper (alerón) de avión.

Entender el mecanismo de cierto ecosistema al estudiar el crecimiento de poblaciones animales en ese sistema.

Fechar fósiles al analizar la desintegración de una sustancia radiactiva ya sea en el fósil o en el estrato en el que se descubrió.

Estudio de la caída de cuerpos considerando la resistencia del aire. Estudio de un cable colgante (puente, cables telefónicos o líneas de tensión

eléctrica). Estudio de la tensión y corriente a lo largo de una línea de transmisión. Estudio de la trayectoria (en el plano) de un móvil terrestre (Por ej. automóvil)

considerando masa variable y resistencia del aire, frente a la fuerza suministrada por la planta motriz.

Estudio de la velocidad de reacción al mezclar dos(o más) sustancias químicas con una dada concentración, temperatura y caudal.

Etc. La construcción de un modelo matemático de un sistema comienza con:

i. Identificación de las variables a las que se les atribuye el cambio en el sistema. Al principio se podría elegir incorporar todas estas variables en el modelo. En este paso se está especificando el nivel de resolución del modelo.

Page 283: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

283

ii. Elaboración de un conjunto razonable de suposiciones o hipótesis acerca del sistema que se está intentando describir. Estas suposiciones también incluirán algunas leyes empíricas que podrían ser aplicables al sistema.

Para algunos propósitos podría ser perfectamente válido conformarse con modelos de baja resolución. Por ejemplo en los cursos de física básica muchas veces se ignora la resistencia del aire cuando se estudia el movimiento de un cuerpo cerca de la superficie terrestre. Pero si se trata de un científico, cuyo trabajo es predecir con precisión la trayectoria de vuelo de un proyectil de largo alcance, se tiene que tomar en cuenta la resistencia del aire y otros factores como ser la curvatura de la tierra. Las suposiciones que se hacen con respecto a un sistema con frecuencia tienen que ver con una rapidez de cambio de una o más de las variables. Así la representación matemática de todas estas suposiciones podría ser una ecuación o un sistema de ecuaciones con derivadas. En otras palabras, el modelo matemático puede ser una ecuación diferencial o un sistema de ecuaciones diferenciales. A los fines de recordar haremos una breve síntesis sobre ecuaciones diferenciales. a.- Ecuación diferencial. Se dice que una ecuación que contiene derivadas de una o más variables dependientes, con respecto a una o más variables independientes, es una ecuación diferencial (ED). a1.- Clasificación por tipo Si una ecuación contiene solo derivadas ordinarias de una o más variables dependientes con respecto a una sola variable independiente se dice que es una ecuación diferencial ordinaria (EDO). Ejemplos: Ecuaciones diferenciales ordinarias

2

27 2 ; 3 8 0; 3xdy d y dy dx dy

y e y x ydx dx dt dtdx

+ = + + = + = +

Una ecuación con derivadas de una o más variables dependientes respecto de dos o más variables independientes se llama ecuación diferencial parcial (EDP). Ejemplos: Ecuaciones diferenciales parciales (EDP).

2 2 2 2

2 2 2 20 ; 3 ;

u u u u u u v

t y xx y x t

∂ ∂ ∂ ∂ ∂ ∂ ∂+ = = − = −

∂ ∂ ∂∂ ∂ ∂ ∂

a2.- Clasificación según el orden.

Page 284: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

284

El orden de una ecuación diferencial (ya sea EDO o EDP) es el orden de la derivada mayor en la ecuación. Ejemplos: En la figura 194 se muestran algunos casos de orden para una ODE

Fig. 194. Ejemplos de orden en las ODE.

a3.- Clasificación según la linealidad. a3.1.- Ecuación diferencial ordinaria(EDO) de orden n Una ecuación diferencial ordinaria (EDO) de orden n, se expresa en la forma:

( )2 2, , , , , 0n nF x y dy dx d y dx d y dx =

Donde F es una función de valores reales de 2n + variables: ( ), , , , , , n

x y y y y y′ ′′ ′′′ …

Se dice que una ecuación diferencial ordinaria de orden n (como la anteriormente indicada)

es lineal si F es lineal en ( ), , , , , n

y y y y y′ ′′ ′′′ … . Esto significa que una EDO es lineal si

se cumple que:

1

1 11( ) ( ) ( ) ( ) ( )

n n

n n on n

d y d y dya x a x a x a x y g x

dxdx dx

− −+ + + + =

Casos especiales importantes en ingeniería y ciencias son:

• las EDO lineales de primer y segundo orden:

Page 285: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

285

• EDO lineales de orden n a coeficientes constantes.

1 2

1 2 11 2( )

n n

n n on n

d y d y d y dya a a a a y g x

dxdx dx dx

− −+ + + + =

a3.2.- EDO no lineal Una EDO se dice que es no lineal, cuando sus coeficientes(o parámetros) son funciones de la variable dependiente, o son funciones no lineales de la variable dependiente. En la figura 195 se muestran algunos ejemplos de ODE no lineales.

Fig. 195. Ejemplos de ODE no lineales. La ecuaciones indicadas en la figura 195, son ecuaciones diferenciales no lineales de primer orden, de segundo orden y de tercer orden respectivamente.

Page 286: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

286

b.- Solución de una EDO Cualquier función, φ , definida en un intervalo I y con al menos n derivadas continuas en I,

que al substituirse en una EDO de n-ésimo orden, reduce la ecuación a una identidad, se considera solución de la ecuación en el intervalo I. En forma sintética:

( )( , ( ), ( ), ( ), , ( )) 0 ,nF x x x x x x enφ φ φ φ′ ′′ = ∀ Ι…

Normalmente se dice que φ (muchas veces se designa por ( )y x ) satisface a la EDO

en el intervalo Ι .

b.1.- Curva solución. La gráfica de una solución ( ) ( )x o y xφ de una EDO se llama curva solución. Como

( ) ( )x o y xφ , es una función diferenciable, resulta continua en el intervalo I, de

definición Nota: Puede haber una diferencia entre la gráfica de la función φ y la gráfica de la

Solución φ . Esto puede interpretarse de la siguiente manera: el dominio de la función φ no

necesita ser el mismo que el intervalo I, de definición (o dominio) de la solución φ c.- Sistema de ecuaciones diferenciales. Sistemas Dinámicos. Con mucha frecuencia en la teoría y en muchas aplicaciones prácticas se debe tratar con sistemas de ecuaciones diferenciales. Un sistema de ecuaciones EDO, consta de dos o más ecuaciones con las derivadas de dos o más funciones desconocidas de una sola variable independiente. Así, por ejemplo:

( , , )

( , , )

dxf t x y

dt

dyg t x y

dt

=

=

El sistema EDO anterior, es un sistema de dos ecuaciones diferenciales ordinarias de primer orden. Si en número de variables x es “n” y el número de variables y es “p”, el sistema de

ecuaciones EDO de primer orden se puede escribir en forma vectorial, como sigue:

Page 287: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

287

( , , )

( , , )

dt

dt

dt

dt

=

=

xf x y

yg x y

Donde:

11

22

( )( )

( )( ),

( )( ) pn

y tx t

y tx t

y tx t

= =

x y

Las ecuaciones precedentes juegan un papel muy importante en el estudio de los sistemas dinámicos. “Un sistema que cambia o evoluciona con el paso del tiempo recibe el nombre de

sistema dinámico” El estudio de los sistemas dinámicos es una rama de la Matemática muy relacionada con la Ingeniería, de manera que representa un papel fundamental en la formación de los ingenieros. Un sistema dinámico consiste en un conjunto de variables dependientes del tiempo, llamadas variables de estado, junto con una regla que permite determinar sin ambigüedad el estado del sistema (pudiendo ser un estado pasado, presente o futuro) en

términos de un estado prescrito en algún tiempo 0t .

Los sistemas dinámicos se clasifican en relación con el tiempo, en:

• Sistemas discretos

• Sistemas continuos En los sistemas dinámicos discretos(o de datos muestreados) el tiempo toma valores en

instantes definidos de tiempo, 1 2, , , kt t t… , de manera que las variables de estado solo

están definidas en esos instantes de tiempo. La regla, o modelo matemático, en un sistema dinámico discreto es una ecuación de diferencias o un sistema de ecuaciones de diferencias. En los sistemas dinámicos continuos en el tiempo, las variables de estado se definen en un intervalo de tiempo continuo. La regla, o modelo matemático, en un sistema dinámico continuo es una ecuación diferencial o un sistema de ecuaciones diferenciales.

Page 288: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

288

El estado del sistema en un tiempo t es el valor de las variables de estado en ese

momento; el estado especificado del sistema en el tiempo 0t es simplemente el valor de las

condiciones iniciales que acompañan al modelo matemático. La solución del problema de valores iniciales se denomina respuesta del sistema. Con esta breve introducción a las ED (EDO y EDP) nos abocaremos al tema de SIMULINK 32.2. Inicio de SIMULINK. Para usar SIMULINK, hay que estar trabajando con MATLAB. SIMULINK se puede iniciar

con una pulsación (click) sobre el icono de SIMULINK: que se encuentra en la barra de tareas de MATLAB, o bien escribiendo la palabra SIMULINK en la ventana de comandos de MATLAB y dando enter, lo cuál conduce a la ventana mostrada en la figura 196.

Fig. 196. SIMULINK Library Browser

En la figura precedente se puede ver que aparece el Manejador de la biblioteca de SIMULINK (SIMULINK Library Browser), donde se muestran las bibliotecas de bloques. Para observar los elementos o bloques que cada biblioteca tiene sólo se debe colocar el cursor sobre la biblioteca y se observa los componentes que contiene en la parte derecha de la ventana. Así, por ejemplo, si se abre la biblioteca de “Continuous”, se obtiene la pantalla que se muestra en 197.

Page 289: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

289

Fig. 197. Ejemplo de la Biblioteca de Elementos Continuos.

Un Ejemplos de otra librería se muestra en la figura 198.

Fig. 198. Ejemplo de la librería de sistemas discretos.

Page 290: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

290

32.3. Creación y corrida de un Modelo con Simulink. Para comenzar la creación de un modelo con SIMULINK, se selecciona New Model en el menú File, con lo que se abre una ventana para “armar” el modelo, como la que se muestra en la figura 199.

Fig. 199. Ventana para armar el modelo Como se puede observar la ventana precedente no tiene “título”, ya que está etiquetada como untitled. Si se va a realizar la simulación de un problema de interés, es muy conveniente colocarle un título. Para colocar un título se ingresa al menú File y se selecciona Save as (Guardar como), con lo cuál se abre una pantalla como la que se muestra a continuación, en la misma se debe definir dónde se desea guardar el archivo, para ello se selecciona el lugar en la ventana Guardar en , pero antes de guardar conviene colocarle un título al modelo en la ventana Nombre , en la figura que se muestra a continuación el título asignado es Modelo_1 y se guardará en el archivo Work . Una vez guardado el archivo se puede abrir el mismo entrando en el menú File y haciendo Clic en Open. En la figura 200 se muestra la ventana que permite guardar el Modelo_1 en el espacio Work.

Page 291: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

291

Fig. 200. Ventana que permite guardar en el archivo Work el Modelo_1 Ejemplo Supóngase que se desea simular el modelo matemático de un sistema dinámico real dado por la EDO que se indica a continuación:

2

2

( ) ( )2 ( ) ( )

d y t dy ty t u t

dtdtα+ + =

Para: 1, 2, 8, 4, ( )con u t escalón unitarioα = = , frente a las condiciones

iniciales (0) 0, (0) 0dy dt y= = .

Para realizar la simulación conviene, en primer lugar, despejar la derivada de mayor orden, que para el ejemplo es:

2

2

( ) ( )2 ( ) ( )

d y t dy ty t u t

dtdtα= − − =

Page 292: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

292

Suponiendo conocida la derivada de mayor orden, se integra dos veces hasta obtener la solución ( )y t , como se muestra en la figura 201

Fig. 201. Obtención de la solución a partir de la derivada segunda. La integración se realiza con el bloque “integrador”, que permite introducir la entrada y la condición inicial. Para completar la EDO, se debe obtener la derivada segunda en función de la derivada primera, la solución y la variable exterior (entrada), como establece la última ecuación. En forma de bloques, lo dicho es como se muestra en la figura 202.

Fig. 202. Diagrama en bloques de la ODE del ejemplo.

Page 293: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

293

Para “armar” el modelo en SIMULINK, abrimos la pantalla de trabajo que hemos designado Modelo_1, y sobre la misma realizaremos el “armado” del modelo. Para ello se necesitan los siguientes bloques:

• Integrator (integrador): se encuentra en la biblioteca “Continuous” • Sum (Sumador): se encuentra en la biblioteca “Math operations”

• Gain (Ganancia): se encuentra en la biblioteca “Math operations”

• Step (Fuente de señal escalón): se encuentra en la biblioteca “Sources”

• Scope (osciloscopio) [uno de los tantos elementos de visualización disponible en SIMULINK]. se encuentra en la biblioteca “Sinks”

• Mux (multiplexor) que permite ver en un mismo gráfico varias señales al mismo

tiempo. Se encuentra en la biblioteca “Signal & Systems”

Todos los elementos mencionados precedentemente se “copian”, “arrastrándolos con el Mouse” a la pantalla de trabajo denominada Modelo_1 (guardado con la extensión .mdl de model), como se muestra en la pantalla de la figura 203.

Fig. 203. Pantalla del Modelo_1, donde se muestran los bloques a utilizar. Los paréntesis angulares (>) junto a cada bloque indican si una señal entra o sale del bloque. Así, si el símbolo > apunta hacia fuera del bloque está indicando un puerto de salida. Si el símbolo > apunta hacia adentro del bloque, entonces es un puesto de entrada. En el bloque Step (escalón) la señal sale, mientras que en el bloque Scope la señal entra.

Page 294: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

294

En los bloques: Integrator, Mux, Gain y Sum hay señales que entran y salen. Para conectar los bloques entre sí, se coloca el cursor en el puerto de salida del Step y manteniendo el “botón izquierdo” del “mouse” presionado, se mueve el cursor hasta el puerto de entrada superior del Sum. Así se puede ver que se forma una línea punteada y que el puerto de entrada del Sum cambia a +. Al soltar el botón los dos puertos quedan conectados. Se puede hacer una ramificación de una conexión a un puerto de entrada. Se coloca el cursor sobre la conexión y con el botón derecho del “mouse” presionando se conecta hasta el puerto de entrada deseado (con una sola mano) como se muestra en la figura anterior. También se puede realizar apretando “Ctrl” del teclado, y con el cursor colocado sobre la conexión se conecta hasta el puerto de entrada (esto requiere las dos manos). Haciendo “doble Clic” sobre un punto cualquiera de la pantalla de trabajo, se abre una ventana que permite escribir textos. Una vez escrito el texto, se puede llevar al lugar deseado, haciendo nuevamente “clic” con el botón derecho del mouse sobre el texto escrito y arrastrando hasta el lugar deseado. Realizando esto con todos los bloques, se obtiene la pantalla que se muestra en la figura 204.

Fig. 204. Pantalla del Modelo_1 armado y listo para correr.

Page 295: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

295

Antes de realizar la simulación del modelo(o “corrida” del mismo) se deben colocar los parámetros en los bloques “Gain”s, la amplitud del escalón, “Step”, de entrada, y las condiciones iniciales de los integradores. Ingresando en el menú “Simulation” se escogen los “Simulation Parameters” en la ventana que se indica en la figura 205. Aquí seleccionamos el tiempo final de simulación Stop time de 12 seg., y se presiona Ok para aceptar el valor. Para comenzar la simulación se pueden usar dos caminos: ingresar al menú

“Simulation” y presionar el botón “Start”, alternativamente se puede utilizar el icono (Start simulation) en la barra de herramientas.

Fig. 205. Pantalla de “Simulation Parameters”, donde se establecen los parámetros de simulación

Para ver la salida en Scope, se abre el bloque Scope con el botón derecho y se selecciona Open Block como se muestra en la figura 206.

Page 296: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

296

Fig. 206. Apertura del Scope con el botón derecho del mouse, Open Block. La figura 207 muestra el resultado obtenido para ∝ = 1 y con el escalón unitario aplicado en t =1 seg. En la gráfica obtenida se pueden ver la función y sus derivadas como así también el escalón unitario de entrada.

Fig. 207. Respuesta del sistema, para α = 1, en la pantalla Scope.

Page 297: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

297

En la figura 208 se muestra la respuesta del sistema para α= 8

Fig. 208. Respuesta del sistema para α= 8

En la figura 209, se muestra la respuesta del sistema para α=4

Fig. 209. Respuesta del sistema para α=4

Page 298: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

298

Conclusión:

Para el modelo del ejemplo se puede observar que a medida que aumenta el coeficiente ∝

(coeficiente de la derivada primera) la respuesta ( )y t se hace cada vez más amortiguada

y el sistema es cada vez más lento. Esto se corresponde con lo que le sucede a los sistemas físicos caracterizados por el modelo del ejemplo, como podrían ser: sistemas mecánicos M-B-K, sistemas electrónicos R-L-C y otros similares. En lo que sigue, se analizarán con cierto detalle algunos bloques de simulación muy comunes, con el objeto de que los lectores puedan hacer lo mismo con otros bloques de SIMULINK.

32.4. Elemento ScopeScopeScopeScope (Osciloscopio) Si observamos las tres figuras anteriores se nota que en la ventana de Scope aparece una barra de herramientas que permite realizar distintas funciones sobre la gráfica que tenemos a la vista. La función de estos iconos se muestra, con su nombre, en la figura 210 , y se invita al lector a utilizarlos en alguna de las gráficas anteriores.

Fig. 210. Iconos de la ventana Scope.

Page 299: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

299

Una breve explicación de las herramientas más utilizadas son las siguientes Print Sirve para imprimir la gráfica que Scope presenta en ese momento. Parámetros Abre una ventana para indicar el número de ejes, el rango de tiempo, poner marcadores a las curvas, indicar si es Scope flotante. Además da la opción de enviar los resultados a la ventana de trabajo de MATLAB, para su uso en otro programa , y de limitar el número de puntos de los datos a graficar. Cuando se selecciona la ventana parámetros, Scope devuelve la pantalla “Scope Parameters” como se muestra en la figura 211.

Fig. 211. Ventana de Parámetros del Osciloscopio.

En caso de seleccionarse varios ejes (o señales de entrada), por ejemplo 4 (cuatro), se obtiene el scope como muestra la figura 212.

Fig. 212. Osciloscopio de cuatro entradas.

Page 300: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

300

Haciendo “clic” sobre el “Scope”, se despliegan cuatro ventanas donde se ubicarán los cuatro (4) gráficos, como se muestra en la figura 213.

Fig. 213. Ventana del “Scope” de 4 entradas. Autoescalar Fija automáticamente los ejes dentro de los rangos de la señal graficada. Selección de señal Permite seleccionar cualquiera de las señales disponibles en el Modelo.

32.5 Elemento IntegratorIntegratorIntegratorIntegrator (Integrador) El bloque integratorintegratorintegratorintegrator permite realizar la integral continua en el tiempo de la señal de entada. Haciendo doble clic sobre el icono del integrador se despliega una ventana como la mostrada por la figura 214.

Page 301: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

301

Fig. 214. Ventana de los parámetros del generador escalón. External reset none: ninguno rising: El integrador se pone a cero (“resetea” )en el flanco Ascendente del pulso. El símbolo del integrador muestra la entrada de señal que realiza la puesta a cero en el flanco ascendente

falling: El integrador se pone a cero (“resetea” )en el flanco Descendente del pulso. El símbolo del integrador muestra la entrada de señal que realiza la puesta a cero en el flanco descendente.

Page 302: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

302

either: El integrador se pone a cero (“resetea” ) con ambos de flancos del pulso de entrada. El símbolo del integrador muestra la entrada de señal que realiza la puesta a cero.

level: El integrador se pone a cero con un nivel de la señal de reset. El símbolo del integrador se muestra como:

Inicial condition internal: La condición inicial se establece internamente, y el símbolo del bloque se muestra como:

External: La condición inicial se establece externamente, y el símbolo del bloque integrador cambia al siguiente:

Limit Output inf: Upper saturation limit Permite establecer el límite superior de saturación. -inf: Lower saturation limit Permite establecer el límite superior de saturación. El bloque integrador se muestra como:

Show saturation port Colocando un tilde, en la ventana correspondiente, se puede ver el puerto de saturación, y el bloque se muestra como:

Show state port Colocando un tilde, en la ventana correspondiente, se puede ver el puerto de estado, y el bloque se muestra como:

Page 303: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

303

32.6. Elemento StepStepStepStep

El elemento Step Step Step Step es una de las señales de entrada (variable independiente) muy utilizada para excitar sistemas reales. Este elemento se obtiene Haciendo “Clic” en sources→step y se arrastra a una

ventana de trabajo, allí haciendo “doble Clic” sobre el logo step se obtiene la ventana “Block Parameters: Step“, que se muestra a continuación. En el Block se tienen las siguientes ventanas: Step time: En esta ventana se determina el instante de tiempo en el cuál se aplica el escalón. Inicial value: En esta ventana se determina el valor inicial del escalón. Final value: En esta ventana se determina el valor final del escalón. Sample time: Es el tiempo en el cuál se toma la muestra de la señal escalón. Si el “Sample time” es menor que el “Step time” toma como instante de cambio del escalón el Step time. Por el contrario si el Sample time es mayos que el Step time, toma como valor del cambio escalón el Sample time. En la figura 215, se muestra la ventana de parámetros del Block “Step”.

Page 304: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

304

Fig. 215. Ventana de parámetros del bloque “Step”.

32.7 Elemento Transfer functionTransfer functionTransfer functionTransfer function

Dentro de los elementos lineales y de señales continuas, se encuentra el bloque TransferTransferTransferTransfer

functionfunctionfunctionfunction. Al realizar un doble “clic” sobre el bloque, MATLAB devuelve la pantalla designada Block Parameters: Transfer fcn que se muestra a continuación. Parameters Numerator [ ] Entre corchetes se colocan los coeficientes del numerador de la Función Transferencia, como polinomio, comenzando con la potencia mayor. Si algún coeficiente falta se coloca cero. Parameters Denominator [ ] Entre corchetes se colocan los coeficientes del numerador de la Función Transferencia, como polinomio, comenzando con la potencia mayor. Si algún coeficiente falta se coloca cero.

Page 305: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

305

En la figura 216, se muestra la ventana de parámetros del bloque:”Transfer Fcn”

Fig. 216. ventana de parámetros del bloque “Transfer Fcn” Ejemplo:

Cargar el bloque cuya función transferencia sea

2

3 2

0.5 2 1( )

5 3 8

s sG s

s s s

+ +=

+ + +

En el Bloque: Transfer fcn, de la figura 217, se muestra como se cargan los coeficientes del numerador y denominador.

Fig. 217. Bloque de parámetros de “Transfer Fcn”.

Page 306: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

306

Una vez cargados los coeficientes, se acepan mediante el botón de OK , y MATLAB devuelve el bloque correspondiente, que se muestra a continuación.

Nota: Para los sistemas físicos reales, el grado del denominador es siempre mayor o igual al grado del numerador, es decir:

n m≥

Ejemplo. Obtener la respuesta a un escalón unitario de entrada, aplicado en t = 0, para un sistema mecánico M-B-K (Masa – fricción viscosa - constante elástica) cuyo modelo matemático está dado por :

2

2

( ) ( )( ) ( )

d x t dx tf t M B kx t

dtdt= + + , Con los siguientes valores:

10, 5, 20, ( ) escalón de 1NM B K f t= = = = Donde ( )f t : Fuerza exterior, aplicada al sistema (entrada).

( )x t : Desplazamiento de la masa M (salida).

Transformando la ecuación diferencial precedente con todas las condiciones iniciales nulas, se obtiene:

( )2( ) ( )F s Ms Bs k X s= + +

La Función Transferencia, por definición es, la relación de la transformada de Laplace de la salida sobre la transformada de Laplace de la entrada, para condiciones iniciales nulas, es decir:

2 2

( ) 1 1( )

( ) 10 5 20

X sG s

F s Ms Bs k s s= = =

+ + + +

En la ventana de trabajo de SIMULINK designada UNLZ_1, indicada en la figura 218, se muestra el diagrama en bloques (Diagrama de simulación dinámica) del sistema correspondiente al ejemplo. Como se puede observar se agregó un bloque display, que

Page 307: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

307

permite obtener con exactitud el valor en régimen estacionario ( )t → ∞ , del

desplazamiento x (t).

Fig. 218. Diagrama en bloques del sistema UNLZ_1 Fijando los valores del generador Step según los datos, y realizando una corrida del modelo, se obtiene en el elemento de salida Scope, la respuesta del sistema, es decir el desplazamiento x (t) de la masa M. En el gráfico de la figura 219,se muestra la respuesta obtenida.

Fig. 219. Respuesta del sistema M-B-K.

Page 308: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

308

Como se puede observar se obtiene una respuesta (desplazamiento de la masa M) de tipo subamortiguada. El valor en régimen estacionario, ( )t → ∞ , del desplazamiento x (t), se puede calcular

con el teorema del valor final, es decir:

20 0

1 1lim ( ) ( ) lim ( ) lim 0.05

2010 5 20t s s

x t x s G s ss s→∞ → →

= ∞ = = = =+ +

Como se puede observar, el valor calculado con el teorema del valor final de la transformada de Laplace, coincide totalmente con el indicado por el bloque display. Comentario Importante: El método de simulación desarrollado en el ejemplo precedente, presenta por lo menos dos inconvenientes importantes:

1. No admite el análisis del sistema sin excitación exterior, y sometido a condiciones iniciales no nulas (sistema autónomo).

2. No se tiene acceso a las variables internas del sistema, en este caso la velocidad

y aceleración de la masa M. Para solucionar la desventaja del método anterior (Función Transferencia / FT) se puede expresar la ecuación diferencial (modelo del sistema físico M-B-k), despejando la derivada de mayor orden (es decir la aceleración), de la siguiente manera:

2

2

( ) ( ) 1( ) ( )

d x t B dx t kx t f t

M dt m Mdt= − − +

2

2

( ) ( )0.5 2 ( ) 0.1 ( )

d x t dx tx t f t

dtdt= − − +

Si se integra la ecuación precedente dos veces, se obtiene el desplazamiento de la masa m, es decir ( )x t . Luego de integrar dos veces, se debe cumplir con la ecuación diferencial del

sistema, expresada como se indicó precedentemente. Lo dicho se puede llevar a un

Page 309: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

309

diagrama en bloques, que representa un nuevo modelo del sistema, que llamaremos UNLZ_2. En la figura 220 se muestra el diagrama en bloques, correspondiente al sistema M-B-K.

Fig. 220. Diagrama en bloques del sistema M-B-K

Como se puede observar en el diagrama precedente, el modelo del sistema muestra las variables internas (aceleración y velocidad) además del desplazamiento x(t), que en este caso coincide con la salida del sistema .

En la figura 221, se muestra la respuesta del sistema, obtenida con el modelo precedente.

Page 310: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

310

Fig. 221. Respuesta del sistema M-B-K a una entrada escalón unitario.

Esta nueva representación del mismo sistema M-B-k, permite ver las ventajas de la misma:

• Se pueden ver todas las variables internas del sistema. • Se pueden ver las salidas del sistema. • Por supuesto se pueden ver las entradas al sistema. • Se puede analizar el sistema, frente a condiciones iniciales en el desplazamiento

y la velocidad. Considérese que las condiciones iniciales son

(0) 0.02

(0) 0.05 /

x m

dxm seg

dt

=

=

Estas condiciones iniciales se cargan en los integradores del modelo UNLZ_2 y luego se realiza la simulación registrándose la respuesta del sistema , obteniéndose el gráfico que se muestra en la figura 222 .

Page 311: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

311

Fig. 222. Respuesta del sistema M-B-K frente a condiciones iniciales.

El hecho de expresar el modelo matemático del sistema M-B-K, en función de las variables internas del mismo, conduce a la posibilidad de escribir el modelo matemático del sistema mecánico de segundo orden de otra manera. Si tomamos como variables internas del sistema, las salidas de los integradores (que caracterizan a los acumuladores de energía del sistema) se obtienen:

1

2

( ) ( ) :Variables internas

( ) :

x t x t desplazamiento

x t dx dt velocidad

=≡

=

Entrada al sistema ( ) ( ) :u t f t fuerza≡ =

Salida del sistema ( ) ( ) :y t x t desplazamiento≡ =

Page 312: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

312

La ecuación diferencial de segundo orden se puede escribir como un sistema de dos ecuaciones de primer orden, de la siguiente manera:

1 2

2 2 1

1

dx dt x

B Kdx dt x x u

M M M

=

= − − +

La salida se puede expresar como:

1 20.y x x= +

Las ecuaciones anteriores se pueden escribir en forma matricial, de la siguiente manera:

En el caso del ejemplo los vectores de salida y entrada son escalares, ya que el sistema físico analizado es SISO (Single Input-Single Output), y en forma sintética se representa como se muestra en la figura 223:

Page 313: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

313

Fig. 223. Representación en bloques de un sistema SISO.

En el caso más general de un sistema lineal MIMO (Multiple Input-Multiple Output), se tendrá un sistema como se muestra en el esquema de la figura 224:

Fig. 224. Representación en bloques de un sistema MIMO.

Para el sistema MIMO, el sistema de ecuaciones diferenciales de primer orden, se escribe en notación vectorial de la siguiente manera:

d

dt= +

= +

xAx Bu

y Cx Du

Donde:

Page 314: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

314

1

2

n

x

xVector de estado

x

= ≡

x

1

2

m

u

uVector de entrada

u

= ≡

u

1

2

p

y

yVector de salida

y

= ≡

y

Page 315: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

315

: ( )

: ( )

: ( )

:

( )

Matriz del sistema n n

Matriz de entrada n m

Matriz de salida p n

Matriz de

Transferencia directa p m

×

×

×

×

A

B

C

D

Con los valores de los parámetros para el sistema M-B-K del ejemplo, se obtienen las matrices A, B, C y D.

[ ] [ ]

1 1

2 2

1

2

0 1 0

2 0.5 0.1

1 0 0

dx dt xu

dx dt x

xy u

x

= + − −

= +

32.8 Bloque State-Space Ahora que tenemos el modelo de estado del sistema, estamos en condiciones de utilizar el bloque State-Space de SIMULINK. Este bloque permite cargar las matrices A, B, C, y D del sistema. Haciendo doble “clic” sobre el bloque State-Space, MATLAB presenta la ventana denominada Block Parameters: State-Space que se muestra a continuación: En la figura 225 se muestra la pantalla de parámetros del bloque “State- Space”.

Page 316: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

316

Fig. 225. Pantalla de Parámetros del bloque “State-Space” En cada ventana de los parámetros se cargan las matrices del sistema bajo consideración. Una vez realizada la carga de parámetros se da OK. A continuación se realiza la simulación del modelo y se registra la salida del sistema, en nuestro caso el desplazamiento de la masa M, es decir ( ) ( )y t x t=

En la pantalla de trabajo designada UNLZ_3, figura 226, se muestra el diagrama en bloques para efectuar la simulación.

Page 317: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

317

Fig. 226. Diagrama en bloques de Sistema basado en “State-Space”

Realizando la simulación se obtiene el gráfico, mostrado en la figura 227 donde se indica la salida en función del tiempo.

Fig. 227. Respuesta del sistema basado en el bloque “State-Space”.

Si se desea ver en un mismo gráfico las dos variables de estado, es decir

1( )x t desplazamiento= y 2( )x t velocidad= , empleando el bloque State Space, solo se debe cambiar la matriz de salida para considerar esta situación, es decir se debe hacer lo siguiente:

Page 318: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

318

1 1

2 2

1 0 0

0 1 0

y xu

y x

= +

Introduciendo las nuevas matrices C y D en el bloque State- Space se obtiene el gráfico de la velocidad y desplazamiento de la masa M en la misma pantalla, como se muestra en la figura 228.

Fig. 228. Gráfico de la velocidad y del desplazamiento de la masa M

32.9. Bloque To Workspace. Conexión entre SIMULINK y MATLAB.

Una conexión entre Simulink y MATLAB muy importante es la que permite exportar al workspace un gráfico obtenido en la pantalla del Scope (Osciloscopio) a un gráfico en MATLAB donde el mismo puede ser manejado con el comando plot, como se ha visto oportunamente. Para ello se emplea el bloque To Workspace mostrado precedentemente, que se debe conectar a la salida del sistema, si lo que se desea es llevar los datos del vector de salida y graficarlo en MATLAB con el comando plot. Una vez conectado el bloque To Workspace en el punto deseado del diagrama de simulación se deben seleccionar los parámetros adecuados de dicho bloque, para ello se hace doble “Clic” sobre el bloque y se obtiene la pantalla que se muestra a continuación. Sobre la misma se da un nombre a la variable: variable name→ y , y se guarda el

formato Save Format→ Array, como muestra en la figura 229. Una vez realizada esta asignación de parámetros se realiza la simulación del modelo.

Page 319: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

319

Fig. 229. Parámetros del Bloque: To Workspace.

El diagrama en bloques, donde se coloca el “Bloque To Workspace”, designado como “y”, se muestra en la pantalla de la figura 230.

Fig. 230. Bloque “To Workspace”, designado como “y”.

Page 320: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

320

Realizada la simulación, se va al Command Window (espacio de trabajo de MATLAB) y se colocan las sentencias que se muestran a continuación:

Una vez terminadas las sentencias precedentes se obtiene el gráfico que se muestra en la figura 231.

Fig. 231. Gráfico de simulación obtenido con el comando plot.

Page 321: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

321

32.10 Subsistemas Cuando un modelo aumenta de tamaño y complejidad, es muy útil simplificarlo mediante la agrupación de varios bloques en un subsistema. Con el uso de subsistemas se puede reducir el número de bloques desplegados en el modelo, además de tener la posibilidad de establecer una jerarquía en el diagrama en bloques, donde el bloque subsistema está en un nivel y los bloques que forman el subsistema están en otro nivel. Entre las ventajas que ofrece la creación de subsistemas se pueden mencionar las siguientes:

i. Ayuda a reducir el número de bloques que se despliega en la ventana de trabajo.

ii. Permite mantener agrupados bloques que están relacionados.

iii. Permite establecer un diagrama jerárquico donde los bloques de subsistemas están en un nivel y los bloques que forman cada subsistema están en otro nivel.

iv. Permite mantener oculto parte del sistema del cuál no se desea mostrar demasiados

detalles. Los subsistemas se pueden crear de dos maneras

• A un sistema ya creado se le añade el bloque Subsystem (subsistema) ;abriendo dicho bloque se le agregan todos los bloques que deseamos estén dentro del subsistema.

• Agregar a la ventana de trabajo los bloques que deseamos que contengan el

subsistema y agruparlos en un subsistema. La forma más conveniente de ver la creación de un subsistema es con un ejemplo Ejemplo Creación de un subsistema Creación A. Para desarrollar el concepto de creación de subsistemas se utilizará el modelo empleado oportunamente con el título UNLZ_2, que para mejor comprensión transcribimos en la figura 232. En la pantalla se muestra con un rectángulo de líneas punteadas todos los bloques que se quieren colocar dentro del subsistema.

Page 322: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

322

Fig. 232. Modelo UNLZ_2 a ser colocado en un subsistema.

Para crear el subsistema se seleccionan, con el botón izquierdo del ratón, todos los bloques que deseamos colocar dentro del bloque subsystem, y del menú Edit se selecciona→ Create Subsystem. Al hacer esto SIMULINK reemplaza los elementos seleccionados por un bloque de subsistema como se muestra en la ventana de la figura 233.

Fig.233. Bloque “Subsystem” englobando a los elementos seleccionados.

Page 323: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

323

Si se abre el bloque subsystem (haciendo doble “Clic” sobre el mismo), SIMULINK muestra los bloques del subsistema como se muestra en la pantalla de la figura 234.

Fig. 234. Retorno al sistema original partiendo de Subsystem.

Nótese en la pantalla de la figura 234, que SIMULINK añade puertos de entrada y salida Inport y Outport, para presentar las entradas y salidas del subsistema. Creación B Otra manera de crear un subsistema es empleando el bloque Subsystem. Este bloque se encuentra en la biblioteca de Subsystems. Para comenzar se abre una ventana de modelo nueva, y se arrastra a esa ventana el bloque Subsystem, como se muestra en la figura 235.

Fig. 235. Bloque Subsystem colocado en un espacio de trabajo.

Page 324: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

324

Se realiza doble “clic” sobre el bloque Subsystem y se obtiene la ventana mostrada en la figura 236, donde se puede ver que solo existen puertos de entrada y salida unidos entre sí.

Fig. 236. Conexiones existentes en el bloque Subsystem.

Este bloque se modifica, agregando algunos bloques adicionales que los conectamos como se muestra en la pantalla de la figura 237.

Fig. 237. Inserción de bloques entre la entada y salida de Subsystem.

Page 325: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

325

Se regresa a la ventana donde se creó el bloque Subsystem (que era “Untitled”) y la salvamos con el nombre UNLZ_4. Le conectamos un generador Step, un Scope y un display, como se muestra en la figura 238.

Fig. 238. Creación del Subsystem en la pantalla UNLZ_4. La respuesta del sistema, a una entrada escalón, se muestra en la figura 239, donde se indica la pantalla del Scope.

Fig. 239. Respuesta del sistema de la figura 238.

Page 326: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

326

Aplicaciones de SIMULINK a la Ingeniería. I. Proceso térmico de acondicionamiento de temperatura de un líquido. Un esquema del proceso térmico, se muestra en la figura 240.

Fig. 240. Esquema del proceso térmico. El proceso térmico dispone de un calefactor eléctrico, que suministra un flujo calorífico (en watts) al líquido (se considera agua), igual a la potencia transformada en calor por efecto Joule en la resistencia. El elemento uniformizador de temperatura aporta un flujo calorífico proporcional al cuadrado de la velocidad angular del removedor. Parte de ese flujo calorífico se transmite al medio ambiente por la resistencia térmica de las paredes del recinto y está dado por la Ley de Fourier. En este proceso se considera muy pequeña la capacitancia térmica del recinto (masa de las paredes) frente a la capacitancia térmica del líquido. El flujo calorífico neto resultante se emplea en cambiar la temperatura del líquido. De esta manera el balance de potencias (flujo calorífico) será:

22 ( ) ( )( ) a

thth

t te t dB C

R R dt

θ θ θω

−+ − =

Esta ecuación diferencial que vincula la temperatura del fluido con las otras variables del proceso es alineal. Así planteado el problema, y conociendo los parámetros físicos del

sistema ( ), , ,th thR R B C , en principio, para resolverlo tenemos dos posibilidades:

a) Emplear hipótesis de trabajo que permiten linealizar el modelo y simplificarlo. b) Resolver la ecuación diferencial no-lineal.

Page 327: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

327

a) Hipótesis de trabajo compatibles con el comportamiento esperado del sistema.

1. Si la mayor constante de tiempo, del sistema térmico, es menor que el semiperiodo (12 hs.) de la variable temperatura ambiente, podrá considerarse que la temperatura ambiente es constante, y la misma se podrá tomar como referencia de temperaturas.

2. Si la variable tensión ( )e t está limitada en amplitud a valores pequeños (pequeña

señal) alrededor de un punto de operación estable ( )oe , se podrá linealizar el

término que proporciona el flujo calorífico a través del calefactor. 3. Si la variable velocidad angular del uniformizador de temperatura ( )tω está limitada

en amplitud a valores pequeños (pequeña señal) alrededor de un punto de

operación estable ( )oω , se podrá linealizar el término que proporciona el flujo

calorífico por fricción viscosa.

4. Si las variables independientes del problema ( )( ), ( ), ( )ae t t tω θ toman el valor

correspondiente al punto de operación estable en régimen estacionario

( )0

, , .o o a ae Cteω θ θ≡ = , no se tendrán variaciones de temperatura del fluido ,

de manera que la ecuación de equilibrio térmico (balance de potencias) , obtenida al principio se reduce a :

2

20o o a

oth

eB Balance térmico en el punto de operación

R R

θ θω

−+ − = →

De la ecuación precedente se puede obtener la temperatura del fluido en estado estable, cuando las variables independientes del sistema adoptan los valores del punto de operación. Así se obtiene:

Para resolver un problema real, se consideran los siguientes valores de los parámetros y las variables independientes en estado estacionario:

Page 328: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

328

0

100 0.005 20º 70º

º1000 2 300 31.42

o a th

th

Nm Je VDC B C CCrad seg

C radR R rpmW seg

θ

ω

= = = =

= Ω = = =

Sobre la base de dichos valores se determina la temperatura del fluido en régimen estacionario:

2 22 20

0 0

100 202 0.005 (31.42) 49.88º

1000 2

ath

th

eR B C

R R

θθ ω

= + + = × + × + =

El balance de potencias térmicas da, que en estado estacionario la temperatura del líquido

(agua) es de 0ˆ 29.88ºCθ = , por sobre la temperatura ambiente (20ºC).

El sistema de acondicionamiento, en régimen estacionario (t→∞), se encuentra en la situación mencionada anteriormente. A partir de allí se lo excitará con cambios en la tensión

e(t), y en la velocidad angular ω(t) del uniformizador de temperatura. Esto dará lugar a

cambios en el tiempo de la temperatura del líquido θ(t), como se muestra en la figura 241.

Fig. 241. Explicitación de las entradas y salidas del sistema térmico. Para determinar dicho cambio en la temperatura del líquido, tenemos básicamente dos soluciones:

a) Aplicar pequeños cambios (comparados con los valores de estacionario) en las variables de entrada y linealizar el modelo para tener una EDO Lineal, con la cual determinar los cambios en la temperatura del líquido

b) Aplicar cambios en las variables de entrada y resolver la EDO no-lineal para

determinar los cambios en la temperatura de salida. Aplicaremos los dos procedimientos para determinar los cambios en la temperatura del líquido y compararemos los resultados obtenidos con los dos métodos.

Page 329: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

329

a) Método de Linealización del modelo. En la EDO obtenida por balance de potencias térmicas, se encuentran elevadas al cuadrado las variables independientes, es decir la tensión e (t) aplicada al calefactor, y la velocidad

angular ω(t) del uniformizador de temperatura, por esta razón el modelo es una EDO No-

Lineal. Para linealizar el modelo se considerará una aproximación lineal de ambas potencias en el entorno del punto de operación. Dicha relación lineal se obtiene desarrollando en serie de Taylor los términos no lineales, en el entorno del punto de operación. Así se tiene:

22

0 02

1( ) ( )

2!cal

cal calcal o

dq d qq q e e e e

e de= + − + − + +

2

20 02

1( ) ( )

2 !rem

rem remrem o

dq d qq q

d dω ω ω ω

ω ω= + − + − + +

Designando los apartamientos de la tensión aplicada al calefactor y de la velocidad angular del removedor como así también los de la potencia calorífica, con la notación:

0 0

0 0

0

0

: Desviación de respecto de

: Desviación de respecto de

cal

rem

cal cal

rem rem

e e e e e

q q q

q q q

ω ω ω ω ω

= −

= −

= −

= −

Si se considera que los apartamientos de la tensión y la velocidad angular son pequeñas (Esto se conoce como “pequeña señal”) en comparación con los valores de estacionario, se pueden despreciar las potencias dos y superiores del desarrollo de Taylor, con lo cuál se obtiene:

cal

rem

calcal cal o

remrem rem o

dqq q q e

d e

dqq q q

ω

= − =

= − =

Page 330: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

330

Teniendo en cuenta la aproximación anterior, la ecuación diferencial (ODE) del proceso térmico se puede escribir como:

00

22 a

thth th

e de B C

R R R dt

θ θ θω ω+ + = +

Como la temperatura ambiente se considera constante (En realidad sus variaciones durante

el tiempo de establecimiento 4s tht τ= , del sistema térmico, son prácticamente

despreciables). De esta manera la temperatura ambiente puede considerarse como referencia en la medición de temperatura del líquido, con lo cuál la ecuación precedente se puede escribir como:

( )00

22 aa

thth

dee B C

R R dt

θ θθ θω ω

−−+ = +

Designando como:

: a Desviación de temperatura respecto al ambienteθ θ θ= −

Finalmente la ODE se convierte en:

00

22 th

th

e de B C

R R dt

θ θω ω+ = +

Esta es la ODE lineal que representa al proceso, para pequeñas variaciones de las variables en torno del punto de operación en estacionario, y que permite determinar la dinámica del sistema. Teniendo en cuenta los parámetros del sistema térmico, se obtienen los coeficientes de la ODE Lineal:

0

0

2 2 1000.2

1000

2 2 0.005 31.42 0.3142

1 10.5

2

70

th

th

e

R

B

R

C

ω

×= =

= × × =

= =

=

Page 331: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

331

Reemplazando los coeficientes calculados en la ODE Lineal se obtiene.

0.2 0.3142 0.5 70d

edt

θω θ+ = +

Para simular el modelo mediante SIMULINK, conviene despejar la derivada de mayor orden como se indica a continuación:

0.2 0.3142 0.5

70 70 70

0.00286 0.00449 0.007143

de

dt

de

dt

θω θ

θω θ

= + −

= + −

La ODE precedente conduce al diagrama de simulación con SIMULINK, mostrado en la figura 242.

Fig. 242. Diagrama en bloques del proceso térmico linealizado.

Condiciones de simulación:

( ) 10 (10% )

( ) 3.142 / (10% )

( ) 10 , 0

( ) 3.142 / , 800

e t V del valor de estacionario

t rad seg del valor de estacionario

e t escalón de V aplicado en t

t escalón de rad seg aplicado en t seg

ω

ω

=

=

= =

= =

Page 332: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

332

Se agregan los elementos de “salida” para registrar las entradas y salidas en función del tiempo, como así también un bloque “To workspace” para obtener el gráfico en MATLAB. De esta manera los resultados obtenidos se muestran en el gráfico de la figura 243.

Fig. 243. Respuesta temporal del proceso linealizado.

Comentarios sobre los resultados de la simulación del proceso lineal izado:

i. La constante de tiempo del proceso térmico según ODE lineal es 140th segτ =

ii. El tiempo de establecimiento del proceso es 4 560s tht segτ= = (banda de ± 2%

del valor final).

iii. Un cambio del 10% de la tensión sobre el calefactor, produce un cambio de aproximadamente 4 ºC en la temperatura del líquido (Aprox. 13.4 % del valor de estacionario, 29.87ºC).

Page 333: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

333

iv. Un cambio del 10% de la velocidad angular del uniformizador de temperatura rotativo, produce un cambio de 1.97 ºC en la temperatura del líquido (Aprox. 6.6 % del valor de estacionario, 29.87ºC).

v. El valor final de la sobre elevación de temperatura alcanzada por el líquido es de

5.974 ºC, debido al aporte de 10 % en el aumento de tensión y 10 % en el aumento de velocidad del removedor.

a) Método del modelo no-lineal. En este caso se considera que el modelo del sistema es la EDO no-lineal dada por:

22 ( ) ( )( ) a

thth

t te t dB C

R R dt

θ θ θω

−+ − =

Considerando que la temperatura ambiente aθ , prácticamente no varía durante el tiempo

de establecimiento de la dinámica del proceso térmico ( 4 560s tht segτ= = ), es

razonable considerar que la temperatura ambiente se puede tomar como referencia para la medición de temperatura. Esta prudente consideración permite escribir la EDO de la manera siguiente:

( )22 ( ) ( )( ) aa

thth

dt te tB C

R R dt

θ θθ θω

−−+ = +

Llamando a

* : a sobreelevación de temperaturaθ θ θ= −

La EDO del modelo se convierte en:

2 * *2

thth

e dB C

R R dt

θ θω+ = +

Reemplazando los valores de los parámetros se obtiene:

*2 2 *0.001 0.005 0.5 70

de

dt

θω θ+ = +

Page 334: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

334

Despejando de la ODE anterior la derivada de mayor orden e integrando las veces que sea necesario hasta obtener la sobre elevación de temperatura del líquido, se obtiene:

*2 2 *0.001 0.005 0.5

70 70 70

de

dt

θω θ= + −

Esta ODE no lineal se representa en bloques, mediante SIMULINK, como se muestra en la figura 244.

Fig. 244. Proceso térmico, considerando la ODE no lineal.

Fig. 245. Respuesta temporal del proceso considerado no lineal.

Page 335: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

335

En la figura 245 se muestra la respuesta del proceso térmico no lineal, para los mismos cambios en los valores de las señales con las cuales se realizó la simulación del modelo lineal, es decir que las condiciones de simulación han sido:

0

0

0

0

0

(100 10) 110

(31.42 3.142) / 34.562 /

100 , 0

10 (10% ), 800

31.42 / , 0

e e e V V

rad seg rad seg

e escalón de V aplicado en t

e escalón de V e aplicado en t seg

escalón de rad seg aplicado en t

escaló

ω ω ω

ω

ω

= + = + =

= + = + =

= =

= =

= =

=

03.142 / (10% ), 1600n de rad seg aplicado en t segω =

Comentarios acerca de la simulación para el proceso no lineal

i. La constante de tiempo del proceso térmico según ODE No lineal es 140th segτ =

ii. El tiempo de establecimiento del proceso No-Lineal es 4 560s tht segτ= =

(banda de ± 2% del valor final). iii. Un cambio del 10% de la tensión sobre el calefactor (10V), produce un cambio de

aproximadamente 4.19 ºC en la temperatura del líquido (Aprox. 14 % del valor de estacionario 29.87 ºC).

iv. Un cambio del 10% de la velocidad angular del uniformizador de temperatura

rotativo, produce un cambio de 2.08 ºC en la temperatura del líquido (Aprox. 7 % del valor de estacionario, 29.87 ºC).

v. El valor final de la sobre elevación de temperatura alcanzada por el líquido es de

6.27 ºC por sobre el valor del punto de operación, debido al aporte de 10 % en el aumento de tensión y 10 % en el aumento de velocidad del removedor.

Conclusión: Para un incremento del 10% en la tensión del calefactor y un incremento del 10 % en la velocidad del removedor, la diferencia de la temperatura final predicha por ambos modelos es de 0.3 ºC. En estas condiciones se puede decir, dentro de la precisión de la ingeniería, que ambos modelos predicen el mismo resultado.

Page 336: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

336

En la figura 246, se muestra la respuesta temporal ampliada, del proceso, frente a cambios del 10% en la tensión y la velocidad angular.

Fig. 246. Respuesta temporal ampliada, para el modelo no lineal, frente a cambios del 10%

en las señales de entrada. CAMBIOS DEL 20 % Veamos que sucede si los incrementos de tensión y velocidad son mayores que el 10%. Supóngase, que son del 20%. Es decir:

20

6.284 /

e V

rad segω

=

=

Los resultados obtenidos, en la simulación, se muestran en los gráficos de las figura 247 y 248

Page 337: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

337

Fig. 247. Gráfico temporal de la sobreelevación de temperatura.

Fig. 248. Temperatura en función del tiempo, para cambios del 20% en las entradas..

Page 338: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

338

Sobre el resultado de la simulación para cambios del 20% en la tensión y velocidad del proceso, podemos mencionar lo siguiente: SISTEMA LINEALIZADO

i. Un cambio del 20% en la tensión de calefactor , produce un cambio de 8 ºC en la temperatura del líquido (26.8% de la temperatura correspondiente al punto de operación. 29.87 ºC)

ii. Un cambio del 20 % en la velocidad del removedor produce un cambio de 4 ºC en la

temperatura del líquido (13.4 % de la temperatura del punto de operación, 29.87 ºC).

iii. La sobre elevación total de temperatura para un 20 % de cambio en la tensión y velocidad es de 12 ºC.

SISTEMA NO LINEAL

iv. Un cambio del 20% en la tensión de calefactor , produce un cambio de 8.8 ºC en la temperatura del líquido (29.5% de la temperatura correspondiente al punto de operación. 29.87 ºC)

v. Un cambio del 20 % en la velocidad del removedor produce un cambio de 4.4 ºC en

la temperatura del líquido (14.7 % de la temperatura del punto de operación, 29.87 ºC).

vi. La sobre elevación total de temperatura para un 20 % de cambio en la tensión y

velocidad es de 13.14 ºC. Conclusión. La Linealización de un modelo No- Lineal da resultados muy aproximados a la realidad cundo los cambios en las variables involucradas son pequeños con relación a los correspondientes al punto de operación. En el ejemplo se ha visto que para cambios del 10 % en las variables de entrada, los resultados de ambos modelos prácticamente son coincidentes. Cuando los cambios aumentan, en el ejemplo se ha tomado un 20 %, los resultados del sistema linealizado comienzan a apartarse respecto al modelo ODE No-Lineal más exacto. La aproximación lineal cambia con el cambio del punto de operación (Queda para los interesados analizar esta situación) En todos los casos es el Ingeniero el que debe decidir la validez de una aproximación lineal (ODE Lineal), con relación a un modelo más exacto No-Lineal (ODE No-Lineal).

Page 339: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

339

II. Sistema de suspensión de un vehículo. En la figura 249 se muestra un esquema simplificado de la cuarta parte de la suspensión de un automóvil.

Fig. 249. Esquema simplificado de la suspensión de un automóvil.

Un modelo que permite analizar dinámicamente el sistema de suspensión, es el que se muestra en la figura 250.

Page 340: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

340

Fig. 250. modelo del sistema de suspensión. Los parámetros (muy parecidos a los reales) de la suspensión, tienen los siguientes valores:

3 3

453 , 79

35 10 / , 280 10 /

584 / , 44 /

c w

s t

s t

m kg m kg

k N m k N m

b N m seg b N m seg

= =

= × = ×

= =

Se pide.

a) Obtener el modelo matemático del sistema (ecuaciones ODE). b) Obtener el diagrama en bloques para la simulación, mediante SIMULINK. c) Se aplica una fuerza que hace bajar 6 cm. la carrocería del automóvil, y luego se

quita instantáneamente la fuerza. Realizar la simulación y graficar los

desplazamientos y velocidades de c wm y m . Comparar lo obtenido con el

comportamiento real de un automóvil y decidir si el modelo se comporta adecuadamente.

d) Se levanta el vehículo 50 cm. con una grúa, y luego se lo deja caer. Realizar la

simulación y obtener los desplazamientos y velocidades. Comparar los resultados con los que muestra la experiencia en la realidad.

e) Viajando a una velocidad de 50 Km/hr el automóvil cae en un pozo de 20 cm. de

profundidad (tipo escalón negativo), y a los 150 metros termina el pozo, retornándose al nivel inicial (escalón positivo).Realizar la simulación y obtener los desplazamientos y velocidades.

f) Para el vehículo circulando a 100 km/hr por una calle asfaltada, que tiene una

junta de 2 cm de altura y 2 cm de ancho cada 6 m, realizar la simulación y graficar las velocidades y desplazamientos.

g) Circulando a por un camino a una velocidad de 8 km/hr con “lomos de burro”

(pianito) de 15 cm “pico a pico” cada 1.5 m (suponer sinusoide), realizar la simulación y graficar las velocidades y desplazamientos.

h) Ídem anterior pero con el vehículo a 3.2 km/hr Solución

Page 341: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

341

a) Ecuaciones diferenciales del sistema. Las ecuaciones de equilibrio de fuerzas para el sistema mecánico de la suspensión, son:

( ) ( )2

2

2

2

0

0

gc c wc s t s t c s s g t t w

w w cw t t w t t c

dzd z dz dzm b b k k z b k z b k z

dt dt dtdt

d z dz dzm b k z b k z

dt dtdt

+ + + + − − − − =

+ + − − =

Dividiendo la primera ecuación por cm y la segunda por w

m , y reemplazando los valores

de los parámetros dados al principio, se obtiene:

2

2

2

2

1.39 695.4 1.29 77.3 0.097 618.1 0

0.56 3544.3 0.56 3544.3 0

gc c wc g w

w w cw c

dzd z dz dzz z z

dt dt dtdt

d z dz dzz z

dt dtdt

+ + − − − − =

+ + − − =

b) Simulación del modelo Integrando las ecuaciones diferenciales precedentes se obtienen las ODE siguientes:

1.39 695.4 1.29 77.3 0.097 618.1

0.56 3544.3 0.56 3544.3

cc c g g w w

ww w c c

dzz z dt z z dt z z dt

dt

dzz z dt z z dt

dt

= − − + + + +

= − − + +

∫ ∫ ∫

∫ ∫

Page 342: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

342

En la figura 251 se muestra el diagrama de simulación (basado en las ODE precedentes) para el modelo del sistema de suspensión, correspondiente a la cuarta parte del automóvil.

Fig. 251. Diagrama de simulación para la suspensión del automóvil.

c) Se baja la carrocería 6 cm y luego se la libera.

Esta situación del sistema corresponde a una condición inicial de (0) 0.06cz m= − .

Colocando la condición inicial en el integrador1, se realiza la simulación y se obtienen los gráficos de la figura 252., correspondientes a los desplazamientos de las masas.

Page 343: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

343

Fig. 252. Desplazamientos de las masas cuando se baja la carrocería 6 cm y luego se libera. Los desplazamientos son oscilatorios. El de la carrocería comienza en – 6 cm y el del neumático en 0. Ambos después de una serie de oscilaciones terminan en cero (0 m). Esto ocurre aproximadamente a los 6 segundos. Se puede observar que sobre la oscilación de baja frecuencia en el desplazamiento zc (t) se superpone una oscilación de mayor frecuencia y menor amplitud, que corresponde al acoplamiento de la rueda sobre la carrocería. Las velocidades se muestran en la figura 253. Como se puede ver la velocidad máxima de la carrocería es de aproximadamente 0.8 m/seg. Y la velocidad máxima de la Masa de la rueda es de 3.2 m/seg. Las dos velocidades se extinguen en aproximadamente 8 seg.

Fig. 253. Velocidades de las masas cuando se baja la carrocería 6 cm y luego se libera. d) Se levanta el vehículo 50 cm y se lo deja caer desde esa altura. Esta condición se obtiene colocando como condición inicial 0.50 m en lo integradores que dan los desplazamientos Zc y Zw. En la figura 254 se muestran los gráficos obtenidos para los desplazamientos, cuando se levanta el vehículo 50 cm y se lo deja caer desde esa altura.

Page 344: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

344

Fig. 254. Desplazamientos de las masas cuando se deja caer el vehículo desde 0.5 m Los desplazamientos se extinguen en forma senoidal subamortiguada, con una frecuencia de aproximadamente 7.9 rad/seg. En aproximadamente 7 segundos se extinguen las oscilaciones. Con respecto a las velocidades se obtienen los gráficos mostrados en la figura 255.

Fig. 255. Velocidades de las masas cuando se deja caer el vehículo desde 0.5 m

Page 345: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

345

e) Pozo de 20 cm de profundidad, 150 m de longitud, viajando a 50 km/hr. En este caso se excitará al sistema con un escalón negativo de 20 cm en 0it = , y luego

con un escalón positivo de 20 cm en 150 /(50 / ) 10.8ft m km hr seg= = .

Estos dos escalones se aplican con sendos generadores desplazados en 10.8 segundos. En las figuras 256 y 257, se muestran los desplazamientos y velocidades obtenidas.

Fig. 256. Desplazamientos de las masas, para Pozo de 20 cm de profundidad, 150 m de

longitud, viajando a 50 km/hr.

Fig. 257. Velocidades de las masas, para Pozo de 20 cm de profundidad, 150 m de

longitud, viajando a 50 km/hr.

Page 346: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

346

f) Camino con juntas de 2x2 cm cada 6 m con el vehículo a 100 km/hr. El sistema se excita con un tren de pulsos de 2 cm de amplitud, ancho del pulso 0.72 mseg y con un periodo de 0.216 seg. Este tren de pulsos se puede obtener con un “pulse generador”. En la figuras 258 y 259 se muestran los registros para los desplazamientos y velocidades.

Fig. 258. Desplazamientos de las masas, para juntas de 2x2 cm cada 6 m con el vehículo a

100 km/hr.

Fig. 259. Velocidades de las masas, para juntas de 2x2 cm cada 6 m con el vehículo a 100

km/hr.

Page 347: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

347

g) Camino con lomos cada 1,5 m, amplitud 7.5 cm y velocidad del automóvil de 8 km/hr Se considera que la excitación es un senoide de amplitud 7.5 cm y un periodo

1.5 (8 / ) 0.675T m km hr seg= = ; dicho periodo da una frecuencia de 9.3 rad/seg.

En las figuras 260 y 261, se muestran los gráficos de desplazamientos y velocidades obtenidos.

Fig. 260. Desplazamientos de las masas para, Camino con lomos cada 1,5 m, amplitud 7.5

cm y velocidad del automóvil de 8 km/hr

Fig. 261. Velocidades de las masas para, Camino con lomos cada 1,5 m, amplitud 7.5 cm y

velocidad del automóvil de 8 km/hr

Page 348: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

348

h) Camino con lomos cada 1,5 m, amplitud 7.5 cm y velocidad del automóvil de 3.2 km/hr Se considera que la excitación es un senoide de amplitud 7.5 cm y un periodo

1.5 (3.2 / ) 1.69T m km hr seg= = ; dicho periodo da una frecuencia de 3.7 rad/seg.

En las figuras 262 y 263 se muestran los gráficos de desplazamientos y velocidades obtenidos.

Fig. 262. Desplazamientos de las masas para, Camino con lomos cada 1,5 m, amplitud 7.5

cm y velocidad del automóvil de 3.2 km/hr

Fig. 263. Velocidades de las masas para, Camino con lomos cada 1,5 m, amplitud 7.5 cm y

velocidad del automóvil de 3.2 km/hr

Page 349: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

349

Simulación mediante la matriz de transferencia

Para analizar el sistema se puede utilizar el método de la matriz de transferencia. Para ello se transforma por Laplace las EDO del sistema y se obtiene:

( ) ( ) ( )

( ) ( )

2

2

1.39 695.4 ( ) 0.097 618.1 ( ) 1.29 77.3 ( )

0.56 3544.3 ( ) 0.56 3544.3 ( ) 0

c w g

c w

s s Z s s Z s s Z s

s Z s s s Z s

+ + − + = +

− + + + + =

El sistema de ecuaciones EDO se ha transformado en un sistema de ecuaciones algebraicas en la variable compleja s jσ ω= + . Dicho sistema se puede resolver, con respecto a los desplazamientos Zc(s) y Zw(s) por algún método conocido, como ser:

( )( )( )( ) ( )( )

2

2 2

1.29 77.3 0.56 3544.3 ( )( )

1.39 695.4 0.56 3544.3 0.097 618.1 0.56 3544.3

g

c

s s s Z sZ s

s s s s s s

+ + +=

+ + + + − + +

( )( )

3 2 5

4 3 2 5

1.29 60.48 3577.85 2.12403 10( ) ( )

1.95 4240.42 4626.07 2.74 10c g

s s sZ s Z s

s s s s

+ + + ×=

+ + + + ×

( )( )

( )( ) ( )( )2 2

1.29 77.3 0.56 3544.3 ( )( )

1.39 695.4 0.56 3544.3 0.097 618.1 0.56 3544.3

g

w

s s Z sZ s

s s s s s s

+ +=

+ + + + − + +

( )( )

2 5

4 3 2 5

0.722 6392.58 3.795 10( ) ( )

1.95 4240.42 4626.07 2.74 10w g

s sZ s Z s

s s s s

+ + ×=

+ + + + ×

Expresando los polinomios como cociente de los ceros y polos de cada función transferencia, se obtiene:

0.722( 6332.65)( 59.93)( ) ( )

( 0.428 64.604)( 0.548 8.083)w g

s sZ s Z s

s j s j

+ +=

+ ± + ±

Page 350: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

350

( )( )1.29 6.6469 26.9166 49.995( ) ( )

( 0.428 64.604)( 0.548 8.083)c g

s s jZ s Z s

s j s j

+ + ±=

+ ± + ±

En la figura 264, se muestra el diagrama en bloques del sistema sobre la base de la función transferencia.

Fig. 264. Diagrama en bloques basado en la Función Transferencia.

e) Pozo de 20 cm de profundidad, 150 m de longitud, viajando a 50 km/hr. Los gráficos para los desplazamientos son los indicados en la figura 265.

Fig. 265. Desplazamientos de las masas, obtenidos con el modelo de transferencia.

Page 351: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

351

g) Camino con lomos cada 1,5 m, amplitud 7.5 cm y velocidad del automóvil de 8 km/hr Se considera que la excitación es un senoide de amplitud 7.5 cm y un periodo

1.5 (8 / ) 0.675T m km hr seg= = ; dicho periodo da una frecuencia de 9.3 rad/seg.

En la figura 266, se muestran los gráficos de desplazamientos obtenidos.

Fig. 266. Desplazamientos de las masas obtenidos con la función transferencia. Conclusión: Los resultados de la simulación, a través de los dos métodos da el mismo resultado. Una desventaja del método de la matriz de transferencia es que no permite ver algunas variables internas, como por ejemplo la velocidad.

Page 352: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

352

III. Servomotor de Corriente Continua. Sea de un servomotor de corriente continua con campo a imán permanente, como se muestra en la figura 267 .

Fig. 267. Esquema y diagrama electromecánico del servomotor de CC.

Se considerará un servomotor (a imán permanente) para uso general en control, con los siguientes valores de los parámetros y tensiones.

4 2

19.4 5.3 0.452 / 0.452 /

8.49 10 0.004 90

a a T b

m m a

L mH R k Nm A k Vseg rad

J Kgm B Nmseg e V−

= = Ω = =

= × = =

En el servomotor se pueden plantear dos ecuaciones diferenciales ordinarias (ODE), una eléctrica para la armadura (Ley de Kirchoff) y otra mecánica (Ley de Newton):

0

0

aa a a a b m

mT a m m m L

die L R i k

dt

dk i J B T

dt

ω

ωω

− − − =

− − − =

Donde LT es una cupla de carga sobre el eje del motor. Si 0LT = , se considera que el

motor está en vacio. Se considerará que el servomotor tiene dos entradas:

1

2

a

L

u e

u T

=

=

Page 353: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

353

Una salida: la velocidad angular

my ω=

Dos variables internas (variables de estado):

1

2

m

a

x

x i

ω=

=

Sobre la base de lo indicado precedentemente, el sistema se puede representar por el diagrama mostrado en la figura 268.

Fig.268. Esquema de bloques para el Servomotor de CC.

Las ecuaciones diferenciales del servomotor se pueden escribir de la siguiente manera.

[ ]

1 1 1

2 2 2

1 1

2 2

0 1/

1 0/

1 0 [0 0]

m m T m m

b a a a a

B J k J Jdx dt x u

k L R L Ldx dt x u

x uy

x u

− − = + −

= +

Esta representación del sistema LTI se llama “Representación de Estado”, cuyo modelo general es:

d dt = +

= +

x Ax Bu

y Cx Du

Con el conocimiento de los parámetros, la representación de estado se convierte en las matrices que se muestran a continuación:

Page 354: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

354

[ ]

1 1 1

2 2 2

1 1

2 2

/ 4.71 532.39 0 1177.86

/ 23.30 273.20 51.55 0

1 0 [0 0]

dx dt x u

dx dt x u

x uy

x u

− − − = + −

= +

Se realiza el diagrama de bloques, con el modelo de estado parametrizado indicado precedentemente, y se obtiene el diagrama de la figura 269.

Fig. 269. Diagrama en bloques del Servomotor de CC, basado en el modelo de estado. Con el diagrama de simulación mostrado precedentemente, se pueden realizar numerosas simulaciones del servomotor de CC, entre ellas

a) Simulación en vacio con la tensión nominal de armadura 90ae V=

En esta simulación se aplica en 0t seg= al servomotor, una tensión escalón de 90 Volt.

Como resultado de la misma se obtienen los siguientes valores de la velocidad angular y la corriente de armadura en estado estacionario.

Page 355: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

355

( ) 180.4 (1723 )

( ) 1.595

m vacio

a vacio

rad seg rpm

i A

ω ∞ =

∞ =

Para ver la dinámica de la corriente de armadura y la velocidad angular se recogen dichas señales en un “Scope”. Los resultados obtenidos se muestran en la figura 270.

Fig. 270. Corriente y velocidad en vacio del Servomotor de CC En los gráficos precedentes se puede observar que la corriente en vacio aumenta hasta 13 A en un tiempo de aproximadamente 0.015 seg. y luego desciende hasta el valor de régimen estacionario 1.595 A La velocidad angular del motor aumenta y llega a régimen estacionario de vacio (180.4 rad/seg) en un tiempo aproximado de 0.09 seg = 90 mseg. b) Simulación con una carga (torque), en forma de escalón , 0.5 .LT N m= , aplicado

en 0.60t seg= , y con tensión nominal de armadura 90ae V= .

Con esta simulación se está realizando una aproximación al caso real, en el cuál el motor se ve sometido a una cupla de carga (perturbadora). Se verá la dinámica de la corriente y la velocidad del motor en función de la tensión de armadura y cupla TL. Realizada la simulación, se obtienen los siguientes valores en régimen estacionario

0.5

0.5

( ) 168.6 (1610 )

( ) 2.60

L

L

m T

a T

rad seg rpm

i A

ω =

=

∞ =

∞ =

Page 356: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

356

Como se puede observar en los valores anteriores, la corriente del motor, en estacionario, aumenta con relación a la situación de vacio. Por otra parte la velocidad angular del motor disminuye con relación a la situación de vacio. Los gráficos dinámicos de tensión de armadura, cupla de carga, corriente de armadura y velocidad angular del motor, se muestran en la figura 271.

Fig. 271. Variables del motor con efecto de la cupla de carga.

Si se pretenden más detalles en las curvas de respuesta temporal se pueden obtener las señales individualmente, adecuando las escalas, como se muestra en la figura 272.

Page 357: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

357

Fig. 272. Variables del motor ampliadas para ver mejor los detalles.

Page 358: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

358

Índice Prefacio pág. 1/2 1.1. Programa MATLAB pág. 3/ 9 1.2. Requisitos mínimos e Instalación pág. 9/10 2. Componentes de MATLAB pág. 12 3. SIMULINK pág. 12/13 4. La versión de MATLAB pág. 13 5. Tipos de archivos con los cuales trabaja MATLAB pág. 13/14 6. Sintaxis general pág. 14 6.1. Constantes pág. 14 6.2. Operaciones aritméticas elementales pág. 14/15 6.3. Variables pág. 15/16 6.4. Formatos pág. 17/18 6.5. Variables predefinidas pág. 18/19 6.6. Cadenas pág. 19/23 6.7. Guardado de una sesión y sus variables pág. 23/29 6.8. Instrucciones de entrada y salida pág. 30 6.8.1. Salida formateada pág. 30/32 6.8.2 Entrada de datos en MATLAB pág. 32/33 6.9. Ayudas en MATLAB (help) pág. 33/35 6.9.1. El comando lookfor pág. 36 6.9.2. El comando which pág. 36/37 6.10. Variables y funciones pág. 37 6.10.1 Variables pág. 37/38 6.10.2 Funciones pág. 38 6.10.3 Variables simbólicas y función funtool pág. 38/44 6.11. Funciones matemáticas elementales pág. 44/45 6.12. Algunos comandos utilitarios y de ayuda pág. 45 6.13. Elementos sobre ficheros pág. 45/46 7. Reloj y fecha pág. 46/47 8. Ruta de búsqueda pág. 47 9. Diario pág. 47 10. Formato para exhibición de números pág. 48 11. Caracteres especiales y operadores pág. 48/49 12. Operaciones básicas pág. 49/51 13. Escalares, vectores y matrices pág. 52 13.1 Definición de vectores pág. 52/54 13.2 Operaciones con vectores y escalares pág. 55 13.3 Operaciones con vectores pág. 56/57 13.4 Funciones específicas de vectores pág. 57/58 13.5 Norma de un vector pág. 58/59 13.6 Producto escalar y vectorial pág. 59/61 13.7 Funciones de matrices y vectores pág. 61/63 13.8 Sistemas de ecuaciones pág. 63/65 13.9 Factorización LU (Lower-Upper) pág. 65/67 13.10 Vectores propios y formas de Jordan pág. 67/69 13.11 Definición de matrices pág. 79 13.12 Operaciones con matrices pág. 70/72 13.13 Funciones específicas con matrices pág. 72/75 13.14 Matrices “sparse” (huecas) pág. 75/77 13.15 Polinomios pág. 77/79

Page 359: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

359

13.16 Otros comandos para operar con matrices pág. 80/87 13.17 Algunas matrices especiales pág. 87 13.18 Sistemas lineales pág. 88/89 13.19 Consideraciones adicionales sobre escalares y vectores pág. 89/91 13.20 Funciones adicionales sobre polinomios pág. 91/93 13.21 Ajuste de curvas pág. 94 13.21.1 Ajuste mediante polinomios pág. 94/97 13.21.2 Ajuste mediante “splines” cúbicos pág. 97/98 13.21.3 Interfase para ajuste de curvas pág. 98/102 13.22 Otras funciones disponibles en MATLAB pág. 102 13.22.1 Instrucciones “eval” y “feval” pág. 102/103 13.22.2 Comando pause pág. 103/104 13.22.3 Comandos wavread y sound pág. 104 14. Funciones escalares pág. 105/106 15. Operaciones de cálculo comunes pág. 107 15.1 Límites pág. 107/109 15.2 Límites de sucesiones pág. 109 15.3 Continuidad pág. 109/113 15.4 Derivación pág. 113/116 15.5 Integración pág. 116/118 15.6 Series pág. 118 15.7 Ecuaciones diferenciales (DE) pág. 119/126 16. Gráficas pág. 127 16.1 Representación gráfica de funciones definidas por una fórmula pág. 127 16.2 Curvas planas pág. 127/130 16.3 Curvas en el espacio pág. 130/131 16.4 Superficies pág. 131/136 17 La ventana gráfica de MATLAB pág. 137 17.1 Algunos comandos gráficos auxiliares pág. 137/142 18 Resumen de los comandos básicos de dibujo 2D y 3D pág. 143/164 19 Otros tipos de gráficas pág. 165 19.1 Gráfica de barras pág. 165 19.2 Gráfica de escalera pág. 166 19.3 Gráfica de histograma pág. 167 19.4 Gráfica de puntos pág. 168 19.5 Gráfica de brújula o circular (Compass) pág. 169 19.6 Gráfica de torta (pie) pág. 170 20. Programación en MATLAB pág. 171/176 20.1 Instrucciones básicas de programación pág. 176 20.1.a Instrucción if-end pág. 176/178 20.1.b Instrucción if-else-end pág. 179/180 20.1.c Instrucción elseif pág. 180/182 20.1.d Instrucción switch-case pág. 182/184 20.1.e Instrucción for pág. 184/189 20.1.f Instrucción while pág. 189/190 20.2 Funciones (function) pág. 190/193 20.3 Manejo de archivos pág. 193 20.3.1 Abrir y cerrar archivos pág. 193/196 20.3.2 Escritura de información en un archivo pág. 197/198 20.3.3 Escritura y lectura de datos con formato pág. 198/201 21. Intercambio de datos entre MATLAB y EXCEL pág. 202/206 22. Lectura en MATLAB de datos creados en EXCEL pág. 206/208 Ejemplos de programación con MATLAB. Aplicaciones a la Ingeniería pág. 209/236

Page 360: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

360

23. Números complejos pág. 236/240 24. Funciones reales de varias variables (campos escalares) pág. 241 25. Gráficas tridimensionales (3D) pág. 241/247 26. Funciones Complejas y de variable compleja pág. 247/253 27. Diferenciación e Integración numérica pág. 253 27.1 Derivación e integración de funciones escalares pág. 253/256 28 Campos vectoriales. Conceptos básicos pág. 257/258 29. Funciones adicionales para el manejo de gráficos pág. 258/260 30. Raíces de ecuaciones y mínimos de funciones pág. 260 30.1 Raíces de ecuaciones pág. 260/263 30.2 Raíces de polinomios pág. 263/264 30.3 Mínimos y máximos de funciones pág. 264/268 31 Resolución numérica de ecuaciones diferenciales pág. 269 31.1 Ecuación diferencial única pág. 269/275 31.2 Sistemas de ecuaciones diferenciales pág. 275/281 32. SIMULINK pág. 282 32.1 Ecuaciones diferenciales como Modelos Matemáticos pág. 282/288 32.2 Inicio de SIMULINK pág. 288/290 32.3 Creación y corrida de un modelo con SIMULINK pág. 290/298 32.4 Elemento Scope (Osciloscopio) pág. 298/300 32.5 Elemento Integrator (Integrador) pág. 300/303 32.6 Elemento step (Escalón) pág. 303/304 32.7 Elemento Transfer Function pág. 304/315 32.8 Elemento State-Space pág. 315/318 32.9 Elemento To Workspace. Conexión entre SIMULINK y MATLAB pág. 318/320 32.10 Subsistemas pág. 321/325 Aplicaciones de SIMULINK a la Ingeniería pág. 326 I. Proceso Térmico de acondicionamiento de temperatura de un fluido pág. 326/339 II. Sistema de suspensión de un vehículo pág. 339/351 III. Servomotor de Corriente Continua pág. 352/357 Índice pág. 358/360 Bibliografía pág. 361

Page 361: Microsoft Word - UNLZ MatLab SimulinK AMM 2007

Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.

361

Bibliografía

1. Katsuhiko Ogata, “Problemas de Ingeniería de Control Utilizando MATLAB”. Prentice Hall, 1999. ISBN-84-8322-046-6. 2. MathWorks, Inc., “The Student Edition of MATLAB” . Englewood Cliffs, N.J. , Prentice Hall , 1999. 3. Math Works, Inc. “MATLAB User’s Guide” Natick, Mass. Math Works Inc., 2000. 4. Alejandro Hayes, “Bases de MatLab”, 1ª Edición, 2006. 5. Rosa Echevarría Líbano - Dpto. Ecuaciones Diferenciales y Análisis Numérico. Universidad de Sevilla. 2005. 6. MATLAB Programming .Working with M-Files. The Math Works, Inc. 2007. 7. Javier García de Jalón de la Fuente, Rufino Goñi Laceras, Patxi Funes Martínez, “Aprenda MATLAB”. Escuela Superior de Ingenieros Industriales. Universidad de Navarra. 1997. 8. Amadeo M. Mariani. “Aplicaciones de MATLAB a la Ingeniería de Control”. Editorial CEIT UTN/FRBA Año 2005. 9. Amadeo M. Mariani . “SIMULINK, Aplicaciones a la Ingeniería de Control”.Editorial CEIT. UTN/FRBA Año 2005. 10. Amadeo M. Mariani. “Representaciones Canónicas de Modelos en el Espacio de Estados”. Aplicaciones a la Ingeniería de Control. Editorial CEIT. UTN/FRBA. 2007. 11. M. W. Zemansky. “ Heat and Themodynamics” .Mc Graw Hill, Book Co. 1968. 12. A. Soriano y J. Vélez,”Evaluación de las propiedades físicas de los alimentos usando un Programa de computadora”, Información Tecnológica, Vol. 14 pp. 23-28, Chile 2003. 13. L. Blank y A. Taskin. “Ingeniería Económica”, Mc Graw Hill Interamericana, Méx. 2004.