Professional Documents
Culture Documents
Matlab y Simulink
T abla de contenido
1. 2. 3. INTRODUCCIN ......................................................................................................................... 3 FUNCIONES MATEMTICAS COMUNES ............................................................................ 4 CARACTERSTICAS DE LA VENTANA DE COMANDOS ................................................... 5
3.1. CMOUTILIZARELWORKSPACE........................................................................................................ 5 3.2. FORMATOSDENMEROS .................................................................................................................. 5 4. 5. M-FILES ........................................................................................................................................ 5 OPERACIONES CON VECTORES ........................................................................................... 6
5.1. DEFINICINDEMATRICESY VECTORES ................................................................................................ 6 5.2. FUNCIONESPARACLCULOSCONPOLINOMIOS.................................................................................... 8 6. REPRESENTACIONES GRFICAS ........................................................................................ 9 6.1. LAFUNCINPLOT............................................................................................................................ 9 6.2. ESTILOSDELNEA,MARCASYCOLORES .............................................................................................. 10 6.3. FIJARREJILLAS,EJES,YETIQUETAS....................................................................................................... 10 7. 8. 9. 9.1. 9.2. 9.3. 9.4. 9.5. 10. TOOLBOX DE CONTROL ........................................................................................................ 10 AYUDA ......................................................................................................................................... 11 SIMULINK .................................................................................................................................. 12 INTRODUCCIN............................................................................................................................. 12 LIBRERADEBLOQUES..................................................................................................................... 12 CONSTRUCCINDEUNMODELO...................................................................................................... 13 PARMETROSDESIMULACIN......................................................................................................... 14 INICIOYFINALIZACINDELASIMULACIN ........................................................................................ 15 OBSERVACIONES ................................................................................................................. 15 7.1. REPRESENTACINDEUNSISTEMA..................................................................................................... 10 8.1. ELCOMANDOHELP........................................................................................................................ 12
1. Introduccin
MATLAB es el nombre abreviado de MATrix LABoratory. MATLAB es un programa para realizar clculos numricos con vectores y matrices. Como caso particular puede tambin trabajar con nmeros escalares -tanto reales como complejos. Una de las capacidades ms atractivas es la de realizar una amplia variedad de grficos en dos y tres dimensiones. MATLAB tiene tambin un lenguaje de programacin propio. Este es un gran programa de clculo tcnico y cientfico. Para ciertas operaciones es muy rpido. En otras aplicaciones resulta bastante ms lento que el cdigo equivalente desarrollado en C/C++ o Fortran. Sin embargo, siempre es una magnfica herramienta de alto nivel para desarrollar aplicaciones tcnicas, fcil de utilizar. Podemos decir as que Matlab es una aplicacin destinada a clculos matemticos, si bien dispone de ciertas funciones destinadas a temas ms especficos. MATLAB dispone de un conjunto bsico de herramientas y de varias libreras especializadas (toolboxes) como por ejemplo los Toolboxes de comunicaciones, estadstica, control (este, facilita el estudio de sistemas dinmicos y su regulacin) entre otros. Adems, existe un complemento de MATLAB llamado SIMULINK, que permite al usuario un enfoque ms grfico de los sistemas de control. La parte ms importante de la ventana inicial es la Command Window, que aparece en la parte derecha. En esta sub-ventana es donde se ejecutan los comandos de MATLAB, la forma de trabajar con MATLAB es al estilo de cualquier calculador:
4*2 [Pulsamos enter] ans = 8
Acabamos de crear tres variables, cuyo valor se guardar en memoria. En las dos primeras sentencias se incluye un punto y coma al final, con lo que el resultado no aparecer por pantalla. El nombre que elijamos para nuestras variables tiene algunas restricciones: no pueden tener un espacio intermedio, se distinguen maysculas de minsculas, y deben empezar por una letra. Si queremos ver las variables que tenemos definidas, teclearemos el comando who:
who Your variables are: iva precio precio_total
(el programa no nos avisar de que esa variable ya existe) . Para borrar todas las variables, existe el comando clear: Tecleando clear iva borrara esta variable, pero si escribimos slo clear, borrar todo lo que hay en memoria; por desgracia, una vez eliminadas, las variables no se pueden recuperar.
Podemos recuperar cualquier instruccin escrita previamente pulsando la tecla del cursor . Para detener la ejecucin de cualquier instruccin, hay que pulsar la combinacin de teclas Ctrl+C.
Es recomendable trabajar con atan2 en vez de atan, pues si la parte real del nmero complejo es negativa, el ngulo quedar en el segundo o tercer cuadrante. Por ejemplo:
180/pi*atan(-2/3) ans = -33.6901 180/pi*atan(2/-3) ans = -33.6901 180/pi*atan2(-2,3) ans = -33.6901 180/pi*atan2(2,-3) ans = 146.3099
Para la funcin atan los nmeros complejos -2+3j y 2-3j tienen la misma fase; atan2, sin embargo, nos da el ngulo correcto. Se ha multiplicado por 180/pi para obtener el resultado en grados (La constante pi viene definida por defecto en MATLAB Para definir un nmero complejo, se puede usar i o j como unidad imaginaria indistintamente:
c1=-1+2j c1 = -1.0000 + 2.0000i c1=-1+2i c1 = -1.0000 + 2.0000i
Para que deje de grabar la sesin teclearamos diary off. Tambin se puede guardar nicamente el valor de algunas variables:
save c:\dinamica\datos x y
Aqu no es necesario aadir la extensin, y MATLAB crear el fichero con extensin .mat. Las variables x e y han de estar previamente definidas. Para recuperar las variables guardadas teclearemos:
load datos
4. M-files
Cuando realizamos clculos simples, es habitual escribir las instrucciones en la ventana de comandos. Sin embargo, cuando se van a realizar una serie de operaciones ms complicadas y de forma repetitiva, se utilizan los llamados M-Files, estos son ficheros de texto donde tecleamos las instrucciones de MATLAB.
5
Para crear un nuevo archivo M, hacemos clic en File\New\M-File; nos aparecer una ventana en blanco para editar el archivo. Por ejemplo:
% Mi primer programa en MATLAB A1=2; A2=10; A=A1*A2; if(A==20) disp(el producto es 20) else disp(el producto no es 20) end
Una vez guardado el archivo (con el nombre primer.m, por ejemplo), nos bastar teclear su nombre en MATLAB, y se ejecutar directamente:
primer el producto es 20
Supongamos que queremos que este programa sirva no slo para los nmeros A1 y A2. Para ello, bastar con borrar las dos primeras lneas del programa anterior. Ahora tendremos que definir antes el valor de A1 y A2 (si no, MATLAB nos dar un mensaje de error diciendo que las variables A1 y A2 no existen):
A1=2; A2=10; primer el producto es 20
es 20) no es 20)
Las matrices se definen por filas; los elementos de una misma fila estn separados por blancos o comas, mientras que las filas estn separadas por pulsaciones intro o por caracteres punto y coma (;). Por ejemplo, el siguiente comando define una matriz A de dimensin (3x3):
>> A=[1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9
Para definir vectores, por ejemplo, si se quiere hallar el valor de cos (t) para 0 < t <0.5pi. Como es imposible hallar todos los valores (hay infinitos puntos), debemos definir una serie de valores de x. Si tomamos 6 puntos, definiremos t de la forma:
t=[0 0.1*pi 0.2*pi 0.3*pi 0.4*pi 0.5*pi] t = 0 0.3142 0.6283 0.9425 1.2566 1.5708
Tal como hemos visto, para crear un vector fila es necesario escribir entre corchetes los elementos, separados por un espacio o una coma Si ahora escribimos cos (t), hallaremos el coseno de todos los valores de t:
y=cos(t) y = 1.0000 0.9511
0.8090
0.5878
0.3090
0.0000
Para manejar un nico elemento del vector, por ejemplo coseno(0.4*pi), nos referiremos a l como el elemento 5 del vector y:
y(5) ans = 0.3090
Si queremos utilizar los 3 primeros elementos, escribiremos y(1:3), o para tomar del elemento 2 al ltimo teclearemos y(2:end). En caso de querer representar la funcin coseno(t), necesitaramos bastantes ms de 5 elementos para obtener una grfica aceptable. Escribir 200 elementos resultara bastante tedioso. Como era de suponer, existe una forma automtica de crear un vector. La instruccin es: x= (valor_inicial:incremento:valor_final). Por ejemplo:
>> t=[-2*pi:0.01*pi:2*pi]; >> y=cos(t); >> plot(t,y) % la primer instruccin crea un vector t con valor inicial t=-2*pi y valor % final 2*pi, y la diferencia entre elementos consecutivos es 0.01*pi.
Es muy recomendable escribir el "; " al final de la sentencia, para que no aparezca cada uno de los elementos del vector en la pantalla. Las diferentes formas de crear un vector aparecen resumidas en la siguiente tabla: T = [2 2*pi sqrt(2) -3j] Crea un vector con los elementos espeficados
7
Crea un vector empezando en primero, incrementando una unidad en cada elemento, acabando en el elemento ultimo En este caso, el incremento no es 1 sino que es fijado por nosotros Crea un vector empezando en primero, acabando en ultimo, con n elementos Crea un vector logartmico
De igual manera, se pueden crear matrices, escribiendo un "; " para indicar que es una fila distinta:
x 2 2 x= [2 3;2 5] = 3 5
Cuando definimos la matriz A est quedo disponible para hacer con ella cualquier tipo de operacin (adems de valores numricos, en la definicin de una matriz o vector se pueden utilizar expresiones y funciones matemticas). Por ejemplo, una sencilla operacin con A es hallar su matriz transpuesta. En MATLAB el apstrofo (') es el smbolo de transposicin matricial. Para calcular A' (transpuesta de A) se teclea lo siguiente:
>> B=A' B = 1 4 7 2 5 8 3 6 9
Las funciones exist() e isempty() permiten chequear si una variable existe y si est vaca.
-6
Si se desea calcular producto entre polinomios se puede utilizar la funcin conv() (de producto de convolucin).
>> polA=[1 -2 3]; >> polB=[3 -5]; >> polC=conv(polA,polB) polC = 3 -11 19 -15
6. Representaciones grficas
6.1. La funcin plot
Para representar grficos en dos dimensiones, es habitual utilizar el comando plot(eje x, eje y). Por ejemplo, si quisisemos representar la funcin coseno:
t=[-2*pi:0.01*pi:2*pi]; y = cos(t); plot (t,y)
Si esto ha sido bien ingresado debera aparecernos una ventana con la figura:
Esta grfica se puede ampliar, reducir, cambiar su color y copiar para utilizarla en otro documento. Si ya tenamos abierta una ventana Figure, al usar plot, desaparecer la grfica anterior sin previo aviso. Para evitarlo, se debe agregar el comando figure para generar una nueva ventana. Tambin es posible dibujar ms de una grfica en una ventana, escribiendo plot(eje x1, eje y1, eje x2, eje y2,...);
Tambin podemos dividir la ventana en varias partes con el comando subplot (m,n,i). La ventana Figure se dividir en una matriz de m por n pequeas ventanas, y se seleccionar la ventana i-sima. Por ejemplo:
>> >> >> >> t=[-2*pi:0.01*pi:2*pi]; y=cos(t); z=sin(t); subplot(2,1,1),plot(t,y),subplot(2,1,2),plot(t,z)
Se puede tomar valores de una grfica con la instruccin ginput. Una vez tecleado ginput, nos aparecer la ventana Figure, y con el ratn haremos clic en el punto que queramos conocer. Despus pulsaremos enter y el valor de las coordenadas del punto aparecer en la ventana de comandos de MATLAB.
7. Toolbox de control
7.1. Representacin de un sistema
El primer problema que se nos plantea es la definicin de un sistema. Los sistemas se suelen expresar en forma de funcin de transferencia. sta se puede expresar como cociente de polinomios, con la
10
instruccin tf: escribiremos entre corchetes los coeficientes de numerador y denominador (en sentido descendente de las potencias de la variable s).
>> n=[1 2]; >> d=[1 5 2]; >> G=tf(n,d) Transfer function: s + 2 ------------s^2 + 5 s + 2
Donde k no es la ganancia esttica, sino la que se obtiene al expresar la funcin de transferencia en forma de polos y ceros. Tambin se puede obtener la descomposicin en fracciones simples:
>> [r, p, k] = residue (num,den) r = 0.6213 0.3787 p = -4.5616 -0.4384 k = []
El coeficiente k representa el trmino independiente, que valdr 0 siempre que el orden del numerador sea inferior al del denominador. Es decir, F(s) tambin se puede expresar como:
0.6213 0.3787 F(s) = ------------ + -----------s + 4.5616 s + 0.4384
8. Ayuda
Existen demasiados comandos en MATLAB para poder recordarlos a todos. Para facilitarnos el trabajo, se ha creado un archivo de ayuda al cual podemos recurrir en todo momento.
11
As el comando help nos da una pequea descripcin de la funcin que estamos ingresando, y tambin puede mostrar una serie de comandos relacionados Aunque en la ayuda aparezca la funcin en maysculas, al usarla hemos de escribirla en minscula, ya que sino Matlab no la reconocer y nos dar error Si no conocemos en concreto el nombre de la funcin, podemos usar el comando lookfor:
lookfor complex
Este nos mostrar todas las funciones relacionadas con nmeros complejos. Tambin es til el comando demo, que nos mostrar una pantalla con demostraciones de todas las posibilidades que ofrece MATLAB.
9. Simulink
9.1. Introduccin
Simulink es una extensin de MATLAB para la simulacin de sistemas dinmicos. Al ser un entorno grfico, resulta bastante sencillo de utilizar. Para ejecutar Simulink, podemos teclear simulink desde MATLAB, o bien hacer clic en el icono correspondiente, en la barra de herramientas de MATLAB. Una vez que hemos realizado el paso anterior aparecern una ventana con las libreras de Simulink, y de all se puede crear un nuevo modelo yendo archivo/nuevo.
12
Para agregar componentes a nuestro modelo esto se deben arrastrar desde la librera de bloques hacia el nuestra ventana del modelo. Se debe notar que los bloques que se van agregando a nuestro modelo tienen entradas y/o salidas de seal, y se refieren respectivamente al argumento y resultado de la funcin. En consecuencia para armar un sistema se debern conectar salidas con entradas usando lneas. Para unir bloques, se deber
13
presionar el botn izquierdo del mouse sobre la salida de un bloque, y manteniendo el botn presionado, arrastrarlo hasta la entrada de otro bloque. Para sacar una derivacin de una lnea ya existente se debe colocar el puntero sobre la lnea y cuando el puntero se transforme en una cruz y presionando el botn derecho del ratn, y mantenindolo presionado, arrastrarlo hasta el destino final o intermedio. No es necesario finalizar la lnea inmediatamente. Se puede trazar un segmento, soltar el botn del ratn, y continuar ms adelante (una vez iniciada la derivacin, el siguiente segmento se deber continuar usando el botn izquierdo). Una vez que se ha agregado un bloque al modelo, se puede usar el men Format para cambiar su aspecto. A continuacin se muestra una tabla con una breve descripcin de algunos elementos del men Format (Algunos comandos de ste men se aplican a el o los bloques seleccionados mientras que otros se aplican a todo el modelo): Comando Font... Flip name Hide name Flip block Rotate block Show drop shadow Background color Foreground color Wide vector lines Signal dimension Descripcin Para cambiar la tipografa y tamao de las leyendas. Cambia la posicin de la leyenda del bloque. Oculta la leyenda del bloque. Voltea (horizontalmente) el bloque. Se puede ejecutar ste comando con la combinacin de teclas Ctrl+I. Rota el bloque. Se puede ejecutar ste comando con la combinacin de teclas Ctrl+R. Agrega sombra al bloque. Cambia el color de fondo del bloque. Cambia el color de las lneas, texto y figuras del bloque. Muestra las lneas vectoriales con mayor grosor que los escalares. (El nombre de este comando cambia entre la versin 5.3 y 6) Muestra la dimensin de las lneas. Uno si es escalar y la dimensin del vector si es vectorial.
14
Descripcin Tiempo inicial de la simulacin en segundos Tiempo final de la simulacin en segundos (este es por ejemplo el que mostrar el osciloscopio por defecto) Aqu se selecciona el mtodo numrico a usar para resolver las ecuaciones diferenciales. Pueden ser de paso fijo o paso variable. Y se pueden seleccionar varios mtodos para cada opcin anterior. Si no se sabe que seleccionar use las opciones por defecto. Para mayores detalles, leer la ayuda correspondiente. Puede ser "auto" o un valor en segundos. Este valor limita el mayor paso de integracin usado por el mtodo numrico. Debe ser menor que la menor constante de tiempo del sistema simulado.
10. Observaciones
Este trabajo esta basado en diferentes manuales y apuntes sobre el uso de Matlab y simulink, se recomienda en caso de querer una mayor profundizacin de los temas utilizar manuales ms avanzados y no olvidar la potencialidad de la muy buen help de matlab.
15