Documente Academic
Documente Profesional
Documente Cultură
Conceitos Básicos:
• Influência dos parâmetros do controlador Avanço/Atraso.
1
Controlador em Avanço/Atraso
24 de Maio de 2018
1 Introdução
O controlador em avanço/atraso (ou compensador avanço/atraso) é um contro-
lador que possui um pólo e um zero.
Pode ser encontrado na forma
s+z
K(s) = K
s+p
ou na forma padrão
αT s + 1
K(s) = Kc
Ts + 1
avanço atraso
t t
2
1.1 Caso com α > 1
Se α > 1, o zero está mais próximo do eixo imaginário.
|K(jω)|dB
∠K(jω)
90◦
0◦ ω
|K(jω)|dB
∠K(jω)
90◦
0◦ ω
3
1.2 Caso com α < 1
Se α < 1, o pólo está mais próximo do eixo imaginário.
|K(jω)|dB
ω
∠K(jω)
0◦ ω
−90◦
|K(jω)|dB
ω
∠K(jω)
0◦ ω
−90◦
4
2 Influência dos parâmetros do controlador
Cada parâmetro tem uma influência diferente no comportamento dinâmico do
controlador:
r(t) αT s + 1 y(t)
+ Kc · P (s)
− Ts + 1
H(s)
5
3 Análise do controlador em avanço
Com o controlador em avanço têm-se o avanço das respostas em frequência, um
aumento da banda de passagem e um valor maior da frequencia de cruzamento
de ganho. Podemos também aproveitar a fase positiva do controlador para sin-
tonizar com a fase na frequência de cruzamento de ganho da planta, aumentando
assim a margem de fase e consequentemente a tolerância do sistema a atrasos.
Para simplificar a análise, considerando realimentação unitária L(s) = K(s)∗
P (s) e lembrando que o diagrama de Bode do produto de K(s) · P (s) pode ser
obtido pela soma dos diagramas de Bode de K(s) e P (s), temos que:
Akmax ωcgf
ωcga ω ωcga ω ωcga ω
erro
−90◦ MFd
MFa MFf
−180◦
−270◦
6
4 Análise do controlador em atraso
Com o controlador em atraso têm-se o atraso das respostas em frequência, uma
diminuição da banda de passagem e um valor menor da frequencia de cruzamento
de ganho. Agora, como a fase do controlador é negativa, é preciso minimizar o
efeito da fase do controlador na margem de fase.
ωcga ωcga
ωcga ω Ak ω ωcgf ω
0◦ ω ω ω
erro
−90◦ MFd
MFf
MFa
◦
−180
−270◦
7
5 Fórmulas para o controlador em avanço
Calculando a função resposta em frequência do controlador, temos:
αT jω + 1
K(jω) =
T jω + 1
1 + αT jω
=
1 + T jω
1 + αT jω 1 − T jω
= ∗
1 + T jω 1 − T jω
1 − T jω + αT jω + αT 2 ω 2
=
1 + T 2 ω2
2 2
1 + αT ω + jT ω(α − 1)
=
1 + T 2 ω2
p
(1 + αT 2 ω 2 )2 + T 2 ω 2 (α − 1)2
|K(jω)| =
T 2 ω2 + 1
T ω(α − 1)
∠K(jω) = tan−1 −0
1 + αT 2 ω 2
| {z }
φ
e agora podemos calcular em que frequência ωkmax ocorre a fase máxima φkmax
do controlador.
d∠K(jω)
=0
dω
1 dφ
· =0
1 + φ2 dω
dφ
Desta forma, como a fase φ 6= 0, somente a derivada dω que deverá ser nula.
dφ
=0
dω
8
dφ
=0
dω
d T ω(α − 1)
=0
dω 1 + αT 2 ω 2
d
T ω(α − 1)(1 + αT 2 ω 2 )−1 = 0
dω
2αT 2 ω 2
T (α − 1)
1− =0
1 + αT 2 ω 2 1 + αT 2 ω 2
2αT 2 ω 2
1− =0
1 + αT 2 ω 2
2αT 2 ω 2
=1
1 + αT 2 ω 2
2αT 2 ω 2 = 1 + αT 2 ω 2
2αT 2 ω 2 − αT 2 ω 2 = 1
αT 2 ω 2 = 1
1 1
ωkmax = √ T = √
T α ωkmax α
9
Substituindo a frequência ωkmax encontrada na equação do módulo |K(jω)|
do controlador encontramos a amplitude Akmax para esta frequência em que
ocorre a fase máxima do controlador:
p
(1 + αT 2 ω 2 )2 + T 2 ω 2 (α − 1)2
|K(jω)| =
T 2 ω2 + 1
s
2 2 2
2 1 1
1 + αT T α √ + T2 T√ α
(α − 1)2
Akmax = |K(jωkmax )| = 2
1
T2 T
√
α
+1
q 2
1 + αT 2 T 12 α + T 2 T 12 α (α − 1)2
= 1
T2 T 2α + 1
q
2
(1 + 1) + α1 (α − 1)2
= 1
α +1
q
22 + α1 (α − 1)2
= 1
α +1
q
4 + α1 (α2 − 2α + 1)
= 1
α +1
q
4 + α1 (α2 − 2α + 1)
= 1
α +1
q
4α+α2 −2α+1
α
= 1+α
α
q
α2 +2α+1
α
= 1+α
α
q
(α+1)2
α
= 1+α
α
s
(α + 1)2 α2
=
α (1 + α)2
√
= α
√
Akmax = |K(jωkmax )| = α
10
que em decibéis é
√
Akmax = |K(jωkmax )|dB = 20 · log α
1
Akmax = |K(jωkmax )|dB = 20 · log α 2
1
Akmax = |K(jωkmax )|dB = 20 · log α
2
Akmax = |K(jωkmax )|dB = 10 · log α
T ω(α − 1)
−1
arg [K(jω)] = tan
1 + αT 2 ω 2
1
T T α (α − 1)
√
φkmax = arg [K(jωkmax )] = tan−1 2
1
1 + αT 2 T √ α
1
!
√ (α − 1)
α
= tan−1
1 + αT 2 T 12 α
√1 (α − 1)
!
−1 α
= tan
1+1
−1 α−1
= tan √
2 α
−1 α−1
φkmax = tan √
2 α
11
Por Pitágoras temos que a hipotenusa h é igual:
h2 = c2op + c2ad
√ 2
h2 = (α − 1)2 + 2 α
h2 = (α − 1)2 + 4α
h2 = α2 − 2α + 1 + 4α
h2 = α2 + 2α + 1
h2 = (α + 1)2
h=α+1
cop α−1
sin φkmax = =
h α+1
Ou ainda que:
−1 α−1
φkmax = sin
α+1
1 + sin φkmax
α=
1 − sin φkmax
12
6 Fórmulas para o controlador em atraso
ωcga ωcga
ωcga ω Ak ω ωcgf ω
0◦ ω ω ω
erro
◦
−90 MFf
MFa
−180◦
−270◦
αT sz + 1 = 0
αT sz = −1
1
sz = −
αT
1
|sz | =
αT
Podemos então escrever o valor dos parâmetros α, T do controlador a partir
da frequência de cruzamento de ganho através da expressão:
1
ωcgf = 10
αT
13
Podemos também obter o valor da amplitude do controlador Ak que influ-
encia no resultado da frequencia de cruzamento de ganho futura ωcgf .
|K(s → ∞)| = Ak
αT s + 1
Ak = lim
s→∞ T s + 1
Ak = α
AkdB = 20 log α
14
7 Procedimento projeto em avanço
1. calcular Kc pelo erro estacionário.
2. obter diagrama de Bode de Kc · P (s) · H(s).
3. obter a margem de fase atual MFa .
4. calcular φkmax = MFd + φsegurança − MFa .
1 + sin φkmax
α=
1 − sin φkmax
Akmax = 10 · log α
1
T =√
αωcgf
9. verificar os resultados.
15
8 Procedimento projeto em atraso
1. calcular Kc pelo erro estacionário.
2. obter diagrama de Bode de Kc · P (s) · H(s)
3. calcular a fase φL que garanta a margem de fase desejada MFd .
Ak = −|Kc P (jωcgf )|
10
T =
αωcgf
8. verificar resultados.
16
9 Exercı́cio
Dado a planta abaixo, projetar um controlador em avanço e depois um contro-
lador em atraso para o sistema com R.U.N. para atingir uma margem de fase
mı́nima de 30◦ e um erro estacionário a rampa unitária de 0.5 para a planta
abaixo.
2
P (s) =
s(s + 1)(s + 2)
Para calcular o erro estacionário, usaremos o sistema de malha aberta.
Vemos que o sistema de malha aberta é do tipo 1. Logo, pela tabela abaixo
17
temos que:
1
eest =
Kv
1
0.5 =
Kv
1
0.5 =
lim [sL(s)]
s→0
1
lim [sL(s)] =
s→0
0.5
2Kc αT s + 2Kc
lim s =2
s→0 s(T s + 1)(s + 1)(s + 2)
2Kc αT s + 2Kc
lim =2
s→0 (T s + 1)(s + 1)(s + 2)
2Kc
=2
2
Kc = 2
18
No MATLAB.
Projeto em avanço.
clear all
close all
kc=2;
MFd=30*pi/180;
fis=20*pi/180; %valor final utilizado
Np=2;
Dp=poly([0 -1 -2]);
P=tf(Np,Dp);
margin(kc*P)
MFa=11.4*pi/180;
fik=MFd-MFa+fis;
alpha=(1+sin(fik))/(1-sin(fik));
Ak=10*log10(alpha)
% break
wcgf=1.67;
T=1/(sqrt(alpha)*wcgf);
Nk=[alpha*T 1];
Dk=[T 1];
K=tf(Nk,Dk);
margin(kc*K*P)
Figura 1:
19
Projeto em atraso.
clear all
close all
kc=2;
MFd=30;
fis=3;
Np=2;
Dp=poly([0 -1 -2]);
P=tf(Np,Dp);
margin(kc*P)
fik=-180+MFd+fis
% break
Ak=-6.17;
wcgf=0.7;
alpha=10^(Ak/20)
T=10/(alpha*wcgf)
Nk=[alpha*T 1];
Dk=[T 1];
K=tf(Nk,Dk);
margin(kc*K*P)
Figura 2:
20