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.