Controle Automático I

Trabalho: 6) Root Locus

Objetivo: Compreender como o ganho influencia a posição dos pólos em MF (Malha-Fechada).

1) RL de sistema simples

Adapte o script rlsimples.m abaixo para o caso da função transferência (planta) indicada à seguir e entenda como ser origina o RL para um sistema simples como este:

Suponha que este sistema será incorporado numa malha de controle automático com realimentação unitária negativa e que será acrescentando um ganho proporcional, com valor variável . Note que o traçado do RL é formado plotando a forma como os pólos de MF deste sistema "caminham" no plano-se conforme o ganho é variado de valores muito baixo à valores elevados.

A função transferência em MF fica:

A EC(s), equação característica fica:

Quando , resulta: , com raíz (pólo de MF) em: .

O Matlab permite determinar as raízes deste polinômio fazendo:

Podemos obter um gráfico de Root Locus simplesmente variando o valor do ganho e plotando o pólo de MF calculado no plano-s.

O script abaixo (rlsimples.m) permite automatizar este processo (adapte a variável EC para o seu caso)

Este script gera uma "tabela" com valores. Deverá ser notado como o pólo de MF "caminha" do pólo de MA em , na direção do zero em .

Você pode usar a função logspace() para variar o vetor de ganhos de forma logarítmica:

Você pode plotar a sequencia de pólos de MF executando este outro script em sequência do rlsimples.m:

Em seguida, use o comando locus() do Matlab para obter o gráfico do RL para este sistema. Deve resultar algo do tipo:

rl_simples_G1

1) RL de sistema de 2a-ordem

Suponha agora que se deseja o RL para o sistema abaixo:

A idéia é gerar uma tabela relacionando ganho (variando) com pólos de MF associados com cada valor de ganho. e depois um gráfico do RL que mostre como a posição dos pólos de MF variam conforme o ganho varia. Deve ser obtido algo semelhante à:

KPolo 1Polo 2
0.1-9.98999-0.01001
0.162378-9.98374-0.0162642
0.263665-9.97356-0.0264364
0.428133-9.957-0.0429982
0.695193-9.92999-0.0700094
1.12884-9.88581-0.114188
1.83298-9.81321-0.186787
2.97635-9.69294-0.307064
4.83293-9.49078-0.509224
7.8476-9.14155-0.858454
12.7427-8.50104-1.49896
20.6914-7.07572-2.92428
33.5982-5 + j2.93227-5 - j2.93227
54.5559-5 + j5.43654-5 - j5.43654
88.5867-5 + j7.97413-5 - j7.97413
143.845-5 + j10.9016-5 - j10.9016
233.572-5 + j14.442-5 - j14.442
379.269-5 + j18.822-5 - j18.822
615.848-5 + j24.3074-5 - j24.3074
1000-5 + j31.225-5 - j31.225

Obs.: A tabela acima foi gerada para a planta: , usando a rotina indicada abaixo rlsimples3.m.

Este caso termina sendo um pouco mais complexo que o caso anterior, porque dependendo do valor do ganho , haverá pólos de MF que são números complexos. Por este motivo, segue o script rlsimples3.m capaz de gerar uma tabela como a mostrada anteriormente.

Obs.: Adapte a rotina para o seu caso. Isto significa que você deve determinar os termos do polinômio da equação característica antes de executar esta rotina e então modificar a linha com a declaração: EC = [1 10 K(index)]; para o seu caso.

 

3) RLs Diversos vs Ku

Use o Matlab (ou Octave) para: 1) obter o RL para os diferentes sistemas listados à seguir:

a) (sistema de 2a-ordem, só pólos, ganho DC unitário)

b) (sistema de 3a-ordem, só pólos)

c) (sistema similar ao anterior, mas com ganho DC unitário)

d) (sistema de 3a-ordem com 1 zero)

e) (sistema de 3a-ordem com 1 zero no semi-plano direito do plano-s sistema de fase mínima)

f) (sistema de 4a-ordem, só pólos)

g) (modelo de 5a-ordem, simplificado, para controle de altitude de um drone)

Também: 2) Informar o máximo ganho proporcional, ou Ultimate Gain, que pode ser aplicado à cada um dos sistemas; mostre no RL (com auxílio do "data tip") o ponto onde ocorre o ganho máximo; e 3) mostre uma simulação mostrando o resultado em malha-fechada, quando se aplica uma entrada degrau, usando este valor de ganho. Eventualmente o sistema permite , explique estes casos.

Observações:

  1. Não esquecer de fechar a malha com o ganho desejado usando comando feedback() antes de usar comando step().

  2. O sistema (e), com função transferência: , é do tipo de "sistema de fase mínima", isto é, sua resposta antes de alcançar um valor positivo para uma referência positiva, responde inicialmente com valores negativos. Se você tentar fechar a malha deste sistema com vai resultar na resposta como a mostrada na proxima figura: step_G5_K_0_5.png

  3. Eventualmente para ingressar os dados do denominador da última função transferência você pode usar a funçao conv() do Matlab:

    Ou pode-se imaginar blocos sendo "cascateados" e realizar uma simples multiplicação entre as funções transferência:

    E na realidade:

    • O bloco1 corresponde à dinâmica de rotação (pitch/roll) do drone (sistema de 2a-ordem, com frequência natural de oscilação, rad/s e fator amortecimento, ; dinâmica mais rápida);
    • O bloco2 corresponde à dinâmica de translação vertical do drone (também um sistema de 2a-ordem com sua frequência natural de oscilação, rad/s e fator amortecimento, ; dinâmica mais lenta);
    • O bloco3 corresponde ao atraso do filtro do sensor de altitude (sistema de 1a-ordem, com rad/s).]
  4. Se sugere o uso do comando axis([xmim xmax ymin ymax]) ou xlim([xmim xmax]), para enquadrar melhor os gráficos, principalmente no caso das respostas ao degrau. No caso do último exemplo, veja a diferença obtida:

    step(ftmf_G7)step(ftmf_G7); xlim([0 200])
    step_G7_K_47_feio.pngstep_G7_K_47.png

 

Observação Final

Favor exportar figuras aumentando resolução para 150 dpi, usando tamanho mínimo de fontes = 14 (para as figuras) -- ver: recomendações para salvar gráficos.


Fernando Passold, em 23/05/2025.