Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SISTEMAS DIGITALES DE
INSTRUMENTACIÓN Y CONTROL
TEMA 6
Sistemas Digitales de
Control en Tiempo
Discreto
DAC ADC
1 − e −Ts D(s)
s
D(z)
Índice (I)
6.1. Sistemas de control digital
6.1.1. Introducción al diseño de sistemas de control digital
6.1.2. Discretización de sistemas analógicos
6.1.3. Ejemplo: modelo discreto de un motor DC
6.2. Diseño de un control digital PID
6.2.1 Introducción al control PID digital
6.2.2 Aproximación rectangular del control PID
6.2.3 Aproximación trapezoidal del control PID
6.3. Arquitecturas de realización de controladores digitales
6.3.1. Programación directa
6.3.2. Programación estándar
6.3.3. Programación serie
6.3.4. Programación paralelo
6.3.5. Programación en escalera
Tema 6: Sistema Digitales de Control en Tiempo Discreto 2
1
Índice (II)
6.4. Ejemplo de diseño: control de un motor DC mediante el driver L293E
6.4.1. Introducción al sistema de control digital de un motor
6.4.2. Modelo equivalente eléctrico del motor DC
6.4.3. Interface con el motor: L293E
6.4.4. Control en lazo abierto de la velocidad de giro
6.4.5. PWM digital
6.4.6. Monitorización de la velocidad de giro
6.4.7. Regulación de la velocidad de giro
2
6.1.1 Introducción al diseño de sistemas
de control digital
3
Controladores analógicos vs. digitales
4
6.1.2 Discretización de sistemas
analógicos
5
Mantenedor de orden cero (ZOH)
DAC ADC
−Ts
1− e D(s)
s
D(z)
D (s )
(
D( z ) = 1 − z −1 Z )
s
Correspondencia Polo-Cero
Los polos y ceros “si” de D(s) se mapean como polos y ceros de D(z) de
acuerdo con:
z i = e si T T = periodo de muestreo
Si D(s) tiene más polos que ceros se añaden ceros en z=-1 en el numerador
para igualar el número de polos y ceros.
La ganancia se escoge adecuadamente para que se cumpla:
D( z ) z =1 = D(s ) s =0
6
Transformación Bilineal
14
7
Modelo de la planta (I)
El primer paso en el diseño de un control es obtener el modelo de la planta
Ejemplo: modelo de un motor DC de imán permanente
di
Características eléctricas: L + Ri = V − emf
dt
L: inductancia del motor
R: resistencia
V: tensión de alimentación
i: corriente
emf: fuerza contraelectromotriz = Ke · θ
Ke: constante de fuerza contraelectromotriz
d 2θ dθ d 2θ
Características mecánicas: JM + B + K θ = TL − J L
dt 2 dt dt 2
8
Modelo de la planta (III)
θ (s ) 53.906
Gm (s ) = =
V (s ) s(s + 1.116 )
Tema 6: Sistema Digitales de Control en Tiempo Discreto 17
G (s ) b A A A b = J −1 ( K t R )
= 2 = 1 + 22 + 3
s s (s + a ) s s s+a a = J −1 (K t K e R )
( )
G (s ) − b a 2 (b a ) b a 2
= + 2 +
( ) T: periodo de muestreo
T = 0.001
s s s s+a
G (z ) =
( ) (
b a 2 e − aT − 1 + aT z −1 + b a 2 1 − e − aT − aTe − aT z −2 )
( )
1 − 1 + e − aT z −1 + e − aTz − 2
Tema 6: Sistema Digitales de Control en Tiempo Discreto 18
9
Conversión a formato discreto (II)
G (z ) =
( ) (
b a 2 e − aT − 1 + aT z −1 + b a 2 1 − e − aT − aTe − aT z −2 )
( )
1 − 1 + e − aT z −1 + e − aTz − 2
a = 1.116
b = 53.906 Km: Factor de ganancia
T = 0.001
θ (z )0.2694 z −1 + 0.2693 z −2
G (z ) = = ⋅ Km
V ( z ) 1 − 1.999 z −1 + 0.999 z − 2
20
10
Algoritmos de control
22
11
Expresión general control PID
Minimiza el error
Reduce el error a cero en • Incrementa la
régimen permanente estabilidad de la planta
• Acción anticipativa que
reduce el sobreimpulso
Kp: constante proporcional
Ki: constante integral
Kd: constante derivativa
u(t): salida del control
e(t): señal de error
KP KP
+ +
e(t) + u(t) e(n) + u(n)
KI/s DI(z)
E(s) + U(s) E(z) + U(z)
KD·s DD(z)
12
Implementación del control PID discreto
• Aproximación rectangular:
• El diseño se realiza en el dominio analógico y a continuación se
transfiere al dominio discreto
• Es fácil de implementar y proporciona resultados satisfactorios
• Aproximación trapezoidal:
• El diseño se realiza en el dominio discreto directamente utilizando
técnicas de ubicación de polos
26
13
Aproximación rectangular del PID (I)
Algoritmo de posición
Inconveniente: en caso de
u (n ) = K p e(n ) + K iT ∑ ei + K d [e(n) − e(n − 1)] T malfuncionamiento del sistema digital
i que calcula u(n) se podría generar una
salida u(n)=0
14
Algoritmo PID de velocidad
Algoritmo de velocidad
∆u (n ) = u (n ) − u (n − 2 )
n−2
u (n − 2 ) = K p e(n − 2 ) + K iT ∑ ei + K d [e(n − 1) − e(n − 2)] T
i =1
15
Implementación digital del PID
e(n-1) e(n-2)
e(n) z-1 z-1
u(n)
16
Respuesta al escalón con el control PID
34
17
Aproximación trapezoidal
(
U ( z ) 1 − z −1 = K I ) T
2
[
1 + z −1 E [z ]]
DI ( z ) =
U (z )
= KI
T 1 + z −1 ( )
E (z ) 2 1 − z −1 ( )
Tema 6: Sistema Digitales de Control en Tiempo Discreto 35
U (z ) = K p E (z ) + K I
(
T 1 + z −1 ) K
E ( z ) + d 1 − z −1 E ( z ) ( )
(
2 1− z −1
) T
Función de transferencia discreta
D(z ) =
U (z )
= K p + KI
(
T 1 + z −1 K d
+ 1 − z −1
) ( )
E (z ) 2 1− z −1
( T )
Reordenando términos
D(z ) =
(2TK p ) (
+ K I T 2 + 2 K d + K I T 2 − 2 K pT − 4 K d z −1 + 2 K d z − 2 )
(
2T 1 − z −1
)
Tema 6: Sistema Digitales de Control en Tiempo Discreto 36
18
Diseño del control PID de un motor DC
K1 + K 2 z −1 + K 3 z −2
GPID ( z ) =
1 − z −1
Ki K K 2K d K
Con: K1 = K p + T + d , K2 = −K p + i T − , K3 = d
2 T 2 T T
θ (z ) 0.2694 z −1 + 0.2693z −2
G p (z ) = = ⋅ Km
V (z ) 1 − 1.999 z −1 + 0.999 z − 2
Tema 6: Sistema Digitales de Control en Tiempo Discreto 37
19
Respuesta al escalón con el control PID
20
Implementación digital del PID
e(n-1) e(n-2)
e(n) z-1 z-1
K1 X K2 X K3 X u(n-1) z-1
+ +
+
u(n)
42
21
Diagrama de bloques de un controlador digital
D(z)
E2 ( z ) b0 + b1 z −1 + b2 z −2 + L + bm z − m
D(z ) = =
E1 (z ) a0 + a1 z −1 + a2 z − 2 + L + a p z − p
E2 (z ) b0 + b1 z −1 + b2 z −2 + L + bm z − m
D(z ) = =
E1 ( z ) a0 + a1 z −1 + a2 z − 2 + L + a p z − p
22
Estructuras de implementación
46
23
Descomposición de la función de transferencia
E2 (z ) b0 + b1 z −1 + b2 z −2 + L + bm z − m
D( z ) = =
E1 (z ) a0 + a1 z −1 + a2 z − 2 + L + a p z − p
[ ] [
E2 ( z ) a0 + a1 z −1 + a2 z −2 + L + a p z − p = E1 ( z ) b0 + b1 z −1 + b2 z −2 + L + bm z − m ]
Transformada “z” inversa
p m
a0 ⋅ e2 (n ) + ∑ ai e2 (n − i ) = ∑ bi e1 (n − i )
i =1 i =0
m p
1 1
Salida actual e2 (n ) = ∑ bi e1 (n − i ) − ∑ a e (n − i )
i 2
a0 i =0 a0 i =1
Implementación directa
e1(n) e1(n-1) e1(n-2) e1(n-m) Los coeficientes ai y bi aparecen de
Z-1 Z-1 forma directa
Recursos utilizados:
b0 b1 b2 bm
• M+P elementos de retraso “Z-1”
a0 a0 a0 a0 • M+P+1 multiplicadores
+ + + • M+P sumadores
+ + + + e2(n)
+
e2(n) e2(n-1) e2(n-2) e2(n-p)
Z-1 Z-1
− a1 − a2 − ap
a0 a0 a0
+ +
+ +
Tema 6: Sistema Digitales de Control en Tiempo Discreto 48
24
6.3.2 Programación estándar
49
E2 ( z ) H (z ) 1
= b0 + b1 z −1 + b2 z − 2 + L + bm z − m =
H (z ) E1 (z ) a0 + a1 z + a2 z − 2 + L + a p z − p
−1
[ ]
m
E2 ( z ) = b0 + b1 z −1 + b2 z − 2 + L + bm z − m ⋅ H ( z ) ⇒ e2 (n ) = ∑ bi h(n − i )
i =0
[ ]
p
1 1 1 1
H (z ) = E1 ( z ) − a1 z −1 + a2 z − 2 + L + a p z − p ⋅ H ( z ) ⇒ h(n ) = e1 (n ) − ∑ a h(n − i )
i
a0 a0 a0 a0 i =1
25
Implementación estándar
Recursos utilizados:
• P elementos de retraso “Z-1”
• P+M+2 multiplicadores
• P+M+1 sumadores
+ +
+
+ +
e2(n)
b0 b 1 b2 b
m
+
e1(n) +
a0−1 Z-1 Z-1 Z-1 h(n-p)
h(n)
- a1 a2 am ap
a0 a0 a0 a0
+ + +
+ + +
Tema 6: Sistema Digitales de Control en Tiempo Discreto 51
Fuentes de error
La precisión en la implementación de controles digitales es importante para
obtener un buen resultado.
26
6.3.3 Programación serie
53
27
Implementación estándar
+ +
m
e2 (n ) = ∑ bi h(n − i ) + +
i =0
b0 b1 b2
+
e2(n)
h(n) Z-1
bm +
Z-1 Z-1
h(n-1) h(n-2) h(n-m)
e1(n) + h(n) h(n-1) h(n-2) h(n-m) h(n-p)
a0−1 Z-1 Z-1 Z-1
- a1 a2 am ap
a0 a0 a0 a0
+ + +
+ + +
p
1 1
h(n ) = e1 (n ) − ∑ a h(n − i )i
Tema 6: Sistema Digitales de Control en Tiempo Discreto
a0 a0 i =1 55
+
x(n) + bi +
Z-1 y(n)
-
ai
28
Implementación funciones Di(z) (II)
Polos y ceros complejo conjugados
Y ( z ) 1 + ei z −1 + f i z −2
=
X ( z ) 1 + ci z −1 + d i z − 2
+
ei +
+
x(n) + fi +
Z-1 Z-1 y(n)
-
ci
+
+ di
58
29
Descomposición de la función de transferencia
La función de transferencia se descompone en suma de fracciones parciales de
primer y segundo orden:
E ( z ) b0 + b1 z −1 + b2 z −2 + L + bm z − m
D(z ) = 2 = = A + D1 ( z ) + D2 ( z ) + L + Dq ( z )
E1 ( z ) a0 + a1 z −1 + a2 z − 2 + L + a p z − p
j q j
bi q
ei + f i z −1
= A + ∑ Di ( z ) + ∑ Di (z ) = A + ∑ −1
+ ∑ −1
i =1 i = j +1 i =1 1 + ai z i = j +1 1 + ci z + di z −2
Polos reales Polos complejos
D1(z)
e1(n) e2(n)
Dq(z)
Tema 6: Sistema Digitales de Control en Tiempo Discreto 59
Polos reales
Y (z ) bi
=
X ( z ) 1 + ai z −1
bi
y(n)
x(n) +
Z-1
-
ai
30
Implementación funciones Di(z) (II)
x(n) +
Z-1 Z-1
-
ci
+
+ di
62
31
Descomposición de la función de transferencia
1
Di( B ) ( z ) = con i = 1,2,..., p − 1
Bi z + Gi( A ) ( z )
D( z ) = A0 + D1( B ) ( z ) 1
Di( A ) ( z ) = con i = 1,2,..., p − 1
Ai + Gi(+B1) ( z )
1
D (pB ) ( z ) =
1
Bp z +
Ap
1
D( z ) = A0 +
1
B1 z +
1
A1 +
1
B2 z +
M
1
Ap −1
1
Bp z +
Ap
Tema 6: Sistema Digitales de Control en Tiempo Discreto 63
1 1
D( z ) = A0 + = A0 + = A0 + D1( B ) ( z )
B1 z +
1 B1 z + D1( A ) ( z )
A1 + D2( B ) ( z )
32
Ejemplo de programación en escalera (II)
+ 1 Bi
x(n) Z-1 y(n)
-
Di( A ) ( z )
+ 1 Ai
x(n) y(n)
-
Di(+B1) ( z )
33
Ejemplo de programación en escalera (IV)
1 1
D( z ) = A0 + = A0 + = A0 + D1( B ) ( z )
B1 z +
1 B1 z + D1( A ) ( z )
A1 + D2( B ) ( z )
x(n) A0 + y(n)
+ 1A 1 3
4
+
- 6 5 x (B )
D1 (z ) x
x D2( B ) ( z ) x 1 2
+ 1 B1 2
1 Z-1
+ 1 B2 6
5 Z-1 -
- 3 4
1 A2 x D1( A ) ( z ) x
Tema 6: Sistema Digitales de Control en Tiempo Discreto 67
x(n) A0 + y(n)
1 x+ +x
2
1B 1
Z-1
-x x4
3 +
1 A1
+x 5 - x 6
1 B2
Z-1
-
1 A2
34
6.4 Ejemplo de diseño: control de un
motor DC mediante el driver L293E
69
Índice
35
6.4.1 Introducción al sistema de control
digital de un motor
71
Placa interface
FPGA
Elementos básicos:
• FPGA: implementa el sistema digital de control
• Interface etapa lógica-motor: etapa de potencia controlada digitalmente que
alimenta el motor DC
• Motor: sistema a controlar
• Sensor óptico: permite medir la velocidad de giro del motor
Tema 6: Sistema Digitales de Control en Tiempo Discreto 72
36
6.4.2 Modelo equivalente eléctrico del
motor DC
73
(fuerza)
(velocidad)
37
Modelo real del motor DC con pérdidas
38
6.4.3 Interfase con el motor: L293E
77
Características:
• Iout: 1A por canal
• Iout de pico: 2 A por canal
• Entrada de inhibición
• Protección contra sobre-temperatura
39
Diagrama de bloques
Entradas de control
Entradas de Modelo driver de corriente
habilitación Vss
40
Control unidireccional del motor DC (II)
Vss
Conexión a masa
Vss
1
M
Vss
M
0
Conexión a +Vs
41
Control bidireccional del motor DC (II)
1 M 0 0 M 1
+ - + -
Va=Vss Va=-Vss
84
42
Control en lazo abierto de la velocidad de giro
1
w A = D ·V REF ·
s 2 + 2α s + wo2
43
Modulador de anchura de pulsos (PWM)
D VREF
1 M 0 0 M 1
+ - + -
Va=Vss Va=-Vss
D = 0.5 Vss
1 1 1 1
0 0 M 0 0
+ -
Va=0
44
Forma de onda de la tensión del motor
+Vss
-Vss
90
45
Estructura del PWM analógico
Rampa Comparador
-
PWM
Tc D +
Ciclo de trabajo
PWM
8 Comparador
Contador A 8 bits
CLK
8 bits
1
LT PWM
8
D B
Tc = 28·TCLK Tc
D1
D2
PWM2
PWM1
Tema 6: Sistema Digitales de Control en Tiempo Discreto 92
46
Diseño Xilinx del PWM digital
P80
Ciclo de
trabajo Salida de habilitación
del puente
Divisor de frecuencia
TCLK
P80
50MHz
47
Ciclo de trabajo
PWM
PWM1
ENABLE
48
6.4.6 Monitorización de la velocidad de
giro
97
Fotointerruptor
4 3
1 2
4 3
Vista inferior
1 2
49
Esquema de conexión
+Vcc
10kΩ
+Vcc 180Ω
4 Pin
3 FPGA
560Ω
1
2
50
Implementación digital del algoritmo
Contador
Pulsos del de pulsos
Registro
fotointerruptor CK
de Np
Reset Asíncrono
CK
Temporizador
50MHz CK T segundos
T
Dimensionado de componentes
Temporizador T
Temporizador T
Contador de 21 bits T0
MAX COUNT:
50MHz CK T=41.66ms
2.083.333d = 1FCA05H
51
Dimensionado de componentes
Contador de pulsos, Registro Np
+Vcc
Contador de 7 bits Registro
Pin
10kΩ 7 bits
+Vcc 4 180Ω FPGA 7 7
3
CK
560Ω
1 2 CK
Reset Asíncrono
T=41.66ms
Tema 6: Sistema Digitales de Control en Tiempo Discreto 103
Estructura
utilizada
52
Etapa de visualización
(MSB) B6 4 D
Registro B5 A3, P49
7 bits 7 B4 9
B3 RAM
B2 512 x 8bits 4 U
B1 A4, P58
(LSB) B0 ó P56 (2E)
Ejemplo de visualización
Para Np=50d,
el valor del registro es Bus de Bus de
0110010b direcciones datos
4 D
Registro 0101
7 bits 7 9
RAM [7..4]
512 x 8bits 4 U
0000
[3..0]
Los dos bits de mayor peso del bus de direcciones valen siempre 0
53
Contenido de la memoria RAM
INIT_00=3130292827262524232221201918171615141312111009080706050403020100
INIT_01=6362616059585756555453525150494847464544434241403938373635343332
INIT_02=9594939291908988878685848382818079787776757473727170696867666564
INIT_03=0000000000000000000000000000000000000000000000000000000099989796
INIT_04=0000000000000000000000000000000000000000000000000000000000000000
INIT_05=0000000000000000000000000000000000000000000000000000000000000000
INIT_06=0000000000000000000000000000000000000000000000000000000000000000
INIT_07=0000000000000000000000000000000000000000000000000000000000000000
INIT_08=0000000000000000000000000000000000000000000000000000000000000000
INIT_09=0000000000000000000000000000000000000000000000000000000000000000
INIT_0A=0000000000000000000000000000000000000000000000000000000000000000
INIT_0B=0000000000000000000000000000000000000000000000000000000000000000
INIT_0C=0000000000000000000000000000000000000000000000000000000000000000
INIT_0D=0000000000000000000000000000000000000000000000000000000000000000
INIT_0E=0000000000000000000000000000000000000000000000000000000000000000
INIT_0F=0000000000000000000000000000000000000000000000000000000000000000
Tema 6: Sistema Digitales de Control en Tiempo Discreto 107
Señales
habilitación
de dígitos
D[7..4] 4 0 8
4 8
BIN7SEG
U[3..0] 4 1 S0 A3, P49
8
S0 0 1
A4, P58 ó
A3
P56 (2E)
A4
54
Control de activación de los dígitos
95Hz Sistema S0
50 MHz P80
Contador 19 bits secuencial A4
Clock de control A3
110
55
Sistema de control en lazo cerrado
Bibliografía (I)
www.ti.com
www.motorola.com
56
Bibliografía (II)
www.st.com
57