agentee

Simulieren

Schaltungssimulation

Führe die analoge Seite eines Schaltplans aus seiner Netlist aus: Arbeitspunkt, Wechselstrom, Transienten und Rauschen, mit Op-Amps und Dioden, die aus ihren Datenblättern modelliert werden, und Prüfungen der Ergebnisse.

Eine Schaltungssimulation führt die analoge Seite eines Schaltplans direkt aus seiner Netliste aus: den Arbeitspunkt jedes Mal, und einen AC-Sweep, eine Transiente und eine Rauschanalyse, wenn die Spezifikation danach fragt. Es wird kein Layout benötigt, daher beantwortet sie die Fragen, die den Schaltplan entscheiden: Liegt der Bias dort, wo er sein sollte, wie hoch ist die Verstärkung bei 1 kHz, wo schneidet der Ausgang ab, wie laut ist das Rauschen.

Eine starten

agentee new sim preamp-ac --kind circuit

Das Preamp-Beispiel führt einen 9-V-Op-Amp-Preamp durch jede Analyse. Dies ist sein AC- und Rauschlauf, gekürzt:

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

Der Lauf schreibt preamp-ac.result.json neben die Spezifikation, mit dem Arbeitspunkt jedes Netzes, dem Strom durch jedes Bauteil, jeder Prüfung und ihrem Wert, und den Kurven der aufgezeichneten Netze. Der Viewer und render plotten die Verstärkung, Phase und das Rauschen.

Treiber

Nur ein Treiber treibt ein Netz, daher gib jeder Versorgung einen. Ein Treiber ist eine Spannungsquelle zur Masse, oder zum Netz in return, mit resistance in Reihe. current = true macht ihn zu einer Stromquelle, so nimmt der Preamp den Ruhestrom des Op-Amps von seiner Schiene ab. ac markiert den Eingang der AC- und Rauschanalysen. Für die Transiente nimmt ein Treiber steps (stückweise linear), einen pulse oder eine sine.

Masse ist jedes Netz, das GND, 0V, GROUND heißt oder mit VSS beginnt.

Analysen

  • Arbeitspunkt: immer. Newton-Iteration mit Junction-Begrenzung, dann gmin-Stepping, dann Quell-Stepping, wenn er nicht konvergiert.
  • AC: [ac] sweep von from bis to mit points pro Dekade, linearisiert am Arbeitspunkt. Verstärkungen sind in dB gegenüber dem ac-Treiber.
  • Transiente: [tran] läuft bis stop mit step als größtem Schritt. Es speichert auch das Spektrum jedes aufgezeichneten Netzes über seine zweite Hälfte.
  • Rauschen: [noise] gibt die Dichte an output und, mit input, die auf den Eingang bezogene Kurve, plus das RMS über das Band. Widerstände, Junction-Stromdichten, MOSFET-Kanäle und Op-Amp-en tragen alle bei.

Prüfungen

Eine Prüfung liest eine Zahl und hält sie zwischen min und max. Was sie liest, hängt von at ab:

Prüfungliest
v = "NET"die Spannung am Arbeitspunkt
v = "NET", at = "5ms"die Spannung in der Transiente
v = "NET", at = "1kHz"die AC-Verstärkung in dB
phase = "NET", at = "1kHz"die Phase in Grad
noise = "NET", at = "1kHz"die Rauschdichte in V/rtHz
i = "R1"der Strom durch ein zweipoliges Bauteil, Pin 1 zu Pin 2
peak, trough, rms, freq, thddie Transiente zwischen from und to

Eine fehlgeschlagene Prüfung ist ein Fehler auf der Simulation. Erhöhe die 1-kHz-Prüfung oben auf min = 19 und der Lauf schlägt fehl, und agentee check meldet sie als Fehler, solange dieses Ergebnis aktuell ist:

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

Das Ergebnis wird veraltet, wenn sich die Spezifikation oder die Netliste des Schaltplans ändert: Die Prüfung notiert es als veraltet und lässt ihre Fehler fallen, bis die Simulation erneut ausgeführt wird, daher führe die Simulation nach jeder Änderung an der Schaltung erneut aus. Starte einen thd- oder freq-Span nach dem Einschwingen der Schaltung, oder der Einschalt-Schritt wird als Verzerrung gelesen.

Modelle stammen aus dem Datenblatt

Jedes Bauteil wird zu einem Element durch seinen Referenzbuchstaben: R, C und L nach Wert, D als Diode, Q als BJT oder MOSFET nach seinen Pin-Namen. Stecker, Testpunkte, Löcher und Kristalle werden weggelassen, und alles andere ist ein Fehler, bis es einen Block hat oder in ignore liegt.

Die eingebauten Bauteile sind generische Platzhalter: eine Siliziumdiode, ein Kleinsignal-BJT, ein Logikpegel-MOSFET. Ein Ergebnis, das auf einem davon beruht, beschreibt den Platzhalter, nicht dein Bauteil. Gib jedem wichtigen Bauteil einen [[blocks]]-Eintrag mit Werten aus seinem Datenblatt:

  • OPs sind ein einzelner Pol mit gain, gbw, rout, vos, en, ib, slew, psrr und einem sanften Clamp headroom zu jeder Schiene. Jede Einheit eines Dual- oder Quad-OPs ist ein eigener OP auf gemeinsamen Schienen.
  • Dioden nehmen is und n. Passe sie an zwei typische VF-Punkte an, die einen Dekade Strom auseinanderliegen: n = dV / (Vt ln 10), dann is = I / exp(V / (n Vt)).
  • BJTs und MOSFETs nehmen is, bf, va oder vth, k, lambda und ihre Kapazitäten.
  • LDOs halten vout, bis die Eingangsseite innerhalb von dropout liegt, und folgen ihr dann nach unten.
  • Potentiometer nehmen eine position von 0 bis 1, damit der Abgriff wie beim echten Bauteil belastet und belastet wird.

Lege das Datenblatt und die Tabelle, aus der jeder Wert stammt, in die description der Simulation. Die nächste Person, die das Ergebnis liest, oft der Agent, weiß dann, worauf es beruht.

Beispiele

  • examples/preamp: der Arbeitspunkt, die Verstärkung und das Rauschen einer Verstärkerstufe und eines Sallen-Key-Filters auf einem LM358, der Thump beim Einschalten, das Clipping und die Batterieumkehrdiode.
  • examples/ladder-vcf: ein Transistor-Ladder-Filter, dessen Simulationen 1 V/okt-Tracking bei drei CVs, den Resonanzspitzen und die Selbstoszillation in einer Transientenprüfung prüfen.
  • examples/lna: lna-supply prüft das OR-en zweier Stromversorgungseingänge über Schottky-Dioden, und lna-biastee, wie viel HF das Bias-Tee auf die Versorgung lässt.

Jeder Schlüssel steht im Schaltplan-Referenz.

Diese Anleitung verbessern · Markdown für Agenten