Anda di halaman 1dari 13

Discretización de controladores

Félix Monasterio-Huelin, Álvaro Gutiérrez

1 de mayo de 2010

Índice

1. Introducción 2

2. El problema de la discretización 2

3. Aproximación discreta de una integral 5

3.1. Aproximación de Euler . . . . . . . . . . . . . . . . . . . . . . 6

3.2. Aproximación de Tustin o trapezoidal . . . . . . . . . . . . . . 7

4. Discretización del factor integral con corrección del ”wind-


up” 7

4.1. Ecuación discreta del factor integral en la región de saturación 9

4.2. Ecuación discreta del factor integral en la región no saturada . 11

4.3. Ecuación discreta del factor integral en ambas regiones . . . . 12

1
1. Introducción

2. El problema de la discretización

Supongamos que se dispone de dos sensores, uno de posición y otro de ve-


locidad. Por lo tanto se dispone de información en tiempo real de la señal
y(t) de ẏ(t)1 .

Estos sensores permiten realizar una colección de controladores que no re-


quieren hacer una discretización de la integral. Por ejemplo, si se quiere
realizar un controlador de posición situado en el lazo directo puede diseñarse
un PD utilizando exclusivamente la información de los sensores y teniendo en
cuenta que la señal de referencia puede obtenerse analı́ticamente. Por ejemp-
lo si ésta es una rampa, su derivada será un escalón, ası́ que el PD quedarı́a
en la forma:
u(t) = KP (rampa(t) − y(t)) + KD (escalon(t) − ẏ(t))

Es evidente que un control de posición que siga una rampa es equivalente


a un control de velocidad que siga un escalón. En este caso el controlador
deberı́a ser un PI, en vez de un PD, y como la integral de un escalón es una
rampa, la ecuación del controlador será
u(t) = KI (rampa(t) − y(t)) + KP (escalon(t) − ẏ(t))

Como vemos son equivalentes2 .

Pero por desgracia no es fácil realizar un PD con una señal de referencia


escalón, ya que su derivada es una delta de Dirac.

Tampoco puede realizarse un control de posición con un PI con referencia


escalón, pero en este caso se debe a que no se dispone de sensor para la
integral de la salida.

Estas limitaciones nos obligan a utilizar algún método aproximado de obten-


ción de información sensorial. Por ejemplo, puede realizarse una integración
1
En el laboratorio realmente tan sólo se dispone de información discretizada con una
frecuencia suficientemente alta como para admitir teóricamente su continuidad
2
Estoy suponiendo que las condiciones iniciales son nulas.

2
mediante una aproximación discretizada de la integral continua, siempre que
la discretización se haga a una frecuencia suficientemente alta. Al inverso de
esta frecuencia la llamaremos periodo de muestreo T .

Desde un punto de vista del diseño de controladores, hay dos opciones básicas.
Una es diseñar un controlador continuo y después discretizarlo (a este método
se le llama rediseño digital). Otra es discretizar la función de transferencia
que se desea controlar, y diseñar un controlador discreto. En ambos casos se
comenten errores que deben tomarse en consideración, y en cualquiera de los
casos es necesario aplicar técnicas de discretización de las que se conozcan
sus caracterı́sticas.

En este breve estudio optaremos por el rediseño digital, pero teniendo en


cuenta que se dispone de dos sensores. Por lo tanto no se discretizará un PI
para un control de velocidad que siga a un escalón.

Nuestro objetivo será diseñar un sistema de control de dos grados de libertad


para un control de posición que siga un escalón, con un controlador PID en
el lazo directo y un PD en el lazo paralelo. Por lo tanto sólo necesitaremos
aproximar la integral de la posición, y la derivada de un escalón. Sin embargo
la discretización de la derivada de un escalón es la discretización de una delta
de Dirac, que no resulta sencilla. No obstante, en lo que sigue adoptaremos
la siguiente definición:

Definición 1. La discretización de la delta de Dirac es la delta de Kronecker.

En consecuencia lo único que deberemos resolver es aproximar la integral de


la posición.

Hay que tener en cuenta que esta definición supone cometer errores en el
sentido de que el comportamiento discreto no se corresponderá con el com-
portamiento continuo, y en consecuencia los resultados analı́ticos de diseño
deberán modificarse. El problema que surge puede entenderse teniendo en
cuenta la definición de la delta de Dirac:
R∞ R 0+
−∞
δ(τ )dτ = 0−
δ(τ )dτ = 1

mientras que la delta de Kronecker es una función discreta que toma el valor
unidad en k = 0, y en cero para k = 1, 2, . . . .

3
Si se desea discretizar la integral de la posición (o de cualquier función), se
tratará de hacer una aproximación de
Rt
−∞
y(τ )dτ

que si suponemos que es una función causal, es decir que y(t) = 0, t < 0,
el problema se reduce a discretizar
Rt
0
y(τ )dτ

Cuando la función (causal) es continua en el origen, es decir que y(0) =


y(0+ ) = y(0− ) = 0,
R 0+
0−
y(τ )dτ = 0
pero si es discontinua esta integral no se anula, pero puede entenderse como
R 0+
0−
y(τ )δ(τ )dτ = y(0+ )

Por lo tanto, para las funciones causales, se cumple que


Rt Rt
−∞
y(τ )dτ = y(0+ ) + 0+ y(τ )dτ

Obsérvese que la integral de la derivada de una función continua en el inter-


valo [a, b] cumple lo siguiente:
Rb
a
ẏ(τ )dτ = y(b) − y(a)

pero si es discontinua en algún punto del intervalo, la integral no está bien


definida en estos puntos. Además si una función es discontinua en algún
punto tampoco tiene sentido hablar de su derivada, salvo distinguiendo la
derivada por la derecha y la derivada por la izquierda, que aunque coincidan
no se podrá decir que sea una función derivable.

Si se aplica literalmente la anterior expresión de la integral de una función, se


obtiene que para una función causal discontinua en el origen y no derivable
en el origen
Rt Rt
−∞
ẏ(τ )dτ = 0− ẏ(τ )dτ
Rt R 0+ Rt
−∞
ẏ(τ )dτ = 0−
ẏ(τ )dτ + 0+
ẏ(τ )dτ = ẏ(0+ ) + y(t) − y(0+ )

4
Si la función y(t) es derivable en el origen, también deberá ser continua en
el origen, y deberá cumplir que ẏ(0− ) = ẏ(0+ ) = 0. Por lo tanto hablar
de derivada de la función escalón no tiene sentido salvo que se haga alguna
definición de derivada generalizada. Para la función escalón unidad
Rt
−∞
ṙ(τ )dτ = ṙ(0+ ) + r(t) − r(0+ )
Rt
y admitiendo que −∞ ṙ(τ )dτ = r(t) como se harı́a para las funciones con-
tinuas y derivables3 , se obtiene que ṙ(0+ ) = r(0+ ) = 1.

Por lo tanto desde un punto de vista de la discretización puede admitirse la


anterior definición, y utilizarse la expresión
Rt Rt
−∞
y(τ )dτ = y(0+ ) + 0+ y(τ )dτ

para las funciones causales discontinuas en el origen.

3. Aproximación discreta de una integral


Rt
Llamando I(t) a la integral t0
x(τ )dτ , estudiaremos la clase de aproxima-
ciones discretas de la forma

I(k) = I(k − 1) + g(k), k = 0, 1, 2, . . . (1)

donde g(k) sea una ecuación en diferencias lineal de parámetros constantes


en x(k), y t = t0 + kT siendo T el periodo de muestreo.
3
Esto plantea un problema, ya que la derivada del escalón es la delta de Dirac cuya
integral es la unidad, pero aquı́ se está haciendo la integral hasta t y no hasta ∞. Es decir
que mientras que estamos haciendo que
Rt
−∞
ṙ(τ )dτ = r(t)

a la vez decimos que ṙ(t) = δ(t), y


R∞
−∞
δ(τ )dτ = 1

lo que es claramente una incoherencia. Este análisis no debe tomarse más que como un
razonamiento orientado a aceptar la definción anterior de una manera intuitiva.

5
Si la función x(t) es continua en t ∈ [t0 + kT, t0 + (k + 1)T ),
R kT +T R kT +T R kT
kT
x(τ )dτ = t0
x(τ )dτ − t0
x(τ )dτ = I(k + 1) − I(k)

por lo que R kT +T
g(k + 1) = kT
x(τ )dτ
Nuestro objetivo consiste, por lo tanto, en estudiar diversas aproximaciones
discretas de esta integral.

La solución de la ecuación en diferencias es


k
X
I(k) = I(t0 ) + g(i) k = 0, 1, 2, . . . (2)
i=1

Si la integral aparece en una ecuación del tipo,


Rt
h1 (t) = h2 (t) + t0 x(τ )dτ

la discretización puede realizarse de la siguiente forma:


R (k+1)T
h1 (k + 1) = h2 (k + 1) + t0 x(τ )dτ
R kT
h1 (k) = h2 (k) + t0
x(τ )dτ

y restando ambas

h1 (k + 1) = h1 (k) + h2 (k + 1) − h2 (k) + g(k + 1)

3.1. Aproximación de Euler

La aproximación de Euler se define de la siguiente manera,


Rt
I(t) = 0+ x(τ )dτ ≈ I(k) = I(k − 1) + T x(k), k = 0, 1, 2, . . .

donde T es el periodo de muestreo.

Si la función es causal, entonces I(t) = 0, t < 0, por lo que I(0+ ) = T x(0+ ).


Por ejemplo, la integral del escalón unidad es una rampa de pendiente unidad,
ası́ que su discretización será I(k) = kT = (kT − T ) + T x(k), k > 0, es decir

6
x(k) = 1, aunque para k = 0, I(0+ ) = T x(0+ ) = T . Como vemos se presenta
un problema en el orı́gen, que puede resolverse conociendo el valor inicial de
la integral. De esta manera la aproximación de la integral serı́a
Z t
I(t) = x(τ )dτ ≈ I(k) = I(k − 1) + T x(k), k = 1, 2, . . . (3)
0+

I(k) = I(0+ ), k=0 (4)


Resolviendo la ecuación en diferencias I(k) = I(k − 1) + T x(k), se obtiene
k
X
+
I(k) = I(0 ) + T x(i) k = 0, 1, 2, . . . (5)
i=1

Si la función x(t) es causal y continua en el origen, entonces I(0+ ) = 0.

Calculando g(k + 1) puede verse el significado de la aproximación de Euler


R kT +T
g(k + 1) = kT x(τ )dτ ≈ I(k − 1) + T x(k) − (I(k) + T x(k + 1)) = T x(k + 1)

3.2. Aproximación de Tustin o trapezoidal

4. Discretización del factor integral con cor-


rección del ”wind-up”

Llamando u(t) a la salida del actuador y v(t) a la salida del controlador


(entrada del actuador),
τD s 1
V (s) = Kp (EP (s) + τD
1+s N
ED (s) + τI s
E(s))

u(t) = sat(v(t))

La corrección del ”wind-up” puede hacerse substituyendo el factor integral


VI (s) = τKIps E(s) por el siguiente
Kp 1
VI (s) = τI s
E(s) + τt s
(U (s) − V (s))

7
donde τt se denomina constante de tiempo de seguimiento.

Puesto que la salida del actuador coincide con su entrada cuando v(t) <= usat
el término corrector sólo actúa cuando v(t) > usat , en cuyo caso aparecerá el
término Rt
u dτ = usat (t − t1 )
t1 sat

siendo t1 el instante de tiempo en que se produce la saturación del actuador.

Si en t2 deja de producirse saturación, la correción del ”wind-up” aporta a


la integral del error la cantidad
1
R t2
τt
u sat (t 2 − t1 ) − t1
v(τ )dτ

Supongamos que el controlador es un PID. Entonces V (s) = VP (s) + VD (s) +


VI (s), por lo que
1 Kp 1
(1 + τt s
)VI (s) = τI s
E(s) + τt s
(U (s) − VP (s) − VD (s))

que puede escribirse en la forma


1 Kp 1
(s + τt
)VI (s) = τI
E(s) + τt
(U (s) − VP (s) − VD (s))

es decir, que en la región saturada


1 e−t1 s
(s + τt
)VI (s) = −( τ1t − 1
τI
)VP (s) − 1
V (s)
τt D
+ τt s
usat

ya que u(t) = usat 1(t − t1 ), siendo 1(t − t1 ) el escalón unidad retardado4 .

El problema de análisis se complica ya que la saturación es una función no


lineal, que además se produce en instantes de tiempo desconocidos a priori.
Para esta clase de sistemas no lineales es posible utilizar técnicas de la función
descriptiva, pero no lo vamos a hacer aquı́.

Nuestro objetivo es obtener una discretización de vI (t) suponiendo que la


señal de referencia es un escalón de amplitud R. FueraR de la región de sat-
t
uración es suficiente con obtener una discretización de t2 y(τ )dτ , donde ini-
cialmente t2 = 0+ .
4
Para ser más exactos serı́a preciso incorporar también t2 , y en general todos los inter-
valos en que se está en la región saturada.

8
4.1. Ecuación discreta del factor integral en la región
de saturación

Para obtener ecuación discreta del factor integral en la región de saturación


utilizaré la expresión
1 Kp 1
(1 + τt s
)VI (s) = τI s
E(s) + τt s
(U (s) − VP (s) − VD (s))

y aplicaré la transformada de Laplace inversa teniendo en cuenta que el


instante inicial es t = t1 5 ,
Rt Rt
vI (t) + τ1t t1 vI (τ )dτ = Kp ( τ1I − τ1t ) t1 e(τ )dτ −
Rt
− τ1t t1
vD (τ )dτ + usat
τt
(t − t1 )

Si vD (t) = Kp τD ė(t), entonces


1
Rt Kp τD
v (τ )dτ =
τt t1 D τt
(e(t) − e(t1 ))

por lo que queda claro que sólo es necesario realizar una discretización de la
integral de vI (t) y de y(t)6 .
5
Esta ecuación diferencial es la verdaderamente correcta. Debe también tenerse en
cuenta que las funciones son continuas en los instantes en que se produce la saturación,
por lo que solamente hay que considerar el desplazamiento del origen de tiempos y que
las condiciones iniciales no son nulas. En términos de la discretización de la integral esto
supone considerar funciones continuas en el origen (t = t1 ) que no son causales.
6
También puede tenerse en cuenta que
Rt Rt Rt
t1
e(τ )dτ = t1 r(τ )dτ − t1 y(τ )dτ

Si la integral de la referencia es conocida analı́ticamente (llamémosla Ir (t)), entonces


Rt Rt
t1
e(τ )dτ = Ir (t) − Ir (t1 ) − t1 y(τ )dτ

y de aquı́ que
Rt Pk
Ie (t) = t1
e(τ )dτ ≈ Ir (k) − Ir (t1 ) − Iy,0 − T i=1 y(i)

Haciendo lo mismo para k + 1 y restando

Ie (k + 1) = Ie (k) + Ir (k + 1) − Ir (k) − T y(k + 1)

9
Utilizando la aproximación de Euler, y haciendo t = t1 + kT , podemos es-
cribir7
P P
vI (k) + τ1t II,0 + τTt ki=1 vI (i) = Kp ( τ1I − τ1t )(Ie,0 + T ki=1 e(i))−

− KpτtτD (e(k) − e(t1 )) + usat


τt
kT
Escribiendo la misma expresión pero para k + 1 y restando ambas se obtiene
T
vI (k + 1) − vI (k) + v (k
τt I
+ 1) = Kp T ( τ1I − 1
τt
)e(k + 1)−

Kp τD usat T
τt
(e(k + 1) − e(k)) + τt

que puede simplificarse como8


(τt + T )vI (k + 1) = τt vI (k) + Kp ( TττIt − (T + τD ))e(k + 1) + Kp τD e(k) + usat T
7
Utilizaré la notación x(k) pero debe entenderse que es x(t1 + kT ).
8
Teniendo en cuenta el comentario a pie de de página 6 el término
A = Kp T ( τ1I − 1
τt )e(k + 1)

puede escribirse en la forma


A0 = Kp ( τ1I − 1
τt )(Ir (k + 1) − Ir (k) − T y(k + 1))

Por ejemplo si r(t) es un escalón de amplitud R, su integral será una rampa, por lo que
Ir (k + 1) − Ir (k) = R(t1 + (k + 1)T − (t1 + kT )) = RT
y
A0 = Kp T ( τ1I − 1
τt )(R − y(k + 1)) = Kp T ( τ1I − 1
τt )e(k + 1) = A
Pero si r(t) es una rampa de pendiente K, su integral será una parábola, por lo que
K T
Ir (k + 1) − Ir (k) = 2 ((t1 + (k + 1)T )2 − (t1 + kT )2 ) = KT (t1 + kT + 2 )
mientras que T e(k + 1) = T r(k + 1) − T y(k + 1) = KT (t1 + (k + 1)T ) − T y(k + 1) que no
coincide con la integral exacta, es decir A0 6= A.
La aproximación de Euler comete un error que puede evitarse si puede obtenerse una
integral exacta. No obstante, la aproximación de Tustin para la rampa y el escalón son
exactas, es decir A0 = A, pero no lo será para la parábola.
La ecuación del factor integral en este caso particular en que se conoce la integral de la
señal de referencia, queda en la forma
(τt + T )vI (k + 1) = τt vI (k) + Kp ( ττIt − 1)(Ir (k + 1) − Ir (k) − T y(k + 1))−

−Kp τD (e(k + 1) − e(k)) + usat T

10
que, como vemos, requiere conocer el valor de vI (0), es decir vI (t1 ).

El polo de esta ecuación en diferencias es p = τtτ+T


t
< 1, por lo que es estable
(ya que T > 0), pero el cero puede ser inestable dependiendo del valor de τt .
τD
El cero es z = − T τt −(T +τ )
que para que sea estable debe cumplir que
τI D

τD τI
| T (τt −τ I )−τD τI
|<1

o lo que es lo mismo
| T (ττDt −τ
τI
I)
− 1| > 1
que tiene dos soluciones:
τt < τI , o

τt > ( 2τTD − 1)τI


Ambas soluciones se cumplirán simultáneamente si τD < T /2 y τt < τI .

Una solución posible que hace que el cero sea estable es τD < τt < τI con

τt = τD τI .

Por último, puede verse que si en vez de un PID fuese un PI, entonces τD = 0,
y el factor integral discreto en la región de saturación es,
τt
(τt + T )vI (k + 1) = τt vI (k) − Kp T (1 − τI
)e(k + 1) + usat T

4.2. Ecuación discreta del factor integral en la región


no saturada

En la región no saturada el factor integral es


Rt
vI (t) = KτIp t2 e(τ )dτ
La aproximación de Euler, teniendo en cuenta la notación t = t2 + kT , es
P
vI (k) = KτIp (I0 + T ki=1 e(i))
Poniendo la misma expresión en k + 1 y restando se obtiene (ver las notas a
pie de página 6 y 8)
vI (k + 1) = vI (k) + T KτIp e(k + 1)

11
4.3. Ecuación discreta del factor integral en ambas re-
giones

El factor integral del PID en la region saturada puede escribirse en la forma

vI (k + 1) = vI (k) + T KτIp e(k + 1) + ∆vI (k + 1)

donde9
Kp 2
∆vI (k + 1) = − τtT+T vI (k) − τt +T
(( TτI + T + τD )e(k + 1) − τD e(k)) + usat T
τt +T

Debe cumplirse que ∆vI (k + 1) = 0 cuando |v(t)| ≤ |usat |, aunque también


podrá anularse en la región de saturación.

Teniendo en cuenta la aproximación de Euler, podemos escribir

e(k + 1) − e(k) = T ė(k + 1)

y de aquı́ que
Kp T τI +T
∆vI (k + 1) = − τtT+T vI (k) − τt +T
( τI e(k + 1) + τD ė(k + 1)) + usat T
τt +T

Podemos también hacer


∆vI (k + 1) = − τtT+T vI (k) − T
τt +T
( τIτ+T
I
vP (k + 1) + vD (k + 1)) + usat T
τt +T

∆vI (k + 1) = − τtT+T (vI (k) + T KτIp e(k + 1)) − T


τt +T
(vP (k + 1) + vD (k + 1)) + usat T
τt +T

y puesto que v(k + 1) = vP (k + 1) + vD (k + 1) + vI (k + 1)

∆vI (k + 1) = − τtT+T (vI (k) + T KτIp e(k + 1)) + T


v (k
τt +T I
+ 1) + T
τt +T
(usat − v(k + 1))
9
De acuerdo con las notas a pie de página 6 y 8 puede escribirse
Kp
vI (k + 1) = vI (k) + τI (Ir (k + 1) − Ir (k) − T y(k + 1)) + ∆vI (k + 1)

donde
Kp τd
∆vI (k + 1) = − τtT+T vI (k) − τt +T (e(k + 1) − e(k))−

K usat T
− τt +T
p
( τTI + 1)(Ir (k + 1) − Ir (k) − T y(k + 1)) + τt +T

12
que al subsituirlo en la ecuación de vI (k + 1), resulta

vI (k + 1) = vI (k) + T KτIp e(k + 1) − T


τt
(v(k + 1) − usat )

En esta ecuación hay una dependencia con v(k), y tiene como finalidad darse
cuenta de la no linealidad de la saturación. La expresión válida para ambas
regiones podrı́a escribirse como

vI (k + 1) = vI (k) + T KτIp e(k + 1) − T


τt
f (v(k + 1) − usat )

donde la función f (x) serı́a nula si x > 0 cuando usat > 0 o si x < 0
cuando usat < 0, y valdrı́a x en caso contrario. También puede apreciarse la
continuidad de vI cuando v = usat , y que el factor de corrección se cancela
cuando τt → ∞.

También debe tenerse en cuenta que hay dos regiones de saturación, una
positiva y otra negativa10 Esto significa que usat no es una constante sino
que su signo depende del signo de v(t), es decir usat = sgn(v(t))|usat | por lo
que ∆vI (k) es una función no lineal. Podemos escribir

vI (k) = vI (k − 1) + T KτIp e(k) − sgn(v(k)) τTt (|v(k)| − |usat |)

Si la saturación comienza en el instante t = t1 y acaba en el instante t = t2 ,


podemos escribir

vI (k) = vI (k − 1) + T KτIp e(k) + ∆vI (k)(1(t − t1 ) − 1(t − t2 ))

que representa una ecuación discreta del factor integral en ambas regiones
cuando sólo se ha entrado y salido una vez de la región de saturación11 .

Si la señal de control entra y sale numerosas veces de la región de saturación


es posible representar el factor integral como una única ecuación modulada
por una secuencia de pulsos. Sea T1 = {t1i }ni=11
y T2 = {t2i }ni=1
2
, donde n2 = n1
12
o n2 = ∞, y t2i > t1i . Entonces podemos escribir
P 1
vI (k) = vI (k − 1) + T KτIp e(k) + ∆vI (k) ni=1 (1(t − t1i ) − 1(t − t2i ))

10
|usat | puede tomar incluso valores distintos.
11
1(t−t1 )−1(t−t2 ) representa un pulso unidad de anchura t2 −t1 que en esta formulación
debe entenderse discretizado.
12
Sin considerar el caso en que no salga de la región de saturación, es decir cuando
n2 = ∞.

13