Manual de Matlab
Manual de Matlab
ESTADO LARA
MANUAL DE
MATLAB
(RESUMEN)
Abril de 2006
INTRODUCCIÓN
La simulación de un sistema es una alternativa mas económica que sustituye el realizar la fabricación del
mismo, esta es posible realizar haciendo uso de software, que cumplen un rol de herramientas muy importantes
para los profesionales y estudiantes en la actualidad.
Se ha mencionado la simulación, pero hay otras razones por la cual el software es una herramienta
esencial para el diseño (modelado, cálculo numérico, entre otros), debido a su diversidad de campo de
aplicaciones en la que puede ser aplicado. Uno de tantos software que cumple esa tarea es el Matlab con el
Simulink, que incluyen una serie de herramientas especializadas en tareas específicas, llamadas ToolBoxes.
Un ámbito el cual no se debe olvidar es el universitario, donde el Matlab viene a ser muy útil para los
docentes el mostrar las clases a través de simulaciones de situaciones reales y a los estudiantes en la elaboración
de proyectos.
¿Qué es Matlab?
MATLAB es el nombre abreviado de “MATrix LABoratory”. Es un programa para realizar cálculos
numéricos con vectores y matrices. Puede también trabajar con números escalares, tanto reales como complejos.
Algo muy atractivo en Matlab es la de realizar una amplia variedad de gráficos en dos y tres dimensiones.
Además que tiene un lenguaje de programación propio.
Además se puede decir que es un interactivo tanto para cálculo numérico y el tratamiento de datos. Esta
conformado por muchas herramientas y utilidades que permiten diversas funcionalidades, como la presentación
gráfica en 2 y 3 dimensiones. Las herramientas y utilidades están agrupadas en "paquetes" llamados toolboxes.
Es un programa que se introducen las órdenes escribiéndolas una a una a continuación del símbolo (»)
(prompt) que aparece en una interfaz de usuario. Es decir se pueden escribir directamente en la línea de
comandos de Matlab.
La Ayuda (Help) en Matlab, con la que se puede encontrar información acerca del uso de comandos.
La información que se obtiene si se desea simplemente conocer la sintaxis de una función. Los tipos de
ayuda pueden ser:
1. Help Window, Es una ventana, en la que se puede buscar ayuda sobre la función o el concepto que se desee.
2. Help Desk. Se abre un explorador de Internet que permite acceder a toda la información sobre MATLAB en
formato HTML. Información equivalente a los manuales impresos del programa.
3. Examples and Demos. Se abre una ventana que da acceso a un buen número de ejemplos resueltos con
MATLAB.
Además, se puede hacer uso de la ayuda (Help) desde la línea de comandos. Por ejemplo:
» help
» help clc
También esta el comando helpwin que si es seguido de un nombre de comando muestra la información
correspondiente a ese comando en la ventana Help Window.
Aplicaciones de Matlab
MATLAB es fundamentalmente un programa para cálculo numérico realizando operaciones básicamente
con matrices. Su uso es como programa interactivo, en el que se definen las matrices, los vectores y las
expresiones, obteniendo resultados a medida que se ejecutan.
Estos resultados pueden ser asignados a otras variables y podrán ser utilizados posteriormente en otras
expresiones.
Por lo tanto MATLAB se puede considerar como una potente herramienta de cálculos en forma
matricial, pero abarca esto y más, debido a que puede ser usado para la simulación, para el modelado de sistemas
(en tiempo continuo y en tiempo discreto), para diseño y simulación de sistema de inteligencia artificial (logica
difusa, redes neuronales, entre otras técnicas), así como en otras aplicaciones que pueden ser incorporadas en los
ToolBoxes además de los que tiene incluido.
variable = expresión
Las expresiones pueden ser operaciones, funciones o bien otras variables. Al evaluar las expresiones de
genera una matriz que contiene el resultado y es desplegada en la pantalla.
Si se incluye al final de la expresión “;” el resultado no se muestra en la pantalla y solamente se asigna la
variable seleccionada.
Todas las variables generadas permanecen en la memoria de Matlab dentro de un lugar llamado espacio
de trabajo (WorkSpace) hasta finalizar la ejecución de MATLAB o hasta que se elimine una de esta a través de
comandos.
Una expresión se evalúa después de teclear Intro.
Ejemplo de una operación matemática:
» x=2+4
x=
6
Si el resultado no se asigna a ninguna variable, Matlab lo asigna por defecto a la variable ans (answer):
» 2+3
ans =
5
Para saber cuál es el valor asignado a una determinada variable, basta introducir el nombre de la
variable:
»x
x=
5
La notación para las operaciones matemáticas elementales es la siguiente:
^ exponenciación
* multiplicación
/ división
+ Suma
- Resta
El orden en que se realizan las operaciones de una línea es el siguiente: primero, la exponenciación;
luego, las multiplicaciones y divisiones; y finalmente, las sumas y las restas.
Las funciones, en Matlab, se escriben introduciendo el argumento entre
paréntesis a continuación del nombre. Algunas funciones elementales son:
sin Seno
cos Coseno
tan tangente
sec secante
csc cosecante
cot cotangente
exp exponencial
log logaritmo natural
sqrt raíz cuadrada
abs valor absoluto
Los formatos de salida en la ventana principal de MATLAB se pueden controlar fácilmente a partir del
cuadro de diálogo que se abre con el comando Preferences del menú File.
Los formatos numéricos con que MATLAB muestra los resultados, se pueden
activar las mismas posibilidades por medio de comandos tecleados en la línea de
comandos de MATLAB. Los más importantes de estos comandos son los siguientes:
format short coma fija con 4 decimales (defecto)
format long coma fija con 15 decimales
format hex cifras hexadecimales
format bank números con dos cifras decimales
format short e notación científica con 4 decimales
format short g notación científica o decimal, dependiendo del valor
format long e notación científica con 15 decimales
format loose introduce algunas líneas en blanco en la salida (defecto)
format compact elimina las líneas en blanco citadas (opción recomendada)
format rat expresa los números racionales como cocientes de enteros
Una variable puede ser una matriz, un vector o un escalar. El valor de esa variable, e incluso el tipo de
entidad numérica que representa, puede cambiar a lo largo de una sesión de MATLAB. La forma más normal de
cambiar el valor de una variable es colocándola a la izquierda del operador de asignación (=).
Se considera por defecto que una expresión termina cuando se pulsa enter. Si se desea que una expresión
continúe en la línea siguiente, hay que introducir tres puntos (...) antes de pulsar intro.
También se pueden incluir varias expresiones en una misma línea separándolas por comas (,) o puntos y
comas (;). Si una expresión termina en punto y coma (;) su resultado se calcula, pero no se escribe en pantalla.
Esta posibilidad es muy interesante, tanto para evitar la escritura de resultados intermedios, como para evitar la
impresión de grandes cantidades de números cuando se trabaja con matrices de gran tamaño.
Operadores Matriciales
Como se menciono anteriormente, para definir una matriz no hace falta establecer de antemano su
tamaño. MATLAB determina el número de filas y de columnas en función del número de elementos que se
proporcionan (o se utilizan).
Las matrices se definen por filas; los elementos de una misma fila están separados por blancos o comas,
mientras que las filas están separadas por pulsaciones intro o por caracteres punto y coma (;). Por ejemplo, el
siguiente comando define una matriz A de dimensión (3x3):
» A=[1 2 3; 4 5 6; 7 8 9]
La respuesta del programa es la siguiente:
A=
123
456
789
A partir de ahora la matriz A está disponible para hacer cualquier tipo de operación con ella (en una
matriz o vector se pueden utilizar expresiones y funciones matemáticas). En MATLAB un operador es el
apóstrofo (') que representa el símbolo de trasposición matricial.
De forma análoga a las matrices, es posible definir un vector fila x en la forma siguiente (los tres
números pueden estar separados por blancos o comas, el resultado será un vector fila):
» x=[10 20 30] % vector fila
x=
10 20 30
MATLAB considera comentarios todo lo que va desde el carácter tanto por ciento (%) hasta el final de la
línea. Por el contrario, si los números están separados por enters o puntos y coma (;) se obtendrá un vector
columna.
Los operadores matriciales de MATLAB son los siguientes:
+ adición o suma
– sustracción o resta
* multiplicación
' traspuesta conjugada
.‘ traspuesta elemento a elemento
^ potenciación
\ división-izquierda
/ división-derecha
.* producto elemento a elemento
./ y .\ división elemento a elemento
.^ elevar a una potencia elemento a elemento
En MATLAB existe también la posibilidad de aplicar elemento a elemento los operadores matriciales (*,
^, \ y /). Para ello basta precederlos por un punto (.). Por ejemplo:
» [1 2 3 4]^2
??? Error using ==> ^
Matrix must be square.
» [1 2 3 4].^2
ans = 1 4 9 16
Existen varias formas de definir matrices. El introducirlas por teclado sólo es práctico en casos de
pequeño tamaño y cuando no hay que repetir esa operación muchas veces.
Operaciones trigonométricas
acos función arco coseno
acosh función coseno hiperbólico inverso
asin función arco seno
asinh función seno hiperbólico inverso
atan función arco tangente
atan2 función arco tangente en los 4 cuadrantes
atanh función tangente hiperbólico inverso
cos función coseno
cosh función coseno hiperbólico
sin función seno
sinh función seno hiperbólico
tan función tangente
tanh función tangente hiperbólico
Funciones vectoriales
Estas funciones operan sobre un vector (columna o renglón) y al operarlas sobre una matriz m*n (m = 2)
generan un vector cuyos elementos son el resultado de aplicar la función a cada columna. Para aplicar la
operación renglón por renglón se debe utilizar la transpuesta.
Como nuevo ejemplo, se va a ver la forma de invertir el orden de los elementos de un vector:
» x=rand(1,5)
x=
0.9103 0.7622 0.2625 0.0475 0.7361
» x=x(5:-1:1)
x=
0.7361 0.0475 0.2625 0.7622 0.9103
MATLAB ofrece también la posibilidad de crear una matriz a partir de matrices previas ya definidas, de
varios posibles formas:
- recibiendo alguna de sus propiedades (como por ejemplo el tamaño),
- por composición de varias submatrices más pequeñas,
- modificándola de alguna forma.
Algunas de las funciones que crean una nueva matriz son:
[m,n]=size(A) devuelve el número de filas y de columnas de la matriz A. Si la matriz es cuadrada basta recoger el primer
valor de retorno
n=length(x) calcula el número de elementos de un vector x
zeros(size(A)) forma una matriz de ceros del mismo tamaño que una matriz A previamente creada
ones(size(A)) Ídem con unos
A=diag(x) forma una matriz diagonal A cuyos elementos diagonales son los elementos de un vector ya existente x
x=diag(A) forma un vector x a partir de los elementos de la diagonal de una matriz ya existente A
diag(diag(A)) Crea una matriz diagonal a partir de la diagonal de la matriz A
triu(A) forma una matriz triangular superior a partir de una matriz A
Un caso especialmente interesante es el de crear una nueva matriz componiendo como submatrices otras
matrices definidas previamente. A modo de ejemplo, ejecútense las siguientes líneas de comandos y obsérvense
los resultados obtenidos:
» A=rand(3)
» B=diag(diag(A))
» C=[A, eye(3); zeros(3), B]
Operadores relacionales
El lenguaje de programación de MATLAB dispone de los siguientes operadores relacionales:
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que
== Igual que
~ = Distinto que
plot() Un gráfico a partir de vectores y/o columnas de matrices, con escalas lineales sobre ambos
ejes.
loglog() ídem con escala logarítmica en ambos ejes
semilogx() ídem con escala lineal en el eje de ordenadas y logarítmica en el eje de abscisas
semilogy() ídem con escala lineal en el eje de abscisas y logarítmica en el eje de ordenadas
Existen además otras funciones orientadas a añadir títulos al gráfico, a cada uno de los ejes, a dibujar una
cuadrícula auxiliar, a introducir texto, etc. Estas funciones son las siguientes:
Esta es la función clave de todos los gráficos 2-D en MATLAB. Ya se ha dicho que el elemento básico
de los gráficos bidimensionales es el vector. Se utilizan también cadenas de 1, 2 ó 3 caracteres para indicar
colores y tipos de línea. La función plot(), en sus diversas variantes, no hace otra cosa que dibujar vectores. Un
ejemplo muy sencillo de esta función, en el que se le pasa un único vector como argumento, es el siguiente:
» x=[1 3 2 4 5 3]
x=
132453
» plot(x)
Una segunda forma de utilizar la función plot() es con dos vectores como argumentos. En este caso los
elementos del segundo vector se representan en ordenadas frente a los valores del primero, que se representan en
abscisas. Véase por ejemplo cómo se puede dibujar un cuadrilátero de esta forma (obsérvese que para dibujar un
polígono cerrado el último punto debe coincidir con el primero):
» x=[1 6 5 2 1]; y=[1 0 4 3 1];
» plot(x,y)
Cuando hay que dibujar varias líneas, por defecto se van escogiendo sucesivamente los colores de la
tabla comenzando por el azul, hacia arriba, y cuando se terminan se vuelve a empezar otra vez por el azul. Si el
fondo es blanco, este color no se utiliza para las líneas.
Se muestra el código de Matlab para generar las funciones de prueba mencionadas, se hace uso
operadores lógicos para la creación de los vectores que representan la función escalón y a partir de esta se
generan las demás y para graficar se usa la función stem() que es similar a plot() pero es usada para graficar
señales discretas:
% Intervalo de tiempo
t=-10:1:10;
% Funcion Impulso unitario discreto impulso[k]=1 si k=0
u1=t>=0; u2=t>=1; impulso = u1-u2;
stem(t,impulso);
Transfer function:
z
---------------
z^2 +2 z + 2
Cuyo tiempo de muestreo se considera no definido, cuando de usa el valor de –1, en la función G = tf([1
0],[1 2 2],-1)
Simulink
Simulink es un paquete de software que viene incluido junto con Matlab, cuyos principales objetivo es el
de modelado, simulación y análisis de sistemas dinámicos. Además que Soporta sistemas lineales o no lineales,
modelado en tiempo continuo, tiempo discreto o una mezcla entre los dos tipos de sistemas (continuo y discreto).
Para tal fin se dispone de una interfaz grafica del usuario (GUI) donde se pude construir sistemas a
través de un simple clic sobre el panel de control del bloque que se desea y plasmarlo en el ambiente de
simulink. Además se puede hacer uso de la interacción de simulink con matlab, de esta forma mezclar
simulaciones graficas con instrucciones dadas a través de comandos de programación de Matlab.
Ambiente de Simulink
Aplicaciones del Simulink
Como se ha mencionado la principal aplicación que tiene el simulink es la de simulación, también esta la
de modelado, y una que resulta muy atractiva es la de rezalizar sistemas de adquisición de datos a través de los
puertos de la computadora, o a través de puertos creados por terceros. Una ventaja es que en este paquete se
puede hacer simulación de la formulación de ecuaciones diferenciales y ecuaciones en diferencias sin la
necesidad de la escritura de código de programación.
Además Simulink incluye librerías de bloques de links (elementos para mostrar la salida del sistema),
sources (fuentes de alimentación), componentes lineales y no lineales, conectores, entre otros.
Bloques de Salida
0
Di sp l ay
Muestra valores numéricos del nodo que se tome como punto de medida.
Fl o at i n g 0
Sco p e
Di sp l ay
1
Ou t 1
Fl o ati n g
Sco p e
Sco p e 0
Muestra los valores de un nodo en forma gráfica flotante (osciloscopio)
Di sp1
l ay
SOu
T Ot1
P
0
FlSi
S to p oa ti n
m ulga ti on
Di sp l
S co p ay
e
1
TSco pn 0r
te
e rmi 0
at o
Sto pSco
T O
Si
T o Fi l e
ompu
Fielle
ut1 a ti o n
ST
Tesrmi
T es
im
OP
1o
nuat
i miou
rm
t or
natto r
Usado como terminador de señales de salida.
Stop
T o Si
Wo Oum t1
ul
rkspati on
a ce
T oScope
Wo rksp a ce
u nt
un tii tl
tl ed .m at
d.m at
T o Fi l e
T o Fi l e
Te
XY
STrmOP
i natoh
Grap r
Sco
si mpoeu t
Stop XY
Si
si mm ul ati
Gra
ou on
t ph
T o Wo rksp a ce
u nti tl ed.m at
T o Wo rkspa ce
Escribe las variables tiempo y entrada a un archivo .MAT especifico en formato de filas.
T o OP
ST Fi l e
T e rm i nato r
XY Gra p h
Stop Si m ul a ti on
si m o ut
X Y Grap h
u nti tl ed.m at
T o Wo rkspace
T o Fi l e
T e rmi na to r Escribe la entrada a un arreglo o estructura especificada de Matlab en el espacio de trabajo
Tun
si m o ut
XY Graph
o ti
Wo tl erk
ds.ma t
pace
(WorkSpace)
T o Fi l e
XY Graph
si m ou t
T o Wo rksp a ce
Muestra valores en forma de gráficos XY
XY Gra ph
Bloques de Fuentes de Alimentación
Clock
Salida de el tiempo de simulación actual
1
Constante que es especificada en el parámetro ‘Constant value’
Constant
12:34
Salida del tiempo de simulación actual en una tasa de muestreo especifica
Digital Clock
simin
From Lee valores de datos especificados en un arreglo o estructura del espacio de trabajo en Matlab
Workspace
untitled.mat
Lee valores de tiempo y salidas desde una matriz en un archivo .MAT especifico
From File
Ground
Usado para el aterramiento de señales de entrada
1
In1 Puerto de entrada para subsistemas o modelos
Genera una secuencia repetitiva de números especificada en una tabla de pares de valores
Repeating tiempo–valor
Sequence
Signal
Genera una variedad de formas de ondas
Generator
Signal 1
Constructor de señales a partir de una interfaz grafica para el usuario
Signal Builder
z+1
z2 +z+0.5 Creación de un bloque de función de transferencia sabiendo los polinomios
Discrete
T ransfer Fcn numerador y denominador.
z(z+1)
z(z+0.25)(z+0.5) Creación de un bloque de función de transferencia sabiendo los valore de los polos y
Discrete
Zero-Pol e ceros.
1+z-1
1+1z-1+0.5z-2
Creación de bloque de un filtro digital, sabiendo los coeficientes de los elementos del
Discrete Filter
filtro.
y(n)=Cx(n)+Du(n)
x(n+1)=Ax(n)+Bu(n) Bloque para un diseño de espacio de estado en sistemas discretos, se debe saber las
Di screte State-Space
matrices A, B, C y D (matrices de estado y de salida del sistema).
T
z-1
Discrete-T ime
Bloque Integrador en tiempo discreto
Integrator
La aplicación de software para realizar simulación de sistemas, es una alternativa mas económica para
los diseñadores, que sustituyen esta por la creación de prototipos que suelen resultar de altos costos.
Los sistemas que se simulan, pueden ser lineales o no lineales, de esta dificultad se encarga el Matlab o
el simulink según sea la aplicación que se este usando.
Además del factor economía otro factor que se reduce es la reducción de tiempo en comparación de la
realización del prototipo.
El Matlab, en conjunto con Simulink forman una herramienta muy poderosa en el caso de la realización
de diseños, tanto para profesionales en ejercicios como para estudiantes.
BIBLIOGRAFÍA