You are on page 1of 361

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

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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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)

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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).

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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: ^

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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,

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 .

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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’)

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 29

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 34

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:
V = π r2 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 39

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

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

f = 5 x3 + 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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
f ( x) = x y g ( x) = 1 , pero estos valores pueden ser modificados por el usuario.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

f ( x) = sen( x)
g ( x) = 1 ( x + 1)
a=3

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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).

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 51

Ejemplo.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 53

Ejemplo.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 54

Ejemplo.

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

Las componentes de un vector se designan mediante el 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 55

13.2. Operaciones con vectores y escalares.

Si v es un vector (fila o columna) y k es un escalar, las operaciones que se muestran en la


tabla Nº 11, dan el resultado que se indica:

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


Ejemplos.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 56

13.3. Operaciones entre vectores.

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

Tabla Nº 12. Algunas operaciones con vectores.

Ejemplos.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 58

13.5. Norma de una vector.

La norma de un vector de dimensión n se define como:

1
 n p
p
x p
=  ∑ xi 
 i =1 
La norma más conocida es la norma Euclidiana (p=2) que es la típica magnitud del vector x

1
 n 2
2
x 2
=  ∑ xi  = x12 + x22 +  + xn2
 i =1 
Para calcular en MATLAB la norma de un vector, se usa:

>>norm(x, p )

El valor predeterminado de p es 2.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 59

Ejemplo
Determinar la norma Euclidiana (p=2), la norma p=inf, y la norma para p=5 del vector
x = [3 -2 5 1 7]

13.6. Producto escalar y vectorial

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

 v1   w1 
v  w 
v =  2 w =  2
  
   
vn   wn 
es un escalar y está definido por

vi w = v1w1 + v2 w2 +  + vn wn

MATLAB lo calcula mediante

>>dot (v,w)

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 60

Ejemplo

Hallar el producto escalar de los vectores

 3.2   −0.8
 2.4   7.3 
v=  w= 
 −5.6   1.6 
   
 7.1   9.4 

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 61

5   −13
a = 3 b =  6 
8   35 

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 x = [1.5,3, −5] , se
puede calcular el sin( x ) , que es otro vector dado por el vector cuyas componentes son las
funciones seno de cada componente.

Ejemplo
Hallar el seno del vector x = [1.5,3, −5]

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 62

 f (a11 ) f (a12 )  f (a1n ) 


 f (a ) f (a22 )  f (a2 n ) 
f ( A) = 
21
     
 
 f (am1 ) f (am 2 )  f (am n ) 

Si v es un vector, entonces

f ( v ) = [ f (v1 ) f (v2 )  f (vn )]

Donde v puede ser un vector columna o un vector fila.

Ejemplo

Para el polinomio definido por p(x)=x^3+2*x^2-5*x+13, donde x puede ser un escalar, un


vector o una matriz. Si D es una matriz dada por
 3 2
D= 
 −5 8 
Entonces

Un tipo especial de vector es el que se forma para evaluar una 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

ax+b y = c
d x+ey = f

Dichas ecuaciones se pueden resolver mediante:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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
A=  v=  w= 
d e  f  y

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

2a − 2b =5
−2a + 6b − 2c =0
− 2b + 6c − 2d = 0
− 2c + 8d = 0

Dicho sistema se escribe en forma matricial como

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 65

 2 −2 0 0  a 5 
 −2 6 −2 0  b  0 
A=  x=  b= 
 0 −2 6 −2  c  0 
     
 0 0 −2 0  d  0 
Para resolver este sistema se obtiene la inversa de la matriz A y luego se multiplica por b

Otra manera de resolver el sistema es mediante la 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 = LU

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 66

Ejemplo

Dada la matriz A factorizar LU.

 0.1 0.5 2.2 6.8


 −4 2 7 9 
A=
12.5 −11.7 12 8.6 
 
 −3 4 −6 9 

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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ax = λ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 
A=
 −3 1 0 5
 
4 7 −3 8 

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

A = M -1J 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 69

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 71

Tabla Nº 14. Algunas operaciones con matrices.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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)

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 76

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 77

13.15 Polinomios.

En MATLAB los polinomios se identifican con el vector-fila de sus coeficientes:

p = [3, 5, 0, 1, 2] representa el polinomio: 3x 4 + 5 x3 + x + 2

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 78

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 79

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 80

13.16 Otros Comandos para operar con matrices.

En las tablas Nº 18 , 19 y 20, se muestra un resumen de algunas de las funciones principales


para operar con matrices.

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 81

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 82

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

Ejemplos.

 1 −4 2 
 
Ingresar la matriz A = 7 3 11 y calcular:
 
 5 9 6 
a) Determinante de A.
b) Transpuesta de A.
c) Inversa de A (si es posible).
d) Comprobar que A * A−1 = I
e) Traza de A.
f ) A2 y A5
g) Autovalores de A
A
h) e
i) Polinomio característico P (λ ) .

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 83

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 84

 1 2 3  6 5 −2 

Dadas las matrices A = −4 5 6
  
  ; B =  0 7 −3 , calcular:
 7 −8 9  11 15 4 

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 85

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 86

 1 −3 5 14 
 2.5 0.6 3.1 −6.25 
Dada la matriz A =  , calcular los autovalores y los
 4.2 −8.45 7.43 15.12 
 
 −6.98 7 0 −11.65
autovectores.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 87

13.17 Algunas Matrices Especiales.

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

Tabla Nº 21. Algunos comandos para generar matrices particulares

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 88

13.18 Sistemas Lineales.


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

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

 3x 2.5 y +6.3 z +4 w = 9
 −2 x
 +y 3z −7.35w = 7
Dado el sistema lineal  , resolverlo en forma
 x 0.24 y 0.33 z 11w = 5
18 x +14 y −7.89 z +1.23w = 0.86
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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 90

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

Ejemplo de aplicación sobre la tabla precedente.

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


anterior.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 92

Ejemplo.

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


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

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).

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 93

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

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

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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)

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 eval y feva


feval
va

Para evaluar una función se puede emplear el comando eval

Ejemplo

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 f ( x ) = sen x, g ( x) = tg x, h( x) = e x , 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”.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 f ( x ) = 2.5 sen x + 4 e − x . Definirla con la variable dada en forma
simbólica, y calcular la imagen de 5.25.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:
lim f ( x)
x → x0

Ejemplo

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

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 108

Ejemplo

Calcular el límite de f ( x) = x −2 + 1 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 f ( x) = tan x en x = π 2 . Evaluando los límites laterales se


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

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


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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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: lim [lim f ( x, y ) = 3 x 2 + 8 x y ]


x →3 y → 2

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:

1+ n
an = n
n2

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

1+ n
lim an = lim n
n→∞ n →∞ n2

15.3 Continuidad

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


lim f ( x) = f (a )
x →a

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

sen x 1
f ( 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 x → 0 , se obtiene

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

Pero para x→0

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 x=0

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 ( x0 , y0 ) , se debe recordar que si el


límite en el punto ( x0 , y0 ) , tiene el mismo valor, independientemente de la forma como se
llegue a dicho punto, entonces el límite existe

Ejemplo

xy
Sea la función de dos variable f ( x, y ) = y se desea calcular el límite al tender
x + y2
2

al origen

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 = mx

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


en:

mx 2
f ( x, y ) = 2
x + mx
De esta manera, el límite se calcula con solo hacer tender x→0

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

y2 = m x

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 113

xy m1 2 x3 2
f ( x, y ) = =
x 2 + y 2 x 2 + 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
f ( x) = x3 , sabemos que es: df dx = 3 x 2

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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 114

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


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 q ( x) = 3a 2 x , se tiene

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


Veamos otro ejemplo
f ( z) = z n

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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).

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 , y ) =
∂x ∂y

15.5. Integración

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

F = int( 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

∫ f ( x)dx , ∫ f (v)dv
a a

MATLAB utiliza

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

Ejemplo

Calcular ∫ cos( x)dx


Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 117

Ejemplo

1
Evaluar ∫ 5x dx
0

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

Ejemplo

∞ −2 x
e sen(2 x)
Calcular la integral impropia ∫ x
dx , mediante MATLAB
0

Este resultado indica que la integral converge.

Para el caso de integrales impropias en las cuales hay puntos singulares como por

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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
∑ f ( n)
n= a

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 ∑ xn
n =0

Ejemplo

∞ − n2
 1
Evaluar la serie ∑ 1 + n 
n =0

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Dy = dy / dt
D 2 y = d 2 y / dt 2
  
Dny = d n y / dt n

Así, para la ecuación diferencial

d2y
2
= 1 + y2 ⇒ D2 y = 1 + y ^ 2
dt
Las ecuaciones diferenciales se resuelven con el comando dsolve.

Ejemplo

d 2 y (t )
Resolver la ecuación diferencial: + y (t ) = 4
dt 2

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

y (0) = 1, dy (0) =0
dt
se indican dentro de dsolve, después de la ecuación diferencial, como se muestra a
continuación

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

d 2 y (t ) dy (t )
2
+a + by (t ) = c
dt dt
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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 121

Ejemplo

Sea el sistema de ecuaciones diferenciales:

 dx(t )
 dt = 5 x(t ) + 8 y (t )
 , x(0) = 1; y (0) = 2
 dy ( t )
= −4 x(t ) + 9 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:

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

La ecuación diferencial se puede escribir como:

(1 + y ) 2
senx dx = dy
y2

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

dny d n −1 y d2y dy
an n
+ an −1 n−1
+  + a2 2
+ a1 + a0 y = 0
dt dt dt dt

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

an x n + an−1x n−1 +  + a2 x 2 + a1x + a0

Su ecuación característica es:

an x n + an−1x n−1 +  + a2 x 2 + a1x + a0 = 0

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 123

Si las raíces de la ecuación característica son r1 , r2 , … , rn , entonces la solución de la


ecuación diferencial está dada por:

y (t ) = C1e r1t + C2e r2t +  + Cn−1ern −1t + Cne rnt

Donde C1 , C2 ,… , Cn , son constantes que se determinan conociendo las condiciones


iniciales.

Ejemplo

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


2
d y (t ) dy (t )
2
+7 + 10 = 0
dt dt

Si se conocen las condiciones iniciales, se pueden calcular los coeficientes C1 y C2,


empleando el comando solve.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

dy
= 4yt
dt
Intervalo :[0,1] , C.I . = y (0) = 2

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 126

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 132

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

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 141

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 147

Ejemplos

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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: f ( x ) = 3e −0.5 x cos(6 x + 2)

En la pantalla gráfica de la figura 54 se muestra el dibujo, correspondiente a la función


analítica dada..

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 150

Ej.4a)
Mostrar en el mismo gráfico, con ejes comunes, las siguientes funciones:
f ( x) = sen 5 x, g ( x) = cos(4 x + 3), h( x) = sen 2 x + cos 3x , 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 151

Ej. 5)
Graficar la función f ( x ) = 3e −2 x − 4.5e −3 x , 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 f ( x ) = e 0.2 x sen2 x, y g ( x) = sen1.5 x + cos ( x + 5) .

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.-)

3
Dada la función f ( x) = e − cos( x + 5)
, 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.
3
Dada la función f ( x) = e − cos( x + 5)
, definirla en forma simbólica y graficarla en el intervalo
[-3,3].

Para ello se puede modificar los comandos de la siguiente manera:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 155

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

2
f ( x) = cos3 x; g ( x) = sen5 x; h( x) = e −0.03 x ; k ( x) = e sen (3 x + 2)

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

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

2
Sea la función : f ( x) = e −0.3 x : 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 157

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

Ejemplo.
 x(t ) = 3cos t − cos3t
Dada la curva definida en forma paramétrica mediante:  , con el
 y (t ) = 2 sent − sen 2t
intervalo de validez : 0 ≤ t ≤ 12 .

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Modulación en amplitud: eAM (t ) = ( E p + Em cos ωm t )cos ω p t


Modulación en frecuencia: e FM (t ) = E p cos(ω pt + f (t ))

Donde:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 160

E p : amplitud de la portadora
Em : amplitud de la modulante
ωm : pulsación de la modulante
ωp : pulsación de la portadora
f(t): señal modulante en frecuencia

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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 162

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Y ( s) 5
= 3 2
U ( s ) s + 4 s + 1.8s + 5

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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)

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

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

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

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

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

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

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 if-


if-end
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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 177

La condición es de la forma e1 R e2 , donde e1 y e2 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 179

20.1 b) Instrucción if-


if-else-
else-end

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 a1 a la an . Después de la


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

Si la condición no se cumple, se ejecutan las declaraciones b1 a bm . Al terminar la


declaración bm , 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 elseif

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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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-case

La instrucción switch
switch--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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 187

Ejemplo

Calcular el factorial de un número entero n! = 1× 2 × 3 × × 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 188

Ejemplo (del empleo de la instrucción for anidada)

Se desea sumar todos los elementos aij de una matriz n×m . Esto se puede hacer
realizando la suma

n m
suma = ∑ ∑ aij
i =1 j =1

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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 189

20.1 f) Instrucción 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 192

Ejemplo
Solución de una ecuación de segundo grado ax 2 + bx + c = 0 .Las soluciones analíticas
2
de esta ecuación están dadas por: x1,2 = ( −b ± b − 4ac ) 2a
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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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).

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 209

Ejemplo2.

Supóngase que se desea construir una función que no está en el archivo de funciones pre-
x
determinadas de MatLab. Considérese la función: f ( x) = . En primer lugar se
1 + x2
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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 210

Fig. 121. Gráfico de la función generada, y guardada en el archivo myfile.

Ejemplo3.

Considérese la función f ( x) = 1 (1 − x 2 ) + (2ξ x) 2 , x = ω ωn , 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 < ω < ∞, y 0 < ξ < 1 . El objetivo
es dibujar la curva de respuesta en función de x , empleando ξ como parámetro.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 211

En la figura 122, se muestra el gráfico obtenido

Fig. 122. Gráfico de la función f(x).

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

1
G (s) =
s 2 + 2ξ s + 1

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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

s2 + 7s + 3
G (s) = 3
s + 9 s 2 + 20 s + 21
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)

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 216

Si se desea resolver la ecuación matricial de estado:

dx dt = 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

s2 + 3
G (s) = 2
s + s +1

1 3
Esta función tiene dos polos ubicados en: p1,2 = − ± j y los ceros están en:
2 2
z1,2 = j 3 .

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 220

d2y 1
EI 2 = wLx − wx 2
dt 2
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:

d2y 1 2 1
= w( Lx − x )
dt 2 2 EI
Esta derivada segunda, en MATLAB, la podemos declarar como:

d 2 y = w * ( L * x − x ^ 2 / 2) /( E * I )

La primera integral la obtenemos con:

dy = int(d 2 y )

La segunda integral se evalúa con:

y = int(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 .

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 222

Fig. 134. Ecuación de la elástica y flecha máxima.

Fig. 135. Gráfica de la elástica.


Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

n
d 2x
∑ fi (t ) = m dt 2
i =1

Realizando la sumatoria de fuerzas en el nodo “dx/dt” se tiene:

d 2x dx dy
m 2 + b + kx − b − ky = 0
dt dt dt

Como el desplazamiento de la base es y (t ) = Ysen(ωt ) , su derivada es la velocidad de


la base y está dada por: dy (t ) / dt = ω Y cos (ωt ) .

Reemplazando en la ecuación diferencial se obtiene:

d 2x dx
m + b + kx = b ω Ycos (ωt ) + k Y sen(ωt )
dt 2 dt

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

x1 = x
x2 = dx dt = dx1 / dt

Con esta elección de variables, las ecuaciones diferenciales se pueden escribir como:

 dx1 dt = x2

 k b bωY kY
dx2 dt = − m x1 − m x2 + m cos(ωt ) + m sen(ωt )

Se considerarán los siguientes valores de los parámetros y amplitud de la excitación:

m1 = 100kg , m2 = 500 kg , Y = 0.1, k = 400,

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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 v0 y
con un ángulo θ con respecto al eje horizontal, como se muestra en la figura 140.

Fig. 140. Tiro en el vacio

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

d 2x
m 2 =0
dt
d2y
m 2 = − 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:

x1 = x coordenada x
x2 = y coordenada y
x3 = dx dt = dx1 dt Componente de la velocidad según x
x4 = dy dt = dx2 dt Componente de la velocidad según y

Con esta elección de variables de estado, las ecuaciones ODE del sistema, se transforman
en:

dx1 dt = x3
dx2 dt = x4
dx3 dt = d 2 x dt 2 =0
dx4 dt = d 2 y dt 2 = − g

Estas ecuaciones se pueden programar en una función, como la mostrada en la figura 141:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

v02 sen 2 θ (100) 2 × sen 2 (30º )


hmax = = = 127, 42m
2g 2 × 9.81

Asimismo la distancia horizontal máxima está dada por:

v02 cosθ (100) 2 × cos (30º )


xmax = = = 882.80 m
g 9.81

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 θ y v0 .

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 v
F = −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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 231

2 2
d 2x dx  dx   dy 
m 2 = 0 + Fx = 0 − c   + 
dt dt  dt   dt 
2 2
d2y dy  dx   dy 
m 2 = − mg + Fy = −mg − c   + 
dt dt  dt   dt 

Estas ecuaciones diferenciales se pueden escribir como cuatro ecuaciones ODE de primer
orden. Esto se obtiene mediante las variables de estado:

dx1 dt = x3
dx2 dt = x4
2 2
d 2x c dx  dx   dy  c 2 2
dx3 dt = 2 = −   +   = x3 x3 + x4
dt m dt  dt   dt  m
2 2
d2y c dy  dx   dy  c
dx4 dt = 2 = − g − +
    = − g − x4 x32 + x42
dt m dt  dt   dt  m

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).

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 234

Ejemplo 11. Descenso de un paracaidista.

El paracaidista se lanza desde un avión en t =0 , a una altura h y abre su paracaídas en


el instante t0 .
La dinámica del modelo es la siguiente: en el instante de lanzamiento t = 0 la velocidad
inicial es: v(0) = vin = 0 y la altura es y (0) = h . En el intervalo de tiempo 0 ≤ t ≤ t0 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

g t2
relación y (t ) = h − .
2

En el instante t = t0 se abre el paracaídas. En ese momento las condiciones de velocidad


y altura son:

v(t0 ) = g t0
g t02
y (t 0 ) = h −
2
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: t = t0 , tal que

y (t 0 ) > 0
g t02
h>
2
2h
t0 <
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:

dv
m = −mg + kv 2
dt

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:
2
0 = −mg + kv
Así la velocidad límite es:

mg
v=
k
Para resolver la ecuación del movimiento del paracaidista, conviene escribirla como:

dv k
= −g + v2
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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 236

Fig. 148. Programa para resolver la ecuación del paracaidista.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:
z = a + ib = a + jb = a 2 + b 2 e jφ , φ = a tan 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: z1 = −4.5 + 2.3i, z2 = 5.6 − 3.5i , se pide.


a) Calcular los módulos y fase de los dos números complejos.
b) El producto z1 × z2 y el cociente z1 / z2 .
c) El conjugado de z1 y z2 .
d) Graficar los números complejos z1 y z2 y sus conjugados.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 238

En la figura 150 se muestran las instrucciones cargadas en la ventana de comandos, para


realizar los cálculos solicitados.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

f : ℜ2 → ℜ / f ( x, y ) = cos(2 x + 3 y )
Sea las funciones reales: 2
+ y3 )
g : ℜ 2 → ℜ / g ( x, y ) = e − ( x

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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 242

Tabla Nº 34. Algunos comandos para gráficas 3D

Ejemplo.

Dada la curva definida en forma paramétrica por las ecuaciones:

x = 3sen(2t )
y = 5cos(t )
z = t3
Realizar el gráfico 3D.

Se obtiene el gráfico, mostrado en la figura 156.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 243

Fig. 156. Gráfico 3D para una curva.

Ejemplo.

sen( x 2 + y 2 )
Sea la función (campo escalar) : f ( x, y ) = , realizar una gráfica de la superficie
x2 + y 2
en ℜ3 .

Se obtiene la gráfica mostrada en la figura 157.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 244

Fig. 157. Superficie 3D.

Ejemplo.

Sea la función dada por: f ( x, y ) = cos x.cos y . Se desea graficarla empleando el comando
meshc.

En la figura 158 se muestra el gráfico obtenido.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 245

Fig. 158. Gráfico 3D.

Ejemplo.

Dada la función : q ( x, y ) = 0.7 y 3 / 2 2 x , se desea graficarla utilizando el comando mesh y


contour .

Esto devuelve el gráfico mostrado en la figura 159.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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(t )
γ con t ∈ D ⊆ ℜ en el plano xy en otra dada por :
 y = y (t )
u = u (t )
ξ con t ∈ D ⊆ ℜ en el plano uv
 v = v(t )

Reemplazando en la expresión de f(z), se obtiene:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 f : C → C / f ( z ) = z 3 + 2 , para la misma se


desea conocer las componentes real e imaginaria y determinar en que se transforma la
región dada por:
ℜ = {( x, y ) ∈ C / x = 4, −6 ≤ y ≤ 6}

Los comandos para realizar lo pedido, se muestran en la figura 161

Fig. 161. Comandos para realizar los gráficos.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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: f ( z ) = 0.5 z 3 − z 2 + 3 , se desea hallar y ver en
un gráfico los campos escalares dados por:

ρ ( x, y ) = f ( z ) ϕ ( x, y ) = arg( f ( z ))

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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).

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

R + jω L
Z ( jω ) =
(1 − LCω 2 ) + jRCω

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 254

Ejemplo

Dada la función f ( x, y ) = ( x + y ) cos( x3 + y 3 ) , se desea obtener las derivadas parciales


respecto de x e y.

Ejemplo.

2
Dada la función f ( x) = 2.15 e − x cos x3 , 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 255

Fig. 170. Gráficos de la función y su derivada.

Ejemplo.

Sea la función : f ( x, y ) = x3 y 2 + 6 xy + 3 x 2 y 3 + 10 , se desea obtener la integral doble de la


misma en el recinto [-1,1] x[-1,1]

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 256

Ejemplo.
Dada la función f ( x) = cos 2 x.cos(2 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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: f ( x, y ) = (e−2 x cos 2 y , e−2 x sen 2 y ) , se desea graficar las líneas de
campo.

MatLab devuelve el gráfico mostrado en la figura 172.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 259

Tabla Nº 37. Algunas funciones adicionales para el manejo de gráficos.

Ejemplo.
Se tienen dos funciones : f ( x) = sen(3 x), g ( x) = 15cos(4 x) , y se desea visualizarlas en la
misma gráfica.

Fig. 173. Gráficas de las funciones f(x) y g(x).

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 260

Ejemplo.

Dada la función f ( x) = x 2 , 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 f ( x) = 0 , es decir, un punto en el cual la
función f vale 0, se usa la orden:

>> fzero('expresion de la función', xprox)

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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: x + ln( x 3) = 0


>> 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 x = 1 , luego
empleamos el comando:

>> fzero('x+log(x/3)',1)

ans =

1.0499

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 262

Si la ecuación f ( x ) = 0 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.

sen( x / 2) cos( x ) = 0 en [−π ,3π ]

>> 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

an x n + an −1 x n−1 + … + a1 x + a0 = 0

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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 264

Ejemplo.

5 2 1
Calcular las raíces de la ecuación polinómica: x3 − x + x +1= 0
2 2

Ejemplo.

Calcular las raíces de la ecuación polinómica: x3 + 1 = 0

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: f ( x) = 2 x 2 + x − 1 en [ −2,2]

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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: f ( x) = 2 x 2 + x − 1 en [ −2,2]

Ejemplo.

Hallar el mínimo de: f ( x) = x3 − x


x ∈ [ −1,1]

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

N
Otra manera de determinar mínimos relativos de funciones no lineales 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: f ( x) = sen(ln( 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 267

Fig. 179. Conjunto de comandos para determinar el mínimo y la gráfica.

Fig. 180. Gráfica de la función.

Ejemplo:

2  x x
Hallar el mínimo relativo de la función : f :R → R f ( x ) = sen( 1 ) sen( 2 )
2 2

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

dy dt = f (t , y ) en [to , t f ]

 y (to ) = yo

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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 270

Tabla Nº 40. Instrucción para ejecutar ode23.

Ejemplo
 y = 2t + y en [1, π ]
'
Calcular la solución de : 
 y (1) = 0.5

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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

 t
dy / dt = 0.2 cos( ) y
Calcular la solución de:  2
 y (1) = 0.5

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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].
 t
dy / dt = 0.2 cos( ) y en [1, π ]
 2
 y (1) = 0.5

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:
 t
dy / dt = a cos( ) y en [0, 6π ]
 2
 y (0) = 1

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 277

Ejemplo.

Resolver el siguiente sistema de ecuaciones diferenciales:

  y2 y3 

dy1 / dt = y2 y3 dY / dt = F (t , y ) =  −0.7 y1 y3 
  −0.5 y1 y2 

dy2 / dt = −0.7 y1 y3
dy / dt = −0.5 y y
 3 1 2

 0 
 y (0) = 0 Y (0) = Y0 = 1 
 1
 1 

 y2 (0) = 1
 y3 (0) = 1

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 278

Ejemplo.

Resolver el sistema de segundo orden:

 2 2 1
d y / dt = dy dt − sen( y )

 y (0) = 1
 dy / dt (0) = 1



Realizando un cambio conveniente de variables, se obtiene:

  z2 
dZ / dt = F (t , Z ) =  
 1 z2 − sen( z1 ) 

 1
 Z (0) = Z 0 =  
 1

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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 280

 dx(t )
 + x(t ) = 5
 dt
 x(0) = 1

MatLab devuelve el gráfico mostrado en la figura 192.

Fig. 192. Gráfico de la solución simbólica de la ODE

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 281

Ejemplo.
Resolver y graficar la solución de la siguiente ecuación diferencial.

 d 2 x(t )
 2
+ dx(t ) / dt + 2 x(t ) = et
 dt
 x(0) = 1
dx(0) / dt = 0



>> 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

dy d2y dy dx dy
+ 7 y = 2e x ; + 3 + 8 y = 0; + = 3x + y
dx dx 2 dx dt dt

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).

∂ 2u ∂ 2 u ∂ 2u ∂ 2u ∂u ∂u ∂v
+ = 0; = 2 −3 ; =−
∂x 2 ∂y 2 ∂x 2
∂t ∂t ∂y ∂x

a2.- Clasificación según el orden.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

(
F x, y, dy dx, d 2 y dx 2 ,, d n y dx n = 0 )
Donde F es una función de valores reales de n+2 variables: x, y, y′, y′′, y′′′, … , y ( n)

Se dice que una ecuación diferencial ordinaria de orden n (como la anteriormente indicada)
es lineal si F es lineal en y, y′, y′′, y′′′, … , y ( n ) . Esto significa que una EDO es lineal si
se cumple que:

dny d n−1 y dy
an ( x) n + an−1 ( x) n−1 +  + a1 ( x) + ao ( x) y = g ( x)
dx dx dx

Casos especiales importantes en ingeniería y ciencias son:

• las EDO lineales de primer y segundo orden:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 285

• EDO lineales de orden n a coeficientes constantes.

dny d n−1 y d2y dy


an n + an−1 n−1 +  a2 2 + a1 + ao y = g ( x)
dx dx 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

F ( x, φ ( x), φ ′( x), φ ′′( x),…,φ ( n) ( x)) = 0 , ∀ 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:

dx
= f (t , x, y )
dt
dy
= g (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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 287

dx
= f (t , x, y )
dt
dy
= g (t , x, y )
dt
Donde:

 x1 (t )   y1 (t ) 
 x (t )   y (t ) 
x= 2  , y= 
2
     
   
 xn (t )   y p (t ) 
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 t0 .
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, t1 , t 2 , … , tk , 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 t0 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

d 2 y (t ) dy (t )
2
+α + 2 y (t ) = u (t )
dt dt

Para: α = 1, 2, 8, 4, con u (t ) = escalón unitario , frente a las condiciones


iniciales dy dt (0) = 0, y (0) = 0 .

Para realizar la simulación conviene, en primer lugar, despejar la derivada de mayor orden,
que para el ejemplo es:

d 2 y (t ) dy (t )
2
= −α − 2 y (t ) = u (t )
dt dt
Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.
Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 Scope (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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 Integrator (Integrador)

El bloque integrator 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 303

32.6. Elemento Step

El elemento 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”.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 304

Fig. 215. Ventana de parámetros del bloque “Step”.

32.7 Elemento Transfer function

Dentro de los elementos lineales y de señales continuas, se encuentra el bloque Transfer


function. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:
0.5s 2 + 2 s + 1
Cargar el bloque cuya función transferencia sea G ( s ) =
s 3 + 5s 2 + 3s + 8
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”.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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
d x (t ) dx (t )
f (t ) = M 2
+B + kx(t ) , Con los siguientes valores:
dt dt
M = 10, B = 5, K = 20, f (t ) = escalón de 1N

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:

(
F ( s ) = Ms 2 + 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:

X ( s) 1 1
G (s) = = 2
= 2
F ( s ) Ms + Bs + k 10 s + 5s + 20

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

1 1
lim x(t ) = x(∞) = lim s G ( s ) = lim s = = 0.05
t →∞ s→0 s →0 10 s 2 + 5s + 20 20

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:

d 2 x(t ) B dx(t ) k 1
2
=− − x (t ) + f (t )
dt M dt m M

d 2 x(t ) dx(t )
2
= −0.5 − 2 x(t ) + 0.1 f (t )
dt dt

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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

x (0) = 0.02 m
dx
(0) = 0.05 m / 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 .

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

 x (t ) = x(t ) : desplazamiento
Variables internas ≡  1
 x2 (t ) = dx dt : velocidad

Entrada al sistema ≡ u (t ) = f (t ) : fuerza

Salida del sistema ≡ y (t ) = x(t ) : desplazamiento

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 312

La ecuación diferencial de segundo orden se puede escribir como un sistema de dos


ecuaciones de primer orden, de la siguiente manera:

dx1 dt = x2
B K 1
dx2 dt = − x2 − x1 + u
M M M

La salida se puede expresar como:

y = x1 + 0. x2

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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

dx
= Ax + Bu
dt
y = Cx + Du
Donde:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 314

 x1 
x 
x =  2  ≡ Vector de estado

 
 xn 

 u1 
u 
u =  2  ≡ Vector de entrada
 
 
 um 

 y1 
y 
y=  2
≡ Vector de salida
 
 
 yp 
Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 315

A : Matriz del sistema (n × n)


B : Matriz de entrada ( n × m)
C : Matriz de salida ( p × n)
D : Matriz de
Transferencia directa ( p × m)
Con los valores de los parámetros para el sistema M-B-K del ejemplo, se obtienen las
matrices A, B, C y D.

 dx1 dt   0 1   x1   0 
 dx dt  =  −2 −0.5  x  + 0.1 u
 2    2  
x 
y = [1 0]  1  + [ 0] u
 x2 

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”.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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


x1 (t ) = desplazamiento y x2 (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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 318

 y1  1 0   x1  0 
 y  = 0 1   x  + 0 u
 2   2  

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.
Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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”.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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á:

e2 (t ) θ (t ) − θ a (t ) dθ
+ Bω2 − = Cth
R Rth 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 ( R, Rth , B, Cth ) , 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 ( eo ) , 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 ( e(t ), ω (t ), θ a (t ) ) toman el valor


correspondiente al punto de operación estable en régimen estacionario

( eo , ωo , θa 0
≡ θ a = 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 :

eo2 θ −θ
+ B ωo2 − o a = 0 → Balance térmico en el punto de operación
R Rth

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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 328

Nm
eo = 100 VDC B = 0.005 θ a = 20 º C Cth = 70 J
rad seg ºC

R = 1000Ω Rth = 2 º C ω0 = 300 rpm = 31.42 rad seg


W

Sobre la base de dichos valores se determina la temperatura del fluido en régimen


estacionario:

 e02 2 θa   1002 20 
θ 0 = Rth  + Bω0 +  = 2 ×  + 0.005 × (31.42)2 +  = 49.88º C
R Rth   1000 2 

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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

dqcal 1 d 2qcal
qcal = qocal + (e − e0 ) + 2
(e − e0 ) 2 +  +
e 2 ! de

dqrem 1 d 2 qrem
qrem = qorem + (ω − ω0 ) + 2
(ω − ω0 ) 2 +  +
dω 2 ! 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:

e = e − e0 : Desviación de e respecto de e0
ω = ω − ω0 : Desviación de ω respecto de ω0
qcal = qcal − q0cal
qrem = qrem − q0rem

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:

dqcal
qcal = qcal − qocal = e
de
dq
qrem = qrem − qorem = rem ω

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 330

Teniendo en cuenta la aproximación anterior, la ecuación diferencial (ODE) del proceso


térmico se puede escribir como:

2e0 θ θ dθ
e + 2 Bω0 ω + a = + Cth
R Rth Rth dt
Como la temperatura ambiente se considera constante (En realidad sus variaciones durante
el tiempo de establecimiento t s = 4τ th , 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:

2e0 θ − θa d (θ − θ a )
e + 2 Bω0 ω = + Cth
R Rth dt
Designando como:

θ = θ − θ a : Desviación de temperatura respecto al ambiente


Finalmente la ODE se convierte en:

2e0 θ dθ
e + 2 Bω0 ω = + Cth
R Rth 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:

2e0 2 × 100
= = 0.2
R 1000
2 Bω0 = 2 × 0.005 × 31.42 = 0.3142
1 1
= = 0.5
Rth 2
Cth = 70

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 331

Reemplazando los coeficientes calculados en la ODE Lineal se obtiene.

dθ
0.2 e + 0.3142 ω = 0.5 θ + 70
dt

Para simular el modelo mediante SIMULINK, conviene despejar la derivada de mayor orden
como se indica a continuación:

dθ 0.2 0.3142 0.5 


= e + ω − θ
dt 70 70 70
dθ
= 0.00286 e + 0.00449 ω − 0.007143 θ
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:

e(t ) = 10V (10% del valor de estacionario)


ω (t ) = 3.142rad / seg (10% del valor de estacionario)
e(t ) = escalón de 10V , aplicado en t = 0
ω (t ) = escalón de 3.142 rad / seg , aplicado en t = 800 seg

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 τ th = 140 seg

ii. El tiempo de establecimiento del proceso es t s = 4τ th = 560 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).

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

e 2 (t ) θ (t ) − θ a (t ) dθ
+ Bω2 − = Cth
R Rth 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 ( t s = 4τ th = 560 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:

e 2 (t ) θ (t ) − θ a (t ) d (θ − θ a )
+ Bω2 = + Cth
R Rth dt

Llamando a

θ * = θ − θ a : sobreelevación de temperatura

La EDO del modelo se convierte en:

e2 2 θ* dθ *
+ Bω = + Cth
R Rth dt

Reemplazando los valores de los parámetros se obtiene:

2 2 dθ * *
0.001 e + 0.005 ω = 0.5 θ + 70
dt

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:
dθ * 0.001 2 0.005 2 0.5 *
= e + ω − θ
dt 70 70 70
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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

e = e0 + e = (100 + 10)V = 110 V


ω = ω0 + ω = (31.42 + 3.142)rad / seg = 34.562 rad / seg
e0 = escalón de 100 V , aplicado en t = 0
e = escalón de 10 V (10% e0 ), aplicado en t = 800 seg
ω0 = escalón de 31.42 rad / seg , aplicado en t = 0
ω = escalón de 3.142 rad / seg (10% ω0 ), aplicado en t = 1600 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 τ th = 140 seg

ii. El tiempo de establecimiento del proceso No-Lineal es ts = 4τ th = 560 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

e = 20 V
ω = 6.284 rad / seg
Los resultados obtenidos, en la simulación, se muestran en los gráficos de las figura 247 y
248

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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..

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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).

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

mc = 453 kg , mw = 79 kg
ks = 35 × 103 N / m, kt = 280 × 103 N / m
bs = 584 N m / seg , bt = 44 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 mc y mw . 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 341

a) Ecuaciones diferenciales del sistema.

Las ecuaciones de equilibrio de fuerzas para el sistema mecánico de la suspensión,


son:

 d 2 zc dzc dz g dz
 c 2
m + ( bs + b t ) + ( k s + k t ) zc − bs − ks z g − bt w − kt zw = 0
 dt dt dt dt
 2
 m
d zw
+ b
dzw
+ k z − b
dzc
− kt z c = 0
 w
dt 2
t
dt
t w t
dt

Dividiendo la primera ecuación por mc y la segunda por mw , y reemplazando los valores


de los parámetros dados al principio, se obtiene:

 d 2 zc dzc dz g dz
 2 + 1.39 + 695.4 z c − 1.29 − 77.3 z g − 0.097 w − 618.1 zw = 0
 dt dt dt dt

 d 2 zw dzw dzc
 + 0.56 + 3544.3 z w − 0.56 − 3544.3 zc = 0
dt 2 dt dt

b) Simulación del modelo

Integrando las ecuaciones diferenciales precedentes se obtienen las ODE siguientes:

 dzc
 dt = −1.39 zc − 695.4 ∫ zc dt + 1.29 z g + 77.3∫ z g dt + 0.097 zw + 618.1∫ zwdt

 dzw
= −0.56 zw − 3544.3 ∫ zwdt + 0.56 zc + 3544.3∫ zc dt
 dt

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 zc (0) = −0.06 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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 ti = 0, y luego


con un escalón positivo de 20 cm en t f = 150 m /(50 km / hr ) = 10.8 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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
T = 1.5 m (8 km / hr ) = 0.675 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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
T = 1.5 m (3.2 km / hr ) = 1.69 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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:

( )
 s 2 + 1.39 s + 695.4 Z c ( s ) − ( 0.097 s + 618.1) Z w ( s ) = (1.29 s + 77.3) Z g ( s)


(
 − ( 0.56s + 3544.3) Z c ( s ) + s 2 + 0.56 s + 3544.3 Z w ( s ) = 0
 )
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:

(1.29 s + 77.3) ( s 2 + 0.56 s + 3544.3) Z g (s )


Z c (s) = 2
( s + 1.39 s + 695.4)( s 2 + 0.56 s + 3544.3) − ( 0.097 s + 618.1)( 0.56s + 3544.3)

Z c (s) =
(
1.29 s 3 + 60.48 s 2 + 3577.85 s + 2.12403 × 105 ) Z g ( s)
(s 4
+ 1.95 s 3 + 4240.42 s 2 + 4626.07 s + 2.74 × 105 )

(1.29 s + 77.3)( 0.56s + 3544.3) Z g ( s)


Z w (s) =
( s 2 + 1.39 s + 695.4)( s 2 + 0.56 s + 3544.3) − ( 0.097 s + 618.1)( 0.56s + 3544.3)

Z w (s) =
(
0.722 s 2 + 6392.58 s + 3.795 × 105 ) Z g (s)
(s 4
+ 1.95 s 3 + 4240.42 s 2 + 4626.07 s + 2.74 × 105 )
Expresando los polinomios como cociente de los ceros y polos de cada función
transferencia, se obtiene:

0.722( s + 6332.65)( s + 59.93)


Z w (s) = Z g (s)
( s + 0.428 ± j 64.604)( s + 0.548 ± j8.083)

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 350

1.29 ( s + 6.6469 )( s + 26.9166 ± j 49.995 )


Z c ( s) = Z g (s)
( s + 0.428 ± j 64.604)( s + 0.548 ± j8.083)

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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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
T = 1.5 m (8 km / hr ) = 0.675 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

La = 19.4 mH Ra = 5.3 Ω kT = 0.452 Nm / A kb = 0.452 Vseg / rad


J m = 8.49 × 10−4 Kgm 2 Bm = 0.004 Nmseg ea = 90V

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

 dia
 ae − La − Ra ia − kbωm = 0
dt

 k i − J d ωm − B ω − T = 0
 T a m
dt
m m L

Donde TL es una cupla de carga sobre el eje del motor. Si TL = 0 , se considera que el
motor está en vacio.

Se considerará que el servomotor tiene dos entradas:

u1 = ea
u2 = TL

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 353

Una salida: la velocidad angular


y = ωm

Dos variables internas (variables de estado):

x1 = ωm
x2 = ia
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.

 dx1 / dt   − Bm J m kT J m   x1   0 −1 J m   u1 
 dx / dt  =  − k L   +  0  u2 
 2   b a Ra La   x2  1 La
x  u 
y = [1 0]  1  + [0 0]  1 
 x2  u 2 

Esta representación del sistema LTI se llama “Representación de Estado”, cuyo


modelo general es:

dx dt = 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:

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 354

 dx1 / dt   −4.71 −532.39   x1   0 −1177.86   u1 


= +
 dx / dt   −23.30 273.20   x  51.55  u 
 2    2  0  2
x  u 
y = [1 0]  1  + [0 0]  1 
 x2  u2 
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 ea = 90 V

En esta simulación se aplica en t = 0 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 355

ωm (∞)vacio = 180.4 rad seg (1723 rpm)


ia (∞)vacio = 1.595 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 , TL = 0.5 N .m , aplicado


en t = 0.60 seg , y con tensión nominal de armadura ea = 90 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

ωm (∞)TL =0.5 = 168.6 rad seg (1610 rpm)


ia (∞)TL =0.5 = 2.60 A

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 357

Fig. 272. Variables del motor ampliadas para ver mejor los detalles.

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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

Ing. A. M. Mariani – Área Control--Dtos. Electrónica y Eléctrica -- Universidad Tecnológica Nacional – FRBA y FRH.
Curso Introductorio sobre MATLAB y SIMULINK-- UNLZ (2006/07) Pág. 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.

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

You might also like