Este documento presenta diferentes propuestas de controladores para mejorar la respuesta transitoria de sistemas. Discute los controladores PD, que añaden una compensación derivativa ideal para acelerar la respuesta, y controladores de adelanto de fase, que aproximan la diferenciación usando una red pasiva. También analiza un ejemplo numérico para diseñar un controlador PD que cumpla ciertos requisitos de sobrepaso y tiempo de asentamiento.
2. Resumen
Parte I:Parte I:
Propuestas de “nuevos” controladores:
PI + ceros:
Ventaja: e(∞)=0, Desventaja: respuesta + lenta
Por atraso de fase (Lag Compensator):
s
K
K
sK
s
K
KsC
+
=+= 1
2
1
2
1)(
Cero cerca del polo
Polo en la origen
Por atraso de fase (Lag Compensator):
Ventaja: Respuesta + rápida, Desventaja: e(∞)≠0
)(
)(
)(
c
c
ps
zsK
sC
+
+
= Pareja polo-cero
cerca de la origen
3. Contenido Parte II
Controlador PDControlador PD
Mejorar respuesta transitoria
Controlador D ideal
Ventajas
Desventajas
Controlador por Adelanto (Lead Compensator)
Parte III…
4. Ideas para mejorar Respuesta Transitoria
Formas de mejorar:Formas de mejorar:
1. Compensador PD (Proportional-plus-Derivative
Controller)
Añadir un diferenciador puro en la malla directa para
compensación derivativa ideal (red activa)
Diseñar una respuesta que respecta un valor deseable de
sobrepaso, con menores tiempo de asentamiento ( ↓ ts = settling
time)time)
2. Controlador por Adelanto de Fase (Lead Controller)
Hace diferenciación aproximada usando red pasiva (añade un
cero y un polo distante en la malla directa)
5. Compensación Derivativa Ideal (PD)
zssC +=)( czssC +=)(
• Selección adecuada de la ubicación para garantizar respuesta + rápida
• Modifica RL!
• Ejemplo:
)5)(2)(1(
)(
+++
=
sss
K
sGPlanta
)2( +
=
sK
Propuestas de
Controladores
PD
)5)(2)(1(
)2(
)()(
+++
+
=
sss
sK
sGsC
)5)(2)(1(
)3(
)()(
+++
+
=
sss
sK
sGsC
)5)(2)(1(
)4(
)()(
+++
+
=
sss
sK
sGsC
Zero en zc= -2
Zero en zc= -3
Zero en zc= -4
6. Compensación Derivativa Ideal (PD)
)5)(2)(1(
)(
+++
=
sss
K
sG
)5)(2)(1(
)3(
)()(
+++
+
=
sss
sK
sGsC
)5)(2)(1(
)2(
)()(
+++
+
=
sss
sK
sGsC
)5)(2)(1(
)4(
)()(
+++
+
=
sss
sK
sGsC
7. Compensación Derivativa Ideal (PD)
)5)(2)(1(
)(
+++
=
sss
K
sG
)5)(2)(1(
)3(
)()(
+++
+
=
sss
sK
sGsC
Conclusiones:
1) Partes reales + negativas
↓ ts
)5)(2)(1(
)2(
)()(
+++
+
=
sss
sK
sGsC
)5)(2)(1(
)4(
)()(
+++
+
=
sss
sK
sGsC
↓ ts
8. Compensación Derivativa Ideal (PD)
)5)(2)(1(
)(
+++
=
sss
K
sG
)5)(2)(1(
)3(
)()(
+++
+
=
sss
sK
sGsC
Conclusiones:
2) Mismo ζ
≅ OS%
)5)(2)(1(
)2(
)()(
+++
+
=
sss
sK
sGsC
)5)(2)(1(
)4(
)()(
+++
+
=
sss
sK
sGsC
≅ OS%
9. Compensación Derivativa Ideal (PD)
)5)(2)(1(
)(
+++
=
sss
K
sG
)5)(2)(1(
)3(
)()(
+++
+
=
sss
sK
sGsC
Conclusiones:
3) Mayores partes imaginarias
↓ Tp (tiempos de pico)
)5)(2)(1(
)2(
)()(
+++
+
=
sss
sK
sGsC
)5)(2)(1(
)4(
)()(
+++
+
=
sss
sK
sGsC
↓ Tp (tiempos de pico)
10. Compensación Derivativa Ideal (PD)
)5)(2)(1(
)(
+++
=
sss
K
sG
)5)(2)(1(
)3(
)()(
+++
+
=
sss
sK
sGsC
Conclusiones:
4) Cuanto más alejado esta el cero de los
polos dominantes los polos de lazo
)5)(2)(1(
)2(
)()(
+++
+
=
sss
sK
sGsC
)5)(2)(1(
)4(
)()(
+++
+
=
sss
sK
sGsC
polos dominantes los polos de lazo
cerrado se mueven más cerca de los
polos no compensados
11. Compensación Derivativa Ideal (PD)
Step Response
1.2 Cero en -2
Cero en -3
Amplitude
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
0
0.2
0.4
0.6
0.8
1
Sistema no Compensado
Cero en -4
Conclusiones:
1. Partes reales + negativas
↓ ts;
2. Mismo ζ ≅ OS%;
3. Mayores partes imaginarias
↓ Tp (tiempos de pico)
Time (sec)
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
0
)5)(2)(1(
)(
+++
=
sss
K
sGPlanta
Propuestas de
Controladores
PD
)5)(2)(1(
)2(
)()(
+++
+
=
sss
sK
sGsC
)5)(2)(1(
)3(
)()(
+++
+
=
sss
sK
sGsC
)5)(2)(1(
)4(
)()(
+++
+
=
sss
sK
sGsC
Zero en zc= -2
Zero en zc= -3
Zero en zc= -4
Ventajas principales:
• Menores ts,
• Menores OS%.
↓ Tp (tiempos de pico)
4. Cuanto más alejado esta el cero
de los polos dominantes los
polos de lazo cerrado se
mueven más cerca de los polos
no compensados
16. Compensación Derivativa Ideal (PD)
)6)(4( ++ sss
KR(s)
Y(s)E(s)+
-
Otro ejemplo:
↓
newTs =
1.0899
>> newsigma=4/newTs
newsigma =
0
1
2
3
0.504
Root Locus
ImaginaryAxisNuevo σ para
el Nuevo T !
α=120.23o
θ=59.74o
Requerimientos: %OS < 16%, 3 × ↓ ts
Solución:
5. Descubriendo la nueva posición
del polo de lazo cerrado para el nuevo ts
newsigma =
3.6702
>> theta=acos(zeta)
theta =
1.0427
>> theta*180/pi
ans =
59.7438
>>
-9 -8 -7 -6 -5 -4 -3 -2 -1 0 1
-3
-2
-1
0
0.504
Real Axis
ImaginaryAxis
el Nuevo Ts !
nd
s
w
T
ζσ
44
==
θζ cos=
17. Compensación Derivativa Ideal (PD)
)6)(4( ++ sss
KR(s)
Y(s)E(s)+
-
Otro ejemplo:
↓
>> newomega=newsigma*tan(theta)
newomega =
6.2918
>> hold on;
5
10
15
0.504
Root Locus
ImaginaryAxis
ωd
θ
ζ
-3.6702 + j6.2918
Requerimientos: %OS < 16%, 3 × ↓ ts
Solución:
5. Descubriendo la nueva posición
del polo de lazo cerrado para el nuevo ts
>> hold on;
>> plot([-newsigma
0.2],[newomega newomega],'b:')
>> plot([-newsigma -newsigma],[-
newomega newomega],'b:')
-12 -10 -8 -6 -4 -2 0 2 4 6 8
-15
-10
-5
0
0.504
ImaginaryAxis
-σd
θ
Punto deseado en el RL!
Pero este lugar esta fuera del RL…
18. Punto deseado
Compensación Derivativa Ideal (PD)
Otro ejemplo:
↓
)6)(4( ++ sss
KR(s)
Y(s)E(s)+
-
3
4
5
6
7
0.504
RootLocus
Punto deseado
en el nuevo RL!
-3.6702 + j6.2918
Requerimientos: %OS < 16%, 3 × ↓ ts
Solución:
6. Determinando la posición
deseada para el cero del PD:
-8 -7 -6 -5 -4 -3 -2 -1 0 1
-1
0
1
2
3
RealAxis
θp3=67.3o
θp2=84.3o
θp1=118.2o
)12(180)()( +±=−∠−−∠ ∑∑ ipscs
n
o
j
m
i
19. 6
7
0.504
Root Locus
Punto deseado
en el nuevo RL!
-3.6702 + j6.2918
>> th_p1=atan2(newomega,-newsigma)
th_p1 =
2.0626
>> th_p1*180/pi
ans =
118.1757
6. Determinando la posición deseada para el cero del PD
)12(180)()( +±=−∠−−∠ ∑∑ ipscs
n
o
j
m
i
2
3
4
5
6 -3.6702 + j6.2918118.1757
>> th_p2=atan2(newomega,4-newsigma)
th_p2 =
1.4710
>> th_p2*180/pi
ans =
84.2838
>> th_p3=atan2(newomega,6-newsigma)
th_p3 =
1.1749
>> th_p3*180/pi
-8 -7 -6 -5 -4 -3 -2 -1 0 1
-1
0
1
Real Axis
θp1θp2θp3
>> th_p3*180/pi
ans =
67.3164
>> sum_th_p=th_p1+th_p2+th_p3
sum_th_p =
4.7085
>> sum_th_p*180/pi
ans =
269.7759
>>
20. )12(180)()( +=−∠−−∠ ∑∑ ipscs
n
o
j
m
i
6
7
0.504
Root Locus
Punto deseado
en el nuevo RL!
-3.6702 + j6.2918
>> th_p1=atan2(newomega,-newsigma)
th_p1 =
2.0626
>> th_p1*180/pi
ans =
118.1757
6. Determinando la posición deseada para el cero del PD
2
3
4
5
6 -3.6702 + j6.2918
=118.2o
118.1757
>> th_p2=atan2(newomega,4-newsigma)
th_p2 =
1.4710
>> th_p2*180/pi
ans =
84.2838
>> th_p3=atan2(newomega,6-newsigma)
th_p3 =
1.1749
>> th_p3*180/pi
-8 -7 -6 -5 -4 -3 -2 -1 0 1
-1
0
1
Real Axis
θp3=67.3o
θp2=84.3o
θp1=118.2
>> th_p3*180/pi
ans =
67.3164
>> sum_th_p=th_p1+th_p2+th_p3
sum_th_p =
4.7085
>> sum_th_p*180/pi
ans =
269.7759
>>
21. 6
7
0.504
Root Locus
Punto deseado
en el nuevo RL!
-3.6702 + j6.2918
>> sum_th_p=th_p1+th_p2+th_p3
sum_th_p =
4.7085
>> sum_th_p*180/pi
)12(180)()( +=−∠−−∠ ∑∑ ipscs
n
o
j
m
i
6. Determinando la posición deseada para el cero del PD
2
3
4
5
6 -3.6702 + j6.2918>> sum_th_p*180/pi
ans =
269.7759
>>
>> th_c=sum_th_p-pi
th_c =
1.5669
>> th_c*180/pi
ans =
89.7759
>>
=118.2o
θc=89.8o
-8 -7 -6 -5 -4 -3 -2 -1 0 1
-1
0
1
Real Axis
θp3=67.3o
θp2=84.3o
θp1=118.2
θc=89.8
σDeterminado el punto σ
Para el cero del PD!
22. 6
7
0.504
Root Locus
Punto deseado
en el nuevo RL!
-3.6702 + j6.2918
( )oo
sigma
7759.89180tan
3702.3
2918.6
−=
−
6. Determinando la posición deseada para el cero del PD
2
3
4
5
6 -3.6702 + j6.2918
=118.2o
θc=89.8o
El PD se queda:
( )sigma
7759.89180tan
3702.3
−=
−
>> sigma = newsigma - ( newomega /
tan(pi -th_c) )
sigma =
3.3948
>>
)3948.3()( += sKsC
-8 -7 -6 -5 -4 -3 -2 -1 0 1
-1
0
1
Real Axis
θp3=67.3o
θp2=84.3o
θp1=118.2
θc=89.8
σ
)6)(4(
)3948.3(
)()(
++
+
=
sss
sK
sGsC
)3948.3()( += sKsC
y:
29. Compensación Derivativa Ideal (PD)
Idea original:
Mejorar (acelerar) la respuesta transitoria 0.6
0.8
1
1.2
1.4
Step Response
Amplitude
no compensado
PD
Realización mediante Controlador derivativo (PD):
Desventajas:
1. Requiere circuito activo para realizar la diferenciación;
2. Diferenciación puede generar malos resultados en caso de procesos
ruidosos
Por ejemplo, suponga que tenemos el siguiente señal:
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
0.2
0.4
Time (sec)
PD
Por ejemplo, suponga que tenemos el siguiente señal:
donde:
sin(t) = señal original de frecuencia = 1 rad/s y amplitud = 1;
an = amplitud del ruido, de frecuencia = 100 rad/s.
ruído
n wtatty )sen()sen()( ⋅+=
30. 1
2
y(t)
2. Diferenciación puede generar malos
resultados en caso de procesos ruidosos
Por ejemplo, suponga que tenemos el siguiente
Compensación Derivativa Ideal (PD)
0 1 2 3 4 5 6 7
-2
-1
0
t(s)
1
2
dy(kT)
Por ejemplo, suponga que tenemos el siguiente
señal:
donde:
sin(t) = señal original de frecuencia = 1 rad/s y
amplitud = 1;
an = amplitud del ruido, de frecuencia = 100
rad/s.
Si aplicamos la derivada por sobre el señal anterior,
mismo que si la amplitud del ruido corresponda a
ruído
n wtatty )sen()sen()( ⋅+=
0 1 2 3 4 5 6 7
-2
-1
0
t(s) T=0.01
mismo que si la amplitud del ruido corresponda a
solamente 1% de amplitud del señal original (an =
0,01), tendremos como respuesta el señal como
mostrado en la parte de debajo de la figura al lado
Perciba que la derivada (continua) de este señal
nos conduce a:
)cos()cos(
)(
wtwat
dt
tdy
n ⋅⋅+= “derivative kicks”
31. Compensación Derivativa Ideal (PD)
Idea original:
Mejorar (acelerar) la respuesta transitoria
Realización mediante Controlador derivativo (PD):Realización mediante Controlador derivativo (PD):
Desventajas:
1. Requiere circuito activo para realizar la diferenciación;
2. Diferenciación puede generar malos resultados en caso de procesos
ruidosos
K2s
+=+=
2
1
212)(
K
K
sKKsKsC
R(s) Y(s)
E(s)+
-
K1 G(s)
U(s)
Derivativo
Proporcional
+
+
32. SISOTOOL SISO Design Tool.SISOTOOL opens the SISO Design Tool. This Graphical User
Interface lets you design single-input/single-output
(SISO) compensators by graphically interacting with the
root locus, Bode, and Nichols plots of the open-loop
system. To import the plant data into the SISO Tool,
select the Import item from the File menu. By default,
For example
>> sisotool({'nichols','bode'})select the Import item from the File menu. By default,
the control system configuration is
r -->[ F ]-->O--->[ C ]--->[ G ]----+---> y
- | |
+-------[ H ]----------+
where C and F are tunable compensators.
SISOTOOL(G) specifies the plant model G to be used in the
SISO Tool. Here G is any linear model created with TF,
ZPK, or SS.
SISOTOOL(G,C) and SISOTOOL(G,C,H,F) further specify values
for the feedback compensator C, sensor H, and prefilter
F. By default, C, H, and F are all unit gains.
>> sisotool({'nichols','bode'})
Opens a SISO Design Tool showing the Nichols
plot and Bode diagrams for the open loop
CGH.
SISOTOOL(INITDATA) initializes the SISO
Design Tool with more general control
system configurations. Use SISOINIT to
build the initialization data structure
INITDATA.
SISOTOOL(SESSIONDATA) opens the SISO Design
Tool with a previously saved session where
SESSIONDATA is the MAT file for the saved
session.F. By default, C, H, and F are all unit gains.
SISOTOOL(VIEWS) or SISOTOOL(VIEWS,G,...) specifies the
initial set of views for graphically editing C and F.
You can set VIEWS to any of the following strings or
combination of strings:
'rlocus' Root locus plot
'bode' Bode diagram of the open-loop response
'nichols' Nichols plot of the open-loop response
'filter' Bode diagram of the prefilter F
session.
See also sisoinit, ltiview, rlocus, bode,
nichols.
Reference page in Help browser
doc sisotool
>>