Tema 6. Diseño de controladores discretos - control...

34
Tema 6. Diseño de controladores discretos Daniel Rodríguez Ramírez Teodoro Alamo Cantarero Ingeniería de Control

Transcript of Tema 6. Diseño de controladores discretos - control...

Page 1: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

Tema 6. Diseño de controladores discretos

Daniel Rodríguez RamírezTeodoro Alamo Cantarero

Ingeniería de Control

Page 2: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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.

Page 3: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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.

Page 4: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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.

Page 5: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

Aproximación rectangular hacia delante (Euler I)

• La derivada se aproxima por:

• El término integral:

• La expresión del PID queda:

KK-1

T

e(t)

t

Page 6: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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:

Page 7: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

Aproximación rectangular hacia delante (Euler I)

• El código de programa que implementaría el controlador sería:

1. Esperar a que se cumpla el tiempo de muestreo T.2. Leer yk.3. Calcular ek = rk - yk.4. Calcular uk según la expresión:

5. Aplicar uk.6. Actualizar uk-1, ek-1, ek-2.

Page 8: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

Aproximación rectangular hacia atrás (Euler II)

• En este caso la integral se aproxima por:

• Se llega a: KK-1

T

t

Page 9: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

Aproximación bilineal (trapezoidal o Tustin)

• En el caso de la aproximación bilineal la integral se calcula mediante:

KK-1

T

e(t)

t

Es la mejor aproximaciónEs la mejor aproximaciónEs la mejor aproximaciónEs la mejor aproximación

Page 10: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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:

0 2 4 6 8 100

0.5

1

1.5

2

0 2 4 6 8 10-1

0

1

2

3

4

0 2 4 6 8 100

0.5

1

1.5

2

0 2 4 6 8 10-2

0

2

4

6

Tustin

Euler I

Page 11: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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.

Page 12: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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):

A

K

e(t)

tIntegral de Integral de Integral de Integral de ----auauauau(t) +(t) +(t) +(t) +aeaeaeae(t) entre (k(t) entre (k(t) entre (k(t) entre (k----1)T y 1)T y 1)T y 1)T y kTkTkTkT

Page 13: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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:

• Teniendo en cuenta que:

se llega a:

• Tomando la transformada z:

• Luego:

KK-1

T

e(t)

t

Page 14: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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:

se llega a:

• Aplicando la transformada z:

KK-1

T

t

Page 15: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

Correspondencia s $ z para la aproximación de la integral

Trapezoidal o BilinealTrapezoidal o BilinealTrapezoidal o BilinealTrapezoidal o Bilineal• En este caso u(t) a lo largo del intervalo vale:

• Esto implica:

• Llevándolo a:

se obtiene:

• Aplicando transformada z:

KK-1

T

e(t)

t

Page 16: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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.

Page 17: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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 Controladores estables en continuo Controladores estables en continuo Controladores estables en continuo pueden resultar inestables en discreto.pueden resultar inestables en discreto.pueden resultar inestables en discreto.pueden resultar inestables en discreto.

Page 18: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

Estabilidad de las aproximacionesBilineal o Tustin

• La aproximación es:

• La aproximación es:

Rectangular hacia atrás

La bilineal es La bilineal es La bilineal es La bilineal es la mejorla mejorla mejorla mejor

Page 19: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

0 1 2 3 4 5 6 7

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0 2 4 6 8 10 120

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

Ejemplo de estabilidad de las aproximaciones

• Sea

• Usando un tiempo de muestreo de 0.3 segundos:

Tustin

Euler Adelante

Euler Atrás

Page 20: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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:

Page 21: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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.

Page 22: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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.

Page 23: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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.

Page 24: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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.

Page 25: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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(N(z)) Grado(N(z)) Grado(N(z)) · grado(grado(grado(grado(DDDDdddd(z))(z))(z))(z))

CausalidadCausalidadCausalidadCausalidad

El exceso de polos sobre ceros de Gd(z) debe ser mayor o igual que el exceso de polos sobre ceros de G(z).

Page 26: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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:

1.1.1.1. Todos los polos inestables de G(z) deben aparecer como Todos los polos inestables de G(z) deben aparecer como Todos los polos inestables de G(z) deben aparecer como Todos los polos inestables de G(z) deben aparecer como ceros de 1ceros de 1ceros de 1ceros de 1----GGGGdddd(z). (z). (z). (z).

2.2.2.2. Todos los ceros inestables de G(z) deben aparecer como Todos los ceros inestables de G(z) deben aparecer como Todos los ceros inestables de G(z) deben aparecer como Todos los ceros inestables de G(z) deben aparecer como ceros de Gceros de Gceros de Gceros de Gdddd(z).(z).(z).(z).

Raiz Raiz Raiz Raiz inestableinestableinestableinestable

Page 27: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

Errores en régimen permanente• El error de bucle cerrado es:

y en régimen permanente:

ERP NULO ANTE ESCALÓN:ERP NULO ANTE ESCALÓN:ERP NULO ANTE ESCALÓN:ERP NULO ANTE ESCALÓN:

ERP ESCALÓN NULO ERP ESCALÓN NULO ERP ESCALÓN NULO ERP ESCALÓN NULO : GGGGdddd(1) = 1(1) = 1(1) = 1(1) = 1

ERP NULO ANTE ESCALÓN:ERP NULO ANTE ESCALÓN:ERP NULO ANTE ESCALÓN:ERP NULO ANTE ESCALÓN:

ERP ESCALÓN Y RAMPA NULO ERP ESCALÓN Y RAMPA NULO ERP ESCALÓN Y RAMPA NULO ERP ESCALÓN Y RAMPA NULO :

Page 28: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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.

Page 29: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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.

• Gd(z) tomará la forma:

• El controlador C(z) será:

Cuando N toma el valor mínimo posible (n, el orden de G(z)) Cuando N toma el valor mínimo posible (n, el orden de G(z)) Cuando N toma el valor mínimo posible (n, el orden de G(z)) Cuando N toma el valor mínimo posible (n, el orden de G(z)) el control obtenido se llama deadel control obtenido se llama deadel control obtenido se llama deadel control obtenido se llama dead----beat.beat.beat.beat.

Page 30: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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

Page 31: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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:

Page 32: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

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í:

Page 33: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

Ejemplo de Ragazzini-Truxal

• Luego:

• La ley de control se calcularía como:

0 20 40 60 80 100 120-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

2.5

3

Sistema de fase no Sistema de fase no Sistema de fase no Sistema de fase no mínima con cero en 1.11mínima con cero en 1.11mínima con cero en 1.11mínima con cero en 1.11

Page 34: Tema 6. Diseño de controladores discretos - control …control-class.com/Tema_6/Slides/Tema_6_Diseno_Controladores.pdf · Funciones de Matlab útiles. 5.5. Método de diseño directo

Ejemplo de control dead-beat

• Sea el sistema:

• La función de transferencia del controlador será:

0 1 2 3 4 50

0.2

0.4

0.6

0.8

1

Se alcanza la salida en un Se alcanza la salida en un Se alcanza la salida en un Se alcanza la salida en un sólo tiempo de muestreosólo tiempo de muestreosólo tiempo de muestreosólo tiempo de muestreo