agentee

Simular

Simulação de circuito

Executa o lado analógico de um esquema a partir da sua lista de redes: ponto de funcionamento, CA, transitório e ruído, com amplificadores operacionais e diodos modelados a partir das suas fichas técnicas e verificações nos resultados.

Uma simulação de circuito executa o lado analógico de um esquema diretamente do seu netlist: o ponto de operação sempre, e uma varrimento AC, um transitório e uma análise de ruído quando a especificação os pede. Não é preciso layout, por isso responde às perguntas que decidem o esquema: o enviesamento está onde deve, qual é o ganho a 1 kHz, onde a saída satura, quão alto é o ruído.

Iniciar uma

agentee new sim preamp-ac --kind circuit

O exemplo preamp executa um pré-amplificador de 9 V com um amplificador operacional através de todas as análises. Esta é a sua execução AC e de ruído, reduzida:

name = "preamp-ac"
kind = "circuit"
schematic = "preamp"
record = ["VCC", "VREF", "GAIN_OUT", "FILT_OUT", "OUT"]

[[drives]]
net = "VBAT"
dc = "9V"

[[drives]]
net = "IN"
ac = 1
resistance = "100ohm"

[ac]
from = "1Hz"
to = "1MHz"
points = 20

[noise]
output = "OUT"
input = "IN"
from = "20Hz"
to = "20kHz"

[[checks]]
v = "VREF"
min = 4.1
max = 4.3

[[checks]]
v = "OUT"
at = "1kHz"
min = 18.3
max = 19.3

[[checks]]
noise = "OUT"
at = "1kHz"
max = "500n"

[[blocks]]
ref = "U1"
kind = "opamp"
gain = 1e5
gbw = "0.7MHz"
en = "40n"
vos = "3mV"
headroom_high = "1.5V"
headroom_low = "5mV"
agentee sim preamp-ac
agentee render sim:preamp-ac -o preamp-ac.png

A execução escreve preamp-ac.result.json ao lado da especificação, com o ponto de operação de cada rede, a corrente através de cada componente, cada verificação e o seu valor, e as curvas das redes registadas. O visualizador e render plotam o ganho, a fase e o ruído.

Condutores

Só um condutor conduz uma rede, por isso dê a cada fonte um. Um condutor é uma fonte de tensão para a massa, ou para a rede em return, com resistance em série. current = true torna-o numa fonte de corrente, que é como o preamp retira a corrente de repouso do amplificador operacional da sua rail. ac marca a entrada das análises AC e de ruído. Para o transitório, um condutor aceita steps (linear por partes), um pulse ou um sine.

A massa é cada rede nomeada GND, 0V, GROUND ou que começa com VSS.

Análises

  • Ponto de operação: sempre. Iteração de Newton com limitação de junção, depois passo de gmin, depois passo de fonte quando não se estabiliza.
  • AC: [ac] varre de from a to com points por década, linearizado no ponto de operação. Os ganhos estão em dB em relação ao condutor ac.
  • Transitório: [tran] corre até stop com step como o passo máximo. Também guarda o espetro de cada rede registada sobre a sua segunda metade.
  • Ruído: [noise] dá a densidade em output e, com input, a curva referida à entrada, mais o RMS sobre a banda. Resistores, correntes de junção, canais de MOSFET e en do amplificador operacional contribuem todos.

Verificações

Uma verificação lê um número e mantém-no entre min e max. O que lê depende de at:

verificaçãolê
v = "NET"a tensão no ponto de operação
v = "NET", at = "5ms"a tensão no transitório
v = "NET", at = "1kHz"o ganho AC em dB
phase = "NET", at = "1kHz"a fase em graus
noise = "NET", at = "1kHz"a densidade de ruído em V/rtHz
i = "R1"a corrente através de um componente de dois pinos, do pino 1 ao pino 2
peak, trough, rms, freq, thdo transitório entre from e to

Uma verificação que falha é um erro na simulação. Aumente a verificação de 1 kHz acima para min = 19 e a execução falha, e agentee check reporta-a como erro enquanto esse resultado está atualizado:

error: ./preamp-ac.sim.toml: preamp-ac result: v(OUT) at 1kHz is 18.7870 dB, wanted 19 to 19.3 dB

O resultado fica desatualizado quando a especificação ou o netlist do esquema muda: a verificação nota-o como desatualizado e remove as suas falhas até a simulação correr de novo, por isso execute a simulação de novo após cada mudança no circuito. Comece um intervalo thd ou freq depois do circuito se estabilizar, ou o passo de arranque lê-se como distorção.

Os modelos vêm da folha de dados

Cada componente torna-se num elemento pela sua letra de referência: R, C e L pelo valor, D como um díodo, Q como um BJT ou MOSFET pelos nomes dos seus pinos. Conectores, pontos de teste, furos e cristais ficam de fora, e qualquer outra coisa é um erro até ter um bloco ou estar em ignore.

Os dispositivos integrados são substitutos genéricos: um diodo de silício, um BJT de pequeno sinal e um MOSFET de nível lógico. Um resultado que depende de um destes descreve o substituto, não o seu componente. Dê a cada componente relevante uma entrada [[blocks]] com os valores da sua folha de dados:

  • Amplificadores operacionais são um polo único com gain, gbw, rout, vos, en, ib, slew, psrr e um limite suave headroom em relação a cada alimentação. Cada unidade de um duplo ou quádruplo é um amplificador operacional próprio sobre as mesmas alimentações.
  • Diodos recebem is e n. Ajuste-os a dois pontos típicos de VF separados por uma década de corrente: n = dV / (Vt ln 10), depois is = I / exp(V / (n Vt)).
  • BJTs e MOSFETs recebem is, bf, va ou vth, k, lambda e as respetivas capacidades.
  • LDOs mantêm vout até a entrada ficar dentro de dropout, depois seguem-na para baixo.
  • Potenciômetros recebem um position de 0 a 1, para que o cursor carregue e seja carregado como o componente real.

Coloque a folha de dados e a tabela de onde veio cada valor no description da simulação. A próxima pessoa a ler o resultado, muitas vezes o agente, sabe então em que se baseia.

Exemplos

  • examples/preamp: o ponto de funcionamento, o ganho e o ruído de um estágio de ganho e um filtro Sallen-Key num LM358, o estalo na ligação, a saturação e o diodo de bateria invertida.
  • examples/ladder-vcf: um filtro em escada de transístores cujas simulações verificam o seguimento de 1 oitava por V em três CVs, o pico de ressonância e a autooscilação num transitório.
  • examples/lna: lna-supply verifica a OR de duas entradas de alimentação através de Schottkys, e lna-biastee quanta RF o bias tee deixa passar para a alimentação.

Todas as chaves estão na referência de circuito.

Melhorar este guia · Markdown para agentes