Você está na página 1de 15

Lista 2 de Controle

Diego R. D. Turbino

Junho de 2020

1 Análise de Controlabilidade

Vamos iniciar analisando a controlabilidade do sistema com os dados

anteriores.

1.1 Análise da Controlabilidade com Dados da Lista 1

para θ = 0

Retomando as matrizes A e B nas formas linearizadas em torno de

θ = 0, temos
   
0 1 0 0  0 
   
   
0 0 −mg  1 
M 0

, e B =  M .
  
A=
   
0 0 0 1  0 
   
   
   
g(M +m) 1
0 0 lM 0 lM

Utilizando os valores de M , m e l da lista anterior, obtemos:

1
   
0 1 0 0  0 
   
   
0
 0 −3.9500 0

2.0000
 
A=

, e B = 
 
.

0 0 0 1  0 
  

   
   
0 0 45.7000 0 6.6700

Calculando a matriz controlabilidade C utilizando o comando “ctrb(A,B)”,

obtemos  
 0 2.0000 0 −26.3465
 
 
2.0000
 0 −26.3465 0 

C=



 0 6.6700 0 304.8190 
 
 
 
6.6700 0 304.8190 0

Calculando o posto de C através do comando“rank(C)”, temos que o mesmo

é igual a 4, que é a ordem de C, indicando que o determinante é diferente de

0. Para sabermos grau de controlabilidade, podemos fazer a decomposição em

vetores singulares de C por meio do comando“[U, Σ, V ] =svd(C,‘econ’), cujo

resultado é:
 
 0.0859 −0.0000 0.0000 −0.9963
 
 
−0.0000 −0.0859 0.9963 0.0000 
 
U =

, e

−0.9963 0 0 −0.0859
 
 
 
0.0000 0.9963 0.0859 −0.0000
 
306.0240 0 0 0 
 
 

 0 306.0240 0 0 
Σ=

.


 0 0 2.5664 0 
 
 
0 0 0 2.5664

Observando o resultado, podemos dizer que o sistema é mais con-

2
trolável nas direção de x em que p possui sinal oposto a θ com as outras compo-

nentes nulas e na que ṗ possui sinal oposto θ̇ com as outras componentes nulas.

Pode-se também observar que o sistema é mais controlável nas direções em que

θ possui um valor mais pronunciado do que p e em que θ̇ tem um valor mais

pronunciado do que ṗ

Agora, vejamos o que mudaria com o mesmo sistema no caso em que

a massa sobre a haste é o dobro da considerada anteriormente.

1.2 Análise da Controlabilidade com o Dobro de Massa

na Haste para θ = 0

Utilizando os mesmos valores de M e l da lista anterior e aumentando

o valor de m de 0.2 kg para 0.4 kg obtemos:


   
0 1 0 0  0 
   
   
0
 0 −7.8400 0

2.0000
 
A=

, e B = 
 
.

0 0 0 1  0 
  

   
   
0 0 58.8000 0 6.6700

Calculando a matriz controlabilidade C utilizando o comando “ctrb(A,B)”,

obtemos  
 0 2.0000 0 −52.2928
 
 
2.0000
 0 −52.2928 0 

C=



 0 6.6700 0 392.1960 
 
 
 
6.6700 0 392.1960 0

Calculando o posto de C através do comando “rank(C)”, cujo posto também é 4,

tal como no caso anterior. Fazendo a decomposição de C em vetores singulares

3
por meio do comando “[U, Σ, V ] =svd(C,‘econ’)”obtemos
 
 0.1320 0 0 −0.9912
 
 
−0.0000 −0.1320 0.9912 −0.0000
 
U =

, e

−0.9912 0 0 −0.1320
 
 
 
−0.0000 0.9912 0.1320 −0.0000
 
395.7177 0 0 0 
 
 

 0 395.7177 0 0 

Σ=

.


 0 0 2.8636 0 

 
 
0 0 0 2.8636

Observa-se, portanto, que os valores singulares de C para o novo valor

de massa sobre a haste são maiores do que no caso anterior em todas as direções

de x. Portanto, podemos entender que a alteração aumentou a controlabilidade

do sistema. Ou seja, para uma mesma quantidade de energia inserida no sis-

tema através da força F atuando no carrinho, conseguirı́amos mais facilmente

controlar a posição x em torno do ponto de linearização para o caso da massa

maior sobre a haste do que para o caso anterior.

Cabe notar que as direções de maior e menor controlabilidade são muito

próximas das do caso anterior, visto que as componentes dos vetores coluna da

matriz U possuem valores próximos dos do caso anterior.

Agora, faremos o mesmo procedimento para o caso em que θ = π

4
1.3 Análise da Controlabilidade com Dados da Lista 1

para θ = π

Retomando as matrizes A e B nas formas linearizadas em torno de

θ = π, temos
   
0 1 0 0  0 
   
   
0 0 −mg 1 
 M 0
 
 M 
A=

, e B = 
 
.

0 0 0 1  0 
  

   
   
0 0 − g(MlM
+m)
0 1
− lM

Utilizando os valores de M , m e l da lista anterior, obtemos:


   
0 1 0 0  0 
   
   
0 0
 −3.9500 0
 2.0000 
 
A=

, e B = 
 
.

0 0 0 1
  0 
  
   
   
0 0 −45.7000 0 −6.6700

Calculando a matriz controlabilidade C utilizando o comando “ctrb(A,B)”,

obtemos  
 0 2.0000 0 26.3465 
 
 
 2.0000 0 26.3465 0 
 
C=




 0 −6.6700 0 304.8190
 
 
−6.6700 0 304.8190 0

Calculando o posto de C através do comando“rank(C)”, temos que o mesmo é

igual a 4, que é a ordem de C, indicando que o determinante é diferente de 0.

Fazendo a decomposição em vetores singulares, achamos

5
 
−0.0859 −0.0000 0.0000 0.9963 
 
 
 0.0000
 −0.0859 0.9963 −0.0000
U =

, e

−0.9963 0 0 −0.0859
 
 
 
0.0000 −0.9963 −0.0859 −0.0000
 
306.0240 0 0 0 
 
 

 0 306.0240 0 0 

Σ=

.


 0 0 2.5664 0 

 
 
0 0 0 2.5664

Observando os resultados, vemos que os valores de controlabilidade são

similares aos encontrados no caso anterior e que as direções de maior controla-

bilidade são significativamente diferentes do caso em que θ = 0. Agora, vejamos

o que mudaria com o mesmo sistema no caso em que a massa sobre a haste é o

dobro da considerada anteriormente, agora para o caso em que θ = π

1.4 Análise da Controlabilidade com o Dobro de Massa

na Haste para θ = π

Utilizando os mesmos valores de M e l da lista anterior e aumentando

o valor de m de 0.2 kg para 0.4 kg obtemos:


   
0 1 0 0  0 
   
   
0 0
 −7.8400 0
 2.0000 
 
A=

, e B = 
 
.

0 0 0 1
  0 
  
   
   
0 0 −58.8000 0 −6.6700

Calculando a matriz controlabilidade C utilizando o comando “ctrb(A,B)”,

6
obtemos  
 0 2.0000 0 52.2928 
 
 
 2.0000 0 52.2928 0 
 
C=




 0 −6.6700 0 392.1960
 
 
−6.6700 0 392.1960 0

Calculando o posto de C obtemos 4, tal como nos casos anteriores. Fazendo a

decomposição de C em vetores singulares por da mesma forma como nos casos

anteriores obtemos
 
−0.1320 0 0 0.9912 
 
 
−0.0000 −0.1320 0.9912 −0.0000
 
U =

, e

−0.9912 0 0 −0.1320
 
 
 
−0.0000 −0.9912 −0.1320 −0.0000
 
395.7177 0 0 0 
 
 

 0 395.7177 0 0 
Σ=

.


 0 0 2.8636 0 
 
 
0 0 0 2.8636

Tal como visto para θ = 0, no caso em que θ = π observou-se um

aumento da controlabilidade para direções de maior e menor controlabilidade

muito semelhantes aos dos obtidos para o valor de massa menor.

2 Cálculo do Ganho K

Como não foi especificado no enunciado, resolver-se-á essa questão para

o caso em que a massa da haste é m = 0.2 kg.

7
2.1 Cálculo do Ganho para Linerização em Torno de θ = 0

Começando com a linearização em torno de θ = 0, utilizando os au-

tovalores encontrados no Exemplo 7.7 (primeiro caso, ou seja, resposta o mais

rápida) e armazenando no vetor linha P , fazemos uso do comando “K =place(A, B, P )”

para obter o ganho.


 
K = −0.0104 −0.0339 7.8509 0.4150 .

O desempenho do controlador foi simulado através de uma entrada

degrau unitário em p como pode ser observado na Figura 1. A razão para

escolher esse teste é porque, como vimos na lista anterior, é possı́vel atingir

o equilı́brio para qualquer valor de p e a linearização não depende do ponto

de p escolhido. Para o teste escolhido, o sistema apresentou amortecimento

subcrı́tico, o que poderia ser, ou não, aceitável a depender das condições de

operação do sistema.

Figura 1: Simulação controlador para θ = 0.

8
2.2 Cálculo do Ganho para Linerização em Torno de θ = π

Para o caso em the θ = π, utilizando as matrizes A e B calculadas na

seção 1.2, temos


 
K = 0.0104 0.0339 5.8584 −0.3946 .

O desempenho do controlador foi simulado através de uma entrada

degrau unitário em p como pode ser observado na Figura 2. O desempenho do

controlador para este caso foi praticamente idêntico ao do caso anterior, o que

demonstra que o cálculo dos ganhos foi muito preciso pelo método de alocação

de autovalores.

Figura 2: Simulação controlador para θ = π.

9
3 Análise do Sistema para Erros e Distúrbios

3.1 Erro de 10% na Leitura dos Sensores

Para simular o erro nos sensores foram inseridos valores 1.1 na matriz

C onde antes se considerava 1, tal que ela tomou a seguinte forma:


 
1.1 0 0 0
 
 
0 1.1 0 0
 
C=

.

0 0 1.1 0
 
 
 
0 0 0 1.1

Os resultados obtidos para o sinal de referência tal qual usado na re-

solução da Questão anterior são mostrados na Figura 3. Observa-se que os erros

no sensor inseriram muito mais oscilação no sistema, mas que não inviabiliza a

estabilização em torno do ponto desejado, dadas as devidas proporções de que

o sistema nunca conseguirá alcançar o estado desejado com uma precisão maior

do que a do erro dos sensores que alimentam o controlador.

Figura 3: Simulação para o caso de erro nos sensores.

10
3.2 Força Errada de 0.1 N

Para simular a condição pedida no enunciado, escolheu-se colocar um

operador de soma alimentado pela força u calculada e pela força errada de 0.1 N.

O resultado da simulação é mostrado na Figura 4. Como pode ser observado,

o sistema não foi capaz de se estabilizar no estado desejado (p = 1, conforme

sinal de referência em degrau unitário.

A Figura 5, por sua vez, nos mostra o valor de u calculado pelo con-

trolador, sem o erro. Podemos observar que o sistema se equilibra no ponto em

que a força u gerada pelo ganho K se anula com os 0.1 N aplicados pelo sistema

por conta do erro no atuador. O que nos mostra que esse é o motivo pelo qual

os sistema deixou de ser capaz de atingir o valor de p desejado, uma vez que, é

necessário um desvio no valor de p para anular a força espúria vinda da falha

do sistema.

Figura 4: Simulação para o caso de força errada em 0.1 N.

Como abordagem experimental para tentar solucionar o problema da

força errada com a introdução da componente integral na lei de controle do

11
Figura 5: Simulação para o caso de força errada em 0.1 N com foco na força

calculada.

sistema, utilizou-se numa primeira abordagem o ferramental do Simulink (fer-

ramenta do MATLAB R2020a) para introduzir-se um bloco integrador e mul-

tiplicar o seu resultado por um ganho que foi sintonizado por meio te tentativa

erro. O resultado do modelo final pode ser visto na Figura 6 e o modelo com a

inserçâo do ganho integrativo pode ser contemplado na Figura 7. O vetor linha

Ki para o ganho integrativo que melhor respondeu às tentativas de sintonia foi

o seguinte:
 
Ki = 0.001 0.008 0.01 0.1 .

Outra abordagem utilizada foi a reconstrução as equações do espaço

de estado com a introdução da variável ż = r − y (OGATA, 2003). No caso,

como só se intentava testar essa técnica para o sinal de referência degrau para

a posição p, as matrizes Ai e Bi do novo sistema ficaram da seguinte forma:


   
 A 0 B 
Ai = 

 e Bi =   .
  
−C 0 0

12
Figura 6: Simulação para o caso de força errada em 0.1 N com componente

integral sintonizada por tentativa e erro.

Figura 7: Modelo com componente integral na lei de controle.

Portanto, a nova equação no espaço de estados fica:


   
ẋ x
  = Ai   + Bi u.
   
z 0

Para que o sistema fosse controlável, fez-se C como uma matriz de

uma linha tal que y = x1 = p. A matriz D continuou nula, porém com uma

matriz-linha de ordem unitária.

Posteriormente foi feita a alocação de autovalores e o cálculo do vetor-

linha ganho K e o ganho kl para o novo sistema. Os autovalores utilizados

13
foram os mesmos da questão anterior, com a adição de um novo autovalor,

para o qual escolheu-se arbitariamente o valor real negativo λ5 = −50. Como

pelo Simulink não se encontrou maneiras de extrair apenas a variável x1 em

y e gerar-se gráficos de todas as variáveis, utilizou-se um script com a função

“step”para rodar a simulação. Para que a força 0.1 N fosse considerada durante

a simulação, utilizou u em função de x e r, reescrevendo-se o sistema em função

do estado completo e tal que

ė = AAe + BBr, onde


   
A − BK Bkl 0.1B 
AA = 

 e BB = 
 
.

−C 0 1

O motivo de usar-se 0.1B em BB, é porque r será o degrau unitário

que multiplicado por 0.1B resultará nas componentes geradas pela força espúria

de 0.1 N para cada uma das componentes de ẋ. Os resultados da simulação são

apresentados na Figura 8.

Para conhecimento do leitor, seguem os valores de K e kl para o caso

λ5 = −50.
 
K = 1.7076 2.8516 −13.8725 −7.0460 e kl = 0.5211.

Como se pode observar, os resultados atingidos por essa técnica aparen-

tam serem muito satisfatórios. Pretende-se no curso da disciplina aprofundar-se

melhor na questão de como escolher mais conscientemente os autovalores. Com

isso, concluem-se os estudos da lista 2.

14
Figura 8: Simulação para o caso de força errada em 0.1 N com componente

integral por alocação de autovalor −50.

15

Você também pode gostar