Sei sulla pagina 1di 5

PRCTICA 6 DE FUNDAMENTOS DE AUTOMTICA (2 TECNOLOGAS INDUSTRIALES) Jueves 25 de octubre (grupos de tarde), Mircoles 31 de octubre (grupos de maana)

INTRODUCCION AL PROGRAMA MATLAB


El objetivo de la prctica es el de familiarizarse con las rdenes bsicas del programa Matlab, que es un entorno de trabajo y simulacin usado para el anlisis y sntesis de sistemas dinmicos. Puede trabajar con sistemas continuos y discretos, lineales y no lineales. Matlab es un entorno abierto para el que hay disponibles distintos mdulos especializados: Control systems, Signal Processing, System Identification, etc. La forma de trabajar con Matlab es a travs de un conjunto de rdenes, a las que se les pueden pasar variables y que en ocasiones devuelven otras variables como resultado. Matlab es un lenguaje de expresiones que son introducidas por el usuario e interpretadas y evaluadas por el programa. La sintaxis general de las rdenes de Matlab es la siguiente: [output1, output2, ...,outputN] = nombre_orden(input1,input2, ...,inputK) Las variables de salida se escriben entre corchetes y las de entrada entre parntesis. Si hay una sola salida los corchetes son opcionales. La evaluacin de las expresiones siempre da como resultado una matriz. Los detalles previos ms importantes son los siguientes: En la ventana de Matlab cada una de las rdenes ocupa una lnea. Para que una instruccin contine en la lnea siguiente se ponen 3 puntos al final de la lnea incompleta. Si se pretende escribir en una lnea ms de una instruccin, stas se separarn por una coma o un punto y coma. b) Si al final de cada instruccin se coloca un punto y coma (;) el programa no muestra el resultado. c) Para introducir comentarios se escribe el carcter % y a continuacin el comentario (hasta el final de la lnea). d) Las flechas del teclado permiten repetir las instrucciones anteriores. e) El programa Matlab distingue entre maysculas y minsculas. El elemento bsico de matlab es una matriz compleja de nmeros reales. Esta representacin es muy general e incluye vectores y escalares reales y complejos. Tambin incluye indirectamente polinomios y funciones de transferencia. Los vectores fila se introducen usando corchetes y los elementos se separan usando espacios en blanco o comas. Para crear un vector columna se puede calcular la traspuesta del vector fila (aadiendo al vector una comilla). >>x = [1 2 3], y = [ 3.55, 2*pi, sqrt(-1), 2 + 4j] x= 1 y= 3.5500 >> z = y z= 3.5500 6.2832 0 - 1.0000i 2.0000 - 4.0000i Las matrices se introducen lnea a lnea, separadas por punto y coma (o por la tecla INTRO). >>a = [ 1 2 3;4 4 5;6 7 8; 9 10 0 ] 6.2832 0 + 1.0000i 2.0000 + 4.0000i % Traspuesta 2 3 a)

a= 1 4 6 9 2 4 7 10 3 5 8 0

b = [ 2.4 4.55 5.444 pi+2i] b= 2.4000 5.4440 4.5500 3.1416 + 2.0000i

OPERACIONES Y FUNCIONES. Operaciones aritmticas bsicas: +, -, *, /, \ , ^ , sqrt Operaciones de relacin: >, <, <=, >=, == (igual), ~= (distinto) Operaciones lgicas: & (and), | (or), ~ (not) Funciones trigonomtricas bsicas: sin, cos, tan, asin, acos, atan Funciones logartmicas bsicas: exp, log, log10, log2,...

OPERACIONES SOBRE MATRICES A\B A/B % inv(A)*B % A*inv(B) Devuelve la matriz X tal que AX = B Devuelve la matriz X tal que XB = A Devuelve la matriz inversa de A

inv(A) %

OPERACIONES SOBRE MATRICES (elemento a elemento) C = A.*B % Multiplica elemento a elemento 2 matrices: Cij = Aij * Bij

A./B, A.\B, y A.^B devuelven aij/bij, bij/aij y aij bij respectivamente. COMANDOS GENERALES (AYUDA) >> cd >> cd \subdir >> dir >> who >> whos >> clear >> save n >> load n >> help >> help n >> clg >> demo >> quit % Muestra el directorio de trabajo. % Cambia el directorio de trabajo a subdir. % Listado de los ficheros en el directorio de trabajo. % Lista todas las variables del espacio de trabajo. % Igual que who, pero ms informacin. % Borra el espacio de trabajo. % Guarda el espacio de trabajo en n.mat. % Carga el espacio de trabajo almacenado en n.mat. % Lista todos los comandos de Matlab. % Proporciona ayuda del comando n. % Borra la pantalla grfica. % Lista las demostraciones. % Salir de Matlab.

DESARROLLO DE LA PRCTICA

REVISION DE COMANDOS USADOS FRECUENTEMENTE Repita los comandos que se listan a continuacin y observe los resultados. Se proporcionan de forma escueta para que se haga uso del comando help cuando sea necesario.

1.

TRABAJO CON MATRICES.

>> aux = [1 2 3; 4 5 6; 7 8 0] >> A = [ 1 2 3 1 0 0 2 2 2] >> D = A(:,2) % vector con todos los datos de la segunda columna. >> D = A(1:2,2:3) % submatriz con filas 1 a 2 y columnas de 2 a 3. >> B = A % traspuesta >> C = A * B % producto de matrices. >> C = A .* B % producto elemento a elemento de las dos matrices. >> C = A / B % calcula la matriz C tal que C.B = A >> C = A \ B % calcula la matriz C tal que A.C = B >> det(A) >> rank(A) >> inv(A) >> p = poly(A) % determinante % rango de A % inversa % polinomio caracterstico de A

Si a una matriz le aadimos un nmero de una direccin no existente, la matriz crecer hasta encajar el nuevo elemento y llenar con ceros los espacios no especificados. >> h = [1 2; 4 >> h(3,4) = 10 >> h Matrices especiales: >> eye(3) >> eye(3,2) >> ones(3) >> ones(3,4) >> zeros(3) >> zeros(3,5) >> diag([ 1 2 3 4]) 2. % identidad 3x3 % identidad 3x2 % matriz de 1, tamao 3x3 % matriz de 1, tamao 3x4 % matriz de 0, tamao 3x3 % matriz de 0, tamao 3x5 % matriz diagonal de tamao 4x4 4] % comprobar el nuevo valor de h

TRABAJO CON VECTORES. % Polinomio P = 1X2 + 8X + 15 % races del polinomio + 4 % Polinomio Q = X2 % races del polinomio % producto de polinomios % races del polinomio S % Polinomio X + 2 % Descomposicin en fracciones simples del cociente de R entre S % a: numeradores % b: denominadores (races de S) % c: cociente de los polinomios R y S (si existe)

>> P = [1 8 15] >> roots(P) >> Q = [ 1 0 4] >> roots(Q) >> S = conv(P,Q) >> roots(S) >> R = [1 2] >> [a b c] = residue(R,S)

>> c = [ 1 2 3] >> d = [ 4 5 6] >> d = d >> c*d >> d*c >> x = 1 : 5 >> y = 0: 0.5 : 5 >> z = 5 : -1 : 0 3.

% vector de 5 elementos de 1 a 5, incremento 1 % vector de 11 elementos, de 0 a 5, incremento 0.5 % vector de 6 elementos, de 5 a 0, decremento 1.

CONTROL DE FLUJO DE PROGRAMA (for, while, if)

>> x = [ 1 1 1 1 1 1 1] >> for i = 2: 4, x(i) = 0; end >> x >> x = [ 10 20 30 40 >> i = 1 >> while x(i) < 45, x(i) = 0; i= i+1;end;

% comprobar el nuevo valor de x 50 60 70 80]

>> x % Otra forma de hacer lo mismo: >> x = [ 10 20 >> i = 1 >> while x(i) < 45 x(i) = 0; i= i +1; end; >> x 30 40

% comprobar el nuevo valor de x

50

60

70

80]

% comprobar el nuevo valor de x 4 -5 6]

>> x = [-1 2 -3 >> for i=1 : 6 if x(i) < 0 x(i) = 0; else x(i) = 22; end; end; >> x 4. TRABAJO CON GRAFICAS

% comprobar el nuevo valor de x

>> x=[0.0 0.5 1.5 2.0 3.0 4.0 6.0 4.0 4.5] >> plot(x) % grfico en 2D >> grid % Dibuja una cuadricula: observe el nuevo grfico >> title(mi grfico) % Aade un ttulo: observe el nuevo grfico >> xlabel(eje x) % Aade un titulo al eje horizontal: observe el nuevo grfico >> ylabel(eje y) % Aade un titulo al eje vertical: observe el nuevo grfico >> x = [1 >> y = [5.0 >> plot(x,y);grid >> plot(y,x);grid >> plot(x,y,'b') >> plot(x,y,'o') >> plot(x,y,'+y') >> plot(x,y,'*r') >> t=0:0.01:10; >> y = sin(t); >> plot(t,y);grid >> z = cos(2*t); >> plot(t,z);grid >> plot(t,y,'-r',t,z,'-g') >> v = [0 20 -2 2] >> axis(v) >> hold on >> p = y.*y; >> plot(t,p,b) >> hold off 2 6.0 4 6.5 8 6.6 16 6.4 32 6.2 64] 4.5]

% Dibuja y en funcin x % Dibuja x en funcin y % Dibuja y en funcin de x en color azul (blue) % Dibuja y en funcin de x usando o % Dibuja y en funcin de x usando +, color amarillo (yellov) % Dibuja y en funcin x usando *, color rojo (red) % Define una variable t definida entre 0 y 10 con intervalos de 0.01 % Define la variable y como el seno de la variable t. % Dibuja la funcin seno(t) entre t=0 y t = 10. % Define la variable z como el coseno de la variable (2*t). % Dibuja la funcin coseno(2*t) entre t=0 y t = 10. % Dibuja dos grficos sobre los mismos ejes (colores rojo y verde)

% Cambia la escala del eje de abscisas (entre 0 y 20) y el de ordenadas (entre 2 y 2) % Mantener el grfico actual % Define la variable p como y2 % Dibuja sobre el grfico antiguo la variable p (en color azul) % Permite el refresco del grfico actual

Puede hacer un ZOOM sobre una zona del grfico con la orden zoom haciendo click sobre el icono que aparece en la ventana grfica.

5.

FUNCIONES Y ALMACENAMIENTO EN DISCO

En modo normal, Matlab ejecuta comandos en forma interactiva, despus de escribir un comando Matlab responde. Sin embargo, el programa matlab esta capacitado para ejecutar programas que estn almacenados en ficheros en disco. Existen dos requisitos: el programa (en formato solo texto) debe residir en el path del Matlab y debe tener extensin .m. El programa Matlab permite la creacin y almacenamiento en disco de dos tipos de ficheros (M-files): function files y script files.

Functions: Fichero con un conjunto de instrucciones que se ejecutarn tras una llamada y a la que se le pueden pasar parmetros y puede devolver resultados. Si se usan variables auxiliares dentro de la funcin, estas variables sern locales a la funcin, y no afectan al espacio de trabajo. El formato debe ser el siguiente: Nombre del fichero: nombre_funcion.m Instrucciones: Function [sal1,sal2,sal3, ...] = nombre_funcion(ent1,ent2, ...) ... .... [sal1,sal2,sal3, ...] = .... % Asignacin de valores (juntos o por separado). Scripts: Fichero con el conjunto de instrucciones que se van a realizar tras la llamada. Las instrucciones se ejecutan secuencialmente de la misma forma que si se hubiesen introducido una a una en la ventana de comandos. Las variables que se usen dentro del script afectan al espacio de trabajo. Mediante las opciones del men de Matlab File New M-file crear dos ficheros, uno correspondiente a una funcin (con el nombre fact.m) y el otro a un script (con el nombre programa.m). fact.m function result = fact(dato) % devuelve el factorial de dato result = 1; for i=1 : dato result = result * i; end; programa.m fprintf('\nPrograma que calcula el maximo comun divisor de dos enteros \n '); a = input('Valor del primer entero '); b = input('Valor del segundo entero '); datoa = a; datob = b; while (a ~= b) % Alt Gr + 44 if (a > b) a = a - b; else b = b -a; end; end; fprintf('\nEl mcd de %d y %d es %d \n',datoa,datob,a);

Despus de crear los dos ficheros y guardarlos en disco con los nombres indicados (fact.m, programa.m) pueden ser utilizados de la siguiente forma desde el matlab: >> fact(10) >> a = fact(3) >> b = fact(a) >> b = fact(2+a) >> programa

6.

EJERCICIO. Represente grficamente la funcin y = 2 * seno(5t) * (e-2t ) entre t = 0 y t = 3, utilizando intervalos de tiempo de 0.001 segundos. Utilizando las funciones de Matlab max y min, calcule el mximo y el mnimo de la funcin en ese intervalo, as como el instante de tiempo en el que se producen. Compruebe, haciendo zoom, que esos valores son correctos. Utilice las funciones: exp, sin, max, min.

Potrebbero piacerti anche