You are on page 1of 20

11111111 111 1111

1111 11 111111111 111111 11111111



1111 111111 11 11111 1

11111 & 11111111 11 11111

11111

Familiarizar al estudiante con la interfaz de comandos del Matlab y el entorno
de Simulink
Aprender a manipular datos bsicos, vectores, matrices, y polinomios en
matlab.
Observar y aplicar algunos de los comandos relacionados con la teora de
control que incorpora el matlab.
Identificar los elementos bsicos necesarios para la construccin y simulacin
de modelos dinmicos en el Simulink.


11111111

MATLAB es el nombre abreviado de MATrix LABoratory. MATLAB es un programa
para realizar clculos numricos con vectores y matrices. Como caso particular puede
tambin trabajar con nmeros escalares -tanto reales como complejos-, con cadenas de
caracteres y con otras estructuras de informacin ms complejas. Una de las capacidades
ms atractivas es la amplia variedad de grficos en dos y tres dimensiones que puede
realizar. Es importante anotar adems que MATLAB posee un lenguaje de programacin
propio.

MATLAB se puede arrancar como cualquier otra aplicacin de Windows, (haciendo click
dos veces en el icono correspondiente en el escritorio o por medio del men Inicio). Al
arrancar MATLAB se abre una ventana similar a la indicada en la Figura 1. Como esta
configuracin puede ser cambiada fcilmente por el usuario, es posible que en muchos
casos lo que aparezca sea muy diferente. En cualquier caso, una vista similar se puede
conseguir con View/Desktop Layout/Default. La parte ms importante de la ventana inicial
es el Command Window, que aparece en la parte derecha. En esta sub-ventana es donde se
ejecutan los comandos de MATLAB, a continuacin del prompt (aviso) caracterstico (>>),
que indica que el programa est preparado para recibir instrucciones. En la pantalla
mostrada en la Figura 1 se ha ejecutado el comando A=magic(4), mostrndose a
continuacin el resultado proporcionado por MATLAB. En la parte superior izquierda de la
pantalla aparecen dos ventanas tambin muy tiles: en la parte superior aparece la ventana
Launch Pad, que se puede alternar con Workspace clicando en la pestaa correspondiente.
Launch Pad da acceso a todos los mdulos o componentes de MATLAB que se tengan
instalados, por ejemplo al Help o a los Demos. El Workspace contiene informacin sobre
todas las variables que se hayan definido en esta sesin.

En la parte inferior derecha aparecen otras dos ventanas, Command History y Current
Directory, que se pueden mostrar alternativamente por medio de las pestaas
correspondientes. La ventana Command History muestra los ltimos comandos ejecutados
en la Command Window. Estos comandos se pueden volver a ejecutar haciendo doble clic
sobre ellos. Haciendo Click sobre un comando con el botn derecho del ratn se muestra un
men contextual con las posibilidades disponibles en ese momento. Para editar uno de estos
comandos hay que copiarlo antes al Command Window. Por otra parte, la ventana Current
Directory muestra los ficheros del directorio activo o actual. A diferencia de versiones
anteriores de MATLAB en que el directorio activo se deba cambiar desde el Command
Window, a partir de la versin 6.0 se puede cambiar desde la propia ventana (o desde la
barra de herramientas, debajo de la barra de mens) con los mtodos de navegacin de
directorios propios de Windows. Haciendo Click dos veces sobre uno de los ficheros *.m
del directorio activo se abre el editor de ficheros de MATLAB, herramienta fundamental
para la programacin.









Adems de utilizar directamente el Command History, es posible recuperar comandos
anteriores de MATLAB y moverse por dichos comandos con el ratn y con las teclas-
flechas y . Al pulsar la primera de dichas flechas aparecer el comando que se haba
introducido antes. De modo anlogo es posible moverse sobre la lnea de comandos con las
teclas y , ir al principio de la lnea con la tecla Inicio, al final de la lnea con Fin, y
borrar toda la lnea con Esc. Recuerde que slo hay una lnea activa (la ltima).

Para borrar todas las salidas anteriores de MATLAB y dejar limpia la ventana de comandos
se pueden utilizar las funciones clc y home. La funcin clc (clear console) elimina todas las
salidas anteriores, mientras que home las mantiene, pero lleva el prompt (>> ) a la primera
lnea de la ventana. Si se desea salir de MATLAB basta teclear los comandos quit o exit,
elegir Exit MATLAB en el men File o utilizar cualquiera de los medios de terminar una
aplicacin en Windows.

11111111111

1) Los siguientes comandos se pueden escribir desde la ventana de comandos, despus del
prompt. No olvide presionar enter al final.

1.1)Uno de los comandos ms tiles cuando se trabaja con matlab es help

>> help

Cuando se ejecuta el comando sin ningn otro parmetro, muestra una lista de los temas
disponibles para consultar. Si se quiere buscar informacin sobre un comando en particular
se teclea, simplemente help tema, por ejemplo al escribir

>> help rlocus

aparece:

RLOCUS Evans root locus.

RLOCUS(SYS) computes and plots the root locus of the single-input,
single-output LTI model SYS. The root locus plot is used to
analyze the negative feedback loop

+-----+
---->O----->| SYS |----+---->
-| +-----+ |
| |
| +---+ |
+-------| K |<----+
+---+

and shows the trajectories of the closed-loop poles when the feedback
gain K varies from 0 to Inf. RLOCUS automatically generates a set of
positive gain values that produce a smooth plot.

RLOCUS(SYS,K) uses a user-specified vector K of gain values.

RLOCUS(SYS1,SYS2,...) draws the root loci of multiple LTI models
SYS1, SYS2,... on a single plot. You can specify a color, line style,
and marker for each model, as in
rlocus(sys1,r,sys2,y:,sys3,gx).

[R,K] = RLOCUS(SYS) or R = RLOCUS(SYS,K) returns the matrix R of
complex root locations for the gains K. R has LENGTH(K) columns
and its j-th column lists the closed-loop roots for the gain K(j).

See also RLTOOL, RLOCFIND, POLE, ISSISO, LTIMODELS.

Overloaded methods
help lti/rlocus.m
help frd/rlocus.m

1.2) Creacin de variables sencillas

Para crear una variable se digita en el prompt el nombre que el usuario le quiera dar,
seguido del signo igual(=) y el valor que se asignar a dicha variable.

Ejemplo:

>> x=10

x =

10

Por defecto se genera un eco donde se muestra el nombre de la variable y el valor asignado,
si queremos omitir este eco, luego de asignar el valor de la variable se aade un punto y
coma(;). Por ejemplo

>> y = 25;

1.3)Manipulacin de datos sencillos
Cuando se ha creado una variable se puede realizar manipulaciones sobre esta, tales como
sumas, restas, multiplicaciones, etc.

>> x + y

ans =

35

Tambin se puede asignar el resultado de una operacin a otra variable:

>> z = 2*x +7*y

z =

195

1.4) Creacin de vectores

MATLAB permite la creacin de vectores de las dimensiones que se desee, para esto se
escribe las componentes del vector entre corchetes separndolas por espacio o comas as:

>> vector_tri=[1,2,3];
>> vector_dob=[1 5];

Los vectores pueden ser manipulados algebraicamente.


1.5) Creacin de matrices

Para crear una matriz se escriben las componentes de la misma entre corchetes, separando
las filas con punto y coma de la siguiente manera:

> matriz_1=[1 2 3;4 5 6]

matriz_1 =

1 2 3
4 5 6

matriz_2=[1 2 3;4 5 6;7 8 9]

matriz_2 =

1 2 3
4 5 6
7 8 9

Algunas de las funciones propias del matlab para la manipulacin de matrices son las que
se listan a continuacin donde X es el nombre de la matriz sobre la que se va a operar:

det(X): Evala el determinante de una matriz cuadrada.
inv(X): Calcula la inversa de la matriz.
trace(X): suma los elementos de la diagonal.
eig(X): calcula los eigenvalores y eingenvectores.
eye(N): genera una matriz identidad de N*N elementos.

1.6) Graficas en 2 y 3 dimensiones

1.6.1) Graficas en 2 dimensiones (2D):

Entre los comandos usados para desarrollar este tipo de grficos tenemos:

- plot = crea una grafica de vectores o columnas de matrices.
- Loglog = crea una grafica usando escalas logartmicas para ambos ejes
- Semilogx = crea una grafica usando escala logartmica para el eje X y escala lineal
para el eje .
- Semilogy = crea una grafica usando escala logartmica para el eje Y y escala lineal
para el eje X.

Existe una serie de comandos que permiten adicionarle a estas grficas una serie de
elementos tales como ttulos, leyendas o cuadrculas:

- title = adiciona un titulo a la grfica.
- Xlabel = adiciona una leyenda al eje X.
- Ylabel =adiciona una leyenda al eje Y.
- gtext = coloca un texto en la grafica usando el mouse.
- grid = activa la cuadricula de la grafica.

Ejemplo:
Graficacin de una onda seno:

>> t=0:pi/100:2*pi;
>> y=sin(t);
>> plot(t,y)


Con la secuencia anterior se genera la siguiente grafica:



Figura 2

Para adicionar el titulo, las leyendas y la cuadricula se puede hacer lo siguiente (las comas
(,) sirven para separar los comandos):

>> title(mi primer grafica ), xlabel(tiempo),ylabel(sin(t)),grid

Figura 3


Una ventana grfica se puede dividir en m particiones horizontales y n verticales, con
objeto de representar mltiples grficos en ella. Cada una de estas subventanas tiene sus
propios ejes, aunque otras propiedades son comunes a toda la figura. La forma general de
este comando es:

subplot(m,n,i)

donde m y n son el nmero de subdivisiones en filas y columnas, e i es la subdivisin que
se convierte en activa. Las subdivisiones se numeran consecutivamente empezando por las
de la primera fila, siguiendo por las de la segunda, etc. Por ejemplo, la siguiente secuencia
de comandos genera cuatro grficos en la misma ventana:

x=0:pi/100:5*pi
>> y=sin(x); z=cos(x); w=exp(-x*.1).*y; v=y.*z;
>> subplot(2,2,1), plot(x,y)
>> subplot(2,2,2), plot(x,z)
>> subplot(2,2,3), plot(x,w)
>> subplot(2,2,4), plot(x,v)



Figura 4. Comando Subplot.


1.6.2) Grfica en tres dimensiones.

Para dibujar curvas en el espacio (3D) se usa el comando plot3, veamos el siguiente
ejemplo

>> close % cierra la figura activa ; despus de este signo puedo escribir comentarios
>> t=0:pi/100:8*pi;
>> plot3(sin(t),cos(t),t);
>> title('espiral 3 D');


Figura 5

Para la graficacin con retcula se utilizan los comandos mesh y meshgrid. Si x e y son dos
vectores que contienen las coordenadas en una y otra direccin de la retcula (grid) sobre la
que se va a dibujar la funcin se crean dos matrices X (cuyas filas son copias de x) e Y
(cuyas columnas son copias de y) utilizando la funcin meshgrid. Estas matrices
representan respectivamente las coordenadas x e y de todos los puntos de la retcula. La
matriz de valores Z se calcula a partir de las matrices de coordenadas X e Y.

Finalmente se dibuja la matriz Z con la funcin mesh, cuyos elementos son funcin
elemento a elemento de los elementos de X e Y. La funcin mesh dibuja en perspectiva una
funcin con base a una retcula de lneas de colores, rodeando cuadrilteros del color de
fondo, con eliminacin de lneas ocultas. Los parmetros de entrada para la funcin
meshgrid son los dos vectores a partir de los cuales se va a crear la matriz de valores Z, en
este caso los vectores seran x e y. El parmetro de entrada de la funcin mesh es la funcin
Z. Entonces un ejemplo sera:

>>[X,Y] = meshgrid(-2:.2:2, -2:.2:2);
>> Z = X .* exp(-X.^2 - Y.^2); % Para operaciones con arreglos, usar el punto (.)
>>mesh(Z)
Cuyo resultado se muestra en la figura 5.


Figura 6. Funcin mesh(Z)

El comando surf crea una grfica similar a la creada por el comando mesh, slo que en vez
de lneas aparece ahora una superficie faceteada, tambin con eliminacin de lneas ocultas.
El color de las facetas depende del valor de la funcin. Al ejecutar el comando surf con la
funcin anterior se obtiene


Figura 7. Funcin surf(Z)


1.7) Definicin de polinomios

Si tenemos un polinomio de grado n, podemos representarlo como un vector cuyos
componentes sern los coeficientes de las variables que define el polinomio, estos se
escriben comenzando con el coeficiente de la potencia ms alta de la variable, continuando
con el coeficiente de la potencia inmediatamente inferior y as sucesivamente, si no existe
alguna de las potencias en la variable se debe escribir un cero en el sitio correspondiente en
el vector que representa el polinomio.

Por ejemplo si tenemos el polinomio:
Pol = 2s2 + 6s + 4

En MATLAB este polinomio seria:

pol=[2 6 4 ]

pol =

2 6 4

Para obtener las races de un polinomio se utiliza el comando roots de la siguiente forma:

>> roots(pol)

ans =

-2
-1

Entre las funciones que posee MATLAB para manipular polinomios tenemos:

- roots = Extrae las races de un polinomio.
- polival = Evaluacin de un valor en un polinomio
- conv = Multiplicacin de polinomios
- deconv = Divisin de polinomios
- residue = Expansion en fracciones parciales.
- polyder = Derivada de un polinomio.

1.8) Representacin en MATLAB de funciones de transferencia en S y en Z

Para poder manipular una funcin de transferencia, se deben crear dos polinomios, uno para
el numerador y el otro para el denominador, luego se utiliza el comando
tf(numerador,denominador) como se muestra en el siguiente ejemplo

>> num=[1 11]

num =

1 11

>> den=[1 5 6]

den =

1 5 6

>> sip = tf(num,den)

Transfer function:
s + 11
-------------
s^2 + 5 s + 6

En este punto se ha creado la variable sip, que representa la funcin de transferencia
completa.

Una forma alterna de crear las funciones de transferencia consiste en utilizar primero el
comando zpk para especificar la variable s o z, una vez hecho esto se procede a escribir la
expresin para la funcin de transferencia tal y como se hara en un papel:

>> s=zpk('s');
>> G1=(s^2+2)/(s-3)

Zero/pole/gain:
(s^2 + 2)
----------
(s-3)

Si se desea representar una funcin de transferencia en z se debe especificar
adicionalemente el perodo de muestreo:


>> z=zpk(z,0.1);
>> H=(z+1)*(z+2)/(z^2+1)

Zero/pole/gain:
(z+1) (z+2)
-----------
(z^2 + 1)

Sampling time: 0.1


El comando zpk se puede utilizar de muchas otras maneras, para mayor informacin puede
escribir
>> help zpk


1.9) Obtencin de polos y ceros

Si se tiene una funcin de transferencia creada como se indic anteriormente, el comando
pole nos permite encontrar los polos y el comando zero los ceros:

num=[1 11];
den=[1 5 6];
transfun = tf(num,den);
> transfun=tf(num,den)

Transfer function:
s + 11
-------------
s^2 + 5 s + 6

>> cero2=zero(transfun)

cero2 =

-11

>> polo2=pole(transfun)

polo2 =

-3.0000
-2.0000

El comando pzmap nos permite visualizar el diagrama de polos y ceros.
>> pzmap(transfun)



Figura 8

1.10) Simplificacin de bloques

Teniendo las funciones de transferencia de los diferentes elementos de un diagrama de
bloques, se puede utilizar MATLAB para simplificarlos.

Teniendo la funcin de trasferencia G(s) y H(s), el comando para hallar el equivalente
de estas dos en serie sera:
G_eqiv_serie=series(G,H)
Y el equivalente realimentado se obtiene con el comando:
G_eqiv_realim=feedback(G,H).


1.11) Respuesta al escalon de una funcin de transferencia

Con el comando step se puede visualizar la respuesta al escaln de un sistema cuya
funcin de transferencia haya sido previamente creada:
>> step(transfun)

Figura 9

1.12) Lugar geomtrico de las races

La grafica del lugar geomtrico de las races de un sistema se obtiene con el comando
rlocus.

>>numc = [0 6 7];
>>denc = [12 9 13];
>>rlocus(numc,denc)

La grfica que se obtiene es:


Figura 10

1.13) Respuesta en frecuencia

Para obtener la traza o diagrama polar, se utiliza el comando nyquist:

>> nyquist(transfun)


Figura 11

Las trazas de bode se generan con el comando bode

>> bode(transfun)


Figura 12

Tambin es posible obtener el margen de fase y ganancia directamente desde MATLAB
con el comando margin.

>> margin(transfun)


Figura 13


1.14) Introduccin al simulink
Simulink es un programa con entorno grfico para modelacin y simulacin. Las diferentes
libreras que posee, permiten representar sistemas dinmicos de una manera muy simple.
Para invocar el Simulink, basta teclear desde el <<prompt>>:
>> simulink
Simulink tiene dos fases de utilizacin: la definicin del modelo a trabajar y el anlisis del
mismo.
Para la definicin del modelo, Simulink dispone de diferentes libreras. Cada una de ellas
dispone de una serie de elementos que nos permiten crear y editar los diagramas de
bloques utilizando el mouse. A continuacin se mencionan algunas de las libreras ms
importantes y algunos de los bloques que se encuentran dentro de ellas
MMMh Integradores, derivadores, funcin de transferencia, retardo de transporte,
memorias, etc.
1hVh funciones de transferencia discretas, filtro digitales, ZOH, espacio de estado
discreto, etc.
1VM sumadores, ganancias, funciones trigonomtricas, matrices, etc.
1MVMVhescaln unitario, seno, ruido blanco, variables desde un archivo .mat, generadores
de seales, etc.
1MVVh switches, rels, saturadores, etc.
VMVh _ hVMh entradas y salidas, multiplexores, demultiplexores
Wh displays, osciloscopios, salidas a archivos .mat o al espacio de trabajo.
Para construir un modelo se empieza creando un archivo tipo "model" (File, New, model),
y se abren los distintos grupos de funciones a utilizar, despus se colocan los bloques
necesarios en la ventana que se creo, arrastrando con el mouse los bloques deseados hasta
el rea de trabajo. Luego se procede a conectarlos por medio de un click sostenido uniendo
sus entradas y salidas. Despus se configuran los parmetros de cada bloque segn el
modelo y posteriormente se trabaja en el men de simulacin con parmetros como el
tiempo de inicio, tiempo de finalizacin, etc. Despus, se inicia la simulacin (simulation-
start) y por ltimo se observan los resultados por ejemplo haciendo doble click sobre el
scope (si es que se us alguno)
Un ejemplo sencillo de la utilizacin de este paquete se muestra a continuacin:
Sea la funcin de transferencia en lazo abierto:

La respuesta al escaln en lazo abierto puede determinarse implementando el diagrama
mostrado en la siguiente figura

Figura 14 Respuesta paso en lazo abierto
De igual forma, la figura 15 muestra el diagrama necesario para determinar la respuesta al
escaln en lazo cerrado (con realimentacin unitaria).

Figura 15
Simulink es una herramienta muy til para simulacin de modelos sencillos como los
mostrados en los ejemplos, pero tambin permite la creacin de modelos ms complejos ya
sean estos continuos o discretos, multivariables y no lineales entre otros, ya que dispone de
una serie de libreras especializadas y ayudas de programacin para los casos ms
elaborados.




















11111111111
http://mat21.etsii.upm.es/ayudainf/aprendainf/Matlab61/matlab61pro.pdf
Sistemas de control automtico. Benjamn C Kuo. Editorial Prentice
Hall. Sptima edicin.
Ingeniera de control Moderna. Katsuhiko Ogata. Editorial Prentice Hall.
Tercera edicin.
Sistemas de control en tiempo discreto. Katsuhiko Ogata. Segunda
edicin. Editorial Prentice Hall.