Sei sulla pagina 1di 10

Laboratorio de Control

Laboratorio #3: Modelos Matemáticos de Sistemas

Prof. Edwin Collado

Objetivos: Utilizar MATLAB para:


a) Escribir polinomios y funciones de transferencias.
b) Obtener raíces de polinomios (polos y ceros).
c) Transformar cualquier representación en función de transferencia al espacio de estado, y viceversa.
d) Reducir diagrama de bloques.

Introducción
Para comprender y controlar sistemas complejos, hay que obtener modelos matemáticos cuantitativos de
ellos. Por tanto, es necesario analizar las relaciones entre las variables del sistema y obtener un modelo
matemático. Como los sistemas considerados son de naturaleza dinámica, las ecuaciones descriptivas son
generalmente ecuaciones diferenciales. Además, si estas ecuaciones pueden linealizarse, entonces se puede
utilizas la transformada de Laplace para simplificar el método de solución. En la práctica, por la complejidad
de los sistemas y el desconocimiento de todos los factores relevantes es necesario introducir hipótesis sobre
la operación del sistema. Por tanto, a veces será útil considerar el sistema físico, delinear algunas hipótesis
necesarias y linealizar el sistema. Luego, empleando las leyes físicas que describen el sistema lineal
equivalente, se pueden obtener un conjunto de ecuaciones diferenciales lineales Finalmente, utilizando
herramientas matemáticas, como la transformada de Laplace, se obtiene una solución que describe la
operación del sistema. En resumen, el tratamiento de los problemas de sistemas dinámicos puede
establecerse como sigue:
1. Definir el sistema y sus componentes
2. Formular el modelo matemático y enumerar las suposiciones necesarias
3. Escribir las ecuaciones diferenciales que describen el modelo
4. Resolver las ecuaciones para las variables de salida deseadas
5. Examinar las soluciones y las hipótesis
6. Si es necesario, volver a analizar o diseñar el sistema.

La función de transferencia de un sistema se define como la relación entre la transformada de Laplace de la


variable de salida y la transformada de Laplace de la variable de entrada, suponiendo que las condiciones
iniciales se hacen iguales a cero. La función de transferencia de un sistema representa la relación que
describe la dinámica del sistema considerado.

Otra herramienta importante para describir un sistema de control es la representación por diagrama de
bloques, la cual consiste en bloques operacionales y unidireccionales que representan la función de
transferencia de las variables de interes.

MATLAB se puede utilizar con sistemas descritos en la forma de función de transferencia. Este laboratorio
tiene como objetivo enseñar a los estudiantes a utilizar MATLAB para generar funciones de transferencias,
analizar dichas funciones y representarlas en sus respectivos diagramas de bloques. Específicamente, con
este laboratorio aprenderán a escribir polinomios y funciones de transferencias, obtener raíces de polinomios
(polos y ceros), transformar cualquier representación en función de transferencia al espacio de estado, y
viceversa y reducir diagrama de bloques.

Sección 1: Análisis de sistemas mediante funciones de transferencias

Las funciones que utilizaremos en la Sección 1 están resumidas en la siguiente tabla.


Función Descripción
roots Calcular raíces
poly Recomponer el polinomio a partir de las raíces
conv Convolución de dos vectores
polyval Evaluar polinomio
poly2str Despliega los coeficientes de un vector como un polinomio
printsys Despliega los coeficientes de dos vectores como una función de transferencia
tf Crear objetos de una función de transferencia
pzmap Crear una gráfica de polos y ceros de un sistema
residue Converite de una fracción polinómica a fracciones parciales
resi2 Residue cuando hay polos repetidos
tf2zp Convierte de la función de transferencia polinómica a ella en polos y ceros
zp2tf Convierte de la función de transferencia en polos y ceros a ella polinómica
pole Localización de polos de un sistema lineal
zero Localización de ceros de un sistema lineal

Como la función de transferencia es una razón de polinomios, se comienza por investigar como MATLAB
maneja polinomios. En esta herramienta, los polinomios se representan como vectores filas que contienen
coeficientes del polinomio en orden descendente. Por ejemplo, 𝑝(𝑠) = 𝑠 3 + 3𝑠 2 + 4 se escribe en MATLAB
como 𝑝 = [1 3 0 4]. Observe que si un término de 𝑠 no aparece en el polinomio, entonces su coeficiente debe
ser igual a 0 en el vector fila correspondiente.
Ejemplo: Considere los polinomios 𝑝(𝑠) = 𝑠 4 + 3𝑠 3 + 11𝑠 2 − 7𝑠 − 36 y 𝑞(𝑠) = 𝑠 5 + 20𝑠 4 − 83𝑠 3 + 117𝑠 +
2549, los polinomios en Matlab se escriben como:
» p=[1 3 11 -7 -36]
p =
1 3 11 -7 -36

» q = [1 20 -83 0 117 2549]

q =
1 20 -83 0 117 2549

Note que al polinomio 𝑞(𝑠) le falta el término 𝑠 2 , y de allí la presencia del cero en el vector.
Para poder transformar el vector a polinomio, se utiliza la función poly2str. Tomando en cuenta el ejemplo
anterior, obtenemos:
» poly2str(p,'s')

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

» poly2str(q,'s')

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

Las raíces de los polinomios se obtienen mediante la función roots y genera un vector columna con la
solución. Inversamente, se puede obtener los coeficientes de las raíces de un polinomio utilizando la función
poly. Ingrese el siguiente ejemplo en la ventana de comandos.
>> p=[1 3 0 4];
>> r=roots(p)
r =
-3.3553 + 0.0000i
0.1777 + 1.0773i
0.1777 - 1.0773i
>> p=poly(r)
p =
1.0000 3.0000 0.0000 4.0000

Otra forma de generar polinomios es multiplicando dos o más polinomios existentes. Ello se logra con la
función “conv”. Veamos el caso de los polinomios (𝑠 + 3) 𝑦 (2𝑠 + 7). El producto de los polinomios es 2𝑠 2 +
13𝑠 + 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, por ejemplo 𝑐𝑜𝑛𝑣(𝑐𝑜𝑛𝑣(𝑝, 𝑞), 𝑚). La operación inversa (la división) se logra con la función
𝑑𝑒𝑐𝑜𝑛𝑣, que representa la deconvolución. Para esta función son necesarios dos argumentos de salida: el
cociente y el residuo.
Para obtener el valor de un polinomio con respecto a un valor dado de la variable 𝑠, se utiliza el comando
polyval como se observa en el siguiente ejemplo.
>> n=[3 14 9 4];

n =

3 14 9 4

>> value=polyval(n,-5)

value =

-66

Una función de transferencia polinómica consta del polinomio del numerador y del denominador, donde el
grado del numerador debe ser menor o igual que el del denominador. Cuando se hayan definido el numerador
y el denominador, puede usar la función printsys para desplegar los coeficientes los vectores como una
función de transferencia.
5𝑠+5
Ejemplo: Si la función de transferencia es 𝑠3 +8𝑠2 +11𝑠+18, entonces ella se escribe así:
» n1=[5 5];
» d1=[1 8 11 18];
» FT=printsys(n1,d1)
FT=
5 s + 5
-----------------------
s^3 + 8 s^2 + 11 s + 18
Otra opción para crear una función de transferencia a partir de polinomios es la función 𝑡𝑓(𝑛𝑢𝑚, 𝑑𝑒𝑛).
Utilizando el ejemplo anterior, obtenemos:
» n1=[5 5];
» d1=[1 8 11 18];
»FT=tf(n1,d1)
FT =
5 s + 5
-----------------------
s^3 + 8 s^2 + 11 s + 18

MATLAB permite realizar operaciones con funciones de trasferencias, como son la suma, resta, multiplicación
y división. En el siguiente ejemplo considere el caso donde se suman las siguientes funciones de
transferencias:

10 1
𝐺1 (𝑠) = 𝑦 𝐺2 (𝑠) =
𝑠2 + 2𝑠 + 5 𝑠+1

Para ello, ingrese el siguiente ejemplo en la ventana de comandos.


>> num1=[10];den1=[1 2 5];
>> sys1=tf(num1,den1)
sys1 =
10
-------------
s^2 + 2 s + 5
Continuous-time transfer function.
>> num2=[1];den2=[1 1];
>> sys2=tf(num2,den2)
sys2 =
1
-----
s + 1
Continuous-time transfer function.
>> sys=sys1+sys2
sys =
s^2 + 12 s + 15
---------------------
s^3 + 3 s^2 + 7 s + 5
Continuous-time transfer function.

Para obtener los polos y ceros asociados a una función de transferencia en MATLAB se utilizan las funciones
pole y zero, respectivamente. Los polos y ceros pueden graficarse utilizando la función pzmap como se
observa en el siguiente ejemplo.
sys =
s^2 + 12 s + 15
---------------------
s^3 + 3 s^2 + 7 s + 5
Continuous-time transfer function.
>> p=pole(sys)
p =
-1.0000 + 2.0000i
-1.0000 - 2.0000i
-1.0000 + 0.0000i
>> z=zero(sys)
z =
-10.5826
-1.4174
pzmap(sys)
Pole-Zero Map

1
Imaginary Axis (seconds-1 )

-1

-2

-12 -10 -8 Real Axis-6


(seconds ) -4
-1
-2 0

También se puede hallar la ganancia, ceros y polos de la función de transferencia con la función tf2zp. Matlab
almacena en k la ganancia, en z los ceros, y en p los polos, como se puede observar en el siguiente ejemplo:
» [z,p,k]=tf2zp(n1,d1)
z =
-1

p =
-6.7676
-0.6162 + 1.5100i
-0.6162 - 1.5100i
k =
5

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


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

n2 =
00 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 𝑟𝑒𝑠𝑖𝑑𝑢𝑒. 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 =
[]

Asignación:
1) 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.
b) k=1; ceros: ninguno; polos: 2, 0.40.
c) numerador: s(s + 0.21) y denominador: (s2 + 6s + 30 )(s – 1).
d) numerador: s+1 y denominador s(s+2)( s2 + 6s + 10)

2) Considere las siguientes funciones de transferencias


6𝑠 2 + 1 (𝑠 + 1)
𝐺(𝑠) = 3 2
𝑦 𝐻(𝑠) = 2
𝑠 + 3𝑠 + 3𝑠 + 1 (𝑠 + 2𝑠 + 2)(𝑠 2 + 6𝑠 + 10)
a) Obtener la función de transferencia 𝑌(𝑠) = 𝐺(𝑠)/𝐻(𝑠).
b) Obtener los polos y ceros para la función 𝑌(𝑠) y graficarlos.

Sección 2: Representación en variables de estado

Las funciones que utilizaremos en la Sección 2 están resumidas en la siguiente tabla.

Función Descripción
tf2ss Convierte de una función de transferencia polinómica al espacio de estado (forma
canónica asociada)
ss2tf Convierte del espacio de estado a una función de transferencia polinómica
zp2ss Convierte de una función de transferencia en polos y ceros al espacio de estado
ss2zp Convierte el espacio de estado a una función de transferencia en polos y ceros
poly2str Despliega los coeficientes de un vector como un polinomio
eig cálculo de los valores propios

Las funciones tf2ss y zp2ss permiten pasar de una función de transferencia en representación
de polinomios o ceros-polos al espacio de estado.
Ejemplo 1: Obtener la representación en el espacio de estado para la siguiente función de
transferencia.
5
a) (𝑠+1)2 (𝑠+2)
» z=[]; %No hay ceros
» p=[-1 -1 -2]'; %Polos
» k=5; %Ganancia
» [A,B,C,D]=zp2ss(z,p,k)

-1.0000 0 0
A= 1.0000 -3.0000 -1.4142
0 1.4142 0
B =
1
0
0

C =
0 0 3.5355

D =
0

s+4
b) 𝑠3 +6𝑠2 +11s+6)

» num=[1 4]; %numerador


» den=[1 6 11 6]; %denominador
» [a,b,c,d]=tf2ss(num,den)
a =
0 1 0
0 0 1
-6 -11 -6
b =
0
0
1
c =
41 0
d =
0

Las funciones ss2tf y ss2zp permiten pasar del espacio de estado a una función de transferencia
en representación de polinomios o ceros-polos. Tomando los ejemplos anteriores, tenemos:
a) >> [b,a] = ss2zp(A,B,C,D)
b =
0×1 empty double column vector
a =
-1
-2
-1
b) >> [b,a] = ss2tf(a,b,c,d)
b =
0 0 1 4
a =
1.0000 6.0000 11.0000 6.0000
>> printsys(b,a)
num/den =
s + 4
----------------------
s^3 + 6 s^2 + 11 s + 6

Asignación:
1) Obtenga las variables de estado de las siguientes funciones de trasferencias.
1
a) 𝐺(𝑠) = 𝑠+10
3𝑠2 +10𝑠+1
b) 𝐺(𝑠) = 𝑠2 +8𝑠+5

2) Obtener los ceros-polos de las funciones de trasferencias del problema anterior y


encontrar las variables de estado. Comparar con el resultado previamente obtenido.
3) Obtenga las funciones de trasferencias y los ceros-polos de las siguientes variables de
estado.
0 1 1
a) 𝐴 = [ ] 𝐵=[ ] 𝐶 = [1 0]
2 4 1
0 1 0
b) 𝐴 = [ ] 𝐵=[ ] 𝐶 = [1 1]
−1 −2 1

Sección 3: Reducción de diagramas de bloque

Las funciones que utilizaremos en la Sección 3 están resumidas en la siguiente tabla.

Función Descripción
series reduce dos bloques en serie
parallel reduce dos bloques en paralelo
cloop reduce un bloque retroalimentado unitariamente
feedback reduce un bloque retroalimentado
poly2str despliega los coeficientes de un vector como un polinomio
printsys despliega los coeficientes de dos vectores como una función de transferencia

MATLAB permite interconectar componentes para formar sistemas de control más complejos. Se
utilizarán funciones para efectuar transformaciones del diagrama de bloques.

Conexión serie y paralelo


Considere las funciones de transferencia

1 𝑠+1
𝐺(𝑠) = 𝑦 𝐹(𝑠) =
500𝑠 2 𝑠+2

Se puede emplear la función 𝑠𝑒𝑟𝑖𝑒𝑠 para poner en serie o cascada dos funciones de transferencia
y la función parallel para poner en paralelo dos funciones de transferencia. Considere el ejemplo
de las funciones de transferencia 𝐺(𝑠) y 𝐹(𝑠)
>> numg=[1];deng=[500 0 0]
>> sysg=tf(numg,deng);
>> numf=[1 1];denf=[1 2]
>> sysf=tf(numf,denf);
%Conexion serie
>> S=series(sysg,sysf)
S =
s + 1
------------------
500 s^3 + 1000 s^2
Continuous-time transfer function.
%Conexion paralelo
>> P=parallel(sysg,sysf)
P =
500 s^3 + 500 s^2 + s + 2
-------------------------
500 s^3 + 1000 s^2
Continuous-time transfer function.

Retroalimentación
Se puede introducir una señal de retroalimentación en el sistema de control cerrando el lazo con
una retroalimentación unitaria o una retroalimentación de función 𝐻(𝑠). Para ello, MATLAB utiliza
la función feedback y cloop. Si se omite la entrada de signo en la función, entonces MATLAB
supone que la retroalimentación es negativa. En el siguiente ejemplo vemos la implementación
de la función feedback.
>> numg=[1];deng=[500 0 0]
>> sysg=tf(numg,deng);
>> numf=[1 1];denf=[1 2]
>> sysf=tf(numf,denf);
%Conexion serie
>> S=series(sysg,sysf)
S =
s + 1
------------------
500 s^3 + 1000 s^2
Continuous-time transfer function.
%Retroalimentación unitaria
>> Sys=feedback(S,[1])
Sys =
s + 1
--------------------------
500 s^3 + 1000 s^2 + s + 1
Continuous-time transfer function.

% Retroalimentación de función 𝐻(𝑠)


>> Sys2=feedback(sysg,sysf)
Sys2 =
s + 2
--------------------------
500 s^3 + 1000 s^2 + s + 1
Continuous-time transfer function.

Asignación:
1) Encuentre la función de transferencia de Y(s)/U(s).

U(s) + + + Y(s)
Y(s
1 s 1
ss))
s+1 − s2 + 2s + 7 s
− +
3
1
s

1 5
s2 + 3s + 10

Potrebbero piacerti anche