Matlab
Matlab
DE
MATLAB
1
Índice
1 Introducción. 5
1.1 La Ventana de MATLAB 6
1.2 Estructura de la Ayuda 7
1.3 Comandos y sintaxis básica 7
1.3.1 Comandos de información general 8
1.3.2 Comandos de administración del espacio de trabajo 8
1.3.3 Comandos y funciones de administración 9
1.3.4 Constantes y variables especiales 9
1.3.5 Funciones matemáticas 9
Hiperbólicas
Complejas
Estadísticas
Operadores aritméticos y caracteres especiales
Operadores lógicos y relacionales
1.3.6 M-Files 11
1.3.7 Temporización 12
1.3.8 Control de la ejecución y flujo de programas 12
1.4 Formato de Salida 12
1.5 Salvar una sesión de trabajo 13
2 Trabajo con arreglos, matrices y vectores 13
2.1 Definiciones 13
2.1.1 Generación de matrices 14
2.1.2 Formación de un vector fila 15
2.1.3 Formación de un vector columna 15
2.1.4 Matrices elementales definidas en MATLAB 16
2.2 Libretos o guiones (scripts M-Files) 18
2.3 Funciones M-Files 18
2.4 Sub funciones y funciones anidadas 19
2.5 Crear nuevas funciones 21
2.6 Funciones anónimas 21
2.7 Función función 22
2.8 ¿Que usar? ¿Libretos o Funciones? 23
2.9 Cadena de textos, entrada de datos y mensajes de errores 23
2.10 Creación de variables globales 24
2.11 Lazos for y while 25
2
2.11.1 for 25
2.11.2l while 25
2.12 Condiciones if y switch 26
2.12.1 if 26
2.12.2 swith 27
2.13 Depurar y perfilar 28
3 Gráficos 28
3.1 Gráficos en dos dimensiones 28
3.2 Gráficos tridimensionales 30
3.3 Más sobre el comando plot 31
3.4 Salvar una figura 32
3.5 Publicación de figuras 32
3.6 Subplot 33
3.7 Gráficos de argumentos complejos 34
4 Métodos numéricos en MATLAB 34
4.1 Polinomios 34
4.2 Más sobre ajustes de polinomios 36
4.3 Solución de ecuaciones 37
4.4 Sistemas de ecuaciones lineales 38
4.5 Ecuaciones de regresión múltiple 40
4.5.1 Ecuaciones de regresión lineal múltiple 40
4.5.2 Ecuaciones de regresión polinómicas 41
4. 6 Estadística en MATLAB 41
5 Matemática simbólica 42
5.1 Creación de variables simbólicas 42
5.2 Creación de funciones matemáticas simbólicas 44
6 Simulink 48
6.1 Creación de un modelo 48
6.2 Subsistemas 49
6.3 Enmascarar un sistema 50
6.4 Otros bloques de interés 53
3
4
Introducción:
El propósito de este curso es realizar una conquista útil, y en cierto grado especializada, de los fundamentos
esenciales del MATLAB con el objetivo de lograr las habilidades suficientes para incursar con éxito en este
campo imprescindible del momento. MATLAB es un compendio computacional interdisciplinario en las
ciencias, ingeniería y en las matemáticas aplicadas, con un poderoso lenguaje de programación, cálculo y
visualización que es común emplearlo como herramienta de afinación y validación antes de que muchos
algoritmos y modelos sean definitivamente depositados en un lenguaje comercial más propio para un
público general. Las aplicaciones típicas de MATLAB incluyen:
Matemáticas y cálculos
Desarrollo de algoritmos
Modelaje, simulación y establecimiento de prototipos
Análisis de datos, exploración y visualización
Gráficos científicos y de ingeniería
Desarrollo de aplicaciones, incluyendo la construcción de interfases gráficas
MATLAB aporta una gran capacidad para la investigación, el desarrollo y el análisis de sistemas. En cada
versión MATLAB proporciona nuevos recursos y un escenario más enriquecido. MATLAB posee una
familia de aplicaciones específicas conocidas como “toolboxes” desarrolladas para estudios especializados
que permiten resolver problemas diversos o muy particulares. Estas herramientas ocupan campos en redes
neuronales, lógica difusa, algoritmos genéticos, sistemas de control, álgebra financiera, procesamiento de
imágenes y señales, fijación de curvas, adquisición de datos, y muchos otros que incrementarán la
productividad para resolver problemas esenciales. Estas herramientas no son más que funciones de
MATLAB; M- Files que es posible enriquecer al crear funciones propias.
MATLAB, por tradición, responde a órdenes escritas en la línea de comandos o desde archivos. Sin
embargo, en las últimas ediciones, se ha incrementado su accesibilidad desde interfases gráficas con un
elevado nivel de interactividad especialmente útil para comenzar. Los comandos tienen la ventaja de facilitar
la reproducción y la repetición de los resultados. MATLAB es relativamente sencillo de aprender y la mejor
forma de lograrlo es pasar directamente a ejecutarlo.
La formación de variables en MATLAB se realiza con caracteres alfanuméricos y cada variable debe estar
definida antes de que pueda ser empleada. Cuando una expresión arroja un valor, éste se almacena en la
variable ans la cual puede ser utilizada como cualquier otra variable. El máximo error, o la máxima precisión
con que se trabaja en la aritmética de punto flotante, lo da la variable eps. Una vez que las variables hayan
5
sido definidas, existen en el espacio de trabajo; workspace. La existencia de una variable en el espacio de
trabajo permite ser empleada para múltiples objetivos.
Cuando se inicia MATLAB, se presenta una ventana de varios paneles que es posible personalizar mostrada
en la Figura 1
El panel fundamental, con un diseño de mayor área, es la ventana de comandos (Command Windows). En
ella se ordenan los comandos escritos a la derecha del prompt del sistema representado por el símbolo >>.
Una vez escrita una orden, MATLAB la ejecuta tan sólo al presionar la tecla de entrada; (enter).
En la parte superior izquierda se encuentra la ventana del Directorio Actual (Current Directory). MATLAB
sólo reconoce los archivos existentes en el directorio en uso. Los comandos para trabajar sobre el directorio y
la ruta (path), son cd, what, addpath y edithpath o escoger en el menú archivo, establecer la ruta;
6
(File/set path…). Mucho más fácilmente se realiza seleccionando el directorio deseado en la pestaña gráfica
del directorio actual. Es posible adicionar archivos a un directorio.
Aledaño al Directorio Actual, está la pestaña del espacio de trabajo (Workspace) donde se muestra qué
variables están definidas y cierta información sobre su contenido. En la ventana inferior se muestra el
Historial de Comandos (Command History) donde se registran las órdenes efectuadas en la ventana de
comandos. El registro histórico de comandos es persistente y se mantiene en distintas sesiones de trabajo de
modo que si es necesario, se puede copiar y archivar en un lugar apropiado.
Presionando el botón inicio de MATLAB; (Start), se encuentran las herramientas de aplicaciones, el acceso
a sus interfases gráficas, la simulación dinámica de sistemas, la conexión con la ayuda y otros temas que
facilitan el trabajo en el ambiente de MATLAB.
Una característica especial e importante de MATLAB es el acceso en todo momento a la ayuda con una
viabilidad extraordinaria. En ella se abordan todos los tópicos con ejemplos y demostraciones. Por esta razón,
para iniciar el trabajo, es útil conocer cómo está estructurada y qué posibilidades de ayuda brinda
MATLAB. Existen dos niveles de ayuda:
1. Si se necesita una ayuda rápida durante la sintaxis de un comando, se puede escribir sobre la ventana
de comandos la palabra help seguida del comando específico que se desea investigar; por ejemplo
help plot. Si sólo se escribe la palabra help recibirá como respuesta una lista de categorías de ayuda
que contiene en el listado de todos los comandos.
2. Escribiendo doc seguido del nombre de un comando, recibirá una ayuda más general en una ventana
adicional mucho más elaborada e informativa que con la alternativa help. En el panel izquierdo se
verá desplegado jerárquicamente toda la documentación disponible. Si sólo se escribe doc, o se
selecciona help del menú, acudirá la ventana raíz de la ayuda.
Existen otros comandos de auxilio entre los que pueden mencionarse helpdesk que reporta una
documentación para la solución de problemas en forma de un hipertexto comprensivo, lookfor para la
búsqueda de M-files por palabras claves; info y support para información de MATLAB y MathWorks, etc
que deben ser explorados en trabajo individual recurriendo al listado de categorías de comandos.
7
1.3 Comandos y sintaxis básicas
Una vez escrita una expresión válida en la ventana de comandos y presionar la tecla de aceptación; Intro,
MATLAB la ejecuta de inmediato mostrando el resultado tal y como lo hace una calculadora. De hecho, en
lo más elemental, MATLAB puede ser utilizado como un calculador ordinario. Sin embargo, MATLAB es
muy superior cuando se aborda como un compendio de operaciones sobre arreglos, matrices y vectores. Por
esta razón, exige el conocimiento previo de los fundamentos básicos del álgebra lineal y por su origen del
idioma inglés.
Comandos Acciones
demo Muestra todas las demostraciones que acompañan a la versión del MATLAB
ver Da información sobre la versión de MATLAB, Simulink y las herramientas del sistema
version Muestra información sobre la versión en ejecución de MATLAB
Comandos Acciones
clc Limpia la ventana de comandos
clear Elimina las variables en memoria
pack Compacta la memoria del espacio de trabajo
exist Chequea la existencia de una variable o archivo
global Declara globales a las variables
help Búsqueda de auxilio en una materia determinada
lookfor Búsqueda por palabras claves
quit Detiene el MATLAB
who Lista las variables
whos Lista las variables con mayor información
load Carga las variables del espacio de trabajo desde un archivo
save Salva las variables del espacio de trabajo
recycle Brinda la opción de mover los archivos borrados a una carpeta de reciclaje
exit Salir del MATLAB
8
1.3.3 Funciones y comandos de administración
Acciones
what Realiza un listado de los archivos específicos en el directorio de MATLAB
type Lista los M-file
open Abre los archivos por extensión
which Localiza funciones y archivos
inmem Lista las funciones en memoria
Variables Interpretación
ans Respuesta más reciente
eps Precisión de la notación con punto flotante
i,j Unidad imaginaria −1
inf Infinito
NaN No es un número
pi Número π
why Respuesta breve
Exponenciales y Logarítmicas
exp(x) Exponencial ex
log(x) Logaritmo Natural ln(x)
log10(x) Logaritmo base 10 log10 ( x)
sqrt(x) Raíz cuadrada x
nthroot(x) Raíz n-sima de un número real n
x
Trigonométricas
acos(x) Coseno inverso cos −1 ( x)
asin(x) Seno inverso sen −1 ( x)
atan(x) Tangente inversa tan −1 ( x)
cos(x) Coseno cos(x)
sin(x) Seno sen(x)
9
tan(x) Tangente tan(x)
sec(x) Secante sec(x )
csc(x) Cosecante csc(x)
Hiperbólicas
acosh(x) Coseno hiperbólico inverso cosh −1 ( x)
asinh(x) Seno hiperbólico inverso senh −1 ( x)
atanh(x) Tangente hiperbólica inversa tanh −1 ( x )
cosh(x) Coseno hiperbólico cosh(x )
senh(x) Seno hiperbólico senh(x)
tanh(x) Tangente hiperbólica tanh(x )
sech(x) Secante hiperbólica sec h( x)
csch(x) Cosecante hiperbólica csc h( x )
Complejas
abs(z) Valor absoluto Z
angle(z) Ángulo de un número complejo
conj(z) Complejo conjugado de Z
img(z) Valor imaginario de Z
real(z) Valor real de Z
Estadísticas
erf(x) Calcula el error de la función (x)
mean(x) Calcula el promedio
median(x) Calcula la mediana
std(x) Calcula la desviación estándar
10
/ Operador de división derecha
\ Operador de división izquierda
./ Operador de división derecha de arreglos elemento a elemento
.\ Operador de división izquierda de arreglos elemento a elemento
. Punto decimal
: Genera elementos espaciados regularmente y representa filas o columnas completas
; Separador de columnas y evita desplegar, mostrar
, Separa elementos y argumentos en una fila
… Operador de continuación de línea
( ), { } Encierra argumentos de funciones e índices de arreglos: supedita precedencia
[] Encierra elementos de arreglos
[,] Concatenación Horizontal
[;] Concatenación vertical
% Establece un comentario
.' Transpuesta
' Complejo conjugado transpuesta
= Asignación
1.3.6 M-Files
11
nargin Número de argumentos de entrada a una función
nargout Número de argumentos de salida de una función
script Guión, Argumento M-File
1.3.7 Temporización
cputime Tiempo en segundos de CPU
clock Fecha y tiempo corriente como vector de datos
tic, toc Comenzar o detener un temporizador
>> pi
12
ans =
3.1416
>> format short; pi
ans =
3.1416
>> format long; pi
ans =
3.14159265358979
>> format short e;pi
ans =
3.1416e+000
>> format long e; pi
ans =
3.141592653589793e+000
>> format rat;pi
ans =
355/113
Cuando se abandona MATLAB, todas las variables que existen en el espacio de trabajo se pierden. Si se
utiliza el comando save, las variables se almacenan en un archivo llamado matlab.mat. Una vez de nuevo
dentro de MATLAB, el comando load reestablece el espacio de trabajo al estado anterior.
2.1 Definiciones
Un arreglo es una colección ordenada de elementos identificados por subíndices para los que MATLAB
emplea números integrales comenzando por el 1. La dimensión de un arreglo es el número de subíndices
necesarios para especificar un elemento. El tamaño (size) de un arreglo es un listado del número de índices
máximo por dimensión.
Una matriz es un arreglo bidimensional con reglas especiales para la adición, multiplicación, división,
potenciación y otras operaciones. Representa una transformación matemática lineal. Las dos dimensiones son
denominadas filas y columnas. Un vector es una matriz para la cual una dimensión tiene solamente el índice
1. Un vector fila tiene sólo un fila y un vector columna sólo una columna.
13
Aunque un arreglo es mucho más general y menos matemático que una matriz, los términos se usan a veces
de forma intercambiable. Algo más: en MATLAB no existe realmente una distinción formal entre un escalar
y una matriz de 1×1. Note que no existe un arreglo unidimensional en MATLAB. Aún los vectores son
arreglos bidimensionales con una dimensión trivial.
Para introducir una matriz como una lista de elementos, se deben seguir las convenciones básicas siguientes:
>> A = [1 2 3; 4 5 6; 7 8 9]
A=
1 2 3
4 5 6
7 8 9
La dimensión de A es:
>> ndims(A)
ans =
2
El tamaño de A es:
>> size(A)
ans =
3 3
14
2.1.2 Formación de un vector fila:
>> B = [0 2 2]
B=
0 2 2
>> C = [0;2;2]
C=
0
2
2
Los arreglos y matrices pueden construirse de otros arreglos y matrices con la sola condición de que sean
compatibles:
>> D = [A C]
D=
1 2 3 0
4 5 6 2
7 8 9 2
>> E = [A B]
??? Error using ==> horzcat
All matrices on a row in the bracketed expression must have the
same number of rows.
>> E = [A D]
E=
1 2 3 1 2 3 0
4 5 6 4 5 6 2
7 8 9 7 8 9 2
En ocasiones es necesario acceder a uno o más elementos de un arreglo o matriz. Para ello se utilizan los
índices dimensionales que identifican a cada elemento encerrado entre paréntesis. El resultado es la
extracción del elemento o bloque indicado. Ejemplos: Extracción del elemento perteneciente a la fila 1
columna 2
>> E(1,2)
15
ans =
2
Extracción de un bloque que comprende los elementos de la fila 1 y 2 que ocupan las columnas 2 y 3
>> E(1:2,2:3)
ans =
2 3
5 6
El operador colon (dos puntos); : , es muy importante en MATLAB. Con él se indica un intervalo de
variación entre dos valores:
>> x = [1:10]
x=1 2 3 4 5 6 7 8 9 10
En este caso se asume por defecto un intervalo de 1 entre los puntos. Para especificar un paso de 0.5 se tiene:
» x = [1:0.5:5]
x=
Columns 1 through 9
En una matriz o vector el operador : permite seleccionar una parte del mismo. Así en el vector y se obtienen
los elementos entre el 2 y el 5to. Lugar con la expresión:
>> y = x(2:5)
y = 1.5000 2.0000 2.5000 3.0000
16
Información básica sobre los arreglos matrices y vectores.
size(A) Tamaño del arreglo
length(A) Longitud o número de elementos de un vector.
ndims(A) Número de dimensiones
numel(A) Número de elementos
disp(A) Mostrar la matriz o el texto
isempty(A) Cierto si el arreglo está vacío
isequal(A) Cierto si el arreglo es numéricamente igual
Aritmética Matricial
dot Calcula el producto escalar
cross Calcula el producto vectorial
MATLAB posee, además, un grupo de matrices especializadas para el trabajo en diferentes campos de la
ciencia que pueden ser consultadas en la ayuda. Entre ellas la matriz de Hilbert, Pascal, Mágica, Wilkinson,
Companion, Vandermonde, etc
17
2.2 Libretos o guiones (Script M-files)
Un libreto (script M-file) es un archivo externo a la línea de comandos que contienen una secuencia de
sentencias u órdenes ejecutables de MATLAB. Escribiendo el título del archivo en la ventana de comandos
se tiene acceso a la ejecución y salidas correspondientes a este archivo. Por asignación poseen la extensión
.m debido a ello se llaman M-files. Estos ficheros no necesitan ser compilados y para ser ejecutados, se debe
escribir su nombre en la línea de comandos con la única condición de que se encuentre en la ruta; path,
donde MATLAB busca y reconoce sus archivos. Su utilidad fundamental es automatizar los bloques de
comandos en cálculos que deben realizarse repetidamente y cuando se desea reproducir o interpretar el
trabajo realizado en un momento posterior.
Los libretos operan con las variables existentes en el espacio de trabajo o pueden crear nuevas que
permanezcan y se empleen en futuros cálculos. Los libretos pueden producir salidas gráficas usando
comandos como plot. Cualquier texto precedido del signo % en el inicio de un libreto se entiende como un
comentario lo cual es útil si se desea obtener información del archivo al escribir help seguido del nombre del
archivo en cuestión en la línea de comandos.
Por ejemplo se ha creado el libreto trigonometrica.m con los comentarios y argumentos siguientes
Las funciones son M-files que extienden las capacidades de MATLAB. Comparadas con los libretos son
mucho mejores para compartimentar las tareas. Cada función comienza con una línea del tipo:
18
Las variables ini1,ini2,ini3, son las variables de entrada y las out1,out2,out3, son las variables de salida . Se
pueden tener tantas funciones como se desee y llamarlas cuando se desee. La condición para que sea
reconocida una función es que sea guardada en un archivo con el mismo nombre declarado en la sintaxis; es
decir: en un archivo nombrefunción.m . Para ejecutarla sólo es necesario escribir en la línea de comandos su
nombre al igual que en los libretos.
Unas de las principales características de una función es el carácter local de sus variables. Cualquier
argumento o variable creada durante la ejecución de la función, son variables sólo de esa función y poseen un
espacio privado de trabajo. Por su parte las variables existentes en la línea de comandos o workspace, no son
reconocidas por la función.
Como ejemplo se ha creado un archivo con una función llamada stat cuyo objetivo es determinar la media y
la desviación estándar de un vector x.
Si durante la ejecución de una función, se llaman otras funciones, cada una de éstas establece su propio
espacio de trabajo lo que permite crear programas complejos sin preocuparse por antagonismos en las
variables mientras se conservan las pertenecientes al espacio de trabajo.
Un M-file puede tener definida más de una función. La función principal al inicio del encabezamiento de la
línea define la función primaria. En el mismo archivo pueden existir subfunciones y funciones anidadas.
Por ejemplo: Ahora se ha creado dentro del archivo stat.m una nueva expresión identificada con la palabra
clave avg que es una subfunción de la función stat(x)
19
function mean = avg(x,n)
mean = sum(x)/n;
end %avg (x,n)
Las subfunciones no son visibles fuera del archivo donde han sido creadas por lo tanto no pueden ser
llamadas desde la línea de comandos. Cuando MATLAB no reconoce una función por su nombre, busca por
un archivo con el mismo nombre. Si lo encuentra, lo compila en la memoria para uso subsiguiente. Cuando
es llamada una función desde la línea de comando o desde cualquier otro M-File, MATLAB analiza la
función y la almacena en memoria. La función almacenada permanece en memoria hasta que sea limpiada
con el comando clear o se abandone MATLAB.
El argumento end es opcional si se tiene una sola función, pero es una buena idea cuando están involucradas
subfunciones y obligatorio cuando se usan funciones anidadas. Las funciones anidadas actúan algo
diferente. Ellas son definidas dentro del alcance de otra función y comparten el espacio de trabajo de la
función receptora. Para escribir una función anidada, simplemente define la función dentro del cuerpo de
otra función en un M-File. Se debe terminar la función anidada con un argumento final end. Por ejemplo:
20
2.5 Crear nuevas funciones.
En MATLAB se pueden crear nuevas funciones si es conveniente. Por ejemplo: se desea definir una nueva
función con nombre sincos(x) de forma tal que al invocarla en la línea de comandos devuelva el resultado de
la expresión correspondiente. Para ello se crea un archivo con extensión .m que contenga la definición de la
función y con un nombre que coincida con el nombre de la función. Para el caso sincos.m:
function[y]=sincos(x)
y=cos(x)-2*sin(2*x-pi/3);
Se salva en el subdirectorio de trabajo con el nombre sincos y la extensión .m. Esta es la forma en la cual
están escritas las funciones en MATLAB. Note cómo no hay declaración de variables, ni comandos de inicio
o fin de programa.
En ocasiones se necesita definir una función temporalmente y evitar la edición de un M-File. Para ello se
utiliza la función anónima que se puede construir desde la línea de comandos o en una función M-File. Su
sintaxis es:
El término expr representa el cuerpo; esto es: el código que identifica la tarea principal que se debe ejecutar.
A la izquierda está arglist, que es una lista de variables o argumentos de entrada separados por coma que
deben pasar a la función. Estos dos componentes son similares a lo conocido en las funciones ya tratadas. El
signo @ es un operador en MATLAB que construye un manejador de funciones. Crear un manejador de
funciones proporciona un medio de invocar a la función anónima. El signo @ es una parte requerida de una
función anónima.
Ejemplo: La función anónima sqrt calcula el cuadrado de un número. Cuando se llama a esta función,
MATLAB le asigna el valor que posee a la variable x y lo usa para calcular el valor de la ecuación x.^2:
21
>> a=sqrt(4)
a=
16
Muchos problemas en el campo de la ciencia emplean o exigen operar con funciones; encontrar raíces,
resolver ecuaciones diferenciales, optimizar o efectuar la integración numérica, son sólo algunos ejemplos
citados. En determinados casos un problema complejo puede tratarse con una función que opere sobre
determinada función. Este tipo de procedimiento MATLAB lo realiza con una función de funciones;
function functions, que utiliza una o más funciones como argumentos de entrada a una función, que va a ser
evaluada para obtener los resultados deseados. La sintaxis, el objetivo y el contenido de estas funciones
pueden verse al solicitar help funfun en la línea de comandos.
Una forma de realizar este procedimiento es mediante una función anónima. Por ejemplo:
La función fzero, encuentra la raíz de una función escalar de una variable en la proximidad del punto
declarado; Primeramente encuentra un intervalo conteniendo a x donde la función cambia de signo y a
continuación busca en ese intervalo el cero de la función. Su sintaxis es:
x = fzero (fun, x0) La función fun acepta como parámetro de entrada valores de x reales escalares y
retorna valores reales escalares de la función fun evaluada en el punto x. El valor que retorna fzero está en la
proximidad donde fun cambia de signo si es continua o NaN si el proceso de búsqueda falla. Ejemplo:
22
ans =
3.1416
Otro ejemplo:
La función x = fminbnd (fun, x1, x2) trata de encontrar un mínimo local de la función fun en el intervalo
x1 <= x <= x2.
Los scripts o libretos son siempre interpretados y ejecutados línea a línea no importa el número de veces que
sean llamados y, por supuesto, MATLAB emplea tiempo en ello. En contraste, las funciones son compiladas
en memoria cuando se llaman por primera vez y si son necesaria llamarlas de nuevo, se esquiva ese paso. Por
esta razón se recomienda realizar la programación en términos de funciones M-Files. Como regla práctica,
los libretos se deben de llamar sólo desde la línea de comandos y no se deben llamar desde otro libreto.
Las cadenas de textos pueden introducirse en MATLAB al encerrar el grupo de palabras en simple comilla.
Por ejemplo para asignarle a la variable s una cadena de texto se escribe:
>> disp(s)
23
Los mensajes de error se muestran más adecuadamente con el comando error ya que cuando se sitúa en un
M-File, se aborta la ejecución del mismo.
En un M-File, se puede actuar interactivamente para la entrada de datos con la función input. Por ejemplo:
En este caso se despliega un mensaje en el prompt y se realiza una pausa en la ejecución del programa hasta
que se introduzca el dato solicitado. Presionando la tecla de aceptación, el dato se asigna a la variable
solicitada y se continúa la ejecución del programa.
Finalmente es necesario saber que en las funciones de MATLAB se pueden encontrar órdenes que son
imposibles de ejecutar. En este caso se emite una señal de error desplegando un mensaje en la ventana de
comandos, se detiene la ejecución del programa y se ignoran los argumentos de salida de la función. Similar
a un error es la señal de alerta (warning) la cual despliega un mensaje pero permite que la ejecución
continúe. Es posible crear estas señales de alerta e incluso tener la capacidad de esquivar un error en una
subrutina y continuar con un plan de contingencia usando los comandos try y catch. Con este objetivo se
debe consultar la ayuda
Cada función en MATLAB definida en un M-File posee sus propias variables locales las cuales son
independientes de las variables de otra función y de las que se encuentran en el espacio de trabajo
(workspace). Desde luego, si varias funciones y el espacio de trabajo declaran una variable en particular
global, todos compartirán esa variable. Cualquier asignación a esa variable, en cualquier función, está
disponible a todas las otras funciones que la declaran global. Si la variable declarada global no existe en el
momento que se ha declarado global, tomará por asignación el valor de una matriz vacía. Si una variable con
el mismo nombre que la variable global existe en el espacio de trabajo, MATLAB emite una alerta y
cambia el valor de esa variable para que concuerde con la declarada global. Ejemplo:
24
2.11 Lazos for y while
Las condicionales en MATLAB operan de forma similar a como lo hacen en la mayoría de los programas de
computación. Ellas son especialmente útiles cuando se desea repetir o desviar una sección de cálculos en
dependencia de las condiciones en la rutina.
2.11.1 for
La instrucción for se utiliza para repetir un argumento un número específico de veces. La sintaxis general es:
Los valores de la expresión son almacenados uno a la vez en la variable mientras el siguiente argumento,
hasta el último, es ejecutado. En la práctica la expresión es casi siempre de la forma escalar : escalar. El
alcance del argumento for se concluye con la orden end.
2.11.2 While
while repite los argumentos un número indefinido de veces mientras se mantenga una condición. Su sintaxis
es:
while expresión
argumentos
25
end
Los argumentos son ejecutados mientras la expresión sea cierta. Por ejemplo, dado un número positivo x, se
calcula y se muestra el menor número no negativo que cumple la relación 2n +2n ≥ x
>> x = 16;
n = 0;
while 2^n +2*n < x
n = n+1;
end
>> n
n=
4
Cuando se necesita modificar la ejecución de los argumentos en dependencia de las condiciones en la rutina,
se utilizan comandos condicionales similares a los utilizados en otros lenguajes.
2.12.1 if
if relación
argumento
end
En este caso el argumento será ejecutado sólo si la relación es cierta. También es posible utilizar múltiples
ramas como se muestra a continuación:
if x > 6
y = x^2 +3
elseif -1< x<6
y = 2*x^2+3*x-1
else
y = 0.98
end
El condicionante if puede emplear operadores relacionales o funciones que retornen valores lógicos así como
condicionantes lógicos combinados evaluados de izquierda a derecha. Por ejemplo:
26
if (length (x) > 4) & (x(3) = =2)
argumento
end
La sintaxis if / elseif se emplea cuando son dos o tres las opciones que presenta una condicional. Cuando
existe un número mayor de opciones, se emplea switch
2.12.2 switch
El comando switch cambia o permuta entre varios casos de acuerdo a la expresión. La forma general de
sintaxis es:
switch switch_expr
case case_expr,
argumento…
case {case_expr1, case_expr2, case_expr3,...}
argumento ...
otherwise
argumento
end
Los argumentos que siguen al primer caso son ejecutados si coinciden con la expresión de cambio declarada.
Cuando la expresión de cambio se encuentra en un arreglo como en el segundo caso, el cambio se ejecuta si
sólo uno de los elementos del arreglo coincide con la expresión de cambio. Si ninguno coincide, se pasa a la
opción otherwise. Sólo se ejecuta un caso y la ejecución concluye con el argumento final end. Por ejemplo:
>> x = 6;
switch x
case x > 2
disp ('bien')
case x <2
disp ('mal')
otherwise
x = 0.1
end
x=
0.1000
27
2.13 Depurar y perfilar
Para depurar un programa que no corre, se pueden establecer puntos de rupturas breakpoints en una o más
funciones (Ver el menú debut en el editor de M-Files). Cuando MATLAB alcanza un breakpoint, se detiene
y permite inspeccionar y modificar las variables. La ejecución se puede reiniciar normalmente o paso a paso.
Para más detalles solicitar help debug.
Cuando un programa emplea más tiempo que el necesario para ejecutarse, se puede optimizar su ejecución.
Es posible localizar las líneas retardadas con profiling que mantiene el control del tiempo empleado en cada
línea de cada función. Perfilar es también una vía de determinar la dependencia de las funciones. Para
introducirse se debe escribir en la línea de comandos profile viewer.
3. Gráficos
Una de las fortalezas de MATLAB es el tratamiento gráfico. MATLAB posee control sobre todos los
aspectos de un gráfico adjudicándole poder, elegancia y disfrute en la ejecución.
28
grid on;
29
4.- Cuando el dialogo se despliega, se procede de la forma siguiente:
a) Se selecciona el tipo de gráfico que se desea en Plot Type; lineal, logarítmico, semilogarítmico, polar,
etc.
1.- Se hace click otra vez en Add Data y se especifican los datos a plotear:
2.- Se establece como fuente de datos el vector x existente en el espacio de trabajo.
3.- Se escribe en y la nueva función que se desee. (Para el caso sin(x). ^8. ) y se hace clic en aceptar; ok
4.- MATLAB dibuja el gráfico de sin(x). ^8 vs x.
5.-Seleccione el último gráfico y establezca en el Plot Type del Property Editor el tipo de gráfico que
desea para esta segunda función
30
Para adicionar el título de la figura, de los ejes y las propiedades de éstos, se utilizan las opciones de edición
grafica que proporciona la barra de menú de la figura. La rotación, el rotulado de ejes y el título de la figura
se han adicionado por este procedimiento y se muestra a la derecha.
En un gráfico se pueden obtener diversos tipos de líneas, símbolos y colores con el comando plot(x,y,s)
siendo s una cadena de caracteres compuestos por elementos de las columnas siguientes:
Por ejemplo plot(x,y,’g+:’) grafica con una línea de cruces color verde en cada punto donde se han
evaluado los datos. plot(x,y,’bd’) dibuja un diamante azul en cada punto pero sin línea.
El comando plot, si no especifica el color, toma por asignación el azul para gráficos de una línea y en el caso
de un gráfico de múltiples líneas utiliza el ciclo de colores listado en la tabla. Si no se especifica el tipo de
línea, se usa una línea sólida. Si no se especifica el símbolo, no se emplea ninguno. Para más información
consultar help plot.
31
archivo del tipo *. fig con el nombre que se desee. Luego, con el comando; openfig myfig puede llamarse
para efectuar las transformaciones o recrearla como se desee.
Existen tres cuestiones importantes que deben considerarse cuando se desea incluir algún gráfico de
MATLAB en un documento para su publicación. El formato del archivo, el tamaño y posición y el color.
Ayuda a comprender la importancia el hecho de que lo que desee ve en la pantalla no es exactamente lo que
se obtiene en el papel porque MATLAB distorsiona los gráficos dependiendo del dispositivo de salida.
La gran diferencia en los formatos de los gráficos está entre la selección de vector (representando las líneas
en una imagen) y bitmap (una fotografía literal píxel a píxel). Bitmaps incluyendo GIF, JPEG, PNG, y TIFF,
son apropiados para fotografías pero no para otras aplicaciones científicas. Esos formatos fijan la resolución
de su imagen por siempre, mientras la resolución de su pantalla, impresora y la impresora de la revista
pueden ser todas muy diferentes. Los formatos vectoriales son usualmente una mejor opción. Entre estos se
encuentran EPS y WMF. La selección depende algo de su plataforma y procesador de palabras.
Un problema común con la publicación de gráficos en MATLAB es el tamaño. Por asignación, los gráficos
en MATLAB son hechos en 8×6 pulgadas sobre el papel. Esto es excesivo para muchas revistas y para uso
privado. En estos casos se reescala la imagen. Desde luego, el proceso de reescalar reduce todo incluyendo el
ancho de las líneas y el tamaño del texto y el resultado puede ser difícil de leer. Para este procedimiento se
sugiere reescalar el gráfico antes de exportarlo. Para reescalar antes de exportar se puede utilizar la opción
de edición gráfica que proporciona la barra de menú de la figura; Archivo / Page Setup.
Muchas revistas no aceptan figuras a color. Las líneas coloreadas son convertidas automáticamente a negro
cuando se salvan en un formato sin color. De esta forma se deben distinguir las líneas por otras características
tales como símbolos o estilo de línea. La opción Archivo/Export setup de la barra de menú de la figura,
brinda un procedimiento para introducir cambios en la apariencia incluyendo el tamaño y color en diferentes
contextos (imprimir, presentación, etc.).
Finalmente es una buena idea salvar la figura en formato *.fig para ser recreada y en formato EPS en el
mismo directorio.
3.6 Subplot
El comando subplot permite desplegar varias figuras en la misma ventana o imprimirlas en la misma hoja de
papel. La sintaxis:
32
subplot(m,n,p)
Tiene la función de crear una matriz de (m filas×n columnas) de gráficos numerados por filas comenzando
por la primera fila y a continuación la segunda fila, etc. Subplot selecciona el orden p para ubicarlo. Por
ejemplo para plotear datos en cuatro regiones diferentes de una ventana de figuras:
t=[-pi:0.1:pi];
[X,Y,Z]=cylinder(4*cos(t) - 2*sin(2*t-pi/3));
subplot(2,2,1)
mesh(X)
xlabel('X');
ylabel('Y');
zlabel('Z')
title('Función muy especial');
subplot(2,2,2):mesh(Y)
xlabel('X');
ylabel('Y');
zlabel('Z')
subplot(2,2,3):mesh(Z)
xlabel('X');
ylabel('Y');
zlabel('Z')
subplot(2,2,4):mesh(X,Y,Z)
xlabel('X');
ylabel('Y');
zlabel('Z')
La posición es:
⎡subplot(2,2,1) subplot(2,2,2)⎤
⎢subplot(2,2,3) subplot(2,2,4)⎥
⎣ ⎦
Con las opciones el menú en la barra de la figura se puede modificar cada uno de los gráficos obtenidos.
Cuando los argumentos a graficar son complejos, la parte imaginaria es ignorada excepto cuando el ploteo se
realiza sobre un argumento complejo simple z. Para este caso especial se grafica la parte real contra la
imaginaria.
33
4 Métodos numéricos en MATLAB
4.1 Polinomios
La representación de polinomios en MATLAB se realiza mediante la escritura del vector de sus coeficientes
en potencias decrecientes. Así el polinomio p ( x) = 2 x 2 + 3 x + 4 está dado por:
x = [2,3,4];
-0.7500 + 1.1990i
-0.7500 - 1.1990i
Para el trabajo con polinomios existen un grupo de comandos con funciones específicas. Estos son:
poly
El comando poly(x), cuando x es el vector de las raíces del polinomio, arroja como respuesta un vector cuyos
elementos son los coeficientes del polinomio original con las raíces x. Si roots encuentra las raíces, poly
encuentra el polinomio que posee determinadas raíces. roots y poly son funciones inversas para vectores.
x = [0:.1:2];
a = [3,4,5];
y = polyval(a,x);
plot(polyval(a,x),'r')
x = [ 1 2 3 4 5];
y = [ 3.5 8.9 19 30.6 49.3];
>> b= polyfit(x,y,2);
>> plot(x,y,'r+')
hold on
34
plot(polyval(b,x))
b= polyfit(x,y,2)
b =[2.0071 -0.7129 2.3200]
Las últimas órdenes se han dado para graficar los puntos experimentales y el resultado de la ecuación de
ajuste con la intención de comprobar visualmente la aproximación
La interpolación es el proceso matemático mediante el cual a partir de un conjunto de puntos discretos de una
función es posible estimar sus valores en el intervalo. Existen diversas funciones en MATLAB que permiten
realizar estos cálculos. Una de ellas es interp1 que realiza una interpolación lineal por el método de los
mínimos cuadrados. Como ejemplo se toma el conjunto de pares ordenados de resistencia y temperatura de
un termopar con los valores siguientes:
Para determinar la temperatura en un punto intermedio de la tabla, por ejemplo 27.5 se procede:
Rt = interp1(T,R,26.5)
Rt = 78.3460
El resultado corresponde a la interpolación lineal entre los dos primeros pares de los vectores T y R.
Existen otros métodos de interpolación que deben ser revisados consultando las posibilidades de ayuda de
MATLAB. Los polinomios pueden ser derivados e integrados con los comandos polyder y polyint.
35
polytool(x,y,n,alpha) predice una gráfica que responde a un polinomio de orden n en los puntos (x,y) y
adicionalmente indica el intervalo de confidencial 100(1-alpha) en forma de dos líneas de color rojo. El
valor por asignación de n es 1 y el de alpha es 0.05. Para más información consulte la ayuda help polytool
Una de las formas en que MATLAB resuelve ecuaciones es con el empleo de las funciones: fzero, fplot,
quad y quad8 que permiten hallar los ceros, graficar y realizar la integración numérica de funciones no
lineales. Considere el cálculo de los ceros empleando la función fzero de la función:
1
y ( x) 2
5.x 6
2
x
-5 de la forma siguiente:
-10
cero1=fzero('fun1',0)
cero1 =1.6340
-15
cero2=fzero('fun1',3.2)
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
x cero2 = 3.3660
Es posible calcular la integral numérica de la función fun1 entre dos puntos, con la función quad. Para ello
se escogen valores donde no se indefine la función:
area=quad('fun1',2.1,2.9)
area = -5.9945
Para la solución de sistemas de ecuaciones lineales se emplea el álgebra lineal. El sistema de ecuaciones
lineales:
36
x1 + x2 + 2 x3 = -1
2x1 - x2 + 2x3 = -4
4x1 + x2 + 4x3 = -3
Es posible representarlo por la matriz A de los coeficientes de las incógnitas y el vector columna b de los
términos independientes:
Ax=b
A = [1 1 2; 2 -1 2; 4 1 4]
A=
1 1 2
2 -1 2
4 1 4
» b = [-1 -4 -3]'
b=
-1
-4
-3
Para que el sistema tenga solución, el determinante debe ser no singular. Esto se comprueba con la función
det.
» det(A)
ans = 6
Una solución del sistema se obtiene al emplear el método de Kramer, donde x1 se obtiene al sustituir en
la matriz original la columna 1 por el vector columna del término independiente y efectuar la división
entre los determinantes correspondientes:
A1 =
-1 1 2
-4 -1 2
-2 1 4
» x1=det(A1)/det(A)
37
x1 =
1
Y así sucesivamente para cada variable. Sin embargo esto es posible hacerlo en forma directa con el
operador \ . Obteniendo directamente el vector x de las incógnitas:
» x= A \ b
x=
-2
También puede implementarse el método de eliminación de Gauss o factorización LU, que expresa que
cualquier matriz cuadrada se puede descomponer en el producto de dos matrices L y U triangulares, una L
triangular inferior permutada y otra U triangular superior. Esto se calcula con la función lu.
[L, U] = lu(A)
L=
0.2500 -0.5000 1.0000
0.5000 1.0000 0
1.0000 0 0
U=
4.0000 1.0000 4.0000
0 -1.5000 0
0 0 1.0000
»L*U
ans =
1 1 2
2 -1 2
4 1 4
x = U \ (L \ b)
x=
1
38
2
-2
El propósito de una ecuación de regresión lineal múltiple es establecer una relación cuantitativa entre un
grupo de variables de predicción insertadas por columna X y la respuesta Y. Esta relación es útil para:
Si Y es una función de varias variables independientes X, es posible encontrar los coeficientes que afectan
cada variable para determinar la ecuación general que caracteriza al sistema. Por ejemplo: Sean MP, P y B
los vectores columnas de las variables independientes que determinan el consumo de energía eléctrica; MWh,
de una empresa. En este caso la ecuación de regresión lineal estaría dada por:
Electrica = Kowh + K1wh*MP + K2wh*P + K3wh*B
El problema se resuelve al determinar los coeficientes Kiwh para lo cual se emplea la sintaxis:
X = [ones(size(MP)) MP P B];
Kiwh=X\MWh;
Basado en la experiencia o en la observación gráfica, es posible que los datos sean modelados por una
función polinómica. Los coeficientes desconocidos a0, a1, y a2 pueden determinarse mediante mínimos
cuadrados lo cual minimiza la suma de los cuadrados de las desviaciones experimentales de los obtenidos
por el modelo.
y = a 0
+ a 1t + a 2 t 2
39
⎡ y1 ⎤ ⎡1 t1 t1 ⎤
2
⎢ y ⎥ ⎢1 t t 2 ⎥
⎢ 2 ⎥ ⎢ 2 2 2 ⎥ ⎡a0 ⎤
⎢ y3 ⎥ ⎢1 t 3 t 3 ⎥ ⎢ ⎥
⎢ ⎥ = ⎢1 t t 2 ⎥ * ⎢ a1 ⎥
⎢ y 4 ⎥ ⎢ 4 4 2 ⎥ ⎢a 2 ⎥
⎢ y5 ⎥ ⎢1 t 5 t 5 ⎥ ⎣ ⎦
⎢y ⎥ ⎢ ⎥
⎣ 6 ⎦ ⎢⎣1 t 6 t 6 2 ⎥⎦
X = [ones(size(t)) t t.^2]
a = X\y
Existe un paquete de funciones de estadística muy fuerte que pueden observarse al consultar la
documentación estadística de MATLAB. Las funciones de uso más frecuente mean [promedio], median
[mediana], range [rango], std [desviación estandard] y var [varianza] se implementan fácilmente.
Finalmente la interfase gráfica disttool posibilita trabajar con las funciones de distribución más importantes.
5 MATEMATICA SIMBOLICA.
En matemática simbólica los resultados obtenidos no son numéricos sino símbolos que siguen las mismas
convenciones que diaria y normalmente son empleadas en el algebra. Para que MATLAB reconozca las
variables simbólicas éstas deben primeramente ser declaradas. Para ello se utilizan los comandos sym o
syms.
syms x a b c
» (a+b)^2
ans =
(a+b)^2
» expand(ans)
ans =
a^2+2*a*b+b^2
Después de declaradas las variables simbólicas a y b, se puede obtener el binomio cuadrado perfecto
resolviendo la factorización con expand. El comando factor efectúa el proceso inverso. En matemática
simbólica es posible definir funciones y calcular sus derivadas.
40
» y = sin(a*x+b)
y=
sin(a*x+b)
» dydx=diff(y) Calcula la derivada respecto a x
dydx =
cos(a*x+b)*a
El comando sym permite construir variables y expresiones simbólicas con el objetivo de efectuar operaciones
con ella. Por ejemplo el comando m = sym(‘sqrt(cosfi^2 + 2*senfi)’) declara a m una variable simbólica que
representa a una expresión. Ahora es posible efectuar operaciones con esa variable que representa la
expresión.
f = 2*m^2 – 3*m +1
En general se puede usar sym o syms para crear variables simbólicas. Es preferible usar syms ya que
requiere menos escritura. Debe notarse que para declarar una constante como variable simbólica, es necesario
utilizar el comando sym. Si se utiliza una variable para representar una expresión simbólica, y se vuelve a
aplicar el comando syms a esta variable, MATLAB actualiza y desconoce las variables previamente
declaradas. Por ejemplo:
syms a b
f=a+b
f=
a+b
Si de Nuevo se declara syms f
MATLAB arroja
f=
f
Esto muestra la utilidad de emplear el comando syms para limpiar variables o definiciones previamente
asignadas en una sesión de MATLAB. El comando findsym determina las variables simbólicas en una
expresión. Por ejemplo dadas las expresiones simbólicas f y g definidas por
syms a b n t x z
41
f = x^n; g = sin(a*t + b);
es posible encontrar las variables simbólicas en f entrando:
findsym(f)
ans =
n, x
Similarmente se encuentran las de g:
findsym(g)
ans =
a, b, t
Con el comando subs se le dan valores numéricos a una variable simbólica. Por ejemplo para sustituir el
valor de x =2 en la expresión simbólica
f = 2*x^2 - 3*x + 1 Se entra el comando
subs(f,2)
Que arroja el resultado
f(2): ans =
3
Para sustituir una matriz A en la expresión simbólica f, se usa el comando polyvalm(sym2poly(f), A), que
reemplaza x por A y el término constante f por la matriz identidad correspondiente. Cuando las expresiones
contienen más de una variable, se puede especificar que variable es la que se desea sustituir. Por ejemplo:
Para sustituir el valor x = 3 en la expresión simbólica syms x y
f = x^2*y + 5*x*sqrt(y)
se introduce el comando subs(f, x, 3)
lo que arroja
ans =
9*y+15*y^(1/2)
De otra parte, para sustituir y = 3, se introduce subs(f, y, 3)
ans =
3*x^2+5*x*3^(1/2)
Existen dos vías para crear funciones: Usar expresiones simbólicas o crear un M-File usando expresiones
simbólicas. La secuencia de comandos para generar las expresiones simbólicas r, t y f. son:
syms x y z
r = sqrt(x^2 + y^2 + z^2)
t = atan(y/x)
f = sin(x*y)/(x*y)
42
Utilizando los comandos diff, int, subs, y otras funciones existentes en la caja de herramientas de
Matemática Simbólica (Symbolic Math Toolbox ) , se pueden manipular tales expresiones. Creando un M-
File es posible un uso más general. Por ejemplo: se desea crear la función sinc; sin(x)/x.
Para hacer esto se crea un M-file en el directorio @sym:
function z = sinc(x)
%sinc la función simbólica sinc
% sin(x)/x. esta función acepta sym como el argumento de entrada
if isequal(x,sym(0))
z = 1;
else
z = sin(x)/x;
end
Es posible extender estos ejemplos a funciones de varias variables. Para ello se recomienda solicitar la
ayuda, ver los aspectos de “Programming and Data Types” en la documentación en línea de MATLAB o
para una discusión más detallada, revisar la programación orientada por objeto.
Para resolver ecuaciones algebraicas, se utiliza la función simbólica solve. Por ejemplo para resolver la
ecuación de segundo grado:
43
Es posible comprobar el resultado gráficamente pero también en el ambiente simbólico, empleando el
comando ezplot. Intente obtener el siguiente gráfico con dicho comando, consulte la ayuda correspondiente.
Para resolver sistemas de ecuaciones se emplea
exp(x)
6 también solve. Supóngase que se necesita calcular:
5 3 x1 + 2 x 2 = 1
4 x1 − 0.3 x 2 = −1
3
La solución se obtiene en una sintaxis de dos
2
cadenas; una para cada ecuación:
1
44
Otros comandos importantes en Matemática Simbólica son collect, horner, simplify y simple. Analice
los ejemplos mostrados y consulte la ayuda para más información. Para polinomios, collect, reagrupa
todos los coeficientes con la misma potencia de x:
» y=(x-1)*(x-1/2)*(x+5);
» collect(y)
ans = x^3+7/2*x^2-7*x+5/2
» horner(ans) Resuelve según el esquema de Horner
ans = 5/2+(-7+(7/2+x)*x)*x
ans = log(x*y)
6.- SIMULINK
Simulink es un software especializado para modelar, simular y analizar sistemas dinámicos lineales o no
lineales. En su ambiente es posible construir modelos propios o simular y modificar modelos existentes
mediante la adición de nuevos elementos. Las simulaciones son interactivas de modo que permite cambiar
los parámetros y observar que sucede a la vez que brinda acceso a todas las herramientas de análisis de
MATLAB, para visualizar y analizar los resultados.
Un objetivo de Simulink es dar sentido funcional a la simulación de modo que, realizando ésta, es posible
ver que sucede antes de que un modelo sea llevado a la realidad. Simulink permite sobrepasar los límites de
la linealización y explorar otros modelos más reales. En resumen, la meta principal es convertir su PC en un
laboratorio para desarrollar ideas que amplíen todo tipo de posibilidad.
45
6.1 Creación de un modelo.
Para crear un modelo simplemente se busca el bloque de interés en cualesquiera de las bibliotecas básicas del
ambiente Simulink ( Sources, Sinks, Linear, Nonlinear, Discrete, Connections y Blocksets & Toolboxes.
Como indicaciones generales la biblioteca Source define los tipos de estímulo o señales, Sink brinda los
bloques de visualización y Connections, los elementos o bloques en las conexiones. Consulte la ayuda para
una descripción más detallada de las mismas
Para tomar un bloque de una biblioteca en particular, solo es necesario indicarlo con el botón izquierdo del
mouse y arrastrarlo hacia la ventana del Simulink y liberarlo. Así se procede con todos los bloques
necesarios. Otras operaciones con los bloques son:
• Conectar bloques entre si: posesionar el cursor sobre el terminal de salida del bloque origen, hacer
click y enlazar con el terminal de entrada correspondiente del bloque destino.
• Dibujar una rama: posesionar en la línea y presionar CTRL.
• Mover línea: marcarla y arrastrarla.
• Crear un vértice en línea: marcarla y presionar SHIFT.
• Ancho de línea con format.
• Etiquetas en líneas: doble click sobre la línea.
• Etiqueta en la ventana: doble click en el lugar de interés.
• Seleccionar bloques: click. Si son múltiples, adicionar SHIFT.
• Copiar un bloque (duplicarlo). Marcarlo, apretar CTRL y arrastrar.
• Cambiar orientación del bloque: con format ( flip-block y rotate).
• Cambiar tamaño de bloque: marcar y ampliar esquinas.
• Cambiar nombre del bloque: marcar en el nombre y escribir.
• Especificar parámetros del bloque: como corresponda según la ventana del bloque.
46
Como ejercicio dibuje el sistema de la figura: Practique las principales operaciones sobre el sistema descritas
anteriormente. Establezca una señal de amplitud 1 y frecuencia angular 1, continua. Salve el modelo con un
nombre en el directorio de trabajo y ajuste los parámetros de la simulación en el menú <Simulation\
Parameters> en particular el tiempo de simulación e inicie la simulación con <Simulation \ Start>. Para ver
los resultados de la simulación, doble click en el osciloscopio.
6.2 Subsistemas.
• Agrupando los bloques de interés dentro del diagrama de trabajo y crear un subsistema con estos.
• Definiendo a priori un subsistema y creando sus componentes dentro del mismo.
El bloque para crear un subsistema se encuentra en la biblioteca < connections>, además deben de usarse los
bloques <in > <out > dentro de esa misma biblioteca que definen las entradas y salida al bloque del
subsistema.
En el ejemplo anterior, se creará un subsistema con los bloques que actúan sobre la señal. Para proceder a
crear el subsistema a partir de bloques ya construidos, basta con agruparlos, marcarlos e ir al menú EDIT/
create subsystems el cual es activado al marcar. Abra el subsistema creado y note cómo automáticamente se
47
han añadido los puertos <in > <out > que definen la entradas y salidas del subsistema. Para crear el
subsistema a partir de cero, copie el bloque <subsysms> , abra el mismo, copie los componentes necesarios
incluyendo los puertos de entrada y salida.
Puede ser conveniente que un determinado subsistema, definido por un conjunto de parámetros, permita
modificarlos sin tener que acceder al interior del mismo. Mediante una máscara el subsistema se representa
por un icono gráfico, y al acceder a éste aparece un cuadro de diálogo donde se especifican los parámetros
particulares en la aplicación. La mayoría de los bloques del Simulink en las distintas bibliotecas están
construidos de esta forma.
En este ejemplo se quiere construir un nuevo bloque que modele a una termo resistencia, de acuerdo a los
parámetros de la ecuación fundamental de la misma:
r (t ) = r0 × (1 − α * t )
48
Donde ro es la resistencia a la temperatura de referencia, usualmente cero grados y alfa es el coeficiente de
sensibilidad de la termoresistencia, que expresa cuantos Ohms se varían por grado de temperatura.
Si se hace doble click en el bloque en cuestión, no aparece el contenido del bloque sino el cuadro de diálogo
siguiente. En este diálogo aparecen los dos parámetros que definen a la termoresistencia los cuales deben ser
especificados convenientemente. Adicionalmente aparece
una información sobre el objetivo del bloque.
49
Estos cuadros definen los parámetros del sistema, la ayuda del mismo y la forma del icono gráfico que va a
representar el sistema.
En este cuadro se escribe la información que va a efectuar la descripción del bloque en la máscara y la que
brindará una ayuda de como operar el bloque.
En este menú se indican los nombres que van a tener las variables asignadas en el texto de la máscara, en este
caso SENSE y ALFA, las cuales se corresponden con las variables
ALFA y R0 del modelo. Defina como tipo de máscara a Simple
Masked Block, adicione o borre las variables con ADD y DELETE
según se escriban en el mismo. Finalmente con el cuadro de icono,
se procede a dibujar un gráfico que represente al bloque, empleando
el comando plot, como se indica en el siguiente cuadro de diálogo.
• Los bloques de la biblioteca Sources, definen un conjunto de señales de entrada de formas distintas. Note
cómo las señales pueden partir del ambiente MATLAB mediante un file name.mat que archive las
variables de interés o directamente del workspace.
• Los bloques de la biblioteca Sink, definen como se van a mostrar las salidas de las señales. Además del
osciloscopio y el graficador, las señales se pueden enviar hacia un file.mat o hacia el área de trabajo.
50
• En los bloques de las bibliotecas Block Sets y Toolboxes aparecen un conjunto de aplicaciones
específicas de Simulink tales como comunicaciones, lógica difusa, procesamiento digital de señales etc.
Cada nueva versión del MATLAB incorpora nuevas aplicaciones en estos campos.
• Consulte la ayuda, la documentación gráfica y los demos del MATLAB y Simulink para más
información.
51