A função de transferência da planta é:
𝐺 𝑠 =
𝐾𝑎
𝑠 + 𝑧𝑎
𝑠 + 𝑝𝑎
𝑠 + 𝑝𝑏
𝑠 + 𝑝𝑐
(1)
Os valores dos parâmetros 𝐾𝑎
, 𝑧𝑎
, 𝑝𝑎
, 𝑝𝑏
, 𝑝𝑐 estão organizados de acordo com os grupos:
Parâmetros Grupo
1
Grupo
2
Grupo
3
Grupo
4
Grupo
5
Grupo
6
Grupo
7
Grupo
8
𝑲𝒂 1 2 3 4 5 6 7 8
𝒛𝒂 1 2 3 4 7 6 5 4
𝒑𝒂 0 1 2 -3 4 3 -2 -1
𝒑𝒃 2 -3 -4 5 5 4 3 2
𝒑𝒄 4 3 6 7 -1 -2 4 3
O objetivo deste projeto é utilizar o método de alocação de polos para projetar um
regulador que realimente o estado observado (𝑥 ) de modo que, quando o sistema for
submetido às seguintes condições iniciais:
𝑥 0 =
1
0
0
, 𝑒(0) =
1
0
0
(2)
onde 𝑥 é o vetor de estado da planta e 𝑒 = 𝑥 − 𝑥 é o erro do observador (diferença entre
o estado real e o estado observado 𝑥 ), o máximo sobressinal de 𝑦(𝑡) seja em torno de
𝑀𝑝
% = 20% e o tempo de acomodação seja de 𝑡𝑠
2% = 4𝑠.
Para isso, você deve apresentar os seguintes passos de desenvolvimento do projeto:
1. Obtenha uma representação em espaço de estados para a planta, ou seja,
determine as matrizes 𝐴, 𝐵, 𝐶 e 𝐷 do sistema:
𝑥 = A𝑥 + 𝐵𝑢
𝑦 = 𝐶𝑥 + 𝐷𝑢
(3)
onde 𝑥 é o vetor de estados de ordem 𝑛, 𝑦 é o sinal de saída (escalar), 𝑢 é o sinal
de controle dado pela seguinte fórmula de realimentação negativa de estados
observados:
𝑢 = −𝐾𝑥 (4)
Para obter a sua representação em espaço de estados, assuma que a função de
transferência pode ser reescrita na forma:
𝐺 𝑠 =
𝑏0𝑠
𝑛 + 𝑏1𝑠
𝑛−1 + ⋯ + 𝑏𝑛−1𝑠 + 𝑏𝑛
𝑠
𝑛 + 𝑎1𝑠
𝑛−1 + ⋯ + 𝑎𝑛−1𝑠 + 𝑎𝑛
(5)
e defina as seguintes variáveis de estado:
PUC Campinas
Controle e Automação Aplicada
Professora: Cecília de Freitas Morais
𝑥1 = 𝑦 − 𝛽0𝑢
𝑥2 = 𝑥 1 − 𝛽1𝑢
𝑥3 = 𝑥 2 − 𝛽2𝑢
𝑥 3 = −𝑎3𝑥1 − 𝑎2𝑥2 − 𝑎1𝑥3 + 𝛽3𝑢
(6)
em que
𝛽0 = 𝑏0
𝛽1 = 𝑏1 − 𝑎1𝛽0
𝛽2 = 𝑏2 − 𝑎1𝛽1 − 𝑎2𝛽0
𝛽3 = 𝑏3 − 𝑎1𝛽2 − 𝑎2𝛽1 − 𝑎3𝛽0
(7)
de maneira que na forma matricial/vetorial tem-se:
𝑥 1
𝑥 2
𝑥 3
=
0 1 0
0 0 1
−𝑎3 −𝑎2 −𝑎1
𝑥1
𝑥2
𝑥3
+
𝛽1
𝛽2
𝛽3
𝑢
𝑦 = 1 0 0
𝑥1
𝑥2
𝑥3
+ 𝛽0
𝑢
(8)
Observação: Após montar a representação em espaço de estados, confira no
Matlab ou Octave se a representação obtida equivale à função de transferência
𝐺(𝑠) usando o comando ss2tf.
2. Determine os polos de malha fechada para efeito de alocação de polos e os polos
desejados do observador. Para isso considere as seguintes condições:
a. Os polos desejados da alocação de polos são dados por
𝜇1 = −𝜉𝜔𝑛 + 𝑗𝜔𝑑, 𝜇2 = −𝜉𝜔𝑛 − 𝑗𝜔𝑑 , 𝜇3 = −5𝜉𝜔𝑛
(9)
em que os valores de 𝜉 e 𝜔𝑛 satisfazem as condições de projeto
(𝑀𝑝
% = 20% e 𝑡𝑠
2% = 4𝑠 ).
b. Os polos desejados do observador são
𝜂1 = 𝜂2 = 𝜂3 = 2𝜇3
(10)
3. Determine:
a. A matriz de ganho 𝐾 de realimentação de estados usando o Método 1
(matriz de transformação T) apresentado na aula de revisão de alocação
de polos. Em seguida, confira seu resultado usando o comando do
Matlab/Octave: K=place(A,B,J) ou K=acker(A,B,J), em que J é o vetor
composto pelos polos dados em (9).
b. A matriz de ganho do observador 𝐾𝑒 usando a fórmula de Ackerman, ou
seja,
𝐾𝑒 = Φ 𝐴
𝐶
𝐶𝐴
𝐶𝐴
2
−1
0
0
1
(11)
em que Φ 𝑠 = 𝑠 − 𝜂1
𝑠 − 𝜂2
(𝑠 − 𝜂3) é o polinômio característico
desejado para o observador de estados. Em seguida, confira seu resultado
usando o comando do Matlab/Octave: Ke=place(A’,C’,L)’ ou
Ke=acker(A’,C’,L)’, em que L é o vetor composto pelos polos dados em
(10).
4. Determine a função de transferência do controlador-observador sabendo que, o
estado do observador é 𝑥 , a entrada do observador é a saída 𝑦 da planta e a saída
do observador é a entrada 𝑢 de controle da planta, ou seja, em espaço de estados
o observador pode ser representado por:
𝑥 = 𝐴𝑥 + 𝐵𝑢 + 𝐾𝑒
𝑦 − 𝐶𝑥 = 𝐴 − 𝐾𝑒𝐶 − 𝐵𝐾 𝑥 + 𝐾𝑒𝑦
𝑢 = −𝐾𝑥
(12)
PUC Campinas
Controle e Automação Aplicada
Professora: Cecília de Freitas Morais
Para calcular a função de transferência equivalente, crie um sistema equivalente:
𝑥 = 𝐴 𝑥 + 𝐵 𝑦
𝑢 = 𝐶 𝑥
em que 𝐴 = 𝐴 − 𝐾𝑒𝐶 − 𝐵𝐾 , 𝐵 = 𝐾𝑒
, 𝐶 = −𝐾, 𝐷 = 0 (13)
em seguida utilize o comando ss2tf do Matlab ou Octave para obter a função de
transferência equivalente.
5. Analise os polos da função de transferência do controlador-observador obtida no
item anterior.
a. Todos os polos da função de transferência são estáveis? Se sim, prossiga
para o item 6, caso contrário passe para o item b.
b. Se nem todos os polos são estáveis, esse sistema de controle não é nem
desejado nem aceitável! Então para obter um sistema satisfatório, é
necessário modificar a alocação de polos de malha fechada ou alocação
de polos do observador. Nesse caso realize uma segunda tentativa
conservando os polos de malha fechada desejados (𝜇1
, 𝜇2
, 𝜇3 dados na
equação (9)) e modificando a localização dos polos do observador:
𝜂1 = 𝜂2 = 𝜂3 = 0,9𝜇3
(14)
Repita o item 3b (cálculo do ganho 𝐾𝑒 para os novos valores de
𝜂1
, 𝜂2
, 𝜂3
), o item 4 (cálculo da função de transferência do controladorobservador) e 5a (teste dos polos da função de transferência do
controlador-observador) e só passe para o item 6 caso a questão 5a seja
verificada. (Provavelmente os polos serão estáveis, mas caso não sejam,
repita o procedimento para 𝜂1 = 𝜂2 = 𝜂3 = 0,8𝜇3 e teste novamente,
depois para 𝜂1 = 𝜂2 = 𝜂3 = 0,7𝜇3 até que a estabilidade no item 5a seja
alcançada).
6. Neste item iremos realizar a simulação do sistema em malha-fechada no Matlab
ou Octave. Para isso, precisamos obter a representação em espaço de estados do
sistema em malha fechada.
Primeiramente substituímos (4) em (3) para obter:
𝑥 = 𝐴𝑥 − 𝐵𝐾𝑥
𝑦 = 𝐶𝑥 − 𝐷𝐾𝑥
⇒
𝑥 = 𝐴𝑥 − 𝐵𝐾𝑥 + 𝐵𝐾𝑥 − 𝐵𝐾𝑥
𝑦 = 𝐶𝑥 − 𝐷𝐾𝑥 + 𝐷𝐾𝑥 − 𝐷𝐾𝑥
⇒
𝑥 = 𝐴 − 𝐵𝐾 𝑥 + 𝐵𝐾𝑒
𝑦 = 𝐶 − 𝐷𝐾 𝑥 + 𝐷𝐾𝑒
(15)
em que 𝑒 = 𝑥 − 𝑥 , ou seja, das equações (3) e (12) tem-se:
𝑒 = 𝑥 − 𝑥 = 𝐴𝑥 + 𝐵𝑢 − 𝐴𝑥 + 𝐵𝑢 + 𝐾𝑒𝐶𝑥 − 𝐾𝑒𝐶𝑥 = 𝐴 − 𝐾𝑒𝐶 𝑥 − 𝑥
⇒ 𝑒 = 𝐴 − 𝐾𝑒𝐶 𝑒
(16)
Juntando as expressões (15) e (16) na forma matricial, tem-se:
𝑥
= 𝐴 𝑥 + 𝐵 ⋅ 0
𝑦 = 𝐶 𝑥 + 𝐷 ⋅ 0
⇒
𝑥
𝑒
=
𝐴 − 𝐵𝐾 𝐵𝐾
0 𝐴 − 𝐾𝑒𝐶
𝑥
𝑒
𝑦 = 𝐶 − 𝐷𝐾 𝐷𝐾
𝑥
𝑒
(17)
que é uma equação homogênea (sem entrada), para a qual conhecemos a
solução:
𝑥 = 𝑒
𝐴 𝑡𝑥 (0)
𝑦 = 𝐶 𝑒
𝐴 𝑡𝑥 (0)
(18)
em que
𝑥 =
𝑥
𝑒
, 𝑥 (0) =
𝑥(0)
𝑒(0)
, 𝐴 =
𝐴 − 𝐵𝐾 𝐵𝐾
0 𝐴 − 𝐾𝑒𝐶
,
𝐶 = 𝐶 − 𝐷𝐾 𝐷𝐾
(19)
PUC Campinas
Controle e Automação Aplicada
Professora: Cecília de Freitas Morais
a. Simule o comportamento temporal do sistema usando o commando
initial(sys_mf,xhat0,t) em que sys_mf=ss(Ahat,Bhat,Chat,Dhat) é a
representação em malha fehcada do sistema dada em (19), xhat0 são as
condições iniciais (𝑥 0 ) e t=0:0.01:10 é o vetor de tempo. Obs:
Conforme pode ser visto nas equações anteriores, Bhat e Dhat são nulos,
ou seja, Bhat=zeros(6,1) e Dhat=0;
b. No mesmo gráfico do item anterior plote a saída do sistema usando a
fórmula dada na equação (18), ou seja, utilize o comando
y=Chat*expm(Ahat*t)*xhat0. Apresente legendas para identificar os
gráficos obtidos na letra (a) e (b) e comente se os resultados coincidem.
7. Simulação no Simulink/Matlab ou no Xcos/Scilab:
a. Primeiramente monte um diagrama de blocos similar ao da Figura 2 em
Simulink-Matlab (ou Figura 3 no caso do uso do Xcos-Scilab), em que
na planta você deve inserir as matrizes de espaço de estados 𝐴, 𝐵, 𝐶,𝐷
determinadas no item 1 e no controlador-observador você deve inserir as
matrizes de espaço de estados 𝐴 , 𝐵 , 𝐶 ,𝐷 encontradas no item 4.
Apresente seu diagrama de blocos em seu projeto. Obs: Lembre-se de
configurar a condição inicial 𝑥(0) no bloco da planta e 𝑥 0 = 𝑥 0 −
𝑒(0) no bloco do controlador-observador.
Figura 2 – Diagrama de blocos em malha-fechada usando o modelo de espaço de estados no Simulink-Matlab
Figura 3 – Diagrama de blocos em malha-fechada usando o modelo de espaço de estados no Xcos-Scilab
b. Apresente em seu projeto os gráficos das simulações via diagrama de
blocos e compare os resultados obtidos por ambas estruturas com o
resultado obtido pela simulação em código (no Octave ou Matlab).
PUC Campinas
Controle e Automação Aplicada
Professora: Cecília de Freitas Morais
O seu projeto deve ser desenvolvido em grupos de 3 integrantes e entregue em PDF no
ambiente Tarefas do Canvas. Quanto a pontuação, seu projeto deve ser constituído
pelos seguintes itens:
Uma introdução teórica sobre projeto de reguladores por alocação de polos e
observadores de estados. Faça uma pequena pesquisa em livros ou na internet
para contextualizar o tema e explique o que será feito no projeto. Apresente as
referências bibliográficas utilizadas ao final do projeto. (0,5 ponto)
Intercale os enunciados de cada exercício do projeto com suas respostas.
Apresente cálculos teóricos quando necessário, os códigos em Matlab ou Octave
com comentários pertinentes, os diagramas de bloco no Simulink ou Xcos e os
gráficos com rótulos nos eixos e legendas (a falta ou o erro em qualquer um
desses elementos implica em desconto de pontos). Os exercícios experimentais
serão pontuados seguindo a seguinte tabela:
1 2 3a 3b 4 5 6a 6b 7a 7b
1,00 1,00 1,00 1,00 1,00 1,00 1,00 0,50 0,50 1,00
Uma seção com comentários e conclusões a respeito dos aprendizados e
dificuldades encontradas ao implementar o projeto proposto. (0,5 ponto