Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Архангелский ПСпице и Десигн Центер Ч1 1996

.pdf
Скачиваний:
91
Добавлен:
16.08.2013
Размер:
1.78 Mб
Скачать

3.2. Расчет по постоянному току

71

Граница изменения переменной <начальное значение> может задаваться как больше, так и меньше, чем <конечное значение>. Тем самым меняется направление изменения аргумента: от меньшего значения к большему или наоборот. При этом <приращение> или <Nт> должны задаваться положительными независимо от направления изменения аргумента. Например, оператор

.DC LIN I2 5mA -2mA 0.1mA

задает ту же самую зависимость, что и приведенный несколько раньше аналогичный оператор для I2, но значения тока I2 изменяются от большего значения (5 мА) к меньшему (-2 мА).

Третья форма оператора со спецификацией LIST задает список значений аргумента. Этой формой целесообразно пользоваться, если нужно получить результаты для ряда нерегулярно изменяющихся значений аргумента. При этом значения аргумента могут располагаться в списке значений в любом порядке. Например, оператор

.DC V1 LIST 10 8 15

задает расчет схемы при трех значениях источника напряжения V1: 10, 8 и 15 В.

Оператор .DC в любой из форм позволяет задавать вложенные циклы изменения нескольких аргументов. В этих случаях после описания одного аргумента, пределов его изменения, приращения или числа точек следует аналогичное описание следующего аргумента. Тогда первый аргумент относится к внутреннему циклу. То есть задается начальное значение второго аргумента и для него просчитывается режим во всем диапазоне изменения первого аргумента. Затем задается следующее значение второго аргумента и для него снова просчитывается режим во всем диапазоне изменения первого аргумента, и т.д. При выводе результатов расчета с помощью операторов

.PRINT или .PLOT это приводит к печати отдельных таблиц или графиков для каждого значения второга аргумента. А при использовании оператора

.PROBE это приводит к изображению семейства графиков, параметром которого является второй аргумент оператора .DC.

Например, оператор

.DC VCE 0V 10V .5V IB 0mA 1mA 50uA

72

Виды анализа в PSpice

задает вложенное изменение двух величин - напряжения VCE (это может быть напряжение коллектор-эмиттер биполярного транзистора) и тока IB (это может быть базовый ток того же транзистора). Для каждого значения IB напряжение VCE пробегает весь заданный диапазон 0÷10 В. Приведенный оператор позволяет построить семейство выходных характеристик транзистора для разных значений базового тока IB.

В качестве величины <переменная - аргумент> может задаваться :

имя независимого источника напряжения и тока, тогда на время выполнения оператора .DC значение соответствующего источника меняется в заданных пределах;

имя параметра модели элемента, в этом случае задается <тип модели> (например, RES, NPN, PNP и т.п.), после пробела имя модели и затем в круглых скобках имя параметра; в этом плане в операторе .DC не могут использоваться параметры L и W для МДП-транзистора (но могут LD и WD), а также любые температурные параметры, такие как TC1 и TC2 для резисторов и др.;

температура, обозначаемая ключевым словом TEMP, тогда в процессе выполнения оператора .DC при каждом изменении значения температуры пересчитываются все зависящие от нее параметры элементов;

имя глобального параметра, в этом случае пишется ключевое слово PARAM, а затем после пробела указывается имя параметра; при каждом изменении параметра пересчитываются все зависящие от него выражения.

Приведем примеры применения оператора .DC к различным видам аргументов. Примеры для имен независимых источников напряжений и токов уже приводились выше. Пример оператора, изменяющего параметр модели транзистора IS, также уже приводился. Если требуется в качестве аргумента задать значение какого-либо резистора, то непосредственно это сделать нельзя. Соответствующий резистор должен быть описан с указанием модели (см. п. 4.4) и в качестве аргумента оператора .DC должен быть задан параметр этой модели. Например, если аргументом надо указать сопротивление некоторого резистора R1, то это можно сделать следующим образом:

R1 1 5 RMOD 10K

.MODEL RMOD RES

.DC RES RMOD(R) 0.5 1.5 0.1

3.2. Расчет по постоянному току

73

В этом примере резистор R1, включенный между узлами 1 и 5 и имеющий номинал 10 кОм, описан моделью RMOD, в которой параметр R (коэффициент пропорциональности, см. п. 4.4) не указан и, следовательно, по умолчанию равен 1. Поэтому во всех видах анализа, кроме DC, номинал этого резистора просто равен указанному значению 10 кОм. А при DC анализе коэффициент пропорциональности R изменяется и соответственно номинал резистора варьируется от 5 до 10 кОм с шагом 1 кОм.

Точно того же результата можно достичь с помощью следующих операторов:

R1 1 5 RMOD 1

.MODEL RMOD RES R=10K

.DC RES RMOD(R) 5K 15K 1K

Приведем пример использования в качестве аргумента температуры:

.DC RES RMOD(R) 5K 15K 1K TEMP LIST -60 27 85

Этот оператор обеспечивает тот же расчет зависимостей от сопротивления, что и в предыдущих примерах, но расчет будет проведен при трех температурах: -60, 27 и 85 °C.

Приведем теперь пример использования в операторе .DC глобального параметра:

.PARAM VNOM=1

V1 1 0 {10*VNOM}

V2 2 0 {-5*VNOM}

.DC PARAM VNOM 0.8 1.1 0.1

Вэтом примере аргументом является глобальный параметр VNOM, который определяет напряжения двух источников питания V1 и V2. Изменение VNOM вызывает синхронное изменение напряжений питания. Тем самым моделируется, например, влияние изменения напряжения сети или другого первичного источника напряжения, от которого питаются V1 и V2.

ВDC анализе, начиная с версий PSpice 5, можно использовать оператор

.SAVEBIAS, запоминающий какие-то из посчитанных точек, что в дальнейшем позволяет загружать их в качестве начальных значений. Оператор имеет вид:

74

Виды анализа в PSpice

.SAVEBIAS “<имя файла>” DC

+ [DC=<значение>] [DC1=<значение>] [DC2=<значение>]

Оператор работает так же, как было рассмотрено ранее для расчета рабочей точки. Если в операторе отсутствуют члены DC=<значение>, DC1=<значение> или DC2=<значение>, то будет запомнено состояние при первом значении варьируемых переменных. Задание DC=<значение> позволяет запомнить состояние схемы при значении варьируемой переменной, равном заданному. Если в операторе DC варьируется две переменные, то значение DC1 относится к первой из них, а значение DC2 - ко второй. Если при расчете режима DC переменная не принимает заданное значение, то запоминание не производится и файл результата остается пустым.

При выполнении оператора .DC расчет режима в каждой заданной точке осуществляется теми же методами, которые были описаны ранее в п. 3.2.1. При этом на каждом шаге расчета, кроме первого, в качестве начального приближения берется значение всех потенциалов, полученное на предыдущем шаге. При этом возможны некоторые проблемы со сходимостью вычислений, которые будут рассмотрены в следующем пункте.

3.2.5.ПРОБЛЕМЫ СХОДИМОСТИ ВЫЧИСЛЕНИЙ

Впп. 3.2.1 и 3.2.5 указывалось, что при расчетах по постоянному току могут возникать проблемы со сходимостью вычислений. Это вызывает отказ PSpice от расчета и печать в выходном файле .OUT сообщения типа:

*ERROR*: Convergence problem in bias point calculation (Проблемы со сходимостью при расчете рабочей точки)

Last node voltages tried were:

(Последние узловые потенциалы, для которых была попытка расчета:)

NODE

VOLTAGE NODE VOLTAGE NODE VOLTAGE

NODE VOLTAGE

(

1) 10.0120 ( 2) 0.0000 ( 3) 0.0000 ( 11)

10.00E+09

Часто подобные результаты связаны с ошибками в схеме. Например, нередкая ошибка - неверное направление источника тока, что приводит к попытке задать ток в запертый p-n переход. Поэтому, получив подобный результат, прежде всего надо взлянуть на печатаемую таблицу напряжений, выяснить, в каких узлах напряжения ненормально большие, и проверить правильность описания схемы. Однако в некоторых случаях никаких ошибок

3.2. Расчет по постоянному току

75

в схеме нет, а программа все-таки не может рассчитать ее режим. В этих случаях можно рекомендовать принять следующие меры.

Рекомендация 1. Отсутствие сходимости может быть связано с тем, что заданы слишком малые погрешности и программа не в состоянии вести расчет с подобной точностью. Поэтому прежде всего следует попробовать изменить заданные допустимые погрешности расчета RELTOL, VNTOL и ABSTOL в соответствии с рекомендациями, изложенными в п. 3.2.1.

Рекомендация 2. Можно попробовать изменить ограничения на число итераций при расчете по постоянному току. Таких ограничений в PSpice два:

ITL1 - максимальное число итераций метода Ньютона (по умолчанию 40); ITL2 - максимальное число итераций поиска оптимального приращения на

одной итерации метода Ньютона (по умолчанию 20).

Увеличение этих значений оператором .OPTIONS способно улучшить сходимость. Однако чрезмерное увеличение нежелательно, так как перестает влиять на сходимость, существенно затягивая при этом время расчета.

Рекомендация 3. Отсутствие сходимости может быть связано с ошибками округления при решении системы линейных уравнений, определяющем приращение U (см. п. 3.2.1). На это можно попытаться повлиять, изменяя параметры алгоритма решения линейных уравнений. Такими параметрами являются:

PIVREL - минимальная относительная величина элемента строки

матрицы, выделяемого в качестве ведущего (по умолчанию 10- 3);

PIVTOL - минимальная абсолютная величина элемента строки матрицы, выделяемого в качестве ведущего (по умолчанию 10-13);

TRTOL - показатель, определяющий погрешность усечения (по умолчанию 7.0).

Эти параметры задают оператором .OPTIONS. Их изменение может потребоваться, если в схеме соседствуют узлы с проводимостями, различающимися на много порядков. При описании схемы надо по возможности избегать подобной ситуации. Если же сходимость нарушилась по этой причине, в выходном файле может появиться сообщение типа:

*ERROR*: Maximum entry in this column at step ... ( ...) is less than pivtol

Это является сигналом к изменению описания схемы или к изменению соответствующего параметра алгоритма.

Рекомендация 4. Если предыдущие рекомендации не помогают, но исходя из схемотехники примерно известны некоторые узловые потенциалы схемы,

76

Виды анализа в PSpice

следует попытаться задать соответствующие начальные условия расчета оператором .NODESET (см. п. 3.2.4). При этом в первую очередь надо попытаться задать условия для тех узлов, в которых напечатанные потенциалы последней попытки расчета наиболее отличаются от ожидаемых.

Рекомендация 5. Если при каких-то напряжениях или параметрах схемы расчет по постоянному току осуществляется успешно, а при каких-то нет, то можно испробовать два приема. Во первых, начиная с версий PSpice 5, можно использовать запоминание с помощью оператора .SAVEBIAS состояния схемы в том варианте, который просчитывается нормально, а затем загрузить полученный файл оператором .LOADBIAS в качестве начального значения. Если работа проводится с PSpice 4, можно проделать то же самое вручную: распечатать потенциалы всех узлов в нормально считающемся варианте схемы и занести их в оператор .NODESET для задания начальных условий при расчете нормально не считающегося варианта. Другой путь - попробовать воспользоваться оператором .DC, изменяя напряжения или параметры схемы постепенно от хорошо просчитываемого варианта до того, который не просчитывается. При этом, начиная с версий PSpice 5, можно воспользоваться оператором .SAVEBIAS (см. п. 3.2.5) для запоминания состояния схемы при требуемых значениях параметров.

Рекомендация 6. Если ничего из рассмотренного выше не помогает, можно попробовать заменить расчет по постоянному току расчетом переходного процесса при включении питания схемы. Для этого имеющиеся в схеме источники постоянного напряжения и тока надо заменить на постепенно нарастающие от нуля до номинала сигналы с достаточно большими фронтами. Настоящие же входные сигналы, если таковые имеются в схеме, должны быть постоянными и равными своим начальным значениям. Затем просчитывается переходной процесс в схеме в течение некоторого отрезка времени T, достаточного для того, чтобы все потенциалы схемы достигли своих установившихся значений. Иначе говоря, время расчета переходного процесса T должно заведомо превышать максимальную постоянную времени в схеме. Недостаточная величина T приведет к ошибкам в определении установившегося режима, который будет отличаться от расчета по постоянному току. Полученное в результате расчета состояние схемы можно запомнить оператором .SAVEBIAS (только начиная с версий PSpice 5) или вручную записать потенциалы узлов и использовать это при последующих расчетах для задания начальных условий с помощью оператора .NODESET. Если одновременно с расчетом по постоянному току требуется провести расчет переходных процессов при подаче каких-то входных сигналов, то расчет установившегося режима и расчет реакции на сигналы можно объединить. При этом, конечно, надо сдвинуть входные сигналы на время T и

3.2. Расчет по постоянному току

77

можно исключить из печати отрезок времени, связанный с установлением потенциалов (см. п. 3.4 и оператор .TRAN в работе [3]).

Проблемы со сходимостью могут возникать не только при расчете рабочей точки, но и в процессе выполнения оператора .DC. Если эти проблемы возникают в первой же точке расчета, то применимы все указанные выше рекомендации. Впрочем, прежде всего в этом случае надо попробовать поменять местами пределы изменения аргумента оператора, т.е. попробовать начать расчет зависимости с другого конца. Однако проблемы со сходимостью могут возникать и в середине выполнения DC анализа. В этом случае в выходном файле .OUT печатается сообщение:

*ERROR*: Convergence problem in DC sweep

ирасчет прерывается.

Вэтих случаях можно попробовать применить приведенные выше рекомендации 1-3, но прежде всего надо попробовать поменять местами пределы изменения аргумента и существенно уменьшить шаг по аргументу. Дело в том, что несходимость вычислений в этих случаях обычно связана с резким изменением режима по постоянному току при изменении аргумента.

Апоскольку при DC анализе в качестве начального приближения в каждой точке берется состояние, просчитанное в предыдущей точке, уменьшение шага по аргументу уменьшает изменения режима от точки к точке и способствует сходимости. Если уменьшение шага слишком затягивает расчет, так как с этим шагом считается вся зависимость, а не только ее критическая с точки зрения сходимости часть, то можно разбить весь диапазон изменения аргумента на поддиапазоны и проводить отдельные расчеты для поддиапазонов с различными шагами.

Врелаксационных схемах с гистерезисом (типа триггера Шмидта) уменьшение шага может не помочь, так как в них при бесконечно малом изменении входного сигнала режим изменяется скачком. В этих случаях кардинальное решение проблемы сводится к замене DC анализа расчетом переходного процесса при медленном квазистатическом изменении входного сигнала. На вход при этом подается линейно изменяющийся сигнал, скорость изменения которого должна выбираться такой, чтобы на результатах расчета не сказывались реактивности схемы. Если желательно получить гистерезисную характеристику, то после нарастания сигнала следует предусмотреть столь же медленный его спад, чтобы просчитать обе ветви характеристики.

78Виды анализа в PSpice

3.3.МАЛОСИГНАЛЬНЫЙ АНАЛИЗ

Кмалосигнальным видам анализа в PSpice относятся:

частотный анализ (оператор .AC);

расчет передаточных малосигнальных функций по постоянному току (оператор .TF);

анализ чувствительности по постоянному току (оператор .SENS);

анализ шумов (оператор .NOISE).

Малосигнальный анализ проводится на схеме, линеаризованной в рабочей точке, расчет которой рассматривался в п. 3.2. При этом все нелинейные модели элементов заменяются своими дифференциальными проводимостями в рабочей точке. Независимые источники постоянного напряжения (V) и тока (I) влияют на параметры нелинейных элементов в схеме, определяя их режим, но во время частотного анализа источники V считаются короткозамкнутыми, а источники I - разомкнутыми. Сигналы этих источников, определенные для расчета переходных процессов, на схему не действуют.

Рассмотрим подробнее отдельные виды малосигнального анализа.

3.3.1. ЧАСТОТНЫЙ АНАЛИЗ

Частотный анализ задается оператором .AC, имеющим вид

.AC [<шкала>] <Nт> <Fмин> <Fмакс> ,

где <шкала> = LIN, или DEC, или OCT.

Оператор задает частотный анализ в диапазоне частот Fмин ÷ Fмакс. Задание шкалы LIN, OCT или DEC определяет характер изменения частоты в заданном диапазоне и влияет на смысл параметра Nт:

LIN - линейное изменение частоты. При этом Nт - общее (суммарное) число точек в диапазоне. Частота меняется с постоянным шагом (Fмакс-Fмин)/ (Nт-1). Например, оператор

.AC LIN 101 100Hz 200

задает частотный анализ схемы с линейным шагом по частоте и общим количеством точек 101 в пределах от 100 до 200 Гц.

DEC - логарифмическое изменение частоты по декадам. При этом Nт - число точек на декаду. Частоты в соседних точках отличаются друг от друга в постоянное число раз, равное 101 (NT 1) . Например, оператор

3.3. Малосигнальный анализ

79

.AC DEC 10 1MHz 100Mhz

задает логарифмическую шкалу изменения частоты с числом точек на декаду, равным десяти.

OCT - логарифмическое изменение частоты по октавам. При этом Nт - число точек на октаву. Частоты в соседних точках отличаются друг от друга в постоянное число раз, равное 81 (NT 1) .

Границы задаваемого диапазона частот Fмин и Fмакс должны удовлетворять соотношению Fмин Fмакс и, кроме того, Fмин и Fмакс должны быть положительными. Таким образом, диапазон может состоять из всего одной точки, если задать Fмин = Fмакс. Расчет на нулевой частоте невозможен. Если это все-таки требуется, то надо или задать очень низкую частоту (например, доли герца), или воспользоваться другим оператором .TF, рассмотренным в следующем пункте.

Проведение частотного анализа не требует подачи на входы схемы какихто синусоидальных сигналов. Единственными сигналами, поступающими на схему, считаются те, которые заданы в источниках V и I спецификацией AC. При этом все рассчитываемые напряжения и токи в схеме являются условными относительными величинами. Так, если в каком-то узле схемы посчитано напряжение 1 кВ при входном сигнале AC равном 1 В, это просто означает, что коэффициент передачи напряжения со входа в данный узел равен 1000. Никакие нелинейные искажения при этом не учитываются.

По умолчанию никаких результатов частотного анализа на печать не выдается. Для получения результатов надо использовать операторы .PROBE,

.PRINT, .PLOT, рассмотренные в п. 3.8.

Если в качестве результатов частотного анализа интересует групповая задержка некоторой переменной (производная фазы по частоте), то надо обеспечить достаточно малый шаг по частоте, чтобы фаза в интересующей точке схемы изменялась плавно от одной частоты к другой. Дело в том, что групповая задержка вычисляется как разность фаз в соседних точках по частоте, деленная на приращение частоты. При большом шаге это может дать недопустимые погрешности.

3.3.2. РАСЧЕТ ПЕРЕДАТОЧНЫХ ФУНКЦИЙ ПО ПОСТОЯННОМУ ТОКУ

Расчет малосигнальных передаточных функций по постоянному току осуществляется оператором .TF, имеющим вид:

.TF <выходная переменная> <имя входного источника>

Передаточные функции вычисляются путем линеаризации схемы в рабочей точке. Рассчитываются коэффициент передачи от входного источника <имя

80

Виды анализа в PSpice

входного источника> к выходной переменной, а также входное и выходное сопротивления схемы относительно узлов подключения входного источника и выходной переменной. Расчеты соответствуют нулевой частоте, т.е. приращениям постоянных напряжений и токов.

Результаты расчетов заносятся в выходной файл .OUT. Для этого не требуется наличия операторов .PRINT, .PLOT или .PROBE.

В качестве выходной переменной может задаваться напряжение узла, разность напряжений в двух узлах или ток независимого источника напряжения. Поэтому, если интересует ток какого-то другого элемента, то в соответствующую ветвь надо включить источник нулевого напряжения и его ток задавать в качестве выходной переменной.

Приведем примеры использования оператора .TF. Пусть рассчитывается схема некоторого усилителя постоянного тока, ко входу которого подключен источник напряжения VIN, а выходным узлом является узел 5. В источнике VIN должна быть задана постоянная составляющая сигнала, если она имеется, необходимо чтобы правильно была рассчитана рабочая точка. В остальном с точки зрения использования оператора .TF описание источника VIN не имеет значения: в нем может присутствовать, а может отсутствовать опция AC, может быть задан любой сигнал для расчета переходного процесса. А может вообще ничего не задаваться, кроме узлов подключения:

VIN 1 0

(по умолчанию это означает, что постоянный сигнал равен нулю) и в этом случае этот источник просто обозначает входные узлы схемы и указывает оператору .TF, что входной величиной является напряжение. Задание расчета передаточных функций осуществляется в этом случае оператором

.TF V(5) VIN .

Результатом расчета может быть следующий фрагмент выходного файла (в него включены комментарии, заключенные в скобки):

**** SMALL-SIGNAL CHARACTERISTICS

(малосигнальные характеристики)

V(5)/VIN = 9.990E+01

(коэффициент усиления)

INPUT RESISTANCE AT VIN = 2.000E+03

(входное сопротивление)

OUTPUT RESISTANCE AT V(5) = 9.990E+02

(выходное сопротивление)

Конечно, надо иметь ввиду, что если между источником VIN и собственно входом усилителя включено сопротивление генератора, то в качестве входного сопротивления программа печатает суммарную величину сопротивления генератора и действительного входного сопротивления. Точно так же, если параллельно выходу усилителя включено сопротивление нагрузки, то программа печатает в качестве выходного сопротивления параллельное включение сопротивления нагрузки и действительного выходного сопротивления схемы.