Sistemas en tiempo discreto Introducción Regulador Digital Planta r (t )
e (t )
es (t)
y(t) A/D
Regu lad or
D/A
G(s) û(t)
Muestreador
e(t)
es (t)
t
û(t)
T
t
y(t)
T
t
t
Características del control en t. discr. • La planta es continua pero el regulador trabaja en tiempo discreto. • La estabilidad del sistema en tiempo discreto y la aproximación del sistema de tiempo continuo a tiempo discreto dependen del periodo de muestreo T.
Casos típicos de control en tiempo discreto:
• Emulación analógica • Diseño digital directo
Emulación analógica Primero se realiza el análisis y la síntesis del regulador en tiempo continuo y luego se usa un proceso de discretización usando el periodo de muestreo T.
• La planta se modela en tiempo continuo • El regulador se diseña en tiempo continuo usando los métodos conocidos. • El regulador obtenido del proceso anterior se discretiza usando un período de muestreo T y empleando alguna de las aproximaciones conocidas
Aproximaciones para la discretización de reguladores Respuesta
invariante (al escalón o al impulso)
Transformación Mapeo
bilineal o de Tustin
de polos y ceros
Retenedor
de orden cero
Diseño digital directo La planta en tiempo continuo es discretizada, generalmente por el método del retenedor de orden cero, obteniéndose así una aproximación digital y luego se calcula o sintetiza un compensador digital.
• La planta se modela en tiempo continuo • La planta es discretizada usando el periodo de muestreo T y un método de aproximación de los antes enumerados.
• El regulador se calcula o sintetiza directamente en tiempo discreto usando cualquiera de los métodos siguientes:
Métodos de diseño digital directo El
lugar de las raíces
Respuesta
de frecuencia o gráficas de Bode (a través de una
transformación bilineal al plano W) Respuesta Dead-Beat
de orden n con cancelación de polos
f(t)
f s (t)
^ f(t)
Muestreador
Retenedor
f(t)
f s (t)
t
T
2T 3T 4T 5T 6T
t
^f(t)
T
2T 3T 4T 5T 6T
t
Proceso de la señal de tiempo continuo a tiempo discreto
f S (t ) = f (t ) ⋅ δ T (t ) ∞
f S (t ) = f (t )
∑ δ (t − kT ) K =0
^
f (t ) = f (kT )
; kT ≤ t ≤ (k + 1)T
Discretización de sistemas descritos por ecuaciones diferenciales Discretización de la ecuación diferencial de primer orden
dy dt
+ ay (t ) = bu(t ) ; a, b = cte
Sustituimos en la ecuación anterior t = kT para k = 0, 1, 2 ... y despejando
dy dt
para obtener:
dy dt t =kT dy dt t =kT
= (− ay (t ) + bu (t ) ) t =kT = − ay (kT ) + bu (kT )
dy
Aproximamos la derivada dt por el método de Euler para una función t = KT y(t) continua. dy dt t =KT
=
y ((k + 1)T ) − y (kT ) T
La cual es una buena aproximación si el periodo T es pequeño.
y ((k + 1)T ) − y (kT ) T
= − ay (kT ) + bu (kT )
Multiplicamos a ambos lados por T y simplificamos el resultado escribiendo únicamente k en lugar de kT :
y (kT ) = y ( k ) y u ( kT ) = u ( k ) y obtenemos:
y ( k + 1) = − aT ⋅ y ( k ) + bT ⋅ u (k ) + y (k ) Sustituyendo una vez más k − 1 → k :
y ( k ) = (1 − aT ) y ( k − 1) + bT ⋅ u (k − 1) Ecuación de diferencias correspondiente a la ecuación diferencial de primer orden.
Comportamiento de un sistema discreto de primer orden. Los valores discretos y(k) = y(kT) de la solución de y(t) pueden ser calculados resolviendo la ecuación de diferencias. Primero calculamos la solución homogénea: u (k ) = 0 k = 1 k = 2
∀k por recursión:
y (1) = (1 − aT ) y (0) y ( 2) = (1 − aT ) y (1) = (1 − aT )[(1 − aT ) y (0)] y ( 2) = (1 − aT ) y (0) 2
k = 3
y ( 3) = (1 − aT ) y ( 2) = (1 − aT ) 3 y (0)
y (k ) = (1 − aT ) y (0) ; K
k = 0, 1, 2 ...
Comparación de nuestra aprox. con la solución continua y (t ) = e
− at
y (0) ; t ≥ 0
Sustituyendo t = kT :
y (kT ) = e − akT y (0)
(− )
y (k ) = e
aT k
k = 0, 1, 2 ... k = 0, 1, 2 ...
y (0)
− aT e Desarrollando por una serie:
e −aT = 1 −
aT
1!
+
2
2
a T
2!
−
3
3
a T
3!
+ ...
La solución exacta Sustituyendo obtenemos
a T
2!
y (k ) = 1 − aT +
2
2
−
K
+ ... y (0) ; 3!
3
3
a T
k = 0, 1, 2 ...
Si aT << 1 entonces, las potencias de aT serán mucho menores que (1-aT) y por lo tanto podemos aproximar la solución a:
y (k ) = (1 − aT ) y (0) K
La cual es una buena aproximación a la solución exacta si aT << 1 , y coincide con nuestra solución encontrada antes.
Satisfacción de las condiciones Para cumplir la condición aT << 1 hacemos que T <<
1 a
podemos escoger el periodo de muestreo como: T ≤
1
⋅
1
10 a
Donde a representa el polo de lazo cerrado Podemos también utilizar la siguiente recomendación: f s =
1 T
≥ 20 ⋅ BW
Donde BW es el ancho de banda de lazo cerrado del sistema
con lo que
La solución completa obtenida por recursión, es:
y (k ) = (1 − aT ) y (0) + k
k
∑ [(1 − aT )
k −i
bT ⋅ u (i − 1)
]
i =1 y(0)
0 < (1 − aT ) < 1 T
2T 3T 4T 5T 6T
t
Sucesión de valores de salida y(kT) con 0 < (1-aT ) < 1 y(0)
(1 − aT ) > 1 T
2T 3T 4T 5T 6T
t
Sucesión de valores de salida y(kT) con (1-aT ) > 1
Resultados Podemos observar que la respuesta natural de y(kT) se amortigua al aumentar el valor de k cuando 0 < (1-aT ) < 1 y vemos que la salida crece sin límite al aumentar el valor de k cuando (1-aT ) > 1. De la ecuación de diferencias podemos concluir que el valor (1-aT ) es la raíz de la ecuación de diferencias de primer orden. También podemos observar que el valor de esta raíz depende no sólo del coeficiente a de la ecuación diferencial; sino además del periodo de muestreo T .
¿Cómo es la forma de la salida cuando (1 − aT ) es negativo para los casos en que su magnitud es menor que uno o mayor que uno? En conclusión, si las magnitudes de las raíces de la ecuación de diferencias son todas menores que 1 el sistema discreto es estable y la estabilidad se ve afectada por el valor escogido para el periodo de muestreo T .
Sistemas de orden superior en el dominio del tiempo discreto Sistema en tiempo continuo Sea la ecuación diferencial an
d n y n
dt
+ an −1
d n −1 y n −1
dt
+ + a1
dy dt
+ a0 y = bq
d q u q
dt
+ bq −1
d q −1u q −1
dt
+ + b1
du dt
+ b0u
A la cual le corresponde el siguiente modelo SISO en variables de estado: x = A ⋅ x + B ⋅ u y = cT ⋅ x + d ⋅ u
Sistema en tiempo discreto Sea la ecuación de diferencias an y (k − n) + + a1 y (k − 1) + a0 y (k ) = bq u (k − q) + + b1 (k − 1) + b0u (k )
A la cual corresponde el modelo SISO en variables de estado
x(k + 1) = A d ⋅ x( k ) + B d ⋅ u (k ) y ( k ) = cd T ⋅ x( k ) + d d ⋅ u ( k ) Note que de nuevo se ha omitido el periodo T ya que es el mismo para todos los términos.
Derivación del modelo en tiempo discreto a partir del modelo en tiempo continuo Con la condición de que la entrada se mantenga constante durante la totalidad del tiempo T: u (t ) = u ( kT ) ;
para kT ≤ t < (k + 1)T
∀ k ∈ N
Se desea encontrar las matrices Ad , Bd , Cd y Dd
Partimos de la ecuación de movimiento para el sistema en variables de estado, el cual evaluamos en t = kT .
t At A(t −τ ) x(t ) = e x (0) + ∫ e B ⋅ u (τ )d τ 0 t =kT kT
A( kT −τ ) x (kT ) = e AkT x(0) + e B ⋅ u (τ )d τ
∫ 0
para el tiempo (k+1)T tenemos A( k +1)T x((k + 1)T ) = e x(0) +
( k +1)T
∫
A((k +1)T −τ ) B ⋅ u (τ )d τ
e
0
si descomponemos la parte correspondiente a kT y a T
kT
AT e AkT (0) + e A((k +1)T −τ ) ⋅ ( ) + x ((k + 1)T ) = e x B u τ d τ
∫ 0
( k +1)T
+
∫
A((k +1)T −τ ) B ⋅ u (τ )d τ
e
kT
observamos que la parte en paréntesis rectangulares corresponde a x(kT).
AkT A( kT −τ ) AT x((k + 1)T ) = e x(0) + e B ⋅ u (τ ) d τ + e kT
∫ 0
( k +1)T
∫
A((k +1)T −τ ) B ⋅ u (τ ) d τ
e
kT
Si aplicamos la condición de que u(t) es constante durante el intervalo T segundos kT ≤ t < ( k + 1)T , esto es u(t) = u(kT), entonces podemos sacar a u(t) de la integral.
AT x ((k + 1)T ) = e x(kT ) +
( k +1)T
∫
A((k +1)T −τ ) B ⋅ d τ ⋅ u (kT )
e
kT
Realizando una sustitución de variable en la integral, (k+1)T d τ = -dp y cambiando los límites de integración tenemos:
τ =
p, con
0
Ap AT x((k + 1)T ) = e x(kT ) − e B ⋅ dp ⋅ u (kT )
∫
T
Si además aplicamos el signo a la integral e invirtiendo los límites de integración obtenemos: T
Ap AT ⋅ B ⋅ dp ⋅u (kT ) x((k + 1)T ) = e x(kT ) + e
∫ 0
simplificando la escritura haciendo kT = k y sustituyendo la variable p de nuevo por τ tenemos: x ( k + 1) = e
T
AT
∫
x ( k ) + e
Aτ
B ⋅ d τ ⋅ u ( k )
0
y ( k ) = Cx( k ) + D ⋅ u( k ) donde
T Ad = eA T
Bd
= ∫ eAτ B ⋅ d τ = A −1 ⋅ [A d − I ]⋅ B ; si A es NO singular 0
Cd
=C
cd
= cT
Dd = D
D d = d
Ejemplo 1: Obtener el modelo en tiempo discreto para un sistema escalar de er 1 orden x = −
1 T 1
x +
1 T 1
u ; x(0) = 0
y = k s x x(k + 1) = e
− T T
1
T
∫
x(k ) + e
−
1 T 1
0
τ
d τ
1 T 1
⋅u (k ) T
1 − τ u (k ) T x (k + 1) = e 1 x (k ) + − T 1 ⋅ e 1 T 1 0
− T T
T − T x( k + 1) = e 1 x (k ) + 1 − e 1 ⋅ u (k )
− T T
y(k ) = k s ⋅ x(k )
donde T 1d = e
− T T
1
<1
T − T 1 − T 1d = 1 − e 1
La ecuación de diferencias se obtiene al multiplicar x(k+1) por k s. k s ⋅ x (k + 1) = k s ⋅ T 1d x (k ) + k s ⋅ (1 − T 1d ) ⋅ u (k )
agrupando reconocemos que k s ⋅ x(k + 1) = y (k + 1) y k s ⋅ x (k ) = y ( k ) por lo que escribimos y (k + 1) = T 1d y (k ) + k s ⋅ (1 − T 1d ) ⋅ u (k )
si pasamos los términos que contienen y(k) a la izquierda y (k + 1) − T 1d y (k ) = k s ⋅ (1 − T 1d ) ⋅ u (k )
sustituyendo la variable k = k - 1 tenemos y ( k ) − T 1d y ( k − 1) = k s ⋅ (1 − T 1d ) ⋅ u (k − 1) ; y ( −1) = 0
Ejemplo 2: Convertir a tiempo discreto el siguiente modelo de segundo orden
1 0 0 k f ⋅ x(t ) + 1 ⋅ u (t ) (t ) = x 0 − M M
y (t ) = [1 0]⋅ x(t ) Donde x1 es la posición, x2 es la velocidad y u(t) es la fuerza de manejo o de frenado aplicada a un carro. Calculamos las matrices discretizadas Ad y Bd para este sistema; para lo cual es necesario primero At
calcular la matriz de transición de estados e para la matriz A dada; para At −1 {Φ( s)} t L e Φ ( ) = = ello usamos la definición
−1
k f −1 s 1 1 s + −1 M k f = Φ( s ) = ( sI − A ) = k f 0 0 s + M s s s + M Así k t − M M 1 1 − e k f e At = k t − M 0 e f
f
Entonces k T − M M 1 1 − e = k f k T − M 0 e f
Ad = e
AT
f
k k − T T − τ M T M M 1 − 2 1 − e 1 − e d τ ∫0 k f T k f k f A = = ∫ e B ⋅ d τ = k k 1 − T T 1 − M τ 0 M 1 − e ∫ e d τ 0 M k f f
f
Bd
τ
f
f
Nótese que ya que la matriz A original en tiempo continuo es singular, se ha realizado el proceso de encontrar la matriz Bd resolviendo directamente la integral.
Solución numérica Si M = 1, k f = 0.1 y T = 0.1 entonces las matrices en tiempo discreto son: Ad
1 0.0995 = , 0 0 . 9900
0.0050 Bd = 0 . 0995
El modelo en variables de estado para el sistema en tiempo discreto es:
x1 (0.1(k + 1)) 1 0.0995 x1 (0.1k ) 0.0050 x (0.1(k + 1)) = 0 0.9900 ⋅ x (0.1k ) + 0.0995 ⋅ u (0.1k ) 2 2 x1 (0.1k ) y (0.1k ) = [1 0]⋅ x2 (0.1k )
El comportamiento de los sistemas de orden superior en tiempo discreto El sistema en variables de estado en tiempo discreto con x(0) = x0.
x( k + 1) = A d ⋅ x( k ) + B d ⋅ u ( k ) y ( k ) = C d ⋅ x( k ) + D d ⋅ u ( k ) Evaluamos para valores de k desde 0 en adelante k = 0 x(1) = Ad ⋅ x(0) + Bd ⋅ u (0)
k = 1 x(2) = Ad ⋅ x(1) + Bd ⋅ u (1) = Ad ⋅ x(0) + Ad Bd ⋅ u (0) + Bd ⋅ u (1) 2
k = 2 x (3) = Ad ⋅ x( 2) + Bd ⋅ u (2) = Ad ⋅ x(0) + Ad Bd ⋅ u (0) + Ad Bd ⋅ u (1) + Bd ⋅ u (2) 3
2
k −1
x(k ) = Ad ⋅ x(0) + Ad Bd ⋅ u (0) + + Ad Bd ⋅ u (k − 2) + Bd ⋅ u (k − 1) k
x( k ) = Ad ⋅ x(0) + k
k −1
∑
Ad
k − j −1
Bd ⋅ u ( j )
j =0
donde Φ( k )
= A d : Matriz de transición de estados discreta k
por lo que y (k ) = c ⋅ Φ( k ) ⋅ x(0) + T
k −1
∑c j = 0
T
⋅ Φ(k − j − 1) ⋅ B d ⋅ u ( j ) + d ⋅ u (k )
Conclusión Tenemos que la respuesta total está formada por la respuesta homogénea y la respuesta forzada. Respuesta homogénea: c
T
⋅ Φ(k ) ⋅ x(0)
k −1
Respuesta forzada:
∑ j = 0
T
c
⋅ Φ( k − j − 1) ⋅ B d ⋅ u ( j ) + d ⋅ u (k )
Representación de sistemas en t. discr. en el dominio de la frecuencia Propiedades de la transformada Z Linealidad
Ζ{a ⋅ u (k ) + b ⋅ v(k )} = Ζ{a ⋅ u (k )}+ Ζ{b ⋅ v(k )} Si U ( z ) = Ζ{u (k )} y V ( z ) =
Ζ{v( k )}
entonces:
Ζ{a ⋅ u (k ) + b ⋅ v(k )} = a ⋅ U ( z ) + b ⋅ V ( z )
Desplazamiento a la derecha en el tiempo x( k ) ↔ X ( z ) −1 x(k − 1) ↔ z X ( z ) + x(−1)
−2
−1
x (k − 2) ↔ z X ( z ) + x( −2) + z x (−1) 1 2 q q x(k − q ) ↔ z − X ( z ) + x( −q ) + z − x(− q + 1) + z − x(− q + 2) + + z − x(−1)
Si x(k ) = 0 ∀ k = -1, -2 , -3, ... – q entonces: −q
x(k − q) ↔ z X ( z )
Desplazamiento a la izquierda en el tiempo x( k ) ↔ X ( z ) x( k + 1) ↔ z ⋅ X ( z ) − x(0) ⋅ z x(k + 2) ↔ z 2 X ( z ) − x(0) ⋅ z 2 − x(1) ⋅ z
x( k + q ) ↔ z q X ( z ) − x(0) z q − x(1) ⋅ z q − − − x( q − 1) ⋅ z 1
Teorema del valor inicial x(0) = lim X ( z ) z →∞
x(1) = lim[ z ⋅ X ( z ) − z ⋅ x(0)] z →∞
q −1
x( q) = lim z X ( z ) − z x(0) − z x(1) − − z ⋅ x(q − 1) q
z →∞
q
Teorema del valor final lim x (k ) = lim( z − 1) X ( z ) k →∞
z →1
Relación entre la transformada Z y la transformada de Laplace
z = e sT
Función tr. del modelo en variables de estado en tiempo discreto x(k + 1) = A d ⋅ x(k ) + B d ⋅ u (k ) y (k ) = C d ⋅ x(k ) + D d ⋅ u (k ) Transformando a Z con las condiciones iniciales iguales a cero, x (0) = 0 z ⋅ X( z ) = A d ⋅ X( z ) + B d ⋅ U ( z ) Y ( z ) = Cd ⋅ X( z ) + Dd ⋅ U ( z )
Agrupando z ⋅ X ( z ) − Ad ⋅ X ( z ) = Bd ⋅ U ( z )
( z ⋅ I − Ad ) X ( z ) = Bd ⋅ U ( z) −1 ( z ⋅ I − Ad ) Premultiplicando por −1
X ( z ) = ( z ⋅ I − Ad ) Bd ⋅ U ( z )
Sustituyendo X(z) en la ecuación para Y(z). −1
Y ( z ) = C d ⋅ ( z ⋅ I − Ad ) Bd ⋅ U ( z ) + Dd ⋅ U ( z )