O slide No. 19 de 6_intro_root_locus.pdf, mostra o resultado gráfico do aumento do ganho no RL do sistema abaixo e consequente resposta no domínio tempo para uma entrada degrau quando este sistema é colocado para funcionar em malha-fechada com certo valor de ganho:
Planta, :
Esta planta quando submetida a um sistema em MF com ganho variável, rende:
A eq. Característica, fica:
Podemos ir variando o valor de e ir verificando como os pólos de MF "caminham" no RL:
>> rlocus(G)>> hold on>> K=1;>> EC=[1 21 146 (K+336) 5*K];>> polosMF=roots(EC)polosMF = -8.1554 -6.7224 -6.1073 -0.014933>> plot(real(polosMF), imag(polosMF), 'r+', 'LineWidth',2, 'MarkerSize',14)>> K=10;>> EC=[1 21 146 (K+336) 5*K];>> polosMF=roots(EC)polosMF = -8.8346 + 0i -6.0055 + 0.77683i -6.0055 - 0.77683i -0.15434 + 0i>> plot(real(polosMF), imag(polosMF), 'r+', 'LineWidth',2, 'MarkerSize',14)>> K=100;>> EC=[1 21 146 (K+336) 5*K];>> polosMF=roots(EC)polosMF = -10.868 + 0i -4.182 + 0i -2.9751 + 1.4663i -2.9751 - 1.4663i>> plot(real(polosMF), imag(polosMF), 'r+', 'LineWidth',2, 'MarkerSize',14)>> K=1000;>> EC=[1 21 146 (K+336) 5*K];>> polosMF=roots(EC)polosMF = -15.851 + 0i -0.090226 + 7.9674i -0.090226 - 7.9674i -4.9684 + 0i >> plot(real(polosMF), imag(polosMF), 'r+', 'LineWidth',2, 'MarkerSize',14)Uma "animação" variando o ganho aparece na figura abaixo:

Sobre traçados de RL e seus detalhes, pode-se ainda usar a ferramenta Root Locus Gui:
versão (antiga, de 2019) desenvolvida para o Matlab:
versão Java (página web interativa):
No caso mostrado no exemplo inicial desta página, temos:
Um sistema com 1 zero e 4 pólos.
Podemos determinar o ponto de partida das assíntotas do RL como sendo:
xxxxxxxxxx>> sigma_a=((0-6-7-8)-(-5))/(4-1)sigma_a = -5.3333E os ângulos de partida das assíntotas como sendo:
xxxxxxxxxx>> th=((2*0+1)*180)/(4-1)th = 60>> th=((2*1+1)*180)/(4-1)th = 180>> th=((2*2+1)*180)/(4-1)th = 300>> th=((2*3+1)*180)/(4-1)th = 420>> 360-420ans = -60Pontos de partida (break-out) e pontos de chegada (break-in) são determinados à partir de diferenciação da .
A neste caso é:
Note que para todos os pontos do RL, e ao longo do eixo , , então:
Resolvendo a expressão anterior para , temos:
Diferenciando em relação à e fazendo esta derivada ser igual à zero, leva à:
Lembrando da regra da cadeia (derivadas):
x>> % necessário symbolic toolbox instalado...>> syms sigma>> K = (-(sigma+5))/(sigma^4+21*sigma^3+146*sigma^2+336*sigma)K =-(sigma + 5)/(sigma^4 + 21*sigma^3 + 146*sigma^2 + 336*sigma)>> dK=diff(K)dK =((sigma + 5)*(4*sigma^3 + 63*sigma^2 + 292*sigma + 336))/(sigma^4 + 21*sigma^3 + 146*sigma^2 + 336*sigma)^2 - 1/(sigma^4 + 21*sigma^3 + 146*sigma^2 + 336*sigma)>> pretty(dK) 3 2(sigma + 5) (4 sigma + 63 sigma + 292 sigma + 336) 1---------------------------------------------------- - ------------------------------------------- 4 3 2 2 4 3 2 (sigma + 21 sigma + 146 sigma + 336 sigma) sigma + 21 sigma + 146 sigma + 336 sigmaOu seja:
Encontrando as raízes para o polnôimio acima, usando o Matlab:
xxxxxxxxxx>> r=solve(dK)r = root(z^4 + (62*z^3)/3 + (461*z^2)/3 + (1460*z)/3 + 560, z, 1) root(z^4 + (62*z^3)/3 + (461*z^2)/3 + (1460*z)/3 + 560, z, 2) root(z^4 + (62*z^3)/3 + (461*z^2)/3 + (1460*z)/3 + 560, z, 3) root(z^4 + (62*z^3)/3 + (461*z^2)/3 + (1460*z)/3 + 560, z, 4)>> valores=vpa(r)valores = - 3.3780472678327300285438795155159 - 0.49941127861787328582753134232288i - 3.3780472678327300285438795155159 + 0.49941127861787328582753134232288i -6.3627551233207089905144833359899 -7.547817007680497619064424299645>> Ou seja:
Ou:
xxxxxxxxxx>> dK2=[1 62/3 461/3 1460/3 560];>> r2=roots(dK2)r2 = -7.5478 + 0i -6.3628 + 0i -3.378 + 0.49941i -3.378 - 0.49941i>> % plotando estes valores sobre o RL de G(s)>> figure; rlocus(G)>> hold on; plot(real(r2), imag(r2), 'mo', 'LineWidth', 2, 'MarkerSize', 14)>> axis([-9 -2 -4 4])>> sigma=r2(2)sigma = -6.3628
Para este caso, um valor válido seria: .
Então quando ,
Como:
Então substituindo no lugar de o valor de , teremos:
xxxxxxxxxx>> % calculando alguns termos com auxílio do Matlab:>> EC_aux=[sigma^4 21*(sigma^3) 146*(sigma^2) 336*sigma 0]EC_aux = 1639 -5409.5 5910.8 -2137.9 0isolando teremos:
xxxxxxxxxx>> soma_aux = EC_aux(1)+EC_aux(2)+EC_aux(3)+EC_aux(4)soma_aux = 2.4081xxxxxxxxxx>> % Completando os cálculos com ajuda do Matlab:>> K_aux=soma_aux/(-(sigma+5))K_aux = 1.7671Verificando:
xxxxxxxxxx>> ftmf=feedback(K_aux*G,1);>> polosMF=pole(ftmf)polosMF = -8.248 + 0i -6.3628 + 7.2242e-08i -6.3628 - 7.2242e-08i -0.02646 + 0i>> % percebemos um par de pólos complexos no mesmo ponto no eixo x>> % com parte imaginária praticamente nula>> % gerando uma figura do RL mostrando este ponto:>> figure;>> rlocus(G)>> hold on;>> plot(real(polosMF), imag(polosMF), 'm+', 'LineWidth',2, 'MarkerSize',14)>> axis([-9 0 -4 4])E podemos visualizar o gráfico do RL destacando este ponto em especial:

isto significa que enquanto , a resposta deste sistema em MF será super-amortecida (sem overshoot), uma vez que só teremos pólos de MF com componentes reais.
Com este valor de ganho, vamos obter o menor tempo de assentamento possível para uma resposta super-amortecida:
xxxxxxxxxx>> figure; step(ftmf)ou graficamente:

Outros exemplos
Ex_1:

Ex_2:

Ex_3:

Fernando Passold, em 03/05/2024.