You are on page 1of 13

Laboratorio de Control

LABORATORIO DE CONTROL
FUNCIONES DE TRANSFERENCIA, POLOS Y CEROS
Objetivos:
a) Escribir polinomios y funciones de transferencia.
b) Obtener raíces de polinomios (polos y ceros).
c) Generar la función de transferencia, en las formas: Polinómica decreciente, Factorizada (polos,
ceros y ganancia) y Fracciones parciales.

Introducción:
Si y(t) es la (o una) variable de salida de un sistema, y x(t) la (o una) variable de entrada, entonces la función de
transferencia del sistema es G(s)Y(s)/X(s), donde, las variables x y y en el dominio de s.
Y ( s)

b m s m  b m1s m1  b m 2 s m 2 ...b1s  b 0

salida con condiciones iniciales  0
X (s) s n  a n1s n1  a n 2 s n 2 ...a1s  a 0 entrada
La función de transferencia sólo se define para un sistema lineal e invariante en el tiempo.
Dado que la función de transferencia es una fracción polinómica, hay muchas formas de expresarla. La forma
factorizada nos informa inmediatamente cuáles son los polos (raíces del denominador de la f.t.), ceros (raíces del
numerador de la f.t.) y ganancia (coeficiente de la mayor potencia del numerador de la f.t.) del sistema, parámetros
que determinan el comportamiento y estabilidad del mismo. Por su parte, la forma en fracciones parciales facilita
el cálculo de la respuesta en el tiempo del sistema, puesto que a cada término en fracción parcial se le puede
aplicar luego la transformada inversa de Laplace.

El siguiente cuadro resume los nombres, uso y sintaxis de las funciones más frecuentemente utilizadas en este
laboratorio:

Nombre Uso Sintaxis


conv multiplica dos polinomios conv(a,b)
deconv divide dos polinomios [c,d]=deconv(a,b)
poly polinomio a partir de las raíces p=poly(r)
roots raíces a partir del polinomio r=roots(p)
poly2str despliega los coeficientes de un vector poly2str(a,'variable')
como un polinomio
printsys despliega los coeficientes de dos printsys(n1,d1,'variable')
vectores como una función de
transferencia
residue de una fracción polinómica a fracciones [r,p,k]=residue(num,den)
parciales
resi2 residue cuando hay polos repetidos resi2(num,den,polo,q,potencia)
tf2zp de la función de transferencia polinómica [z,p,k]=tf2zp(num,den)
a ella en polos y ceros
zp2tf de la función de transferencia en polos y [num,den]=zp2tf(z,p,k)
ceros a ella polinómica

Página 1 de 13
Laboratorio de Control

Sección 1: Polinomios y raíces


4 3 2
Ejemplo: s + 3s + 11s  7s  36, el polinomio llamado p en Matlab sería:
» p=[1 3 11 -7 -36]

p =
1 3 11 -7 -36

Deben anotarse en el vector a los coeficientes en orden decreciente. Veamos otro ejemplo:
» num = [1 20 -83 0 117 2549]

num =
1 20 -83 0 117 2549

5 4 3
Este vector corresponde al polinomio s + 20s  83s + 117s + 2549 (note que al polinomio le falta el término
2
s , y de allí la presencia del cero en el vector).
Para poder apreciar el vector como polinomio, se utiliza la función poly2str:
» poly2str(num,'s')

ans =
s^5 + 20 s^4 - 83 s^3 + 117 s + 2549

» poly2str(p,'s')

ans =
s^4 + 3 s^3 + 11 s^2 - 7 s - 36

La otra alternativa para generar polinomios es a partir de un vector cuyos elementos son las raíces del
polinomio. Ejemplo: las raíces de un polinomio son 1, 1+ j3, 1j3, 2 y 4. Entonces generamos el vector de
raíces “r” y con la función “poly” generamos el polinomio:
» r=[-1 -1+3j -1-3j -2 4];
» pol=poly(r)

pol =
1 1 -2 -38 -116 -80

Pueden calcularse las raíces de un polinomio con la función roots”,


“ o sea que ella es la inversa de la función
“poly”. Usando el polinomio anterior:
» r1=roots(pol)

r1 =
4.0000

-1.0000 + 3.0000i
-1.0000 - 3.0000i
-2.0000
-1.0000

La exactitud (o inexactitud) de roots y poly depende sobretodo de la información de entrada, pero también del
algoritmo interno de estas funciones. Note qué ocurre cuando tratamos de generar pol a partir de r1:
» pol=poly(r1)

pol =
1.0000 1.0000 -2.0000 -38.0000 -116.0000 -80.0000

Página 2 de 13
Laboratorio de Control

Por lo tanto, cuando se trabaja con las raíces para generar el polinomio hay que procurar ser lo más exactos
posibles.

Sección 2: Convolución
Otra forma de generar polinomios es multiplicando dos o más polinomios existentes. Ello se logra con la
2
función “conv”. Veamos el caso de los polinomios (s + 3) y (2s + 7). El producto de los polinomios es 2s + 13s
+ 21, en Matlab sería:
» conv([1 3],[2 7])

ans =
2 13 21

Cuando se quiera multiplicar más de dos polinomios, entonces se puede realizar la convolución de una
convolución; conv( conv( n1,n2 ), n3).
La operación inversa (la división) se logra con la función deconv”
“ (deconvolución). Para esta función son
necesarios dos argumentos de salida: el cociente y el residuo.

Sección 3: Funciones de transferencia polinómica, factorizada y en fracciones parciales


Una función de transferencia polinómica consta del polinomio del numerador y del denominador. Por tanto, sólo
hace falta definir los vectores de ambos polinomios.
Importante: el grado del numerador debe ser menor o igual que el del denominador.
5s  5
Ejemplo: Si la función de transferencia es , entonces ella se escribe así:
s  8s 2  11s  18
3

» n1=[5 5];
» d1=[1 8 11 18];

Cada vez que se haya definido el numerador y denominador de un bloque, puede usar la función printsys”

para verificar que lo que escribió está correcto.
» printsys(n1,d1)
num/den =
5 s + 5
-----------------------
s^3 + 8 s^2 + 11 s + 18

La función “tf2zp” permite hallar la ganancia, ceros y polos de la función de transferencia:


» [z,p,k]=tf2zp(n1,d1)
z =
-1

p =
-6.7676
-0.6162 + 1.5100i
-0.6162 - 1.5100i
k =
5
Matlab almacena en k la ganancia, en z los ceros, y en p los polos. Por tanto, la función de transferencia
factorizada (o en la forma polo-cero) es:

Página 3 de 13
Laboratorio de Control

Y ( s) 5( s  1)

X ( s) ( s  6.7676)(s  0.6162  j1.5100)(s  0.6162  j1.5100)

La función inversa a “tf2zp” (transfer function to (2) zero-pole") es “zp2tf”:


» [n2,d2]=zp2tf(z,p,k)

n2 =
0 0 5 5
d2 =
1.0000 8.0000 11.0000 18.0000

La representación en fracciones parciales de una función de transferencia puede lograrse mediante la función
“residue”. Usamos n1 y d1:
» [R,P,K]=residue(n1,d1)
R =
-0.7188
0.3594 - 0.1915i
0.3594 + 0.1915i
P =
-6.7676
-0.6162 + 1.5100i
-0.6162 - 1.5100i
K =
[]

Matlab averigua primero si la fracción es propia o impropia. De ser propia, K=[ ] (el conjunto vacío). De no serlo
(caso poco común pero que puede darse) K almacena los coeficiente del cociente entre numerador y
denominador, y el residuo (junto con el denominador) forman una fracción propia que se descompone en
fracciones parciales. La descomposición en fracciones parciales de n1/d1 es:
0.7188 0.3594  j01915
. 0.3594  j01915
.
 
s  6.7676 s  0.6162  j15100
. s  0.6162  j15100
.

Si este resultado se va a utilizar para hallar la respuesta de un sistema a una entrada impulso, los residuos de
las fracciones con polos complejos deben transformarse a la forma polar. Para ello se puede usar la función
cart2pol (consulte el help de esta función en Matlab para más información):
» [angulo,magnitud]=cart2pol(real(R(2)),imag(R(2)))

angulo =
-0.4896 (El ángulo está dado en radianes)

magnitud =
0.4072

Compruebe que: si la entrada de un sistema de control es 10*cos(4t), la transformada de LaPlace de la


10s
entrada es ; con la función de transferencia dada por n1 y d1. La representación en fracciones parciales
2
s  16
es:
Página 4 de 13
Laboratorio de Control

R =
0.7871 + 0.0000i
-0.3800 - 0.8400i
-0.3800 + 0.8400i
-0.0136 + 0.4668i
-0.0136 - 0.4668i

P =
-6.7676
0.0000 + 4.0000i
0.0000 - 4.0000i
-0.6162 + 1.5100i
-0.6162 - 1.5100i

Si los residuos de las fracciones con polos complejos transfórmelos a la forma polar.

Asignación
1- Encuentre la expansión en fracciones parciales de las siguientes funciones:
1 s1
a) F( s)  c) F( s) 
s( s  2)( s  5) s( s  2)( s 2  6s  10)

b) F( s) 
1 s1
2
d) F( s) 
s( s  2s  10) ( s 2  2s  2)( s 2  6s  10)

2. Factorice los siguientes polinomios. Note que siempre que hay una potencia del polinomio con signo negativo o
que sea cero, al menos una raíz tiene parte real positiva o cero.
3 2 4 3
a) s + 13s + 33s + 30 c) s + 2s + +3s +6
5 4 3 2 4
b) s + 3s + 28s + 226s + 600s + 400 d) 2s + 25s + 4

3. Construya la función de transferencia en forma polinómica, dados los siguientes datos.

a) k=7; ceros: 2.5; polos: 1.33, 0.577.


2
b) numerador: los factores son s + 0.21 y s; denominador: los factores son s + 6s + 30 y (s – 1).
c) numerador: los factores son s + 0.88 y s + 0.10; polos: 0.42, 0.80 y 0.99.
d) ceros: 1, 3, 5; denominador: los factores son 4, s + 6, s + 4 y s + 1.
e) k=1; ceros: ninguno; polos: 2, 0.40.

4. Hallar la representación en cero-polo de las siguientes funciones de transferencia.

Página 5 de 13
Laboratorio de Control

REPRESENTACIÓN EN VARIABLES DE ESTADO


Objetivos:
1- Aprender el uso de funciones para pasar de cualquier representación en función de transferencia al
espacio de estado, y viceversa.
2- Calcular los valores propios de un sistema.

Introducción:
La teoría de control moderna se basa en la descripción de las ecuaciones de un sistema en términos de n
ecuaciones diferenciales de primer orden que pueden combinarse en una ecuación diferencial vectorial-matricial
de primer orden para simplificar la representación matemática de sistemas de ecuaciones. Desde el punto de
vista computacional, los métodos de espacio de estado son particularmente adecuados para los cálculos en
computadora digital, debido a su enfoque en el dominio del tiempo.
La característica más notable de un sistema (al estudiar su modelo matemático) son los polos del sistema. La
información de los polos del sistema está contenida en el polinomio característico (en el caso de una función de
transferencia) o en la matriz A (en el caso del espacio de estado). Los valores propios no son más que los
polos del sistema.

Referencia Rápida:

Nombre Uso Sintaxis


tf2ss de una función de transferencia polinómica al [A,B,C,D]=tf2ss(num,den)
espacio de estado (forma canónica asociada)
ss2tf del espacio de estado a una función de [num,den]=ss2tf(A,B,C,D)
transferencia polinómica
zp2ss de una función de transferencia en polos y ceros al [A,B,C,D]=zp2ss(z,p,k)
espacio de estado
ss2zp del espacio de estado a una función de [z,p,k]=ss2zp(A,B,C,D)
transferencia en polos y ceros
eig cálculo de los valores propios eig(A)
poly2str despliega los coeficientes de un vector como un poly2str(a,'variable')
polinomio

Sección 1: del dominio de Laplace al espacio de estado


Las funciones tf2ss y zp2ss permiten pasar de una función de transferencia al espacio de estado.
Ejemplo 1: Obtener la representación en el espacio de estado para la siguiente función de transferencia.
a) X(s) 5
 2
U(s) (s  1) (s  2)
En Matlab se obtiene:
» z=[]; %No hay ceros
» p=[-1 -1 -2]'; %Polos
» k=5; %Ganancia
» [A,B,C,D]=zp2ss(z,p,k)

A =
-1.0000 0 0
1.0000 -3.0000 -1.4142
0 1.4142 0

Página 6 de 13
Laboratorio de Control

B =
1
0
0

C =
0 0 3.5355

D =
0

s4
b) Gs 
s  6s 2  11s  6
3

» num=[1 4]; %numerador


» den=[1 6 11 6]; %denominador
» [a,b,c,d]=tf2ss1(num,den)

a =
0 1 0
0 0 1
-6 -11 -6

b =
0
0
1

c =
4 1 0

d =
0

Sección 2: Modelo de un sistema en el espacio de estado. Cómo pasar del espacio de estado al
dominio de Laplace. Valores propios.
Problema: En la figura 1 se muestra un circuito RLC. Las variables de estado son vc(t) e i(t).
1- Hallar una representación en variables de estado.
2- Hallar la función de transferencia en forma:
a- polinómica
b- de polos y ceros

R L

+ +
+ i(t) VC(t)
e1(t) C

 

Figura 1: Circuito RLC

Página 7 de 13
Laboratorio de Control

Solución: para este sistema, aplicamos LVK y luego las relaciones voltaje-corriente para cada elemento.
e(t) = VR(t) + VL(t) + VC(t)
di(t ) dV (t )
VR =R*i(t); VL (t )  L ; i(t )  C C
dt dt
Si elegimos a VC(t) y a i(t) como variables de estado, las ecuaciones diferenciales de primer orden son:
dVC (t ) 1
 i(t )
dt C
di(t ) 1 1
 VL (t )  e(t )  VR (t )  VC (t )
dt L L
1 R 1
  VC (t )  i(t )  e(t )
L L L
En forma matricial:
 dVC (t )   1
 dt   0  0
C   VC (t )   1e(t )
 di(t )    1 R   
      i(t )   L 
 dt   L L

Una vez se sepan los valores de R, L y C, y se definan las matrices A, B, C, D, en función de esos parámetros,
entonces podemos proceder a la resolución en Matlab:

» R=1e3; L=1e-3; C=1e6; %Parámetros


» A=[0 1/C;-1/L -R/L];
» B=[0; 1/L];
» % Asumir como salida i(t).
» C=[0 1]; D=0;

» % Transformación a una función de transferencia polinómica:


» [num,den]=ss2tf(A,B,C,D); %haremos uso del printsys
» printsys(num,den,'s')
num/den =
1000 s + 9.895e-007
--------------------------
s^2 + 1e+006 s + 0.0009895
»
» % Transformación a función de transferencia ceros-polos:
» [z,p,k]=ss2zp(A,B,C,D) %el printsys no es aplicable aquí

z =
0

p =
1.0e+005 *

0.0000
-10.0000

k =
1000

Página 8 de 13
Laboratorio de Control

Asignación:
1- El diagrama de bloques mostrado es de un sistema automático de control de profundidad para un robot
submarino. La profundidad se mide mediante un transductor de presión. La ganancia del actuador del alerón
-4
de popa es K=10 cuando la velocidad es de 8 m/s. El submarino tiene la función de transferencia aproximada

G( s) 
s  0.2 2 y el transductor de retroalimentación es H(s)=1.
s 2

 0.01

profundidad deseada profundidad


+ 1
R(s) K G(s) C(s)
s
 actuador

H(s)

Medición de
presión

Diagrama de bloque para el problema 1

a- Hallar una representación en variables de estado.


b- Hallar la función de transferencia.

2- Para el siguiente diagrama de bloque, las variables de estado son x1(t), x2(t) y x3(t)

X2(s) X1(s)
U(s) + 2 + 2
s3 s s  1
 
X3(s)
s

Diagrama de bloque para el problema 2.

a- Hallar la representación en el espacio de estado.


b- Halle la función de transferencia, polos y ceros.

Página 9 de 13
Laboratorio de Control

REDUCCIÓN DE DIAGRAMAS DE BLOQUE

Objetivos:
Aprender el uso de funciones, y luego aplicarlas para reducir diagramas de bloque sencillos.

Introducción:
Un diagrama de bloque es la representación gráfica de un sistema físico que ilustra las relaciones
funcionales entre los componentes del sistema. En general, un diagrama de bloques consiste en una
configuración específica de cuatro tipos de elementos: bloques, puntos de suma, puntos de bifurcación y
flechas que representan la señal de flujo unidireccional.

Referencia Rápida:

Nombre Uso Sintaxis


series reduce dos bloques en serie [n,d]=series(n1,d1,n2,d2)
parallel reduce dos bloques en paralelo [n,d]=parallel(n1,d1,n2,d2)
cloop reduce un bloque retroalimentado unitariamente [n,d]=cloop(n1,d1,signo)
feedback reduce un bloque retroalimentado [n,d]=feedback(n1,d1,n2,d2,signo)
poly2str despliega los coeficientes de un vector como un poly2str(a,'variable')
polinomio
printsys despliega los coeficientes de dos vectores como printsys(n1,d1,'variable')
una función de transferencia

Sección 1: Ejemplo
Reducir el diagrama de bloque que se muestra:

1 2 4
U(s) + + + Y(s)
1 s 1
2
s 1  s  2s  7 s
 +
3
1
s

1 5
2
s  3s  10

Figura 1: diagrama de bloques para la explicación.

1. Identificar a cada bloque, asignando una variable de identificación al numerador y al denominador, y


cuyos contenidos serían los coeficientes de los polinomios del numerador y denominador de la función de
1
transferencia del bloque. Ejemplo: para el bloque 1, la función de transferencia es ; por lo tanto, su
s1
numerador es 1, y su denominador es s+1. De igual forma para todos los bloques. La representación en
Matlab es la siguiente:
Página 10 de 13
Laboratorio de Control

» n1=1;
» d1=[1 1];
» n2=[1 0];
» d2=[1 2 7];
» n3=1;
» d3=[1 0];
» n4=n3;
» d4=d3;
» n5=1;
» d5=[1 3 10];

Puede usar la función “printsys” para verificar si lo que escribió está correcto. Por ejemplo:
» printsys(n1,d1)
num/den =
1
-----
s + 1

El siguiente paso es la reducción secuencial de los bloques. En este caso, está reducción se hace en el
siguiente orden:
a- bloques 2 y 3: retroalimentación  bloque (ret1)
b- bloques ret1 y 4: en serie  bloque (ser1)
c- bloques ser1 y 5: en paralelo  bloque (par1)
d- bloques par1 y 1: en serie  bloque (ser2)
d- bloque par1: retroalimentación unitaria  bloque final.

Esto llevada a Matlab:


» % bloques 2 y 3 en paralelo
» [nret1,dret1]=feedback(n2,d2,n3,d3,-1);
» printsys(nret1,dret1,'s')
num/den =
s^2
-----------------
s^3 + 2 s^2 + 8 s
»
» % el bloque resultante está en serie con el bloque 4
» [nser1,dser1]=series(nret1,dret1,n4,d4);
printsys(nser1,dser1,'s')
num/den =
s^2
-------------------
s^4 + 2 s^3 + 8 s^2
»
» % el bloque resultante está en paralelo con el bloque 5
» [npar1,dpar1]=parallel(nser1,dser1,n5,d5);,printsys(npar1,dpar1,'s')
num/den =
2 s^4 + 5 s^3 + 18 s^2
--------------------------------------
s^6 + 5 s^5 + 24 s^4 + 44 s^3 + 80 s^2
Página 11 de 13
Laboratorio de Control

»
» %(Note que hicimos uso de la coma”
“ para escribir dos comandos en la misma
línea.)
» % el bloque resultante está en serie con el bloque 1
» [nser2,dser2]=series(npar1,dpar1,n1,d1);,printsys(nser2,dser2,'s')
num/den =
2 s^4 + 5 s^3 + 18 s^2
------------------------------------------------
s^7 + 6 s^6 + 29 s^5 + 68 s^4 + 124 s^3 + 80 s^2

» % el bloque resultante está unitariamente retroalimentado


» [num,den]=cloop(nser2,dser2,-1);,printsys(num,den,'s')
num/den =
2 s^4 + 5 s^3 + 18 s^2
------------------------------------------------
s^7 + 6 s^6 + 29 s^5 + 70 s^4 + 129 s^3 + 98 s^2

» % y este viene a ser el bloque final o función de transferencia.

Asignación
1 1
1- Determine las funciones de transferencia C(s)/R1(s) y C(s)/R2(s). Si G1 ( s)  , H1( s)  ,
s 2  4s  1 s
s3
G 2 ( s)  , H2= H1.
s 2  3s  12
R2

R1 + + C
 G1 (s)  G 2 (s)
 

H2 (s)

H1 (s)

100 4
2- a) Determinar C(s)/R1(s), si G1(s)=5.5; G2 ( s)  ; G3 ( s )  ; H1(s)=s.
s  50 s( s  1)
1
b) Estudie el efecto que tiene sobre la función de transferencia el reemplazar H 1(s) por , con
sa
a=0, 0.5, 5, 50, 500.
R1 + + C
G1(s) Σ G2(s) G3(s)
Σ


H1(s)

Página 12 de 13
Laboratorio de Control

3- a) Para el diagrama de bloque que se muestra a continuación determine la función de transferencia


de lazo cerrado (C(s)/R(s)), para K=10, Tm=0.8, T1=2.

E + C
R + + 1 K
   T1 
Tm s2
 

B 1
s

+ 1 1
Tm s

T1

Página 13 de 13