Sunteți pe pagina 1din 46

INSTUTITO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGERNIERIA MECANICA Y


ELECTRICA
UNIDAD PROFESIONAL
ZACATENCO.

TEORIA DE CONTROL 1

PRACTICA 1
USO de
MATLAB

ALUMNO: FLORES PEREZ LUIS GILBERTO


GRUPO: 7AV1
PROFESOR: FRANCISCO JAVIER VILLANUEVA MAGAA

Notacin matricial usada en algebra lineal


Propiedades
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 e
s 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 T
Una 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 de
2 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 ) 3x4

En general, la notacin
A = ( aij ) mxn
Denotar 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 cuadrada
La 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 rectangular

La matriz rectangular tiene distinto nmero de filas que de columnas, siendo su


dimensin mxn.

Matriz trinagular superior


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

Esto es:

Matriz triangular inferior


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

Esto es:

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

Se define como:

Matriz unidad o identidad


Una matriz identidad es una matriz diagonal en la que los elementos de la
diagonal principal son iguales a 1.

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

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


multiplicarlas.
Matriz transpuesta
Dada una matriz A, se llama matriz traspuesta de A a 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 simtrica

Diremos 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 dispersa
Son 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 una matriz de gran tamao en la que la mayor parte
de sus elementos son cero

Matriz llena

Vector fila
es una matriz de dimensiones
de elementos.

, esto es, una matriz formada por una sola fila

La traspuesta de un vector fila es un vector columna y viceversa.


El conjunto de todos los vectores filas forma un espacio vectorial que es el espacio
dual del conjunto de todos los vectores columna.

Vector columna

es una matriz de dimensiones


columna de
elementos.

, esto es, una matriz formada por una sola

La traspuesta de un vector columna es un vector fila y vice versa.


El conjunto de todos los vectores columna forma un espacio vectorial que es
el espacio dual del conjunto de todos los vectores 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 hermitiana
Una matriz
hermitiana (o hermtica)
es
una matriz
cuadrada de
elementos complejos que tiene la caracterstica de ser igual a su
propia traspuesta conjugada. Es decir, el elemento en la i-sima fila y j-sima
columna es igual al conjugado del elemento en la j-sima fila e i-sima columna,
para
todos
los
ndices i y j:
o,

escrita

con

la

traspuesta

conjugada A*:

es una matriz hermtiana.


Determinante
define como una forma multilineal alternada de 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 de volumen orientado fue introducido para estudiar el nmero de
soluciones de los sistemas de ecuaciones lineales.
Consideremos una matriz 3x3 arbitraria A = (aij). El determinante de A se define
como sigue:

=
= a11 a22 a33 + a12 a23 a 31 + a13 a21 a32
a13 a22 a31 a12 a21 a 33 a11 a23 a32.

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

Cofactor
Se llama cofactor del elemento aik del determinante D, al
el signo (-1)i+k y se denota Aik, esto es

Ejemplo:
Obtenga los cofactores A13 y A21 del determinante D dado:

De acuerdo con la frmula (1) el cofactor A13 est dado por

Y de la misma forma

menor Mik con

Igualdad de matrices
Dos matrices son iguales si 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,n

Ejemplo:

Matriz adjunta
La matriz adjunta es aquella en la que cada elemento se sustituye por su adjunto.
Se llama adjunto del elemento aij al menor complementario anteponiendo:
El signo es +

si i+j es par.

El signo es -

si i+j es impar.

Ejemplo

Rango
Si A es una matriz de orden m x n

,
Se puede considerar que cada una de sus filas es un vector de Rn y cada una de
sus columnas un vector de Rm . Al nmero mximo de vectores filas que son
linealmente independientes se denomina rango por filas y al nmero mximo de
vectores columna que son linealmente independientes se denomina rangopor
columnas.
Ambos nmeros coinciden. Por ello, podemos dar la siguiente definicin:
Se llama rango o caracterstica de una matriz al no de lneas (filas o columnas) que
son linealmente independientes. El rango de la matriz A se designa por rg(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 lineal

Dado un conjunto finito de vectores


son linealmente independientes si existen nmeros

, se dice que estos vectores


, 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 del signo igual no es cero, sino que simboliza
al vector nulo .
El conjunto de vectores nulos forma la matriz nula. Si tales nmeros no existen,
entonces los vectores son linealmente 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 vectores
si

de un espacio vectorial es linealmente independiente

Esta idea es importante porque los conjuntos de vectores que son linealmente
indepedientes, generan un espacio vectorial y forman una base para dicho
espacio. Entre las propiedades de 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 dependiente si
y solo si tiene algn vector que es combinacin lineal de los dems.

Vectores propios, vectores caracteristicos o eigenvectores

En 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 = e
Valores propios, valores caracteristicos o eigenvalores
Para 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 jacobiano
Dada una funcin vectorial f:ARnRm, donde (f1,f2,...,fm) son las funciones
escalares componentes de f. Si fi(a)i=1,2,...,m.
Definimos la matriz Jacobiana de f en el punto aA, y la representamos por Jf(a),
mediante la matriz mn donde cada fila es el vector gradiente de la
correspondiente funcin componente, es decir:

Matriz hessiana

Sea 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 x
Matriz 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 Lineal

Matriz 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, X3 en 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 producto
C = 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.
Si
son

El producto
. En la que

, B=

AB

es la matriz m 1
. son columnas de B.

A=

Ejemplo:

B=

cuyos

columnas

Producto de vector fila por vector columna.


Sea:
Vector
fila
:
Matriz
de
Vector
columna
:
Matriz
de

1xn
nx1

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


Matriz
1x1
El resultado es una matriz de un solo elemento que se
puede
asimilar
a
un
escalar
Ejemplo
[1 2 -1] x

[]

2
3 =
4

(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

[]
2
3
4

x[1 2 -1]=

][

( 21 )
(22)
(21)
2
4 2
=
(31) (32) (31) 3 6 3
4
8 4
( 41) ( 42)
(41)

Producto de matriz por escalar.


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

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 = I
Ejemplo.
Mtodo 1. Gauss.
Sea A una matriz cuadrada de orden n. Para calcular la matriz inversa de A, que
denotaremos como A1, seguiremos los siguientes pasos:
1. Construir una matriz del tipo M = (A | I), es decir, A est en la mitad izquierda
de M y la matriz identidad Ien 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 el mtodo 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|=20
3. Tendr rango mayor o igual que 2 si 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 tiene rango menor
que 3, por tanto r(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.
2.
3.
4.
5.

Descartamos las filas (o columnas) que cumplan las condiciones vistas


anteriormente.
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.
El rango ser mayor o igual a 2 si existe alguna submatriz cuadrada de
orden 2, tal que su determinante no sea nulo.
El rango ser mayor o igual a 3 si existe alguna submatriz cuadrada de
orden 3, tal que su determinante no sea nulo.
El rango ser mayor o igual a 4 si 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

5x
x

+ 3y
+y

+ 4z
z

=
=

2
1

Intercambiamos filas y eliminamos.

Eliminamos la ultima fila y se obtiene la triangulacin.

Ejemplo 2.

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

Que

tenga
Que

Que

una
no

tenga

una

solucin
tenga
solucin

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

Mtodo
Mtodo
Mtodo

de

de
de
sumas

sustitucin.
igualacin.
restas.

4.-

Mtodo

grfico.

Por otro lado en los mtodos lineales, destacan:


a.Mtodo
de
b.Mtodo
c.Mtodo
d.- Mtodo de determinantes.

eliminacin
de
de

de
la

Gauss.
Gauss-Jordan.
inversa.

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 x
y = 11 - 3x
Se sustituye en la otra ecuacin el valor anteriormente hallado, es decir donde se
encuentre una "y" colocaremos "(11 3x)".
5x - (11-3x) = 13
Ahora tenemos una ecuacin con una sola incgnita; la cual resolvemos
normalmente
5x
5x
8x
x=3

11
3x

+
=
=

3y
13

=
+

13
11
24

Ya conocido el valor de x lo sustituimos en la expresin del valor de "y" que


obtuvimos a partir de la primera ecuacin del sistema
y
y
y=2

=
=

11
11

As la solucin al sistema de ecuaciones propuesto ser x=3 e y=2


Mtodo de igualacin:
Sea el sistema:

3x
9

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

Igualamos ambas ecuaciones


11
8x
x=3

3x

=
=

-13

5x
24

Este valor de x lo sustituimos en cualquiera de las ecuaciones de y


y
y=2

11

Mtodo 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 obtenemos


y=2
Este 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 comando input tal como hemos visto al final de la pgina Variables.
a=input('primer coeficiente, a: ');
str=input('mensaje: ','s');
MATLAB imprime los resultados de los clculos y los guarda bien en una variable
o en ans, 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 funcin fprintf muy verstil para
mostrar distintos datos con formato, alternativamente se puede utilizar la
funcin disp.
LA FUNCIN DISP
La funcin disp de 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

LA FUNCIN FPRINTF
Es 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 corto

Vamos 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 script prueba para probar la funcin fprintf


ang=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 \n al final del texto en la funcin fprintf indica una nueva lnea, probar el
efecto al quitarlo. Las variables que guardan los datos v0, ang y x se ponen al final
en el mismo orden que se citan en el texto separadas por comas. Se sugiere al
lector que pruebe otros formatos
Corremos el script en la ventana de comandos
>> prueba
velocidad 46.3250 m/s, ngulo de tiro 32, alcance 196.82 m

LA FUNCIN SPRINTF
La funcin sprintf es similar a printf salvo que imprime en una variable. Se utiliza
en combinacin con la funcin grfica text para mostrar valores de una variable en
un grfico
%cdigo para dibujar un grfico
plot(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
imprime sprintf en la variablestr.
>> str=sprintf('el valor de pi es %1.3f',pi)
str =
el valor de pi es 3.142
Al final de fprintf se pone el carcter \n que indica una nueva lnea, no es
necesario en la funcin sprintf
CAPTURA 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=
123
345
678
3
O como una fila de vectores columna:
>> B = [ [1 2 3] [2 4 7] [3 5 8]]
B=
123
245
378
(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.
>> whos
Name

Size

3 by 3

Elements

Bytes

Density

Complex

72

Full

No

3 by 3

72

Full

No

ans

1 by 3

24

Full

No

1 by 5

40

Full

No

La 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.)
GRAFICAS
La 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 rojos
en forma de x. Para ver mas opciones del comando plot, podemos teclear
>> help plot
El 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 activa
xlabel(str)
Aade una etiqueta al eje x de la ventana activa
ylabel(str)
Aade una etiqueta al eje y de la ventana activa
Por ejemplo
x = 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:5
disp(i)
end
1
2
3
4
5
Esto 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 sucede
for i = 1:5
disp(i)
i=i+5;
end
1
2
3
4
5
Hemos 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 *.
CONDICIONALES
El 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 ejemplo
a = zeros(4,4);
for i = 1:4
for j = 1:4
if i==j
a(i,j) = 2;
elseif j == 4
a(i,j) = -1;
else
a(i,j) = 0;
end
end
end
a=
2 0 0 -1
0 2 0 -1
0 0 2 -1
0002
Este fragmento de cdigo es bastante autoexplicativo.
La forma general del while es:
>> while (condiciones)
(operaciones)
end
Las operaciones se repetirn mientras que las condiciones sean ciertas. Por
ejemplo, dado un nmero a, el siguiente bloque permite calcular y mostrar
el entero no negativo mas pequeo tal que 2^n >= a:
>> n=0;
>> while 2^n < a
n=n+1;

end
>> n
USO 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.

Funciones
Matlab 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=
123
>> sin(A)
43
Existen 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=
123
>> max(A)
ans =
3
De 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.

SIMULINK
Simulink 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 Simulink
Simulink 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 Simulink
En 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 Simulink
Si 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:

Operacin
Conectar bloques (I)

Conectar bloques (II)

Bifurcar cables

Procedimiento
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.
Tambin se puede extraer un cable de
seal haciendo click en el saliente
derecho del bloque origen y prolongar
la seal (pulsando y manteniendo el
botn izquierdo del ratn) hasta llegar
a la parte izquierda del bloque destino
Un 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 seales Las 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 seal
Los 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.

S-ar putea să vă placă și