Post on 20-Apr-2020
Clase 08 Implementación de Controladores.doc 1
1. Implementación de Controladores 1. IMPLEMENTACIÓN DE CONTROLADORES ........................................................ 1
1.1. INTRODUCCIÓN.................................................................................................................. 2
1.2. PROBLEMAS NUMÉRICOS .................................................................................................. 2
1.2.1. Fuentes de error:....................................................................................................... 2
1.2.2. Longitud de Palabra.................................................................................................. 3
1.2.3. Redondeo ................................................................................................................... 3
1.3. REALIZACIÓN DE UN CONTROLADOR................................................................................ 5
1.3.1. Sensibilidad Coeficiente-Polo................................................................................... 7
1.3.2. Implementación Directa............................................................................................ 9
1.3.3. Realización Bien Acondicionada ............................................................................ 12
1.3.4. Realización Tipo Escalera ...................................................................................... 13
1.3.5. Transformada Delta ................................................................................................ 18
Clase 08 Implementación de Controladores.doc 2
1.1. Introducción Controlador
( )( )k k
S qu e
R q= [1.1]
en variables de estado
1k k k c k
k k k c k
x Fx Gy G ru Cx Dy D r+ = + += + +
[1.2]
1.2. Problemas Numéricos 1.2.1. Fuentes de error: - cuantización de los conversores AD - cuantización de parámetros - redondeo AD 8 bits resolución de 0,4% AD 10 bits resolución de 0,1% AD 12 bits resolución de 0,025% AD 14 bits resolución de 0,006%
Clase 08 Implementación de Controladores.doc 3
La cuantización de los parámetros depende principalmente del período de muestreo.
1.2.2. Longitud de Palabra longitudes típicas: 8, 16, 32.
Ejemplo 1.1. Producto escalar [ ][ ]100 1 100
100 1 100
a
b
=
= − [1.3]
producto escalar 1ab = [1.4]
representación con coma flotante con tres decimales: 100 100 1 1 100 100 10000 10000 0ab = × + × − × = − = [1.5]
depende del orden en que se hagan las operaciones. Esto se debe analizar con detalle a la hora de elegir un DSP o micro.
1.2.3. Redondeo Es una no linealidad en el lazo de control Generalmente causa ciclos límites
Clase 08 Implementación de Controladores.doc 4
Ejemplo 1.2. Control Proporcional
( ) ( )( )0,251 0,5
KG zz z
=− −
[1.6]
Step Q uantizer
1.6*.25
(z-1)(z-0.5)Discrete
Zero-Pole
sin cuantiar y con cuantización de 0,5
0 10 20 30 40 50 600
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
0 10 20 30 40 50 600
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
Clase 08 Implementación de Controladores.doc 5
1.3. Efecto Antireset Windup up
u
KTds-y
es
u
K
K/Ti 1/s
Actuador
1
iT
-
+
+
+
e v
+
+
+
u
KTds-y
es
u
K
K/Ti 1/s
1
iT
-
+
+
+
e v
+
+
+
ActuadorModelo
Clase 08 Implementación de Controladores.doc 6
1.4. Efecto Bumpless
Manual
u
PDy
es1
rT
-
+
e
+
r
Actuaciónmanual
1
rT1s
1s
1
rT
1
mT
Auto
-
Clase 08 Implementación de Controladores.doc 7
1.5. Realización de un Controlador generalmente el controlador es de la forma
( )1
1 0 11
11
mm
k k knn
b b q b qu R q e ea q a q
− −−
− −
+ + += =
+ + + [1.7]
1.5.1. Sensibilidad Coeficiente-Polo ( ) ( ) ( )1
1 1, n ni n nA z a z a z a z p z p−= + + + = − − [1.8]
veamos cómo influye una variación en los coeficientes en la posición de los polos. Desarrollamos en serie el polinomio alrededor de cada uno de los polos,
( ) ( )0 , ,k
k k
i i k i k iz pz p i z p
A AA z z a a A p a p az a
δ δ δ δ=
= =
∂ ∂= + + ≈ + + +
∂ ∂ [1.9]
para que el segundo término sea cero debe cumplirse
0k k
k iz p i z p
A Ap az a
δ δ= =
∂ ∂+ =
∂ ∂ [1.10]
Clase 08 Implementación de Controladores.doc 8
k
k i
i z p
Azp aAa
δ δ
=
∂∂≈ − ⋅
∂∂
[1.11]
k
n ik
i z p
A pa
−
=
∂=
∂ y ( )
k
k jj kz p
A p pz ≠=
∂= −
∂ ∏ [1.12]
( )n ik
k ik j
j k
pp ap p
δ δ−
≠
≈ −−∏
[1.13]
si el filtro es estable, las raíces son menores a uno y tiene su máximo valor en n=i. El coeficiente na es el que más influye.
Si hay raíces próximas la sensibilidad crece k jp p≈
Clase 08 Implementación de Controladores.doc 9
1.5.2. Implementación Directa La forma más intuitiva de realizar el controlador es
0 1
m n
k i k i i k ii i
u b e a u− −= =
= −∑ ∑ [1.14]
Hay que almacenar los valores anteriores, o sea m+n No es la mínima realización No hay que recalcular los estados, simplemente guardarlos. Es muy sensible a errores computacionales
Ejemplo 1.3. PID
( )( )( ) ( )
1 11 2
1 11
1 1
1 1p
k k
K c q c qu e
q p q
− −
− −
− −=
− − [1.15]
( ) ( )1 2 1 2 1 1 2 21k k k p k p k p ku p u pu K e K c c e K c c e− − − −= + − + − + + [1.16]
Clase 08 Implementación de Controladores.doc 10
Lo mismo ocurre con la FCC
1k k k c k
k k k c k
x Fx Gy G ru Cx Dy D r+ = + += + +
[1.17]
( ) ( )
1 2 1
1
1 0 1 0 0
11 0 0 0 00 1 0 0 0
0 0 1 0 0
n n
k k k
k n n k k
a a a a
x x e
u b b a b b a x b e
−
+
− − − −
= +
= − − +
[1.18]
Clase 08 Implementación de Controladores.doc 11
Ejemplo 1.4. PID en Variables de Estado ( ) ( )1 2 1 2 1 1 2 21k k k p k p k p ku p u pu K e K c c e K c c e− − − −= + − + − + + [1.19]
1 1 2 2 0 1 1 2 2k k k k k ku a u a u b e b e b e− − − −= − − + + + [1.20]
en variables de estado
1 21
11 0 0k k k
a ax x e+
− − = +
[1.21]
( ) ( )1 0 1 2 0 2 0k k ku b b a b b a x b e= − − + [1.22]
Clase 08 Implementación de Controladores.doc 12
1.5.3. Realización Bien Acondicionada si el filtro tiene rn raíces reales y cn raíces complejas se hace
1
11
2
1 1
cr
i k i ik i k i k
i i ii k i k
i i i
nnT
k i ik i ik k c ki i
z z y r
v v y
u z v Dy D r
λ β γσ ω ρω σ ρ
γ δ
+
+
= =
= + +
= + −
= + + +∑ ∑
[1.23]
Ejemplo 1.5. PID Bien Acondicionado
( ) ( )( )( )
1 1 11 2
1 11 111
1 11 11 1
pk k k k
K c q c q qu e e eq p qq p qα β γ
− − −
− −− −
− − += = +
− −− −[1.24]
con ( )1 2 1 21
11
pKc c c c
pα = − − −
−, ( )1 2 1 2 1
11pK
c c c c pp
β = + + −−
, 1 2pK c cγ = − [1.25]
1 1 1k k kz z eα−= + [1.26]
2 1 2 1 1k k k kz p z e eβ γ− −= + + [1.27]
1 2k k ku z z= + [1.28]
Clase 08 Implementación de Controladores.doc 13
1.5.4. Realización Tipo Escalera Se toma el regulador de la forma
( ) ( )( )
B zR z
A z= [1.29]
y se lo reescribe
( ) 0
1
1
2
1
11
11
11n
nn
R zz
z
z
αβ
αβ
αβ
α
−
= ++
++
++
[1.30]
Clase 08 Implementación de Controladores.doc 14
se puede expresar como estados
( )1 1 1 2 11
1k k k kx x x eβ
α+ = − + [1.31]
( ) ( )2 2 1 1 2 3 21 2
1 1k k k k kx x x x xβ
α α+ = − + − [1.32]
( ) ( )1 1 11
1 1i i k i k ik i k ik
i i
x x x x xβα α+ − +
−
= − + − [1.33]
( )1 11
1 0
1 1n nk n k nk nk
n n
k k k
x x x x
u x e
βα αα
+ −−
= − +
= + [1.34]
Clase 08 Implementación de Controladores.doc 15
0α
e
+
1
1zβ 1
1α
u
-+
1i zβ
1iα
-+
1nzβ
1nα
-+
1x
+ - -+
ix 1ix + nx
( )1 21
1 x xα
− ( )11
1i i
i
x xα −
−
− ( )11
i ii
x xα + − ( )1
1
1n n
n
x xα −
−
−
+
Clase 08 Implementación de Controladores.doc 16
Ejemplo 1.6. PID en Escalera ( ) ( )1 2 1 2 1 1 2 21k k k p k p k p ku p u pu K e K c c e K c c e− − − −= + − + − + + [1.35]
1 21 0,5 0,6 0,7pK p c c= = = = [1.36]
1 2 1 21,5 0,5 1,3 0,42k k k k k ku u u e e e− − − −= − + − + [1.37]
( ) ( )( )
2
2
1,3 0,421,5 0,5
B z z zR zA z z z
− += =
− + [1.38]
( ) 22
0,2 0,08 1 11 1 1 1,1 0,51,5 0,51,5 0,5 50,2 0,080,2 0,08
zR z zz zz z zzz
−= + = + = +
− +− +− + +−−
[1.39]
( ) 1 1 11 1 11,1 0,5 1 15 5 50,2 0,08 0,0109090,2 0,08 0,18181,1 0,5 1,1 0,5
R z zz z zzzz z
= + = + = +− +
+ + +−− − +
− + − +
[1.40]
( ) 1 11 11 15 50,010909 10,1818 0,18181,1 0,5 100,83 45,83
R zz z
z z
= + = ++ +− + − +
− + − +
[1.41]
Clase 08 Implementación de Controladores.doc 17
( ) 11 15 10,1818 1100,830,0218
R zz
z
= ++− +
− +
[1.42]
( )1 1 2 11,10011k k k kx x x e+ = − − + [1.43]
( )2 1 1 2 2 1 20,05455 0,4549 0,05455 0,4003k k k k k kx x x x x x+ = − + = + [1.44]
1k k ku x e= + [1.45]
Clase 08 Implementación de Controladores.doc 18
1.5.5. Transformada Delta Apta para pequeños períodos de muestreo. una mejor forma de calcularlo es, desde el punto de vista numérico,
( )1k k k k c k
k k k c k
x x F I x Gy G ru Cx Dy D r+ = + − + +
= + + [1.46]
multiplicando por el período de muestreo T,
( )1k k k k c k
k k k c k
x x T Fx Gy G r
u Cx Dy D r+ = + + +
= + + [1.47]
donde TF F ITG G
= −
= [1.48]
introduciendo 1q
Tδ −= [1.49]
se puede reescribir
Clase 08 Implementación de Controladores.doc 19
k k k c k
k k k c k
x Fx Gy G ru Cx Dy D r
δ = + += + +
[1.50]
para obtener kx se hace
( )( )
1
1
1k k k c k
k k k c k
k k k k c k
k k k c k
x Fx Gy G rq x Fx Gy G rT
x x T Fx Gy G r
x I TF x TGy TG r
δ
+
+
= + +−
= + +
= + + +
= + + +
[1.51]
Clase 08 Implementación de Controladores.doc 20
Ejemplo 1.7. Filtro de Primer Orden Sea el filtro
x x u= − + [1.52]
discretizado resulta
( )1 1T Tk k k k kx e x e u ax bu− −+ = + − = + [1.53]
para períodos de muestreo muy pequeños es casi un integrador.
( )11k k k
k k k
T x ax bua bx x u
T T
δ
δ
+ = +
−= +
[1.54]
se calcula kxδ con esta ecuación y luego se vuelve a
( )1k k kx x T xδ+ = + [1.55]
Clase 08 Implementación de Controladores.doc 21
Código: % comparación Delta T=.000007; n=150000; xft=zeros(n,1); xde=zeros(n,1); e=zeros(n,1); a = exp(-T); b= 1-a; pr=1e5; t=0:T:(n-1)*T; for i=3:n e(i)=1; xft(i)=round(a*pr)/pr*xft(i-1)+round(b*pr)/pr*e(i-1); d=round((a-1)/T*pr)/pr*xft(i-1)+round(b/T*pr)/pr*e(i-1); xde(i)=xde(i-1)+T*d; % esta parece igual a la anterior pero es inexacta al truncar-se %xde(i)=xde(i-1)+round((a-1)*pr)/pr*xft(i-1)+round(b*pr)/pr*e(i-1); end
Clase 08 Implementación de Controladores.doc 22
0 0.2 0.4 0.6 0.8 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Clase 08 Implementación de Controladores.doc 23
Ejemplo 1.8. PID en Transformada Delta PID en variables de estado
1 21
11 0 0k k k
a ax x e+
− − = +
[1.56]
( ) ( )1 0 1 2 0 2 0k k ku b b a b b a x b e= − − + [1.57]
en función de transferencia 2
0 1 22
1 2k k
b q b q bu eq a q a
+ +=
+ + [1.58]
introduciendo la variable delta
( ) ( )( ) ( )
2 2 20 1 2 0 0 0 1 1 2
2 2 21 1 21 2
1 1 22 11 1
k k k
b T b T b b T b T b b T b bu e eT T a T a aT a T a
δ δ δ δ δδ δ δδ δ
+ + + + + + + + += =
+ + + + + ++ + + + [1.59]
20 1 2
21 2
k kb b bu e
a aδ δδ δ′ ′ ′+ +
=′ ′+ +
[1.60]
donde
Clase 08 Implementación de Controladores.doc 24
( )
( )
0 1 0 1 220 0 1 2
1 1 221 2
2
2 1
b b b b bb b b bT Ta a aa aT T
+ + +′ ′ ′= = =
+ + +′ ′= = [1.61]
variables de estado en delta
1 2 11 0 0k k k
a ax x eδ
′ ′− − = +
[1.62]
el nuevo estado se calcula
( )
( ) ( )
1 21
1 0 1 2 0 2 0
11 0 0k k k k k
k
k k k
a ax x T x x T x e
u b b a b b a x b e
δ+
′ ′ − − = + = + +
= − − +
[1.63]
a. Si tenemos un PI con un período de muestreo muy pequeño y un tiempo de integra-
ción muy grande (poco efecto integral), se necesita trabajar con alta precisión.
Clase 08 Implementación de Controladores.doc 25
Ejemplo 1.9. Filtro Cuarto Orden
( )
4
4k kbu e
q a=
+ [1.64]
2 3 4 41 2 3 4 4
41 1 2 2 3 3 4 4 4
4 6 4k k k k k k
k k k k k
u au a u a u a u b e
a u a u a u a u b e− − − − −
− − − − −
= − − − − + =
= − − − − + [1.65]
1 2 3 4
1
4
11 0 0 0 00 1 0 0 00 0 1 0 0
0 0 0
k k k
k k
a a a a
x x e
u b x
+
− − − − = + =
[1.66]
en el operador δ ,
( )
4
41k k
bu eT aδ
=+ +
[1.67]
Clase 08 Implementación de Controladores.doc 26
4
41k k
bTu e
aT
δ=
+ +
[1.68]
4 3 2 2 3 3 4 4 4 44 6 4k k k k k ku a u a u a u a u b eδ δ δ δ δ δ′ ′ ′ ′ ′= − − − − + [1.69]
con 1 a ba b
T T+′ ′= = [1.70]
4 3 2 3 4 4 41 2 3 4k k k k k ku a u a u a u a u b eδ δ δ δ δ δ′ ′ ′ ′ ′= − − − − + [1.71]
pasando a variables de estado
k k kx Fx Geδ = + [1.72]
1 2 3 4
1
4
11 0 0 0 00 1 0 0 00 0 1 0 0
0 0 0
k k k
k k
a a a a
x x e
u b x
δ +
′ ′ ′ ′− − − − = +
′ =
[1.73]
Clase 08 Implementación de Controladores.doc 27
para calcular el nuevo estado se hace
1k kk
x xxT
δ + −= [1.74]
1k k kx x T xδ+ = + [1.75]
El incremento del estado, kxδ se calcula con la ecuación[1.72], resultando
1 2 3 4
1
4
11 0 0 0
0 1 0 00 0 1 0
0 0 0
k k k
k k
Ta Ta Ta Ta TT
x x eT
T
u b x
+
′ ′ ′ ′− − − − = +
′ =
[1.76]
Clase 08 Implementación de Controladores.doc 28
Código: % filtro de cuarto orden con retardo y delta % tabla 9.6 de astrom clear all n=100000; a=-.9998; T=1; a1=4*a; a2=6*a*a; a3=4*a*a*a; a4=a*a*a*a; b=1+a; x1=0;x2=0;x3=0;x4=0; ur=zeros(n,1); %u=F*e e=1; for i=1:n ur(i)=b*b*b*b*x4; aux=-a1*x1-a2*x2-a3*x3-a4*x4+e; x4=x3; x3=x2; x2=x1;
Clase 08 Implementación de Controladores.doc 29
x1=aux; end %delta ap=(1+a)/T; bp=b/T; a1=4*ap; a2=6*ap^2; a3=4*ap^3; a4=ap^4; x1=0;x2=0;x3=0;x4=0; ud=zeros(n,1); for i=1:n ud(i)=bp*bp*bp*bp*x4; aux=-a1*x1-a2*x2-a3*x3-a4*x4+T*e; x4=x4+x3; x3=x3+x2; x2=x2+x1; x1=x1+aux; end plot([ur ud]);grid
Clase 08 Implementación de Controladores.doc 30
0 2 4 6 8 10
x 104
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Nombre de archivo: Clase 08 Implementa-ción de Controladores.doc
Directorio: C:\Documents and Set-tings\CELERON02\Mis documen-tos\Materias\Control Digital\Clases\Clase 08 Implementación
Plantilla: C:\Documents and Set-tings\CELERON02\Datos de progra-ma\Microsoft\Plantillas\Normal.dot
Título: Controlador de Tiempo Finito (dead beat control)
Asunto: Autor: Aníbal Zanini Palabras clave: Comentarios: Fecha de creación: 26/03/2003 11:46:00 Cambio número: 18 Guardado el: 27/06/2006 13:11:00 Guardado por: PC-02 Tiempo de edición: 279 minutos Impreso el: 27/06/2006 13:11:00 Última impresión completa Número de páginas: 30 Número de palabras: 3.104 (aprox.) Número de caracteres: 17.076 (aprox.)