You are on page 1of 7

1

Laboratorio 1
Introduccin al MATLAB para sistemas de control
1.1.

1.2.

Objetivos.Familiarizar al estudiante con el uso del programa desarrollado MATLABSimulink.


Incentivar el uso de un computador como herramienta de desarrollo, anlisis y
diseo.

Fundamento terico.-

El MATLAB es una herramienta interactiva y abierta para computacin cientfica,


programacin y visualizacin de datos, desarrollada por The MathWorks, Inc.
Originalmente, este sistema fu escrito por Cleve Moler, en 1980, en la
Universidad de Mexico, en lenguaje Fortran: El objetivo perseguido era mejorar el
interfaz de usuario con la librera de subrutinas LINPACK.
MATLAB es un sofisticado lenguaje de programacin desarrollado en C, basado
en matrices para clculos cientficos y de ingeniera. El nombre es una abreviatura
para MATrix LABoratory. MATLAB trabaja esencialmente con matrices numricas
rectangulares (que pueden tener elementos complejos), lo cual implica el uso de
vectores fila o columna. Por esta razn este paquete tiene una proyeccin hacia el
control moderno (descrito a variables de estado) y es til para ilustrar las
relaciones existentes entre las tcnicas clsicas y modernas de anlisis. Para ello,
contiene un conjunto de rutinas de propsito general que permiten modelar,
analizar y simular cualquier tipo de sistema dinmico. En la actualidad, MATLAB
se aplica en muchos campos de la ingeniera pues muchas libreras (toolboxes) de
propsito especfico han sido desarrolladas, as por ejemplo: Control System,
Comunication Toolbox, Filter Design Toolbox, etc.
MATLAB es un sistema abierto ya que el usuario puede editar sus propias
funciones especficas, las mismas que son guardadas a manera de macros o
programas denominados archivos.m porque son almacenados en las bibliotecas
de MATLAB mediante archivos ASCII con la extensin .m

1.2.1.

Comandos generales.-

Algunos se indican a continuacin:


help
lookfor
demo
who
what
clear
computer
^C
exit, quit

ayuda
busqueda de funciones relacionadas al argumento
demostraciones
muestra variables en memoria
lista archivos especficos de MATLAB
limpia variables y funciones
tipo de computadora
caracteres y operadores especiales
sale de MATLAB

Conforme se avance se especificaran algunas de las funciones mas importantes.

1.2.2.

Manipulacin de matrices.-

Existen diferentes formas de introducir una matriz, entre ellas, la siguiente:

A 1 2 3;4 5 6;7 8 9

Se crea una matriz 3x3 y la asigna a la variable A. Los elementos en una fila de
una matriz pueden separarse tanto por comas como por espacios en blanco.
Las operaciones que se pueden realizar con matrices son:
+
*

\
/

adicin
sustraccin
multiplicacin
^
potenciacin
transpuesta
divisin izquierda. A\B es equivalente a inv(A)*B
divisin derecha. A/B es equivalente a A*inv(B)

Estas operaciones para matrices se aplican tambin a escalares (matrices 1x1). Si


los tamaos de las matrices son incompatibles para la operacin matricial se
obtiene un mensaje de error.
Se puede adems efectuar operaciones con arreglos (elemento por elemento).
Para ello, las operaciones *,^,\, y /, deben ser precedidas por un punto. Por
ejemplo, tanto

1
1

2
2

3 *1 2 3 1
3^ 2 1 4 9

Para la construccin y manipulacin de matrices existen diferentes funciones que


estn disponibles en MATLAB. Entre ellas:
eye
matriz identidad
zeros
ones
matriz de unos
inv
eig
valores propios
poly
expm
matriz exponencial
rank
det
determinante
size
min
minimo elemento
max
rand
matriz generada aleatoriamente trace
tril
triangular inferior de una matriz
roots
races del polinomio caracterstico
triuparte triangular superior de una matriz

matriz de ceros
inversa
polinomio caracteristico
rango
tamano
mximo elemento
traza

Para generar vectores y submatrices se usa la notacin de dos puntos. Su uso


adecuado hace que las instrucciones sean ms simples y legibles. Por ejemplo,
observe el resultado de las siguientes expresiones:
1:3
1:0.5:3

genera un vector fila 1 2 3


genera un vector de 1 a 3 con pasos de 0.5, es decir

1.5 2

A(:,2)
A(1:2,)
A(2,3)

2.5 3

es la segunda columna de A
son las dos primeras filas de A
elemento de la fila 2 y columna 3 de la matriz A

Los arreglos que pueden hacerse son diversos. El estudiante experimentara en el


laboratorio el resultado de ellos.

1.2.3.Manejo de grficos.MATLAB puede generar grficos planos y grficos de malla de superficies


tridimensionales.
Para el manejo de grficos planos, la instruccin plot crea grficos en el plano XY;
si x e y son vectores de la misma longitud, la instruccin plot(x,y) accede a la
pantalla grafica y realiza un grafico plano de los elementos de x versus los
elementos de y. Por ejemplo, se puede dibujar la grafica de la funcin y sen 2 ( x) ,
sobre el intervalo [-4,4] con las siguientes instrucciones:
t 4 : 0.01 : 4 ;

y sin(t ).^ 2 ;

plot (t , y )

Las instrucciones pueden escribirse en forma horizontal separadas por el


operador ; como se ha hecho en este caso o se las puede ejecutar una a una.
En el ejemplo anterior, cabe notar que t es una particin del dominio con paso
0.01 mientras que y es un vector (la funcin sin es vectorial) debido a que toma los
valores del seno para todos los valores de dicha particin. De ah que se utiliza el
operador con arreglos (.^).
Diferentes funciones pueden dibujarse sobre una misma figura; para ello basta
definir cada funcin con nombre diferente y ejecutar la instruccin; Ej.:
Plot(t,y1,t,y2)
Otra forma es mantenerlo abierta la pantalla de grficos, para ello se ejecuta la
instruccin hola como se muestra en el siguiente set de instrucciones:
Plot(t,y1);

hold;

plot(t,y2)

Para salir de la pantalla de grficos se ejecuta hold nuevamente.


Puede ponerse titulo, comentarios en los ejes o en cualquier otra parte con los
siguientes comandos que tienen una cadena como argumento:
Title
Xlabel
Ylabel
Gtext
Text
Axis
Gris
Subplot

(titulo del grafico)


(comentario en el eje x)
(comentario en el eje y)
texto posicionado interactivamente
texto posicionado mediante coordenadas
permite escalar los ejes manualmente
cuadriculado en el grafico
permite dividir la pantalla para visualizar varios grficos a la vez

Para el caso de los grficos en tres dimensiones, Matlab emplea las funciones
mesh meshgrid. La instruccin mesh(z) crea un grafico tridimensional en
perspectiva de la matriz z. La superficie de la malla esta definida por las
coordenadas z de los puntos sobre un cuadriculado rectangular en el plano XY.

Para dibujar la grafica de una funcin z=f(x,y) sobre un rectngulo, se define en


primer lugar los vectores xx e yy. Un ejemplo de este tipo de grficos puede verse
al ejecutar las siguientes instrucciones:

X , Y meshgrid (8 : 0.5 : 8);


R sqrt ( X .2 Y .2 ) eps;
Z sin( R ). / R;
mesh( X , Y , Z )

1.2.4.

Control de flujo.-

Bsicamente, las instrucciones para el control de flujo de MATLAB operan como


en la mayor parte de los lenguajes usuales.
while. La forma general de un bucle while es:
while

expresin
Instrucciones

end
El lazo while repite un grupo de instrucciones un numero indeterminado de veces
mientras la expresin sea verdadera.
if. La forma general de un bucle if es:
if
elseif

expresin
Instrucciones
expresin
Instrucciones

else
Instrucciones
end
Las instrucciones se ejecutaran solo si la expresin es verdadera. Si solo se tiene
dos ramificaciones se puede omitir, desde luego, la porcin correspondiente a
elseif.
En ambos lazos, la expresin es generalmente el resultado de utilizar los
operadores relacionales:
<
>
==
&
/
~

menor que
mayor que
igual a
and
or
negacin lgica

<=
menor o igual que
>=
mayor o igual que
~=
diferente de
&&
and breve:
//
or breve
xor(A,B)
or exclusivo

for. La forma general de un bucle for es:

5
for

variable = inicio:incrementos:fin
Instrucciones

end
El lazo for repite un grupo de instrucciones un numero predeterminado de veces
definido por la particin de la variable. Por ejemplo, sea la particin i = 1 : 0.1 : 5.
Significa que las instrucciones se ejecutaran mientras la variable i vari entre 1 y 5
en pasos de 0.1.
switch case. La forma general de esta estructura es:
switch n
case 1
Instrucciones
case 2
Instrucciones

Otherwise
Instrucciones
end
La estructura switch case ejecuta las instrucciones correspondientes al caso
indicado por el valor asignado a switch (n), si el valor no corresponde a los
especificados para cada caso, se ejecuta el grupo d instrucciones indicado en
otherwise.
break. Esta instruccin permite salir de un lazo while o for.

1.2.5.

Script.-

Matlab permite colocar rdenes en un simple archivo de texto y, a continuacin,


decirle a matlab que lo abra y evale las rdenes exactamente como si hubiesen
sido escritas desde la lnea de orden de Matlab. Estos archivos se llaman script o
archivos-m, y deben finalizar con la extensin m.
Para crear un archivo .m en Matlab, se debe dirigir a FILE, NEW, y finalmente MFILE
Lectura y escritura interactiva de variables:
disp(informacin a mostrar);
permite imprimir en pantalla un mensaje de texto o el valor de una matriz
var=input(mensaje de ingreso de datos);
imprime un mensaje en la lnea de comandos de MATLAB y recupera como valor
de retorno un valor numrico o el resultado de una expresin tecleada por el
usuario.

1.2.6.

Funciones y subfunciones.-

6
Las funciones permiten definir funciones enteramente anlogas a las de
MATLAB, con su nombre, sus argumentos y sus valores de retorno. Los
ficheros *.m que definen funciones permiten extender las posibilidades de
MATLAB; de hecho existen bibliotecas de ficheros *.m que se venden (toolkits) o
se distribuyen gratuitamente (a travs de Internet). Las funciones definidas en
ficheros *.m se caracterizan porque la primera lnea (que no sea un comentario)
comienza por la palabra function, seguida por los valores de retorno (entre
corchetes [ ] y separados por comas, si hay mas de uno), el signo igual (=) y el
nombre de la funcin, seguido de los argumentos (entre parntesis y separados
por comas).
function [lista de valores de retorno] = name (lista de argumentos)
nota: name es el nombre de la funcin dentro del archivo name.m
la lista de valores de retorno y/o argumentos pueden no ir.
Ejemplo: Realizar una funcin que halle el valor mximo y el valor mnimo de un
vector de cualquier longitud.

1.3.

Trabajo preparatorio.-

Leer la informacin proporcionada en la hoja gua. Se preguntara al inicio de la


prctica.

1.4.

Parte Experimental.-

1.4.1. Lea el fundamento terico de esta practica de laboratorio

1.4.2. Dada las matrices :

8
1
5

7
3
2

2
4
8

4
3
3
B
4
2
2
5

8
7
3
1

1).- Realiza en MATLAB las siguientes operaciones:


a. Crear la matriz E1 con las dos columnas centrales de A usando el
operador dos puntos.
b. Crear la matriz E2 con las filas 1 y 2 y las columnas 2 y 3 de A usando dos
puntos.
c. crear la matriz E3 colocando E1 y B lado por lado.
d.- Encuentre el producto de C2,4 y D1,2.
2).-Indique el resultado de las siguientes operaciones y que significa cada
una de ellas (utilice Matlab):
a. A(:,1)

b. A(2,)

f. A(:,:)

g. A(2:4)=[ ]

k. zeros(size(A))

c. A(:,2:3)

d. A(:,1:2:3)

h. ones(3,3)

l. Rand(size(A))

e. B=[A,[ones(1,2);eye(2)]]

i. eye(3)

j. diag(A)

m. Magic(length(A))

1.4.3. Grafique las siguientes funciones sobre un mismo grafico.

a).-

b).-

t 1
con 7 t 7
t2 4
Los vectores deberan tener al menos 300 puntos para su graficacin.
y (t )

1 sen 2 (t )
,
t

1
y (t ) sen
t

z (t )

0.01 t 1 usar plot y fplot

Utilizando el comando subplot, grafique las funciones del numeral anterior.

1.4.4. Utilizando el comando plot, graficar la siguiente funcin en el intervalo t


[0,1] con una precisin de 0.1, y valores v=5 m/s y a= - 32 m/s 2 incluir
etiquetas en los ejes y un titulo en la figura.

1.4.5. Implementar una funcin:


function [minimo; maximo;media; desviacion] = estadisticos(vector)
que recibe como argumento de entrada una matriz "vector" de 1 fila y N
columnas, y devuelve los valores mnimo y mximo, as como la media y la
desviacin tpica de todas las componentes del vector. No se permite el uso
de las funciones MATLAB max, min, mean y var. La implementacin tiene que
basarse en expresiones condicionales y bucles.
Nota: Usar la funcin MATLAB length para hallar la longitud del vector de
entrada.
1.4.6. Escribir un programa que permita ingresar una palabra, y posteriormente
imprima la palabra con las letras en orden inverso. Ejemplo:
Se ingresa: INGENIERIA
Se imprime : AIREINEGNI

1.5.

Informe.-

Realice un programa que cuente con dos opciones, la primera que permita introducir
un vector de n elementos (debe preguntarse al usuario), y realice la media aritmtica
y la desviacin media de los elementos. Adems debe crearse otro vector con los
mismos elementos pero ordenados. La segunda opcin debe realizar una bsqueda
en el vector anterior (el usuario debe ingresar el valor a buscar), pero primero debe
verificarse si ya se introdujeron los elementos. En caso que exista uno o ms
elementos iguales, debe tenerse como resultado el ndice del mismo. Si no existe el
valor a buscar debe verse un mensaje que advierta de este suceso.

1.6.

Bibliografa.-

The Math Works Inc., Manuales de MATLAB.

You might also like