You are on page 1of 39

Universidad de Chile

Facultad de Ciencias Fsicas y Matematicas


Departamento de Ingeniera Electrica

n a Matlab y Simulink
Introduccio

Preparado por Diego Sep


ulveda J.
Version 1.0, 6 de agosto de 2002

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

Para introducir una matriz en Matlab solo se debe introducir los n


umeros de la matriz entre parentesis cuadrados ([ ]), las columnas se separan por
espacios y las filas por punto y coma (;)1 . Por ejemplo:
>> A=[3 4 5 ; 3 2 7]
A =
3
3

4
2

5
7

Como se puede ver en el ejemplo anterior las variables se asignan mediante


un signo igual (=) de la misma manera que en lenguajes como JAVA o C.
1

; tambien se utiliza para suprimir la visualizacion del resultado

Matrices

1.1.2.

Operando con matrices

Para transponer2 matrices solo hay que poner despues de la matriz o de


la variable un apostrofe (), siguiendo con el ejemplo anterior quedara:
>> A
ans =
3
4
5

3
2
7

En la variable ans mostrada en el ejemplo anterior, Matlab guarda el resultado de la u


ltima operacion ejecutada.
Las operaciones aritmeticas son igual que ne la mayora de los lenguajes,
as para sumar (o restar) solo hay utilizar el signo + (o -), para multiplicar
se utiliza el asterisco (*) y para dividir por la derecha (izquierda) se utiliza
(/ (\)). 3 Por ejemplo:
>> B=[1 2 3; 4 5 6];
>> C=A+B
C =
4
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

En el caso de que se utilicen n


umeros complejos se obtiene la conjugada transpuesta
Obviamente para poder realizar estas operaciones es necesario que las dimensiones de
las matrices sean consistentes.
3

1.1.3 Matrices especiales

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

2
1

>> inv(A)
ans =
0.5000
0

-1.0000
1.0000

En el cuadro 1.1 se muestra un resumen de los operadores matriciales.


Operacion
Multiplicacion
Division por la derecha
Division por la izquierda
Potenciacion
Transposicion conjugada

Smbolo
*
/
\

Cuadro 1.1: Operadores para algebra matricial

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

Una aplicacion de uso frecuente consiste en seleccionar algunas columnas,


filas o simplemente elementos de alguna matriz; esto se logra con la utilizacion
de parentesis despues del nombre del nombre de la variable y de dos puntos
(:). A continuacion se muestran algunos ejemplos para la matriz definida
anteriormente:
>> A(1,1)
ans =
2
>> A(:,1)
ans =
2
0
>> A(2,:)
ans =
0
>> A(4)

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

Es importante notar que tanto la seleccion como la eliminacion de elementos


de una matriz se puede realizar utilizando un vector como conjunto ndices
a utilizar. Por ejemplo:
>> A=0:1:10
A =
0

>> 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

y para concatenar verticalmente:


>> B=1:1:4;
>> C=4:-1:1;
>> [B ; C]
ans =
1
4

2
3

3
2

4
1

Obviamente las dimensiones de las matrices deben ser consistentes con la


concatenacion.

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
.*
./
.\
.
.

Cuadro 1.2: Operadores para algebra de arreglos


Por ejemplo:
>> A=[1 3 4; 4 2 6];
>> B=[3 4 8; 7 8 0];
>> A.\B
ans =
3.0000
1.7500

1.3333
4.0000

2.0000
0

corresponde a la division de arreglos por la izquierda de A por B, i.e.

1.2.

Variables y Funciones

1.2.1.

Variables

bij
aij

Existen varios tipos de variables en Matlab, las mas comunes son:


double corresponden a las matrices y arreglos numericos.
char son los arreglos de caracteres, se definen entre apostrofes ():

i, j.

1.2.2 Funciones

>> Z=hola
Z =
hola

1.2.2.

Funciones

Las funciones son, al igual que en la mayora de los lenguajes, subrutinas


que facilitan el trabajo, por ejemplo la funcion mean calcula el promedio o
media de un set de datos:
>> A=1:1:4;
>> mean(A)
ans =
2.5000
Lo importante con respecto a las funciones en Matlab es que vienen algunas incluidas en el programa (built-in functions) y otras viene dentro de los
distintos toolboxes que trae Matlab (por ejemplo mean).
Generalmente las funciones vienen con alguna ayuda de su utilizacion, la
cual se puede visualizar a traves de la funcion help.

1.2.3.

Algunas Variables y Funciones de utilidad

Matlab trae muchas variables y funciones predefinidas, algunas de estas


variables se muestran en el cuadro 1.3, mientras que algunas funciones mas
utilizadas aparecen en el cuadro 1.4.
Si se aplica alguna de las funciones matematicas a alguna matriz se obtiene una matriz en la que los elementos han sido evaluados por la funcion.
Por ejemplo:
>> X=0:0.1:1;
>> exp(-X)
ans =

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

1.2.3 Algunas Variables y Funciones de utilidad


Columns 8 through 11
0.4966

0.4493

0.4066

0.3679

11

12

Gr
aficos

1.3.

Gr
aficos

Para graficar en Matlab fundamentalmente se utiliza la funcion plot


mencionada anteriormente, sin embargo tambien es posible graficar en forma
escalonada, utilizando solo lneas verticales, utilzando n
umeros complejos o
en 3D, entre muchas maneras de graficar. A continuacion se detallan las mas
utilizadas y los comandos mas u
tiles relacionados.

1.3.1.

Figuras

Una figura es una ventana en la cual se desplegan los graficos obtenidos


mediante Matlab. Esto presenta varias ventajas las cuales se mostraran mas
adelante.
Aunque, generalmente, las figuras se generan por defecto al crear un grafico, a veces es necesario pedir otra figura a Matlab, para esto se utiliza el
comando figure, el cual genera otra figura en la pantalla. El modo de utilizarlo es:
>> figure
Si se desea cerrar alguna figura se utiliza la funcion close, seguida del
n
umero de la figura. Si se quiere cerrar todas las figuras entonces se ejecuta:
>> close all
lo cual cierra todas las figuras existentes5 .

1.3.2.

Gr
aficos en 2D

Como se menciona anteriormente se utiliza la funcion plot, tal como se


muestra en el siguiente ejemplo:
>> t=0:0.1:5;
>> plot(t,exp(-t))
lo cual produce como resultado la fig. 1.1.
Para que plot funcione ambos vectores deben tener el mismo largo. Si X
o Y es una matriz entonces el vector es graficado versus las filas o columnas
de la matriz, dependiendo de con cual se alinee.
5

De manera analoga clear all borra todas las variables

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

Figura 1.1: Ejemplo de plot


Ademas plot tiene mas opciones las cuales se pueden ver en la ayuda de
la funcion.
Una forma de graficar com
unmente usada es aquella en la cual se encuentran dos graficas en la misma figura . Lo anterior se puede lograr de varias
maneras, dos de ellas son:
>> plot(t,exp(-t),t,sin(t))
>> plot(t,[exp(-t); sin(t)])
las cuales producen el mismo resultado (fig. 1.2). Sin embargo, hay otra
opcion la cual consiste en utilizar la funcion hold que retiene el grafico actual
y agrega el grafico deseado a la figura actual. Para el ejemplo anterior:
>>
>>
>>
>>

plot(t,exp(-t))
hold on
plot(t,sin(t))
hold off

cuyo resultado se muestra en la fig. 1.3. La utilizacion de hold off es para


soltar la figura.

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

Figura 1.2: Dos graficas en la misma figura


Para crear una leyenda de las graficas se utiliza la funcionlegend(string1,
string2, ...), donde los string i son los textos de cada grafico para la
leyenda, as para el ejemplo anterior, la instruccion:
>> legend(exponencial, seno)
produce la fig. 1.4.
Tambien es posible graficar en escalonada utilizando la funcion stairs(X,Y)
de manera analoga al uso de la funcion plot, con la diferencia que los elementos del vector X deben ser equiespaciados.
Si se quiere graficar se
nales de tiempo discreto se puede utilizar la funcion
stem(X,Y), cuyo uso es analogo a las funciones anteriores.
Muchas veces es muy u
til agrupar varios graficos en una misma figura, lo
cual se consigue facilmente con la funcion subplot(m,n,i), la cual divide la
figura en una matriz de mn y el grafico se agrega en el elemento i-esimo.
Ademas, tiene la ventaja de agregar graficas que ocupen distinto tama
no en
la figura resultante. Por ejemplo, las siguientes instrucciones:
>> X=-pi:0.1:pi;
>> subplot(3,2,1)

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

Figura 1.3: Ejemplo de hold


>>
>>
>>
>>
>>
>>
>>

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)]);

generan como resultado la fig. 1.5.


Tambien hay funciones para poner ttulos, formatear los ejes, poner textos
en cualquier parte de la figura, nombrar el eje x y el eje y, utilizar grilla, etc.
La mayora de las funciones anteriores aparece en la ayuda de la funcion
plot.
No hay que olvidar que todas las instrucciones anteriores pueden combinarse, para producir las figuras que uno desea.

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

Figura 1.4: Ejemplo de legend


1

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

Figura 1.5: Ejemplo de subplot

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

Figura 2.1: Diagrama de Bloques

17

18

Usando Simulink

Figura 2.2: Implementacion en Simulink


traves de esta se obtiene la respuesta del sistema descrito por (2.1), la cual
se aprecia en la fig. 2.3.
0.35

0.3

0.25

0.2

0.15

0.1

0.05

10

Figura 2.3: Respuesta del sistema dinamico

2.2.

Usando Simulink

Para utilizar Simulink solo es necesario construir el diagrama de bloques


mediante los bloques predefinidos que vienen en la librera.
El uso de los bloques es bastante sencillo, solo hay que arrastrar el icono
del bloque al modelo que se esta construyendo. Si se desean cambiar los
parametros de los bloques solo hay que hacer un doble click sobre su icono.

2.2.1 Librera Continuos

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

En esta librera se encuentran todos los bloques de tiempo continuo para


sistemas lineales, los cuales son:
Derivative: Derivada numerica de la se
nal de entrada.
Integrator: Integra la se
nal de entrada.
Memory: Retrasa la se
nal en un tiempo de integracion.
State-Space: Representacion en variables de estado.
Transfer-Fcn: Representacion en funcion de transferencia. Expresion matricial para el numerador, expresion vectorial para el denominador. El
ancho de la salida debe ser igual al n
umero de filas del numerador. Los
coeficientes son potencias descendentes de s.
Transport Delay: Aplica el retraso especificado a la se
nal de entrada.
Variable Transport Delay: Aplica un retraso a la primera se
nal de entrada. La segunda entrada especifica el retardo.
Zero-Pole: Representacion en polos y ceros. Expresion matricial para los
ceros. Expresion vectorial para los polos y la ganancia. El ancho de la
salida debe igualar el n
umero de columnas de la matriz de ceros, o uno
si los ceros son un vector.

2.2.2.

Librera Discrete

Esencialmente es identica a la anterior, pero para sistemas lineales de


tiempo discreto, i.e. para ecuaciones de diferencias. Los bloques son:
Discrete Transfer-Fcn: Funcion de transferencia discreta, analogo al caso
continuo.

20

Usando Simulink

Discrete Zero-Pole: Representacion discreta en polos y ceros. Idem al caso


continuo.
Discrete Filter: Filtro discreto. Expresion vectorial para el numerador y el
denominador. Los coeficientes son para potencias ascendentes de z1 .
Discrete State-Space: Representacion en variables de estado de tiempo
discreto.
Discrete-Time Integrator: Integracion en tiempo discreto de la se
nal de
entrada.
First-Order Hold: Retenedor de primer orden.
Unit Delay: Muestrea y retiene con un perodo de muestreo de retraso.
Zero-Order Hold: Retenedor de orden cero.

2.2.3.

Libreras Sources y Sinks

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.

2.2.4 Otras Libreras

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

Dot Product: Librera Math. Producto interno (punto). y = sum(conj(


u1).*u2)
Gain: Librera Math. Ganancia elemento a elemento (y = K.*u) o ganancia matricial (y = K*u o y = u*K).
Math Function: Librera Math. Funciones matematicas incluyendo funciones logartmicas, exponencial, potenciacion, y modulo.
Matrix Gain: Librera Math. Ganancia elemento a elemento (y = K.*u)
o ganancia matricial (y = K*u o y = u*K).
MinMax: Librera Math. La salida es el mnimo o maximo de la entrada.
Para una sola entrada, los operadores se aplican a traves del vector de
entrada. Para m
ultiples entradas, los operadores se aplican a traves de
las entradas.
Product: Librera Math. Multiplica o divide las entradas. Especificar
una de las dos opciones siguientes:
1. * o / para cada puerto de entrada (ej., **/*)
2. Un escalar especificando el n
umero de puertos de entrada a ser
multiplicados.
El valor escalar 1 para producto elemento a elemento causa que
todos los elementos de un solo vector de entrada sean multiplicados.
Sum: Librera Math. Suma o substrae las entradas. Especificar una de
las dos opciones siguientes:
1. Un string conteniendo + o - para cada puerto de entrada, | para
espacio entre los puertos (ej. ++|-|++)
2. Un escalar 1. Un valor 1 suma todas las entradas; 1 suma los
elementos de una solo vector de entrada.
Trigonometric Function: Librera Math. Funciones trigonometricas e
hiperbolicas.
Demux: Librera Signals & Systems. Divide:

2.2.4 Otras Libreras

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

help: Funcion. Sintaxis help function. Entrega ayuda sobre la funcion


function.
i: Variable. Unidad imaginaria.
inv: Funcion. Sintaxis inv(A). Retorna la matriz inversa de A.
Inf: Variable. Infinito.
j: Variable. Lo mismo que i, pero para los electricos.
length: Funcion. Sintaxis length(X). Retorna el largo del vector X.
log: Funcion. Sintaxis log(X). Funcion logaritmo natural de X.
logm: Funcion. Sintaxis logm(A). Logaritmo natural matricial de A. Es la
funcion inversa de expm(A).
log10: Funcion. Sintaxis log10(X). Funcion logaritmo ordinario (en base
10) de X.
log2: Funcion. Sintaxis log2(X). Funcion logaritmo en base 2 de X.
lookfor: Funcion. Sintaxis lookfor(string). Retorna las funciones en las
que aparece la palabra string en la ayuda de dicha funcion.
max: Funcion. Sintaxis [Y,I]=max(X). Retorna el elemento mas grande de
X en Y, y el ndice en que se encuentra en I.
mean: Funcion. Sintaxis mean(X). Retorna el valor medio o promedio de los
elementos de X.
min: Funcion. Sintaxis [Y,I]=max(X). Retorna el elemento mas peque
no de
X en Y, y el ndice en que se encuentra en I.
NaN: Variable. No es un n
umero, usualmente aparece cuando hay una division del tipo 0/0.
obsv: Funcion. Sintaxis obsv(A,C). Retorna la matriz de observabilidad del
sistema formado por A y C.
pi: Variable. El n
umero mas famoso del mundo.

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

tf2zp: Funcion. Sintaxis [Z,P,K]=tf2zp(num,den). Convierte una funcion


de transferencia a una representacion zpk. num son los coeficientes del
numerador, que van listados en potencias decrecientes de s o z, den es
analogo.
var: Funcion. Sintaxis var(X). Retorna la varianza de los elementos de X.
zpk: Funcion. Sintaxis zpk(Z,P,K). Genera un modelo en el formato cerospolos-ganancia (zpk).
zp2ss: Funcion. Sintaxis [A,B,C,D]=zp2ss(Z,P,K). Convierte un modelo
en formato zpk a una representacion en variables de estado.
zp2tf: Funcion. Sintaxis [num,den]=zp2tf(Z,P,K). Convierte una representacion zpk a una funcion de transferencia.

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

You might also like