SC2 PDF
SC2 PDF
SC2 PDF
LACOS
LACOS.UFPA.BR | ⃝
c 2017 ITEC-UFPA
SUMÁRIO
Apresentação da disciplina . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
EMENTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
ORGANIZAÇÃO DO CURSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
MATERIAIS E MÉTODOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
EXEMPLOS DE PLANTAS DIDÁTICAS “DE BOLSO” . . . . . . . . 6
Circuito RC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Circuito eletrônico sub-amortecido . . . . . . . . . . . . . . . . . . . . . . 7
Arduino-based Robot Arm Joint . . . . . . . . . . . . . . . . . . . . . . . . . 8
Motor Tacogerador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
AVALIAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1 CAPÍTULO 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1 INTRODUÇÃO AOS SISTEMAS DE TEMPO DISCRETO . 13
1.2 TRANSFORMADA Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3 EQUAÇÕES A DIFERENÇAS . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.1 Solução de equações a diferenças . . . . . . . . . . . . . . . . . . . 17
1.3.2 Análise das soluções das equações a diferenças . . . . . 20
1.4 EQUIVALENTES DISCRETOS A PARTIR DE APROXI-
MAÇÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.4.1 Aproximações tipo Forward Difference, Backward
Difference e Tustin (Bilinear) . . . . . . . . . . . . . . . . . . . . . . 22
1.4.2 Efeitos da amostragem em sistemas obtidos por
aproximações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.5 APROXIMAÇÃO PELO SEGURADOR DE ORDEM ZERO 28
1.6 CARACTERÍSTICAS DE RESPOSTA TEMPORAL . . . . . . 30
1.6.1 Sistemas de primeira ordem com atraso – FOPDT . 30
1.6.2 Modelagem FOPDT pela resposta ao degrau . . . . . . . 32
1.6.3 Sistemas de segunda ordem com atraso – SOPDT . . 33
1.6.4 Modelagem SOPDT pela resposta ao degrau . . . . . . . 34
1.6.5 Equivalente discreto via ZOH de um sistema SOPDT: 35
1.7 ESTABILIDADE DE SISTEMAS DISCRETOS . . . . . . . . . . . 37
1.7.1 Critério de Jury . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.8 TEOREMA DO VALOR FINAL E TEOREMA DO VALOR
INICIAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
1.9 PROBLEMAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2 CAPÍTULO 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.2 CONTROLADORES DIGITAIS BASEADOS EM CONTRO-
LADORES ANALÓGICOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.3 FORMA CANÔNICA RST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.4 “MÁSCARA” DE SINTONIA DIGITAL PARA CONTÍNUA 50
2.5 CONTROLADORES DIGITAIS BASEADOS NO DOMÍ-
NIO W . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.6 COMPENSADORES LEAD E LAG . . . . . . . . . . . . . . . . . . . . . 58
2.6.1 Compensador lead-lag de primeira ordem . . . . . . . . . . 59
2.6.2 Conceitos de estabilidade e desempenho robustos . . 60
2.7 PERTURBAÇÕES DETERMINÍSTICAS E ESTOCÁSTI-
CAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.7.1 Perturbação de carga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.7.2 Perturbação tipo ruı́do de medição . . . . . . . . . . . . . . . . . 65
2.7.3 Perturbação estocástica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.8 PROBLEMAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3 CAPÍTULO 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.2 SISTEMAS MIMO EM ESPAÇO DE ESTADOS . . . . . . . . . . 73
3.3 RELAÇÃO ENTRE ESPAÇO DE ESTADOS E FUNÇÃO
DE TRANSFERÊNCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.4 ESCOLHA DAS VARIÁVEIS DE ESTADO . . . . . . . . . . . . . . . 75
3.5 MATRIZ DE TRANSIÇÃO DE ESTADOS . . . . . . . . . . . . . . . 79
3.6 CONTROLE POR REALIMENTAÇÃO DE ESTADOS . . . . 79
3.6.1 Controlabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.6.2 Observabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.6.3 Regulação via realimentação de estados . . . . . . . . . . . . 82
3.6.4 Determinação do ganho de realimentação pelo mé-
todo de Ackermann . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4 CAPÍTULO 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.2 PROJETO DE CONTROLADORES NO ESPAÇO DE ES-
TADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.3 GENERALIZAÇÃO DO PROCEDIMENTO DE AUGMEN-
TAÇÃO COM INTEGRADOR . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.3.1 Augmentação pela variação do sinal de controle,
ua (t): . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.4 OBSERVADOR DE ESTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.4.1 Teste de observador de estados . . . . . . . . . . . . . . . . . . . . . 103
4.5 COMPENSADOR DINÂMICO E O PRINCÍPIO DA SE-
PARAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.5.1 Compensador dinâmico de regulação . . . . . . . . . . . . . . . 114
4.5.2 Compensador dinâmico no caso servo . . . . . . . . . . . . . . 115
4.6 EQUIVALENTE DISCRETO POR ZOH EM ESPAÇO DE
ESTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.7 COMPENSADOR DINÂMICO DIGITAL . . . . . . . . . . . . . . . . . 116
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5
APRESENTAÇÃO DA DISCIPLINA
EMENTA
ORGANIZAÇÃO DO CURSO
MATERIAIS E MÉTODOS
Como uma forma de dar suporte aos alunos que não possuı́rem
conhecimento prévio e sólido em microcontroladores, o curso de SC2,
por meio dos recursos desenvolvidos pelo Laboratório de Controle e
Sistemas (LACOS, lacos.ufpa.br), poderá auxiliar projetos baseados
em microcontroladores usados pelas plataformas de desenvolvimento
Arduino (www.arduino.cc).
No site do LACOS já existe uma série de projetos previamente
testados que compreendem desde a construção de protótipos didáticos
de bolso, que vão de dispositivos puramente eletrônicos a dispositivos
mecatrônicos e que causam um efeito visual bem mais prazeroso na
hora de aplicar os conceitos de modelagem, análise, projeto e aplicação
de sistemas de controle e estimação.
O principal software de simulação numérica a ser usado no curso
será o MATLAB (www.mathworks.com). No entanto, por se tratar
de um software bastante caro, existe um similar gratuito que poderá
ser utilizado sem grandes adaptações dos códigos para MATLAB. Este
software gratuito é o SciLab e pode ser obtido no site www.scilab.org.
Tanto o MATLAB quanto o SciLab podem usufruir do Arduino
como interface de aquisição de dados e controle (A-D, D-A) de baixo
custo. Especificamente para a disciplina de SC2 há disponı́vel a biblio-
teca de aquisição de dados DaqDuino para MATLAB. Esta pode ser
obtida no site do LACOS ou no da Mathworks:
https://www.mathworks.com/matlabcentral/fileexchange/50784-daqduino
CIRCUITO RC
AmpOps.
Observe, na Fig. 2, uma imagem de um sistema eletrônico sub-
amortecido pronto, construı́do sobre uma placa de circuito universal.
Esse sistema da Fig. 2 opera com uma fonte CC de 12V para alimen-
tar os amplificadores e aceita entrada CC ou PWM e fornece saı́da
analógica. Os sinais de entrada e saı́da estão limitados a ±5V .
Um circuito-exemplo para construir um processo sub-amortecido
com base em realização de segunda ordem com AmpOps é apresentado
na Fig. 3. Note que para definir o comportamento dinâmico do seu
processo e a escolha dos componentes, você pode se guiar de acordo
com os seguintes parâmetros e equações:
R = 560kΩ
R1 = 2 × 560kΩ
C = 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
AVALIAÇÃO
P1 + P2
MF =
2
11
1 CAPÍTULO 1
ωs = 6rad/s = 2πfs ,
3 1
fs = Hz = ,
π Ts
π
Ts = seg.
3
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 (z) b0 z + b1
G(z) = = 2 ,
U (z) z + a1 z + a2
( 2 )
z + a1 z + a2 Y (z) = (b0 z + b1 ) U (z). (1.5)
for k=1:101,
y(k) = -a1*y(k-1) -a2*y(k-2) +b0*u(k-1) +b1*u(k-2);
u(k) = 1;
end
float y = 0.0;
float u[3] = 0.0;
float e[4] = 0.0;
float yr = 0.0;
// Controller parameters
const float ts = 0.1; // Sampling period
const float Kc = 0.8; // Proportional gain
const float Ti = 0.2; // Integral period
const float Td = 1.2; // Derivative period
const float q0 = Kc + (Kc*Td/ts);
const float q1 = -Kc +(Kc*ts/Ti) -(2*Kc*Td/ts);
const float q2 = Kc*Td/ts;
void setup()
Serial.begin(9600);
Serial.setTimeout(5); // How long to wait till parseFloat is over
void loop()
if (Serial.available())
y = Serial.parseFloat();
yr = Serial.parseFloat();
e[0] = yr-y;
u[0] = u[1] +q0*e[0] +q1*e[1] +q2*e[2]; // <<<<<<< LEI DE CONTROLE
Serial.print(u[0],4);
λk + a1 λk−1 + a2 λk−2 = 0,
( )
λk−2 λ2 + a1 λ + a2 = 0,
λ2 + a1 λ + a2 = 0. (1.9)
G(z) = YU (z)
(z) b0
= z+a 1
y(k + 1) + a1 y(k) = b0 u(k)
y(k) + a1 y(k − 1) = b0 u(k − 1)
y(k) = −a1 y(k − 1) + b0 u(k − 1)
k ∑[
k−1
i
]
y(k) = (−a1 ) y(0) + b0 (−a1 ) u(k − i − 1)
i=0
Desse modo,
z −( Ts ) = e−θs ,
θ
(1.16)
z −1 = e−jωTs . (1.17)
Y (s) 1
= . (1.18)
U (s) s+1
dy(t)
+ y(t) = u(t). (1.19)
dt
Em uma implementação digital de simulação desse sistema em
(1.19), dt é uma aproximação de um intervalo entre duas medidas de
y(t), ou seja,
y(k + 1) − y(k)
+ y(k) = u(k)
Ts
y(k + 1) = [1 − Ts ] y(k) + Ts u(k) (1.22)
% 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]);
24
1
0.8 T =1s
s
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)
d (z − 1)
y(kTs ) ≈ y(kTs ), Ts → 0,
dt Ts
1
s := (z − 1), (1.23)
Ts
que estabelece um mapa aproximado entre o plano-s e o plano-z.
No caso tipo backward difference, a Eq. (1.21) modifica-se
pela forma em que a aproximação retangular é posicionada sobre o
“ponto” do sinal que será usado (cf. Fig. 7), como se o método olhasse
para trás, tal que
d (z − 1)
y(kTs ) ≈ y(kTs − 1), Ts → 0,
dt Ts
25
ou mesmo
d (z − 1)
y(kTs + 1) ≈ y(kTs ), Ts → 0,
dt Ts
( )
1 z−1
s := (1.24)
Ts z
2 (z − 1)
s := (1.25)
Ts (z + 1)
b) G(s) = 0, 9 × 1
2s+1 . Use Ts = 0.1s.
Y (s) Kp e−θs
G(s) = = (1.29)
U (s) τs + 1
e−s
Gp1 (s) = , (1.30)
s+1
e−s
Gp2 (s) = . (1.31)
(s + 1)(0.1s + 1)
• 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
31
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)
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)’);
32
( )
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
= . (1.33)
A(z ) 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.32).
∆y
Kp = . (1.34)
∆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.37)
ts = 4/ζωn . (1.39)
• Percentual de overshoot, P O:
( /√ )
y(tp ) − y(∞) − πζ 1−ζ 2
PO = =e . (1.41)
y(∞)
Step Response
1.4
PO
+/− 2% PO
1.2 2
y(∞)
1
Amplitude
0.8
0.6 TPO
0.4
0.2
t tp t
θ r s
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.45)
ω
( )
ζωn
2
b1 = α + α γ−β
ω
a1 = −2αβ
a2 = α 2
e que x0 (k) e x(k) são soluções desse sistema (1.46) quando as condições
iniciais são, respectivamente, x0 (k0 ) e x(k0 ). Pode-se então dizer que:
• ESTABILIDADE: a solução x0 (k) do sistema em (1.46) é estável
se para um
dado ε > 0 exista
um δ (ε, k0 ) > 0 tal que todas as solu-
ções com
x(k0 ) − x0 (k0 )
< δ sejam tais que ∥x(k) − x0 (k)∥ < ε
para k ⩾ k0 . Isto quer dizer que, dado um estı́mulo impulsivo do
tipo delta de Kronecker aplicado no instante k0 sobre o sistema
em (1.46), este será dito estável se houver decaimento de energia
entre uma condição futura e uma condição inicial x0 (k), energia
esta representada pela norma ∥x(k) − x0 (k)∥.
Um conceito mais “forte” de estabilidade é o de Estabilidade
Assintótica, definido a seguir:
B(z)
G(z) = . (1.47)
α0 z n + α1 z n−1 + · · · + αn
A tabela de Jury do sistema (1.47), quando α0 > 0, é formada
por
α0 α1 ··· αn
αn αn−1 ··· α0
β0 β1 ···
βn−1 βn−2 ··· (1.48)
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.49)
nulos nessa coluna, não há como afirmar o número de pólos ins-
táveis.
B(z) B(z −1 )z −1
G(z) = ou G(z −1 ) = . (1.52)
A(z) A(z −1 )
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.
que a do denominador,
( )
f (0) = lim 1 − z −1 F (z). (1.56)
z→∞
1.9 PROBLEMAS
a)
0.09056z + 0.08194
G(z) =
z 2 − 1.724z + 0.7408
b)
a)
0.9e−1s
G(s) =
s+1
b)
8e−2s
G(s) =
s2 + 2s + 4
41
c)
1
G(s) =
(s + 1)2
d)
(s + 2)
G(s) =
(s + 1)
1.2
u(t): entrada
y(t): saída
1
0.8
Amplitude
0.6
0.4
0.2
0
0 0.5 1 1.5 2
Tempo (s)
102
G1 (s) =
+ 2 × 0, 1 × 10s + 102
s2
1
G2 (s) =
0, 1s + 1
Bode Diagram
20
G1
0
G2
Magnitude (dB)
−20
−40
−60
−80
0
−45
Phase (deg)
−90
−135
−180
−1 0 1 2 3
10 10 10 10 10
Frequency (rad/sec)
2 CAPÍTULO 2
2.1 INTRODUÇÃO
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)
!"#$!% &'()!('*%
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 '
Neste curso vamos considerar que às partes RST serão represen-
49
R(z −1 ) = ∆ = 1 − z −1 ,
50
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
U (s) 1
= kc + ki + kd s. (2.17)
E(s) s
Y (z) C(z)G(z)
= , (2.18)
YR (z) 1 + C(z)G(z)
onde
b0 z
G(z) = , (2.19)
z 2 + a1 z + a2
s0 z 2 + s1 z + s2
C(z) = , (2.20)
z2 − z
com s0 = 1, s1 = a1 , s2 = a2 , verifique as condições que garantem a
estabilidade do sistema em malha fechada (MF).
Y (z −1 ) C(z −1 )G(z −1 )
−1
= , (2.21)
YR (z ) 1 + C(z −1 )G(z −1 )
52
onde
(b0 + b1 z −1 )z −1
G(z −1 ) = , (2.22)
1 + a1 z −1 + a2 z −2
s0 z −1 + s1 z −1 + s2z −2
C(z −1 ) = , (2.23)
1 − z −1
esboce um algoritmo que realize a simulação desta malha de controle
em linha de código de programa. Após, utilize o seu algoritmo e imple-
mente o algoritmo em linguagem MATLAB. Para isto, considere uma
planta de segunda ordem estável e subamortecida. Sintonize um contro-
lador PID que garanta uma resposta em malha fechada estável. Após,
discretize planta e controlador e teste no Simulink. Repita a simula-
ção digital por linha de código em m-file do MATLAB e compare se
Simulink e MATLAB fornecem o mesmo sinal de controle e saı́da.
1 + (Ts /2)w
z := . (2.25)
1 − (Ts /2)w
53
kp ωn2
G(s) = , (2.26)
s2 + 2ζωn s + ωn2
onde kp = 1, wn = 2 rad/s, ζ = 0, 1.
Considerando a frequência de amostragem ωs = 10ωn = 2πfs ,
aproxima-se o perı́odo de amostragem para Ts = 1/fs ≈ 0, 3s.
Realizando-se a transformação mostrada em (2.24),
T T
G(s) ←→
s
G(z) ←→
s
G(w),
ZOH Tustin
0, 1679z + 0, 1613
G(z) = , (2.27)
z 2 − 1, 558z + 0, 8869
0, 212z − 0, 188
C(z) = . (2.30)
z−1
O resultado prático do método de projeto no domı́nio w pode
ser observado na Figura 19. Nesta, observa-se que as curvas relativas
à malha de controle contı́nua (em w) são muito próximas das curvas
obtidas com a simulação discreta. Note, também, que a longo prazo
os resultados ficam defasados, tal como observado no caso em malha
aberta na Figura 18, o que torna evidente que o método possui limita-
ções devido aos problemas ligados às diferenças em fase. Plotando-se
o diagrama de Bode de G(s), G(w), G(z), pode-se verificar, na Figura
20, as diferenças de fase.
Para reproduzir este exercı́cio use o código de simulação em MA-
TLAB disponı́vel na Tabela 9.
55
1.8
1.6 1.6
1.4 1.4
1.2 1.2
1
Amplitude
Amplitude
1
0.8
0.8
0.6
0.6
0.4
0.4
0.2
G(s) G(s)
0.2
0 G(z) G(z)
G(w) G(w)
0
−0.2
0 5 10 15 20 25 30 0 0.5 1 1.5 2 2.5
Time (sec) Time (sec)
0
G(s)
1.1
G(z)
G(w)
−0.5
1.05
Amplitude
Amplitude
−1 G(s)
G(z) 1
G(w)
−1.5
0.95
−2
0.9
−2.5
0.8
Saída
0.6
0.4 yr(t)
0.2 Contínuo
Discreto
0
0 10 20 30 40 50 60
0.8
Controle
0.6
0.4
0.2 Contínuo
Discreto
0
0 10 20 30 40 50 60
Tempo (s)
Bode Diagram
50
0
Magnitude (dB)
−50
−100
G(s)
−150 G(w)
360
G(z)
180
Phase (deg)
−180
−360
−1 0 1 2 3 4
10 10 10 10 10 10
Frequency (rad/sec)
∏
M
K (s + zi )
i=1
C(s) = . (2.32)
∏
N
(s + pj )
j=1
Ks Kω +j90o
C(s) ≈ , C(jω) = e ; (2.34)
p1 p1
60
define até que valor pode-se levar o ganho de malha (i.e., da malha
direta), tal que o sistema em MF ainda será estável, mesmo que osci-
latório (SEBORG et al., 2003).
A margem de fase está relacionada à frequência de corte da
curva de magnitude. O ângulo de fase na frequência de corte, ϕg ,
na Figura 22, permite calcular a margem de fase como sendo M F =
180+ϕg . A MF é um ı́ndice que quantifica quanto atraso (lag) pode ser
incluı́do na malha de controle até que esta se torne instável (SEBORG
et al., 2003).
Quanto maiores forem as margens MG e MF, mais conservador
será o sistema de controle projetado e maiores as chances de observar
similaridades entre teoria e prática. Ou seja, grandes valores de MG
e MF estão relacionados a malhas de controle robustas, mas
com baixo desempenho, enquanto que MG e MF pequenas
63
% Exemplo lead-lag
clear all; close all; clc;
% Planta contı́nua
Gs = tf(1,[1 1]);
% Compensador lead-lag
K = 2; z1 = 2; p1 = 0; % z << p, lead, +90 deg
% z >> p, lag, -90 deg
B(z −1 )z −1 1
Y (z −1 ) = −1
U (z −1 ) + Di (z −1 ) + Do (z −1 ). (2.36)
A(z ) A(z −1 )
B(z −1 )z −1
Y (z −1 ) = U (z −1 ) + ν(z −1 ). (2.37)
A(z −1 )
n=1000;m=1;variancia=2;
nu = wgn(n,m,variancia,’linear’);
disp(var(nu));
plot(nu)
66
B(z −1 )z −1 1
Y (z −1 ) = U (z −1 ) + ξ(z −1 ). (2.38)
A(z −1 ) A(z −1 )
2.8 PROBLEMAS
Bode Diagram
Gm = Inf , Pm = 59 deg (at 3.38 rad/sec)
50
Magnitude (dB)
−50
0
−45
Phase (deg)
−90
−135
−180
−2 −1 0 1 2
10 10 10 10 10
Frequency (rad/sec)
Bode Diagram
Gm = 25.3 dB (at 1.18 rad/sec) , Pm = −97.4 deg (at 0.0239 rad/sec)
50
0
Magnitude (dB)
−50
−100
−150
−200
540
360
Phase (deg)
180
−180
−2 −1 0 1 2
10 10 10 10 10
Frequency (rad/sec)
Bode Diagram
Gm = −17.1 dB (at 0.332 rad/sec) , Pm = 159 deg (at 0.894 rad/sec)
50
0
Magnitude (dB)
−50
−100
−150
−200
720
540
Phase (deg)
360
180
−180
−2 −1 0 1 2
10 10 10 10 10
Frequency (rad/sec)
Bode Diagram
Gm = 55.6 dB (at 0.788 rad/sec) , Pm = Inf
−50
Magnitude (dB)
−100
−150
−200
−250
−300
0
−180
Phase (deg)
−360
−540
−720
−2 −1 0 1 2
10 10 10 10 10
Frequency (rad/sec)
3 CAPÍTULO 3
3.1 INTRODUÇÃO
• Caso contı́nuo:
• Caso discreto:
ẋ = Ax + Bu, (3.5)
y = Cx + Du. (3.6)
Y (s) Kp ωn 2
G(s) = = 2 (3.7)
U (s) s + 2ζωn s + ωn 2
71
sendo
[ ] [ ][ ] [ ]
ẋ1 0 1 x1 0
= + u (3.13)
ẋ2 −(ωn 2 ) −(2ζωn ) x2 (Kp ωn 2 )
| {z } | {z } | {z } | {z }
ẋ A x B
y = x1 , (3.14)
y1 c11 ··· c1n x1 d11 ··· d1p u1
.. .. .. .. .. + .. .. .. ..
. = . . . . . . . .
yq cq1 ··· cqn xn dq1 ··· dqp up
(3.18)
[ ] [ ] x1 [ ][ ]
y1 c11 c12 c13 c14 x2
= + d11 d12 u1
y2 c21 c22 c23 c24 x3 d21 d22 u2
x4
(3.20)
ẋ = Ax + Bu
sX(s) = AX(s) + BU (s)
(sI − A) X(s) = BU (s)
−1
X(s) = (sI − A) BU (s) (3.21)
y = Cx + Du
Y (s) = CX(s) + DU (s)
−1
Y (s) = C(sI − A) BU (s) + DU (s)
75
[ ]
−1
Y (s) = C(sI − A) B + D U (s) (3.22)
d3 d2 d
y(t) + 3 y(t) + 4 y(t) + 2y(t) = 5u(t)
dt3 dt2 dt
x1 = y, x2 = ẏ, x3 = ÿ
76
ẋ1 = x2
ẋ2 = x3
ẋ3 = −3x3 − 4x2 − 2x1 + 5u
ẋ1 0 1 0 x1 0
ẋ2 = 0 0 1 x2 + 0 u
ẋ3 −2 −4 −3 x3 5
[ ] x1
y= 1 0 0 x2
x3
x1 = y1 , x2 = ẏ1 , x3 = y2 , x4 = ẏ2
ẋ1 = x2
ẋ2 = −2x2 + 2x3 + u1
ẋ3 = x4
ẋ4 = −x3 + x1 + u2
77
ẋ1 0 1 0 0 x1 0 0 [ ]
ẋ2 0 −2 2 0 x2 1 0
+ u1
ẋ3 = 0 0 0 1 x3 0 0 u2
ẋ4 1 0 −1 0 x4 0 1
[ ] [ ] x1
y1 1 0 0 0 x2
=
y2 0 0 1 0 x3
x4
x1 = x, x2 = ẋ, x3 = ẍ
logo,
ẋ1 = x2
ẋ2 = x3
ẋ3 = −13x3 − 53x2 − 40x1 + u
[ ] x1
y= 340 40 20 x2 + [0] u
x3
∫t
ÿ + 2ẏ + y + ydt = u̇ + 5u
0
( y)
Y (s) s2 + 2s + y + = U (s) (s + 5)
s ( )
Y (s) (s + 5) X(s)
=( 2 )
U (s) s + 2s + y + ys X(s)
( ∫
y)
U (s) = s2 + 2s + y + X(s) → u = ẍ + 2ẋ + x + xdt
s
Y (s) = (s + 5)X(s) → y = ẋ + 5x
∫
x1 = xdt, x2 = x, x3 = ẋ,
ẋ1 = x2
ẋ2 = x3
ẋ3 = −2x3 − x2 − x1 + u
y = x3 + 5x2
79
ẋ1 0 1 0 x1 0
ẋ2 = 0 0 1 x2 + 0 u
ẋ3 −1 −1 −2 x3 1
[ ] x1
y= 0 5 1 x2 + [0] u
x3
ẋ − x0 = Ax + Bu, (3.24)
sX(s) − x0 = AX(s) + BU (s), (3.25)
−1 −1
X(s) = (sI − A) x0 + (sI − A) BU (s). (3.26)
−1
A matriz (sI − A) é chamada de matriz de transição de esta-
dos e verifica-se que possui relação direta com a matriz que relaciona
os pólos de um sistema aos autovalores da matriz A, isto é:
−1
• Matriz de transição de estados: ϕ(s) = (sI − A) ;
• Polinômio caracterı́stico do sistema: ∆(s) = det (sI − A) = 0.
A ϕ(s), por meio da Transformada Inversa de Laplace, nos per-
mite obter as equações no domı́nio do tempo de resposta de estado zero,
x0 , e resposta forçada a partir de u(t).
Por uma questão de limitação de tempo deste curso,
vamos considerar apenas a definição de matriz de transição de
estados, entendendo que quando modificamos os autovalores
de um determinado sistema, consequentemente modificamos
a dinâmica de transição de estados e isto é fundamental para
que realizemos controle por realimentação de estados, que é
um dos principais motivos de estudo deste curso.
3.6.1 Controlabilidade
trolabilidade:
[ ]
Co = B AB ··· A(n−1) B . (3.27)
Co = ctrb(A,B)
rank(Co)
3.6.2 Observabilidade
Ob = obsv(A,C)
rank(Ob)
simplesmente,
u = −Kx (3.29)
ẋ = Ax + B (−Kx) (3.30)
que por sua vez define o sistema de malha fechada no espaço de estados:
Note que em (3.31) há uma nova matriz de estados, Acl . Con-
sequentemente, há nova forma de transição de estados, dada agora por
(sI − A + BK)−1 , já que os autovalores de malha fechada agora são
outros, dados por
[ O objetivo
] deste exercı́cio é determinar o vetor de ganhos K =
k1 k2 , tal que a lei de controle
[ ]
[ ] x1
u= k1 k2
x2
√
aloque os autovalores da matriz Acl = (A − BK) em −2 ± j2 2.
Devemos então transformar nossos objetivos em uma expressão
matemática. Nesse sentido, o polinômio caracterı́stico desejado de ma-
lha fechada é
√ √
∆cl (s) = (s + 2 − j2 2)(s + 2 + j2 2) = s2 + 4s + 12
[( ) ( ) ]
s −1 0 ( )
∆cl (s) = det + k1 k2 = s2 + (3 + k2 ) s + 2 + k1
2 s+3 1
s2 + (3 + k2 ) s + 2 + k1 = s2 + 4s + 12
2 + k1 = 12 → k1 = 10
(3 + k2 ) = 4 → k2 = 1
onde ∆cl (A) é uma função polinomial matricial, construı́da com base
no polinômio caracterı́stico desejado de malha fechada e na matriz de
estados A, do sistema que se quer regular.
Para se calcular ∆cl (A) basta verificar a relação que este assume
com a variável s, isto é,
∆cl (s) = s2 + 3s + 2
(3.35)
∆cl (A) = A2 + 2A + 2I
A matriz de controlabilidade é
[ ]
[ ] 0 1
Co = B AB =
1 −3
e a inversa de Co é
T [ ]
−1 Adj (Co ) [cof (Co )] 3 1
(Co ) = = =
det(Co ) det(Co ) 1 0
O polinômio caracterı́stico
√ desejado de malha fechada, referente
à alocação de pólos em −2 ± j2 (2), é dado por ∆cl (s) = s2 + 4s + 12,
permitindo assim calcular
[ ]
K= 10 1
4 CAPÍTULO 4
4.1 INTRODUÇÃO
Bode Diagram
40
20
Magnitude (dB)
−20
−40
−60
−90
Phase (deg)
−135
−180
−2 −1 0 1
10 10 10 10
Frequency (rad/sec)
[ ] [ ][ ] [ ]
ẋ1 0 1 x1 0
= + u
ẋ2 −ωn 2 −2ζωn x2 Kp ωn 2
[ ] (4.2)
[ ] x1
y= 1 0
x2
em que Ua (s) = sU (s), que pode ser interpretado como sendo a va-
riação do sinal de controle U (s). Isto significa que o modelo au-
92
Step Response
1.5
Amplitude
1
0.5 TF
SS
0
0 2 4 6 8 10 12 14 16
Time (sec)
Bode Diagram
Magnitude (dB)
100
−100
Phase (deg)
0
TF
−90
SS
−180
−1 0 1 2
10 10 10 10
Frequency (rad/sec)
Step Response
1500
Amplitude
1000
500 TF aug
SS aug
0
0 500 1000 1500
Time (sec)
Bode Diagram
Magnitude (dB)
20
TF aug
0
SS aug
−20
Phase (deg)
−90
−180
−270
−1 0 1
10 10 10
Frequency (rad/sec)
Note
[ a que as novas] variáveis de estado, do vetor aumentado xa T =
x1 a x2 a x3 , não[são as mesmas
] do vetor do modelo nominal,
T
não aumentado, x = x1 x2 , apesar de possuı́rem uma relação
que ficará explı́cita mais adiante no texto, com a generalização do pro-
cedimento de augmentação com integrador.
O problema de controle no espaço de estados é formulado com
94
ua = −Kxa + k1 yr (4.9)
ẋa = Aa xa + Ba ua
(4.12)
za = Kxa
Za (s) −1
= K(sI − Aa ) Ba . (4.13)
Ua (s)
y(t)
0.5
yr(t)
y(t)
0
0 2 4 6 8 10 12 14 16
0.2
0.1
0
0 2 4 6 8 10 12 14 16
Tempo (s)
xa1(t)
0.5 Seguimento de referencia
0
0 2 4 6 8 10 12 14 16
0.4
xa2(t)
0.2 Regulacao
0
0 2 4 6 8 10 12 14 16
0.5
xa3(t)
Regulacao
−0.5
0 2 4 6 8 10 12 14 16
Tempo (s)
Bode Diagram
Gm = 11.1 dB (at 0.642 rad/sec) , Pm = 72.7 deg (at 0.231 rad/sec)
40
Magnitude (dB)
20
−20
−40
270
180
Phase (deg)
90
−90
−2 −1 0 1 2
10 10 10 10 10
Frequency (rad/sec)
derivando-se
ẋ = Ax + Bu
(4.15)
y = Cx
chega-se à forma
ẍ = Aẋ + B u̇
(4.16)
ẏ = C ẋ
estabelece:
Controlador Observador
A ↔ AT
B ↔ CT
K ↔ LT
Co ↔ ObT
• Ganho de controlador:
[ ] −1
K = 0 ··· 0 1 (Co ) ∆(A)
• Ganho de observador:
[ ]( )−1
LT = 0 · · · 0 1 ObT ∆(AT ) (4.23)
ou
−1 [ ]T
L = ∆(A)(Ob ) 0 ··· 0 1 (4.24)
observador:
d
x̄ = Ax̄ + Ly
dt (4.29)
ȳ = C x̄
Ȳ (s) −1
= C(sI − A) L (4.30)
Y (s)
[ ] [ ][ ] [ ]
ẋ1 0 1 x1 0
= + u
ẋ2 −ωn 2 −2ζωn x2 Kp ωn 2
[ ] (4.32)
[ ] x1
y= 1 0
x2
det(Ob ) ̸= 0 (4.34)
Bode Diagram
50
Magnitude (dB)
0
−50
−100
−150
−90
Phase (deg)
−180
−270
−1 0 1 2
10 10 10 10
Frequency (rad/sec)
1
Amplitude
0.8
0.6
0.4
0.2
0
0 1 2 3 4 5
Tempo (s)
[ ]
LT = 11, 2 35, 04 −8, 832 (4.37)
Bode Diagram
Gm = Inf , Pm = 74.7 deg (at 11.7 rad/sec)
60
Magnitude (dB)
40
20
−20
−60
Phase (deg)
−90
−120
−150
−1 0 1 2
10 10 10 10
Frequency (rad/sec)
[ruido]
ruido
[load]
carga
K*u
[x]
A
Estados
[ruido] Nominais
[u] Variaveis de [y]
Entrada Band−Limited Ruido
Entrada Entrada u Saida
e White Noise
Medida2
Perturbacoes
du/dt [du] [load]
Saida Medida
Derivative Entrada dot(u) Perturbacao Carga [ya]
vs
de Carga
Saida Saida Estimada
Estimada1
x2
L Saida Estados x
Medida1
xa1
[du] K*u 1/s K*u [ya]
dot(xa) xa y [xa]
xa2
dot(u) Ba Integrator1 Ca Saida
Estados xa
Estimada xa3
Estados x
K*u [xa]
vs
Aa−L*Ca Estados Estados xa
Estimados estimados
1.4
1.2
Saida Medida
1 Saida Estimada
Amplitude
0.8
0.6
Aplicacao
0.4 da Carga
0.2
0
0 5 10 15 20 25
Tempo (s)
1.5
x1
1 xa1
0.5
0
0 5 10 15 20 25
2
x2
1 xa2
−1
0 5 10 15 20 25
2
xa3
0
−2
−4
0 5 10 15 20 25
Tempo (s)
1.5
1
Amplitude
0.5
Saida Medida
Saida Estimada
−0.5
0 5 10 15 20 25
Tempo (s)
2
x
1
1 xa1
−1
0 5 10 15 20 25
2
x2
1 xa2
−1
0 5 10 15 20 25
2
xa3
0
−2
−4
0 5 10 15 20 25
Tempo (s)
1.4
1.2
0.8
Amplitude
0.6
Saida Medida
0.4 Saida Estimada
0.2
−0.2
0 1 2 3 4 5
Tempo (s)
2
x1
1 xa1
−1
0 1 2 3 4 5
2
x2
1 xa2
−1
0 1 2 3 4 5
2
xa3
0
−2
−4
0 1 2 3 4 5
Tempo (s)
ẋ = Ax + Bu
(4.39)
y = Cx
u = −K x̄. (4.41)
u = −K x̄ + k1 yr (4.45)
REFERÊNCIAS