Моделирование
Симуляция схемы
Аналоговая симуляция списка цепей схемы: рабочая точка, переменный ток, переходные процессы и шум, с блоками операционных усилителей, LDO и компонентов, и проверками.
Аналоговое моделирование схемы, прямо из её списка соединений: рабочая точка всегда, а также анализ переменного тока, переходный процесс и анализ шума, если запрошены. Решатель использует модифицированный узловой анализ с итерациями Ньютона (ограничение переходов, затем шаги gmin, затем шаги источников, если рабочая точка не сходится), трапециевидная интеграция с обратным Эйлером после каждой точки разрыва и шаг, который уменьшается вдвое при сбое Ньютона, комплексный переменный ток на рабочей точке, и шум методом сопряжённых переменных. agentee new sim NAME --kind circuit (MCP new_item с sim_kind = "circuit") записывает стартовый файл. agentee sim NAME записывает NAME.result.json; просмотрщик строит графики переходного процесса, усиления, фазы и шума, с рабочей точкой и проверками рядом, а agentee render NAME рисует то же самое в безголовом режиме.
name = "lna-supply"
kind = "circuit"
schematic = "lna" # default: the only top-level schematic
ignore = ["D3"] # parts to leave out
record = ["VCC", "LED_A"] # nets in the curves, default every net
# temperature = 27 # deg C, for the noise and the junctions
[[drives]] # only drives drive a net: give every supply one
net = "VEXT"
dc = "5V"
# return = "VNEG" # default ground
# current = true # a current source into `net`, in A
# ac = 1 # the AC and noise input, in V (or A)
# resistance = "50ohm" # in series (in parallel for a current source)
steps = [["0s", "0V"], ["1ms", "0V"], ["2ms", "5V"]] # piecewise linear, for the transient
# pulse = { low = "0V", high = "5V", delay = "1ms", rise = "1us", fall = "1us", width = "1ms", period = "2ms" }
# sine = { offset = "0V", amplitude = "1V", frequency = "1kHz", delay = "0s" }
[ac]
from = "10Hz"
to = "10MHz"
points = 20 # per decade
[tran]
stop = "10ms"
step = "10us" # the largest step
[noise]
output = "OUT"
input = "VIN" # a drive with `ac`: adds the input referred curve
from = "10Hz"
to = "100kHz"
[[checks]]
v = "VCC" # a net voltage at the operating point
min = 4.55
max = 4.85
[[checks]]
i = "R1" # the current through a two-pin part, pin 1 to pin 2
at = "5ms" # a time reads the transient
min = "2mA"
[[checks]]
v = "OUT"
at = "1kHz" # a frequency reads the AC gain in dB against the ac drive
min = 19.5
# phase = "OUT" # degrees at a frequency
# noise = "OUT" # V/rtHz at a frequency, at the [noise] output
[[checks]]
thd = "OUT" # over the transient: peak, trough, rms, freq or thd
from = "2ms" # the span read, default the whole transient
# to = "10ms"
max = "1%"
# peak = "OUT" # highest voltage in the span; trough is the lowest
# rms = "OUT" # RMS about the span's mean, V
# freq = "OUT" # from the rising crossings of the mean, Hz
[[blocks]] # a model for a part, by `ref` or by `value` (every such part)
ref = "U1"
kind = "opamp"
gain = 1e5
gbw = "1MHz"
# rout = "10ohm"
# vos = "0V"
# en = "10n" # input voltage noise, V/rtHz
# headroom = "0.1V" # how close the output swings to its rails
# headroom_high = "1.5V" # per rail, default `headroom`
# headroom_low = "5mV"
# slew = "0.3V/us" # slew rate, transient only
# ib = "-20nA" # input bias current, into each input pin
# psrr = "100dB" # supply changes about the operating point, referred to the input
# fc = "100Hz" # 1/f corner of `en`
# pins = { inp = "3", inn = "2", out = "1", vcc = "8", vee = "4" }
[[blocks]]
ref = "RV1"
kind = "potentiometer" # pins 1 and 3 are the ends, 2 the wiper
position = 0.25 # 0 puts the wiper at pin 1, 1 at pin 3; default 0.5
# resistance = "10k" # the end to end value, default the part's valuethd это гармоники 2 до 10 относительно основной, в процентах, по всем периодам между первым и последним восходящим пересечением среднего в интервале. freq и thd требуют как минимум одного полного периода там. Начните интервал после того, как схема установится, иначе шаг запуска будет считаться искажением.
Переходный процесс также сохраняет спектр каждой записываемой цепи по её второй половине (окно Ханна, в дБВ, 2048 бинов), отображаемый под графиком переходного процесса в просмотрщике.
Встроенные модели устройств ниже являются универсальными заменами (кремниевый диод, малосигнальный биполярный транзистор, MOSFET логического уровня), а не деталью на схеме. Дайте каждой важной детали блок со значениями из её даташита, и подберите is и n диода по двум его типовым точкам VF: две точки, разделённые декадой тока, дают n = dV / (Vt ln 10) и is = I / exp(V / (n Vt)). Результат, основанный на значении по умолчанию, описывает это значение, а не деталь.
Значения принимают префиксы СИ и единицы: "4k7", "100nF", "1MHz", "10meg" или просто число. Земля это каждая цепь, названная GND, 0V, GROUND или начинающаяся с VSS, если источник не называет её иначе. Цепи без чего-либо, что удерживает их, сидят на проводимости 1 пС к земле.
Список соединений становится элементами по буквенному обозначению УГО:
| обозначение | элемент |
|---|---|
R | резистор заданного значения; 0 Ом, JP, SJ и NT соединяют свои цепи |
C, L | конденсатор, индуктор заданного значения |
FB | 0.1 Ом, если блок не даёт больше |
D, LED, DZ | диод по имени вывода (A, K): кремний (Is 10 фА, n 1); УГО или значение со Шоттки, BAT или SS1 это Шоттки (10 нА, 1.05); LED это (1 аА, 2); стабилитрон берёт своё пробивное напряжение из значения (BZX84C3V3 это 3.3 В), с коленом 1 мА |
Q с выводами B, C, E | биполярный транзистор по Эберсу-Моллу, PNP, если УГО или значение так говорят: Is 10 фА, Bf 100, Br 1 |
Q, M с выводами G, D, S | MOSFET уровня 1 с плавным порогом, P-канал, если УГО говорит PMOS: Vth 1.5 В, k 0.5 А/В^2, lambda 0.01 |
J, P, TP, H, MH, FID, Y, X, SW, BT, T | исключены |
| всё остальное | ошибка при именовании, если только он не указан в ignore или не имеет блока |
Виды блоков и их поля:
| kind | выводы (по умолчанию по имени) | поля |
|---|---|---|
resistor, capacitor, inductor, bead | 1, 2 | resistance, capacitance, inductance |
diode, schottky, zener, led | a, k | is, n, bv, cj |
bjt, npn, pnp | c, b, e | is, bf, br, va, cje, cjc |
mosfet, nmos, pmos | d, g, s | vth, k, lambda, cgs, cgd |
opamp | inp (+, IN+), inn (-, IN-), out (~, OUT), vcc (V+, VCC), vee (V-, VEE) | gain, gbw, rout, vos, en, headroom |
ldo | vin, vout, gnd | vout, dropout, rout, iq |
vcvs, vccs | p, n, cp, cn (все заданы) | gain (В/В или А/В) |
open | исключает элемент |
Операционный усилитель представляет собой однополюсную систему: проводимость, подключенная к узлу с сопротивлением gain Ом и конденсатором, который обеспечивает единичное усиление на частоте gbw, затем буфер, плавно ограничивающий выход между шинами питания за вычетом headroom (без ограничения, если заданы не обе шины питания), за rout. Узел усиления останавливается немного за пределами ограничения, поэтому срезанный операционный усилитель возвращается от шины питания, как только вход требует этого, как у реального устройства, а не закручивается. Ограничение и его headroom одинаковы для обеих шин питания. Каждый блок многоканального операционного усилителя с тремя сигнальными выводами является отдельным операционным усилителем, разделяющим выводы шин питания; выход находится по имени или, если его нет, как единственный вывод выхода блока. Один блок покрывает все блоки элемента; второй блок для того же ref является ошибкой. LDO удерживает vout выше gnd, пока вход не приблизится на dropout, затем следует за входом вниз, и вход обеспечивает ток выхода плюс iq.
Источники шума: резисторы (4kT/R), сопротивления источника, токи коллектора и базы диодов и БТТ (2qI), каналы МОП (8kT gm / 3) и en операционного усилителя. Результат содержит плотность шума на выходе, плотность шума, приведенную ко входу, если задан input, и среднеквадратичное значение в полосе.
Неудачная проверка является ошибкой в симуляции, пока результат актуален; результат устаревает, когда изменяется спецификация или сетевой список схемы. examples/lna содержит два примера: lna-supply, логическое ИЛИ 5-вольтового входа через диод Шоттки для тока смещения U1, и lna-biastee, насколько смещатель удерживает ВЧ на выходе от VBIAS. Оба используют U1 с его током покоя 90 мА и BAT60A с его типичным VF, взятыми из двух даташитов; светодиод, у которого нет номера детали, исключен. examples/preamp это дизайн операционного усилителя, пропущенный через все анализы: рабочая точка, усиление и шум каскада усиления и фильтра Саллена-Ки на двойном LM358, щелчок при включении, когда смещение средней шины устанавливается, ограничение и диод обратной полярности батареи. examples/ladder-vcf это фильтр на БТТ: его симуляции проверяют отслеживание 1 В/октаву экспоненциального преобразователя при трех управляющих напряжениях, пик резонанса и самовозбуждение в переходном процессе.