laboratorio de control automatico 1

Upload: trbvm

Post on 21-Feb-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 Laboratorio de Control Automatico 1

    1/13

    LABORATORIO DE CONTROL AUTOMATICO

    Practica 1 Introduccion a MATLAB

    OBJETIVO:

    El objetivo de esta practica es dar una introduccion al ambiente de trabajo de Matlab

    Introduccion:

    Matlab (Matrix Laboratory) Es un lenguaje de programacion amigable al usuario para hacer

    calculos numericos o matematicos con caracteristicas mas avanzadas y jmucho mas facil de usar

    que los lenguajes de computadora como Pascal o C, porpocionando un entorno rico para la

    visualizacion de datos a traves de sus poderosas capacidades graficas.

    Matlab es una plataforma de desarrollo de aplicaciones, donde conjuntos de herramientas

    inteligentes (archivos de matlab) para la resolucion de problemas en areas especificas, a menudo

    llamadas toolboxes, se pueden desarrollar con facilidad relativa. Las areas donde los toolboxes

    estan disponibles invluyen procesamiento de seales, diseo de sistemas de control, simulacion de

    sistemas dinamicos, identificacion de sistemas, redes neuronales y otras.

    Desarrollo:

    Durante el desarrollo de esta practica se vera el funcionamiento del ambiente de trabajo de

    Matlab, en cada uno de las explicaciones se dan ejemplos del funcionamiento del ambiente de

    Matlab, se recomienda al alumno realice dichos ejemplos para su mejor entendimiento.

    Iniciando Matlab

    Matlab para windows puede iniciarse seleccionandolo desde el icono de windows. Al ejecutarse

    matlab se crea una ventana, donde aparece el prompt de Matlab ">>" indicando que esta en

    espera de algun comando. De estas, la ventana de orden es el lugar fundamental donde se

    interacciona con matlab, esta venta se muestra a continuacion:

    Matematica sencilla:Matlab ofrece las

    siguientes operacinoes basicas:

    las expreciones se evaluan de izquierda a

    derecha, con la operacion de potencia teniendo la orden de presendencia mas alta, seguida por la

    multiplicacion y division que tienen ambas igual precedencia y seguidas finalmente por la suma y

  • 7/24/2019 Laboratorio de Control Automatico 1

    2/13

    resta que tienen ambas igual precedencia. Se pueden usar parentesis para alterar esta usual

    ordenacion.

    Formato de visualizacion de numeros

    los formatos de visualizacion de numeros no cambian la represetacion interna de un numero

    cuando se escogen diferentes formatos; solo se modifica la visualizacion del numero, los formatos

    numericos son:

    Experiones fundamentales

    Trabajar en el entrono Matlab es muy simple ya que la mayoria de los comandos son ingresados

    de la misma manera que lo haria matematicamente. Por ejemplo escribiendo:

    >>a=4/3 dara como resultado >> a = 1.333

    por medio de este comando se le ha asignado el valor 1.333 a la variable "a". Matalb reconoce los

    pirmeros 19 caracteres de los nombres de las variables requiriendo solamente que el nombre

    comience con una letra. Otra particularidad es que Matalb es sensible a las mayusculas. En caso de

    estar interesado solamente en el resultado de la expresion y no en la asignacion del mismo a

    alguna varible, escribiendo:

    >>1/4 genera el siguiente resultado >> ans = 1.333

    donde la variable "ans" es una variable interna usada por Matlab para almacenar datos que no han

    sido asignados a ninguna otra variable. Notar que el contenido de ans cambia cada vez que una

    operacion como la anterior es realizada, por lo tanto si usted considera que un resultado puede

    ser utilizado en los subsecuentes calculos, es conveniente guardarlo en alguna otra variable.

    Matlab tiene alguna variables predefinidas como: i, j = sqrt(-1), = pi, NaN (not a number por

    ejemplo 0/0). como estas varibales peden ser sobreescritas, se recomienda usarlas con cuidado y

    que por ejemplo si i o j se usan como indices de elementos de un vector matriz y luego se desea

    relizar la siguiente asignacin:

    >> z = 1 + 2*i (note la manera de ingresar un numero complejo)

  • 7/24/2019 Laboratorio de Control Automatico 1

    3/13

    El resultado no ser el nmero complejo esperado. Para establecer el valor de i se puede usar el

    comando clear i

    Ayuda en linea

    Matlab tiene un comando help muy bien documentado. escribiendo help, MATLAB despliega un

    ndice con aclaraciones que sirven para orientarse a la hora de buscar algn comando en

    particular. Por ejemplo:

    >>help

    de donde podemos inferir que la informacin que estamos buscando puede estar dentro de los

    comando agrupados Elemntary math fiunctions

    donde hayamos la funcin exp. Para finalmente saber cmo usar dicha funcinuno puede escribir

    help exp. para finalizar este ejemplo, la expresin sera:

    >> exp(1+3*i)

  • 7/24/2019 Laboratorio de Control Automatico 1

    4/13

    Hasta aqu ya se sabe como buscar informacin sobre los comandos de Matlab. Si desea realizar

    un clculo para el cual Matlab no tiene una funcin especfica, se pueden crear las propias

    funciones. (ms adelante se realizar Creating script Files y Creating Functions)

    Matrices y Vectores

    Las matrices son el principal tipo de datos que maneja matlab. Comienzo escribiendo una matriz

    como una lista de elementos, solo hay que seguir unas convenciones bsicas

    separar los elementos de una fila con espacios o comas.

    Usar un (;) para indicar el fin de cada rengln (columna).

    Encerrar la lista de elementos con parntesis cuadrados []

    por ejemplo al entrar la siguiente Matriz >> a = [1 2; 3 4] Matlab muestra

    Por otra parte una matriz de una sola fila es un vector: >> b = [5 6] b = 5 6

    Para suprimir la salida en pantalla cada vez que se asigna una variable use el operador " ; " al final

    de la expresin >> b = [5 6];

    Los elementos de una Matriz pueden ser una expresin; por ejemplo:

    >> x = [ -1.3 sqrt(2) (1+2+3)*4/5]

    x =

    -1.3000 1.4142 4.8000

    se pueden juntar dos Matrices con mismo nmero de columnas en una sola matriz; por ejemplo:

    >> A = [1 2 3; 4 5 6; 7 8 9]; R = [10 11 12];

    >> B = [A; R] %Junta dos matrices

    B = .

    1 2 3

    4 5 6

    7 8 9

    10 11 12

    o extraer una submatriz de la matriz; por ejemplo:

    >> C = B(2:3,2:3) %obtiene una submatriz C de la matriz B; de la fila 2 a la 3

    C = %y de la columna 2 a la 3

    5 6

    8 9

    Matlab permite el manejo de nmeros complejos, donde la i = j. Existen dos formas de insertar

    matrices de nmeros complejos las cuales producen el mismo resultado que son:

    >> A = [1 2; 3 4;] + i*[5 6; 7 8]; bien >> A = [1+5j 2+6j; 3+7j 4+8j];

    >> B = [1+5i 2+6i; 3+7i 4+8i]; bien >> B = [1+5j 2+6j; 3+7j 4+8j];

  • 7/24/2019 Laboratorio de Control Automatico 1

    5/13

    se puede obtener informacin en el rea de trabajo con whoo whos;por ejemplo: >> who

    your variables are

    A B C R X

    o bien

    %cada elemento de una matriz real

    %requiere 8 bytes de memoria

    Grand total is 31 elements using 248 bytes %Todas las variables ocupan 248bytes

    el operador " : "

    >> V = [1 : 0.5 : 3] genera un vector con elementos de 1 a 3 con incremento de 0.5

    V =

    1 1.5 2 2.5 3

    Guardar variables y estados en una sesin: Comandos save y load

    En muchas ocasiones puede resultar interesante interrumpir el trabajo con Matlab y poderlo

    recuperar ms tarde en el mismo punto en el que se dej (con las mismas variables definidas, con

    los mismos resultados intermedios, etc.) Hay que tener en cuenta que al salir del programa todo el

    contenido de la memoria se borra automticamente.

    para guardar el estado de una sesin de trabajo existe el comando save. si se teclea:

    >> save

    dicho estado puede recuperarse la siguiente vez que se arranque el programa con el comando

    >>load

    se pueden guardar tambin vectores y matrices de forma selectiva y en ficheros con nombre

    especificado por el usuario. por el ejemplo, el comando (sin comas entre los nombres de las

    variables) :

    >> save filename A x y

    guardas las variables A, x e y en un fichero binario llamado filename.mat (o filename). para

    recuperarlas en otra ocasin basta teclear:

    >>load filename

    si no se tiene ninguna variable, se guardan todas las variables creadas en esa sesin.

    Guardar sesin y copiar salidas: Comando diary

  • 7/24/2019 Laboratorio de Control Automatico 1

    6/13

    Los comandos save y load crean ficheros binarios ASCII con el estado de la sesin. Existe otra

    forma ms sencilla de almacenar en un fichero un texto que describa lo que el programa va

    realizando(la entrada y la salida de los comando utilizados). Esto se hace con el comando diaryen

    la forma siguiente:

    >> diary filename.txt

    ...

    >> diary off %suspende la ejecucin

    ...

    >> diary on %reanuda la ejecucin

    ...

    El simple comando diarypasa de on a off y viceversa. Para poder acceder al fichero filename.txt

    con Notepad o Word es necesario que diary est en off si en el comando diary no se incluye el

    nombre del fichero se utiliza por defecto un fichero llamado diary (sin extencin).

    Por ejemplo: si se tienen las variables antes definidas y se utiliza el comando save se tendr:

    >> save %guarda las variables del rea de trabajo en disco en el archivo matlab.mat

    saving to: matlab.mat

    >> load %carga desde el disco las variables almacenadas en el archivo matlab.mat

    Loading from: matlab.mat

    >> X = 10; Y = 20; Z = 40; W = 60; %Nuevas variables

    >> save temp X W %Guarda las variables X y W en el archivo temp.mat

    >> load temp %carga desde el disco las variables almacenadas en el

    %archivo temp.mat

    Operaciones con arrays

    -Array arbitrarios se introducen como: variable = [(lista de nmeros separados por espacios o

    comas)].

    -Funciones de arrays aplica n la funcin a los elementos individuales del array.

    -Array que contiene elementos de datos espaciados linealmente se pueden formar usando la

    notacin de dos puntosprimero:incremento:ltimo oprimero:ltimo donde el incremento es de 1

    -Array que contiene elementos de datos espaciados logartmicamente se puede formar usando la

    funcin linspacede Matlab

    -Valores almacenados en un array de datos se pueden acceder utilizando subndices.

    -Operaciones matemticas bsicas entre escalares y arrays aplican la operacin a todos los

    elementos en el array.

    -Operaciones matemticas bsicas entre arrays son validas si los arrays tienen el mismo tamao. El

    resultado se obtiene por la aplicacin elemento a elemento de la operacin. Las operaciones

  • 7/24/2019 Laboratorio de Control Automatico 1

    7/13

    elementales que se pueden hacer de elemento a elemento son: suma, resta, multiplicacin,

    divisin y potencia. Se simboliza por: +, -, *, / o \ y ^

    -La potencia de un array tiene mltiples definiciones dependiendo de la forma de la expresin.

    -Se puede construir arrays a partir de subconjuntos de otros arrays.

    -Los arrays en Matlab pueden tener cualquier orientacin rectangular y se nombran como array

    vector(fila), array columna(columna) y matrices(mltiples filas y columnas).

    -Los vectores fila se pueden convertir a vectores columnas y viceversa usando la operacin de

    transpuesta representada por ( ) un apostrofe simple.

  • 7/24/2019 Laboratorio de Control Automatico 1

    8/13

    Operaciones con matrices

    -Los elementos de una matriz se direccionan en la forma fila, columna: A(fila, columna).

    -Valores internos a una matriz se acceden identificando los subndices de los elementos deseados

    -Utilizar el smbolo dos puntos como la designacin de filas y columna implica, respectivamente,

    todas las filas o columnas; por ejemplo: A(:,1) representa todas las filas en la columna uno, A(2,:)

    representa todas las columnas en la fila dos.

    -Colocar datos fuera de rango actual de una matriz rellena con cero las zonas no especificadas para

    mantener una forma de matriz rectangular.

    -Fijar las filas o columnas de una matriz igual a la matriz vaca [ ] elimina esta filas o columnas.

    -Usar slo dos puntos, por ejemplo A(:), reagrupa una matriz en un vector columna, tomado todas

    las columnas a un tiempo.

    -Vectores lgicos 0-1 pueden utilizarse tambin para direccionar partes de un vector. En este caso,

    los vectores lgicos 0-1 deben tener el mismo tamao que el vector que los direcciona. Los

    elementos falsos (0) se eliminan, los elementos verdaderos (1) se retienen.

  • 7/24/2019 Laboratorio de Control Automatico 1

    9/13

    Funciones

    Matlab tiene un nmero grande de funciones. Algunas funciones son intrnsecas o construidas en

    el propio proceso de Matlab. otras estn disponibles en las libreras externas archivos-M

    distribuidos con Matlab (Toolbox). Y otras son adicionadas por los usuarios, o grupo de usuarios,

    para alguna aplicacin especifica en archivos-M

    Con la orden Help Matlab despliega el contenido de la funcin as como de los

    parmetros necesarios para su correcta ejecucin. por ejemplo:

  • 7/24/2019 Laboratorio de Control Automatico 1

    10/13

    help sqrt %ayuda de la funcin de la raz cuadrada

    SQRT sqare root.

    SQRT(X) is the sqare root of the elements of X. Complex results are produced if X is not positive.

    see also SQRTM.

    Se pueden combinar funciones de varias formas. Algunas funciones usan dos o ms argumentos de

    entrada, donde cada argumento puede ser una expresin. por ejemplo:

    >> a = 3; b = -4; %asigna a una variable un valor

    >> theta = sqrt(atan1(a,b)) %calcula la raz cuadrada del arco tangente de un ngulo

    theta = %(coordenadas X,Y)

    1.5805

    o tambin puede usar dos o ms argumentos de salida, donde los argumentos estarn encerrados

    por [ ] y separados por comas. por ejemplo:

    >> X = [5 2 4 9 3 1] %asigna un vector a la variable X

    >> [Y,i] = max(X) %obtiene el valor mximo as como el ndice encontrado dentro

    Y = % del vector X

    9

    i=

    4

    Graficas simples en 2D

    Los grficos son una poderosa forma visual de interpretar los datos. Considerando un proceso que

    se seguir para realizar una grfica a mano de una funcin seno durante un periodo, por ejemplo

    y = sin(x) para 0 X = linspace(0.2*pi, 30); %primero, se crean 30 puntos entre 0 y 2pi.

    >>Y = sin(X); %Se calcula el seno de los puntos en X

    >>plot(X,Y) %Genera la grfica conectando los puntos con una lnea recta

  • 7/24/2019 Laboratorio de Control Automatico 1

    11/13

    >> Z = cos(X); %calcula el coseno de los puntos en X

    >> plot(X,Y,X,Z) %grfica en la misma grfica el seno y el coseno

    >> plot(X,Y,X,2*Y.*Z,'--') %Grfica la funcin seno con lneas conectando los puntos y la

    %funcin 2sin(X)cos(X) = sin2(x),arcado con el smbolo '--'

    >> plot(X,Y) %grfica la funcin seno

    >> hold on %mantiene la grfica anterior para aadir la siguiente curva

    >>plot(X,2*Y.*Z,'--') %grfica la funcin sin2(X)con lneas de trazos

    >> hold off % Permite que la prxima orden plot borre la grfica

    La orden plot crea una grfica de vectores o columnas de matrices. La forma de la orden es

    plot(X1, Y1, S1, X2, Y2, S2, . ..) donde (Xn, Yn) son conjuntos de arrays de datos y Sn son cadenas

    opcionales que especifican color, marcas y/o estilos de lnea

  • 7/24/2019 Laboratorio de Control Automatico 1

    12/13

    -grid coloca en las marcas de la grfica

    -se pueden aadir ttulos y etiquetas en los ejes usando title, xlabel, ylabel.

    -La orden tect(x,y,s) aade cadenas de caracteres S a la grfica actual en las coordenadas (x,y)

    -gtext permite colocar texto interactivamente en la grfica utilizando el ratn.

    -axis cambia los limites de los ejes o la apariencia de las grficas(obtenga ayuda con help axis)

    -se pueden aadir grficas a la actual fijando hold on. Haciendo hold off permite que la prxima

    orden plot borre de la ventana la figura antes de hacer una nueva grfica.

    -se pueden generar multiples ventanas de figuras mediante la orden figure. figure(n) ecoge que

    ventana de figura n sea la ventana de la figura activa.

    -Una ventana de figura se puede subdividir en una matriz m x n y cualquier subdivisin hacerse

    activa co la orden subplot(m,n,p)(escoge como activa el rea p-sima).

    -si fija zoom on, la ventana de la figura activa se puede expandir interactivamente usando el

    ratn, seleccionando el rea de expansin o simplemente con un click del ratn. zoom off lo

    desactiva

  • 7/24/2019 Laboratorio de Control Automatico 1

    13/13