You are on page 1of 14

Universidad nacional del callao

Informe de
Ingeniera de control I laboratorio n 1
COMANDOS UTILIZADOS DEL MATLAB
APLICADOS A LA INGENIERIA DE CONTROL
I) Introduccin
MATLAB
MATLAB (abreviatura de MATrix LABoratory, "laboratorio de matrices") es una
herramienta de software matemtico que ofrece un entorno de desarrollo
integrado (IDE) con un lenguaje de programacin propio (lenguaje M). Est
disponible para las plataformas Unix, Windows y Mac OS X.
Entre sus prestaciones bsicas se hallan: la manipulacin de matrices, la
representacin de datos y funciones, la implementacin de algoritmos, la creacin
de interfaces de usuario (GUI) y la comunicacin con programas en
otros lenguajes y con otros dispositivos hardware. El paquete MATLAB dispone de
dos herramientas adicionales que expanden sus prestaciones, a saber, Simulink
(plataforma de simulacin multidominio) y GUIDE (editor de interfaces de usuario GUI). Adems, se pueden ampliar las capacidades de MATLAB con las cajas de
herramientas(toolboxes); y las de Simulink con los paquetes de bloques (blocksets).
Es un software muy usado en universidades y centros de investigacin y desarrollo.
En los ltimos aos ha aumentado el nmero de prestaciones, como la de
programar directamente procesadores digitales de seal o crear cdigo VHDL.

Fig.1 grafico 3D matlab

II) QUE OPERACIONES REALIZA EL MATLAB.


En el siguiente apartado se expondrn los elementos bsicos para tener en cuenta
al momento de trabajar con Matlab.

Vectores y Matrices

Clculos

17

Universidad nacional del callao


Informe de
Ingeniera de control I laboratorio n 1

Creacin de vectores y matrices

Operaciones

Grficos

Primero es importante resaltar algunas particularidades del programa:


Matlab es dependiente del contexto, es decir, las letras maysculas y
minsculas son diferentes, por ejemplo X es diferente de x, Var es diferente
de var, plot es diferente de PLOT.
La comilla sencilla ' se emplea para ingresar texto en una funcin, como por
ejemplo ejemplo: title('Esta grfica corresponde a una seal digital').
En un teclado espaol estndar este carcter se encuentra en la tecla de la
interrogacin.
El signo = se emplea para asignar un valor a una variable. Ejemplo: y=5 (En
la variable y se almacena el valor 5).
El punto y coma (;) al final de una instruccin se emplea para indicar a
MATLAB que realice el clculo sin presentar en pantalla el procedimiento o el
resultado.
Cualquier tipo de comentario o mensaje se escribe precedido por el caracter
%. Ejemplo: %As se escriben los comentarios o mensajes.
Con la ayuda podemos obtener una informacin ms detallada en cuanto a
la sintaxis y comandos, basta con escribir help seguido del comando en el
prompt. Ejemplo: help plot
Creacin de vectores y matrices
Los componentes de un vector o matriz siempre deben ir entre corchetes
>> vectorfila= [ 1 2 3 4 5 6 7]
vectorfila = 1 2 3 4 5 6 7
>> vectorcolumna = [1; 2; 3; 4]
vector columna= 1 2 3 4
Las filas deben ir separadas por punto y coma
>> Matriz= [1 2 3; 4 5 6; 7 8 9]
Matriz= 1 2 3
456
789
Acceso a posiciones
Para posicionarse en el valor 6 de la variable Matriz determinada en el ejemplo
anterior y que corresponde a la segunda fila con tercera columna tres, se indica
entre parntesis la posicin. En el siguiente ejemplo se asigna el valor de la posicin
indicada a la variable posicin.
>>posicin=Matriz (2,3) ans = 6

17

Universidad nacional del callao


Informe de
Ingeniera de control I laboratorio n 1
Si se deseara asignar toda la tercera fila como un solo vector entonces se cambiara
el parmetro correspondiente a la columna por el carcter; con lo cual se indica que
corresponde a todas las columnas.
>> fila=Matriz(3,:) ans = 7 8 9
Similar al caso anterior, si se desea la tercera columna en su totalidad entonces se
reemplaza el parmetro de la fila por el carcter; con lo cual se indica que
corresponde a todas las filas.
>> Columna=Matriz (:,3) ans = 3 6 9
Creacin de Rangos
La definicin de rangos en Matlab se especifica segn la sintaxis
Variable = Comienzo: Intervalo: Final
Para ms informacin digitar en el prompt help colon
Si se desea declarar un vector con un rango de 1 a 5 con intervalo de a uno se
emplea la siguiente declaracin
>> n=1:5 ans = 1 2 3 4 5

Si se quiere declarar un vector con un rango de 0 a 20 con intervalo de a dos


>>n=0:2:20 ans = 0 2 4 6 8 10 12 14 16 18 20
Operaciones
Las operaciones de suma, resta, divisin y multiplicacin utilizan los operadores
+, -, /, * respectivamente.
Suma de vectores
>>vector1= [1 2 3 ];
>> vector2= [3 4 5;];
>> Suma= vector1 + vector2
ans = [4 6 8]
Multiplicacin de matrices y vectores
>> vector1= [1 2 3 ];
>> vector2= [3 4 5];
>> vector1.*vector2 ans = 3 8 15 >> Matriz = [1 2 3;1 2 3; 1 1 1 ];
>> Vector= [3 ;4 ;5];
>> Matriz * vector ans = 26 26 12
Transposicin de vectores
>> Vector = [3;4;5] ans = 3 4 5 >> vector' ans = 3 4 5
Grficos
Consideremos el ejemplo de graficar la funcin x^2:

17

Universidad nacional del callao


Informe de
Ingeniera de control I laboratorio n 1
>> x=0:0.1:1; % x es un vector, que empieza en 0, con incrementos de 0.1 y
finaliza en 1 >> y=x.^2; >> plot (y),title(' Grafica de la funcin x^2') >> grid
on %permite visualizar las cuadriculas

Ayuda en lnea
cmo obtener informacin sobre los comandos de Matlab.
Este documento es tan slo una introduccin -muy resumida- del lenguaje y del
manejo de Matlab. Antes de seguir, es conveniente indicar cmo puede obtenerse
ms informacin sobre cualquier detalle referente a Matlab. Por supuesto, siempre
se pueden consultar los manuales: hay un ejemplar en las salas del C.T.I. y otro en
la biblioteca, que puede obtenerse en prstamo por un da.
Adems, desde dentro de Matlab pueden obtenerse explicaciones sobre un tema
particular. Hay varios mtodos.

El comando help. Para obtener informacin sobre una determinada funcin,


basta teclear desde la lnea de comandos help seguido del nombre de la
funcin. Por ejemplo:
help round
ROUND Round towards nearest integer.
ROUND(X) rounds the elements of X to the nearest integers.
See also FLOOR, CEIL, FIX.
Si se escribe slo help, se obtiene un ndice de temas. Tambin puede
obtenerse informacin sobre uno de los temas de esa lista: as, help
elfun proporciona informacin sobre las funciones matemticas elementales.

La ventana de ayuda. Puede llamarse tecleando helpwin o bien


escogiendo del men Help el tem Help Window. Se obtiene una ventana
nueva, y haciendo doble click con el ratn sobre un captulo se pasa a un

17

Universidad nacional del callao


Informe de
Ingeniera de control I laboratorio n 1
elenco de los tems contenidos, que a su vez pueden escogerse para una
explicacin ms detallada. Con los botones Back y Forward se navega hacia
atrs o hacia adelante. Tambin puede escribirse directamente en la zona
superior izquierda el nombre del comando deseado: por ejemplo, para
buscar informacin sobre sqrt ...

En la barra See also aparecen comandos relacionados. La informacin es la


misma que la obtenida con el comando help, pero con la comodidad de
presentarse en una ventana aparte en vez de en la lnea de comandos.

La ayuda interactiva. Se obtiene escogiendo del men Help el tem Help


Desk, o tecleando helpdesk en la barra de comandos. Se lanza el navegador
y se obtiene un documento de inicio con un ndice de temas en hipertexto
donde estn los manuales y otras utilidades, como un buscador. Para leer el
manual, se necesita el programa Acrobat Reader.
La informacin que se obtiene es mucho ms completa que en los otros dos
casos, lo cual puede resultar inconveniente si uno desea simplemente, por
poner un caso, conocer la sintaxis de una funcin.
Una introduccin a Matlab ms rigurosa, extensa y comprensiva que este
documento puede encontrarse en el epgrafe "Getting Started" del Help
Desk.

El entorno Matlab
Para desenvolverse en la interfaz de usuario, llevar la cuenta de las variables,

...

Edicin de la lnea de comandos. Con las flechas del teclado se pueden


recuperar las rdenes anteriores, sin tener que volver a teclearlas. As, en el
caso de una equivocacin en un comando complicado
d2_f=(y2-2*y1+y3)/deltax^2)
??? -2*y1+y3)/deltax^2)
Missing operator, comma, or semi-colon.
en vez de volver a teclear todo, puede recuperarse la instruccin pulsando la
tecla "flecha hacia arriba", desplazarse hasta el error (falta un parntesis)
con la flecha hacia a la izquierda, y arreglarlo:
d2_f=(y2-2*y1+y3)/(deltax^2)

17

Universidad nacional del callao


Informe de
Ingeniera de control I laboratorio n 1

En ocasiones, es interesante no presentar el resultado en la


pantalla (por ejemplo, cuando se trata de una lista de datos muy larga). Eso
se consigue poniendo un punto y coma al final de la instruccin.
y=sqrt(4);
El resultado no aparece, pero sin embargo el clculo se ha realizado:
y
y=
2

El comando who indica las variables con las que se est trabajando:
who
Your variables are:
Fy

indice

n_punt

delta_f f_max manchas

Comandos relacionados con el sistema operativo:

pwd

cd
dir

t_m

Present working directory

(directorio de trabajo actual)


cambiar de directorio
listado de los ficheros del directorio actual
Estos comandos son muy similares a los anlogos de MS-DOS o UNIX.
Guardar y cargar ficheros de datos. Se emplean los
comandos save y load, respectivamente.
o

para guardar datos: save [nombre del fichero] [variable] -ascii

para recuperar datos: load [nombre del fichero] [variable] -ascii

Por ejemplo: con estas dos rdenes


cd a:
save toto.dat y -ascii
se cambia el directorio de trabajo a a:\ y se guarda all el contenido de la
variable y en el fichero toto.datcon formato texto (por eso se pone -ascii).

Vectores y matrices
La "especialidad" de Matlab es el manejo de matrices: Matlab son las siglas de
Matrix Laboratory.
Un vector se define introduciendo los componentes, separados por espacios o por
comas, entre corchetes:
v=[sqrt(3) 0 -2]
v=
1.7321 0 -2.0000

17

Universidad nacional del callao


Informe de
Ingeniera de control I laboratorio n 1
Para definir un vector columna, se separan las filas por puntos y comas:
w= [1; 0; 1/3]
w=
1.0000
0
0.3333
La operacin transponer (cambiar filas por columnas) se designa por el apstrofe:
w'
ans =
1.0000 0 0.3333
Las operaciones matemticas elementales pueden aplicarse a los vectores:
v*w
ans =
1.0654
v+w'
ans =
2.7321 0 -1.6667
Para crear un vector de componentes equiespaciados se emplean los dos puntos:
x=4:2:10
x=
4 6 8 10
(los componentes de x van desde 4 de 2 en 2 hasta 10).
Para introducir matrices, se separa cada fila con un punto y coma:
M = [1 2 3 ;4 5 6 ;7 8 9]
M=
123
456
789
Para referirse a un elemento de la matriz se hace as:
M(3,1)
ans =
7
Para referirse a toda una fila o a toda una columna se emplean los dos puntos:
v1=M(:,2)
v1 =
2
5

17

Universidad nacional del callao


Informe de
Ingeniera de control I laboratorio n 1
8
(v1 es la segunda columna de M).
Con las matrices tambin funcionan las operaciones matemticas elementales. As
M^2
ans =
30 36 42
66 81 96
102 126 150
Si se quiere operar en los elementos de la matriz, uno por uno, se pone un punto
antes del operador. Si se quiere elevar al cuadrado cada uno de los elementos de M,
entonces
M.^2
ans =
1 4 9
16 25 36
49 64 81
Algunas funciones definidas sobre matrices:

det
inv
poly
'

determinante
matriz inversa
polinomio caracterstico
transpuesta

(Para ms informacin: help elmat)


Poliniomios
En Matlab los polinomios se representan por vectores cuyas componentes son los
coeficientes del polinomio.
Sea

Este polinomio se representa por un vector p


p=[1 -3 +2]
p=
1 -3 2
Para hallar las races del polinomio, se hace
roots(p)
ans =
2
1

17

Universidad nacional del callao


Informe de
Ingeniera de control I laboratorio n 1
y si se quiere hallar el valor de P(x) para un determinado valor de x (por ejemplo,
para x=0)
polyval(p,0)
ans =
2
Grficos
Cmo presentar datos con Matlab.
Las posibilidades de Matlab son muy grandes. Se indica a continuacin cmo
realizar grficos sencillos. Para ms informacin, o para conocer la versatilidad de
Matlab: captulo Handle Graphics Object del Help Desk, el manualUsing MATLAB
Graphics o la ayuda en lnea help graph2d.
Veamos cmo se puede representar la funcin seno entre 0 y 10. Para empezar
creemos una variable x que vaya de cero a 10:
x=0:0.1:10;
y a continuacin, calculemos sin(x) almacenando el resultado en la variable y:
y=sin(x);
Para trazar el grfico, se emplea la funcin plot:
plot(x,y)
y se obtiene en otra ventana el grfico:

Entre los muchos comandos que se pueden utilizar para modificar los grficos, es
muy til el empleado para cambiar la escala de los ejes. La orden es
axis([x1 x2 y1 y2])

17

Universidad nacional del callao


Informe de
Ingeniera de control I laboratorio n 1
donde x1, x2 son los lmites inferior y superior del eje x, e y1 e y2 los del eje y.
Para representar unos datos con smbolos de colores, se aade al comando plot,
entre apstrofes, la especificacin. Vamos a crear una variable con dos filas que
contenga los nmeros del 1 al 10 en la primera fila, y el doble de esos nmeros en
la segunda, y dibujarlos con puntos rojos:
x(1,:)=0:10;
x(2,:)=2*x(1,:);
x
x=
0 1 2 3 4 5 6 7 8 9 10
0 2 4 6 8 10 12 14 16 18 20
plot(x(1,:),x(2,:),'ro')

(para ver las especificaciones posibles, teclear help plot. Por ejemplo, 'ro' establece
un grfico de color rojo: r y de puntos: o.) Si no se indica nada, el grfico se traza
con una lnea azul.
Otras funciones muy tiles: grid, que traza una
cuadrcula, xlabel('ttulox')e ylabel('ttuloy'), que sirven para poner un ttulo en los
ejes.
Para imprimir una figura, basta seleccionar print del men de la figura.
"Scripts"
Archivos de rdenes: programar en Matlab.
Realizar un programa en Matlab es fcil. Basta abrir un editor de texto (como el
Bloc de Notas de Windows) y escribir los comandos uno a continuacin de otro.
Luego ese fichero de texto debe guardarse con la extensin .m, y a eso se le llama
un script:

17

Universidad nacional del callao


Informe de
Ingeniera de control I laboratorio n 1

Una vez guardado el fichero (en el ejemplo, ndata.m) en el directorio actual, desde
la lnea de comandos de Matlab basta escribir ndata para que se ejecute el
programa.
A partir de aqu, se abren las posibilidades de la programacin con un lenguaje
sencillo. Puede verse una pgina Web de introduccin a la programacin aqu.
Clculo simblico
Matemticas en el ordenador.
Hasta ahora, las operaciones que se han mostrado se han realizado con nmeros.
El toolbox de clculo simblico permite realizar clculos abstractos:
diff('sin(x)')
ans =
cos(x)
Las expresiones simblicas se introducen entre apstrofes.
A continuacin se da una tabla con algunas funciones de este toolbox, junto con un
ejemplo de cada una:

dif
int
solve
ezplot

derivada
integral
resolucin de ecuaciones
grficos

dif('sin(x)')
int('x^2')
solve('x^2-3*x+2=0')
ezplot('exp(x)')

Evidentemente, las expresiones pueden ser todo lo complicadas que se quiera ...
solve('x=cos(x)')
ans =
.73908513321516064165531208767387
int('(x^4+4*x^3+11*x^2+12*x+8)/((x^2+2*x+3)^2*(x+1))')
ans =

17

Universidad nacional del callao


Informe de
Ingeniera de control I laboratorio n 1
log(x+1)+1/8*(-4*x-8)/(x^2+2*x+3)-1/4*2^(1/2)*atan(1/4*(2*x+2)*2^(1/2))

III) Lista de comandos de matlab


A continuacin se muestra una lista con los principales comando de matlab
aplicados a la ingeniera de control.
Nota:
Los comandos Matlab de la toolbox de control de sistema se destacan
en rojo.
Los comandos Matlab no estndares se destacan en verde.
Comando
abs
acker
axis
bode
c2dm
clf
conv
ctrb
deconv
det
dimpulse
dlqr
dlsim
dstep
eig
eps
feedback
figura
for
format
function
grid
gtext
help
hold
if
imag
impulse
input
inv
jgrid

Descripcin
Valor absoluto
Calcula la matriz K para ubicar los polos de A-BK, vea
tambin place
Corrige la escala del grfico actual, vea tambin plot, figure
Dibuja el diagrama de Bode, vea tambin
logspace, margin, nyquist1
Pasa del sistema continuo al discreto
Borra la figura (use clg en Matlab 3.5)
Convolucin (til para multiplicar polinomios), vea tambin deconv
Matriz de controlabilidad, vea tambin obsv
Deconvolucin y divisin de polinomios, vea tambin conv
Halla el determinante de una matriz
Respuesta al impulso de sistemas lineales de tiempo discreto, vea
tambin dstep
Diseo de reguladores LQR lineales cuadrticos para sistemas de
tiempo discreto, vea tambin lqr
Simulacin de sistemas lineales de tiempo discreto, vea
tambin lsim
Respuesta al escaln de sistemas lineales de tiempo discreto, vea
tambin stairs
Calcula los autovalores de una matriz
Tolerancia numrica del Matlab
Conexin de dos sistemas por realimentacin.
Crea una nueva figura o redefine la figura actual , vea tambin
subplot, axis
Lazo For-Next
Formato Numrico (dgitos significativos, exponentes)
Para archivos-m del tipo funcin
Dibuja la grilla en el grfico actual
Agrega texto al grfico actual, vea tambin text
Ayuda
Mantiene el grfico actual, vea tambin figure
Ejecuta cdigo condicionalmente
Devuelve la parte imaginaria de un nmero complejo, vea tambin
real
Respuesta al impulso de sistemas lineales de tiempo continuo, vea
tambin step, lsim, dlsim
Prompt para entrada de usuario
Inversa de una matriz
Genera grilla de coeficiente de amortiguamiento (zeta) y tiempo de

17

Universidad nacional del callao


Informe de
Ingeniera de control I laboratorio n 1
legend
length
linspace
lnyquist1
log
loglog
logspace
lqr
lsim
margin
norm
nyquist1
obsv
ones
place
plot
poly
polyadd
polyval
print
pzmap
rank
real
rlocfind
rlocus
roots
rscale
set
series
sgrid
sigrid
size
sqrt
ss
ss2tf
ss2zp
stairs

establecimiento (sigma) constantes , vea


tambin sgrid, sigrid, zgrid
Leyenda en un grfico
Largo de un vector, vea tambin size
Devuelve un vector linealmente espaciado
Produce un diagrama de Nyquist en escala logartmica , vea
tambin nyquist1
logaritmo natural, tambin log10: logaritmo comn
Grafica usando doble escala logartmica, tambin
semilogx/semilogy
Devuelve un vector logartmicamente espaciado
Diseo de reguladores lineales cuadrticos LQR para sistemas
continuos, vea tambin dlqr
Simula un sistema lineal, vea tambin step, impulse, dlsim.
Devuelve margen de ganancia, margen de fase, y frecuencias de
cruce, vea tambin bode
Norma de un vector
Grafica el diagrama de Nyquist, vea tambin lnyquist1. Note que
este comando reemplaza al comando nyquist para obtener
diagramas de Nyquist ms precisos.
Matriz de observabilidad, vea tambin ctrb
Devuelve un vector o matriz de unos, vea tambin ceros
Calcula la matriz K para ubicar los polos de A-BK, vea
tambin acker
Dibuja un grfico, vea tambin figure, axis, subplot.
Devuelve el polinomio caracterstico
Suma dos polinomios
Valor numrico de un Polinomio
Imprime el grfico actual (a impresora o a archivo postscript)
Mapa de polos y ceros de sistemas lineales
Halla la cantidad de renglones o columnas linealmente
independientes de una matriz
Devuelve la parte real de un nmero complejo, vea tambin imag
Halla el valor de k y los polos en el punto seleccionado
Grafica el lugar de races
halla las races de un polinomio
Encuentra el factor de escala para un sistema con realimentacin
completa de estados
Set(gca,'Xtick',xticks,'Ytick',yticks) para controlar el nmero y el
espaciado de marcas en los ejes
Interconexin en serie de sistemas Lineales que no dependan del
tiempo
Genera grilla de razn de amortiguacin (zeta) y frecuencia natural
(Wn) constantes , vea tambin jgrid, sigrid, zgrid
Genera grilla de tiempo de establecimiento (sigma) constante, vea
tambin jgrid, sgrid, zgrid
Devuelve la dimensin de un vector o matriz, vea tambin length
Raz cuadrada
Crea modelos en espacio de estado o convierte modelos LTI a
espacio de estado, vea tambin tf
representacin Espacio de estado a funcin de transferencia , vea
tambin tf2ss
representacin Espacio de estado a polo-cero ,vea tambin zp2ss
Grfico tipo escalera para respuesta discreta, vea tambin dstep

17

Universidad nacional del callao


Informe de
Ingeniera de control I laboratorio n 1
step
subplot
text
tf
tf2ss
tf2zp
title
wbw
xlabel/yla
bel
ceros
zgrid
zp2ss
zp2tf

Dibuja la respuesta al escaln , vea tambin impulse, lsim, dlsim.


Divide la ventana Grfico en secciones, vea tambin plot, figure
Agrega texto al grfico actual, vea tambin title, xlabel, ylabel,
gtext
Crea una funcin de transferencia o convierte a funcin de
transferencia, vea tambin ss
Funcin de Transferencia a representacin en espacio de estado,
vea tambin ss2tf
representacin Funcin de Transferencia a Polo-cero , vea
tambin zp2tf
Agrega un ttulo al grfico actual
Devuelve el ancho de banda dado el coeficiente de
amortiguamiento y el tiempo de asentamiento o el tiempo de
elevacin.
Agrega una identificacin al eje horizontal/vertical del grfico
actual, vea tambin title, text, gtext
Devuelve un vector o matriz de ceros
Genera grilla de coeficiente de amortiguamiento (zeta) y frecuencia
natural (Wn) constante , vea tambin sgrid, jgrid,sigrid
Polo-cero a representacin en espacio de estado, vea
tambin ss2zp
Polo-cero a representacin funcin de transferencia , vea
tambin tf2zp

IV)Bibliografa y sitios web


http://www.ib.cnea.gov.ar/~control2/Links/Tutorial_Matlab_esp/comma
nds.html
http://www.dametareas.com/matlab-y-su-lista-de-comandos/
http://mate.uprh.edu/~pnm/notas4061/intro_matlab/
http://mate.uprh.edu/~pnm/notas4061/intro_matlab/
http://www.angelfire.com/la/hmolina/matlab2.html

17