Tema 6. Diseño de controladores discretos

Anuncio
Ingeniería de Control
Tema 6. Diseño de
controladores discretos
Daniel Rodríguez Ramírez
Teodoro Alamo Cantarero
Contextualización del tema
• Conocimientos que se adquieren en este tema:
– Como obtener el equivalente discreto de un controlador continuo
usando diversas aproximaciones.
– Conocer las propiedades de cada una de las aproximaciones.
– Como obtener las aproximaciones sustituyendo la variable compleja s
por una expresión en z.
– Saber usar el método de diseño directo para diseñar un controlador
discreto sin partir de uno continuo.
– Conocer el control en un número finito de intervalos y sus limitaciones.
Esquema del tema
5.1. Discretización de controladores PID continuos.
5.1.1. Aproximación rectangular hacia delante (Euler I).
5.1.2. Aproximación rectangular hacia atras (Euler II).
5.1.3. Aproximación bilineal (trapezoidal o Tustin).
5.2. Correspondencias s - z para las aproximaciones de la integral.
5.2.1. Rectangular hacia delante.
5.2.2. Rectangular hacia atrás.
5.2.3. Trapezoidal o Bilineal.
5.3. Estabilidad de las aproximaciones.
5.4. Funciones de Matlab útiles.
5.5. Método de diseño directo (Ragazzini-Truxal).
5.5.1. Causalidad.
5.5.2. Estabilidad Interna.
5.5.3. Errores en régimen permanente.
5.6. Control en un número finito de intervalos.
Discretización de controladores continuos
•
•
Se parte de un controlador en tiempo continuo, se discretiza con un
determinado tiempo de muestreo y se implementa en un computador.
El caso más común es el del PID:
•
Existen diversos métodos de sintonía, como el de Ziegler-Nichols:
•
El punto crítico es la técnica empleada para la aproximación:
– Euler I y II.
– Tustin.
Aproximación rectangular hacia delante (Euler I)
• La derivada se aproxima por:
• El término integral:
T
e(t)
K-1
• La expresión del PID queda:
K
t
Aproximación rectangular hacia delante (Euler I)
• Retrasando la expresión de la aproximación del PID:
y restándosela a la original se obtiene:
• Aplicando la transformada Z se obtiene la función de transferencia
del controlador:
Aproximación rectangular hacia delante (Euler I)
•
El código de programa que implementaría el controlador
sería:
1.
2.
3.
4.
Esperar a que se cumpla el tiempo de muestreo T.
Leer yk.
Calcular ek = rk - yk.
Calcular uk según la expresión:
5.
6.
Aplicar uk.
Actualizar uk-1, ek-1, ek-2.
Aproximación rectangular hacia atrás (Euler II)
• En este caso la integral se aproxima por:
T
• Se llega a:
K-1
K
t
Aproximación bilineal (trapezoidal o Tustin)
• En el caso de la aproximación bilineal la integral se calcula
mediante:
T
e(t)
K-1
K
t
Es la mejor aproximación
Ejemplo de discretización de PID
• Sea el sistema:
Diseñar un PID usando Z-N y discretizar usando T=0.1 segundos.
• Los parámetros del PID continuo son:
2
Tustin
2
1.5
1.5
1
1
0.5
0.5
0
0
2
4
6
8
10
4
0
Euler I
0
2
4
6
8
10
0
2
4
6
8
10
6
3
4
2
2
1
0
0
-1
0
2
4
6
8
10
-2
Esquema del tema
5.1. Discretización de controladores PID continuos.
5.1.1. Aproximación rectangular hacia delante (Euler I).
5.1.2. Aproximación rectangular hacia atras (Euler II).
5.1.3. Aproximación bilineal (trapezoidal o Tustin).
5.2. Correspondencias s - z para las aproximaciones de la integral.
5.2.1. Rectangular hacia delante.
5.2.2. Rectangular hacia atrás.
5.2.3. Trapezoidal o Bilineal.
5.3. Estabilidad de las aproximaciones.
5.4. Funciones de Matlab útiles.
5.5. Método de diseño directo (Ragazzini-Truxal).
5.5.1. Causalidad.
5.5.2. Estabilidad Interna.
5.5.3. Errores en régimen permanente.
5.6. Control en un número finito de intervalos.
Correspondencia s - z para la aproximación de la integral
•
•
Las aproximaciones vistas se corresponden con una sustitución de la “s”
por una función de z en la función de transferencia.
Partimos de un ejemplo:
•
En el dominio del tiempo:
•
Obtenemos el valor de u(kT):
e(t)
A
Integral de -au(t)
au(t) +ae
+ae(t)
ae(t) entre (k(k-1)T y kT
K
t
Correspondencia s - z para la aproximación de la integral
Aproximación rectangular hacia delante
•
Se cumple que u(t) = u((k-1)T) en todo el intervalo:
T
e(t)
•
Teniendo en cuenta que:
K-1
se llega a:
•
Tomando la transformada z:
•
Luego:
K
t
Correspondencia s - z para la aproximación de la integral
Aproximación rectangular hacia atrás
•
•
Se cumple que u(t) = u(kT) en todo el intervalo.
En este caso:
•
Teniendo en cuenta que:
T
se llega a:
K-1
•
Aplicando la transformada z:
K
t
Correspondencia s $ z para la aproximación de la integral
Trapezoidal o Bilineal
•
En este caso u(t) a lo largo del intervalo vale:
•
Esto implica:
T
e(t)
K-1
•
Llevándolo a:
se obtiene:
•
Aplicando transformada z:
K
t
Esquema del tema
5.1. Discretización de controladores PID continuos.
5.1.1. Aproximación rectangular hacia delante (Euler I).
5.1.2. Aproximación rectangular hacia atras (Euler II).
5.1.3. Aproximación bilineal (trapezoidal o Tustin).
5.2. Correspondencias s - z para las aproximaciones de la integral.
5.2.1. Rectangular hacia delante.
5.2.2. Rectangular hacia atrás.
5.2.3. Trapezoidal o Bilineal.
5.3. Estabilidad de las aproximaciones.
5.4. Funciones de Matlab útiles.
5.5. Método de diseño directo (Ragazzini-Truxal).
5.5.1. Causalidad.
5.5.2. Estabilidad Interna.
5.5.3. Errores en régimen permanente.
5.6. Control en un número finito de intervalos.
Estabilidad de las aproximaciones
•
¿ Como se transforma la región de estabilidad en continuo al aplicar las
aproximaciones vistas ?
Rectangular hacia delante
La aproximación es z = Ts+1
Controladores estables en continuo
pueden resultar inestables en discreto.
Estabilidad de las aproximaciones
Bilineal o Tustin
•
La aproximación es:
La bilineal es
la mejor
Rectangular hacia atrás
•
La aproximación es:
Ejemplo de estabilidad de las aproximaciones
• Sea
• Usando un tiempo de muestreo de 0.3 segundos:
0.4
0.7
0.35
0.6
Euler Atrás
0.5
0.3
0.4
0.25
0.3
0.2
0.2
Tustin
0.15
0.1
0.1
0
0.05
-0.1
Euler
Adelante
-0.2
0
0
2
4
6
8
10
12
0
1
2
3
4
5
6
7
Ejemplo discretización de un controlador
• Dado
Discretizarlo con T=0.1 segundos usando Euler hacia delante.
• La aproximación es:
llevándola a Gc(s):
• La versión implementable es:
Esquema del tema
5.1. Discretización de controladores PID continuos.
5.1.1. Aproximación rectangular hacia delante (Euler I).
5.1.2. Aproximación rectangular hacia atras (Euler II).
5.1.3. Aproximación bilineal (trapezoidal o Tustin).
5.2. Correspondencias s - z para las aproximaciones de la integral.
5.2.1. Rectangular hacia delante.
5.2.2. Rectangular hacia atrás.
5.2.3. Trapezoidal o Bilineal.
5.3. Estabilidad de las aproximaciones.
5.4. Funciones de Matlab útiles.
5.5. Método de diseño directo (Ragazzini-Truxal).
5.5.1. Causalidad.
5.5.2. Estabilidad Interna.
5.5.3. Errores en régimen permanente.
5.6. Control en un número finito de intervalos.
Funciones de Matlab útiles
• G=tf([1],[1 1 4]) Crea el sistema en tiempo continuo.
• Gf = tf(bilin(ss(G),1,'fwdrec',0.3))
Devuelve la aproximación
Euler hacia delante con un tiempo de muestreo de 0.3
segundos.
• bilin funciona con sistemas en espacio de estados, de ahí que
se pase a esta descripción con ss y después se vuelva a poner
en función de transferencia.
• Gb = tf(bilin(ss(G),1,‘bwdrec',0.3))
Devuelve la aproximación
Euler hacia atrás.
• Gtu = tf(bilin(ss(G),1,’Tustin',0.3))
Devuelve la aproximación
Tustin.
Esquema del tema
5.1. Discretización de controladores PID continuos.
5.1.1. Aproximación rectangular hacia delante (Euler I).
5.1.2. Aproximación rectangular hacia atras (Euler II).
5.1.3. Aproximación bilineal (trapezoidal o Tustin).
5.2. Correspondencias s - z para las aproximaciones de la integral.
5.2.1. Rectangular hacia delante.
5.2.2. Rectangular hacia atrás.
5.2.3. Trapezoidal o Bilineal.
5.3. Estabilidad de las aproximaciones.
5.4. Funciones de Matlab útiles.
5.5. Método de diseño directo (Ragazzini-Truxal).
5.5.1. Causalidad.
5.5.2. Estabilidad Interna.
5.5.3. Errores en régimen permanente.
5.6. Control en un número finito de intervalos.
Método de diseño de Ragazzini-Truxal
•
•
Es una alternativa a la discretización de controladores, se diseña
directamente en discreto.
Se imponen condiciones a la función de transferencia del controlador y a la
de bucle cerrado.
La idea es obtener una función de bucle cerrado deseada Gd(z) y a partir
de ahí obtener el controlador necesario.
La función de bucle cerrado deseada será igual a:
•
Despejando C(z):
•
C(z) puede ser no implementable
se imponen condiciones:
– Causalidad.
– Estabilidad interna.
– Errores en régimen permanente.
•
•
Condición de causalidad
•
•
El controlador debe ser causal para evitar que u(k) dependa de errores
futuros.
C(z) es causal si:
•
Por otra parte:
Grado(N(z)) · grado(D
grado(Dd(z))
Causalidad
El exceso de polos sobre ceros de Gd(z) debe ser mayor o
igual que el exceso de polos sobre ceros de G(z).
Estabilidad Interna
•
•
No se debe haber cancelaciones de polos-ceros inestables entre C(z) y G(z).
La ecuación característica del sistema es:
•
Supóngase que G(z) tiene un polo inestable:
que se cancela con un cero inestable:
•
La ecuación característica quedaría:
Raiz
inestable
1. Todos los polos inestables de G(z) deben aparecer como
ceros de 11-Gd(z).
2. Todos los ceros inestables de G(z) deben aparecer como
ceros de Gd(z).
Errores en régimen permanente
•
El error de bucle cerrado es:
y en régimen permanente:
ERP NULO ANTE ESCALÓN:
ERP ESCALÓN NULO : Gd(1) = 1
ERP NULO ANTE ESCALÓN:
ERP ESCALÓN Y RAMPA NULO :
Esquema del tema
5.1. Discretización de controladores PID continuos.
5.1.1. Aproximación rectangular hacia delante (Euler I).
5.1.2. Aproximación rectangular hacia atras (Euler II).
5.1.3. Aproximación bilineal (trapezoidal o Tustin).
5.2. Correspondencias s - z para las aproximaciones de la integral.
5.2.1. Rectangular hacia delante.
5.2.2. Rectangular hacia atrás.
5.2.3. Trapezoidal o Bilineal.
5.3. Estabilidad de las aproximaciones.
5.4. Funciones de Matlab útiles.
5.5. Método de diseño directo (Ragazzini-Truxal).
5.5.1. Causalidad.
5.5.2. Estabilidad Interna.
5.5.3. Errores en régimen permanente.
5.6. Control en un número finito de intervalos.
Control en un número finito de intervalos. Control
dead-beat
•
•
•
Objetivo: lograr tiempo de establecimiento finito con error en régimen
permanente nulo.
Gd(z) debe tener respuesta impulsional finita : polinomio de orden N:
Gd(z) tiene todos los polos en cero, la salida llega a cero en N tiempos de
muestreo y el tiempo de establecimiento es de t=NT segundos.
Cuando N toma el valor mínimo posible (n, el orden de G(z))
el control obtenido se llama deaddead-beat.
•
Gd(z) tomará la forma:
•
El controlador C(z) será:
Control en un número finito de intervalos. Control
dead-beat
•
Como Nd(z) se puede tomar:
lo que implica que:
•
Además el error en régimen permanente debe ser nulo:
•
Siendo
Ejemplo de Ragazzini-Truxal
• Sea el sistema discreto:
Se desea calcular un controlador que coloque los polos en z=0 y 0.8
y tenga e.r.p. ante escalón cero.
• Al tener exceso de polos sobre ceros igual a 1:
• Estabilidad interna: 1-Gd(z) debe tener un cero en z=-2.
• Imponiendo el cero en z=-2:
Ejemplo de Ragazzini-Truxal
• De lo anterior:
• Imponiendo la condición de e.r.p. nulo,Gd(1)=1:
• Usando las dos ecuaciones anteriores:
• Por tanto:
• De ahí:
Ejemplo de Ragazzini-Truxal
• Luego:
• La ley de control se calcularía como:
3
2.5
2
1.5
Sistema de fase no
mínima con cero en 1.11
1
0.5
0
-0.5
-1
-1.5
-2
0
20
40
60
80
100
120
Ejemplo de control dead-beat
• Sea el sistema:
• La función de transferencia del controlador será:
1
0.8
Se alcanza la salida en un
sólo tiempo de muestreo
0.6
0.4
0.2
0
0
1
2
3
4
5
Descargar