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 circuitO 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.pngA 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 defromatocompointspor década, linearizado no ponto de operação. Os ganhos estão em dB em relação ao condutorac. - Transitório:
[tran]corre atéstopcomstepcomo o passo máximo. Também guarda o espetro de cada rede registada sobre a sua segunda metade. - Ruído:
[noise]dá a densidade emoutpute, cominput, a curva referida à entrada, mais o RMS sobre a banda. Resistores, correntes de junção, canais de MOSFET eendo 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ção | lê |
|---|---|
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, thd | o 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 dBO 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,psrre um limite suaveheadroomem 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
isen. Ajuste-os a dois pontos típicos de VF separados por uma década de corrente:n = dV / (Vt ln 10), depoisis = I / exp(V / (n Vt)). - BJTs e MOSFETs recebem
is,bf,vaouvth,k,lambdae as respetivas capacidades. - LDOs mantêm
voutaté a entrada ficar dentro dedropout, depois seguem-na para baixo. - Potenciômetros recebem um
positionde 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-supplyverifica a OR de duas entradas de alimentação através de Schottkys, elna-biasteequanta RF o bias tee deixa passar para a alimentação.
Todas as chaves estão na referência de circuito.