8
1 Laboratorio 1 Introducción al MATLAB para sistemas de control 1.1. Objetivos.- Conocer el uso del programa desarrollado MATLAB-Simulink. Incentivar el uso de un computador como herramienta de desarrollo, análisis y diseño. 1.2. Fundamento teórico.- El MATLAB® es una herramienta interactiva y abierta para computación científica, programación y visualización 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 librería de subrutinas LINPACK. MATLAB es un sofisticado lenguaje de programación desarrollado en C, basado en matrices para cálculos científicos y de ingeniería. El nombre es una abreviatura para MATrix LABoratory. MATLAB trabaja esencialmente con matrices numéricas rectangulares (que pueden tener elementos complejos), lo cual implica el uso de vectores fila o columna. Por esta razón este paquete tiene una proyección hacia el control moderno (descrito a variables de estado) y es útil para ilustrar las relaciones existentes entre las técnicas clásicas y modernas de análisis. Para ello, contiene un conjunto de rutinas de propósito general que permiten modelar, analizar y simular cualquier tipo de sistema dinámico. En la actualidad, MATLAB se aplica en muchos campos de la ingeniería pues muchas librerías (toolboxes) de propósito específico 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 específicas, 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 extensión “.m” _ La programación es mucho más sencilla _ Hay continuidad entre valores enteros, reales y complejos _ La amplitud de intervalo y la exactitud de los números son mayores _ Cuenta con una biblioteca matemática amplia _ Abundantes herramientas gráficas, incluidas funciones de interfaz gráfica con el usuario _ Capacidad de vincularse con los lenguajes de programación tradicionales _ Transportabilidad de los programas MATLAB. _ Capacidad de vincularse con los lenguajes de programación tradicionales. 1.2.1. Comandos generales.- Algunos se indican a continuación: help ayuda lookfor busqueda de funciones relacionadas al argumento

Practica 1

Embed Size (px)

DESCRIPTION

Practica 1

Citation preview

  • 1

    Laboratorio 1

    Introduccin al MATLAB para sistemas de control 1.1. Objetivos.-

    Conocer el uso del programa desarrollado MATLAB-Simulink.

    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 _ La programacin es mucho ms sencilla _ Hay continuidad entre valores enteros, reales y complejos _ La amplitud de intervalo y la exactitud de los nmeros son mayores _ Cuenta con una biblioteca matemtica amplia _ Abundantes herramientas grficas, incluidas funciones de interfaz grfica con el

    usuario _ Capacidad de vincularse con los lenguajes de programacin tradicionales _ Transportabilidad de los programas MATLAB. _ Capacidad de vincularse con los lenguajes de programacin tradicionales.

    1.2.1. Comandos generales.- Algunos se indican a continuacin: help ayuda lookfor busqueda de funciones relacionadas al argumento

  • 2

    demo demostraciones who muestra variables en memoria what lista archivos especficos de MATLAB clear limpia variables y funciones computer tipo de computadora ^C caracteres y operadores especiales exit, quit 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:

    987;654;321A 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

    9412^321

    941321*321

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

  • 3

    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 genera un vector fila 321 1:0.5:3 genera un vector de 1 a 3 con pasos de 0.5, es decir 35.225.11 A(:,2) es la segunda columna de A A(1:2,) son las dos primeras filas de A A(2,3) 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 )(cos2 xy ,

    sobre el intervalo [-4,4] con las siguientes instrucciones:

    4:01.0:4t ; 2).^cos(ty ; ),( ytplot

    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 (titulo del grafico) Xlabel (comentario en el eje x) Ylabel (comentario en el eje y)

  • 4

    Gtext texto posicionado interactivamente Text texto posicionado mediante coordenadas Axis permite escalar los ejes manualmente Gris cuadriculado en el grafico 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 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:

    ),,(

    ;/).sin(

    ;)..(

    );8:5.0:8(,

    22

    ZYXmesh

    RRZ

    epsYXsqrtR

    meshgridYX

    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 expresin Instrucciones 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 expresin Instrucciones elseif expresin Instrucciones 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.

  • 5

    En ambos lazos, la expresin es generalmente el resultado de utilizar los operadores relacionales: < menor que mayor que >= mayor o igual que == igual a ~= diferente de & and && and breve: / or // or breve ~ negacin lgica xor(A,B) or exclusivo for. La forma general de un bucle for es: for variable = inicio:incrementos:fin Instrucciones 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.

    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 M-FILE Lectura y escritura interactiva de variables:

  • 6

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

    1.4.2. Dada las matrices :

    2825

    4431

    3278

    1596

    A

    1

    3

    7

    8

    5

    2

    3

    4

    B

    1).- Realiza en MATLAB las siguientes operaciones: a. Crear la matriz E1 con las columnas 3 y 4 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.

  • 7

    d.- Encuentre el producto de A2,4 y B1,2. 2).-Indique el resultado de las siguientes operaciones y que significa cada una de ellas (utilice Matlab): a. A(:,1) b. A(2,) 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))

    1.4.3. Grafique las siguientes funciones sobre un mismo grafico.

    a).- t

    tsenty

    )(1)(

    2 ,

    4

    1)(

    2

    t

    ttz con 77 t

    Los vectores deberan tener al menos 300 puntos para su graficacin.

    b).-

    tsenty

    1)( 101.0 t 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=7 m/s y a= - 27 m/s2 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.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.

  • 8

    1.6. Bibliografa.-

    The Math Works Inc., Manuales de MATLAB.