Universidad Simón Bolívar Núcleo del Litoral Departamento de Tecnología Industrial TI-2284. Laboratorio de Sistemas de Control PRACTICA 1. INTRODUCCION A MATLAB Introducción: MatLab es una herramienta diseñada para el desarrollo de aplicaciones matemáticas y de ingeniería, basada en el cálculo matricial, su nombre es una abreviación de Matrix Laboratory, lo cual hace alusión al tipo de variable que maneja. En MatLab solo se dispone de un tipo de dato, el array o matriz rectangular de datos indexada. Esta práctica tiene como objetivo primordial el familiarizarnos con el entorno de trabajo de MatLab, así como con algunos de sus comandos. Comenzando a usar MatLab: Al ejecutar el programa, aparece la interfaz principal la cual recibe el nombre de Command Window, desde aquí es posible tener acceso a todas y cada una de las funciones de MatLab. Esta interfaz también muestra 2 apartados más, el Workspace en el cual se visualizan todas las variables que se han declarado y el Command History que almacena un histórico de los comandos que utilizan en cada sesión.
sintaxis es: El comando help permite obtener ayuda sobre un comando, su help <nombre del comando> Escriba en el Command Window: help help y verifique la información que aparece en pantalla. A continuación se describen algunos procedimientos para realizar operaciones en MatLab. 1. Introducción de matrices en MatLab: Comencemos con un ejemplo, escriba en el command window la siguiente línea: A= [1 2 3 4 5 6 7 8 9]; Esta instrucción creara un vector de 1 x 9. Los vectores, que son matrices de 1 x n, son utilizados generalmente para almacenar muestras de señales o secuencias, el punto y coma al final de la instrucción es opcional, al colocarlo se le esta indicando al MatLab que no se desea que el resultado se muestre en pantalla, pruebe lo que ocurre al introducir la misma señal sin el punto y coma. Escriba ahora la siguiente instrucción: B= A 2
Esta operación da como resultado una matriz B que es igual al transpuesto de A. Cabe mencionar, que si la matriz es compleja se obtiene la transpuesta conjugada. La matriz se escribe como: 1,2 10 15 3 5,5 2 4 6,8 7 x= [1.2 10 15; 3 5.5 2; 4 6.8 7] también puede escribirse como: x= [1.2 10 15 3 5.5 2 4 6.8 7] Esta forma de introducir las matrices es útil en aquellos casos que se escriben matrices grandes, observe que en este caso los puntos y comas son sustituidos por retornos. Los siguientes signos son utilizados en las operaciones matriciales: + Suma - Resta * Multiplicación ^ Potencia Como se indico en un principio, las matrices en MatLab son indexadas, lo que significa que es posible acceder a cada elemento de la matriz. 3
El formato para acceder a un elemento de una matriz es: matriz(fila,columna). Entonces, la instrucción x(1,2) dará como resultado 10, para la matriz declarada anteriormente. También se pueden obtener todos los elementos de una fila o columna usando : en lugar de una de las coordenadas, por ejemplo: y=x(3,:) matriz x. Creara un vector con todos los elementos de la tercera fila de la 2. Programas en MatLab: Hasta este momento hemos trabajado en el command window, esto crea variables temporales en el workspace que son borradas de la memoria al cerrar el programa. Una secuencia de instrucciones que se desee utilizar repetitivamente debería ser escrita cada vez que se requiera. Para evitar esto, es útil crear un archivo.m, en el que se puede escribir la secuencia de comandos deseada como un programa. Para crear un nuevo archivo.m haga clic en File -> New -> M-File; o cliquee el botón New M-File, el cual suele estar ubicado en la parte superior izquierda de la barra de herramientas. Ejercicio: Cree un archivo.m que dada un arreglo (Array) X la ordene de mayor a menor. El programa debe también crear un arreglo en 4
el que se indique las posiciones que originalmente ocupaba cada elemento. Finalmente debe calcular la media aritmética del arreglo X. 3. Funciones de tiempo continuo: Anteriormente se había indicado que los vectores son utilizados para almacenar muestras de señales, esto se debe a que para definir una función en MatLab, el primer paso es declarar un vector de tiempo y el segundo es declarar la función. Ejemplo: T=0.05; t=0:t:10; y=sin(t); En la segunda instrucción se crea un vector tiempo, el cual tendrá tantos elementos como sea posible a pasos de 0.05 entre 0 y 10, en este caso 200, sin embargo MatLab crea una matriz de 1x201, esto debido a que los índices de las matrices comienzan en 0 y no en 1. Luego, la siguiente instrucción crea un vector y que contiene el seno de cada instante de tiempo almacenado en el vector t. Es evidente que en este ejemplo se obtiene una señal muestreada a 20 Hz. Ahora, utilice el comando help y determine la forma en que funciona el comando plot, grafique entonces la función declarada anteriormente. Los comandos: title, xlabel, ylabel, zlabel y text, nos ayudan a identificar los graficos, por ejemplo: title( Grafico del sen(t) ). 5
Ejercicio: a) Cree un programa que permita graficar el sen(t) y el cos(t) en el mismo grafico, grafíquelos entre π y π con colores diferentes. Para esto investigue como utilizar el comando hold. b) Cree un programa en el que se grafiquen en la misma ventana pero por separado las graficas creadas anteriormente, utilice el comando subplot para esto. También utilice el comando text para identificar cada grafico. 4. Funciones de tiempo discreto: Una función de tiempo discreto f[n], es aquella que esta definida solo para instantes definidos de tiempo, por ejemplo para n=1, 2, 3, 4. Se puede considerar a f[n] como una serie de muestras que se han tomado de una función. En realidad, todas las funciones que se declaran en MatLab son funciones discretas, ya que el MatLab discretiza la señal al calcular los valores de la función para cada instante de tiempo que se ha definido, y almacenarlos en un vector, al usar la función plot para graficarlos, grafica cada punto y los une con una línea recta, de allí que la cantidad de puntos que se toman dan una mayor o menor resolución. Introduzca el siguiente programa: t=0:0.05:2*pi; n=0:0.1:2*pi; y=sin(t); z=sin(n); plot(t,y); hold on stem(n,z); grid; 6
Qué diferencia hay entre el vector z y el vector y? Ejercicio: Realice un programa que grafique de forma discreta la función Grafique en ventanas diferentes (ver ayuda de figure) 10, 50 y 100 muestras de y[n] entre 0 y 4, grafique también la función en forma continua e indique cual de las graficas discretas representan mejor la función. 7