Расчет S-параметов в LTspice

3 мин на чтение

Благодаря появлению 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 Пример использования директивы .net

Скачать схему

Входной порт исследуемого устройства задан с помощью источника напряжения V1 с последовательным сопротивлением равным 50 Омам, а выходной порт с помощью нагрузочного резистора R1. Конденсатор С1 выполняет исключительно развлекательную функцию: он нужен для того, чтобы согласование источника с нагрузкой портилось по мере роста частоты и графики S11 и S21 были поинтереснее.

Для просмотра рассчитанных директивой .net параметров надо кликнуть правой клавишей мыши в окне графиков и выбрать Add Traces, либо нажать клавишу A и в появившемся окне выбрать интересующие данные. В качестве примера приведу графики коэффициента отражения S11 и коэффициента передачи S21.

Графики S11 и S21 Графики S11 и S21

Кроме этого, над рассчитанными параметрами можно выполнять арифметические операции. Например, построить график S11 в формате КСВ с помощью выражения (1 + abs(S11(v1))) / (1 - abs(S11(v1))).

График КСВ График КСВ

Расчет S-параметров является одним из многих удобных инструментов встроенных в LTspice и позволяет при моделировании и последующем измерении параметров готовой схемы оперировать данными в одном и том же формате. Стоит не забывать, что кроме S-параметров директива .net рассчитывает еще много полезных данных.

Дата изменения:

Оставить комментарий