You are on page 1of 13

Laboratorio Nº 1: Introducción al Matlab

Señales y sistemas - 2006

INTRODUCCION A MATLAB
Matlab es un lenguaje de alto nivel desarrollado para realizar cálculos técnicos. Su nombre deriva de
Matrix Laboratory (Laboratorio de Matrices). Por su capacidad Matlab es un sistema interactivo ideal
para aplicaciones de ingeniería.
Los distintos usos que se le pueden dar son:

• Matemáticas y cálculos
• Desarrollo de algoritmos
• Modelado y simulación
• Análisis y visualización de datos
• Gráficos científicos e ingenieriles
• Desarrollos aplicados, incluyendo la construcción de interfaces gráficas

Para aprender a trabajar con Matlab es fundamental entender el manejo de matrices que éste utiliza.

1) MANIPULACIÓN DE MATRICES

Las matrices se pueden definir de distintas maneras:

• Ingresando de manera explicita la lista de elementos


• Cargando matrices anteriormente creadas
• Generando matrices mediante la utilización de funciones
• Crear matrices con funciones propias hechas en archivos .m

Para definir una matriz ingresando los elementos solo hace falta ingresar el nombre de la variable donde
se guardará la matriz y el valor de los distintos elementos. Los elementos deben estar entre corchetes,
“[]” y se utiliza el punto y coma “;” para indicar el final de cada fila. Los elementos dentro de cada fila se
separan mediante un espacio en blanco o mediante comas.

Ejemplos:

VECTOR VECTOR
VARIABLE MATRIZ
FILA COLUMNA

>> V=2 >> A=[1 2] >> B=[1;2] >> C=[1 2;3 4]

V= A= B= C=

2 1 2 1 1 2
2 3 4

En caso de que no se incluya el nombre de la variable donde se guardará la matriz, la misma se


almacenará de manera predeterminada en la variable ans. Esto sucede siempre que no se especifique
una variable de salida.

Ejemplo:

>> [1 2]

ans =
1 2

Si se desea evitar que Matlab muestre los resultados de cada acción realizada se debe incluir el punto y
coma “;” al final de cada línea.

Ejemplo:

>> D=[1 -2 4.5;8 4i 12i;0 0 0];

Página 1 de 13
Laboratorio Nº 1: Introducción al Matlab
Señales y sistemas - 2006

Operaciones con matrices: Matlab permite realizar una gran cantidad de operaciones con matrices.
Algunas de ellas son:

• Suma: +
• Resta: -
• Multiplicación: *
• División: /
• Potencia: ^
• Transpuesta: '

Ejemplo: Definimos

>> A=[1 2 3;9 1 1;2 1 5];B=[1 7 1;6 6 4;3 4 8];

MULTIPLICACION POTENCIA
>> C=A*B >> C=A^2

C= C=

22 31 33 25 7 20
18 73 21 20 20 33
23 40 46 21 10 32

Observación: Al realizar operaciones con matrices hay que tener en cuenta las dimensiones de cada
matriz para no obtener un mensaje de error.

Ejemplo:

>> D=[1 2];E=[3 4];


>> F=D*E
??? Error using ==> *
Inner matrix dimensions must agree.

También se pueden realizar las mismas operaciones pero elemento a elemento. Para esto hay que
anteponer un punto “.” a los diferentes operadores matemáticos.

• Multiplicación elemento a elemento: .*


• División elemento a elemento: ./
• Potencia elemento a elemento: .^

Ejemplo:

MULTIPLICACION POTENCIA
ELEMENTO A ELEMENTO ELEMENTO A ELEMENTO
>> C=A.*B >> C=A.^2

C= C=

1 14 3 1 4 9
54 6 4 81 1 1
6 4 40 4 1 25

Funciones con matrices: Matlab cuenta con diferentes funciones para trabajar con matrices:

Ejemplo: Sean las matrices

>> A=[16 3 2 13;5 10 11 8;9 6 7 12;4 15 14 1]; D=[2 4 1;3 8 -1;-2 5 -7];

Página 2 de 13
Laboratorio Nº 1: Introducción al Matlab
Señales y sistemas - 2006

ELEMENTOS DIAGONALES DETERMINANTE MAXIMO


diag(variable) det(variable) max(variable)
Da como resultado una matriz Calcula el determinante de Si la matriz es un vector dará como
que contiene todos los la matriz. resultado el máximo valor del vector y si
elementos diagonales de la es una matriz dará como resultado un
matriz original. >> C=det(A) vector fila que contiene el máximo de
cada columna de la matriz.
>> C=diag(A) C=
0 >> C=max(A)
C=
16 C=
10 16 15 14 13
7
1
MINIMO AUTOVALORES MEDIA
min(variable) eig(variable) mean(variable)
Si la matriz es un vector dará Da como resultado un Para un vector, el resultado es el valor
como resultado el mínimo valor vector que contiene todos medio de los elementos del mismo.
del vector y si es una matriz los valores de la matriz. La Para matrices, el resultado es un vector
dará como resultado un vector matriz utilizada debe ser fila que contiene la media de cada
fila que contiene el mínimo de cuadrada. columna de la matriz.
cada columna de la matriz.
>> C=eig(A) >> C=mean(A)
>> C=min(A)
C= C=
C= 34.0000 8.5000 8.5000 8.5000 8.5000
4 3 2 1 8.0000
0.0000
-8.0000
DESVIO ESTANDAR INVERSA POLINOMIO CARACTERISTICO
std(variable) inv(variable) poly(variable)
Para un vector, el resultado es Da la inversa de una
la desviación estándar del matriz, la matriz debe ser Da como resultado los coeficientes del
vector. Para matrices, el cuadrada y no singular polinomio característico de la matriz. La
resultado es un vector fila que misma debe ser una matriz cuadrada.
contiene la desviación estándar >> C=inv(D) Nota: el polinomio característico se
de cada columna de la matriz. obtiene como “det(λI - A) = 0”
C=
>> C=std(A) -2.4286 1.5714 -0.5714 >> C=poly(A)
1.0952 -0.5714 0.2381
C= 1.4762 -0.8571 0.1905 C=
5.4467 5.1962 5.1962 5.4467 1.0e+003 *
0.001 -0.0340 -0.064 2.176 -0.000
MATRIZ DE CEROS MATRIZ DE UNOS MATRIZ ALEATORIA
zeros(n,m) ones(n,m) rand(n,m)
Crea una matriz de ceros de Crea una matriz de unos Crea una matriz de elementos con
orden n x m. Si se ingresa solo de orden n x m. Si se valores aleatorios de orden n x m. Los
zeros(n) crea una matriz de ingresa solo ones(n) crea valores que toman los elementos son
ceros de orden n x n. una matriz de unos de elegidos de una distribución uniforme
orden n x n. entre 0 y 1. si se ingresa solo rand(n) la
>> C=zeros(2,3) matriz creada será de orden n x n.
>> C=ones(2)
C= >> C=rand(4,3)
0 0 0 C=
0 0 0 1 1 C=
1 1 0.9501 0.8913 0.8214
0.2311 0.7621 0.4447
0.6068 0.4565 0.6154
0.4860 0.0185 0.7919

Página 3 de 13
Laboratorio Nº 1: Introducción al Matlab
Señales y sistemas - 2006

Manejo de matrices: El elemento en la fila i y en la columna j de una matriz A se denota como A(i,j). De
esta manera A(2,3) es el valor del elemento ubicado en la segunda fila y la tercera columna. Si se intenta
utilizar un elemento que se encuentra fuera de la matriz aparece un mensaje de error.

Ejemplo:

>> t=A(4,5)
??? Index exceeds matrix dimensions.

Ahora bien, si se guarda un elemento que esta fuera de la matriz, la misma aumenta su tamaño para
acomodar el nuevo dato.

Ejemplo:

>> X=A;
>> X(4,5)=17

X=
16 3 2 13 0
5 10 11 8 0
9 6 7 12 0
4 15 14 1 17

El operador dos puntos “:” es uno de los operadores mas importantes de Matlab. El mismo se puede
utilizar de varias maneras. Para comprender su funcionamiento se muestran a continuación diferentes
ejemplos:

Ejemplos:

• Para obtener un vector fila de enteros del 1 al 10 se utiliza el operador de la siguiente forma:

>> C=1:10

C=
1 2 3 4 5 6 7 8 9 10

• También se puede especificar el incremento entre cada elemento sucesivo:

>> C=100:-7:50

C=
100 93 86 79 72 65 58 51

>> C=0:pi/4:pi

C=
0 0.7854 1.5708 2.3562 3.1416

• El operador se puede utilizar para referirse a porciones de una matriz:

>> p=A(1:2,3)

p=
2
11

Esto equivale a los primero dos elementos de la tercera columna de A.

Página 4 de 13
Laboratorio Nº 1: Introducción al Matlab
Señales y sistemas - 2006

>> C=A(3:4,1:3)

C=
9 6 7
4 15 14

En este ejemplo se forma una nueva matriz C con las filas 3 y 4 y las columnas 1, 2 y 3 de la matriz A.

• El operador “:” por si mismo sirve para referirse a todos los elementos de una fila o columna. Es
decir, A(:,j) se refiere a todos los elementos de la columna j y A(k,:) se refiere a todos los
elementos de la fila k.

>> C=A(:,3)

C=
2
11
7
14

>> C=A(1,:)

C=
16 3 2 13

• Se puede utilizar la función end para referirse a la última fila o a la última columna.

>> C=A(:,end)

C=
13
8
12
1

• Para borrar filas y columnas se utilizan los corchetes.

>> A(:,2)=[]

A=
16 2 13
5 11 8
9 7 12
4 14 1

En este ejemplo se han borrado todos los elementos de la columna 2 de la matriz A.

2) FUNCIONES MATEMATICAS

Matlab provee un gran número de funciones matemáticas elementales. Además permite realizar varios
cálculos matemáticos como integrales indefinidas, integrales definidas, resolver sistemas de ecuaciones
y realizar simplificaciones.

Funciones matemáticas elementales:

• Seno: sin(variable)
Da el seno de cada elemento de la variable.

>> sin(3.14)

Página 5 de 13
Laboratorio Nº 1: Introducción al Matlab
Señales y sistemas - 2006

ans =
0.0016

>> A=[1 2 3];


>> sin(A)

ans =
0.8415 0.9093 0.1411

• Tangente: tan(variable)
Da la tangente de cada elemento de la variable. Su utilización es idéntica a la de la función seno. Lo
mismo sucede para todas las demás funciones trigonométricas como coseno (cos), arcocoseno (acos),
arcotangente (atan), etc.

• Raíz cuadrada: sqrt(variable)


Calcula la raíz cuadrada de cada elemento de la variable.

>> A=[2 9;16 81];


>> sqrt(A)

ans =
1.4142 3.0000
4.0000 9.0000

• Exponencial: exp(variable)
Realiza la exponencial de cada elemento de la variable.

>> A=[2.4 1;-3 0.1];


>> exp(A)

ans =
11.0232 2.7183
0.0498 1.1052

• Valor absoluto: abs(variable)


Calcula el valor absoluto de cada elemento.

>> A=[-2 -3;-5 -4];


>> abs(A)

ans =
2 3
5 4

• Redondeo: fix(variable)
Redondea los elementos de la matriz al entero más cercano a cero.

>> A=[.3 -.4 3.9;-4.5 -2.3 1.6];


>> fix(A)

ans =
0 0 3
-4 -2 1

• Raíces: roots(variable)
Calcula las raíces del polinomio cuyos coeficientes son los elementos de la variable, por esta razón la
variable debe ser un vector. Los elementos del vector se consideran los coeficientes del polinomio
ordenado en grado decreciente.

>> A=[1 2.3 -4 9];


>> raices=roots(A)

Página 6 de 13
Laboratorio Nº 1: Introducción al Matlab
Señales y sistemas - 2006

raices =
-3.9111
0.8055 + 1.2854i
0.8055 - 1.2854i

Concatenación de funciones: Las diferentes funciones que utiliza Matlab se pueden concatenar.

Ejemplo:

>> A=[1 2.3 -4 9];


>> raices=fix(roots(A))

raices =
-3.0000
0 + 1.0000i
0 - 1.0000i

3) VARABLES SIMBOLICAS

Matlab posee la capacidad de trabajar con variables simbólicas. Esto permite manejar ecuaciones de
manera simbólica y finalmente resolver reemplazando por un valor las distintas variables utilizadas.
Además esto permite resolver integrales indefinidas y definidas de manera analítica.
Para crear una variable simbólica usamos la función syms (también se puede utilizar la función sym).

• Definición de una función dependiente de variables simbólicas.

Ejemplo:

>> syms x y
>> z=3*x+exp(2*y)

z=
3*x+exp(2*y)

• Asignación de valores a las variables simbólicas.

Ejemplo:

>> x=3;y=1;

• Evaluación de la función z. Se realiza con el comando eval.

Ejemplo:

>> eval(z)

ans =
16.3891

• Si tenemos una ecuación expresada de manera simbólica podemos simplificarla (en caso de que
sea posible) utilizando el comando simple. Esta función utiliza diferentes formas de
simplificación y muestra la que da la expresión simbólica más corta.

Ejemplos:

>> sym x
>> simple(cos(x)^2+sin(x)^2)

ans =
1

Página 7 de 13
Laboratorio Nº 1: Introducción al Matlab
Señales y sistemas - 2006

>> simple(x^3+3*x^2+3*x+1)

ans =
(x+1)^3

>> simple(cos(x)+(-sin(x)^2)^(1/2))

ans =
cos(x)+i*sin(x)

• Las ecuaciones simbólicas se pueden integrar utilizando la función int.

- int(expresión) realiza la integral indefinida de la expresión con respecto a la variable simbólica


que tenga la misma.
- int(expresión, v) realiza la integral indefinida de la expresión con respecto a v (v debe ser una
variable simbólica).
- Int(expresión, v, a, b) realiza la integral definida de la expresión con respecto a v, entre a y b.

Ejemplos:

>> syms x y t
>> A=1/(1+x^2);
>> int(A)

ans =
atan(x)

>> A=[cos(x*t) sin(x*t);-sin(x*t) cos(x*t)];


>> int(A,t)

ans =
[ sin(x*t)/x, -1/x*cos(x*t)]
[ 1/x*cos(x*t), sin(x*t)/x]

>> A=2*x^3+cos(y)+exp(-2*t*x);
>> int(A,x,1,3)

ans =
1/2*(80*t+4*cos(y)*t-exp(-6*t)+exp(-2*t))/t

4) GRAFICOS

Matlab cuenta con varias herramientas para visualizar vectores y matrices de forma gráfica. Los dos
comandos principales para graficar con plot y stem. El comando plot interpola los elementos adyacentes
de manera que se visualice una gráfica continua, en cambio, el comando ítem muestra los elementos sin
ningún tipo de interpolación. Por esta razón es común utilizar plot para graficar funciones y señales
continuas y stem para señales discretas. Ambos comandos cuentan con varias opciones para
personalizar la visualización de los gráficos. Se pueden varias los colores, los ejes, las etiquetas, los
tamaños, la perspectiva, etc.

Página 8 de 13
Laboratorio Nº 1: Introducción al Matlab
Señales y sistemas - 2006

Ejemplos:

>> t=0:0.25:2*pi;
>> y=sin(t);
>> plot(t,y)

>> grid
>> title('Funcion seno')
>> xlabel('t [seg]')
>> ylabel('y [volt]')
>> text(2.5,0.7,'Señal continua')

>> t=0:0.25:2*pi;
>> stem(t,y)

Página 9 de 13
Laboratorio Nº 1: Introducción al Matlab
Señales y sistemas - 2006

Para realizar dos graficas en una misma figura podemos hacer lo siguiente:

>> t=0:0.1:2*pi;y1=sin(t);y2=sin(2*t);plot(t,y1,'o',t,y2,'r--')
>> grid
>> title('Funciones seno de distintos argumentos')
>> xlabel('tiempo')
>> ylabel('y1,y2')
>> text(2.1,0.95,'primer armonica')
>> text(4.7,0.45,'segunda armonica')

5) SIMULINK

Simulink es un software para el modelado, simulación y análisis de sistemas dinámicos. Soporta


sistemas lineales y no lineales, modelados en tiempo continuo, discreto, o un híbrido entre ambos.
Para el modelado Simulink provee una interfaz de usuario gráfica para construir los modelos en
diagrama de bloques usando el mouse. Con esta interfaz se dibujan los modelos de la misma forma que
se haría con lápiz y papel, por lo que no es necesario formular ecuaciones diferenciales o escribir código
en ningún lenguaje. Se construyen los modelos utilizando los bloques que provee Simulink o los creados
por el usuario. Se puede crear virtualmente cualquier sistema dinámico interconectando los bloques de la
forma correcta.
A continuación se muestran algunos ejemplos de distintos modelos.

Ejemplo 1: Crear un modelo simple.

1) Para abrir Simulink topear “Simulink” en el workspace o utilizar el botón así se abrirá el
navegador de librerías de Simulink. En cada librería encontraremos los bloques con los que se
construye cada modelo.
2) Para crear un modelo hacer clic en el botón de nuevo modelo de la barra de herramientas. Se
abrirá la ventana de modelo.
3) Para este ejemplo utilizaremos las siguientes librerías:
Sources (fuentes): distintos tipos de señales que utilizaremos como entradas a los modelos.
Links (sumideros): dispositivos para la visualización o exportación de señales que utilizaremos como
salidas o instrumentos de medición.
4) Seleccionar la librería Sources y arrastrar el bloque “Sine Wave” (generador de señal senoidal) a la
ventana modelo.

Página 10 de 13
Laboratorio Nº 1: Introducción al Matlab
Señales y sistemas - 2006

5) Luego, de la librería Sinks, arrastrar el bloque “Scope”.


6) Interconectar la salida del generador de señal senoidal con la entrada del Scope. Para hacerlo, notar
que al posicionar el puntero del mouse sobre la salida del generador, el puntero toma la forma de
una cruz, entonces apretar y arrastrar hasta la entrada del Scope y soltar.

Para comenzar la simulación hacer clic en el botón “Start Simulation” .


Luego al hacer doble clic en Scope veremos el resultado de la simulación.
Al hacer doble clic sobre el bloque del generador de señales senoidales podremos editar varias
propiedades de la señal que genera.

Ejemplo 2: Integrador simple

Veamos como es la respuesta de un integrador simple cuando su entrada es un escalón. Para ello
debemos construir un modelo como el de la siguiente figura donde la entrada que excitará al mismo será
un escalón. El escalón se encuentra en la librería Sources y el integrador en la librería Continuous.

Nota: hacer doble clic sobre Scope para ver como es la respuesta del integrador en el tiempo.

Ejemplo 3: Ecuación Diferencial.

En este ejemplo utilizaremos Simulink para resolver una ecuación diferencial simple y veremos la función
que la verifica en el Scope.

dy
= a ⋅ y(t ) + b ⋅ u (t )
dt

Simulink no puede trabajar con variables simbólicas, por lo que hay que debemos asignarle valores
numéricos a las constantes “a” y “b” de la ecuación anterior.

Página 11 de 13
Laboratorio Nº 1: Introducción al Matlab
Señales y sistemas - 2006

Para resolver esta ecuación simplemente tenemos que crear un modelo que tenga la forma de la
ecuación. Necesitaremos un bloque sumador, dos ganancias y un integrador. Para la entrada u(t)
introduciremos un bloque que la simule y para ver la salida usaremos el Scope.
De la librería Math obtenemos el sumador: y las ganancias

Ahora simplemente representamos la ecuación con bloques:

Para darle valores a las constantes a y b hacemos doble clic sobre cada bloque de ganancia y
escribimos su valor.
Para poder obtener la señal y(t) debemos integrar y´(t). Utilizamos el bloque integrador en el cual
podemos fijar las condiciones iniciales de la ecuación diferencial al hacerle doble clic.
Así, el modelo terminado queda de la siguiente forma (utilizando una constante como entrada):

Obviamente podemos obtener el resultado de la ecuación para cualquier entrada utilizando el bloque de
entrada correspondiente y viendo su resultado en el Scope.
Simulink no devuelve una solución algebraica, sino que da la forma de la solución gráficamente.

Observación: se puede dar un valor simbólico como parámetro de algún bloque, por ejemplo, a un
bloque de ganancia es posible asignarle el valor de ganancia “a”. para que Simulink pueda realizar la
simulación hay que definir una variable “a” en el workspace asignándole el valor que le corresponda.
Simulink tomará dicho valor para la simulación.

7) HELP

Para buscar información sobre las diversas funciones y utilidades de Matlab se pueden usar distintas
herramientas. En primer lugar Matlab cuenta con un menú de ayuda con gran cantidad de información.
Sin embargo, en caso de que uno conozca el nombre del comando que quiere utilizar y necesita
información específica sobre esa función conviene utilizar el comando help. Para usar este comando se
debe tipear la palabra help en el workspace , y seguido el nombre del comando sobre el cual se requiere
información.
Página 12 de 13
Laboratorio Nº 1: Introducción al Matlab
Señales y sistemas - 2006

Ejemplos:

>> help plot


>> help roots
>> help ítem

Si no se conoce el nombre específico de la función se puede usar el comando lookfor. El mismo busca
qué funciones tiene la palabra clave de la función.

Ejemplo:

>> lookfor integrate

POLYINT Integrate polynomial analytically.


FINDSLOBJ creates and manages the Simulink/Stateflow Integrated Finder
FNINT Integrate a function.
INTWAVE Integrate wavelet function psi.
INT Integrate.
BLKINTEG This block integrates an input signal. The integrator may optionally be resettable.

Página 13 de 13

You might also like