Professional Documents
Culture Documents
n a Matlab y Simulink
Introduccio
Introducci
on
Matlab es un poderoso sistema el cual permite el tratamiento numerico
de una gran cantidad de aplicaciones en ingeniera, tales como: procesamiento
de se
nales, analisis estadsticos, interpolacion de curvas, series de tiempo, simulacion y control de sistemas, logica difusa, redes neuronales, identificacion
de parametros, etc.
El nombre Matlab se debe a que en realidad consiste en un laboratorio
de matrices (Matrix laboratory), razon por la cual es excelente para el
calculo numerico de vectores y valores propios, descomposiciones de matrices
y cualquier aplicacion que involucre matrices.
Ademas de lo mencionado anteriormente, Matlab tambien incluye un
subprograma llamado Simulink, el cual permite la simulacion de todo sistema dinamico lineal y casi cualquier sistema no lineal.
A pesar de la gran cantidad de aplicaciones mencionadas anteriormente,
este apunte esta enfocado hacia las aplicaciones orientadas hacia el control
de sistemas.
Si el lector desea ahondar mas sobre los aspectos generales de Matlab entonces debera referirse a [1]
II
Indice general
1. Lo b
asico
1.1. Matrices . . . . . . . . . . . . . . . . . . . . . . .
1.1.1. Definicion y asignacion de variables . . . .
1.1.2. Operando con matrices . . . . . . . . . . .
1.1.3. Matrices especiales . . . . . . . . . . . . .
1.1.4. Manipulacion de matrices . . . . . . . . .
1.1.5. Arreglos . . . . . . . . . . . . . . . . . . .
1.2. Variables y Funciones . . . . . . . . . . . . . . . .
1.2.1. Variables . . . . . . . . . . . . . . . . . . .
1.2.2. Funciones . . . . . . . . . . . . . . . . . .
1.2.3. Algunas Variables y Funciones de utilidad
1.3. Graficos . . . . . . . . . . . . . . . . . . . . . . .
1.3.1. Figuras . . . . . . . . . . . . . . . . . . .
1.3.2. Graficos en 2D . . . . . . . . . . . . . . .
2. Simulink
2.1. Diagramas de Bloques . . .
2.2. Usando Simulink . . . . . .
2.2.1. Librera Continuos
2.2.2. Librera Discrete .
2.2.3. Libreras Sources y
2.2.4. Otras Libreras . . .
. . . . .
. . . . .
. . . . .
. . . . .
Sinks
. . . . .
A. Funciones Comunes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
2
3
5
7
8
8
9
9
12
12
12
.
.
.
.
.
.
17
17
18
19
19
20
21
25
iii
IV
INDICE GENERAL
Captulo 1
Lo b
asico
Dado que todas las aplicaciones de Matlab se basan en el uso de matrices,
lo primordial en este captulo es mostrar como utilizarlas, posteriormente se veran
los distintos tipos de variables y funciones que existen, para finalmente aprender
el manejo de graficos.
1.1.
Matrices
1.1.1.
Definici
on y asignaci
on de variables
4
2
5
7
Matrices
1.1.2.
3
2
7
6
7
8
13
>> D=C*A
D =
76
114
80
126
Para potenciar una matriz se utiliza el smbolo (), seguido del exponente
que se desea. Si se desea invertir una matriz se puede hacer de dos maneras:
elevando la matriz a -1 o utilizando la funcion inv:
2
>> A=[2 2 ; 0 1]
A =
2
0
2
1
>> inv(A)
ans =
0.5000
0
-1.0000
1.0000
Smbolo
*
/
\
1.1.3.
Matrices especiales
Dado que existen matrices que son muy utilizadas en la practica Matlab incluye funciones especficas para crearlas:
ones crea una matriz de unos
zeros crea una matriz de ceros
eye crea la matriz identidad
La utilizacion de las tres es muy similar, se introduce primero el n
umero
de filas y posteriormente el n
umero de columnas; como muestra el siguiente
ejemplo:
Matrices
>> A=ones(3,2)
A =
1
1
1
1
1
1
>> B=zeros(3,5)
B =
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
>> C=eye(3)
C =
1
0
0
>> C=eye(3,4)
C =
1
0
0
0
1
0
0
0
1
0
0
0
Notese que si se desea la matriz identidad de orden n solo hay que introducir
n, pero si se desea una rectangular se utiliza igual que las funciones anteriores.
Otro tipo de matrices com
unmente utilizadas son los vectores, los cuales se
pueden definir como cualquier matriz. La importancia radica en que muchas
veces se utilizan para indexar alguna serie de elementos, para definirlos de
esta manera se utiliza (:), de la siguiente manera:
1.1.4 Manipulaci
on de matrices
n
umero inicial:paso:cota superior
Por ejemplo:
>> 1:4:19
ans =
1
1.1.4.
13
17
Manipulaci
on de matrices
Matrices
ans =
1
En el primer ejemplo se obtiene el elemento a11 de la matriz, en el segundo
ejemplo la primera columna, el tercer ejemplo se obtiene la segunda fila,
y para el u
ltimo ejemplo se obtiene el cuarto elemento de la matriz. La
numeracion del u
ltimo ejemplo es por columnas (as a11 es 1 , a21 es 2 , a12
es 3 , a22 es 4 ).
Ademas de seleccionar elementos, muchas veces es u
til eliminar alg
un(os)
elemento(s) de la matriz4 , para lograr lo anterior se utilizan un par de parentesis cuadrados. As, por ejemplo, si se desea borrar la segunda columna de una
matriz dada:
>> A=[1 2 6; 3 4 8; 5 7 9; 3 4 9];
>> A(:,2)=[ ]
A =
1
3
5
3
6
8
9
9
>> indice=1:2:11
indice =
4
Sin embargo, solo se puede hacer si la estructura resultante sigue siendo una matriz
10
1.1.5 Arreglos
1
7
5
11
10
>> B=A(indice)
B =
0
obtiene los n
umeros que estan en las posiciones impares del vector A.
Muchas veces es u
til concatenar matrices, lo cual se puede utilizar utilizando los parentesis cuadrados ([ ]). Por ejemplo para concatenar horizontalmente:
>> B=[1 2 3; 4 5 6];
>> C=[1 ; 2];
>> [B C]
ans =
1
4
2
5
3
6
1
2
2
3
3
2
4
1
1.1.5.
Arreglos
Los arreglos son matrices, pero poseen una aritmetica distinta en cuanto a la multiplicacion y division. Estas operaciones se ejecutan elemento a
Variables y Funciones
elemento, y para que sean consistentes los arreglos deben ser de las mismas
dimensiones.
Para diferenciar las operaciones matriciales de las operaciones de arreglos
los operadores van precedidos por un punto (.), como se muestra en el cuadro
1.2.
Operacion
Multiplicacion
Division por la derecha
Division por la izquierda
Potenciacion
Transposicion no conjugada
Smbolo
.*
./
.\
.
.
1.3333
4.0000
2.0000
0
1.2.
Variables y Funciones
1.2.1.
Variables
bij
aij
i, j.
1.2.2 Funciones
>> Z=hola
Z =
hola
1.2.2.
Funciones
1.2.3.
10
Variables y Funciones
Nombre
pi
i
j
Inf
NaN
eps
Descripcion
El n
umero mas famoso del mundo
Unidad imaginaria
Lo mismo que i, pero para los electricos
Infinito
No es un n
umero
Precision relativa de punto flotante, 252
Cuadro 1.3: Variables Predefinidas
Nombre
sin(X)
cos(X)
tan(X)
exp(X)
log(X)
plot(X,Y)
clear(A)
det(A)
eig(A)
Descripcion
Funcion seno de X
Funcion coseno de X
Funcion tangente de X
Funcion exponencial de X
Funcion logaritmo natural de X
Grafica Y versus X
Borra la variable A
Calcula el determinante de la matriz A
Calcula los valores y vectores propios de la matriz
A
poly(A)
Calcula los coeficientes del polinomio caracterstico
de la matriz A
roots(coef)
Calcula los races del polinomio cuyos coeficientes
vienen en coef
sum(X)
Suma los elementos del vector X
length(X)
Retorna el largo del vector X
size(A)
Retorna las dimensiones de la matriz A
help funcion
Entrega ayuda sobre la funcion funcion
lookfor palabra Retorna las funciones en las que aparece el string
palabra
Cuadro 1.4: Funciones Basicas mas comunes
Columns 1 through 7
1.0000
0.9048
0.8187
0.7408
0.6703
0.6065
0.5488
0.4493
0.4066
0.3679
11
12
Gr
aficos
1.3.
Gr
aficos
1.3.1.
Figuras
1.3.2.
Gr
aficos en 2D
1.3.2 Gr
aficos en 2D
13
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0.5
1.5
2.5
3.5
4.5
plot(t,exp(-t))
hold on
plot(t,sin(t))
hold off
14
Gr
aficos
1
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1
0.5
1.5
2.5
3.5
4.5
1.3.2 Gr
aficos en 2D
15
1
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1
0.5
1.5
2.5
3.5
4.5
plot(X,sin(X));
subplot(3,2,2)
plot(X,cos(X));
subplot(3,1,2)
plot(X,cos(X)+sin(X));
subplot(3,1,3)
plot(X,[cos(X);sin(X)]);
16
Gr
aficos
exponencial
seno
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1
0.5
1.5
2.5
3.5
4.5
0.5
0.5
0.5
0.5
1
4
1
4
2
1
0
1
2
4
1
0.5
0
0.5
1
4
Captulo 2
Simulink
Simulink es un sistema interactivo para simular sistemas dinamicos nolineales. La gran ventaja de Simulink es su interfaz grafica, mediante la cual se
pueden implementar complicados modelos y obtener simulaciones en un tiempo
extremadamente rapido a traves de los diagramas de bloques.
2.1.
Diagramas de Bloques
En pocas palabras para utilizar Simulink solo hay que saber como traducir una ecuacion diferencial o de diferencias a un diagrama de bloques. Por
ejemplo si se desea simular la respuesta de la siguiente ecuacion diferencial
y(t)
+ 3y(t) = 1
y(0) = 0
(2.1)
primero hay que generar el diagrama de bloques del modelo, el cual se observa
en la fig. 2.1. La implementacion en Simulink se muestra la fig. 2.2, y a
17
18
Usando Simulink
0.3
0.25
0.2
0.15
0.1
0.05
10
2.2.
Usando Simulink
19
Para conectar los bloques hay que situar el puntero del mouse sobre el
puerto de salida del primer bloque, con lo que el puntero debera cambiar a
una cruz, y arrastrar el mouse hacia el puerto de entrada del siguiente bloque.
A continuacion se detallan los bloques mas utilizados.
2.2.1.
Librera Continuos
2.2.2.
Librera Discrete
20
Usando Simulink
2.2.3.
Estas libreras son aquellas que proveen las fuentes y los sumideros de los
diagramas de bloques. Algunos de estos son:
Clock: Librera Sources. Genera el tiempo de simulacion actual.
Constant: Librera Sources. Genera una constante especificada en el parametro Constant value . Si Constant value es un vector y Interpret vector
parameters as 1-D esta arriba (on), el valor constante es tratado como
un arreglo 1-D. Sino, la salida es una matriz con las mismas dimensiones
que el valor constante.
Signal Generator: Librera Sources. Genera varias formas de onda.
Sine Wave: Librera Sources. Genera una onda sinusoidal.
Step: Librera Sources. Genera un escalon.
Display: Librera Sinks. Representacion numerica de los valores de entrada.
Scope: Librera Sinks. Representacion grafica de los valores de entrada
versus el tiempo de simulacion.
21
Stop Simulation: Librera Sinks. Detiene la simulacion cuando la entrada es distinta de cero.
To File: Librera Sinks. Escribe el tiempo y la entrada al archivo MAT
especificado en formato fila. El tiempo esta en la primera fila.
To Workspace: Librera Sinks. Escribe la salida al arreglo o estructura
especificado en el workspace principal de Matlab. Los datos no estan
disponibles hasta que la simulacion se detiene.
XY Graph : Librera Sinks. XY scope usando la ventana grafica de
Matlab. la primera entrada es usada como base temporal. Se ingresan
los rangos del grafico.
2.2.4.
Otras Libreras
Ademas de las libreras anteriormente detalladas, existen otras que proveen los siguientes bloques que son extremadamente u
tiles:
Fcn: Librera Functions & Tables. Bloque para una expresion general.
Usa u como el nombre de la variable de entrada. Ejemplo: sin(u[1]
* exp(2.3 * -u[2]))
MATLAB Fcn: Librera Functions & Tables. Pasa los valores de entrada a una funcion de Matlab para evaluarla. La funcion debe retornar
un solo argumento vectorial del largo de Output width. Ejemplos:
sin, sin(u), foo(u(1), u(2))
Polynomial: Librera Functions & Tables. Evaluacion polinomial. Calcula P(u) dado por el arreglo de coeficientes polinomiales P. P esta ordenado del mayor al menor orden, la forma aceptada por la funcion
polyval de Matlab.
S-Function: Librera Functions & Tables. Bloque definible por el usuario. Los bloques pueden estar escritos en M, C, Fortran o Ada y deben
cumplir los estandares de S-function. t,x,u y flag son automaticamente
entregados a la S-function por Simulink. Parametros Extra pueden
ser especificados en el campo S-function parameters.
Abs: Librera Math. Valor absoluto, i.e. y = |u|.
22
Usando Simulink
23
1. se
nales vectoriales a escalares o vectores mas peque
nos, o
2. se
nales tipo bus producidas por el bloques Mux en sus valores
escalares, vectoriales o matriciales constituyentes. Chequear Bus
Selection Mode para dividir se
nales tipo bus.
Mux: Librera Signals & Systems. Multiplexa se
nales escalares, vectoriales, o matriciales a un bus.
Terminator: Librera Signals & Systems. Usado para terminarse
nales
de salida. (Previene advertencias acerca puertos de salida no conectados.)
24
Usando Simulink
Ap
endice A
Funciones Comunes
A continuacion se incluyen las funciones mas utilizadas de Matlab con
una peque
na descripcion de lo que hacen.
acos: Funcion. Sintaxis acos(X). Funcion arcocoseno de X.
asin: Funcion. Sintaxis asin(X). Funcion arcoseno de X.
atan: Funcion. Sintaxis atan(X). Funcion arcotangente de X.
atan2: Funcion. Sintaxis atan(Y,X). Funcion arcotangente de Y/X. La salida
se encuentra entre y .
clear: Funcion. Sintaxis clear(A). Borra la variable A.
cos: Funcion. Sintaxis cos(X). Funcion coseno de X.
ctrb: Funcion. Sintaxis ctrb(A,B). Retorna la matriz de controlabilidad del
sistema formado por A y B.
det: Funcion. Sintaxis det(A). Calcula el determinante de la matriz A.
eig: Funcion. Sintaxis eig(A). Calcula los valores y vectores propios de la
matriz A.
eps: Variable. Precision relativa de punto flotante, 252 .
exp: Funcion. Sintaxis exp(X). Funcion exponencial de X.
expm: Funcion. Sintaxis expm(A). Calcula la matriz exponencial de A.
25
26
APENDICE
A. FUNCIONES COMUNES
27
plot: Funcion. Sintaxis plot(X,Y). Grafica Y versus X.
poly: Funcion. Sintaxis poly(A). Calcula los coeficientes del polinomio caracterstico de la matriz A.
roots: Funcion. Sintaxis roots(coef). Calcula los races del polinomio cuyos coeficientes vienen en coef.
sin: Funcion. Sintaxis sin(X). Funcion seno de X.
size: Funcion. Sintaxis size(A). Retorna las dimensiones de la matriz A.
sum: Funcion. Sintaxis sum(X). Suma los elementos del vector X.
subplot: Funcion. Sintaxis subplot(m,n,i). Genera una separacion en una
figura, dada por un arreglo de m filas y n columnas, y grafica en la
posicion i-esima del arreglo.
ss: Funcion. Sintaxis ss(A,B,C,D). Genera un modelo formulado en variables de estado.
ss2tf: Funcion. Sintaxis [num,den]=tf2ss(A,B,C,D). Convierte una representacion en variables de estado a un modelo dado por la funcion de
transferencia.
ss2zp: Funcion. Sintaxis [Z,P,K]=zp2ss(A,B,C,D). Convierte una representacion en variables de estado a un modelo en formato zpk.
std: Funcion. Sintaxis std(X). Retorna la desviacion estandar de los elementos de X.
tan: Funcion. Sintaxis tan(X). Funcion tangente de X.
tf: Funcion. Sintaxis tf(num,den). Crea una funcion de transferencia. num
son los coeficientes del numerador, que van listados en potencias decrecientes de s o z, den es analogo.
tf2ss: Funcion. Sintaxis [A,B,C,D]=tf2ss(num,den). Convierte una funcion de transferencia a una representacion en variables de estado. num
son los coeficientes del numerador, que van listados en potencias decrecientes de s o z, den es analogo.
28
APENDICE
A. FUNCIONES COMUNES
Bibliografa
[1] The Mathworks, Getting Started with Matlab
29
30
BIBLIOGRAFIA
Indice alfab
etico
\, 2
, 2
, 8
(), 5
*, 2
+, 2
-, 2
., 8
/, 2
:, 4, 5
;, 1
=, 1
[], 1, 7
, 2
double, 8
eig, 10, 25
eliminar elementos, 6
eps, 10, 25
exp, 10, 25
expm, 25
eye, 3
figure, 12
funciones, 1
help, 9, 10, 26
hold, 13
i, 10, 26
Inf, 10, 26
inv, 2, 26
acos, 25
ans, 2
arreglos, 8
asin, 25
atan, 25
atan2, 25
j, 10, 26
legend, 14
length, 10, 26
librera, 18
continuos, 19
Derivative, 19
Integrator, 19
Memory, 19
State-Space, 19
Transfer-Fcn, 19
Transport Delay, 19
char, 8
clear, 10, 12, 25
close, 12
concatenar, 7
cos, 10, 25
ctrb, 25
obsv, 26
det, 10, 25
31
INDICE ALFABETICO
32
Variable Transport Delay,
19
Zero-Pole, 19
discrete, 19
Discrete Filter, 20
Discrete State-Space, 20
Discrete Transfer-Fcn, 19
Discrete Zero-Pole, 20
Discrete-Time Integrator,
20
First-Order Hold, 20
Unit Delay, 20
Zero-Order Hold, 20
functions & tables, 21
Fcn, 21
MATLAB Fcn, 21
Polynomial, 21
S-Function, 21
math, 21
Abs, 21
Dot Product, 22
Gain, 22
Math Function, 22
Matrix Gain, 22
MinMax, 22
Product, 22
Sum, 22
Trigonometric Function, 22
signals & systems, 22
Demux, 22
Mux, 23
Terminator, 23
sinks, 20
Display, 20
Scope, 20
Stop Simulation, 21
To File, 21
To Workspace, 21
XY Graph, 21
sources, 20
Clock, 20
Constant, 20
Signal Generator, 20
Sine Wave, 20
Step, 20
log, 10, 26
log10, 26
log2, 26
logm, 26
lookfor, 10, 26
matrices, 1, 8
max, 26
mean, 9, 26
min, 26
NaN, 10, 26
ones, 3
pi, 10, 26
plot, 10, 12, 27
poly, 10, 27
roots, 10, 27
seleccionar elementos, 5
sin, 10, 27
size, 10, 27
ss, 27
ss2tf, 27
ss2zp, 27
stairs, 14
std, 27
stem, 14
subplot, 14, 27
sum, 10, 27
INDICE ALFABETICO
tan, 10, 27
tf, 27
tf2ss, 27
tf2zp, 28
var, 28
variables, 1
variables, 1
vectores, 4
zeros, 3
zp2ss, 28
zp2tf, 28
zpk, 28
33