Está en la página 1de 10

DEPARTAMENTO DE AUTOMATIZACION Y CONTROL INDUSTRIAL - DACI LABORATORIO DE SISTEMAS DE CONTROL AUTOMATICO

PRACTICA N 1 INTRODUCCION A MATLAB Y SIMULINK


OBJETIVOS Familiarizar al estudiante con el uso del programa desarrollado por MathWorks Inc., denominado PC-MATLAB y con el toolbox denominado SIMULINK que sirve para la simulacin de sistemas. Incentivar en el estudiante el uso de un computador personal como herramienta de anlisis y diseo.

FUNDAMENTO TEORICO MATLAB es un sofisticado lenguaje de programacin codificado en C, basado en matrices para clculos cientficos y de ingeniera. El nombre MATLAB es una abreviatura para MATrix LABoratory. MATLAB trabaja esencialmente con matrices numricas rectangulares (que pueden tener elementos complejos), lo cual implica el uso de vectores fila o columna. Por esta razn este paquete tiene una proyeccin hacia el control moderno (descrito a variables de estado) y es til para ilustrar las relaciones existentes entre las tcnicas clsicas y modernas de anlisis mediante un conjunto de rutinas de propsito general que permiten modelar, analizar y simular cualquier tipo de sistema dinmico. MATLAB contiene libreras (Toolboxes) de propsito especfico, as por ejemplo: Sistemas de Control, Procesamiento de Seales, Optimizacin, Identificacin de Sistemas, Lgica Fuzzy, Redes Neuronales, etc. MATLAB es un sistema abierto ya que el usuario puede editar sus propias funciones especficas, las mismas que son guardadas a manera de macros o programas denominados archivos.m porque son almacenados en las bibliotecas de MATLAB mediante archivos ASCII con la extensin .m COMANDOS GENERALES MATLAB posee un conjunto sumamente extenso de funciones agrupadas por reas. El comando help permite disponer de mayor informacin acerca de estas funciones. Cuando se desea ayuda en lnea de un comando en particular se escribe: help comando. Algunos de los comandos generales de MATLAB se indican a continuacin: help demo who what clear computer ayuda demostraciones muestra variables en memoria lista archivos especficos de MATLAB limpia variables y funciones tipo de computadora

DEPARTAMENTO DE AUTOMATIZACION Y CONTROL INDUSTRIAL - DACI LABORATORIO DE SISTEMAS DE CONTROL AUTOMATICO ^C exit, quit caracteres y operadores especiales salida de MATLAB

MANIPULACION DE MATRICES Existen diferentes formas de introducir una matriz en MATLAB. Entre ellas, la siguiente: A = [1 2 3; 4 5 6; 7 8 9] Se asigna a la variable A una matriz 3x3

Los elementos en una fila de una matriz pueden separarse tanto por comas como por espacios en blanco. Las operaciones que se pueden realizar con matrices son: (+) adicin, (-) sustraccin, (*) multiplicacin, (^) potenciacin, () transpuesta, (\) divisin izquierda A\B es equivalente a inv(A)*B y (/) divisin derecha A/B es equivalente a A*inv(B). Estas operaciones para matrices se aplican tambin a escalares (matrices 1x1). Si los tamaos de las matrices son incompatibles para la operacin matricial se obtiene un mensaje de error. Se puede adems efectuar operaciones con arreglos (elemento por elemento). Para ello, las operaciones *, ^, \, y /, deben ser precedidas por un punto. Por ejemplo, tanto [1 2 3].* [1 2 3] como [1 2 3].^2 darn [1 4 9]. Para la construccin y manipulacin de matrices existen diferentes funciones que estn disponibles en MATLAB. Entre ellas: Eye ones eig expm det min rand roots triu matriz identidad matriz de unos. valores propios matriz exponencial determinante mnimo elemento matriz generada aleatoriamente zeros matriz de ceros inv poly inversa polinomio caracterstico

Rank rango size max tril tamao mximo elemento parte triangular inferior de una matriz

races del polinomio caracterstico trace traza parte triangular superior de una matriz

Para generar vectores y submatrices se usa la notacin de dos puntos. Su uso adecuado hace que las instrucciones sean ms simples y legibles. Por ejemplo, observe el resultado de las siguientes expresiones: 1:3 1 : 0.5 : 3 A(:,2) genera un vector fila [1 2 3] genera un vector de 1 a 3 con pasos de 0.5, es decir [1 1.5 2 2.5 3] es la segunda columna de A

DEPARTAMENTO DE AUTOMATIZACION Y CONTROL INDUSTRIAL - DACI LABORATORIO DE SISTEMAS DE CONTROL AUTOMATICO A(1:2,:) A(2,3) son las dos primeras filas de A elemento de la fila 2 y columna 3 de la matriz A.

MANEJO DE GRAFICOS MATLAB puede generar grficos planos y grficos de malla de superficies tridimensionales. Para el manejo de grficos planos, la instruccin plot crea grficos en el plano XY; si x e y son vectores de la misma longitud, realiza un grfico plano de los elementos de x versus los elementos de y. Por ejemplo, se puede dibujar la grfica de la funcin y =sen2(x), sobre el intervalo [-4,4] con las siguientes instrucciones: t = -4 : 0.01 : 4; y = sin(t).^2; plot(t,y) De lo anterior se tiene que t es un vector que inicia en -4 y termina en 4 en pasos de 0.01. Las instrucciones pueden tambin escribirse una por una. Diferentes funciones pueden dibujarse sobre una misma figura; para ello basta definir cada funcin con nombre diferente y ejecutar la instruccin; ej: plot (t, y1, t, y2) otra forma es manteniendo abierta la pantalla de grficos, para ello se ejecuta la instruccin hold como se muestra en el siguiente set de instrucciones plot(t,y1) ; hold ; plot(t,y2) para salir de la pantalla de grficos se ejecuta hold nuevamente. Puede ponerse ttulo, comentarios en los ejes o en cualquier otra parte con los siguientes comandos que tienen una cadena como argumento: title(ttulo del grfico) xlabel (comentario en el eje x) ylabel (comentario en el eje y) gtext texto posicionado interactivamente text texto posicionado mediante coordenadas axis permite escalar los ejes manualmente grid cuadriculado en el grfico subplot permite dividir la pantalla para visualizar varios grficos a la vez Para el caso de los grficos en tres dimensiones, Matlab emplea las funciones mesh y meshgrid. La instruccin mesh(z) crea un grfico tridimensional en perspectiva de la matiz z. La superficie de la malla est definida por las coordenadas z de los puntos sobre un cuadriculado rectangular en el plano XY. Para dibujar la grfica de una funcin z = f(x,y)sobre un rectngulo, se define en primer lugar los vectores xx e yy .Un ejemplo de este tipo de grficos puede verse al ejecutar las siguientes instrucciones. [X,Y] = meshgrid(-8:0.5:8); R = sqrt(X .2 + Y .2) + eps; Z = sin( R ) . /R; mesh(X,Y,Z)

DEPARTAMENTO DE AUTOMATIZACION Y CONTROL INDUSTRIAL - DACI LABORATORIO DE SISTEMAS DE CONTROL AUTOMATICO

SCRIPT Matlab permite colocar rdenes en un simple archivo de texto y, a continuacin, decirle a matlab que lo abra y evale las rdenes exactamente como si hubiesen sido escritas desde la lnea de orden de Matlab. Estos archivos se llaman archivos script o archivos-M, y deben finalizar con la extensin 'm'. Para crear un archivo .m en Matlab, se debe dirigir a FILE, NEW, y finalmente M-FILE Lectura y escritura interactiva de variables: disp(informacina mostrar); Permite imprimir en pantalla un mensaje de texto o el valor de una matriz var=input(mensaje de ingreso de datos); Imprime un mensaje en la lnea de comandos de MATLAB y recupera como valor de retorno un valor numrico o el resultado de una expresin tecleada por el usuario. FUNCIONES Y SUBFUNCIONES Las funciones permiten definir funciones enteramente anlogas a las de MATLAB, con su nombre, sus argumentos y sus valores de retorno. Los ficheros *.m que definen funciones permiten extender las posibilidades de MATLAB; de hecho existen bibliotecas de ficheros *.m que se venden (toolkits) o se distribuyen gratuitamente (a travs de Internet). Las funciones definidas en ficheros *.m se caracterizan porque la primera lnea (que no sea un comentario) comienza por la palabra function, seguida por los valores de retorno (entre corchetes [ ] y separados por comas, si hay ms de uno), el signo igual (=) y el nombre de la funcin, seguido de los argumentos (entre parntesis y separados por comas). function [lista de valores de retorno] = name (lista de argumentos) Nota: name es el nombre de la funcin dentro del archivo name.m La lista de valores de retorno y/o argumentos pueden no ir. Ejemplo: Realizar una funcin que halle el valor mximo y el valor mnimo de un vector de Cualquier longitud. SIMULINK Simulink es un entorno grfico para modelacin y simulacin de sistemas. Las diferentes bibliotecas que posee, permiten construir funciones y realizar el anlisis del modelo de una manera sencilla empleando simulacin. Para invocar a Simulink, basta teclear en la pantalla de comandos: >> simulink A breves rasgos Simulink permite: Dibujar elementos y conexiones en una ventana grfica. Las conexiones indican el recorrido de las seales de un elemento a otra. Los elementos se los extrae de la biblioteca del propio Simulink, e inclusive se pueden crear nuevos elementos.

DEPARTAMENTO DE AUTOMATIZACION Y CONTROL INDUSTRIAL - DACI LABORATORIO DE SISTEMAS DE CONTROL AUTOMATICO Los resultados se obtienen como salida de algunos elementos, pudindose almacenar, ver grficamente, etc. Los datos o seales de entrada pueden obtenerse de salidas de variables especiales, del disco o de variables utilizadas en MATLAB. Al abrir el toolbox Simulink se abre la pantalla de bloques que usa para su funcionamiento, entre ellos tenemos: Continuos: integradores, derivadores, funcin de transferencia, retardo de transporte, memorias, etc. Discretos: funciones de transferencia discretas, filtros digitales, ZOH, espacio de estado discreto, etc. Matemtica: sumadores, ganancias, funciones trigonomtricas, matrices, etc. Fuentes: escaln unitario, seno, ruido blanco, variables desde un archivo .mat, generadores de seales, etc. No-lineales: switches, relees, etc. Seales y Sistemas: entradas y salidas; multiplexores y demultiplexores para varias entradas y/o salidas y para vectores. Salidas: displays, osciloscopios, salidas a archivos .mat, o al espacio de trabajo.

Figura 1

Librerias de Simulink

DEPARTAMENTO DE AUTOMATIZACION Y CONTROL INDUSTRIAL - DACI LABORATORIO DE SISTEMAS DE CONTROL AUTOMATICO Para analizar un modelo de cualquier tipo, se empieza creando un archivo nuevo tipo model (elegir opcin desde File...New), y se abren los distintos grupos de funciones a utilizar simplemente arrastrando con el mouse, al rea de trabajo, los bloques deseados. Luego se procede a conectarlos por medio de un click sostenido uniendo sus entradas y salidas. Despus se configuran los parmetros de cada bloque segn el modelo y los parmetros con los que se trabajar en el men de simulacin, como: el tiempo de inicio, tiempo de finalizacin; tipo de algoritmo de integracin, etc. Finalmente, se inicia (start) la simulacin. El progreso de la simulacin se puede observar en la pantalla mientras sta corre y al final, los resultados se pueden guardar en el espacio de trabajo de MATLAB creando archivos .mat de la misma manera para guardar la informacin y posteriormente analizarla o imprimirla. Parmetros de Simulacin (Configuration Parameters) Existen diversos parmetros de la simulacin que se pueden modificar, el primero de ellos es el tiempo de simulacin (por omisin 10 seg.) se entra en el men simulacin en el submen de parmetros (Parameters). Con ello aparece una ventana como la mostrada en la figura 2. Otras opciones a conocer son: Tiempo inicial (por omisin 0 seg.) Tiempo final (por omisin 10 seg.) o tiempo de simulacin Opciones de la integracin numrica Tipo: puede ser de paso fijo o variable Mtodo: vara desde el ms sencillo Euler (paso fijo) a otros ms sofisticados como Dormand-Price.

DEPARTAMENTO DE AUTOMATIZACION Y CONTROL INDUSTRIAL - DACI LABORATORIO DE SISTEMAS DE CONTROL AUTOMATICO

Figura 2

Parmetros de Simulacin

Un ejemplo sencillo de la utilizacin de este paquete se muestra a continuacin: Funcin de transferencia en lazo abierto; () = 2 + 1 + 3 + 5

La respuesta paso en lazo abierto, puede determinarse implementando el diagrama mostrado en la figura 3.

Figura 3

Respuesta paso en lazo abierto

De igual forma, la figura 4 muestra el diagrama necesario para determinar la respuesta paso en lazo cerrado (realimentacin unitaria).

DEPARTAMENTO DE AUTOMATIZACION Y CONTROL INDUSTRIAL - DACI LABORATORIO DE SISTEMAS DE CONTROL AUTOMATICO

Figura 4

Respuesta paso en lazo cerrado

Simulink es por lo tanto, una herramienta muy til para la modelacin y simulacin de modelos ya sean continuos o discretos, multivariables y no lineales entre otros, ya que dispone de una serie de ayudas de programacin para casos ms complejos. Los diagramas de Simulink no pueden ser usados para modelos de Respuesta de Frecuencia (FRD) matrices LTI. Relacin entre SIMULINK y Workspace de MATLAB Es posible utilizar los datos generados en SIMULINK en el workspace de MATLAB, para ellos existen bloques especficos: FromWorkspace To Workspace % Para traer datos % Para enviar datos

Cuando se requiere obtener datos a partir del Workspace, siempre es necesario definir una matriz de dos dimensiones, en donde estarn el tiempo y los datos asociados.

TRABAJO PREPARATORIO 1. Leer la informacin proporcionada en la hoja gua. 2. Consultar los tipos de datos con los que trabaja MATLAB. 3. Considere el siguiente circuito:

3.1. Determine la ecuacin diferencial que caracteriza al sistema 3.2. Determine la funcin de transferencia del sistema (Vo/Vin) 4. Consultar acerca de los scripts de Matlab, Archivo .m

DEPARTAMENTO DE AUTOMATIZACION Y CONTROL INDUSTRIAL - DACI LABORATORIO DE SISTEMAS DE CONTROL AUTOMATICO TRABAJO EXPERIMENTAL 1. Considere la siguiente matriz

11 = [21 31

12 22 32

13 23] 33

2. Indique el resultado de las siguientes operaciones y que significa cada una de ellas (utilice Matlab): a. A(:,1) b. A(3,:) c. A(:,2:3) d. A(:,1:2:3) e. B=[A,[ones(1,2);eye(2)]] f. A(:,:) g. A(2:4)=[] h. ones(3,3) i. eye(3) j. diag(A) k. zeros(size(A)) l. rand(size(A)) m. magic(length(A)) 3. Grafique las siguientes funciones sobre un mismo grfico. 3 2 2 () + 3 () = 3 + 2 () = Los vectores deberan tener al menos 250 puntos para su graficacin. Rango de vector t debe estar entre 6 6 4. Utilizando el comando subplot, grafique las funciones del numeral anterior. Grafique la rbita de Mercurio (x vs. y) alrededor de la tierra. La rbita de Mercurio est dada por las siguientes ecuaciones:

x(t) = 93cos t + 36cos 4.15t ,

y(t) = 93sen t + 36sen(4.15t)

Genere tanto x(t) e y(t) como funciones de Matlab y la variable independiente t desde 0 hasta 44/3 en intervalos de /360.Incluya etiquetas en los ejes, ttulo del grfico, etc. 5. Implemente los siguientes diagramas de bloques y determine la respuesta en cada uno de ellos: a)

b)

DEPARTAMENTO DE AUTOMATIZACION Y CONTROL INDUSTRIAL - DACI LABORATORIO DE SISTEMAS DE CONTROL AUTOMATICO

c)

d)

10