Capítulo 10

Funções de Transferência, Polos e Zeros

Podemos ler toda a personalidade de um sistema a partir de uma única fração?

Capítulo 10: Funções de Transferência, Polos e Zeros ↗

A receita do sistema

June: Comece o drone pairando a 1 m, com 4,9 N de empuxo base equilibrando a gravidade. Meça tanto a mudança solicitada quanto a mudança real de altura em relação a essa linha de base. Imediatamente antes de uma nova solicitação, ambas as mudanças são zero. No exemplo de degrau, a solicitação salta para 2 m em t=0t=0, então sua mudança se torna 1 m enquanto o drone ainda está a 1 m.

Theo: Ótimo, porque no capítulo passado jogamos fora os pedaços −h(0)-h(0) e a fórmula mentiu. Medidos a partir do pairar, esses valores iniciais são mesmo zero, então desta vez eles somem honestamente.

ΔH(s)=Kpms2+cs+Kp⏟G(s)⋅ΔR(s)\Delta\out{H}(s) = \underbrace{\frac{\eff{K_p}}{m s^2 + c s + \eff{K_p}}}_{G(s)} \cdot \Delta\sp{R}(s)

ΔR(s)\Delta\sp{R}(s) é a transformada da mudança solicitada a partir de 1 m; ΔH(s)\Delta\out{H}(s) é a transformada da mudança real a partir de 1 m. G(s)G(s) é fixada pelo drone e pelo controlador. É a função de transferência: mudança na saída dividida pela mudança na entrada, com ambas as mudanças começando em zero.

O gráfico ainda mostra alturas acima do solo. Adicione a altura inicial de 1 m a uma mudança prevista pela fórmula para obter a altura azul no gráfico.

Mika: June tinha razão: a fração é o drone. É como a sua receita. Coloque qualquer ingrediente e ela diz o que sai!

Experimente três entradas diferentes no mesmo drone. A receita nunca muda, apenas ΔR(s)\Delta\sp{R}(s) muda.

Capítulo 10: Funções de Transferência, Polos e Zeros ↗

Palavras novas

Função de transferência G(s)G(s)
Transformada da mudança na saída ÷ transformada da mudança na entrada, partindo do mesmo estado de repouso. Para este drone linear, é uma fração de polinômios em ss.
Partindo do repouso (condições iniciais nulas)
Toda mudança e a sua velocidade são zero em t=0t = 0, como quando medimos a partir do pairar. Aí os termos de valor inicial do Capítulo 9, como −h(0)-h(0), também são zero, e G(s)G(s) conta a história inteira.

Polos: onde o sistema quer viver

Onde G(s)G(s) explode? Onde o denominador é zero. Esses pontos são os polos, desenhados como ×. Neste drone há dois, um para cada um dos dois movimentos naturais este^{st} do Capítulo 7.

No Capítulo 8, a transformada de eate^{at} gritava em s=as = a. Leia ao contrário: onde quer que GG grite, há um movimento epte^{pt} escondido.

June: Então os polos são os modos do Capítulo 7, sentados no mapa!

Agora vamos inverter. Em vez de escolher ganhos e achar os polos, vamos arrastar os polos e ver que drone sai. Para isso precisamos de um segundo botão, Kd\eff{K_d}: um empurrão contra a velocidade, que vamos conhecer direito no Capítulo 11. Ele se soma ao arrasto cc, e as duas raízes são pp e o seu gêmeo espelhado pˉ\bar p (a barra troca o sinal da parte imaginária, como os gêmeos do Capítulo 6):

ms2+(c+Kd) s+Kp=0⟹s=p, pˉ(os polos)\begin{aligned} & m s^2 + (c + \eff{K_d})\,s + \eff{K_p} = 0 \\ \Longrightarrow\quad & s = p,\ \bar p \qquad \text{(os polos)} \end{aligned}

Capítulo 10: Funções de Transferência, Polos e Zeros ↗

Preveja primeiro! O que o drone faz se arrastarmos os polos para a metade direita do plano s?

Capítulo 10: Funções de Transferência, Polos e Zeros ↗

Lendo o mapa

Brinque com ele. Algumas regras saltam aos olhos, e cada uma é uma velha amiga disfarçada:

  • Metade esquerda = acalma, metade direita = explode. A parte real σ\sigma é a taxa com que eσte^{\sigma t} encolhe ou cresce.
  • Mais à esquerda = mais rápido. O tempo de acomodação é de cerca de 4/∣σ∣4/|\sigma| segundos (as linhas verticais tracejadas): as quatro constantes de tempo do Capítulo 7, já que e−∣σ∣te^{-|\sigma| t} fica abaixo de 2 % depois de ln⁡50/∣σ∣≈3,9/∣σ∣\ln 50/|\sigma| \approx 3{,}9/|\sigma| segundos.
  • Mais para cima = mais oscilação. A altura ω\omega é a frequência amortecida do Capítulo 7, então uma oscilação leva 2π/ω2\pi/\omega segundos.
  • O ângulo define o sobressinal. O ângulo θ\theta medido a partir do eixo real negativo dá ζ=cos⁡θ\zeta = \cos\theta (o círculo do Capítulo 7), e o sobressinal é e−π∣σ∣/ωe^{-\pi|\sigma|/\omega} (os raios tracejados). Perto do eixo real quase não há sobressinal; perto do eixo vertical, muito. (Exato para dois polos e nenhum zero, partindo do repouso. Um zero muda isso: na próxima seção, um deles transforma 12 % em 15 %.)

Mika: Eu queria apenas um polo lá em cima e outro lá embaixo. Não me deixa! O de baixo fica copiando o de cima.

Theo: Lembra dos giradores gêmeos do Capítulo 6? Um drone real tem movimento real, então cada este^{st} girante precisa do seu gêmeo espelhado para cancelar as partes imaginárias. Polos complexos sempre vêm em pares espelhados.

Preveja primeiro! Mantenha σ=−2\sigma = -2 e deslize os polos direto para cima, de ±4i\pm 4i para ±8i\pm 8i. O que muda?

June: O playground pulou quando respondemos: o par fantasma está em ±4i\pm 4i, o novo em ±8i\pm 8i. Mesma envoltória, o dobro de oscilações e um primeiro balanço bem maior.

Mika: E se os dois polos ficarem no eixo real, um em −0,2-0{,}2 e outro em −5-5?

June: O rápido some em um segundo. O lento é quem manda.

Capítulo 10: Funções de Transferência, Polos e Zeros ↗

Palavras novas

Polo
Um valor de ss onde a função de transferência explode. Cada polo pp é um movimento epte^{pt} do sistema.
Par espelhado p, pˉp,\ \bar p
Dois polos com a mesma parte real e partes imaginárias opostas. Os polos complexos de um sistema real sempre vêm assim.
Polo dominante
O polo mais perto do eixo vertical. Seu movimento lento dura mais que os outros, então em geral é ele que decide o tempo de acomodação, a não ser que um zero esteja quase em cima dele (o Capítulo 11 tem um caso assim).

Zeros: uma olhada rápida

O numerador também pode ser zero. Esses pontos são os zeros, desenhados como ○. Em geral eles mudam quanto do movimento de cada polo aparece na saída. Se um zero cai exatamente em cima de um polo, o fator comum se cancela e esse polo some desta receita de entrada para saída. Mas ele continua dentro do sistema: cutuque o drone de outro jeito, com uma rajada, e esse movimento volta. Isso importa muito se o polo escondido estiver à direita.

Aqui está um sistema com polos fixos em −2±3i-2 \pm 3i e um zero que você pode deslizar. (O Kd\eff{K_d} do nosso playground empurra contra a velocidade do drone, então a sua receita não tem zero. Empurre contra a velocidade do erro, como o Capítulo 11 vai fazer, e aparece um zero em −Kp/Kd-\eff{K_p}/\eff{K_d}: para estes polos isso dá −6,5-6{,}5, com 15 % de sobressinal em vez de 12 %.)

Capítulo 10: Funções de Transferência, Polos e Zeros ↗

June: Mesmos polos, mas quando o zero se aproxima da origem a resposta sobe muito mais rápido e tem mais sobressinal!

Theo: Mesmos polos significam os mesmos movimentos. Então o zero não pode acrescentar um movimento novo. Ele deve estar acrescentando um pouco de algo que já temos.

Capítulo 10: Funções de Transferência, Polos e Zeros ↗

Multiplicar por ss tira a inclinação (Capítulo 9), então o fator (1+s/∣z∣)(1 + s/|z|) acrescenta 1/∣z∣1/|z| vezes a inclinação. Por isso um zero perto da origem faz o sistema reagir tão forte a mudanças: o sobressinal cresce, mesmo que os polos não tenham se mexido. Longe, o zero quase não importa. Por enquanto, é tudo o que precisamos saber sobre zeros.

Palavras novas

Zero
Um valor de ss onde a função de transferência é zero: um movimento ezte^{zt} que o sistema não repassa.

Mais para a esquerda é sempre melhor?

June: Fácil: arraste os polos bem para a esquerda. Acomoda num piscar. Melhor drone de todos!

Theo: Mas de quanto empuxo isso precisa? Até agora fingimos que os motores podiam empurrar com toda a força que a matemática quisesse.

Hora de ser honesto. Nossos motores conseguem empurrar entre 0 N e 20 N (cerca de quatro vezes o peso do drone). Abaixo, os polos andam para a esquerda ao longo de uma linha de 45° (isso é ζ≈0,71\zeta \approx 0{,}71, o ponto ideal do Capítulo 7). As curvas tracejadas são a matemática com motores imaginários, sem limite; as contínuas são motores reais.

Capítulo 10: Funções de Transferência, Polos e Zeros ↗

Capítulo 10: Funções de Transferência, Polos e Zeros ↗

Depois de cerca de −3,9±3,9i-3{,}9 \pm 3{,}9i, a matemática pede mais de 20 N. O empuxo laranja achata contra o limite, e depois de cerca de −6±6i-6 \pm 6i a matemática quer até puxar o drone para baixo, o que hélices não conseguem. O drone real para de seguir a bela previsão linear. O tempo de acomodação para de melhorar em cerca de 0,7 s, perto de −6,5±6,5i-6{,}5 \pm 6{,}5i, e mais à esquerda ele piora, com sobressinal extra.

June: Deslizei até −8±8i-8 \pm 8i. A matemática diz 0,53 s. O drone real leva 0,77 s: mais lento do que em −6,5-6{,}5!

Mika: E o sobressinal foi de 4 % para 16 %. Todo aquele empuxo extra nunca esteve disponível.

June: Então "mais para a esquerda" só é melhor até você ficar sem motor. Posicionar polos é um compromisso, não uma corrida.

Palavras novas

Empurrão inicial
O empuxo pedido no primeiro instante de um degrau: mg+Kp Δrmg + \eff{K_p}\,\Delta r, antes de o drone se mover.
Orçamento de empuxo
As posições de polo que os motores conseguem bancar para um dado degrau: um círculo em torno de 0.
Limite do motor (saturação)
O empuxo real é cortado em 0–20 N, não importa o que a matemática peça.

Fechando a malha no papel

June: No Capítulo 1 desenhamos a malha como caixas e setas. No mundo de s, cada caixa só multiplica. Será que as caixas fazem a álgebra por nós?

Dê a cada caixa a sua receita. O controlador é C(s)C(s), por enquanto simplesmente Kp\eff{K_p}. O drone sozinho, com mudança de empuxo entrando e mudança de altura saindo, é P(s)=1ms2+csP(s) = \frac{1}{ms^2 + cs}: P de planta, a palavra do Capítulo 1, não o P do controle P. Ele sai direto da equação do drone, do mesmo jeito que a receita lá de cima.

June: Fácil. O pedido passa pelo controlador e depois pelo drone. É só multiplicar ao longo da linha!

ΔH=?C P ΔR=Kpms2+cs ΔR\Delta\out{H} \overset{?}{=} C\,P\,\Delta\sp{R} = \frac{\eff{K_p}}{ms^2 + cs}\,\Delta\sp{R}

Theo: Polos em 0 e −2? Nenhuma oscilação, e um polo em 0 que nunca se acomoda. Essa é a malha aberta do Capítulo 1: diga ao drone o que fazer e nunca olhe. O controlador não vê o pedido, June. Ele vê o erro.

A seta que volta do drone é todo o sentido da realimentação. O controlador age sobre ΔR−ΔH\Delta\sp{R} - \Delta\out{H}, então a saída aparece dos dois lados. Junte e divida:

ΔH=C P (ΔR−ΔH)ΔH (1+C P)=C P ΔRΔH=C P1+C P ΔR\begin{aligned} \Delta\out{H} &= C\,P\,\big(\Delta\sp{R} - \Delta\out{H}\big) \\ \Delta\out{H}\,\big(1 + C\,P\big) &= C\,P\,\Delta\sp{R} \\ \Delta\out{H} &= \frac{C\,P}{1 + C\,P}\,\Delta\sp{R} \end{aligned}

Coloque C=KpC = \eff{K_p} e P=1/(ms2+cs)P = 1/(ms^2+cs) e depois multiplique o numerador e o denominador por ms2+csms^2 + cs:

C P1+C P=Kp/(ms2+cs)1+Kp/(ms2+cs)=Kpms2+cs+Kp\frac{C\,P}{1 + C\,P} = \frac{\eff{K_p}/(ms^2+cs)}{1 + \eff{K_p}/(ms^2+cs)} = \frac{\eff{K_p}}{ms^2 + cs + \eff{K_p}}

Mika: É a receita do começo deste capítulo! Chegamos nela duas vezes: uma pela equação do drone, outra pelas caixas.

Então os polos da malha estão onde o denominador, 1+C(s) P(s)1 + C(s)\,P(s), é zero. Isso é o mesmo que C P=−1C\,P = -1. Leia C PC\,P como uma volta pela malha: o que o controlador e depois o drone fazem com um sinal. Num polo, uma volta traz o sinal de volta com o mesmo tamanho e invertido, e o sinal de menos no erro o inverte de novo. Então ele se mantém sozinho, sem pedido nenhum.

1+C(s) P(s)=0⟺C(s) P(s)=−11 + C(s)\,P(s) = 0 \quad\Longleftrightarrow\quad C(s)\,P(s) = -1

Teste com uma oscilação constante, s=iωs = i\omega. Uma volta transforma a seta da oscilação em C(iω) P(iω)C(i\omega)\,P(i\omega): mais curta ou mais longa, e girada para trás. O widget desenha essa seta para cada velocidade de oscilação, e o ponto −1 que ela teria de alcançar.

Capítulo 10: Funções de Transferência, Polos e Zeros ↗

Theo: Por mais que eu aumente Kp\eff{K_p}, a curva se dobra em direção a −1, mas nunca encosta nele. Ela chega mais perto mais ou menos na velocidade de balanço do próprio drone.

Eis o porquê. O arrasto atrasa a volta em até 90°, e a massa em até mais 90°, mas juntos eles só chegam a 180° para oscilações infinitamente rápidas. Então o controle P sozinho nunca consegue derrubar este drone. Um Kp\eff{K_p} maior só faz a volta passar mais perto de −1, e mais perto significa menos amortecimento: o "mais KpK_p, mais oscilação" do Capítulo 2, agora como figura.

Capítulo 10: Funções de Transferência, Polos e Zeros ↗

Palavras novas

Malha fechada
Um controlador que age sobre o erro, de modo que a saída volta para a sua própria entrada: ΔH=C P1+C P ΔR\Delta H = \frac{C\,P}{1 + C\,P}\,\Delta R.
Ganho de malha C(s) P(s)C(s)\,P(s)
O que uma volta pela malha faz com um sinal. Os polos da malha fechada estão onde ele vale −1.

O que sabemos agora

O que descobrimos

  • Sim, uma fração dá conta. A função de transferência G(s)G(s) = mudança na saída ÷ mudança na entrada no mundo de s, partindo do repouso. É a receita do sistema, ΔH=G⋅ΔR\Delta\out{H} = G\cdot\Delta\sp{R}, e ela sai direto da equação do drone.
  • Os polos (×) são onde G(s)G(s) explode: os modos epte^{pt} de que o sistema é feito.
  • Metade esquerda = estável, metade direita = explode. Mais à esquerda = mais rápido (acomoda em cerca de 4/∣σ∣4/|\sigma| s, uma regra prática), mais alto = mais oscilação (uma oscilação = 2π/ω2\pi/\omega s), ângulo = amortecimento ζ\zeta = sobressinal e−π∣σ∣/ωe^{-\pi|\sigma|/\omega}. O polo mais perto do eixo é quem manda.
  • Polos complexos sempre vêm em pares espelhados.
  • Os zeros (○) mudam quanto de cada modo você recebe. Perto da origem eles dão um tranco: 1/∣z∣1/|z| vezes a inclinação.
  • Feche a malha no papel e a receita é C P1+C P\frac{C\,P}{1 + C\,P}. Os polos estão onde uma volta pela malha, C PC\,P, vale −1.
  • O empurrão inicial é mg+m∣p∣2mg + m|p|^2 para um degrau de 1 m, então polos muito distantes precisam de um empuxo que os motores não têm.

Theo: "Os polos são lindos. Mas espera: trapaceamos o capítulo inteiro entregando ao drone o empuxo de pairar. Sem isso, a gravidade ainda faz ele cair. Nosso mapa está certo. É o nosso controlador que precisa de conserto."

Capítulo 10: Funções de Transferência, Polos e Zeros ↗