Skip to content

Instantly share code, notes, and snippets.

@lopesivan
Created June 16, 2025 19:36
Show Gist options
  • Save lopesivan/d7f1eebb465d0e8701edbbb05a8ad98c to your computer and use it in GitHub Desktop.
Save lopesivan/d7f1eebb465d0e8701edbbb05a8ad98c to your computer and use it in GitHub Desktop.

Não se assuste com a resposta curta: só circuitos que possuam AO MESMO TEMPO um indutor ($L$) e um capacitor ($C$) podem realmente ressoar.

Um circuito de primeira ordem (RC ou RL) tem apenas um elemento reativo; falta a “troca de energia” entre dois campos (elétrico ↔ magnético) que caracteriza a ressonância.

Circuito Ordem Há ressonância? O que costuma interessar Expressão
RC (série ou paralelo) Não há frequência de ressonância Frequência (ou pulsação) de corte do filtro passa-baixa/alta $ \displaystyle f_c = \frac{1}{2\pi RC}$
RL (série ou paralelo) Não há frequência de ressonância Frequência (ou pulsação) de corte do filtro passa-alta/baixa $ \displaystyle f_c = \frac{R}{2\pi L}$
RLC (série ou paralelo) Sim. A impedância reativa se anula e a potência/ corrente é máxima ou mínima Frequência (ou pulsação) de ressonância $\displaystyle f_0 = \frac{1}{2\pi\sqrt{LC}},\quad \omega_0 = \frac{1}{\sqrt{LC}}$

Por que RC e RL não ressoam?

  • Eles só armazenam energia em um tipo de campo (elétrico ou magnético); a energia vai sendo dissipada em $R$ e não oscila de volta.
  • O que se define é o “ponto de -3 dB” (frequência de corte), não um pico de ganho.

RLC: verdadeira ressonância

  • Possui dois elementos reativos → a energia oscila $C \leftrightarrow L$.

  • Na ressonância:

    • Série: impedância mínima $Z_{\min}=R$ → corrente máxima.
    • Paralelo: impedância máxima → corrente mínima.

Precisa de valores numéricos? Basta indicar $R$, $L$ e $C$ que eu calculo $f_c$ (para RC/RL) e $f_0$ (para RLC) prontinho.

@lopesivan
Copy link
Author

Por que o bode.dat tem 5 colunas — e como arrumar isso

O comando wrdata grava os vetores em pares ou trios :

Tipo do vetor listado Colunas escritas Observação
real escala, valor 2 colunas
complexo escala, Re, Im 3 colunas

Opcional:

set wr_vecnames       ; escreve o cabeçalho
option numdgt=8       ; mais dígitos

Exemplo completo do bloco .control

.control
set filetype=ascii
ac dec 100 10 100k
  • Ganho em dB
    let db_vo = db(v(vo))

  • ***** escolha UMA das opções *****

  • --- a) só duas colunas ------------
    wrdata bode.dat db_vo

  • --- b) freq + dB (3 colunas) ------

  • set wr_singlescale

  • wrdata bode.dat frequency db_vo


quit
.endc


Como plotar com gnuplot

Caso 1 — arquivo com 2 colunas

plot 'bode.dat' using 1:2 with lines lw 2 title '|Vo| (dB)'

Caso 2 — arquivo com 5 colunas que você já gerou

A quinta coluna é o ganho:

plot 'bode.dat' using 1:5 with lines lw 2 title '|Vo| (dB)'

(ou using 4:5 — as duas dão na mesma, porque a escala se repete)


Pronto! Agora você controla exatamente o que sai no bode.dat e já sabe qual coluna o gnuplot deve usar. Qualquer outra dúvida, é só perguntar.

### Por que o **bode.dat** tem 5 colunas — e como arrumar isso

O comando wrdata grava os vetores em pares ou trios :

Tipo do vetor listado Colunas escritas Observação
real escala, valor 2 colunas
complexo escala, Re, Im 3 colunas

Se você listar vários vetores, cada um gera o seu par/trio, começando outra vez pela escala ([ngspice.sourceforge.io]1).

No seu wrdata bode.dat frequency db_vo:

  1. frequency (vetor complexo interno do ngspice) ⇒ 3 colunas

    • Col 1 = escala (freq)
    • Col 2 = parte real (freq outra vez)
    • Col 3 = parte imaginária (= 0)
  2. db_vo (real) ⇒ 2 colunas

    • Col 4 = escala (freq, de novo)
    • Col 5 = |Vo| [dB]

Por isso cada linha vira

f   f   0   f   dB

como você viu.


💡 Duas soluções simples

Quer um arquivo O que mudar no .control Resultado
apenas 2 colunas (freq, dB) wrdata bode.dat db_vo
(não liste frequency)
bode.dat: f dB
3 colunas (freq única, Re e Im ou dB) set wr_singlescale
wrdata bode.dat frequency db_vo
bode.dat: f f 0 dB

Opcional:

set wr_vecnames       ; escreve o cabeçalho
option numdgt=8       ; mais dígitos

Exemplo completo do bloco .control

.control
set filetype=ascii
ac dec 100 10 100k

* Ganho em dB
let db_vo = db(v(vo))

* ***** escolha UMA das opções *****
* --- a) só duas colunas ------------
wrdata bode.dat db_vo
* --- b) freq + dB (3 colunas) ------
* set wr_singlescale
* wrdata bode.dat frequency db_vo
* -----------------------------------

quit
.endc

Como plotar com gnuplot

Caso 1 — arquivo com 2 colunas

plot 'bode.dat' using 1:2 with lines lw 2 title '|Vo| (dB)'

Caso 2 — arquivo com 5 colunas que você já gerou

A quinta coluna é o ganho:

plot 'bode.dat' using 1:5 with lines lw 2 title '|Vo| (dB)'

(ou using 4:5 — as duas dão na mesma, porque a escala se repete)


Pronto! Agora você controla exatamente o que sai no bode.dat e já sabe qual coluna o gnuplot deve usar. Qualquer outra dúvida, é só perguntar.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment