Escolar Documentos
Profissional Documentos
Cultura Documentos
LACOS
LACOS.UFPA.BR | ⃝
c 2016 ITEC-UFPA
SUMÁRIO
Apresentação da disciplina . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
EMENTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
MÓDULOS DE AULAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
AVALIAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
MATERIAIS E MÉTODOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
EXEMPLOS DE PLANTAS DIDÁTICAS “DE BOLSO” . . . . . . . . 5
Circuito eletrônico sub-amortecido . . . . . . . . . . . . . . . . . . . . . . 5
Arduino-based Robot Arm Joint . . . . . . . . . . . . . . . . . . . . . . . . . 6
Motor Tacogerador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1 MÓDULO 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1 INTRODUÇÃO AOS SISTEMAS DE TEMPO DISCRETO . 9
1.2 TRANSFORMADA Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 EQUIVALENTES DISCRETOS A PARTIR DE APROXI-
MAÇÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.1 Aproximações tipo Forward Difference, Backward
Difference e Tustin (Bilinear) . . . . . . . . . . . . . . . . . . . . . . 12
1.3.2 Efeitos da amostragem em sistemas obtidos por
aproximações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4 APROXIMAÇÃO PELO SEGURADOR DE ORDEM ZERO 17
1.5 CARACTERÍSTICAS DE RESPOSTA TEMPORAL . . . . . . 19
1.5.1 Sistemas de primeira ordem com atraso – FOPDT . 19
1.5.2 Modelagem FOPDT pela resposta ao degrau . . . . . . . 22
1.5.3 Sistemas de segunda ordem com atraso – SOPDT . . 22
1.5.4 Modelagem SOPDT pela resposta ao degrau . . . . . . . 24
1.5.5 Equivalente discreto via ZOH de um sistema SOPDT: 25
1.6 PROJETO DE CONTROLADORES DIGITAIS NO DOMÍ-
NIO Z. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.7 ATIVIDADE A01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.8 ESTABILIDADE DE SISTEMAS DISCRETOS . . . . . . . . . . . 30
1.8.1 Critério de Jury . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.9 TEOREMA DO VALOR FINAL E TEOREMA DO VALOR
INICIAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.10 ATIVIDADE A02 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2 MÓDULO 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.2 CONTROLADORES DIGITAIS BASEADOS EM CONTRO-
LADORES ANALÓGICOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.3 FORMA CANÔNICA RST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.4 “MÁSCARA” DE SINTONIA DIGITAL PARA CONTÍNUA 44
2.5 ATIVIDADE 03 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.6 CONTROLADORES RST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.6.1 Controle RST posicional . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.6.2 Controle RST incremental . . . . . . . . . . . . . . . . . . . . . . . . . 55
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3
APRESENTAÇÃO DA DISCIPLINA
EMENTA
MÓDULOS DE AULAS
AVALIAÇÃO
MATERIAIS E MÉTODOS
R = 560kΩ
R1 = 2 × 560kΩ
C = 0.1µF
/
(1 RR1 C 2 ) Kp ωn 2
G(s) = 2 / / =
s + (1 R1 C)s + (1 RR1 C 2 ) s2 + 2ξωn s + ωn 2
MOTOR TACOGERADOR
1 MÓDULO 1
1.2 TRANSFORMADA Z
∞
∑
F (z) = Z[f (t)] = Z[f (kTs )] = f (kTs )z −k (1.1)
k=0
U (z) = 1 + z −1 + z −2 + · · ·
U (z) − 1 = z −1 + z −2 + · · ·
−1 −2
U (z)−1
= z +z +···
= 1 + z −1 + z −2 + · · ·
z −1 z −1 | {z }
[ U (z) ]
U (z) − 1 = z −1 U (z) → U (z) 1 − z −1 = 1
1 z
U (z) = −1
= . (1.4)
1−z z−1
A transformada z da maioria dos sinais e sistemas fisicamente
realizáveis já foi tabelada e pode ser encontrada com grande facilidade
em livros sobre controle digital e através de uma rápida busca na Inter-
net. Para sistemas de maior ordem e complexidade é recomendável que
se utilize softwares como MATLAB, ScicosLab ou SciLab para realizar
as transformadas.
Y (s) 1
= . (1.5)
U (s) s+1
Como o sistema em (1.5) tem condições iniciais nulas (ou também por-
que é assintoticamente estável), a variável s do “domı́nio de Laplace”
pode ser considerada simultaneamente uma variável complexa e um
operador matemático, ou seja, s := d/dt. Desse modo pode-se reescre-
ver (1.5) como sendo
dy(t)
+ y(t) = u(t). (1.6)
dt
Em uma implementação digital de simulação desse sistema em
(1.6), dt é uma aproximação de um intervalo entre duas medidas de
y(t), ou seja,
1
0.8 Ts=1s
y(t)
0.6 Ts=0.1s
0.4 Ts=0.001s
0.2
0
0 2 4 6 8 10
1
0.8
u(t)
0.6
0.4
0.2
0
0 2 4 6 8 10
Tempo (s)
y(k + 1) − y(k)
+ y(k) = u(k)
Ts
y(k + 1) = [1 − Ts ] y(k) + Ts u(k) (1.9)
% Exemplo aproximaç~
ao backward difference
clear all; close all; clc;
for i=1:3,
switch i,
case 1
ts=1; % perı́odo de amostragem
nit=11; % número de iteraç~
oes
cor=’k’; % cor da linha para o gráfico
case 2
ts=0.1; % perı́odo de amostragem
nit=101; % número de iteraç~oes
cor=’r’; % cor da linha para o gráfico
case 3
ts=0.001; % perı́odo de amostragem
nit=10001; % número de iteraç~oes
cor=’b’; % cor da linha para o gráfico
end
y(1)=0; % Condiç~
ao inicial da saı́da do sistema
for k=1:nit,
y(k+1)=(1-ts)*y(k)+ts*u(k);
end
y=y(1:end-1); % exclui a ultima amostra de y
figure(1);
subplot(211),
plot(t,y,cor,’linewidth’,1.5);
if i==1, hold; end
subplot(212),
plot(t,u,’r’,’linewidth’,1.5);
end
subplot(211),
ylabel(’y(t)’);
legend(’T_s=1s’,’T_s=0.1s’,’T_s=0.001s’,0);
axis([t(1) t(end) 0 1.2]);
subplot(212),
ylabel(’u(t)’); xlabel(’Tempo (s)’);
axis([t(1) t(end) 0 1.2]);
14
d (z − 1)
y(kTs ) ≈ y(kTs ), Ts → 0,
dt Ts
1
s := (z − 1), (1.10)
Ts
que estabelece um mapa aproximado entre o plano-s e o plano-z.
No caso tipo backward difference, a Eq. (1.8) modifica-se pela
forma em que a aproximação retangular é posicionada sobre o “ponto”
do sinal que será usado (cf. Fig. 6), como se o método olhasse para
trás, tal que
d (z − 1)
y(kTs ) ≈ y(kTs − 1), Ts → 0,
dt Ts
ou mesmo
d (z − 1)
y(kTs + 1) ≈ y(kTs ), Ts → 0,
dt Ts
( )
1 z−1
s := (1.11)
Ts z
2 (z − 1)
s := (1.12)
Ts (z + 1)
possı́vel.
Confira na Tabela 2 que cada método de aproximação tem uma
complexidade especı́fica e que determina a precisão da aproximação.
Além disto, a escolha do perı́odo de amostragem pode influenciar na
localização dos pólos mapeados para o plano-z.
Na Fig. 7 é possı́vel verificar as consequências dos mapeamentos
para os três métodos de aproximação sob análise. A região hachurada
representa as possibilidades de mapeamento de pólos estáveis em s para
o domı́nio z, para os métodos Forward, Backward e Tustin.
Pelo método Forward, raı́zes no semi-plano esquerdo
do plano-s podem ser pólos instáveis (ou zeros de fase não-
mı́nima) em z (FRANKLIN et al., 1997).
Y (s) Kp e−θs
G(s) = = (1.16)
U (s) τs + 1
e−s
Gp1 (s) = , (1.17)
s+1
e−s
Gp2 (s) = . (1.18)
(s + 1)(0.1s + 1)
0.8
X: 2
Y: 0.6321
Saída
0.6
0.4
0.2
Gp1
θ τ
Gp2
0
0 2 4 6 8 10
Tempo (s)
• Tempo de subida (tr , rise time): intervalo de tempo que leva para
a saı́da ir de 10% a 90% do valor de estabilização. É diferente
para sistemas sub-amortecidos, onde considera-se o intervalo de
0% a 100%;
• Tempo de estabilização (ts , settling time): tempo para que a
saı́da entre e permaneça na faixa de ±2% do seu valor em regime
permanente.
G1=tf(1,[1 1],’inputdelay’,1);
G2=tf(1,conv([1 1],[0.1 1]),’inputdelay’,1);
[y1,t1]=step(G1,10); [y2,t2]=step(G2,10);
figure(1);
plot(t1,y1,’b’,t2,y2,’r’,’linewidth’,1.5);
legend(’G_p_1’,’G_p_2’,0);
axis([0 t2(end) 0 1.2]);
ylabel(’Saı́da’); xlabel(’Tempo (s)’);
( )
onde d = Tθs + 1 considera a contribuição do tempo morto do pro-
cesso mais o atraso do segurador.
B(z −1 ) b0 z −d
G(z −1 ) = = . (1.20)
A(z −1 ) 1 + a1 z −1
Esta forma canônica será muito utilizada durante o curso, já que a mai-
oria dos algoritmos que iremos implementar contarão com uma versati-
lidade grande justamente pela generalização de como representaremos
sinais e sistemas. Observe o elo direto entre os parâmetros b0 e a1 em
relação aos parâmetros ligados ao tempo contı́nuo na função mostrada
em (1.19).
22
∆y
Kp = . (1.21)
∆u
Constante de tempo: intervalo de tempo τ no qual a saı́da atinge
63, 2% do seu valor em regime permanente y(∞), onde
y(t + θ) =
1 [ √ ( /√ )]
1− √ e−ζωn t cos ωn 1 − ζ 2 t − tg−1 ζ 1 − ζ2 .
1 − ζ2
(1.24)
ts = 4/ζωn . (1.26)
• Percentual de overshoot, P O:
( /√ )
y(tp ) − y(∞) − πζ 1−ζ 2
PO = =e . (1.28)
y(∞)
24
Step Response
1.4
PO
+/− 2% PO2
1.2
y(∞)
1
Amplitude
0.8
0.6 T
PO
0.4
0.2
tr tp ts
θ
0
0 2 4 6 8 10 12 14 16 18 20
Time (seconds)
onde,
√
ω = ωn 1 − ζ 2, ζ < 1
α = e−ζωn Ts
β = cos(ωTs )
γ = sen(ωTs )
( )
ζωn
b0 = 1 − α β + γ (1.32)
ω
( )
ζωn
2
b1 = α + α γ−β
ω
a1 = −2αβ
a2 = α2
U (z −1 ) S(z −1 ) (s0 + s1 z −1 )
= = , (1.33)
E(z −1 ) ∆ (1 − z −1 )
(1 − zd )
s0 = ,
b0 (1.38)
s1 = a1 s0 .
27
2
c) Gc (s) = (6s+1)(4s+1)(2s+1)
(0,5s+1)
d) Gd (s) = (3s+1)(2s+1)
% Modelo continuo
Gs=tf([1],[1 1]);
step(Gs);
Gz=c2d(Gs,ts,’zoh’)
b0=Gz.num{1}(2);
a1=Gz.den{1}(2);
yr(1:10)=0; % Referencia
yr(11:100)=1; yr(101:nit)=2;
y(1)=0;
u(1)=0;
for k=2:nit,
%simula processo (modelo completo)
y(k)= -a1*y(k-1) +b0*u(k-1);
e(k)=yr(k) -y(k);
t=0:ts:nit*ts-ts;
figure(2);
subplot(211),
plot(t,yr,’:k’,t,y,’b’);
ylabel(’y(t)’);
axis([t(1) t(end) 0 max(yr)+0.2]);
legend(’Refer^
encia’,’Saı́da’,0);
subplot(212),
plot(t,u,’b’);
ylabel(’u(t)’); xlabel(’Tempo (s)’);
30
e que x0 (k) e x(k) são soluções desse sistema (1.40) quando as condições
iniciais são, respectivamente, x0 (k0 ) e x(k0 ). Pode-se então dizer que:
B(z)
G(z) = . (1.44)
α0 zn + α1 z n−1 + · · · + αn
A tabela de Jury do sistema (1.44), quando α0 > 0, é formada
32
por
α0 α1 ··· αn
αn αn−1 ··· α0
β0 β1 ···
βn−1 βn−2 ··· (1.45)
c0 c1 ···
cn−2 cn−3 ···
..
.
onde,
αn αn αn
β0 = α0 − αn ; β1 = α1 − αn−1 ; · · · ; βk = αk − αn−k
α0 α0 α0
βn−1
ck = βk − βn−1−k ; · · ·
β0
(1.46)
B(z) B(z −1 )z −1
G(z) = ou G(z −1 ) = . (1.49)
A(z) A(z −1 )
33
B(z −1 )z −1 b0 z −1 b0
G(z) = −1
= = . (1.51)
A(z ) 1 + a1 z −1 z + a1
Y (z) C(z)G(z) s0 b0
= = . (1.52)
Yr (z) C(z)G(z) + 1 z + (s0 b0 − 1)
Y (z) (1 − zd )
= . (1.53)
Yr (z) z − zd
z1 z0
linha 1 1 −zd
(1.54)
linha 2 −zd 1
linha 3 β0
(−zd )
β0 = 1 − × (−zd ) → β0 = 1 − zd 2 . (1.55)
1
De acordo com o critério de estabilidade de Jury, o sistema em
(1.53) será estável se β0 > 0, que fornece a relação elementar de que
pólos estáveis no plano-z estão contidos dentro do cı́rculo unitário.
34
Kp ωn 2
G(z −1 )
Ts
G(s) = ←→
s2
+ 2ξωn s + ωn 2 ZOH
( )
−1 b0 + b1 z −1 z −1 B(1)z −1
G(z ) = −1 −2
= . (1.58)
1 + a1 z + a2 z A(z −1 )
35
2 MÓDULO 2
2.1 INTRODUÇÃO
projetos serão generalizados pela topologia RST1 , de tal forma que toda
solução linear, será (ao menos matematicamente) realizável, em uma
malha de controle digital.
letras R, S, T, para representar filtros que operam sobre os três sinais de interesse
de uma malha de controle, i.e., sinais de erro, saı́da e referência.
39
u(k) =
∞
∑ kd
kc e(k) + ki Ts e(k) + ki Ts e(k − n) + [e(k) − e(k − 1)] .
n=1
Ts
(2.5)
u(k − 1) =
∞
∑ kd
kc e(k − 1) + ki Ts e(k − n − 1) + [e(k − 1) − e(k − 2)] .
n=0
Ts
(2.6)
tal como fora definido no Exemplo 1.3 no Módulo 1. Este foi o motivo
pelo qual o nome PI Digital foi usado, mesmo sem ser apresentada
nenhuma informação que se quer lembrasse o PI contı́nuo.
É importante destacar que não se faz necessário que se repita
sempre esta forma de obter controladores incrementais, com a elimina-
ção do somatório pelo cálculo de ∆u(k). Na verdade esta é uma carac-
terı́stica intrı́nseca de controladores de estrutura definida que possuem
ação integral no caso contı́nuo e que consequentemente vão gerar ação
incremental no caso discreto. Por exemplo, já que d/dt = s quando as
condições iniciais do controlador são nulas (i.e., descrito como função de
transferência) ou este é um sistema estável (ASTROM; WITTENMARK,
2011), a lei de controle em (2.1) pode ser reescrita como
1
U (s) = kc E(s) + ki E(s) + kd sE(s), (2.10)
s
sendo possı́vel aplicar as aproximações forward, backward ou Tustin
diretamente a partir das relações entre s e z, tal como apresentado no
Módulo 1.
!"#$!% &'()!('*%
56τ + θ7
24 = %
2 1 56τ + + θ7
+,-./%
62 4
2 1 # −θ0 2' = %
% 56τ + θ7
τ0 + 3
2 4 τθ
2" = %
65θ + τ7
6ζτ
24 = %
&,-./% 2 1 5θ + τ + 7
24
2 1 # −θ0 2' = %
% 6ζτ
τ6 0 6 + 6ζτ0 + 3
τ2 4
2" = %
6ζ
θ + 6τ +
24 = %
2 1 5θ + τ + 7 6
8-./%
24
2 1 # −θ0 2' = %
% 5θ + 6τ7
0
2 46
2" = %
92 '
43
Neste curso vamos considerar que às partes RST serão represen-
tadas por polinômios generalizados definidos no domı́nio do operador
de atraso de tempo discreto z −1 , tal que
R(z −1 ) = ∆ = 1 − z −1 ,
S(z −1 ) = T (z −1 ) = s0 + s1 z −1 + s2 z −2 .
kd = Ts s2
Ts s2
−kc − 2 = s1 → kc = −s1 − 2s2
Ts (2.15)
Ts s2 s0 + s1 + s2
−s1 − 2s2 + ki Ts + = s0 → ki =
Ts Ts
2.5 ATIVIDADE 03
B(z −1 )z −1
Y (z −1 ) = + V (z −1 ), (2.16)
A(z −1 )
tal que para uma planta de segunda ordem e sem tempo morto, a sua
forma auto-regressiva é descrita pela seguinte equação a diferenças:
y(k) B(z −1 )z −1
G(z −1 ) = = (2.18)
u(k) A(z −1 )
que resulta em
y(k) B(z −1 )T (z −1 )z −1
= . (2.20)
yr (k) R(z )A(z −1 ) + B(z −1 )S(z −1 )z −1
−1
B(z −1 )T (z −1 )z −1
GM F (z −1 ) = . (2.21)
R(z −1 )A(z −1 ) + B(z −1 )S(z −1 )z −1
B(z −1 )T (z −1 )z −1
GM F (z −1 ) = , (2.22)
Hc (z −1 )Ho (z −1 )
B(z −1 )T (z −1 )z −1 B(z −1 )T (z −1 )z −1
= . (2.23)
R(z −1 )A(z −1 ) + B(z −1 )S(z −1 )z −1 Hc (z −1 )Ho (z −1 )
1 Linear
Quadratic Gaussian: fusão do LQR com Filtro de Kalman.
1 Wikipedia.org:
“Diophantine refers to the Hellenistic mathematician of the 3rd
century, Diophantus of Alexandria, who made a study of such equations and was
one of the first mathematicians to introduce symbolism into algebra. The mathe-
matical study of Diophantine problems that Diophantus initiated is now called Di-
ophantine analysis.”
51
B(z −1 )T (z −1 )z −1 B(z −1 )T (z −1 )z −1
= ,
R(z −1 )A(z −1 ) −1
+ B(z )S(z )z −1 −1 Hc (z −1 )Ho (z −1 )
T (z −1 ) = tof f Ho (z −1 ), (2.27)
Hc (1)
tof f = , (2.29)
B(1)
• Modelo do processo:
1 B(z −1 )z −1 0.09516z −1
−−−−−→ G(z −1 ) =
ZOH
G(s) = −1
= .
s + 1 Ts =0.1s A(z ) 1 − 0.9048z −1
Hc (s) −−−−−→ Hc (z −1 ),
ZOH
Ts =0.1s
• HM F (z −1 ) = Ho (z −1 )Hc (z −1 ) = 1 + h1 z −1 + h2 z −2 + h3 z −3 ;
Hc (1)
• tof f = B(1) ;
• T (z −1 ) = tof f Ho (z −1 ) = t0 + t1 z −1 ;
• A solução da equação de Diophantine envolvida neste problema
requer o aparecimento de termos até ordem três, por cause de h3 .
Considerando que nr = nHM F −1, então uma solução é R(z −1 ) =
1 Tempo real: tanto no caso de soft realtime quanto hard realtime, sendo este
1 + h1 z −1 + h2 z −2 + h3 z −3 =
(1 + r1 z −1 + r2 z −2 )(1 + a1 z −1 ) + b0 s0 z −1 ,
h3
r2 = ,
a1
h2 − r2
r1 = ,
a1
r0 = 1 ,
h1 − a1 − r1
s0 = .
b0
1.5
Output
y (t)
r
0.5
y(t)
yobj(t)
0
0 2 4 6 8 10
1.5
1
Control
0.5
0
0 2 4 6 8 10
Time (s)
R(z −1 ) = ∆,
(2.31)
R(z −1 )u(k) = T (z −1 )yr (k) − S(z −1 )y(k),
1 y(k) 1 B(z −1 )z −1
= (2.32)
∆ u(k) ∆ A(z −1 )
B(z −1 )T (z −1 )z −1 B(z −1 )T (z −1 )z −1
= . (2.37)
R(z −1 )∆A(z −1 ) + B(z −1 )S(z −1 )z −1 Hc (z −1 )Ho (z −1 )
• Modelo do processo:
G(s) ←→ G(z −1 ).
ZOH
Ts =0.1s
58
( )( )
HM F (z −1 ) = 1 + r1 z −1 1 + ā1 z −1 + ā2 z −2 + ā3 z −3
( )( )
+ b̄0 s0 + s1 z −1 + s2 z −2 z −1
( ) ( )
= 1 + ā1 + b̄0 s0 + r1 z −1 + ā2 + r1 ā1 + b̄0 s1 z −2
( )
+ ā3 + r1 ā2 + b̄0 s2 z −3 + (r1 ā3 ) z −4
h4 h3 − (ā3 + r1 ā2 )
r1 = ; s2 =
ā3 b̄0
h2 − (ā2 + r1 ā1 ) h1 − (ā1 + r1 )
s1 = ; s0 =
b̄0 b̄0
59
REFERÊNCIAS