You are on page 1of 49

1

Introduccin a Matlab
Fundamentos y aplicaciones en el
estudio e investigacin de
tecnologas de telecomunicaciones
1 Matlab es una marca registrada de The
MathWorks, Inc.

Contenido

Generalidades de Matlab
Manejo de matrices y vectores
Generacin de Grficos
Funciones y Programacin
Procesamiento bsico de seales
Simulacin grfica mediante Simulink
Estudio de casos

12/15/15

Jos Luis Muoz Meza

Manejo de matrices y vectores

Matrices y vectores
Vectores y matrices especiales
Caracteres especiales
Operadores
Generacin de vectores y matrices
Ejemplos y ejercicios
Ejercicios simples
Solucin de ecuaciones simultneas
Uso en modelos fsicos mediante Variables de estado

12/15/15

Jos Luis Muoz Meza

Matrices y vectores

En MATLAB todos los datos se consideran matrices.

Un vector puede ser definido


como un vector fila o como
un vector columna.
Un vector de longitud n
puede visualizarse como una
matriz de tamao 1xn o nx1.
Ejercicio:

Definir la variable z como la matriz

Verificar su
memoria.

tamao

espacio

en

Matrices y vectores
Las matrices pueden ser de tamaos
diferentes, sean matrices cuadradas de
tamao NxN o rectangulares MxN.
Para todos los efectos, los vectores son
casos especiales de matrices.
Ejercicio:

Definir las A, B y C. siguientes

Verificar su tamao y espacio en memoria.

Matrices. Caracteres
reservados
Algunos smbolos tienen una funcin particular para facilitar
la escritura de instrucciones, los de uso ms comnes son
los siguientes:
[]
- definir input de vectores y matrices
()

- asignar precedencia en operaciones aritmticas


- referir elementos de matrices
- pasar argumentos a funciones o subprogramas

- asignar valores

- indica transposicin de matrices

- dentro de [ ] para separar lneas


- separar comandos
- suprimir impresin

- indica comentario, el texto que le sigue es ignorado

- para indicar iteraciones o generar vectores en


secuencias

Matrices. Operadores

Todos los operadores realizan operaciones con matrices, de


modo que un escalar puede verse como una matriz 1 x 1 y
un vector como una matriz de 1 x n de n x 1 segn sea el
caso
Operadores aritmticos

- Suma, A + B suma los elementos de A a los


correspondientes de B. A y B deben tener el mismo
tamao. Un escalar se le puede sumar a una matriz de
cualquier tamao
- Resta, A B resta los elementos de A a los
correspondientes de B. A y B deben tener el mismo
tamao. Un escalar se le puede restar a una matriz de
cualquier tamao
-Multiplicacin de matrices, C = A * B es el producto
algebraico lineal de las matrices A y B. Para matrices, el
nmero de columnas de A debe ser igual al nmero de

Matrices. Operadores
Operadores aritmticos

- B/A es lo mismo que B * A-1 ; A-1 es la matriz inversa de A, inv(A)


y debe ser n x n

- A\B, se conoce como divisin por la izquierda, si A es cuadrada,


A\B es casi igual A-1 * B, excepto por la forma de ser calculado.
- Si B es un vector columna de n elementos y A es n x n, entonces
X = A\B es la solucin al sistema AX = B por el mtodo de
eliminacin de Gauss

- Potencia de matrices. X^p es X elevado a la potencia de p, si p


es un escalar.
- Si p es un entero, la potencia se calcular elevando al cuadrado
repetidas veces. Si el entero es negativo, se calcula primero la
inversa de X
- Si X y p son matrices, MATLAB arroja un error

'
.

- A' es la conjugada transpuesta de A


- A. es la transpuesta simple de A

Matrices. Operadores
Operadores aritmticos especficos de matrices

.*

- A .* B, es la multiplicacin elemento por elemento


de las matrices A y B, las cuales deben tener el
mismo tamao

./

- A ./ B, es la matriz con elementos A(i,j) / B(i,j). A y B


deben tener el mismo tamao, al menos que uno
sea un escalar

.\

- A .\ B, es la matriz con elementos B(i,j) / A(i,j). A y B


deben tener el mismo tamao, al menos que uno
sea un escalar

.^

- A .^B, es la matriz con elementos A(i,j) elevados a


la potencia de B(i,j). A y B deben tener el mismo
tamao, al menos que uno sea un escalar

Matrices. Operadores
Operadores relacionales

<

- Menor que

>

- Mayor que

<=

- Menor o igual que

>=

- Mayor o igual que

==

- Igual a

~=

- Diferente a

Generacin de vectores y matrices


Generar un vector cuyos elementos son los nmeros del 1 al 8
>> v = [1:8]
v =
1
2

>> v = 1:8
v =
1
2
3
4
5
Crear un vector con una parte de v
>> u = v(3:6)
u =
3
4

Construir otro vector con elementos de u y v


>> w = [v(3:5) u(2:4)]
w =
3
4
5
4

Generacin de vectores y matrices


Generar un vector con
todos sus elementos
iguales a 1
>> v = ones (1,4)
v =
1 1 1 1
>> v =
v =
1
1
1

ones (3,3)
1 1
1 1
1 1

Crear un vector con todos


sus elementos iguales a
cero:
>> u = zeros(1,4)
u =
0 0 0 0
>> w =
w =
0
0
0
0

zeros(4,4)
0
0
0
0

0
0
0
0

0
0
0
0

Generacin de vectores y matrices


-

Un arreglo nulo (empty array) no contiene elementos y se expresa


como [ ]
- Se pueden borrar filas y columnas asignndoles el arreglo nulo
>> A = [7 2 4; 63 8 3; 9 8 1]
>> A(:,2)=[]
A =

A =
7
63
9

2
8
8

7
63
9

4
3
1

4
3
1

Si se asignan valores a filas o columnas que no existen an, matlab


completar las celdas con ceros.
>> A(:,3)=[4;3;1]
A=
7
63
9

>> A(:,5) = [14;8;5]


A=

2
8
8

4
3
1

7
14
63
8

Operaciones con matrices

Transpuesta de una matriz

>> X
X =
15
2
3
>> X'
ans =
15
5
1

5
6
2

1
2
7

Matriz inversa
>> inv(X)
ans =
0.0736
-0.0155
-0.0271

-0.0640
0.1977
-0.0291

Determinante
2
6
2

3
2
7

>> det(X)
ans =
516

0.0078
-0.0543
0.1550

Operaciones con matrices


Funciones bsicas
Funcin

Descripcin

find(x)

Genera un vector conteniendo los ndices de los elementos distintos de cero de la matriz

[u, v, w] = find(A)

Genera los vectores u y v, conteniendo los ndices de las filas y columnas cuyos elementos son distintos de cero.
w contiene los valores

length(A)

Calcula la longitud deA si es un vector. Si A es una matriz de MxN devuelve el mayor de M y N.

linspace(a, b, n)

Crea un vector fila de n elementos, cuyos valores van desde a hasta b, espaciados uniformemente

logspace (a, b, n)

Crea un vector fila de n elementos, cuyos valores van desde a hasta b, espaciados logartmicamente

max(A)

Si A es un vector, devuelve el elemento algebraicamente mayor. Si A es una matriz devuelve un vector fila con
los elementos mayores de cada columna de A. Si uno o ms elementos son nmeros complejos, devuelve los que
tienen magnitudes. mayores

min(A)

Igual al anterior pero devuelve mnimos

norm(x)

Calcula la longitud geomtrica del vector x.

size(A)

Devuelve un vector [m n] conteniendo los tamaos de la matriz MxN

sort(A)

Ordena cada columna de la matriz en forma ascendente y devuelve la matriz resultante

sum(A)

Suma los elementos en cada columna de la matriz A y devuelve el vector fila resultante con los resultados
obtenidos

Operaciones con matrices

Matriz identidad

>> eye(3)
ans =
1
0
0

0
1
0

0
0
1

Polinomios

>> % Crear un polinomio dadas sus raices


>> p=poly([1 3+5i 3-5i])
p =
1
-7
40
-34
>> % Calcular las raices de un polinomio x^3 + 12x^2
+45x +50=0
>> roots([1 12 45 50])
ans =
-5.0000 + 0.0000i
-5.0000 - 0.0000i
-2.0000
>> % multiplicar polinomios
>> conv(f,g)
>> % dividir polinomios
>> [q r] = deconv(num, den)

>>
>>
>>
>>

% dividir polinomios
[q r] = deconv(num, den)
% evaluar un polinomio
datos = polyval(polinomio, x)

Eigen valores y
eigenvectores

>> eig(X)
ans =
16.6456
6.7869
4.5675
>> [V,D] = eig(X)
V =
-0.9135
-0.4420
-0.2341
0.5912
-0.3327
0.6746
D =
16.6456
0
0
6.7869
0
0

0.4022
-0.8856
0.2321
0
0
4.5675

Matrices. Ejemplos de operaciones


Suma

Multiplicacin

Inversa

Matrices. Ejemplos de operaciones


Producto escalar de vectores de tres elementos
>> u(1:3)*v(1:3)'
ans =
26

Producto vectorial de vectores de tres elementos


>> m = u(1:3)'*v(1:3)
ans =
3
6
9
4
8
12
5
10
15

Matrices. Ejemplos de operaciones


Multiplicacin elemento por elemento de dos matrices
>> X = [1 0 1; 2 1 2; 3 2 3], Y = [3 2 1; 4 1 1;5 2 1]
X =
1
0
1
2
1
2
3
2
3
Y =
3
2
1
4
1
1
5
2
1
>> X.*Y
ans =
3
0
1
8
1
2
15
4
3

Ejercicios
Ejercicio 1
Suponga que dos buzos empiezan en la superficie y fijan el siguiente
sistema de coordenadas: x es al oeste, y al norte y z hacia abajo. El
primer buzo nada 20 metros al oeste, luego 12 al norte y se sumerge
finalmente 8 metros. El segundo buzo se sumerge 5 metros, luego
nada 7 al este y finalmente al norte por 19 mts.
a) Encontrar la distancia entre el punto de partida y la posicin del
primer buzo..
b) Cuanto tendr que nadar el primer buzo en cada direccin para
llegar al segundo buzo
c) Cuando deber nadar el primer buzo en lnea recta para alcanzar al
segundo.

Ejercicios
Solucin
>> r=[20 12 8];
>> w=[-7 19 8];
>> dist1=sqrt(sum(r.*r))
dist1 =

dist2 =
27.8927

24.6577
>> v=w-r
v =
-27

>> dist2=sqrt(sum(v.*v))

Ejercicios
Ejercicio 2
La siguiente expresin corresponde al modelo de la
presin arterial durante el sstole, donde t es el tiempo e
y es la diferencia de presin en la vlvula artica:

a) Obtener los valores de la presin arterial entre 0 y 0.5


segundos, con 200 muestras equidistantes de tiempo
b) Graficar y(t) usando la funcin plot.

Ejercicios
1.2

Solucin
>> t=linspace(0, 0.5, 200);
>> size(t)

1
0.8
0.6

ans =

0.4

200

>> y= exp(-8*t).*sin(9.7*t+pi/2);
>> plot(t,y)

0.2
0
-0.2

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5

Ejercicios
La siguiente tabla muestra la distancia recorrida y
tiempo empleado por cinco camiones viajando a lo
largo de diferentes rutas:
1

Distancia (km.)

850

704

784

592

848

Tiempo (hr.)

10.3

8.2

9.1

7.5

10.1

a) Calcular la velocidad promedio requerida en cada ruta.


b) Encontrar la ruta con la mayor velocidad promedio.

Ejercicios
Solucin
>> velocidad = d./t
velocidad =
82.5243
85.8537
83.9604

>> d=[850 704 784 592 848]


d =
850

704

784

592

848

>> t= [10.3 8.2 9.1 7.5 10.1]


t =
10.3000
8.2000
7.5000
10.1000

78.9333

>> [max_velocidad, ruta] = max(velocidad)


max_velocidad =
86.1538

9.1000

86.1538

ruta =
3

Ejercicios
Dadas las matrices

a) Calcular el producto matricial punto


b) Divisin derecha punto de A entre B
c) B elevada a la tercera potencia elemento por
elemento

Ejercicios
Calcular el cociente y el residuo de la siguiente
divisin de polinomios
Calcular el producto siguiente:

La funcin plot (rango, datos) permite crear grficas


simples. Graficar el polinomio siguiente entre 0 y 7:

Solucin de ecuaciones
simultneas (Ax=B)

Si se tiene un sistema de ecuaciones

>> A=[1 2; 2 3];


>> b=[1;2];
>> inv(A)*b

a11x1 + a12x2 = b1
a21x 1+ a22x2= b2

En forma matricial el sistema


anterior y su solucin pueden
expresarse como:
Ax =B,

x=A

-1

En MATLAB se escribe como:


x = inv(A)*b y puede calcularse ms
eficientemente mediante x=A\b

ans =
1
0
>> A\b
ans =
1
0

Solucin de ecuaciones
simultneas
Ejercicio

Solucin
>> A=[16 -120 240 -140; -120 1200 -2700 1680; 240
-2700 6480 -4200; -140 1680 -4200 2800]
A =
16
-120
240
-140
-120
1200
-2700
1680
240
-2700
6480
-4200
-140
1680
-4200
2800

a Resolver el siguiente
sistema de ecuaciones

>> B=[-4 60 -180 140]'


B =
-4
60
-180
140
>> sol=A\B
sol =
1.0000
1.0000
1.0000
1.0000

Solucin de ecuaciones
simultneas
Ejercicio

Solucin

- Se pueden comprar tres libros, uno


de Clculo (C), uno de Protocolo de
Redes (P) y otro de Dispositivos
Electrnicos(D) por un total de
$146.
- Si slo se compran los libros de
Clculo y de Dispositivos se
necesitarn $87
- Comprar el de Clculo y el de
protocolos resulta en un gasto de
$105.

Los coeficientes de las


variables C, P y D se
colocan en una matriz y los
precios en un vector
columna

Cunto cuesta cada texto?

>> Libros= [1,1,1; 0 1 1; 1 1


0];
>> Costos=[146; 87; 105];
>> Precios=Libros\Costos
Precios =
59
46

Modelos fsicos con variables de estado

El modelo de variables de estado


permite describir un sistema
mediante n ecuaciones diferenciales
de primer orden.
Una forma ms amigable para simulacin
discreta comparado con una ecuacin de
entrada/salida de n-simo orden.

Variables de estado. Conceptos mnimos


Se emplea el formato vector matriz:

x ' Ax Bu

y Cx Du
donde y es la ecuacin de salida, x es el vector
de estado, siendo u la entrada

Partes de una representacin mediante


variables de estado
Variables de estado: un subconjunto de variables del
sistema que de ser conocidas en el instante inicial t 0
junto con las subsecuentes entradas describe el sistema
para cualquier t>t0+
Ecuaciones de estado: n ecuaciones diferenciales de
primer orden linealmente independientes que relacionan
las primera-derivadas de las variables de estado con
funciones de variables de estado y entradas.
Ecuaciones de salida: ecuaciones algebraicas que
relacionan las variables de estado con las salidas del
sistema.

Ejemplo
La ecuacin obtenida de un diagrama de cuerpo libre (esttica)
es:
mh + bh + kh - f(t) = 0
Donde h es distancia , t es tiempo . h' es dh/dt y h =d 2h/dt2
Sustituyendo las definiciones de los estados (x 1=h, x2=dx1/dt)
en las ecuaciones resulta en:
mx2 + bx2 + kx1 - f(t) = 0
Resolviendo para x2 se obtienen las ecuaciones de estado:
x2' = (-b/m) x2 + (-k/m)x1 + f(t)/m
La salida deseada es para la posicin h, por lo tanto:
y = h = x1

Cont
Luego las derivadas de las variables
de estado se colocan en trminos de
las mismas variables, los inputs y
constantes.
x1' = x2
x2' = (-k/m) x1 + (-b/m) x2 + f(t)/m
y = x1

En forma Vector-matriz
El vector de estado est compuesto
de dos variables, x y v , por lo tanto
la forma el vector-matriz ser:
x'1
x1
x' A x B f (t )
2
2
x1
y C D f (t )
x2

Explicacin
La primera fila de A y la primera fila
de B son los coeficientes de la
primera ecuacin de estados para
x1'.De igual forma, la segunda fila
de A y la segunda fila de B son los
coeficientes de la segunda ecuacin
de estados para x2'. C y D son los
coeficientes de la ecuacin de salida

Representacin exacta
1
x'1 0
x' k / m b / m

2
y

1 0

x1 0
x 1 / m

2
x1
x 0
2

f (t )
f (t )

0
1
A

k / m b / m
0
B

1 / m

C 1 0
D 0

Introduccin de ecuaciones de estado en el


entorno de Matlab
Para ingresar el modelo de variables de estado en
Matlab, se emplea la funcin ss, usando la
siguiente sintxis:
statespace = ss(A, B, C, D)
donde A, B, C, y D corresponden a la forma
estndar vector-matrix del modelo variable de
estado.

Ejemplo

Dando valores a cada variable, m


= 2, b = 5, y k = 3.
>>
>>
>>
>>
>>
>>
>>
>>

m = 2;
b = 5;
k = 3;
A = [ 0 1 ; -k/m -b/m ];
B = [ 0 ; 1/m ];
C = [ 1 0 ];
D = 0;
statespace_ss = ss(A, B, C, D)

Esto asigna el modelo espacio


estado a la variable
statespace_ss.
>> statespace_ss = ss(A, B, C, D)
a =
x1
x2
x1
0
1
x2 -1.5 -2.5
b =
u1
x1
0
x2 0.5
c =
x1 x2
y1
1
0
d =
u1
y1
0
Continuos-time model

Extraccin de las matrices del modelo de espacio de estado

Para extraer las matrices a, b, c y d


de un modelo espacio estado
previamente definido se emplea el
comando ssdata.
[a, b, c, d] = ssdata(statespace)

donde statespace es el nombre del


sistema.

Ejemplo
>> [a b c d ]=ssdata(statespace_ss)
a =
0
-1.5000

1.0000
-2.5000

b =
0
0.5000
c =
1
d =
0

Anlisis transitorio
Una vez ingresado el modelo es
fcil calcular la respuesta a una
entrada de tipo escaln.
Para calcular la respuesta a un funcin
escaln unitarios, se usa la funcin step:
step(statespace)
Donde statespace es el nombre del sistema.

Para escalones de magnitudes diferentes a


uno:
step(u * statespace)
Donde u es la magnitud del escaln y statespace es
el nombre del sistema

Ejercicio
Para el circuito de la siguiente figura,
donde las condiciones iniciales son
iL(0-)=0, y Vc(0-) = 0.5V, Calcular el Vc(t).

Ejercicio
Usando variables de estado
Sustituyendo valores y re-arreglando trminos:
o

(eq. 1)

Definiendo como variables de estado x1=iL y x2=vc


(eq. 2) y

(eq. 3)

Ejercicio

Tambin
y as:
o

Por lo tanto de eq. 1, eq. 2 y eq. 3, obtenemos:

En forma matricial:

Ejercicio

El sistema de ecuaciones completo de variables de estado ser:


x'1 4 4
x' 3 / 4 0

x1 4
x 0 u0 (t )
2
x1
x 0 u0 (t )
2

1 0
La solucin de en el caso donde A es una matriz constante de nxn
elementos n2 y b es un vector columna con n elementos la
solucin de:

Con condiciones iniciales

Es
Siendo eAT la matriz de transicin de estado

Ejercicio

En nuestro ejemplo:

Es decir:

Ejercicio

Un circuito elctrico se describe mediante un sistema de


ecuaciones de variables de estado

Donde :

Calcular el vector de estado