introduccion a matlab y simulink

39
Universidad de Chile Facultad de Ciencias F´ ısicas y Matem´aticas Departamento de Ingenier´ ıa El´ ectrica Introducci ´ on a Matlab y Simulink Preparado por Diego Sep´ ulveda J. Version 1.0, 6 de agosto de 2002

Upload: mauricio-parada-zuniga

Post on 02-Jan-2016

60 views

Category:

Documents


2 download

TRANSCRIPT

Universidad de ChileFacultad de Ciencias Fısicas y MatematicasDepartamento de Ingenierıa Electrica

Introduccion a Matlab y Simulink

Preparado por Diego Sepulveda J.

Version 1.0, 6 de agosto de 2002

Introduccion

Matlab es un poderoso sistema el cual permite el tratamiento numericode una gran cantidad de aplicaciones en ingenierıa, tales como: procesamientode senales, analisis estadısticos, interpolacion de curvas, series de tiempo, si-mulacion y control de sistemas, logica difusa, redes neuronales, identificacionde parametros, etc.

El nombre Matlab se debe a que en realidad consiste en un laboratoriode matrices (Matrix laboratory), razon por la cual es excelente para elcalculo numerico de vectores y valores propios, descomposiciones de matricesy cualquier aplicacion que involucre matrices.

Ademas de lo mencionado anteriormente, Matlab tambien incluye unsubprograma llamado Simulink, el cual permite la simulacion de todo sis-tema 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 controlde sistemas.

Si el lector desea ahondar mas sobre los aspectos generales de Matlab en-tonces debera referirse a [1]

i

II

Indice general

1. Lo basico 11.1. Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1. Definicion y asignacion de variables . . . . . . . . . . . 11.1.2. Operando con matrices . . . . . . . . . . . . . . . . . . 21.1.3. Matrices especiales . . . . . . . . . . . . . . . . . . . . 31.1.4. Manipulacion de matrices . . . . . . . . . . . . . . . . 51.1.5. Arreglos . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.2. Variables y Funciones . . . . . . . . . . . . . . . . . . . . . . . 81.2.1. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . 81.2.2. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . 91.2.3. Algunas Variables y Funciones de utilidad . . . . . . . 9

1.3. Graficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3.1. Figuras . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3.2. Graficos en 2D . . . . . . . . . . . . . . . . . . . . . . 12

2. Simulink 172.1. Diagramas de Bloques . . . . . . . . . . . . . . . . . . . . . . 172.2. Usando Simulink . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.2.1. Librerıa “Continuos” . . . . . . . . . . . . . . . . . . . 192.2.2. Librerıa “Discrete” . . . . . . . . . . . . . . . . . . . . 192.2.3. Librerıas “Sources” y “Sinks” . . . . . . . . . . . . . . 202.2.4. Otras Librerıas . . . . . . . . . . . . . . . . . . . . . . 21

A. Funciones Comunes 25

iii

IV INDICE GENERAL

Capıtulo 1

Lo basico

Dado que todas las aplicaciones de Matlab se basan en el uso de matrices,

lo primordial en este capıtulo 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. Definicion y asignacion de variables

Para introducir una matriz en Matlab solo se debe introducir los nume-ros de la matriz entre parentesis cuadrados ([ ]), las columnas se separan porespacios y las filas por punto y coma (;)1. Por ejemplo:

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

A =

3 4 5

3 2 7

Como se puede ver en el ejemplo anterior las variables se asignan medianteun signo igual (=) de la misma manera que en lenguajes como JAVA o C.

1; tambien se utiliza para suprimir la visualizacion del resultado

1

Mauricio
Resaltado
Mauricio
Resaltado
Mauricio
Resaltado
Mauricio
Resaltado

2 Matrices

1.1.2. Operando con matrices

Para transponer2 matrices solo hay que poner despues de la matriz o dela variable un apostrofe (’), siguiendo con el ejemplo anterior quedarıa:

>> A’

ans =

3 3

4 2

5 7

En la variable ans mostrada en el ejemplo anterior, Matlab guarda el re-sultado de la ultima operacion ejecutada.

Las operaciones aritmeticas son igual que ne la mayorıa de los lenguajes,ası para sumar (o restar) solo hay utilizar el signo + (o -), para multiplicarse 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 6 8

7 7 13

>> D=C*A’

D =

76 80

114 126

Para potenciar una matriz se utiliza el sımbolo (ˆ), seguido del exponenteque se desea. Si se desea invertir una matriz se puede hacer de dos maneras:elevando la matriz a -1 o utilizando la funcion inv:

2En el caso de que se utilicen numeros complejos se obtiene la conjugada transpuesta3Obviamente para poder realizar estas operaciones es necesario que las dimensiones de

las matrices sean consistentes.

1.1.3 Matrices especiales 3

>> A=[2 2 ; 0 1]

A =

2 2

0 1

>> inv(A)

ans =

0.5000 -1.0000

0 1.0000

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

Operacion Sımbolo

Multiplicacion *Division por la derecha /Division por la izquierda \

Potenciacion ˆTransposicion conjugada ’

Cuadro 1.1: Operadores para algebra matricial

1.1.3. Matrices especiales

Dado que existen matrices que son muy utilizadas en la practica Mat-

lab incluye funciones especıficas 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 numerode filas y posteriormente el numero de columnas; como muestra el siguienteejemplo:

4 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

0 0 0 0 0

>> C=eye(3)

C =

1 0 0

0 1 0

0 0 1

>> C=eye(3,4)

C =

1 0 0 0

0 1 0 0

0 0 1 0

Notese que si se desea la matriz identidad de orden n solo hay que introducirn, pero si se desea una rectangular se utiliza igual que las funciones anteriores.

Otro tipo de matrices comunmente utilizadas son los vectores, los cuales sepueden definir como cualquier matriz. La importancia radica en que muchasveces se utilizan para indexar alguna serie de elementos, para definirlos deesta manera se utiliza (:), de la siguiente manera:

1.1.4 Manipulacion de matrices 5

numero inicial:paso:cota superior

Por ejemplo:

>> 1:4:19

ans =

1 5 9 13 17

1.1.4. Manipulacion de matrices

Una aplicacion de uso frecuente consiste en seleccionar algunas columnas,filas o simplemente elementos de alguna matriz; esto se logra con la utilizacionde parentesis despues del nombre del nombre de la variable y de dos puntos(:). A continuacion se muestran algunos ejemplos para la matriz definidaanteriormente:

>> A(1,1)

ans =

2

>> A(:,1)

ans =

2

0

>> A(2,:)

ans =

0 1

>> A(4)

6 Matrices

ans =

1

En el primer ejemplo se obtiene el elemento a11 de la matriz, en el segundoejemplo la primera columna, el tercer ejemplo se obtiene la segunda fila,y para el ultimo ejemplo se obtiene el cuarto elemento de la matriz. Lanumeracion del ultimo ejemplo es por columnas (ası a11 es 1◦, a21 es 2◦, a12

es 3◦, a22 es 4◦).Ademas de seleccionar elementos, muchas veces es util eliminar algun(os)

elemento(s) de la matriz4, para lograr lo anterior se utilizan un par de parente-sis cuadrados. Ası, por ejemplo, si se desea borrar la segunda columna de unamatriz dada:

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

>> A(:,2)=[ ]

A =

1 6

3 8

5 9

3 9

Es importante notar que tanto la seleccion como la eliminacion de elementosde una matriz se puede realizar utilizando un vector como conjunto ındicesa utilizar. Por ejemplo:

>> A=0:1:10

A =

0 1 2 3 4 5 6 7 8 9 10

>> indice=1:2:11

indice =

4Sin embargo, solo se puede hacer si la estructura resultante sigue siendo una matriz

1.1.5 Arreglos 7

1 3 5 7 9 11

>> B=A(indice)

B =

0 2 4 6 8 10

obtiene los numeros que estan en las posiciones impares del vector A.Muchas veces es util concatenar matrices, lo cual se puede utilizar utili-

zando los parentesis cuadrados ([ ]). Por ejemplo para concatenar horizontal-mente:

>> B=[1 2 3; 4 5 6];

>> C=[1 ; 2];

>> [B C]

ans =

1 2 3 1

4 5 6 2

y para concatenar verticalmente:

>> B=1:1:4;

>> C=4:-1:1;

>> [B ; C]

ans =

1 2 3 4

4 3 2 1

Obviamente las dimensiones de las matrices deben ser consistentes con laconcatenacion.

1.1.5. Arreglos

Los arreglos son matrices, pero poseen una aritmetica distinta en cuan-to a la multiplicacion y division. Estas operaciones se ejecutan elemento a

8 Variables y Funciones

elemento, y para que sean consistentes los arreglos deben ser de las mismasdimensiones.

Para diferenciar las operaciones matriciales de las operaciones de arregloslos operadores van precedidos por un punto (.), como se muestra en el cuadro1.2.

Operacion Sımbolo

Multiplicacion .*Division por la derecha ./Division por la izquierda .\

Potenciacion .ˆTransposicion no conjugada .’

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.3333 2.0000

1.7500 4.0000 0

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

aij∀ i, j.

1.2. Variables y Funciones

1.2.1. Variables

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 (’’):

1.2.2 Funciones 9

>> Z=’hola’

Z =

hola

1.2.2. Funciones

Las funciones son, al igual que en la mayorıa de los lenguajes, subrutinasque facilitan el trabajo, por ejemplo la funcion mean calcula el promedio omedia 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 algu-nas incluidas en el programa (built-in functions) y otras viene dentro de losdistintos toolboxes que trae Matlab (por ejemplo mean).

Generalmente las funciones vienen con alguna ayuda de su utilizacion, lacual 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 estasvariables se muestran en el cuadro 1.3, mientras que algunas funciones masutilizadas aparecen en el cuadro 1.4.

Si se aplica alguna de las funciones matematicas a alguna matriz se ob-tiene 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 Descripcion

pi El numero mas famoso del mundoi Unidad imaginariaj Lo mismo que i, pero para los electricos

Inf InfinitoNaN No es un numeroeps Precision relativa de punto flotante, 2−52

Cuadro 1.3: Variables Predefinidas

Nombre Descripcion

sin(X) Funcion seno de Xcos(X) Funcion coseno de Xtan(X) Funcion tangente de Xexp(X) Funcion exponencial de Xlog(X) Funcion logaritmo natural de X

plot(X,Y) Grafica Y versus Xclear(A) Borra la variable Adet(A) Calcula el determinante de la matriz Aeig(A) Calcula los valores y vectores propios de la matriz

A

poly(A) Calcula los coeficientes del polinomio caracterısticode la matriz A

roots(coef) Calcula los raıces del polinomio cuyos coeficientesvienen en coef

sum(X) Suma los elementos del vector Xlength(X) Retorna el largo del vector Xsize(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 stringpalabra

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 11

Columns 8 through 11

0.4966 0.4493 0.4066 0.3679

12 Graficos

1.3. Graficos

Para graficar en Matlab fundamentalmente se utiliza la funcion plot

mencionada anteriormente, sin embargo tambien es posible graficar en formaescalonada, utilizando solo lıneas verticales, utilzando numeros complejos oen 3D, entre muchas maneras de graficar. A continuacion se detallan las masutilizadas y los comandos mas utiles relacionados.

1.3.1. Figuras

Una figura es una ventana en la cual se desplegan los graficos obtenidosmediante Matlab. Esto presenta varias ventajas las cuales se mostraran masadelante.

Aunque, generalmente, las figuras se generan por defecto al crear un grafi-co, a veces es necesario pedir otra figura a Matlab, para esto se utiliza elcomando figure, el cual genera otra figura en la pantalla. El modo de utili-zarlo es:

>> figure

Si se desea cerrar alguna figura se utiliza la funcion close, seguida delnumero 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. Graficos en 2D

Como se menciona anteriormente se utiliza la funcion plot, tal como semuestra 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 columnasde la matriz, dependiendo de con cual se alinee.

5De manera analoga clear all borra todas las variables

1.3.2 Graficos en 2D 13

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Figura 1.1: Ejemplo de plot

Ademas plot tiene mas opciones las cuales se pueden ver en la ayuda dela funcion.

Una forma de graficar comunmente usada es aquella en la cual se encuen-tran dos graficas en la misma figura . Lo anterior se puede lograr de variasmaneras, 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 otraopcion la cual consiste en utilizar la funcion hold que retiene el grafico actualy 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 parasoltar la figura.

14 Graficos

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

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 laleyenda, 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 ele-mentos del vector X deben ser equiespaciados.

Si se quiere graficar senales de tiempo discreto se puede utilizar la funcionstem(X,Y), cuyo uso es analogo a las funciones anteriores.

Muchas veces es muy util agrupar varios graficos en una misma figura, locual se consigue facilmente con la funcion subplot(m,n,i), la cual divide lafigura en una matriz de m×n y el grafico se agrega en el elemento i-esimo.Ademas, tiene la ventaja de agregar graficas que ocupen distinto tamano enla figura resultante. Por ejemplo, las siguientes instrucciones:

>> X=-pi:0.1:pi;

>> subplot(3,2,1)

1.3.2 Graficos en 2D 15

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

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 tıtulos, formatear los ejes, poner textos

en cualquier parte de la figura, nombrar el eje x y el eje y, utilizar grilla, etc.La mayorıa de las funciones anteriores aparece en la ayuda de la funcionplot.

No hay que olvidar que todas las instrucciones anteriores pueden combi-narse, para producir las figuras que uno desea.

16 Graficos

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1exponencialseno

Figura 1.4: Ejemplo de legend

−4 −2 0 2 4−1

−0.5

0

0.5

1

−4 −2 0 2 4−1

−0.5

0

0.5

1

−4 −3 −2 −1 0 1 2 3 4−2

−1

0

1

2

−4 −3 −2 −1 0 1 2 3 4−1

−0.5

0

0.5

1

Figura 1.5: Ejemplo de subplot

Capıtulo 2

Simulink

Simulink es un sistema interactivo para simular sistemas dinamicos no-

lineales. 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 tra-ducir una ecuacion diferencial o de diferencias a un diagrama de bloques. Porejemplo 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 observaen 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 cualse aprecia en la fig. 2.3.

0 1 2 3 4 5 6 7 8 9 100

0.05

0.1

0.15

0.2

0.25

0.3

0.35

Figura 2.3: Respuesta del sistema dinamico

2.2. Usando Simulink

Para utilizar Simulink solo es necesario construir el diagrama de bloquesmediante los bloques predefinidos que vienen en la librerıa.

El uso de los bloques es bastante sencillo, solo hay que arrastrar el iconodel bloque al modelo que se esta construyendo. Si se desean cambiar losparametros de los bloques solo hay que hacer un doble click sobre su icono.

2.2.1 Librerıa “Continuos” 19

Para conectar los bloques hay que situar el puntero del mouse sobre elpuerto de salida del primer bloque, con lo que el puntero deberıa cambiar auna cruz, y arrastrar el mouse hacia el puerto de entrada del siguiente bloque.

A continuacion se detallan los bloques mas utilizados.

2.2.1. Librerıa “Continuos”

En esta librerıa se encuentran todos los bloques de tiempo continuo parasistemas lineales, los cuales son:

Derivative: Derivada numerica de la senal de entrada.

Integrator: Integra la senal de entrada.

Memory: Retrasa la senal en un tiempo de integracion.

State-Space: Representacion en variables de estado.

Transfer-Fcn: Representacion en funcion de transferencia. Expresion ma-tricial para el numerador, expresion vectorial para el denominador. Elancho de la salida debe ser igual al numero de filas del numerador. Loscoeficientes son potencias descendentes de s.

Transport Delay: Aplica el retraso especificado a la senal de entrada.

Variable Transport Delay: Aplica un retraso a la primera senal de entra-da. La segunda entrada especifica el retardo.

Zero-Pole: Representacion en polos y ceros. Expresion matricial para losceros. Expresion vectorial para los polos y la ganancia. El ancho de lasalida debe igualar el numero de columnas de la matriz de ceros, o unosi los ceros son un vector.

2.2.2. Librerıa “Discrete”

Esencialmente es identica a la anterior, pero para sistemas lineales detiempo discreto, i.e. para ecuaciones de diferencias. Los bloques son:

Discrete Transfer-Fcn: Funcion de transferencia discreta, analogo al casocontinuo.

20 Usando Simulink

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

Discrete Filter: Filtro discreto. Expresion vectorial para el numerador y eldenominador. Los coeficientes son para potencias ascendentes de z−1.

Discrete State-Space: Representacion en variables de estado de tiempodiscreto.

Discrete-Time Integrator: Integracion en tiempo discreto de la senal deentrada.

First-Order Hold: Retenedor de primer orden.

Unit Delay: Muestrea y retiene con un perıodo de muestreo de retraso.

Zero-Order Hold: Retenedor de orden cero.

2.2.3. Librerıas “Sources” y “Sinks”

Estas librerıas son aquellas que proveen las fuentes y los sumideros de losdiagramas de bloques. Algunos de estos son:

Clock: Librerıa “Sources”. Genera el tiempo de simulacion actual.

Constant: Librerıa “Sources”. Genera una constante especificada en el parame-tro ‘Constant value’ . Si ’Constant value’ es un vector y ’Interpret vectorparameters as 1-D’ esta arriba (on), el valor constante es tratado comoun arreglo 1-D. Sino, la salida es una matriz con las mismas dimensionesque el valor constante.

Signal Generator: Librerıa “Sources”. Genera varias formas de onda.

Sine Wave: Librerıa “Sources”. Genera una onda sinusoidal.

Step: Librerıa “Sources”. Genera un escalon.

Display: Librerıa “Sinks”. Representacion numerica de los valores de en-trada.

Scope: Librerıa “Sinks”. Representacion grafica de los valores de entradaversus el tiempo de simulacion.

2.2.4 Otras Librerıas 21

Stop Simulation: Librerıa “Sinks”. Detiene la simulacion cuando la en-trada es distinta de cero.

To File: Librerıa “Sinks”. Escribe el tiempo y la entrada al archivo MATespecificado en formato fila. El tiempo esta en la primera fila.

To Workspace: Librerıa “Sinks”. Escribe la salida al arreglo o estructuraespecificado en el workspace principal de Matlab. Los datos no estandisponibles hasta que la simulacion se detiene.

XY Graph : Librerıa “Sinks”. XY scope usando la ventana grafica deMatlab. la primera entrada es usada como base temporal. Se ingresanlos rangos del grafico.

2.2.4. Otras Librerıas

Ademas de las librerıas anteriormente detalladas, existen otras que pro-veen los siguientes bloques que son extremadamente utiles:

Fcn: Librerıa “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: Librerıa “Functions & Tables”. Pasa los valores de entra-da a una funcion de Matlab para evaluarla. La funcion debe retornarun solo argumento vectorial del largo de ‘Output width’. Ejemplos:sin, sin(u), foo(u(1), u(2))

Polynomial: Librerıa “Functions & Tables”. Evaluacion polinomial. Cal-cula P(u) dado por el arreglo de coeficientes polinomiales P. P esta or-denado del mayor al menor orden, la forma aceptada por la funcionpolyval de Matlab.

S-Function: Librerıa “Functions & Tables”. Bloque definible por el usua-rio. Los bloques pueden estar escritos en M, C, Fortran o Ada y debencumplir los estandares de S-function. t,x,u y flag son automaticamenteentregados a la S-function por Simulink. Parametros “Extra” puedenser especificados en el campo ‘S-function parameters’.

Abs: Librerıa “Math”. Valor absoluto, i.e. y = |u|.

22 Usando Simulink

Dot Product: Librerıa “Math”. Producto interno (punto). y = sum(conj(

u1).*u2)

Gain: Librerıa “Math”. Ganancia elemento a elemento (y = K.*u) o ga-nancia matricial (y = K*u o y = u*K).

Math Function: Librerıa “Math”. Funciones matematicas incluyendo fun-ciones logarıtmicas, exponencial, potenciacion, y modulo.

Matrix Gain: Librerıa “Math”. Ganancia elemento a elemento (y = K.*u)o ganancia matricial (y = K*u o y = u*K).

MinMax: Librerıa “Math”. La salida es el mınimo o maximo de la entrada.Para una sola entrada, los operadores se aplican a traves del vector deentrada. Para multiples entradas, los operadores se aplican a traves delas entradas.

Product: Librerıa “Math”. Multiplica o divide las entradas. Especificaruna de las dos opciones siguientes:

1. * o / para cada puerto de entrada (ej., **/*)

2. Un escalar especificando el numero de puertos de entrada a sermultiplicados.

El valor escalar ‘1’ para producto elemento a elemento causa quetodos los elementos de un solo vector de entrada sean multiplica-dos.

Sum: Librerıa “Math”. Suma o substrae las entradas. Especificar una delas dos opciones siguientes:

1. Un string conteniendo + o - para cada puerto de entrada, | paraespacio entre los puertos (ej. ++|-|++)

2. Un escalar ≥ 1. Un valor ¿1 suma todas las entradas; 1 suma loselementos de una solo vector de entrada.

Trigonometric Function: Librerıa “Math”. Funciones trigonometricas ehiperbolicas.

Demux: Librerıa “Signals & Systems”. Divide:

2.2.4 Otras Librerıas 23

1. senales vectoriales a escalares o vectores mas pequenos, o

2. senales tipo bus producidas por el bloques Mux en sus valoresescalares, vectoriales o matriciales constituyentes. Chequear ‘BusSelection Mode’ para dividir senales tipo bus.

Mux: Librerıa “Signals & Systems”. Multiplexa senales escalares, vectoria-les, o matriciales a un bus.

Terminator: Librerıa “Signals & Systems”. Usado para “terminar”senalesde salida. (Previene advertencias acerca puertos de salida no conecta-dos.)

24 Usando Simulink

Apendice A

Funciones Comunes

A continuacion se incluyen las funciones mas utilizadas de Matlab conuna pequena 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 salidase 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 delsistema 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 lamatriz A.

eps: Variable. Precision relativa de punto flotante, 2−52.

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

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 lafuncion inversa de expm(A).

log10: Funcion. Sintaxis log10(X). Funcion logaritmo ordinario (en base10) de X.

log2: Funcion. Sintaxis log2(X). Funcion logaritmo en base 2 de X.

lookfor: Funcion. Sintaxis lookfor(string). Retorna las funciones en lasque aparece la palabra string en la ayuda de dicha funcion.

max: Funcion. Sintaxis [Y,I]=max(X). Retorna el elemento mas grande deX en Y, y el ındice en que se encuentra en I.

mean: Funcion. Sintaxis mean(X). Retorna el valor medio o promedio de loselementos de X.

min: Funcion. Sintaxis [Y,I]=max(X). Retorna el elemento mas pequeno deX en Y, y el ındice en que se encuentra en I.

NaN: Variable. No es un numero, usualmente aparece cuando hay una di-vision del tipo 0/0.

obsv: Funcion. Sintaxis obsv(A,C). Retorna la matriz de observabilidad delsistema formado por A y C.

pi: Variable. El numero 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 ca-racterıstico de la matriz A.

roots: Funcion. Sintaxis roots(coef). Calcula los raıces del polinomio cu-yos 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 unafigura, dada por un arreglo de m filas y n columnas, y grafica en laposicion i-esima del arreglo.

ss: Funcion. Sintaxis ss(A,B,C,D). Genera un modelo formulado en varia-bles de estado.

ss2tf: Funcion. Sintaxis [num,den]=tf2ss(A,B,C,D). Convierte una repre-sentacion en variables de estado a un modelo dado por la funcion detransferencia.

ss2zp: Funcion. Sintaxis [Z,P,K]=zp2ss(A,B,C,D). Convierte una repre-sentacion en variables de estado a un modelo en formato zpk.

std: Funcion. Sintaxis std(X). Retorna la desviacion estandar de los ele-mentos de X.

tan: Funcion. Sintaxis tan(X). Funcion tangente de X.

tf: Funcion. Sintaxis tf(num,den). Crea una funcion de transferencia. numson los coeficientes del numerador, que van listados en potencias decre-cientes de s o z, den es analogo.

tf2ss: Funcion. Sintaxis [A,B,C,D]=tf2ss(num,den). Convierte una fun-cion de transferencia a una representacion en variables de estado. numson los coeficientes del numerador, que van listados en potencias decre-cientes de s o z, den es analogo.

28 APENDICE A. FUNCIONES COMUNES

tf2zp: Funcion. Sintaxis [Z,P,K]=tf2zp(num,den). Convierte una funcionde transferencia a una representacion zpk. num son los coeficientes delnumerador, que van listados en potencias decrecientes de s o z, den esanalogo.

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 ceros-polos-ganancia (zpk).

zp2ss: Funcion. Sintaxis [A,B,C,D]=zp2ss(Z,P,K). Convierte un modeloen formato zpk a una representacion en variables de estado.

zp2tf: Funcion. Sintaxis [num,den]=zp2tf(Z,P,K). Convierte una repre-sentacion zpk a una funcion de transferencia.

Bibliografıa

[1] The Mathworks, “Getting Started with Matlab”

29

30 BIBLIOGRAFIA

Indice alfabetico

\, 2’, 2”, 8(), 5*, 2+, 2-, 2., 8/, 2:, 4, 5;, 1=, 1[], 1, 7ˆ, 2

acos, 25ans, 2arreglos, 8asin, 25atan, 25atan2, 25

char, 8clear, 10, 12, 25close, 12concatenar, 7cos, 10, 25ctrb, 25obsv, 26

det, 10, 25

double, 8

eig, 10, 25eliminar elementos, 6eps, 10, 25exp, 10, 25expm, 25eye, 3

figure, 12funciones, 1

help, 9, 10, 26hold, 13

i, 10, 26Inf, 10, 26inv, 2, 26

j, 10, 26

legend, 14length, 10, 26librerıa, 18

continuos, 19Derivative, 19Integrator, 19Memory, 19State-Space, 19Transfer-Fcn, 19Transport Delay, 19

31

32 INDICE ALFABETICO

Variable Transport Delay,19

Zero-Pole, 19discrete, 19Discrete Filter, 20Discrete State-Space, 20Discrete Transfer-Fcn, 19Discrete Zero-Pole, 20Discrete-Time Integrator,20

First-Order Hold, 20Unit Delay, 20Zero-Order Hold, 20

functions & tables, 21Fcn, 21MATLAB Fcn, 21Polynomial, 21S-Function, 21

math, 21Abs, 21Dot Product, 22Gain, 22Math Function, 22Matrix Gain, 22MinMax, 22Product, 22Sum, 22Trigonometric Function, 22

signals & systems, 22Demux, 22Mux, 23Terminator, 23

sinks, 20Display, 20Scope, 20Stop Simulation, 21To File, 21To Workspace, 21

XY Graph, 21sources, 20Clock, 20Constant, 20Signal Generator, 20Sine Wave, 20Step, 20

log, 10, 26log10, 26log2, 26logm, 26lookfor, 10, 26

matrices, 1, 8max, 26mean, 9, 26min, 26

NaN, 10, 26

ones, 3

pi, 10, 26plot, 10, 12, 27poly, 10, 27

roots, 10, 27

seleccionar elementos, 5sin, 10, 27size, 10, 27ss, 27ss2tf, 27ss2zp, 27stairs, 14std, 27stem, 14subplot, 14, 27sum, 10, 27

INDICE ALFABETICO 33

tan, 10, 27tf, 27tf2ss, 27tf2zp, 28

var, 28variables, 1variables, 1vectores, 4

zeros, 3zp2ss, 28zp2tf, 28zpk, 28