Anda di halaman 1dari 30

INTRODUCCION A MATLAB

Introduccin a MATLAB aplicado a los Sistemas de Control.

RESUMEN
El desarrollo de la prctica de este laboratorio consiste en tres puntos esenciales que ilustran de
manera introductoria

el uso del software MATLAB para aplicarlo a los Sistemas de Control,

representados por una funcin de transferencia o en forma de diagrama de bloques.


1. El primer punto hace nfasis en las tres formas posibles en que MATLAB permite
introducir una funcin de transferencia. Las funciones de transferencia mostradas en la
figura 1, sern ingresadas por los tres mtodos y las capturas de pantalla mostraran los
resultados obtenidos en la ventana de lnea de comandos.

1() =

4 3 + 3 2 + 10 + 4
5 + 6 3 + 7 + 10

2 3 + 6 2 + + 4
2() = 20 6
+ 3 5 + 5 4 + 6 3 + 15 2 + 3 + 2
Figura 1. Funciones de transferencia a ingresar por lnea de comandos de MATLAB.

a) Ingresando las funciones de transferencia en forma simblica.

INTRODUCCION A MATLAB

Figura 2. Primera funcin de transferencia ingresada de forma simblica.

Figura 3. Segunda funcin de transferencia ingresada de forma simblica.

En las figuras 2 y 3 se observa q esta forma de ingresar la funcin de transferencia es muy


fcil, ya que no requiere factorizar la expresin, basta con digitar la expresin en forma de
relacin de polinomios.

b) Ingresando las funciones de transferencia en forma numrica con zpk (z,p,k ).

INTRODUCCION A MATLAB

La funcin zpk(z,p,k), permite ingresar una funcin de transferencia a partir de los


parmetros ceros, polos y la ganancia. Esto trae como resultado un procedimiento ms
largo en vista de que se debe factorizar la expresin de polinomios.

Sin embargo para ese propsito MATLAB tambin cuenta con funciones que obtienen
los polos y ceros de una funcin de transferencia dada, las siguientes imgenes muestran
cmo se utiliza cada una de ellas. Luego los parmetros obtenidos se pueden utilizar para
ingresar la funcin de transferencia con la funcin zpk.

Obteniendo los polos y los zeros con la funcin pole y zero:

Figura 4. Polos y ceros de la primera funcin de transferencia.

Ahora que ya se cuentan con los parmetros necesarios de la funcin zpk(), la funcin de
transferencia puede ingresarse correctamente como lo ilustra la figura 5.

INTRODUCCION A MATLAB

Figura 5. Funcin de transferencia ingresada a partir de la funcin zpk.

Para la segunda funcin de transferencia el procedimiento es similar, las figuras 6 y 7


muestran los comandos aplicados para obtener la funcin de transferencia bajo esta
modalidad.

Figura 6. Polos y ceros de la segunda funcin de transferencia.

INTRODUCCION A MATLAB

Escribiendo la ecuacin con el mtodo de zpk().

Figura 7. Funcin de transferencia ingresada a partir de la funcin zpk.

c) Ingresando las funciones de transferencia en forma numrica con funcin tf.


La funcin tf(num,den), permite ingresar una funcin de transferencia a partir de los
coeficientes del numerador y del denominador. Donde num y den son vectores que contienen
dichos coeficientes.
Para la primera funcin de transferencia:

Figura 8. Funcin de transferencia ingresada con funcin tf.

Para la segunda funcion de transferencia el procedimiento es similar se obtienen primero


los coeficientes del numerado y denominador, luego se ingresa la funcion tf Se observa
que la funcion esta multiplicada por una ganancia de 20 .

INTRODUCCION A MATLAB

Figura 9. Funcin de transferencia ingresada con funcin tf con ganancia k=20.

2- El segundo punto de la practica hace referencia a las herramientas de trazado grafico


de MATLAB, especificamente la funcion pzmap() y sgrid con la que es posible obtener
el grafico de polos y ceros de la funcion de transferencia, ingresada por los metodos
vistos anteriormente en el punto1. La funcion sgrid, genera una cuadricula de los
factores de amortiguacion sobre el plano s.
En la linea de comandos ingresamos los siguientes comandos:
>> pzmap(h1); sgrid %Graficamos h1 con pzmap, sgrid crea la cuadricula.
>> figure(2);

% Esta funcin permite crear una segunda ventana para graficar h2

>> pzmap(h2); sgrid %Graficamos h2 con la funcin pzmap() y sgrid crea la cuadricula.

INTRODUCCION A MATLAB

Lo cual nos muestra los grficos correspondientes a h1 y h2.

Figura 10. Grfico de polos y ceros aplicando la funcin pzmap a h1 y h2.

3- El tercer punto muestra otra herramienta importante para aplicarla a los sistemas de
control, se trata de las instrucciones parallel(h1,h2), serie(h1,h2) y feedback(h1,h2),
pertenecientes al Control System Toolbox, las cuales permiten obtener la funcion de
transferencia conforme a interconexiones de bloques.
Para el proposito de ver el funcionamiento de estas isntrucciones se desea obtener la
funcion de transferencia del diagrama de bloques de la figura 11.

Figura 11. Diagrama de bloques.

INTRODUCCION A MATLAB

Donde cada bloque est compuesto por:


1() =

( + 4)
6
, 2() = 2
,
(2 + 2)
+ 10 + 16

4() =

1
,

() =

3() =

1
0.1 + 1

3(6 + 1)
2
, ( ) =
2 + 2
40 + 2

Para utilizar las instrucciones se debe reducir el diagrama a un sistema bsico


realimentado, la figura 12 muestra el proceso de reduccin.

G3

Gc

G2

G1

G4

G3

Gc

G1G2

G4

INTRODUCCION A MATLAB

Y
G1G2+ G3

Gc

G4

R
Gc

G1 G2 G3
1 H (G1 G2 G3 )

Gc G4 [G1 G2 G3 ]

Y
G4

1 H (G1 G2 G3 )

Figura 12. Procedimiento de reduccin del diagrama de bloques.

Con el diagrama reducido ingresamos a la lnea de comandos e introducimos los subsistemas de


cada bloque indicado en la ecuacin de lazo directo. El procedimiento se muestra en la siguiente
imagen, correspondiente al archivo ejemplo.m que resolver el sistema.

INTRODUCCION A MATLAB

Figura 13. Lneas de cdigo del archivo.m para reducir el diagrama de bloques.

Corriendo el archivo.m, en la figura 14 se observa la salida del programa mostrando la funcin


de transferencia correspondiente al diagrama de bloques de la figura 11.

Figura 14. Captura de lnea de comandos donde se muestra la ejecucin del archivo ejemplo.m

INTRODUCCION A MATLAB

ASIGNACIONES
1. Disear un archivo .m para calcular y graficar los polos y ceros de las siguientes
funciones. Adems brinde una breve explicacin de los resultados obtenidos.

) () = 10

) () =

( + 3)( + 5)
2 2 + 4
(
)
,
)

=
( + 2)( + 8)(2 2 + 4 + 10)
(3 + 1)( + 2)( 2 + 2 + 3)

4 5 + 3 + 16 2 + 7
3 3 + 6 2 + 8 + 4

Para disear el archivo.m se utiliza la herramienta Script de la barra de herramientas de


MATLAB. En la siguiente imagen se observa el cdigo del archivo asignacin1.m
para calcular y graficar el diagrama de ceros y polos de cada una de las funciones de
transferencia.

Figura 15. Diseo de archivo.m utilizando la herramienta Script de MATLAB

INTRODUCCION A MATLAB

En la figura 16 se muestra la ejecucin del programa y en la figura 17, figura 18 y


figura 19, se observan los grficos de ceros y polos de cada funcin.

Figura 16. Ejecucin de archivo asignacin_a.m para obtener el grafico de polos y ceros.

INTRODUCCION A MATLAB

Figura 17. Grfico de polos y ceros de la funcin de transferencia a).

Figura 18. Grfico de polos y ceros de la funcin de transferencia. b).

INTRODUCCION A MATLAB

Figura 19. Grfico de polos y ceros de la funcin de transferencia c).

Las imgenes anteriores reflejan el gran potencial que tiene MATLAB para el anlisis de
sistemas de control representados por su funcin de transferencia, ya que facilita obtener
su diagrama de polos y ceros en el plano S con una sola funcin. Cabe mencionar que la
forma en que est escrita la funcin de transferencia es importante, ya que incurre en la
claridad para identificar los polos y los ceros de la funcin en el grafico obtenido. En el
grafico los ceros estn representados por crculos pequeos y los polos por una X,
ambos en color azul.

INTRODUCCION A MATLAB

2. Para la grfica de polos y ceros que se presenta a continuacin, obtenga su funcin de


transferencia G(s) la cual es multiplicada por una constante k=5. Deje claros los pasos
seguidos en la obtencin de G(s).

Figura 20. Grfico de polos y ceros de la funcin de transferencia.

Para determinar la funcin de transferencia del respectivo grfico se sigue el procedimiento a


continuacin:
o primero se deben determinar la ubicacin de los polos y ceros de la misma.
Polos: se observan dos polos simples en s= -4, s= -1 y dos complejos conjugados (-3+2i),
(-3-2i). Presenta dos ceros simple en s= -5, s= -3. Ya que existen cuatro polos la funcin de
transferencia tiene dos ceros en el infinito.
o Ahora que ya se localizaron los polos y ceros del grafico se procede a escribir en la lnea de
comandos de Matlab los ceros y polos de forma numrica y luego obtener la funcin de
transferencia con la funcin zpk(z,p,k).

INTRODUCCION A MATLAB

Figura 21. Ejecucin de comandos para obtener la funcin de transferencia.

o Se verifica que la funcin de transferencia este correcta graficando la funcin obtenida


con el comando pzmap (hs).

INTRODUCCION A MATLAB

Figura 22. Grfico de la funcin de transferencia obtenida.

INTRODUCCION A MATLAB

3. A continuacin se presentan los polos y ceros de diferentes funciones de transferencia.


Encontrar dichas funciones de transferencia utilizando MATLAB y trazar su respectivo
diagrama de polos y ceros. Especifique cuntos ceros estaran en el infinito.

a) Polo simple: -1, -2; polo de segundo orden: -3; cero: -4

En la figura 23 se muestra los comandos utilizados para ingresar los polos y ceros de la
seccin obtener la funcin de transferencia y la grfica de polos y ceros.

Figura 23. Comandos para obtener funcin de transferencia y grfico de ceros y polos.

La figura 24 muestra la funcin de transferencia y en la figura 25 se puede observar el grafico de


ceros y polos. Como puede notarse este sistema tiene 3 ceros en el infinito

Figura 24. Funcin de transferencia obtenida.

INTRODUCCION A MATLAB

Figura 25. Grfico de polos y ceros de la funcin de transferencia.

b) Polo simple: -3 -5; ceros: 1, 2


Para este siguiente literal el procedimiento es similar al anterior. Las imgenes muestran el
procedimiento.

Figura 26. Comandos para obtener funcin de transferencia y grfico de ceros y polos.

INTRODUCCION A MATLAB

Figura 27. Funcin de transferencia obtenida.

Figura 28. Grfico de polos y ceros de la funcin de transferencia.

Para este sistema no se tienen ceros en el infinito

INTRODUCCION A MATLAB

c) Polo simple: -3; polo de segundo orden: 0, -1; ceros: j

Para este siguiente literal el procedimiento es similar al anterior. Las imgenes muestran el
proceso.

Figura 29. Comandos para obtener funcin de transferencia y grfico de ceros y polos.

Figura 30. Funcin de transferencia obtenida.

INTRODUCCION A MATLAB

Figura 31. Grfico de polos y ceros de la funcin de transferencia.

Este sistema cuenta con tres ceros en el infinito.

d) Polo complejo: -3j, -52j, ceros:1,4


Para este siguiente literal el procedimiento es similar al anterior. Las imgenes muestran el
proceso.

Figura 32. Comandos para obtener funcin de transferencia y grfico de ceros y polos.

INTRODUCCION A MATLAB

Figura 33. Funcin de transferencia obtenida.

Figura 34. Grfico de polos y ceros de la funcin de transferencia.

Este sistema cuenta con dos ceros en el infinito.

INTRODUCCION A MATLAB

4. Obtener la funcin de transferencia Y/X del siguiente diagrama utilizando los comandos
de la Control System Toolbox de MATLAB (podra ser necesaria la simplificacin del
diagrama mediante lgebra de bloques, previo al uso de MATLAB).
+4
,
2 2 + 9

2 = + 7,

1 = 2 + 3 + 9,

2 =

1 =

2 + 1
,
4 + 2

3 =

+5
4 + 2

3 = 2 + 1

Figura 35. Diagrama de bloques a reducir.

Al aplicar la reduccin del diagrama original al de la figura37, ya es posible trabajarla con los
comandos de Matlab.
11//GG22
X

+
-

G1
+

G2

H2

+
G3

H1
H3

Figura 36. Diagrama de bloques reducido a una forma adecuada para trabajarlo en Matlab.

INTRODUCCION A MATLAB

Las siguientes lneas de cdigo, pertenecen al archivo asignacion4.m con el cual podr resolverse
el diagrama de bloques.
%Asignacion 4
%Primero se definen las funciones de las cajas de forma simbolica
s = tf('s');
G1=(s+4)/(2*s^2+9);
G2=s+7;
G3=(s+5)/(4*s+2);
H1=s^2+3*s+9;
H2=(s^2+1)/(4*s+2);
H3=2*s+1;
%Reduciendo el diagrama con los comandos de control
%aplicando feedback a G1 y H1
re1 = feedback(G1, H1, +1);
%Aplicando series a G2 y rs1
re2 = series(re1,G2);
%aplicando feedback entre H3 y rs2
re3 = series((1/G2),H2);
%aplicando parallel entre Hs2 y G3
re4 = feedback(re2,H3);
%aplicando series entre rs4 y rs3, esta sera la respuesta
re5 = parallel(re3,G3);
%mostrando resultado final
Hs=series(re4,re5);
Al ejecutar el archivo asignacion4.men Matlab se obtiene la funcin de transferencia como lo
muestra la figura 37.

Figura 37. Funcin de transferencia obtenida del diagrama de bloques de la figura 36.

INTRODUCCION A MATLAB

5. Investigue el uso de la funcin minreal de MATLAB y escriba un ejemplo de su uso.


La funcin minreal tiene como propsito eliminar los polos y ceros que se repiten en el
denominador y numerador de una funcin de transferencia dada. Es decir que la funcin de
transferencia se ve simplificada. En la figura 39 se muestra un ejemplo de la aplicacin de esta
funcin.

Figura 38. Lnea de comandos de ejemplo de uso de funcin minreal.

INTRODUCCION A MATLAB

6. Investigue el uso de la funcin sym de MATLAB y compare el uso de sta con la forma
simblica desarrollada en la prctica, Cul resulta mejor para usted?

La funcion sym() es una funcin de matlab que permite crear variables simblicas, la
herramienta Symbolic Math Toolbox define un nuevo tipo de dato denominado objeto simblico,
que representan a variables, expresiones y matrices.. El argumento de sym es una cadena de
caracteres (string) entre comillas simples. Por ejemplo,
>> sym('x')
>> sym('2')
>> sym('1/3')
Figura 39. Ejemplo de uso de funcin sym.

Se han creado tres objetos simblicos, x es una variable, 2 es un nmero y 1/3 es una fraccin.
Vamos a apreciar la diferencia entre operar con nmeros a operar con objetos simblicos.
>> sqrt(2)
ans = 1.4142
>> sqrt(sym('2'))
ans =2^(1/2)
>> 2/3+1/2
ans = 1.1667
>> sym('2/3')+sym('1/2')
ans =7/6
>> sin(pi)
ans = 1.2246e-016
>> sin(sym('pi'))
ans =0
Figura 40. Aplicacin de funcin sym.

La diferencia entre esta funcin y la utilizada en la prctica es la simplicidad ya que con esta se
puede realizar de forma ms rpida las formas simblicas, adems de poder obtener ms de un
objeto simblico con un solo comando. Sin embargo para uso particular la forma simblica vista
en la prctica es ms prctica.

INTRODUCCION A MATLAB

7. *Problema adicional: Escriba un archivo .m que tenga como argumentos de entrada los
polos, ceros y ganancia de una funcin de transferencia y devuelva como respuesta la
funcin de transferencia correspondiente. Es decir, realice una cdigo en MATLAB que
haga la misma funcin que zpk(z,p,k). [Sugerencia: Investigue las funciones de MATLAB
relacionadas a los polinomios.]
Como requisito su archivo deber ser capaz de devolver la siguiente funcin de
transferencia, por lo cual es necesario que obtenga previamente los polos y ceros de la
misma:
4 ( + 4)
H(s) = 2
+ 2 + 10

Primeramente se realiza un cdigo en MATLAB que permita la obtencin de la funcin de


transferencia tal como lo hace zpk() el nombre que se decidi dar fue el de zpk2(z,p,k) los
argumentos que recibe son los ceros z los polos p y la ganancia k, stos se ingresan de las
siguientes formas:
zpk2([ceros], [polos], [k ganancia]); o bien ingresando los datos antes en una variable:
z = [a b c];
p = [c d f];
k = e;
zpk2(z,p,k);
El cdigo es el siguiente:

Figura 41. Lneas de cdigo de la funcin zpk2

INTRODUCCION A MATLAB

A continuacin se observa un ejemplo de aplicacin de la funcin creada en MATLAB.

Figura 42. Ejemplo de aplicacin ejecutado en la lnea de comandos de MATLAB

Se puede observar que la funcin de trasferencia obtenida es igual a la funcin de transferencia


indicada en la gua de laboratorio.

OBSERVACIONES Y SUGERENCIAS

o Se observa que al ingresar las expresiones algebraicas de la funcin de transferencia en la


lnea de comandos, puede haber diferencias con la expresin de acuerdo al mtodo
aplicado, sobre todo si la ganancia esta acompaada por una ganancia diferente de uno.
o

INTRODUCCION A MATLAB

BIBLIOGRAFIA.

o Sistemas de Control Automtico


Benjamin Kuo 7 Edicion.
o Teora y Problemas de Realimentacin y Sistemas de Control.
Schaum

o Documentacion ayuda de Matlab.


Version R2013.