Capítulo 12

De volta ao chuveiro

Por que oscilamos, e quão perto da borda estamos?

Capítulo 12: De volta ao chuveiro ↗

O chuveiro, com novos olhos

June: Coloquei o PID do nosso drone no chuveiro (a mesma sensação ágil, ajustada para unidades de manopla). Oscilou quente, frio, quente… igualzinho à Mika no Capítulo 0. O drone nunca fez isso!

Theo: O drone não tem grande atraso. O chuveiro tem 2,5 segundos de tubulação. Vamos finalmente descobrir o que um atraso faz.

O chuveiro tem duas partes lentas: o cano, um atraso puro de 2,5 s, e o suavizador, a cabeça e as paredes do cano esquentando com a constante de tempo do Capítulo 3, τ=1\tau = 1 s (depois de 1 s ele já fechou 63% da distância até uma nova temperatura).

Primeiro, uma confissão sobre a "mão normal" do Capítulo 0. Ela girava a manopla a uma velocidade proporcional ao quão errada a água parecia: velocidade da manopla =k⋅e= k\cdot\err{e}, com k=0,8 %k = 0{,}8\,\% de manopla por segundo por °C. Uma velocidade proporcional ao erro significa que a posição da manopla é o acúmulo de erros passados. Isso é um controlador I, com Ki=kK_i = k.

Mika: Espera, então no Capítulo 0 eu era um controlador PID? Bem, um controlador I. Um muito ansioso.

Atraso é uma defasagem na oscilação

Theo: Eu ainda acho que um atraso só deixa tudo mais lento. Ele não deveria ser capaz de tornar nada instável.

Vamos isolar primeiro o atraso puro do cano. Imagine uma onda senoidal na entrada do cano viajando até o chuveiro sem ser suavizada: a saída tem a mesma forma, mas chega 2,5 s depois. Esse atraso equivale a quanto, em relação a uma oscilação?

Capítulo 12: De volta ao chuveiro ↗

Theo: Espera. Numa oscilação de 5 segundos, a água quente chega exatamente quando a manopla pede frio. Isso não é mais lento. Isso é ao contrário.

O atraso do cano continua sendo 2,5 s, mas o seu atraso de fase depende de quão rápido a onda oscila. Chame o atraso de fase de ϕ\phi e o atraso de LL. Se uma oscilação leva TT segundos (aqui TT é um tempo, não uma temperatura), sua velocidade angular é ω=2π/T\omega=2\pi/T radianos por segundo. Um atraso de fase positivo significa que a saída vem atrás da entrada. Engenheiros escrevem um atraso de fase como um ângulo negativo, por isso os gráficos abaixo descem.

Uma oscilação inteira é uma volta completa do girador do Capítulo 5: 360°, ou 2π radianos. Então o que importa é que fração da oscilação o atraso cobre: L/TL/T.

ϕ=LT⏟frac¸a˜o da oscilac¸a˜o⋅360∘=ωL radianos,ω=2πT\phi = \underbrace{\frac{L}{T}}_{\text{fração da oscilação}}\cdot 360^\circ = \omega L \text{ radianos},\qquad \omega = \frac{2\pi}{T}

Capítulo 12: De volta ao chuveiro ↗

Numa oscilação de 5 segundos, 2,5 s é meia oscilação: 180°. Neste modelo de atraso puro, cada crista da saída cai em cima de um vale da entrada. O suavizador do chuveiro também encolhe as oscilações rápidas; vamos acrescentá-lo a seguir.

Mika: Então os mesmos 2,5 s são um empurrãozinho para uma oscilação preguiçosa e uma virada completa para uma rápida. O cano nunca muda. A oscilação, sim!

Medindo o chuveiro uma oscilação de cada vez

Agora acrescente o suavizador ao atraso do cano. A cabeça e as paredes do cano demoram para esquentar, então o chuveiro completo atrasa e suaviza as mudanças da manopla. O plano: oscile a manopla numa velocidade, espere um ritmo estável e meça dois números:

  • Ganho (a mesma palavra do ganho do controlador: tamanho que sai ÷ tamanho que entra): quão grande é a oscilação de temperatura, comparada com a oscilação na mistura de água que pedimos.
  • Fase: quanto ela está atrasada, como um ângulo: a fração de uma oscilação inteira, vezes 360°.

Cada medição coloca um ponto em dois gráficos. Meça pelo menos cinco velocidades, lentas e rápidas.

Capítulo 12: De volta ao chuveiro ↗

O suavizador encolhe as oscilações rápidas, enquanto o cano continua acrescentando atraso de fase. Essas curvas de ganho e fase em função da velocidade de oscilação formam um diagrama de Bode. Juntas, elas são a resposta em frequência do chuveiro: como ele trata cada velocidade de oscilação. Aqui a entrada é a temperatura da água misturada, então as oscilações lentas têm ganho 1. Se usássemos a fração da manopla como entrada, o ganho seria 45 vezes maior. Para obter a resposta em frequência a partir da fórmula, faça s=iωs = i\omega: o mesmo truque que encontrou a borda do Capítulo 11. (Funciona porque o chuveiro sozinho é estável, então suas oscilações entram num ritmo constante que podemos medir.)

G(iω)=e−iωL1+iωτ,∣G∣=11+ω2τ2,∠G=−arctan⁡(ωτ)−ωLG(i\omega) = \frac{e^{-i\omega L}}{1 + i\omega\tau}, \qquad |G| = \frac{1}{\sqrt{1+\omega^2\tau^2}}, \qquad \angle G = -\arctan(\omega\tau) - \omega L

Capítulo 12: De volta ao chuveiro ↗

June: Achei! Perto de 0,95 rad/s o chuveiro sozinho vira uma oscilação de cabeça para baixo. Guardem essa velocidade.

Quão perto do precipício?

Agora feche a malha: mão → manopla → cano → pele → mão. Siga uma oscilação por todo o caminho. Para a mão do Capítulo 0, a volta pela malha é G∘G_{\circ} (um circulozinho de malha, porque LL já é o atraso):

G∘(s)=ks⏟ma˜o⋅45 e−2,5ss+1⏟chuveiroG_{\circ}(s) = \underbrace{\frac{k}{s}}_{\text{mão}}\cdot\underbrace{\frac{45\,e^{-2{,}5s}}{s+1}}_{\text{chuveiro}}

A realimentação subtrai (erro = alvo − temperatura). Isso é um ×(−1), a meia-volta do Capítulo 5, então a onda se inverte uma vez. Se a volta pela malha também a atrasa em exatamente 180°, as duas inversões se cancelam, e cada correção chega perfeitamente no ritmo do balanço, como empurrar um balanço de parquinho no momento certo. Se a malha devolve a onda do mesmo tamanho (ganho 1), o balanço se mantém sozinho; maior que 1, ele cresce. É de novo o 1+C P=01 + C\,P = 0 do Capítulo 10, sobre a linha s=iωs = i\omega: uma volta que retorna invertida e do mesmo tamanho é G∘(iω)=−1G_{\circ}(i\omega) = -1.

June: Para esta malha simples do chuveiro, a fase passa por −180° em uma velocidade de oscilação relevante. Encontre essa velocidade no diagrama de fase e depois leia o ganho de malha na mesma velocidade no diagrama de ganho. Ele está abaixo ou acima de 1?

Capítulo 12: De volta ao chuveiro ↗

Deslize até o total passar de 180°, entre 0,45 e 0,46 rad/s. No cruzamento exato, cerca de 0,457 rad/s, o balanço volta com 0,72 vez o tamanho, então a mão poderia ser cerca de 1 ÷ 0,72 ≈ 1,4 vez mais forte antes de chegar à borda.

Palavras novas

Margem de ganho
Quantas vezes você poderia multiplicar o ganho do controlador antes que o ganho de malha chegue a 1 na velocidade de −180°. Abaixo de 1 = passou do limite.
Margem de fase
Na velocidade em que o ganho de malha é exatamente 1, quanto atraso de fase extra seria preciso para chegar a −180°. Mais é mais seguro; 45°–60° é um alvo comum (o parêntese abaixo explica por quê).

No nosso chuveiro, a fase de G∘G_{\circ} chega a −180° em ω≈0,457\omega \approx 0{,}457 rad/s, um período de oscilação de cerca de 13,8 s. A mão normal (k=0,008k = 0{,}008) tem uma margem de ganho de só cerca de 1,4, e uma margem de fase de cerca de 22° (onde o ganho de malha é 1, em 0,34 rad/s, a fase é −158°). Pertinho da borda! A mão mais forte dobra o ganho: 1,4 ÷ 2 = 0,7, precipício abaixo. É exatamente por isso que ela nunca se acomodou.

Preveja primeiro! Suponha que o cano tivesse o dobro do comprimento (um atraso de 5 s). O que acontece com o maior ganho de mão que ainda é estável?

Capítulo 12: De volta ao chuveiro ↗

Capítulo 12: De volta ao chuveiro ↗

Mika: O dobro de cano, mais ou menos metade de mão. E os balanços na borda também ficam mais lentos: quase 24 segundos!

Theo: Tá, retiro o que disse. Um atraso não só deixa as coisas mais lentas: ele come margem de fase, e a margem de fase é a única coisa entre você e uma oscilação.

O seu chuveiro do Capítulo 0, explicado

Aqui está a sua própria experiência do Capítulo 0. Se as suas oscilações estavam perto do limite, o período delas deve ser próximo do que a malha prevê. Tem uma reviravolta: as pessoas não são todas o mesmo tipo de controlador.

Capítulo 12: De volta ao chuveiro ↗

Uma mão de velocidade (girar a manopla enquanto parece errado) é um controlador I: sua borda fica em balanços de 13,8 s. Uma mão de posição ("tá quente demais, coloca a manopla aqui") age como um controlador P: G∘(s)=45K e−2,5s/(s+1)G_{\circ}(s) = 45K\,e^{-2{,}5s}/(s+1). Uma mão de posição não tem pilha, então não tem 90° próprios: o cano e o suavizador sozinhos precisam chegar a 180°, o que acontece numa oscilação mais rápida, ω≈0,95\omega \approx 0{,}95 rad/s (a velocidade de cabeça para baixo da June). Isso significa balanços de 6,6 s, para qualquer KK acima de cerca de 0,031 de manopla por °C. A maioria das pessoas é uma mistura. (A mão normal do robô balança um pouco mais devagar que 13,8 s, cerca de 15,5 s, porque fica logo antes da borda; os balanços da mão mais forte, cerca de 11,6 s, são achatados pela manopla batendo nos extremos.)

Capítulo 12: De volta ao chuveiro ↗

Mika: Então, quando eu girava a manopla de uma vez direto para um ponto, eu era uma mão de posição. Meus balanços de seis segundos eram o cano e o suavizador, não dedos desajeitados.

Projete um chuveiro robô

Agora vamos vencer nossas próprias mãos. O robô usa PI: o P reage ao erro de temperatura atual, e o I lembra o erro acumulado. Juntos, eles deixam a manopla responder logo, enquanto o I encontra a posição certa para durar.

June: Fácil. Vou usar ganhos grandes, como no drone: rápido e ágil. Já estão configurados. Olha só!

Capítulo 12: De volta ao chuveiro ↗

June: …ele fica oscilando sem parar, quente–frio–quente, a cada 6 segundos, como uma mão de posição no Capítulo 0. Os ganhos grandes empurraram a velocidade de ganho 1 para além da velocidade de −180°. Margem de fase nenhuma.

Theo: O drone aguentava ganhos grandes porque quase não tinha atraso. Aqui, robusto quer dizer suave: deixe margem para o atraso. Experimente meus ganhos suaves, algo como Kp≈1K_p \approx 1 e Ki≈0,6K_i \approx 0{,}6.

O P reage ao agora, o I à pilha. Acrescentar um pouco de agora move a manopla um pouco antes, o que devolve fase: avanço de fase, cerca de 37° na antiga velocidade de −180° com os ganhos do Theo.

Um PI com boa margem se acomoda em cerca de 9,4 segundos, sem grandes oscilações repetidas. Isso supera a mão normal (que passou quase um minuto oscilando antes de se acalmar) e a maioria dos humanos. Mas não pode vencer a física: nada pode reagir à água que ainda não chegou. Os engenheiros têm um truque para atrasos longos, o preditor de Smith, que executa uma pequena simulação do cano dentro do controlador. Isso é história para outro caderno.

Robustez é a verdadeira lição. Seu modelo do chuveiro nunca é perfeito: o cano pode ser mais longo, o aquecedor mais fraco. Uma margem diz o quanto o modelo pode estar errado, como um número que dá para sentir. A margem de fase (em radianos) dividida pela velocidade de ganho 1 é uma margem de atraso: quantos segundos de cano extra a malha aguenta.

Capítulo 12: De volta ao chuveiro ↗

Theo: A mão normal só aguenta cerca de 1,1 s de cano extra. Meu robô suave aguenta 3,5 s. É isso que robusto quer dizer.

O que entendemos agora

O que descobrimos

  • Um atraso LL defasa uma oscilação em ωL\omega L: nada para oscilações lentas, muito para as rápidas.
  • Uma pilha (I) atrasa toda oscilação em 90°; um suavizador, em até 90°; um cano, em ωL\omega L, sem limite.
  • Alimentar com ondas senoidais e medir ganho e fase dá a resposta em frequência; plotada, é um diagrama de Bode, e é só G(iω)G(i\omega).
  • Para esta malha simples do chuveiro, a oscilação autossustentada começa quando a malha atinge −180° de fase com ganho 1; ganho maior faz os balanços crescerem até que os limites intervenham.
  • Margem de ganho e margem de fase medem a distância até esse precipício. Atraso maior significa menos margem, então você precisa de um controle mais suave.
  • Nossos balanços do Capítulo 0 eram um controlador (nós) com margem pequena demais.

Agora temos todas as ferramentas: realimentação, PID, polos, margens. Hora do teste de verdade: vento, uma entrega de pacote e um sensor ruidoso. Você consegue manter o drone a 2 m?

Capítulo 12: De volta ao chuveiro ↗