practica 1 control 3

55
INSTUTITO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGERNIERIA MECANICA Y ELECTRICA UNIDAD PROFESIONAL ZACATENCO. PRACTICA 1 USO de MATLAB ALUMNO: FLORES PEREZ LUIS GILBERTO GRUPO: 7AV1 PROFESOR: FRANCISCO JAVIER VILLANUEVA MAGAÑA… TEORIA DE CONTROL 1

description

practica de control 3 sobre espacios de estados manejados en matlab acerca sobre como convertir una funcion de transf. a espacio de estados

Transcript of practica 1 control 3

INSTUTITO POLITECNICO NACIONALESCUELA SUPERIOR DE INGERNIERIA MECANICA Y ELECTRICAUNIDAD PROFESIONAL ZACATENCO.

TEORIA DE CONTROL 1

PRACTICA 1 USO de MATLAB

ALUMNO: FLORES PEREZ LUIS GILBERTOGRUPO: 7AV1

PROFESOR: FRANCISCO JAVIER VILLANUEVA MAGAA

Notacin matricial usada en algebra linealPropiedades A + B = B + A Conmutatividad (A + B) + C = A + (B + C) Asociatividad A(BC) = (AB)C Asociatividad A + 0 = 0 + A = A Elemento neutro AI = IA = A Matriz identica A0 = 0A = 0 (A + B) = A + B es un nmero (AB) = A(B)= AB es un nmero (A)=(A) A(B + C) = AB + AC Distributividad (A + B)C = AB + AC Distributividad (A T )T = A (A + B) T = A T + B T (AB) T = B TA TUna matriz es un arreglo de nmeros reales por filas y columnas tales como:

La matriz * (1) es una matriz de cuatro filas y tres columnas ( de dimensin 4x3). La matriz (2) es una matriz de2 filas y 2 columnas (cuadrada, de dimensin 2x2). La matriz (3) es una matriz de 3 filas y 3 columnas (cuadrada, de dimensin 3x3). La matriz (4) tiene 3 filas y 4 columnas ( de dimensin 3x4).El nmero en la fila i, columna j, ser denominado como aij.La matriz A:

es una matriz general de dimensin 3x4 (tres filas, 4 columnas) cuyos elementos se han denominado a11 , a12 ,a13 , etc., puesto que no se conocen sus valores. La matriz A del ejemplo anterior se abreviar como:A = ( aij ) 3x4En general, la notacinA = ( aij ) mxnDenotar a la matriz:

Una matriz A, es cuadrada, de orden n, si tiene igual nmero de filas que de columnas, es decir, si es de dimensin nxn.As:Una matriz cuadrada de orden 2

Y una matriz cuadrada de orden 3.

Matriz cuadradaLa matriz cuadrada tiene el mismo nmero de filas que de columnas.Los elementos de la forma aii constituyen la diagonal principal.La diagonal secundaria la forman los elementos con i+j = n+1, siendo n el orden de la matriz.

Matriz rectangularLa matriz rectangular tiene distinto nmero de filas que de columnas, siendo su dimensinmxn.

Matriz trinagular superiorEn una matriz triangular superior los elementos situados por debajo de la diagonal principal son ceros.

Esto es:

Matriz triangular inferiorEn una matriz triangular inferior los elementos situados por encima de la diagonal principal son ceros.

Esto es:

Matriz diagonalEn una matriz diagonal todos los elementos que no estn situados en la diagonal principal son nulos.

Se define como:

Matriz unidad o identidadUna matriz identidad es una matriz diagonal en la que los elementos de la diagonal principal son iguales a 1.

Matriz nulaMATRIZ 0 DE DIMENSIN mxn.La matriz 0 de dimensin mxn, o matriz nula, es la matriz0mxn = (a) ij mxn, donde a ij = 0, para cada i,,j.

Sabemos que si las matrices son conformables, podemos sumarlas, restarlas y multiplicarlas.

Matriz transpuestaDada una matrizA, se llama matriz traspuesta deAa la matriz que se obtiene cambiando ordenadamente las filas por las columnas.

(At)t= A(A + B)t= At+ Bt(A)t= At(A B)t= Bt At

Matriz simtricaDiremos que una matriz A de orden mxn es una matriz simtrica si coincide con su traspuesta, es decir A=A`Es evidente que las matrices simtricas tienen que ser matrices cuadradas.

Matriz dispersaSon matrices en las cuales la gran mayora de las entradas son cero. Sea A una matriz dispersa de tamao nn. Definamos la notacin (A), que indica el nmero de entradas no cero de A. Es unamatrizde gran tamao en la que la mayor parte de sus elementos son cero

Matriz llena

Vector filaes unamatrizde dimensiones, esto es, unamatrizformada por una sola fila deelementos.

Latraspuestade un vector fila es unvector columnay viceversa.El conjunto de todos los vectores filas forma unespacio vectorialque es elespacio dualdel conjunto de todos los vectores columna.

Vector columnaes unamatrizde dimensiones, esto es, unamatrizformada por una sola columna deelementos.

Latraspuestade un vector columna es unvector filay vice versa.El conjunto de todos los vectores columna forma unespacio vectorialque es elespacio dualdel conjunto de todos losvectores fila.

Matriz conjugada

Matriz conjugada de una matriz A Aquella que se obtiene sustituyendo cada elemento por su complejo conjugado (igual parte real, pero la parte imaginaria cambiada de signo)

Matriz hermitianaUnamatriz hermitiana(ohermtica) es unamatriz cuadradade elementoscomplejosque tiene la caracterstica de ser igual a su propiatraspuestaconjugada. Es decir, el elemento en lai-sima fila yj-sima columna es igual alconjugadodel elemento en laj-sima fila ei-sima columna, para todos los ndicesiyj:

o, escrita con la traspuesta conjugadaA*:

es una matriz hermtiana.Determinantedefinecomo unaforma multilineal alternadade un cuerpo. Esta definicin indica una serie de propiedades matemticas y generaliza el concepto de determinante hacindolo aplicable en numerosos campos. Sin embargo, el concepto de determinante o devolumen orientado fue introducido para estudiar el nmero de soluciones de lossistemas de ecuaciones lineales.Consideremos una matriz3x3arbitrariaA = (aij). El determinante deAse define como sigue:== a11a22a33+ a12a23a31+ a13a21a32 a13a22a31 a12a21a33 a11a23a32.

Obsrvese que hay seis productos, cada uno de ellos formado por tres elementos de la matriz. Tres de los productos aparecen con signo positivo (conservan su signo) y tres con signo negativo (cambian su signo).Ejemplo=3 2 4 + 2 (5) (2) + 1 0 1 1 2 (2) 2 0 4 3 (5) 1 == 24 + 20 + 0 (4) 0 (15) == 44 + 4 + 15 =63

CofactorSellamacofactordel elementoaikdel determinanteD,al menorMikcon elsigno(-1)i+ky se denotaAik,esto esEjemplo:Obtenga los cofactoresA13yA21del determinanteDdado:De acuerdo con la frmula(1) el cofactorA13est dado por

Y de la misma forma

Igualdad de matricesDos matrices sonigualessi tienen las mismas dimensiones y cada elemento de la primera es igual al elemento de la segunda que ocupa su misma posicin. Es decir:Mm,nEjemplo:

Matriz adjuntaLamatriz adjuntaes aquella en la que cada elemento se sustituye por suadjunto.Se llamaadjuntodel elemento aijalmenor complementarioanteponiendo:El signo es + si i+j es par.El signo es - si i+j es impar.

Ejemplo

RangoSi A es una matriz de ordenm x n,Se puede considerar que cada una de sus filas es un vector deRny cadauna de sus columnas un vector deRm. Al nmeromximo de vectores filas que son linealmente independientes se denominarangopor filas y al nmero mximo de vectores columna que son linealmente independientes se denominarangopor columnas.Ambos nmeros coinciden. Por ello, podemos dar la siguiente definicin:Se llamarangoocaractersticade una matriz al node lneas (filas o columnas) que son linealmente independientes. El rango de la matriz A se designa porrg(A).Ejemplo:A tiene rango dos, ya que las dos primeras filas son independientes y la tercera es combinacin lineal de las otras dos.

Dependencia e independencia linealDado un conjunto finito de vectores , se dice que estos vectores sonlinealmente independientessi existen nmeros, tales que:

donde la nica posibilidad que se cumpla esta ecuacin es que dichos escalares sean todos nulos. En caso contrario, se dice que son linealmente dependientes. Ntese que el smbolo a la derecha delsigno igualno es cero, sino que simboliza alvector nulo. El conjunto de vectores nulos forma la matriz nula. Si tales nmeros no existen, entonces los vectores sonlinealmente independientes. Tambin puede extenderse a un conjunto infinito de vectores, concretamente un conjunto cualquiera de vectores es linealmente dependiente si contiene un conjunto finito que sea linealmente dependiente. Un conjunto de vectoresde un espacio vectorial es linealmente independiente siEsta idea es importante porque los conjuntos de vectores que son linealmente indepedientes, generan un espacio vectorial y forman una base para dicho espacio. Entre laspropiedadesde los vectores linealmente dependientes e independientes encontramos:1. Un conjunto de vectores es linealmente dependiente si y solamente si alguno de los vectores es combinacin lineal de los dems.2. Si un conjunto de vectores es linealmente independiente cualquier subconjunto suyo tambin lo es. Obviamente, si tenemos un conjunto de vectores tales que ninguno de ellos es combinacin de los dems, escogiendo solamente unos cuantos, no podrn ser combinacin de los otros.3. Si un conjunto de vectores es linealmente dependiente, tambin lo es todo conjunto que lo contenga.4. Un conjunto de vectores son linealmente dependientes si y slo si son paralelos.5. Un conjunto de vectores son linealmente dependientes si los componentes entre ellos son proporcionales, bien sea directa o inversamente proporcional. Ya que un conjunto de vectores es linealmente dependientesi y solo sitiene algn vector que es combinacin lineal de los dems.

Vectores propios, vectores caracteristicos o eigenvectoresEn general, una matriz acta sobre un vector cambiando tanto su magnitud como su direccin. Sin embargo, una matriz puede actuar sobre ciertos vectores cambiando solamente su magnitud. Una funcin vectorial A es lineal si: A(x + y) = Ax + Ay b) A(x) = Ax donde x y y son vectores y es escalar.Dada una transformacin lineal A, un vector e 0 es un eigenvector de A si satisface la ecuacin: Ae = eValores propios, valores caracteristicos o eigenvaloresPara algn escalar , llamado un eigenvalor de A correspondiente al eigenvector e. Un eigenvalor y un eigenvector de una matriz cuadrada [A] satisfacen la ecuacin: A = o de forma equivalente: (A I) = Matriz jacobianoDada una funcin vectorialf:ARnRm, donde(f1,f2,...,fm)son las funciones escalares componentes def. Sifi(a)i=1,2,...,m. Definimos lamatriz Jacobianadefen el puntoaA, y la representamos porJf(a), mediante la matrizmndonde cada fila es el vector gradiente de la correspondiente funcin componente, es decir:

Matriz hessianaSea D un conjunto de R n , a un punto interior de D, f : D R una funcin que tenga segundas derivadas parciales continuas en el punto a. Entonces la matriz de las segundas derivadas parciales de la funcin f en el punto a, se denota por f (x) o Hf (x) y se llama la matriz hessiana de la funcin f en el punto xMatriz aumentada.Como se coment al inicio de esta seccin, una matriz se compone por los coeficientes de un sistema de ecuaciones lineales, si a esto tambin se le aaden los trminos independientes del sistema de ecuaciones, se obtiene una matriz aumentada.Sistema LinealMatriz Aumentada

Se observa que la matriz de coeficientes es una submatriz de la matriz aumentada. Una matriz aumentada describe completamente el sistema.As como existen transformaciones elementales para los sistemas de ecuaciones lineales, tambin existen operaciones elementales en los renglones para las matrices, ya no siendo necesario escribir las variables X1, X2, X3en cada paso.

Operaciones elementales en los renglones.1. Intercambiar dos renglones de una matriz.2. Multiplicar los elementos de un rengln por una constante distinta de cero.3. Sumar un mltiplo de los elementos de un rengln a los elementos correspondientes de otro rengln.

Suma y resta de matrices.Sean las matrices A y B las siguientes:

Definiremos A + B de la siguiente manera:

A + B =

Por lo tanto:

La resta de matrices se define de modo similar

En general. Si A = ( aij ) mxn B = ( bij ) mxn . Definimos:A + B = ( aij ) mxn + ( bij ) mxn = ( cij ) mxn ,Donde cij = aij + bij , para cada i,j.No aceptaremos una suma tal como:

En este ltimo caso diremos que la suma no est definida o que las matrices no son conformes para la suma.

La suma slo estar definida para matrices de la misma dimensin.Multiplicacin de matrices

Definiremos la multiplicacin de la fila 1 de A por la columna 3 de B, como:

y similarmente, la multiplicacin de la fila 2 de A, por la columna 2 de B, como:

Ms an, definiremos la multiplicacin

como la matriz C de dimensin 2x4, donde cada elemento cij, de la fila i, columna j del producto C, es el resultado de la siguiente operacin:

Elemento en fila i, columna j de C = Fila i de A x columna j de B

Por supuesto, el elemento c23, de la 2da. fila, 3ra. columna del productoC = AB,se calcular multiplicando la fila 2 de A, por la columna 3 de B (enmarcadas), as:

Debido a que:

Por lo tanto:

Es de notar que si A es de dimensin 2x3 y B es de dimensin 3x4, entonces AB es una matriz de dimensin 2x4. Para denotar que una matriz A es de dimensin mxn, (m filas, n columnas), la notaremos como: Amxn.En general, dos matrices Amxn y Bsxk, son conformes para la multiplicacin s y slo s n = s, o sea que el nmero de columnas de A, debe ser igual al nmero de filas de B.El resultado del producto Amxn Bnxk = Cmxk , es tal que el elemento cij , de la fila i, columna j de C, es el resultado del producto de la fila i de A por la columna j de B.

Producto de matriz por vector.

Siy. El producto AB es la matriz m1 cuyos columnas son. En la que. son columnas de B.

y

A= , B= A B= =

Ejemplo: Producto de vector fila por vector columna.Sea:Vector fila : Matriz de 1xnVector columna : Matriz de nx1

vector fila x vector columna = Matriz 1xn * Matriz nx1 = Matriz 1x1

El resultado es una matriz de un solo elementoque se puede asimilar a un escalar

Ejemplo[1 2 -1] x (1*2)+(2*-3)+(-1*4)= -8

vector coumna x vector fila = Matriz nx1 * Matriz 1xn = Matriz nxn

El resultado es una matriz cuadrada de nxn elementos

Ejemplo

x[1 2 -1]=

Producto de matriz por escalar.

Dada una matrizA = (aij)y un nmero realk, se define el producto de un nmero real por una matriz: a la matriz de la misma dimensin queA, en la que cada elemento est multiplicado pork.

Ejemplo:k A = (k aij)

Matriz inversa.Si pre multiplicamos (multiplicamos por la izquierda) o pos multiplicamos (multiplicamos por la derecha) una matriz cuadrada por su inversa obtenemos la matriz identidad.A A1 = A1 A = IEjemplo.Mtodo 1. Gauss.SeaAuna matriz cuadrada de ordenn. Para calcular la matriz inversa deA, que denotaremos comoA1, seguiremos los siguientes pasos:1. Construir una matriz del tipoM = (A | I), es decir,Aest en la mitad izquierda deMy la matriz identidadIen la derecha.Consideremos una matriz 3x3 arbitraria:

La ampliamos con la matriz identidad de orden 3.

2. Utilizando el mtodo Gauss vamos a transformar la mitad izquierda,A, en la matriz identidad, que ahora est a la derecha, y la matriz que resulte en el lado derecho ser la matriz inversa:A1.F2= F2 F1

F3= F3+ F2

F2= F2 F3

F1= F1+ F2

F2= (1) F2

La matriz inversa es:

Mtodo 2. Ejemplo

1. Calculamos el determinante de la matriz, en el caso que el determinante sea nulo la matriz no tendr inversa.

2. Hallamos la matriz adjunta, que es aquella en la que cada elemento se sustituye por suadjunto.

3. Calculamos la traspuesta de la matriz adjunta.

4. La matriz inversa es igual al inverso del valor de su determinante por la matriz traspuesta de la adjunta.

Obtencin del rango de una matriz.El rango de una matriz Es el nmero de filas (o columnas) linealmente independientes. Utilizando esta definicin se puede calcular usando elmtodo de Gauss.Tambin podemos decir que el rango es: el orden de la mayor submatriz cuadrada no nula. Utilizando esta definicin se puede calcular el rango usando determinantes.Ejemplo:Sea B la siguiente matriz:

1. Podemos descartar una fila (o columna) si: Todos sus coeficientes son ceros. Hay dos filas (o columnas) iguales. Una fila (o columna) es proporcional a otra. Una fila (o columna) es combinacin lineal de otras.Suprimimos la tercera columna porque es combinacin lineal de las dos primeras: c3= c1+ c2.

2. Comprobamos si tiene rango mayor o igual que 1, para ello se tiene que cumplir que al menos un elemento de la matriz no sea cero y por tanto su determinante no ser nulo.|2|=203. Tendrrango mayor o igual que 2si existe alguna submatriz cuadrada de orden 2, tal que su determinante no sea nulo.

4. Tendr rango mayor o igual que 3 si existe alguna submatriz cuadrada de orden 3, tal que su determinante no sea nulo.

Como todos los determinantes de las submatrices son nulos tienerango menor que 3, por tantor(B) = 2.En general, los pasos a seguir para el clculo del rango por determinantes son:El rango es el orden de la mayor submatriz cuadrada no nula.1. Descartamos las filas (o columnas) que cumplan las condiciones vistas anteriormente.2. Si al menos un elemento de la matriz no es cero su determinante no ser nulo y, por tanto, el rango sermayor o igual a 1.3. El rango sermayor o igual a 2si existe alguna submatriz cuadrada de orden 2, tal que su determinante no sea nulo.4. El rango sermayor o igual a 3si existe alguna submatriz cuadrada de orden 3, tal que su determinante no sea nulo.5. El rango sermayor o igual a 4si existe alguna submatriz cuadrada de orden 4, tal que su determinante no sea nulo.De este mismo modo se trabaja para comprobar si tiene rango superior a 4, hasta que la submatriz (o las submatrices) del mayor orden posible tenga (o tengan) determinante nulo.Triangularizacion de una matriz usando eliminacin Gaussiana.El mtodo de Gauss consiste en transformar un sistema de ecuaciones en otro equivalente de forma que este sea escalonado.Para facilitar el clculo vamos a transformar el sistema en una matriz, en la que pondremos los coeficientes de las variables y los trminos independientes (separados por una recta).

Ejemplo.Sea el siguiente sistema de ecuaciones, resuelva mediante la eliminacin Gaussiana.3x+ 2y+z=1

5x+ 3y+ 4z=2

x+yz=1

Intercambiamos filas y eliminamos.

Eliminamos la ultima fila y se obtiene la triangulacin.

Ejemplo2.

Solucin de sistema de ecuaciones simultaneas algebraicas.Denominamos Sistema de ecuaciones simultneas a un sistema que contempla un conjunto de 2 o ms ecuaciones lineales.Por ejemplo:

Se empieza a considerar una ecuacin miembra de un Sistema de ecuaciones lineales simultneas cuando esta posee ms de una variable, ya que en caso contrario no tendra sentido formar un Sistema de ecuaciones lineales simultneas de ecuaciones de una variable si tienen solucin independiente cada una fcilmente.Existen 3 tipos de casos presentes al momento de determinar la solucin de un Sistema de ecuaciones lineales simultneas

1.- Que tenga una solucin nica.2.- Que no tenga solucin.3.- Que tenga una solucin infinita.

Aclarado el punto, tal solucin de un Sistema de ecuaciones lineales simultneas se traduce grficamente en la interseccin de diversos elementos sean estos planos, rectas ,etc. dependiendo de la concepcin donde se encuentren, por ejemplo la siguiente interseccin de rectas conforman un Sistema de ecuaciones lineales simultneas desconocido pero lo conforman.

Existen diversos mtodos para encontrar las posiciones de interseccin entre los elementos, tanto mtodos algebraicos como lineales:Entre los mtodos algebraicos, destacan:1.- Mtodo de sustitucin.2.- Mtodo de igualacin.3.- Mtodo de sumas y restas.4.- Mtodo grfico.

Por otro lado en los mtodos lineales, destacan:a.- Mtodo de eliminacin de Gauss.b.- Mtodo de Gauss-Jordan.c.- Mtodo de la inversa.d.- Mtodo de determinantes. Ya se han mencionado los mtodos Lineales, por lo consiguiente se mencionaran los mtodos algebraicos.Mtodo de sustitucin:Sea el sistema

Primero en una de las ecuaciones se halla el valor de una de las incgnitas despejemos la y en la primera ecuacin suponiendo como conocido el valor de xy = 11 - 3xSe sustituye en la otra ecuacin el valor anteriormente hallado, es decir donde se encuentre una "y" colocaremos "(11 3x)".5x - (11-3x) = 13Ahora tenemos una ecuacin con una sola incgnita; la cual resolvemos normalmente5x 11 + 3y = 135x + 3x = 13 + 118x = 24x = 3Ya conocido el valor de x lo sustituimos en la expresin del valor de "y" que obtuvimos a partir de la primera ecuacin del sistemay = 11 - 3xy = 11 - 9y = 2As la solucin al sistema de ecuaciones propuesto ser x=3 e y=2Mtodo de igualacin:Sea el sistema:

Lo primero que haremos ser despejar en las dos ecuaciones la misma incgnita

Igualamos ambas ecuaciones11 - 3x = -13 + 5x8x = 24x = 3Este valor de x lo sustituimos en cualquiera de las ecuaciones de yy = 11 - 9y = 2Mtodo de Suma y Resta:Sea el sistema

Sumaremos miembro a miembro las dos ecuaciones que componen el sistema, la intencin es eliminar una variable por lo que si no se puede eliminar ninguna as no ms se multiplicaran las ecuaciones por nmeros que igualen alguno de los trminos, para que se elimine uno:Para este ejemplo eliminamos "y"

y sustituyendo este valor en cualquiera de las ecuaciones del sistema obtenemosy = 2Este mtodo sirve para cualquier cantidad de ecuaciones con la nica condicin que el nmero de variables desconocidas no sea mayor a la cantidad de ecuaciones.MATLAB.FUNCIONES PARA INTRODUCIR DATOS DESDE TECLADO.En MATLAB podemos cambiar el valor de los parmetros de entrada con el editor de script, guardar de nuevo el script modificado y correrlo. Pero es mucho ms fcil utilizar el comandoinputtal como hemos visto al final de la pginaVariables.a=input('primer coeficiente, a: ');str=input('mensaje: ','s');MATLAB imprime los resultados de los clculos y los guarda bien en una variable o enans, si no se especifica. En muchos casos esto es suficiente, pero en programas ms largos es necesario identificar o describir el resultado de un determinado clculo. MATLAB dispone de una funcinfprintfmuy verstil para mostrar distintos datos con formato, alternativamente se puede utilizar la funcindisp.LA FUNCINDISPLa funcindispde MATLAB se utiliza para mostrar un escalar, un mensaje (string), un vector o una matriz.En la lnea de comandos escribimos>> disp('resultado')resultado>> y=22;>> disp(y) 22>> x=1:0.5:3;>> disp(x) 1.0000 1.5000 2.0000 2.5000 3.0000>> A=[1 2 3; 4 5 6; 7 8 9];>> disp(A) 1 2 3 4 5 6 7 8 9LA FUNCINFPRINTFEs otra funcin para mostrar un mensaje o un resultado, pero que permite mezclar texto y valores numricos de las variables y tambin se puede ajustar el formato de los nmeros. Esta funcin tiene muchas posibilidades por lo que empezaremos con las ms sencillas.fprintf('texto %5.2f texto adicional', variable)En medio del texto se ha intercalado un valor numrico que contiene una variable con el formato %-5.2f, % es el smbolo que indica formato -, alinea el nmero hacia la izquierda +, imprime el signo (+ si es positivo y - si es negativo) 0, aade ceros 5, indica cinco caracteres que es el ancho del campo donde ese imprime el valor numrico, si el nmero es ms corto se aaden espacios o ceros delante del nmero. 2, indica la precisin, indica el nmero de dicimales que se mostrarn a la derecha del punto decimal f, indica que se utilizar la notacin (entero.decimal) por ejemplo 17.09 e, indica que se utilizar la notacin exponencial, por ejemplo1.709e+001 i, indica entero g, formato cortoVamos a calcular el alcance de un proyectil disparado con velocidad de 46.325 m/s haciendo un ngulo de 32 mediante la siguiente frmula.x=v20sin(2)g

Escribimos el scriptpruebapara probar la funcinfprintfang=32;v0=46.325;x=v0*v0*sind(2*ang)/9.8;fprintf('velocidad %2.4f m/s, ngulo de tiro %i, alcance %5.2f m\n',v0,ang,x)El carcter\nal final del texto en la funcinfprintfindica una nueva lnea, probar el efecto al quitarlo. Las variables que guardan los datosv0,angyxse ponen al final en el mismo orden que se citan en el texto separadas por comas. Se sugiere al lector que pruebe otros formatosCorremos el script en la ventana de comandos>> pruebavelocidad 46.3250 m/s, ngulo de tiro 32, alcance 196.82 mLA FUNCINSPRINTFLa funcinsprintfes similar aprintfsalvo que imprime en una variable. Se utiliza en combinacin con la funcin grficatextpara mostrar valores de una variable en un grfico%cdigo para dibujar un grficoplot(Vr,Pr,'r')text(1,1.35,sprintf('presin %1.3f',p))Vamos a ver como funciona en la ventana de comandos. Guardamos el valor que imprimesprintfen la variablestr.>> str=sprintf('el valor de pi es %1.3f',pi)str =el valor de pi es 3.142Al final defprintfse pone el carcter\nque indica una nueva lnea, no es necesario en la funcinsprintfCAPTURA DE ARREGLOS MULTIDIMENSIONALES.Damos a continuacin una introduccin bsica a la definicin y manipulacin de matrices. La definicin de una matriz es anloga a la definicin de un vector. Podemos considerarla como una columna de vectores fila (los espacios son necesarios):>> A = [ 1 2 3; 3 4 5; 6 7 8]A =1 2 33 4 56 7 83O como una fila de vectores columna:>> B = [ [1 2 3] [2 4 7] [3 5 8]]B =1 2 32 4 53 7 8(de nuevo, es importante incluir los espacios.)Si hemos estado haciendo estas pruebas con vectores, tendremos muy probablemente una gran cantidad de variables definidas. Si queremos conocer esta informacin, el comando whos nos permitir cules son las variables que tenemos en nuestro espacio de trabajo.>> whosName Size Elements Bytes Density Complex A 3 by 3 9 72 Full No B 3 by 3 9 72 Full No ans 1 by 3 3 24 Full No v 1 by 5 5 40 Full NoLa notacin utilizada en MATLAB es la notacin usual en algebra lineal.De modo que, por ejemplo, la multiplicacin de matrices en MATLAB se hace de forma sencilla. Debemos tener cuidado con las dimensiones de las matrices a la hora de multiplicarlas (deben tener el tamao adecuado.)GRAFICASLa necesidad ms simple de la representacin grfica es disponer de dos series de datos x e y y representar en el plano la serie de datos siendo x la coordenada del eje de abscisas e y la coordenada del eje de ordenadas. Esta operacin se lleva a cabo mediante la funcin plot independientemente de la complejidad de los datos.plot(...)Representa series de datos en el plano. Las posibilidades de uso de esta funcin son infinitas y la ayuda, que no se reproducir aqu, es de las ms extensas del lenguaje.Adems de esta simple manipulacin de vectores, MATLAB nos permitir tambin representar grficamente los resultados que obtengamos. Tecleando:>> plot(x,y)Tendremos una representacin grafica de la funcin antes considerada. Si tecleamos>> plot(x,y,rx)Obtenemos la misma grafica pero las lneas son remplazadas por puntos rojosen forma de x. Para ver mas opciones del comando plot, podemos teclear>> help plotEl comando help es, sin duda, el camino mas corto para estar seguro de la sintaxis de un determinado comando de Matlab.El paso siguiente es poner etiquetas: un identificador para cada eje y un ttulo si lo creemos necesario. Las etiquetas se aplicarn, tal como se ha justificado en la seccin anterior, slo en la ventana activa.title(str)Aade un ttulo a la figura activaxlabel(str)Aade una etiqueta al eje x de la ventana activaylabel(str)Aade una etiqueta al eje y de la ventana activaPor ejemplox = linspace(0,500,10000);plot(x,exp(-x/100).*sin(x));title(Una funcion cualquiera)xlabel(Tiempo)ylabel(Amplitud)Con el cdigo anterior se obtiene la siguiente figura:El paso siguiente es dotar a los grficos con ms de una curva de una leyenda que las distinga. Esto se consigue mediante la funcin legend.legend(...)Al igual que con plot podemos utilizar esta funcin de mltiples maneras. La ms simple es pasarle como argumento tantas cadenas de caracteres como curvas hayamos representado y automticamente asignar por orden cada curva al identificador.Supongamos que queremos representar el seno hiperblico y el coseno hiperblico y para distinguirlos no nos vale acordarnos que Matlab siempre pinta la primera curva en azul y la segunda en verde. Para ello podemos hacer lo siguiente:x = linspace(-pi,pi,100);plot(x,sinh(x),x,cosh(x));legend(seno hiperbolico,coseno hiperbolico);

En los manuales de Matlab escritos con poco cuidado siempre se trata la sentencia for como un mtodo para generar bucles en la ejecucin del programa. Rigurosamente hablando se trata de un iterador.La manera ms habitual de utilizar la sentencia es como sigue:for i = 1:5disp(i)end12345Esto parece un bucle as que an no entendemos muy bien en qu se diferencia un bucle de un iterador. La parte ms importante de un bucle es un ndice que se va incrementando a medida que el flujo de ejecucin entra en l. Si el ejemplo anterior fuera un bucle cada vez que la ejecucin pasa por la sentencia for la variable i se incrementara en una unidad seguira corriendo. Pero no es esto lo que sucedefor i = 1:5disp(i)i=i+5;end12345Hemos incrementado el ndice manualmente pero la sentencia for ha asignado el nuevo nmero al ndice cada vez que el flujo de ejecucin ha pasado por l. *La sentencia for itera el ndice i por la secuencia 1:5 *.CONDICIONALESEl otro elemento esencial del control de flujo en cualquier lenguaje de programacin es la ejecucin condicional de bloques de cdigo. En Matlab, como en cualquier lenguaje de programacin creado por una mente mnimamente sana, la palabra clave correspondiente es if. A continuacin un breve ejemploa = zeros(4,4);for i = 1:4for j = 1:4if i==ja(i,j) = 2;elseif j == 4a(i,j) = -1;elsea(i,j) = 0;endendenda =2 0 0 -10 2 0 -10 0 2 -10 0 0 2Este fragmento de cdigo es bastante autoexplicativo.La forma general del while es:>> while (condiciones)(operaciones)endLas operaciones se repetirn mientras que las condiciones sean ciertas. Por ejemplo, dado un nmero a, el siguiente bloque permite calcular y mostrarel entero no negativo mas pequeo tal que 2^n >= a:>> n=0;>> while 2^n < an=n+1;end>> nUSO DE ARCHIVOS M.Matlab tienen especial importancia los ficherosM de extensin .m. Contienen conjuntos de comandos a ejecutar o definicin de funciones y se ejecutan al teclear su nombre en la lnea de comandos y pulsar intro (si se encuentra en el Current Directory) o al pinchar sobre l en Current Directory con el botn derecho del ratn y elegir run. Representan el centro de la programacin en Matlab.Un fichero .m puede llamar a otros ficheros .m y ficheros de comandos pueden ser llamados desde ficheros de funciones. En estos casos es importante tener en cuenta la definicin de las variables a utilizar, en la lnea de que tengan un tratamiento local o global.Por defecto, Matlab considera las variables locales, es decir, aunque varias funciones tengan la variable x, sta es diferente en cada caso a no ser que haya sido definida como global. Son ficheros de texto sin formato y que pueden crearse a partir de un editor de textos, no obstante, lo mejor es utilizar el editor del propio programa al que se accede por defecto al abrir un nuevo fichero.Para crear un nuevo fichero .m elegimos new M-File del men File o elegimos el icono correspondiente. Aparece entonces la pantalla del editor/Debugger donde podemos ir escribiendo las sentencias. En el caso de la figura el fichero contiene comentario, dos sentencias y otro comentario. Las sentencias seguidas de (;) no se mostrarn en pantalla al ejecutar el fichero.

El editor muestra en diferentes colores los diferentes tipos de comandos: Verde para los comentarios. Rojo para las cadenas de caracteres. Negro para las sentencias. Una posibilidad de ejecutar el fichero es elegir Run del men Debug (primeramente debe guardarse con un nombre). Es posible ejecutar el mismo por partes incluyendo breakpoints lo que puede hacerse con el icono de los puntos rojos. Si se tienen estos puntos de parada se continua de uno a otro con la opcin de Continue. Es posible visualizar el valor que van tomando los distintos elementos del fichero posndonos con el ratn sobre ellos. Es interesante ir conociendo los dems botones y mens del editor que nos permite eliminar los breakpoints, terminar la ejecucin.Resulta muy til para detectar errores y corregirlos y en general para programar

Estos ficheros, tambin llamados scripts, contienen listas de comandos que se ejecutan sucesivamente cuando se ejecuta dicho fichero, es decir cuando se escribe el nombre del fichero en la lnea de comandos y se pulsa intro. Es importante destacar que en estos ficheros, las variables que se crean pertenecen al espacio base del Matlab, algo que no ocurre en los ficheros de funcin donde las variables pertenecen slo al espacio de trabajo de esa funcin. FuncionesMatlab tiene definidas sus propias funciones, por ejemplo Sin, Cos, etc. En general, el programa tiene un gran nmero de funciones incorporadas, bien se trata de funciones intrnsecas, es decir, del propio cdigo ejecutable lo que las hace muy rpidas y eficientes, o bien se trata de funciones definidas en ficheros, normalmente .m, que vienen con el programa. A todo ello se 42 unirn las funciones creadas por el propio usuario. La importante diferencia de estas ltimas es que, para que el programa pueda trabajar con ellas, el correspondiente fichero .m debe estar en el directorio actual o en el path. El trabajo con funciones y el propio concepto de funcin en Matlab es parecido al que se tiene en C y en otros lenguajes de programacin. Toda funcin tendr:- Un nombre. Por ejemplo: f.- Unos argumentos. Van a continuacin del nombre y entre parntesis, separados por comas si son ms de uno. Por ejemplo: f(x) f(x,y).- Unas salidas o retornos que son el resultado de la funcin. La ventaja de Matlab es que pueden ser valores matriciales mltiples que se recogern en diversas variables que se agruparn entre corchetes. Por ejemplo: p=f(x) [p,q]=f(x).Funciones de librera Ya conocemos, si no puede consultarse la ayuda, los diversos tipos de funciones que tiene el programa. Se clasifican en:- Funciones matemticas elementales.- Funciones especiales.- Funciones matriciales elementales.- Funciones matriciales especficas.- Funciones para la descomposicin y/o factorizacin de matrices.- Funciones para anlisis estadstico de datos.- Funciones para anlisis de polinomios- Funciones para integracin de ecuaciones diferenciales ordinarias.- Resolucin de ecuaciones no-lineales y optimizacin.- Integracin numrica.- Funciones para procesamiento de seales.

Existen funciones (las matemticas trascendentes y algunas bsicas) que actan sobre escalares o sobre cada elemento de una matriz. Por ejemplo:>> sin(0)ans = 0>> A=[1 2 3]A = 1 2 3>> sin(A) 43Existen otras que slo actan sobre vectores, no sobre escalares ni matrices.Por ejemplo, max(x), min(x) devuelve el elemento mximo y mnimo de entre los elementos del vector x. Tambin nos dan la posicin donde se encuentra.>> A=[1 2 3]A = 1 2 3>> max(A)ans = 3De igual forma, otras funciones slo se aplican sobre matrices. Son las que se encuentran en el grupo de funciones matriciales elementales, funciones matriciales especiales y funciones de factorizacin y/0 descomposicin matricial. Por ejemplo trace(A) que nos da la traza de la matriz A, [p,q]=eig(A) nos da los valores propios y vectores propios asociados a la matriz A.Funciones creadas por el usuario La palabra function escrita al comienzo de un fichero .m nos permite definir una funcin constituyendo una de las aplicaciones ms importantes del programa. Su sintaxis es la siguiente:function parmetros de retorno=nonbre de la funcin (argumentos) cuerpo de la funcin Es muy importante incidir en que los argumentos o variables de la funcin son de carcter local, es decir, no interfieren con otras variables del mismo nombre que hayan sido definidas en otra parte del programa, otros ficheros .m o en la ventana de trabajo. Para que una funcin tenga acceso a variables que no se hayan definido como parte de sus argumentos, stas deben definirse como globales tanto en el programa principal como en los ficheros .m dnde se quiera tener en cuenta.

SIMULINKSimulink es una aplicacin que permite construir y simular modelos de sistemas fsicos y sistemas de control mediante diagramas de bloques. El comportamiento de dichos sistemas se define mediante funciones de transferencia, operaciones matemticas, elementos de Matlab y seales predefinidas de todo tipo.Simulink dispone de una serie de utilidades que facilitan la visualizacin, anlisis y guardado de los resultados de simulacin. Simulink se emplea profusamente en ingeniera de control.El entorno de trabajo de SimulinkSimulink es una herramienta de gran utilidad para la simulacin de sistemas dinmicos.Principalmente, se trata de un entorno de trabajo grfico, en el que se especifican las partes de un sistema y su interconexin en forma de diagrama de bloques. De nuevo, se trata de una herramienta amplsima que adems se complementa con numerosos elementos opcionales. Por tanto, nos limitaremos a dar unas pinceladas de los elementos ms tiles en Regulacin Automtica.Adems de las capacidades de simulacin de las que est dotado Simulink, conviene destacar que contiene cmodas utilidades de visualizacin y almacenamiento de resultados de simulacin.Uso de SimulinkEn primer lugar, lanzaremos la aplicacin escribiendo simulink en la lnea de comandos de Matlab, o abriendo desde el Explorador de Windows cualquier fichero con extensin .mdl. En el primero de los casos se abrir la ventana de la figura a continuacin:

Ventana navegacin de bloques de Simulink (Simulink Library Browser).La ventana inicial no est destinada a crear modelos de simulacin; su funcin principal consiste en navegar por la enorme librera de bloques disponibles para el modelado.En ella distinguimos dos partes: la izquierda contiene una visin en forma de rbol de todos los Toolboxes instalados que contienen bloques Simulink. La amplitud de este rbol depender de las opciones que hayamos activado al seleccionar Matlab.De todos los nodos del rbol nos interesan, de momento, los denominados Simulink y Control System Toolbox. Cabe mencionar adems, por su inters, los bloques Real Time Workshop destinados a generar automticamente cdigo de control para determinadas plataformas Hardware comerciales.La parte derecha de la ventana de la figura muestra los bloques Simulink contenidos en el Toolbox o nodo de la parte izquierda de la ventana. Estos bloques se deben arrastrar sobre el espacio de trabajo de Simulink para la creacin de modelo a simular.Por ltimo, cabe indicar que en la parte superior de la ventana de inicio de Simulink hay varias herramientas como la bsqueda de un bloque determinado a partir de su nombre, que nos pueden resultar bastante tiles.El espacio de trabajo de SimulinkSi pulsamos en el icono superior izquierdo de la ventana de la figura (pgina en blanco), se abre una ventana blanca sobre la que iniciaremos la creacin de un modelo de simulacin. Dicha ventana se muestra en la siguiente figura.

Figura: Espacio de trabajo de Simulink.En el espacio de trabajo de Simulink crearemos un modelo insertando los bloques correspondientes. Concretamente realizaremos la simulacin del sistema de control representado en la figura. En lugar de emplear las definiciones en Matlab de las funciones de transferencia crearemos las funciones de transferencia directamente sobre el diagrama de bloques.En primer lugar, hemos de insertar tres bloques de tipo Funcin de Transferencia en el modelo. Para ello tecleamos la palabra transfer en el campo de bsquedas en la parte superior de la ventana de navegacin y el buscador localizara el bloque llamado Transfer Fcn, que cuelga del nodo Simulink, como se muestra en la figura.

Una vez localizado el bloque Transfer Fcn arrastraremos dicho bloque hacia el espacio de trabajo de Simulink. El arrastre de bloques se realiza seleccionando el icono del bloque con el botn izquierdo del ratn, y manteniendo este pulsado se desplazara el cursor hasta la ventana del modelo.Repetiremos la operacin tres veces, para reproducir una estructura, dando lugar a la ventana mostrada en la figura.

Una vez insertados los bloques de las funciones de transferencia, les asignamos nombres especficos (G1,G2 y G3) editando el texto al pie de cada icono, y les damos valores a dichas funciones, para que coincidan con los parmetros de las funciones G1(s), G2(s) y G3(s) definidas anteriormente.Con este fin, haremos doble click sobre cada bloque de funcin de transferencia, y en la ventana que se abre en cada caso, introduciremos los vectores de coeficientes de los polinomios numerador y denominador de cada funcin de transferencia.

Muestra la ventana donde se introducen los parmetros de G1(s).Una vez configuradas las tres funciones de transferencia las conectaremos entre s con arreglo a la estructura de interconexin de bloques. Para ello empleamos las siguientes operaciones:

OperacinProcedimiento

Conectar bloques (I)Para conectar las salidas de un bloque a la entrada de otro, hacer click con el botn izqdo. Del ratn en el bloque origen. Pulsar y mantener la tecla CTRL y hacer de nuevo click sobre el bloque destino.

Conectar bloques (II)Tambin se puede extraer un cable de seal haciendo click en el saliente derecho del bloque origen y prolongarla seal (pulsando y manteniendo el botn izquierdo del ratn) hasta llegar a la parte izquierda del bloque destino

Bifurcar cablesUn cable de seal (que lleva la salida de un bloque hacia otro bloque), puede bifurcarse para distribuir la seal a varios bloques pulsando con el botn derecho en cualquier punto del cable.

Sumar o restar sealesLas seales procedentes de salidas de los bloques se pueden sumar o restar entre s mediante el bloque sumador, que se ubica fcilmente tecleando Sum en la ventana de navegacin de Simuink.

Tras una serie de operaciones de los tipos indicados en la tabla anterior, logramos construir la estructura de realimentacin de la figura. En esta figura hemos aadido dos bloques nuevos: Step y Scope. Ambos pertenecen, respectivamente, a los nodos Simulink/Sources y Simulink/Sinks

Modelo completo.Fuentes y sumideros de sealLos bloques de suma y resta de seales y los de funciones de transferencia, funcionan como procesadores de seal. Sin embargo, en las simulaciones han de existir fuentes de seal externas, pues lo que se pretende en general es ver cmo responden determinados sistemas a estmulos exteriores.En nuestro ejemplo necesitamos una seal externa para generar una referencia a seguir por el sistema controlado. Esta referencia debe ser, lgicamente, cambiante con el tiempo. En nuestro caso emplearemos una seal de tipo escaln, que se implementa, con sus parmetros especficos, mediante el bloque Step. Bloques como este, que solo tienen salidas y ninguna entrada, se localizan en el rbol de navegacin de Simulink en el nodo Simulink/Sources.Por otro lado, existen bloques con entradas y sin ninguna salida: nodos sumidero.Uno de ellos es el empleado en nuestro modelo para visualizar la salida del sistema: Scope. Los bloques de este tipo se ubican en el rbol de navegacin de Simulink en el nodo Simulink/Sinks.Conclusiones:Una de los principales usos de Matlab es la simulacin de cualquier sistema en el que se pueda representar matemticamente. Debido a esto es muy fcil de saber si un sistema es estable o inestable, podemos ver las respuestas en el tiempo y la frecuencia. Es de mucha utilidad y ayuda sobre todo al control.