Digital Basic o

También podría gustarte

Está en la página 1de 50

Aproximación de funciones de transferencia de

sistemas continuos por sistemas discretos

En el dominio del tiempo-Invarianza al escalón, Invarianza


a la rampa. Variables de estado y funciones de
transferencia
Por aproximación del integrador. Euler modi cado y
transformación bilineal.
Usaré como notacion Tm por tiempo de muestreo, y no Ts ;
como en el libro del profesor Hernando Diaz, para no
introducir confusión con mi notación Ts , para tiempo de
establecimiento.
Discretización de Sistemas

Supongamos el sistema G(s): Debido a que en sistemas de control se utilizan


conversores A/D y D/A con ZOH, es útil pensar en aproximar un sistema
continuo mediante uno discreto Gd (z ) que en instantes de muestro tenga
exactamente la misma respuesta al paso

U ( s) Y ( s) U ( z ) Y ( z)
G ( s) Gd ( z )

Para ello supongamos que la respuesta del sistema continuo esta dada por

Y (s) = G(s)U (s)


Y de manera similar la respuesta del sistema discreto está dada por

Y (z ) = Gd (s)U (z )
Discretización de Sistemas

La respuesta de ambos sistemas al paso esta dada por

1
Y (s) = G(s)
s
z
Y (z ) = Gd (z )
z 1
La respuesta en el tiempo de cada sistema es

1 1
y (t ) = G(s)
s
1 z
y (k ) = Z Gd (z )
z 1

Requerimos que ambas respuestas sean iguales en instantes de muestreo, de


manera que

1 1 1 z
y (t )jt =kTm = G(s) = y (kTm ) = Z Gd (z )
s z 1
Discretización de Sistemas

1 1 1 1
y (t)jt=kTm = G(s) jt=kTm = y (kTm ) = Z G(s)
s s
A partir de la última ecuación

1 1 1 z
G(s) jt=kTm = Z Gd (z)
s z 1
z 1 1
Gd (z) = Z G(s) jt=kTm
z 1 s
z 1 1 1
Gd (z) = Z G(s) jt=kTm
z s
Aunque parece críptica esta ultima ecuación tiene un
interpretación muy sencilla como mostraremos en el siguiente
ejemplo.
Ejemplo de invarianza al paso

Se diseño un controlador cuya función de transferencia es

s+2
C(s) =
(s + 1)(s + 3)
Encuentre un controlador discreto equivalente invariante al
paso.
Solución
Para esto

C(s) s+2
=
s s(s + 1)(s + 3)
C(s) 2 1 1
=
s 3s 2 (s + 1) 6 (s + 3)
1 1 2 1 3t 1 t
C(s) = e e
s 3 6 2
Ejemplo de invarianza al paso

Tenemos la respuesta al paso del controlador continuo

1 1 2 1 3t 1 t
C (s ) = e e
s 3 6 2
La muestreamos cada Tm

1 1 2 1 3kTm 1 kTm
C (s ) jt =kTm = e e
s 3 6 2
Por último

z 1 1 1
C (z ) = Z $ C (s ) jt =kTm
z s
z 1 2 1 3kTm 1 kTm
C (z ) = Z e e
z 3 6 2
El compensador equivalente es

z 1 2 z 1 z 1 z
C (z ) = ( 3Tm Tm
)
z 3z 1 6z e 2z e
3Tm Tm
z 4 e 3e + 4e 4Tm 3e 3Tm e Tm
C (z ) =
6z 2 + ( 6e Tm 6e 3Tm ) z + 6e 4Tm
Ejemplo de invarianza al paso

Si ahora tomamos un tiempo de muestreo de Tm = 0:5s

1:9573z 0:734 58
C(z) =
6:0z 2 4:978z + 0:81201

Step Response
0.7

0.6

0.5

0.4
Amplitude

0.3

0.2

0.1

0
0 1 2 3 4 5 6 7 8 9 10
Time (sec)
Invarianza ante escalones-Modelos en variables de
estado
Si tenemos un modelo continuo descrito en variables de estado

x_ = Ax + Bu
y = Cx + du
supongamos que la señal de entrada es constante en el
intervalo [kTm ; kTm + Tm ]
Es decir

u(t) = u(kTm ); kTm t (k + 1)Tm


A partir de la ecuación de estado del sistema podemos
encontrar la solución pà
(k +1)T
Z m
x(t) = eA(t kTm )
x(kTm ) + eA(t )
Bu( )d
kTm
Invarianza ante escalones-Modelos en variables de
estado
Si tenemos un modelo continuo descrito en variables de estado

x_ = Ax + Bu
y = Cx + du
supongamos que la señal de entrada es constante en el
intervalo [kTm ; kTm + Tm ]
Es decir

u(t) = u(kTm ); kTm t (k + 1)Tm


A partir de la ecuación de estado del sistema podemos
encontrar la solución pà
(k +1)T
Z m
x(t) = eA(t kTm )
x(kTm ) + eA(t )
Bu( )d
kTm
Invarianza ante escalones-Modelos en variables de
estado

Nos interesa el estado en t = (k + 1)Tm

2 3
(k +1)T
Z m
6 7
x((k + 1)Tm ) = eATm x(kTm ) + 4 eA(t )
Bd 5 u(kTm )
kTm

Haciendo un cambio de variable en la integral se encuentra que


(k +1)T 2T 3
Z m Zm
eA(t )
Bd = 4 eA d 5 B
kTm 0

Con esto obtenemos el modelo discreto


Invarianza ante escalones-Modelos en variables de
estado

2T 3
Zm
x((k + 1)Tm ) = eATm x(kTm ) + 4 eA d 5 Bu(kTm )
0
De aquí que tenemos el modelo discretizado

x(k + 1) = x(k ) + Bu(k )


y (k ) = Cx(k ) + du(k )
Con

A = eATm
2T 3
Zm
B = 4 eA d 5 B
0
Como se calculan estos valores

Para el cálculo de la matriz exponencial B̄

A2 Tm2 A3 Tm3
A = eATm = I + ATm + +
2! 3!
2T 3 Tm
Zm Z
A2 2 A3 3
B = 4 eA d 5 B = I+A + + d B
2! 3!
0 0
2T 3
Zm
AT 2 A2 Tm3 A3 Tm3
B = 4 eA d 5 B = ITm + m + + + ::: B
2! 3! 4!
0

Con esto seleccionamos un número de términos de la serie


para hacer la aproximación
normalmente entre 10 y 50
Ejemplo: conversión usando el método de invarianza
al paso

Ejemplo: use variables de estado para obtener la discretización


del mismo controlador representado en variables de estado

s+2
C(s) =
(s + 1)(s + 3)
En función de transferencia usamos el código en MATLAB

cs=zpk(-2,[-1 -3],1)
czft=c2d(cs,T)
Ejemplo: conversión usando el método de invarianza
al paso

Ejemplo: use variables de estado para obtener la discretización


del mismo controlador representado en variables de estado

s+2
C(s) =
(s + 1)(s + 3)
En variables de estado hacemos lo siguiente

cs=zpk(-2,[-1 -3],1)
csve=ss(cs)
cved=c2d(csve,T)
¿Como hace el calculo internamente MATLAB

Siempre se usa la representación de estado del sistema y se


usan las matrices exponenciales descritas anteriormente para
hallar el sistema discreto equivalente.

A2 Tm2 A3 Tm3
A = eATm = I + ATm + +
2! 3!
2T 3
Z m
AT 2 A2 Tm3 A3 Tm3
B = 4 eA d 5 B = ITm + m + + + ::: B
2! 3! 4!
0
¿Como hace el calculo internamente MATLAB

cs=zpk(-2,[-1 -3],1)
csve=ss(cs)
A=csve.a
B=csve.b
C=csve.c
d=csve.d
T=0.5
%obtencion de A
EAT=eye(size(A))
for i=1:50
EAT=EAT+(A*T)^i/factorial(i);
end
¿Como hace el calculo internamente MATLAB?

%obtencion de B
Bb=T*eye(size(A))
for i=1:50
Bb=[Bb+(A*T)^i*T/factorial(i+1)];
end
Bb=Bb*B
Invarianza a la rampa

En este metodo se supone que la entrada al sistema varía


linealmente con el tiempo. Tiene la ventaja sobre el otro de no
introducir un retardo de fase adicional

(z 1)2 1 1
Gd (z) = Z G(s) jt=kTm
z s2
La manera de obtenerla es de manera similar a coo hicimos en
la invarizan al paso y no insistiremos sobre esto.
MATLAB
cs=zpk(-2,[-1 -3],1)
cd=cd2(cs,'foh')
Aproximaciones en la frecuencia

Se trata de aproximar el factoe 1/s y de aqui el factor de


derivación s
u 1 y
s
Para hacer esto consideremos la ecuación

y_ = u
Y 1
=
U s
La ecuación anterior podemos expresarla en una solución
recursiva
t+T
Zm
y (t + Tm ) = y (t) + u( )d
Tm
Aproximaciones en la frecuencia

Del como se aproxime la integral


t+T
Zm
u( )d
Tm

en el intervalo [Tm ; t + Tm ]; depende el método de integración

u (t ) u (t + Tm )

t t + Tm
Tm
Aproximación de Euler con diferencia hacia atrás
(backward Euler)

La integral
t+T
Zm
u( )d
Tm

Es aproximada por el rectángulo que se muestra en la gura:

u (t ) u (t + T )

t t + Tm
Tm
Aproximación de Euler con diferencia hacia atrás
(backward Euler)

u (t ) u (t + T )

t t + Tm
Tm

Con esta aproximación escribimos la ecuación

t+T
Zm
y (t + Tm ) = y (t) + x( )d
0
y (t + Tm ) y (t) + Tm u(t + Tm )
En los instantes de muestreo t = kTm
Aproximación de Euler con diferencia hacia atrás
(backward Euler)

Esta ultima ecuación

y (kTm + Tm ) = y (kTm ) + Tm u(kTm + Tm )


Es equivalente a la ecuación en diferencias

y (k + 1) = y (k ) + Tm u(k + 1)
Tomando transformada z con condiciones iniciales nulas

Z [y (k + 1)] = Z [y (k ) + Tm u(k + 1)]


zY (z) Y (z) = Tm zU(z)
Y (z) Tm z
=
U(z) z 1
Aproximación de Euler con diferencia hacia atrás
(backward Euler)

La ultima ecuacion debe ser el equivalente de un sistema


integrador en el dominio continuo

Y (z) Tm z Y (s) 1
= $ =
U(z) z 1 U(s) s
Haciendo la equivalencia

Tm z 1
!
z 1 s
z 1
s !
Tm z
Aproximaciones de Euler con diferencia hacia atrás
(backward Euler)

La ultima ecuacion debe ser el equivalente de un sistema


integrador en el dominio continuo

Y (z) Tm z Y (s) 1
= $ =
U(z) z 1 U(s) s
Haciendo la equivalencia

Tm z 1
!
z 1 s
z 1
s !
Tm z
Aproximación trapezoidal

La integral
t+T
Zm
u( )d
Tm

Es aproximada por el trapecio muestra en la gura:

u (t ) u (t + T )

t t + Tm
Tm
Aproximación trapezoidal

u (t ) u (t + T )

t t + Tm
Tm

Con esta aproximación escribimos la ecuación

t+T
Zm
y (t + Tm ) = y (t) + x( )d
0
Tm
y (t + Tm ) y (t) +
[u(t + Tm ) + u(t)]
2
En los instantes de muestreo t = kTm
Aproximación trapezoidal

Tm
y ((k + 1)Tm ) = y (kTm ) + [u(kTm + Tm ) + u(kTm )]
2
Es equivalente a la ecuación en diferencias

Tm
[u(k + 1) + u(k )]
y (k + 1) = y (k ) +
2
Tomando transformada z con condiciones iniciales nulas

Tm
Z [y (k + 1)] = Z [y (k ) + [u(k + 1) + u(k )]
2
Tm
zY (z) Y (z) = [zU(z) + U(z)]
2
Y (z) Tm z + 1
=
U(z) 2 z 1
Aproximación trapezoidal

La ultima ecuacion debe ser el equivalente de un sistema


integrador en el dominio continuo

Y (z) Tm z + 1 Y (s) 1
= $ =
U(z) 2 z 1 U(s) s
Haciendo la equivalencia

Tm z + 1 1
!
2 z 1 s
2 z 1
s !
Tm z + 1
Aproximación trapezoidal

La ultima ecuacion debe ser el equivalente de un sistema


integrador en el dominio continuo

Y (z) Tm z + 1 Y (s) 1
= $ =
U(z) 2 z 1 U(s) s
Haciendo la equivalencia

Tm z + 1 1
!
2 z 1 s
2 z 1
s !
Tm z + 1
Ejemplo 1

Se tiene el sistema dinámico continuo

3
G(s) =
s2+ 3s + 3
Encuentre discretizaciones para estos sistemas, compare sus
respuestas en el tiempò y sus diagramas de Bode
Ejemplo 2

Se tiene el sistema dinámico continuo

400
(s2 + 0:4s + 4)(s2 + s + 100)
Encuentre discretizaciones para estos sistemas y compare
sus gra cos de Bode. Cual es el problema de la transformación
bilineal, cual el de la invarianza al paso.
Elección de la frecuencia ó tiempo de muestreo para
traducción de compensadores

En la literatura aparecen varias especi caciones para elegir el


tiempo de muestreo, las más usuales son que la frecuencia de
muestreo ! s sea
5-20 la frecuencia de cruce de ganancia ! g de L(s).
10-50 veces el ancho de banda de lazo cerrado ! B del
sistema.
Tmr
Tms = 10 ; con el tiempo de subida del sistema.
Ejemplo 1: discretizar el controlador análogo

Para el sistema

10
G(s) =
s2+s
Se obtuvo la red de adelanto, que estabilizaba el sistema y
colocaba polos de lazo cerrado en 20 5j; 50

233:6(s + 9:097)
(s + 89)
Encuentre un controlador discreto equivalente que conserve un
desempeño aceptable, comparado con la contraparte análoga.
Ejemplo 2: discretizar el controlador análogo

Para el sistema

4
G(s) =
s(s 4)
Se implementó un sistema optimo ITAE para lograr que la
señal de control este por debajo de 20.
La función ITAE obtenida es:

14526:7
Tm (s) =
s3 + 43:5s2 + 1:292:5s + 14526:7
Ejemplo 2: discretizar el controlador análogo

Y el controlador digital que implementa esta ITAE es:

h i
C2P = 1453s+1:453e005 550:1s2 1:438e004s 1:453e005
s2 +142:5s s2 +142:5s

Encuentre un controlador discreto equivalente que conserve un


desempeño aceptable, comparado con la contraparte análoga.
Implementacion de controladores

Sea la planta

10
G(s) =
s(s + 10)
Diseñemos un controlador tal que ubique los polos de lazo
cerrado en

polos = [ 4:5 j; 45]


Implementacion de controladores

El controlador obtenido es

1:027z + 1:453
C(z) =
z 0:8037
Con tiempo de muestreo de 40ms
Hacemos una realización en variables de estado del sistema,
para poder implementarlo.
Implementacion de controladores

MATLAB CODE
gs=tf(10,[1 10 0])
poloslc=[-4.5+j -4.5-j -45]
C=diseru(gs,poloslc)
T=feedback(gs*C,1)
bode(T)
wb=3
Tm=2*pi/(50*wb)
cd=c2d(C,Tm,'tustin')
cdve=ss(cd)
A=cdve.a
B=cdve.B
C=cdve.c
Implementacion de controladores

Pasos
Debemos diseñar un ltro antialias en ! B ; es decir
centrado en los 3 radianes
La ecuacion del controlador es:

x(k + 1) = 0:8037x(k ) + e(k )


u(k ) = 0:628x(k ) 1:027e(k )

Con esta ecuación de estado implementamos el controlador


Implementacion de controladores

Un primer pseudoalgoritmo, este debe ser corrido cada cierto


tiempo T de interrupción de un procesador
%interrupción
begin
yk=ADconv
yks=yk/escalayk % para que tome valores unitarios
dependiendo
ek=rk-yks
%algoritmo de control
xk=0.8037*xk+ek
uk=0.628*xk-1.027ek
uks=uk*escalauk
%saturacion de la señal de control
if uks>umax entonces uk=umax
if uks<umin entonces uk=umin
uDA=redondear(uks)
DAconv(uDA)
end
Ejemplo 2 de implementación

Ahora implementamos otro controlador para la misma planta

10
G(s) =
s(s + 10)
Pero este de orden 2, para ubicar polos en

polos = [ 4:5 j; 45; 45]


El controlador discretizado obtenido es:

167:7z 2 327:7z + 160:1


C(z) =
z 2 1:667z + 0:6671
Con tiempo de muestreo de 4.5 ms
Ejemplo 2 de implementación

El controlador discretizado obtenido es:

167:7z 2 327:7z + 160:1


C(z) =
z 2 1:667z + 0:6671
El modelo en variables de estado de este controlador es

1:66 0:3335 8
x(k + 1) = x(k ) + e(k )
2 0 0
u(k ) = 6:028 3:018 x(k ) + e(k )
Ejemplo 2 en pseudocódigo

%interrupción
begin
yk=ADconv
yks=yk/escalayk % para que tome valores unitarios
dependiendo
ek=rk-yks
%algoritmo de control
xk=0.8037*xk+ek
uk=0.628*xk-1.027*ek
uks=uk*escalauk
%saturacion de la señal de control
if uks>umax entonces uk=umax
if uks<umin entonces uk=umin
uDA=redondear(uks)
DAconv(uDA)
end
Ejemplo 3: control de dos parámetros

Para la misma planta

10
G(s) =
s(s + 10)
Diseñemos un contorlador de segundo orden que implemente
una función de transferencia ITAE de segundo orden

25
T (s) =
s2 + 7:52s + 25
Ejemplo 3: control de dos parámetros

El controlador digital obtenido es


h i
C(z) = 2:513z 2:1
z 0:845
4:334z 4:747
z 0:845

Con tiempo de muestreo de 4.5 ms


La realización de este controlador en variables de estado es

r (k )
x(k ) = 0:8447x(k + 1) + 0:0237 1:0895
y (k )
r (k )
u(k ) = x(k ) + 2:512 4:349
y (k )
%interrupción
begin
yk=ADconv
yks=yk/escalayk % para que tome valores unitarios
dependiendo
%algoritmo de control
xk=0.8447*xk+0.0237*rk-1.0895*yks
uk=xk+2.512*rk+4.349*yks
uks=uk*escalauk
%saturacion de la señal de control
if uks>umax entonces uk=umax
if uks<umin entonces uk=umin
uDA=redondear(uks)
DAconv(uDA)
end
Ejemplo 4: control de dos parámetros

Para la misma planta

10
G(s) =
s(s + 10)
Diseñemos un controlador de segundo orden que implemente
una función de transferencia ITAE de tercer orden

1000
T (s) =
s3 + 17:83s2 + 217:1s + 1000
Ejemplo 4: control de dos parámetros

El controlador digital obtenido es


h i
0:2212z 2 +0:08109z 0:1401 78:36z 2 +148:4z 70:16
C (z ) = z 2 1:61z +0:6103 z 2 1:61z +0:6103

Con tiempo de muestreo de 4.5 ms


La realización de este controlador en variables de estado es

x1 (k + 1) 0 0:3052 x1 (k ) 0:03439 2:791 r (k )


= +
x2 (k + 1) 2 1:61 x2 (k ) 0:1093 5:542 y (k )
x1 (k ) r (k )
u (k ) = 0 4 + 0:22 78:36
x2 (k ) y (k )
Ejemplo 4: control de dos parámetros algoritmo

%interrupción
begin
yk=ADconv
yks=yk/escalayk % para que tome valores unitarios
dependiendo
%algoritmo de control
xk1=-0.3052*x2k-0.03439*rk-2.791*yks
xk2=2*x1k-1.61*x2k+0.1093*rk+5.542*yks
uk=4*x2k+0.22*rk-78.36*yks
uks=uk*escalauk
%saturacion de la señal de control
if uks>umax entonces uk=umax
if uks<umin entonces uk=umin
uDA=redondear(uks)
DAconv(uDA)
end

También podría gustarte