Расчет S-параметов в LTspice
Благодаря появлению NanoVNA, векторные анализаторы цепей в последние годы стали основным и наиболее часто встречающимся измерительным инструментом среди радиолюбителей. Как следствие, при измерении параметров различных конструкций радиолюбителям часто приходится работать с S-параметрами.
С другой стороны, одним из основных средств моделирования электронных схем в радиолюбительской практике до сих пор остается старый добрый LTspice. Несмотря на некоторую архаичность интерфейса (особенно под macOS) и местами излишне лаконичную документацию, LTspice содержит практически все необходимое для моделирования. Однако, из-за скудности документации и часто встречающегося нежелания в нее вдумчиво вчитываться, многие мощные инструменты LTspice остаются относительно неизвестными.
Одним из таких инструментов является директива .net, которая позволяет вычислять параметры двух и четырехполюсников. С помощью директивы .net можно вычислить импеданс, проводимость, а также H и S-параметры. Несмотря на то, что все из вышеперечисленного полезно, в первую очередь я бы хотел сосредоточиться именно на S-параметрах: согласитесь, наблюдать на экране NanoVNA и в модели LTspice данные в одном и том же формате – это крайне удобно.
Директива .net используется в режиме малосигнального частотного анализа .ac и имеет следующий синтаксис:
.net [V(out[,ref])|I(Rout)] <Vin|Iin> [Rin=<val>] [Rout=<val>]
Входной порт исследуемого устройства задается с помощью независимого источника напряжения Vin или источника тока Iin, где Vin и Iin являются названиями соответствующих источников на схеме. При этом, если у используемого источника напряжения задано последовательное сопротивление Rser, то оно используется в качестве сопротивления источника при расчете S-параметров. Также, сопротивление источника можно задать явно, используя параметр Rin. Параметр Rin имеет приоритет над сопротивлением источника напряжения.
Выходной порт задается путем указания либо нагрузочного резистора, либо узла схемы (в терминологии SPICE), в котором производится измерение напряжения. В первом случае используется синтаксис I(Rout), где Rout – название нагрузочного резистора в схеме. Во втором случае используется синтаксис V(out, [ref]), где out – имя узла схемы, а ref – необязательный параметр указывающий по отношению какому узлу схемы следует проводить измерение напряжения. По умолчанию в качестве ref используется земля схемы. Если в качестве выходного порта используется нагрузочный резистор, то его сопротивление используется для расчета S-параметров. Нагрузочное сопротивление можно также задать с помощью параметра Rout, который, как и Rin, имеет приоритет. Задание выходного порта не является обязательным. Если выходной порт не задан, то директива .net рассчитывает параметры для двухполюсника, а не четырехполюсника.
Если входное и выходное сопротивления не определены, то используются значение по умолчанию равное 1 Ому.
Если в директиве .net использован источник напряжения c заданным последовательным сопротивлением и нагрузочный резистор, но при этом также заданы параметры Rin и Rout, то директива .net при вычислении результата будет использовать значения параметров Rin и Rout, а директива .ac все так же будет продолжать использовать значения параметров элементов, указанные на схеме. Это может приводить к появлению неожиданных результатов симуляции схемы.
К сожалению, не обошлось без багов. Если в схеме ниже убрать конденсатор, а
директиву .net переписать в виде .net V1
, то есть, измерить схему как
двухполюсник, то в старых версиях LTspice коэффициент отражения S11(v1), а
также импеданс Zin(v1) будут рассчитаны некорректно. По какой-то непонятной
причине старые версии LTspice считают, что схема имеет импеданс равный 25 Омам,
и показывают соответствующий этому коэффициент отражения. Обойти этот баг можно
убрав Rser источника V1 и переписав директиву .net в виде .net V1
Rin=50
. В этом случае все будет рассчитано корректно. Впрочем, гораздо
правильнее просто обновить LTspice до последней доступной версии. В какой именно
версии поправили этот баг я не знаю, но в версиях 17.1.9 под Windows и 17.1.4
под macOS его точно нет.
Самый простой и наиболее частый способ использования директивы .net показан на схеме ниже:
Пример использования директивы .net
Входной порт исследуемого устройства задан с помощью источника напряжения V1 с последовательным сопротивлением равным 50 Омам, а выходной порт с помощью нагрузочного резистора R1. Конденсатор С1 выполняет исключительно развлекательную функцию: он нужен для того, чтобы согласование источника с нагрузкой портилось по мере роста частоты и графики S11 и S21 были поинтереснее.
Для просмотра рассчитанных директивой .net параметров надо кликнуть правой клавишей мыши в окне графиков и выбрать Add Traces, либо нажать клавишу A и в появившемся окне выбрать интересующие данные. В качестве примера приведу графики коэффициента отражения S11 и коэффициента передачи S21.
Графики S11 и S21
Кроме этого, над рассчитанными параметрами можно выполнять арифметические
операции. Например, построить график S11 в формате КСВ с помощью выражения
(1 + abs(S11(v1))) / (1 - abs(S11(v1)))
.
График КСВ
Расчет S-параметров является одним из многих удобных инструментов встроенных в LTspice и позволяет при моделировании и последующем измерении параметров готовой схемы оперировать данными в одном и том же формате. Стоит не забывать, что кроме S-параметров директива .net рассчитывает еще много полезных данных.
Оставить комментарий