You are on page 1of 13

LABORATORIO DE CONTROL AUTOMATICO

Practica 1 Introduccion a MATLAB


OBJETIVO:
El objetivo de esta practica es dar una introduccion al ambiente de trabajo de Matlab
Introduccion:
Matlab (Matrix Laboratory) Es un lenguaje de programacion amigable al usuario para hacer
calculos numericos o matematicos con caracteristicas mas avanzadas y jmucho mas facil de usar
que los lenguajes de computadora como Pascal o C, porpocionando un entorno rico para la
visualizacion de datos a traves de sus poderosas capacidades graficas.
Matlab es una plataforma de desarrollo de aplicaciones, donde conjuntos de herramientas
inteligentes (archivos de matlab) para la resolucion de problemas en areas especificas, a menudo
llamadas toolboxes, se pueden desarrollar con facilidad relativa. Las areas donde los toolboxes
estan disponibles invluyen procesamiento de seales, diseo de sistemas de control, simulacion de
sistemas dinamicos, identificacion de sistemas, redes neuronales y otras.
Desarrollo:
Durante el desarrollo de esta practica se vera el funcionamiento del ambiente de trabajo de
Matlab, en cada uno de las explicaciones se dan ejemplos del funcionamiento del ambiente de
Matlab, se recomienda al alumno realice dichos ejemplos para su mejor entendimiento.
Iniciando Matlab
Matlab para windows puede iniciarse seleccionandolo desde el icono de windows. Al ejecutarse
matlab se crea una ventana, donde aparece el prompt de Matlab ">>" indicando que esta en
espera de algun comando. De estas, la ventana de orden es el lugar fundamental donde se
interacciona con matlab, esta venta se muestra a continuacion:
Matematica sencilla:Matlab ofrece las
siguientes operacinoes basicas:

las expreciones se evaluan de izquierda a


derecha, con la operacion de potencia teniendo la orden de presendencia mas alta, seguida por la
multiplicacion y division que tienen ambas igual precedencia y seguidas finalmente por la suma y

resta que tienen ambas igual precedencia. Se pueden usar parentesis para alterar esta usual
ordenacion.
Formato de visualizacion de numeros
los formatos de visualizacion de numeros no cambian la represetacion interna de un numero
cuando se escogen diferentes formatos; solo se modifica la visualizacion del numero, los formatos
numericos son:

Experiones fundamentales
Trabajar en el entrono Matlab es muy simple ya que la mayoria de los comandos son ingresados
de la misma manera que lo haria matematicamente. Por ejemplo escribiendo:
>>a=4/3

dara como resultado

>> a = 1.333

por medio de este comando se le ha asignado el valor 1.333 a la variable "a". Matalb reconoce los
pirmeros 19 caracteres de los nombres de las variables requiriendo solamente que el nombre
comience con una letra. Otra particularidad es que Matalb es sensible a las mayusculas. En caso de
estar interesado solamente en el resultado de la expresion y no en la asignacion del mismo a
alguna varible, escribiendo:
>>1/4

genera el siguiente resultado >> ans = 1.333

donde la variable "ans" es una variable interna usada por Matlab para almacenar datos que no han
sido asignados a ninguna otra variable. Notar que el contenido de ans cambia cada vez que una
operacion como la anterior es realizada, por lo tanto si usted considera que un resultado puede
ser utilizado en los subsecuentes calculos, es conveniente guardarlo en alguna otra variable.
Matlab tiene alguna variables predefinidas como: i, j = sqrt(-1), = pi, NaN (not a number por
ejemplo 0/0). como estas varibales peden ser sobreescritas, se recomienda usarlas con cuidado y
que por ejemplo si i o j se usan como indices de elementos de un vector matriz y luego se desea
relizar la siguiente asignacin:
>> z = 1 + 2*i
(note la manera de ingresar un numero complejo)

El resultado no ser el nmero complejo esperado. Para establecer el valor de i se puede usar el
comando clear i
Ayuda en linea
Matlab tiene un comando help muy bien documentado. escribiendo help, MATLAB despliega un
ndice con aclaraciones que sirven para orientarse a la hora de buscar algn comando en
particular. Por ejemplo:
>>help

de donde podemos inferir que la informacin que estamos buscando puede estar dentro de los
comando agrupados Elemntary math fiunctions

donde hayamos la funcin exp. Para finalmente saber cmo usar dicha funcin uno puede escribir
help exp. para finalizar este ejemplo, la expresin sera:
>> exp(1+3*i)

Hasta aqu ya se sabe como buscar informacin sobre los comandos de Matlab. Si desea realizar
un clculo para el cual Matlab no tiene una funcin especfica, se pueden crear las propias
funciones. (ms adelante se realizar Creating script Files y Creating Functions)
Matrices y Vectores
Las matrices son el principal tipo de datos que maneja matlab. Comienzo escribiendo una matriz
como una lista de elementos, solo hay que seguir unas convenciones bsicas

separar los elementos de una fila con espacios o comas.


Usar un (;) para indicar el fin de cada rengln (columna).
Encerrar la lista de elementos con parntesis cuadrados []

por ejemplo al entrar la siguiente Matriz >> a = [1 2; 3 4] Matlab muestra


Por otra parte una matriz de una sola fila es un vector: >> b = [5 6]
b = 56
Para suprimir la salida en pantalla cada vez que se asigna una variable use el operador " ; " al final
de la expresin
>> b = [5 6];
Los elementos de una Matriz pueden ser una expresin; por ejemplo:
>> x = [ -1.3 sqrt(2) (1+2+3)*4/5]
x=
-1.3000 1.4142 4.8000
se pueden juntar dos Matrices con mismo nmero de columnas en una sola matriz; por ejemplo:
>> A = [1 2 3; 4 5 6; 7 8 9]; R = [10 11 12];
>> B = [A; R]
%Junta dos matrices
B=
.
1 2 3
4 5 6
7 8 9
10 11 12
o extraer una submatriz de la matriz; por ejemplo:
>> C = B(2:3,2:3)
%obtiene una submatriz C de la matriz B; de la fila 2 a la 3
C=
%y de la columna 2 a la 3
5 6
8 9
Matlab permite el manejo de nmeros complejos, donde la i = j. Existen dos formas de insertar
matrices de nmeros complejos las cuales producen el mismo resultado que son:
>> A = [1 2; 3 4;] + i*[5 6; 7 8];
>> B = [1+5i 2+6i; 3+7i 4+8i];

bien
bien

>> A = [1+5j 2+6j; 3+7j 4+8j];


>> B = [1+5j 2+6j; 3+7j 4+8j];

se puede obtener informacin en el rea de trabajo con who o whos; por ejemplo: >> who
your variables are
A B C R X
o bien
%cada elemento de una matriz real
%requiere 8 bytes de memoria

Grand total is 31 elements using 248 bytes


%Todas las variables ocupan 248bytes
el operador " : "
>> V = [1 : 0.5 : 3] genera un vector con elementos de 1 a 3 con incremento de 0.5
V=
1 1.5 2 2.5 3
Guardar variables y estados en una sesin: Comandos save y load
En muchas ocasiones puede resultar interesante interrumpir el trabajo con Matlab y poderlo
recuperar ms tarde en el mismo punto en el que se dej (con las mismas variables definidas, con
los mismos resultados intermedios, etc.) Hay que tener en cuenta que al salir del programa todo el
contenido de la memoria se borra automticamente.
para guardar el estado de una sesin de trabajo existe el comando save. si se teclea:
>> save
dicho estado puede recuperarse la siguiente vez que se arranque el programa con el comando
>>load
se pueden guardar tambin vectores y matrices de forma selectiva y en ficheros con nombre
especificado por el usuario. por el ejemplo, el comando (sin comas entre los nombres de las
variables) :
>> save filename A x y
guardas las variables A, x e y en un fichero binario llamado filename.mat (o filename). para
recuperarlas en otra ocasin basta teclear:
>>load filename
si no se tiene ninguna variable, se guardan todas las variables creadas en esa sesin.
Guardar sesin y copiar salidas: Comando diary

Los comandos save y load crean ficheros binarios ASCII con el estado de la sesin. Existe otra
forma ms sencilla de almacenar en un fichero un texto que describa lo que el programa va
realizando(la entrada y la salida de los comando utilizados). Esto se hace con el comando diary en
la forma siguiente:
>> diary filename.txt
...
>> diary off
%suspende la ejecucin
...
>> diary on
%reanuda la ejecucin
...
El simple comando diary pasa de on a off y viceversa. Para poder acceder al fichero filename.txt
con Notepad o Word es necesario que diary est en off si en el comando diary no se incluye el
nombre del fichero se utiliza por defecto un fichero llamado diary (sin extencin).
Por ejemplo: si se tienen las variables antes definidas y se utiliza el comando save se tendr:
>> save

%guarda las variables del rea de trabajo en disco en el archivo matlab.mat

saving to: matlab.mat


>> load

%carga desde el disco las variables almacenadas en el archivo matlab.mat

Loading from: matlab.mat


>> X = 10; Y = 20; Z = 40; W = 60;
>> save temp X W
>> load temp

%Nuevas variables
%Guarda las variables X y W en el archivo temp.mat
%carga desde el disco las variables almacenadas en el
%archivo temp.mat

Operaciones con arrays


-Array arbitrarios se introducen como: variable = [(lista de nmeros separados por espacios o
comas)].
-Funciones de arrays aplica n la funcin a los elementos individuales del array.
-Array que contiene elementos de datos espaciados linealmente se pueden formar usando la
notacin de dos puntos primero:incremento:ltimo o primero:ltimo donde el incremento es de 1
-Array que contiene elementos de datos espaciados logartmicamente se puede formar usando la
funcin linspace de Matlab
-Valores almacenados en un array de datos se pueden acceder utilizando subndices.
-Operaciones matemticas bsicas entre escalares y arrays aplican la operacin a todos los
elementos en el array.
-Operaciones matemticas bsicas entre arrays son validas si los arrays tienen el mismo tamao. El
resultado se obtiene por la aplicacin elemento a elemento de la operacin. Las operaciones

elementales que se pueden hacer de elemento a elemento son: suma, resta, multiplicacin,
divisin y potencia. Se simboliza por: +, -, *, / o \ y ^
-La potencia de un array tiene mltiples definiciones dependiendo de la forma de la expresin.
-Se puede construir arrays a partir de subconjuntos de otros arrays.
-Los arrays en Matlab pueden tener cualquier orientacin rectangular y se nombran como array
vector(fila), array columna(columna) y matrices(mltiples filas y columnas).
-Los vectores fila se pueden convertir a vectores columnas y viceversa usando la operacin de
transpuesta representada por ( ) un apostrofe simple.

Operaciones con matrices


-Los elementos de una matriz se direccionan en la forma fila, columna: A(fila, columna).
-Valores internos a una matriz se acceden identificando los subndices de los elementos deseados
-Utilizar el smbolo dos puntos como la designacin de filas y columna implica, respectivamente,
todas las filas o columnas; por ejemplo: A(:,1) representa todas las filas en la columna uno, A(2,:)
representa todas las columnas en la fila dos.
-Colocar datos fuera de rango actual de una matriz rellena con cero las zonas no especificadas para
mantener una forma de matriz rectangular.
-Fijar las filas o columnas de una matriz igual a la matriz vaca [ ] elimina esta filas o columnas.
-Usar slo dos puntos, por ejemplo A(:), reagrupa una matriz en un vector columna, tomado todas
las columnas a un tiempo.
-Vectores lgicos 0-1 pueden utilizarse tambin para direccionar partes de un vector. En este caso,
los vectores lgicos 0-1 deben tener el mismo tamao que el vector que los direcciona. Los
elementos falsos (0) se eliminan, los elementos verdaderos (1) se retienen.

Funciones
Matlab tiene un nmero grande de funciones. Algunas funciones son intrnsecas o construidas en
el propio proceso de Matlab. otras estn disponibles en las libreras externas archivos-M
distribuidos con Matlab (Toolbox). Y otras son adicionadas por los usuarios, o grupo de usuarios,
para alguna aplicacin especifica en archivos-M
Con la orden Help <function> Matlab despliega el contenido de la funcin as como de los
parmetros necesarios para su correcta ejecucin. por ejemplo:

help sqrt
%ayuda de la funcin de la raz cuadrada
SQRT
sqare root.
SQRT(X) is the sqare root of the elements of X. Complex results are produced if X is not positive.
see also SQRTM.
Se pueden combinar funciones de varias formas. Algunas funciones usan dos o ms argumentos de
entrada, donde cada argumento puede ser una expresin. por ejemplo:
>> a = 3; b = -4;
%asigna a una variable un valor
>> theta = sqrt(atan1(a,b))
%calcula la raz cuadrada del arco tangente de un ngulo
theta =
%(coordenadas X,Y)
1.5805
o tambin puede usar dos o ms argumentos de salida, donde los argumentos estarn encerrados
por [ ] y separados por comas. por ejemplo:
>> X = [5 2 4 9 3 1]
%asigna un vector a la variable X
>> [Y,i] = max(X)
%obtiene el valor mximo as como el ndice encontrado dentro
Y=
% del vector X
9
i=
4
Graficas simples en 2D
Los grficos son una poderosa forma visual de interpretar los datos. Considerando un proceso que
se seguir para realizar una grfica a mano de una funcin seno durante un periodo, por ejemplo
y = sin(x) para 0 <= x <= 2pi. se tendr que hacer
-Escoger los valores para la variable independiente x (forman el eje horizontal de la grfica)
-Calcular el seno para cada valor independiente(proporciona los datos del eje vertical)
-Cada pareja de datos [X,Y] se marca sobre un conjunto apropiado de ejes.
Para una mejor visualizacin, es comn dibujar una lnea recta entre cada par de puntos
marcados.
Utilizando un array, Matlab sigue este mismo enfoque para hacer grficas. Considerando la misma
tarea una onda senoidal tal como la que acabamos de describir.
>>X = linspace(0.2*pi, 30);
>>Y = sin(X);
>>plot(X,Y)

%primero, se crean 30 puntos entre 0 y 2pi.


%Se calcula el seno de los puntos en X
%Genera la grfica conectando los puntos con una lnea recta

>> Z = cos(X);
>> plot(X,Y,X,Z)

%calcula el coseno de los puntos en X


%grfica en la misma grfica el seno y el coseno

>> plot(X,Y,X,2*Y.*Z,'--')

%Grfica la funcin seno con lneas conectando los puntos y la


%funcin 2sin(X)cos(X) = sin2(x),arcado con el smbolo '--'

>> plot(X,Y)
>> hold on
>>plot(X,2*Y.*Z,'--')
>> hold off

%grfica la funcin seno


%mantiene la grfica anterior para aadir la siguiente curva
%grfica la funcin sin2(X)con lneas de trazos
% Permite que la prxima orden plot borre la grfica

La orden plot crea una grfica de vectores o columnas de matrices. La forma de la orden es
plot(X1, Y1, S1, X2, Y2, S2, ...) donde (Xn, Yn) son conjuntos de arrays de datos y Sn son cadenas
opcionales que especifican color, marcas y/o estilos de lnea

-grid coloca en las marcas de la grfica


-se pueden aadir ttulos y etiquetas en los ejes usando title, xlabel, ylabel.
-La orden tect(x,y,s) aade cadenas de caracteres S a la grfica actual en las coordenadas (x,y)
-gtext permite colocar texto interactivamente en la grfica utilizando el ratn.
-axis cambia los limites de los ejes o la apariencia de las grficas(obtenga ayuda con help axis)
-se pueden aadir grficas a la actual fijando hold on. Haciendo hold off permite que la prxima
orden plot borre de la ventana la figura antes de hacer una nueva grfica.
-se pueden generar multiples ventanas de figuras mediante la orden figure. figure(n) ecoge que
ventana de figura n sea la ventana de la figura activa.
-Una ventana de figura se puede subdividir en una matriz m x n y cualquier subdivisin hacerse
activa co la orden subplot(m,n,p)(escoge como activa el rea p-sima).
-si fija zoom on, la ventana de la figura activa se puede expandir interactivamente usando el
ratn, seleccionando el rea de expansin o simplemente con un click del ratn. zoom off lo
desactiva

You might also like