Вы находитесь на странице: 1из 7

1

Laboratorio 1
Introduccin al MATLAB para sistemas de control 1.1.

Objetivos.Familiarizar al estudiante con el uso del programa desarrollado MATLABSimulink. Incentivar el uso de un computador como herramienta de desarrollo, anlisis y diseo.

1.2.

Fundamento terico.-

El MATLAB es una herramienta interactiva y abierta para computacin cientfica, programacin y visualizacin de datos, desarrollada por The MathWorks, Inc. Originalmente, este sistema fu escrito por Cleve Moler, en 1980, en la Universidad de Mexico, en lenguaje Fortran: El objetivo perseguido era mejorar el interfaz de usuario con la librera de subrutinas LINPACK. MATLAB es un sofisticado lenguaje de programacin desarrollado en C, basado en matrices para clculos cientficos y de ingeniera. El nombre 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. Para ello, contiene un conjunto de rutinas de propsito general que permiten modelar, analizar y simular cualquier tipo de sistema dinmico. En la actualidad, MATLAB se aplica en muchos campos de la ingeniera pues muchas libreras (toolboxes) de propsito especfico han sido desarrolladas, as por ejemplo: Control System, Comunication Toolbox, Filter Design Toolbox, 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

1.2.1.

Comandos generales.-

Algunos se indican a continuacin: help lookfor demo who what clear computer ^C exit, quit ayuda busqueda de funciones relacionadas al argumento demostraciones muestra variables en memoria lista archivos especficos de MATLAB limpia variables y funciones tipo de computadora caracteres y operadores especiales sale de MATLAB

Conforme se avance se especificaran algunas de las funciones mas importantes.

1.2.2.

Manipulacin de matrices.-

Existen diferentes formas de introducir una matriz, entre ellas, la siguiente:


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

Se crea una matriz 3x3 y la asigna a la variable A. 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 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 [1

2 2

3] *[1 2 3] = [1 3]^ 2 = [1 4 9]

9]

Para la construccin y manipulacin de matrices existen diferentes funciones que estn disponibles en MATLAB. Entre ellas: eye matriz identidad zeros ones matriz de unos inv eig valores propios poly expm matriz exponencial rank det determinante size min minimo elemento max rand matriz generada aleatoriamente trace tril triangular inferior de una matriz roots races del polinomio caracterstico triuparte triangular superior de una matriz matriz de ceros inversa polinomio caracteristico rango tamano mximo elemento traza

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

A(:,2) A(1:2,) A(2,3)

es la segunda columna de A son las dos primeras filas de A elemento de la fila 2 y columna 3 de la matriz A

Los arreglos que pueden hacerse son diversos. El estudiante experimentara en el laboratorio el resultado de ellos.

1.2.3.

Manejo de grficos.-

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, la instruccin plot(x,y) accede a la pantalla grafica y realiza un grafico plano de los elementos de x versus los elementos de y. Por ejemplo, se puede dibujar la grafica de la funcin y = sen 2 ( x ) , sobre el intervalo [-4,4] con las siguientes instrucciones:
t = 4 : 0.01 : 4 ;
y = sin(t ).^ 2 ; plot (t , y )

Las instrucciones pueden escribirse en forma horizontal separadas por el operador ; como se ha hecho en este caso o se las puede ejecutar una a una. En el ejemplo anterior, cabe notar que t es una particin del dominio con paso 0.01 mientras que y es un vector (la funcin sin es vectorial) debido a que toma los valores del seno para todos los valores de dicha particin. De ah que se utiliza el operador con arreglos (.^). 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 mantenerlo abierta la pantalla de grficos, para ello se ejecuta la instruccin hola 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 titulo, comentarios en los ejes o en cualquier otra parte con los siguientes comandos que tienen una cadena como argumento: Title Xlabel Ylabel Gtext Text Axis Gris Subplot (titulo del grafico) (comentario en el eje x) (comentario en el eje y) texto posicionado interactivamente texto posicionado mediante coordenadas permite escalar los ejes manualmente cuadriculado en el grafico 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 meshgrid. La instruccin mesh(z) crea un grafico tridimensional en perspectiva de la matriz z. La superficie de la malla esta definida por las coordenadas z de los puntos sobre un cuadriculado rectangular en el plano XY.

Para dibujar la grafica 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 )

1.2.4.

Control de flujo.-

Bsicamente, las instrucciones para el control de flujo de MATLAB operan como en la mayor parte de los lenguajes usuales. while. La forma general de un bucle while es: while end El lazo while repite un grupo de instrucciones un numero indeterminado de veces mientras la expresin sea verdadera. if. La forma general de un bucle if es: if elseif else Instrucciones end Las instrucciones se ejecutaran solo si la expresin es verdadera. Si solo se tiene dos ramificaciones se puede omitir, desde luego, la porcin correspondiente a elseif. En ambos lazos, la expresin es generalmente el resultado de utilizar los operadores relacionales: < > == & / ~ menor que mayor que igual a and or negacin lgica <= menor o igual que >= mayor o igual que ~= diferente de && and breve: // or breve xor(A,B) or exclusivo expresin Instrucciones expresin Instrucciones expresin Instrucciones

for. La forma general de un bucle for es:

5 for end El lazo for repite un grupo de instrucciones un numero predeterminado de veces definido por la particin de la variable. Por ejemplo, sea la particin i = 1 : 0.1 : 5. Significa que las instrucciones se ejecutaran mientras la variable i vari entre 1 y 5 en pasos de 0.1. switch case. La forma general de esta estructura es: switch n case 1 Instrucciones case 2 Instrucciones Otherwise Instrucciones end La estructura switch case ejecuta las instrucciones correspondientes al caso indicado por el valor asignado a switch (n), si el valor no corresponde a los especificados para cada caso, se ejecuta el grupo d instrucciones indicado en otherwise. break. Esta instruccin permite salir de un lazo while o for. variable = inicio:incrementos:fin Instrucciones

1.2.5.

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 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 MFILE Lectura y escritura interactiva de variables: disp(informacin a 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.

1.2.6.

Funciones y subfunciones.-

6 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 mas 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.

1.3.

Trabajo preparatorio.-

Leer la informacin proporcionada en la hoja gua. Se preguntara al inicio de la prctica.

1.4.

Parte Experimental.-

1.4.1. Lea el fundamento terico de esta practica de laboratorio


6 9 7 3 2 5 2 4 8 1 8 5

1.4.2. Dada las matrices : A = 1

4 3 3 B= 4 2 2 5

8 7 3 1

1).- Realiza en MATLAB las siguientes operaciones: a. Crear la matriz E1 con las dos columnas centrales de A usando el operador dos puntos. b. Crear la matriz E2 con las filas 1 y 2 y las columnas 2 y 3 de A usando dos puntos. c. crear la matriz E3 colocando E1 y B lado por lado. d.- Encuentre el producto de C2,4 y D1,2. 2).-Indique el resultado de las siguientes operaciones y que significa cada una de ellas (utilice Matlab): a. A(:,1) f. A(:,:) b. A(2,) c. A(:,2:3) d. A(:,1:2:3) e. B=[A,[ones(1,2);eye(2)]] j. diag(A)

g. A(2:4)=[ ]

h. ones(3,3)

i. eye(3)

k. zeros(size(A))

l. Rand(size(A))

m. Magic(length(A))

1.4.3. Grafique las siguientes funciones sobre un mismo grafico.

a).-

t +1 con 7 t 7 t2 + 4 Los vectores deberan tener al menos 300 puntos para su graficacin.
y (t ) = 1 sen 2 (t ) , t

z (t ) =

b).-

1 y (t ) = sen t

0.01 t 1 usar plot y fplot

Utilizando el comando subplot, grafique las funciones del numeral anterior. 1.4.4. Utilizando el comando plot, graficar la siguiente funcin en el intervalo t [0,1] con una precisin de 0.1, y valores v=5 m/s y a= - 32 m/s 2 incluir etiquetas en los ejes y un titulo en la figura. 1.4.5. Implementar una funcin: function [minimo; maximo;media; desviacion] = estadisticos(vector) que recibe como argumento de entrada una matriz "vector" de 1 fila y N columnas, y devuelve los valores mnimo y mximo, as como la media y la desviacin tpica de todas las componentes del vector. No se permite el uso de las funciones MATLAB max, min, mean y var. La implementacin tiene que basarse en expresiones condicionales y bucles. Nota: Usar la funcin MATLAB length para hallar la longitud del vector de entrada. 1.4.6. Escribir un programa que permita ingresar una palabra, y posteriormente imprima la palabra con las letras en orden inverso. Ejemplo: Se ingresa: INGENIERIA Se imprime : AIREINEGNI

1.5.

Informe.-

Realice un programa que cuente con dos opciones, la primera que permita introducir un vector de n elementos (debe preguntarse al usuario), y realice la media aritmtica y la desviacin media de los elementos. Adems debe crearse otro vector con los mismos elementos pero ordenados. La segunda opcin debe realizar una bsqueda en el vector anterior (el usuario debe ingresar el valor a buscar), pero primero debe verificarse si ya se introdujeron los elementos. En caso que exista uno o ms elementos iguales, debe tenerse como resultado el ndice del mismo. Si no existe el valor a buscar debe verse un mensaje que advierta de este suceso.

1.6.

Bibliografa.-

The Math Works Inc., Manuales de MATLAB.

Вам также может понравиться