Professional Documents
Culture Documents
Prefacio
Ing. A. M. Mariani – Área Control--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. A. M. Mariani – Área Control--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
• Cálculos.
• Visualización.
• Programación.
• 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
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:
Ing. A. M. Mariani – Área Control--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
• Procesamiento de señales.
Communications Toolbox
Conjunto de funciones para MATLAB que facilitan el diseño de algoritmos y componentes de
sistemas de comunicaciones.
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.
Mapping Toolbox
Conjunto de herramientas para el análisis y visualización de información gráfica de tipo
geográfico.
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.
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
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.
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.
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.
Ing. A. M. Mariani – Área Control--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.
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.
Ing. A. M. Mariani – Área Control--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
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.
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.
Ing. A. M. Mariani – Área Control--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
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.
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.
Ing. A. M. Mariani – Área Control--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).
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
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.
Ing. A. M. Mariani – Área Control--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
2. Componentes de MATLAB.
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).
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.
3. SIMULINK.
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
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.
Ing. A. M. Mariani – Área Control--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.
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
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’
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
6.3. Variables.
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:
+ - = * ^ < > …
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:
Ing. A. M. Mariani – Área Control--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:
Ing. A. M. Mariani – Área Control--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
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
En MATLAB existen funciones para las cadenas. Entre ellas se tienen algunas, como se
muestra en la Tabla Nº 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. 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
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 se observan los archivos del directorio, se ve que hay un nuevo archivo llamado
sesion.txt, como se muestra en la figura 2, siguiente.
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
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.
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.
Ing. A. M. Mariani – Área Control--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
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
Save (‘variables’)
Que es equivalente a:
Save (‘variables.mat’)
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
Ing. A. M. Mariani – Área Control--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
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.
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
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.
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:
Ing. A. M. Mariani – Área Control--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
La forma más sencilla de dar datos a MATLAB es con la instrucción input que tiene el
formato
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:
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.
Ing. A. M. Mariani – Área Control--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
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.
Ing. A. M. Mariani – Área Control--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
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.
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
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
Ejemplo
6.10.2 Funciones
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
Ing. A. M. Mariani – Área Control--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’)
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.
z =x+ j 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. 40
Ing. A. M. Mariani – Área Control--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
f ( x) = sen( x)
g ( x) = 1 ( x + 1)
a=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. 43
Ing. A. M. Mariani – Área Control--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
El botón de Cycle permite usar distintas funciones que MATLAB tiene programadas para f y
g.
Ing. A. M. Mariani – Área Control--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
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.:
Ing. A. M. Mariani – Área Control--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
7. Reloj y Fecha.
Para conocer la hora y fecha actual, MatLab cuenta con un comando llamado Clock.
Veamos un 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. 47
8. Ruta de búsqueda.
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
Ing. A. M. Mariani – Área Control--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
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
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.
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
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.
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”:
Ing. A. M. Mariani – Área Control--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]
Atención: En MATLAB, los subíndices de los vectores y matrices comienzan siempre por 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. 55
Ing. A. M. Mariani – Área Control--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
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:
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
Ing. A. M. Mariani – Área Control--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
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]
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
>>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
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
>>cross (v,w)
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. 61
5 −13
a = 3 b = 6
8 35
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
Si v es un vector, entonces
Ejemplo
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)
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. 63
x = a: incremento: b
Ejemplo
x = logspace (a, b, n)
ax+b y = c
d x+ey = f
Ing. A. M. Mariani – Área Control--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
a b c x
A= v= w=
d e f y
Ejemplo
2a − 2b =5
−2a + 6b − 2c =0
− 2b + 6c − 2d = 0
− 2c + 8d = 0
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
>>x = A \ b
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
>>x = U \ (L \ b)
Ing. A. M. Mariani – Área Control--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.
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
1 2 3 4
1 4 9 16
A=
−3 1 0 5
4 7 −3 8
Ing. A. M. Mariani – Área Control--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
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.
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.
Ing. A. M. Mariani – Área Control--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
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.
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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.
Algunas funciones específicas para el manejo de matrices, son las que se muestran en la
Tabla Nº 15:
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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:
Ing. A. M. Mariani – Área Control--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
donde:
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.
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
Ing. A. M. Mariani – Área Control--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
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
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
MatLab dispone de algunos comandos que generan matrices particulares, que son de
utilidad, como los que se muestran en la tabla Nº 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. 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. 89
Ejemplo.
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.
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
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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.
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
polifix (x,y,n)
Ejemplo
En la tabla siguiente se muestran los datos obtenidos mediante una medición experimental.
Ing. A. M. Mariani – Área Control--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
Utilizando el comando polyfit se determina un polinomio de grado 3 que pasa por dichos
puntos.
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
Ing. A. M. Mariani – Área Control--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
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:
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
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.
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.
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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.
MATLAB dispone de otras funciones que sirven para evaluar funciones, como así también
para medir el tiempo de ejecución.
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
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
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 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)
Ing. A. M. Mariani – Área Control--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
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.
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].
Ing. A. M. Mariani – Área Control--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.
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
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.
15.1 Límites
que indica:
lim f ( x)
x → x0
Ejemplo
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 → ∞
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
Ing. A. M. Mariani – Área Control--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
Ejemplo
1+ n
an = n
n2
1+ n
lim an = lim n
n→∞ n →∞ n2
15.3 Continuidad
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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:
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
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
Ing. A. M. Mariani – Área Control--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
15.4. Derivación
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
Ing. A. M. Mariani – Área Control--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
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
Ing. A. M. Mariani – Área Control--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
Siempre conviene, en caso de duda, explicitar claramente con respecto a que variable se
desea realizar la derivada.
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. 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
F = int( f ) → ∫ f ( x) dx
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.
b b
∫ f ( x)dx , ∫ f (v)dv
a a
MATLAB utiliza
int( f , a, b) , int( f , v, a, b)
Ejemplo
Ejemplo
1
Evaluar ∫ 5x dx
0
Ejemplo
∞ −2 x
e sen(2 x)
Calcular la integral impropia ∫ x
dx , mediante MATLAB
0
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
b
∑ f ( n)
n= a
symsum(f,n,a,b)
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
Dy = dy / dt
D 2 y = d 2 y / dt 2
Dny = d n y / dt n
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
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
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
dx(t )
dt = 5 x(t ) + 8 y (t )
, x(0) = 1; y (0) = 2
dy ( t )
= −4 x(t ) + 9 y (t )
dt
y 2 senx dx − (1 + y ) 2 dy = 0
(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á:
dny d n −1 y d2y dy
an n
+ an −1 n−1
+ + a2 2
+ a1 + a0 y = 0
dt dt 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. 123
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. 124
Aparte del comando dsolve MATLAB proporciona otros comandos para resolver ecuaciones
diferenciales. Dos de ellos son:
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
dy
= 4yt
dt
Intervalo :[0,1] , C.I . = y (0) = 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. 125
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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.
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.
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. 128
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. 129
Ing. A. M. Mariani – Área Control--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
Para dibujar curvas en el espacio tridimensional, MATLAB dispone del comando 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
16.4 Superficies.
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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
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
Ing. A. M. Mariani – Área Control--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
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
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
Ing. A. M. Mariani – Área Control--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
Tabla Nº 27. Comandos accesorios para trabajar con las ventanas gráficas.
Ing. A. M. Mariani – Área Control--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
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.
Ing. A. M. Mariani – Área Control--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.
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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:
Ing. A. M. Mariani – Área Control--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
Ej.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. 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].
Ing. A. M. Mariani – Área Control--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
Ej.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. 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
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.
Ejemplo.
3
Dada la función f ( x) = e − cos( x + 5)
, definirla en forma simbólica y graficarla en el intervalo
[-3,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. 154
Ing. A. M. Mariani – Área Control--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)
Ing. A. M. Mariani – Área Control--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
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.
Ing. A. M. Mariani – Área Control--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
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 .
Ing. A. M. Mariani – Área Control--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
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. 159
Ejemplo.
Ejemplo:
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
Ing. A. M. Mariani – Área Control--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
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
Ing. A. M. Mariani – Área Control--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
Ejemplo.
Consideremos un sistema lineal de una entrada y una salida(SISO), cuyo modelo es:
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
Ing. A. M. Mariani – Área Control--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
bar (x, y, s)
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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
hist (y, 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. 168
stem(x, y, ‘s’)
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. 169
Ejemplo
z = [3 + 2.5 j , −5 + 3 j ,8 − 10 j , −5 − 6 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. 170
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
Ing. A. M. Mariani – Área Control--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
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
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
Ing. A. M. Mariani – Área Control--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
Los archivos-M más importantes y usados, son las funciones. La estructura de una función
puede incluir los siguientes puntos:
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
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.
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
Ing. A. M. Mariani – Área Control--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
>> 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.
Ing. A. M. Mariani – Área Control--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
Ejemplo
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
Ing. A. M. Mariani – Área Control--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
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
Ing. A. M. Mariani – Área Control--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
Como se puede ver, el comportamiento del programa es idéntico al del ejemplo anterior.
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
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. 182
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.
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
Ing. A. M. Mariani – Área Control--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
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
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
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. 186
Ejemplo
Si se desea sumar los enteros pares entre 1 y 20, el programa sería, como el mostrado en la
figura 94.
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
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
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
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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.
Ing. A. M. Mariani – Área Control--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
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.
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
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:
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
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
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.
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
Para escribir en un archivo, primero se necesita crearlo y abrirlo. Si se abren dos archivos,
como se muestra en la figura 104.
Ing. A. M. Mariani – Área Control--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:
Ahora se pueden abrir los archivos con el Bloc de Notas y observar lo que se escribió en
ellos.
MATLAB permite, también, escribir y leer datos formateados. Una buena manera de ver esto
es a través de un ejemplo.
Supóngase que se tiene información de las mejores(arriba de 7) notas del primer parcial del
año 2007. Los datos son
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.
Ing. A. M. Mariani – Área Control--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
Luego de correr el programa, al abrir con el bloc de notas se puede ver el archivo, como se
muestra en la figura 107.
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.
Ing. A. M. Mariani – Área Control--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
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.
(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
Ing. A. M. Mariani – Área Control--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
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
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
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).
Ing. A. M. Mariani – Área Control--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).
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.
Ing. A. M. Mariani – Área Control--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.
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
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.
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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.
Ejemplos de Programación.
Ejemplo1.
Ing. A. M. Mariani – Área Control--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:
Ing. A. M. Mariani – Área Control--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
Ejemplo3.
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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.
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.
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
Ejemplo 5.
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];
Ing. A. M. Mariani – Área Control--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)
>>[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.
Ing. A. M. Mariani – Área Control--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
Fig. 126. Programa para resolver y graficar la respuesta del sistema de 3º 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
dx dt = Ax + Bu
y = Cx + Du
Se utiliza la instrucción lsim, con el formato:
Veamos el caso del sistema anterior con alpha = 20. El programa se muestra en La Fiogura
128.
Ing. A. M. Mariani – Área Control--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
Fig. 129. Gráficos de las variables de estado y las salidas en función del tiempo
Ejemplo 6.
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
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
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.
Ing. A. M. Mariani – Área Control--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:
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 )
dy = int(d 2 y )
y = int(dy )
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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
Ejemplo 8.
n
d 2x
∑ fi (t ) = m dt 2
i =1
d 2x dx dy
m 2 + b + kx − b − ky = 0
dt dt dt
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
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 )
Ing. A. M. Mariani – Área Control--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
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.
Ing. A. M. Mariani – Área Control--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
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
Ing. A. M. Mariani – Área Control--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
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:
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
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.
Ing. A. M. Mariani – Área Control--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
g t2
relación y (t ) = h − .
2
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
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
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.
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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
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. 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. 239
En la figura 151 se pueden ver las instrucciones para graficar los complejos z1, z2 y sus
conjugados, mediante sendos 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. 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.
Ing. A. M. Mariani – Área Control--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
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.
Ing. A. M. Mariani – Área Control--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
Ejemplo.
x = 3sen(2t )
y = 5cos(t )
z = t3
Realizar el gráfico 3D.
Ing. A. M. Mariani – Área Control--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
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 .
Ing. A. M. Mariani – Área Control--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
Ejemplo.
Sea la función dada por: f ( x, y ) = cos x.cos y . Se desea graficarla empleando el comando
meshc.
Ing. A. M. Mariani – Área Control--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
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. 246
Ing. A. M. Mariani – Área Control--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
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 )
Ing. A. M. Mariani – Área Control--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
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. 249
En el gráfico anterior se pueden ver los puntos en que se transforma la región dada en el
plano xy.
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
Ing. A. M. Mariani – Área Control--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.
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.
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. 167. Gráficas que muestran el comportamiento del resistor en alta 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. 253
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.
Ing. A. M. Mariani – Área Control--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
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.
Ing. A. M. Mariani – Área Control--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
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. 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].
Ing. A. M. Mariani – Área Control--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
Algunos de los comandos que se disponen en MatLab son los mostrados en la tabla nº 36:
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.
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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
Ejemplo.
Se tienen dos funciones : f ( x) = sen(3 x), g ( x) = 15cos(4 x) , y se desea visualizarlas en la
misma gráfica.
Ing. A. M. Mariani – Área Control--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.
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:
Ing. A. M. Mariani – Área Control--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
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
Ejemplo.
>> ezplot('sin(x/2).*cos(sqrt(x))',[-pi,3*pi])
>> grid on
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
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.
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.
fminbnd (‘expresion_de_la_funcion’,a,b)
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. 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.
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. 266
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.
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. 267
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.
Ing. A. M. Mariani – Área Control--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
dy dt = f (t , y ) en [to , t f ]
y (to ) = yo
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).
Ing. A. M. Mariani – Área Control--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
Ejemplo
y = 2t + y en [1, π ]
'
Calcular la solución de :
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. 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
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
Una sentencia que permite calcular la solución en puntos intermedios del intervalo es:
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. 274
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
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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.
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
Ing. A. M. Mariani – Área Control--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.
2 2 1
d y / dt = dy dt − sen( y )
y (0) = 1
dy / dt (0) = 1
z2
dZ / dt = F (t , Z ) =
1 z2 − sen( z1 )
1
Z (0) = Z 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. 279
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. 280
dx(t )
+ x(t ) = 5
dt
x(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. 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)')
Ing. A. M. Mariani – Área Control--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.
Ing. A. M. Mariani – Área Control--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
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).
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).
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).
∂ 2u ∂ 2 u ∂ 2u ∂ 2u ∂u ∂u ∂v
+ = 0; = 2 −3 ; =−
∂x 2 ∂y 2 ∂x 2
∂t ∂t ∂y ∂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. 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
(
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
Ing. A. M. Mariani – Área Control--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
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.
Ing. A. M. Mariani – Área Control--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
En forma sintética:
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.
Ing. A. M. Mariani – Área Control--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.
• Sistemas discretos
• Sistemas continuos
Ing. A. M. Mariani – Área Control--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
Con esta breve introducción a las ED (EDO y EDP) nos abocaremos al tema 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.
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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
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
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 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
Ing. A. M. Mariani – Área Control--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:
• Mux (multiplexor) que permite ver en un mismo gráfico varias señales al mismo
tiempo. Se encuentra en la biblioteca “Signal & Systems”
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.
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.
Ing. A. M. Mariani – Área Control--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ú
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.
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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.
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.
Ing. A. M. Mariani – Área Control--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.
Ing. A. M. Mariani – Área Control--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.
Autoescalar Fija automáticamente los ejes dentro de los rangos de la señal graficada.
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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
Limit Output inf: Upper saturation limit Permite establecer el límite superior
de saturació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. 303
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:
Ing. A. M. Mariani – Área Control--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
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
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.
Ing. A. M. Mariani – Área Control--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
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.
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
Ing. A. M. Mariani – Área Control--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
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.
Ing. A. M. Mariani – Área Control--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
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:
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
Ing. A. M. Mariani – Área Control--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.
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:
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
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
Ing. A. M. Mariani – Área Control--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
dx1 dt = x2
B K 1
dx2 dt = − x2 − x1 + u
M M M
y = x1 + 0. x2
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
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
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
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:
Ing. A. M. Mariani – Área Control--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
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
Ing. A. M. Mariani – Área Control--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
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
Ing. A. M. Mariani – Área Control--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
Una vez terminadas las sentencias precedentes se obtiene el gráfico que se muestra en la
figura 231.
Ing. A. M. Mariani – Área Control--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
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.
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
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.
Ing. A. M. Mariani – Área Control--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
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
Ing. A. M. Mariani – Área Control--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
Este bloque se modifica, agregando algunos bloques adicionales que los conectamos como
se muestra en la pantalla de la figura 237.
Ing. A. M. Mariani – Área Control--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
La respuesta del sistema, a una entrada escalón, se muestra en la figura 239, donde se
indica la pantalla del 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. 326
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.
Ing. A. M. Mariani – Área Control--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
( 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
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
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.
Para determinar dicho cambio en la temperatura del líquido, tenemos básicamente dos
soluciones:
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
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ω
e = e − e0 : Desviación de e respecto de e0
ω = ω − ω0 : Desviación de ω respecto de ω0
qcal = qcal − q0cal
qrem = qrem − q0rem
dqcal
qcal = qcal − qocal = e
de
dq
qrem = qrem − qorem = rem ω
dω
Ing. A. M. Mariani – Área Control--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
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:
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
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:
Condiciones de 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. 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.
Ing. A. M. Mariani – Área Control--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
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
e 2 (t ) θ (t ) − θ a (t ) d (θ − θ a )
+ Bω2 = + Cth
R Rth dt
Llamando a
θ * = θ − θ a : sobreelevación de temperatura
e2 2 θ* dθ *
+ Bω = + Cth
R Rth dt
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.
Ing. A. M. Mariani – Área Control--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:
i. La constante de tiempo del proceso térmico según ODE No lineal es τ th = 140 seg
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. 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
SISTEMA NO LINEAL
Conclusión.
La aproximación lineal cambia con el cambio del punto de operación (Queda para
los interesados analizar esta situació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. 339
Ing. A. M. Mariani – Área Control--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
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.
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.
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.
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
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
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
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
Ing. A. M. Mariani – Área Control--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.
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
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
Ing. A. M. Mariani – Área Control--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
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
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:
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 )
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:
Ing. A. M. Mariani – Área Control--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
En la figura 264, se muestra el diagrama en bloques del sistema sobre la base de la función
transferencia.
Los gráficos para los desplazamientos son los indicados en la figura 265.
Ing. A. M. Mariani – Área Control--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.
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
Se considerará un servomotor (a imán permanente) para uso general en control, con los
siguientes valores de los parámetros y tensiones.
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.
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
x1 = ωm
x2 = ia
Sobre la base de lo indicado precedentemente, el sistema se puede representar por el
diagrama mostrado en la figura 268.
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
dx dt = Ax + Bu
y = Cx + Du
Ing. A. M. Mariani – Área Control--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
Fig. 269. Diagrama en bloques del Servomotor de CC, basado en el modelo 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. 355
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.
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.
Ing. A. M. Mariani – Área Control--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.
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
Ing. A. M. Mariani – Área Control--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
Ing. A. M. Mariani – Área Control--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
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.
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.
11. M. W. Zemansky. “ Heat and Themodynamics” .Mc Graw Hill, Book Co. 1968.
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.