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

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

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

2.4. Подсхемы

51

между этими операторами, локальные. Там же пояснялось, как в подсхему можно передать глобальные имена узлов. В <список внешних узлов> заносятся имена узлов подсхемы, которые являются внешними.

Обращение к модели подсхемы производится оператором

<имя элемента> <список узлов> <имя модели подсхемы>

+[ PARAMS: <имя> = <значение>...] ,

где <имя элемента> - имя, начинающееся с X, а <список узлов> - перечисление узлов подключения подсхемы в том самом порядке, в котором вошли внешние узлы в <список внешних узлов> при описании модели подсхемы.

Приведем в качестве примера описание подсхемы рис. 2.4а и схемы на ее основе, представленной на рис. 2.4г.

.SUBCKT KEY 1 2 R1 1 4 10K

R2 $G_3 1K

Q1 2 1 0 MQ1

.ENDS

X1 1 2 KEY

X2 2 3 KEY

X3 3 1 KEY

R1 1 0 10K

C1 1 0 10p

U1 $G_3 0 5V

В пределах подсхемы действительны не только глобальные узлы, но и глобальные параметры, определенные оператором .PARAM (см. п. 2.3.7 и работу [3]). Однако в подсхему можно передать и локальные параметры, что позволяет описывать одной моделью несколько подсхем, тождественных по начертанию, но различающихся значениями каких-либо параметров. Для введения локальных параметров подсхемы используется указанный выше раздел “PARAMS:” в описании подсхемы. В нем перечесляются имена вводимых параметров и их значения по умолчанию. Например, если требуется в приведенном выше примере учесть различия в значениях сопротивлений R1 и R2 в разных подсхемах, то описание модели подсхемы может иметь вид :

.SUBCKT KEY 1 2 PARAMS: R1_NOM=10K R2_NOM=1K

52 2. Описание схемы на входном языке программы PSpice

R1 1 4 {R1_NOM}

R2 $G_3 {R2_NOM}

Q1 2 1 0 MQ1

.ENDS

Тогда, если операторы, описывающие элементы X1, X2, X3 имеют такой же вид, как и ранее, то значения R1 и R2 во всех подсхемах будут равны значениям по умолчанию. Но если, например, описать элементы X1, X2, X3 операторами

X1 1 2 KEY PARAMS: R1_NOM=9K

X2 2 3 KEY PARAMS: R1_NOM=11K R2_NOM=1.1K

X3 3 1 KEY ,

то в подсхеме X1 будет R1 = 9 кОм, R2=1 кОм, в подсхеме X2 - R1 = 11 кОм, R2=1.1 кОм, а в подсхеме X3 по умолчанию R1 = 10 кОм, R2=1 кОм.

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

Если желательно, чтобы в выходном файле PSpice с расширением .OUT подсхемы были распечатаны в развернутом виде (это, в частности, может потребоваться, если описания моделей подсхем взяты из библиотеки), то должна быть задана опция EXPAND (см. работу [3], оператор .OPTIONS).

2.5. БИБЛИОТЕКИ

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

.LIB [<имя библиотечного файла>] ,

где <имя библиотечного файла> - полное имя библиотечного файла, т.е. с указанием полного пути и расширения. Если <имя библиотечного файла> в операторе не указывается, то подразумевается файл NOM.LIB.

Во входном файле может быть несколько операторов .LIB. Тогда поиск моделей осушествляется последовательно во всех указанных библиотеках.

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

54

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

SET PSPICELIB = <директория> [; <директория>...] ,

и в ней перечислить директории, в которых могут располагаться библиотечные файлы. Эту команду можно включить в файл AUTOEXEC.BAT. PSpice будет искать библиотечный файл сначала в текущей директории, а не найдя - в директориях, перечисленных в команде SET PSPICELIB, перебирая их в той последовательности, в которой они перечислены.

Если библиотечный файл не обнаружен, выдается сообщение об ошибке:

ERROR -- Can't find library file.

Библиотечный файл может включать в себя операторы .MODEL, описания моделей подсхем (начиная с оператора .SUBSCT и кончая оператором .ENDS), операторы .LIB, комментарии, пустые строки. Никакие другие операторы включать в библиотечный файл нельзя.

Поскольку библиотечный файл может содержать операторы .LIB, то удобно в текущей директории держать файл NOM.LIB, в котором перечислены операторы .LIB со всеми требуемыми при работе библиотеками. Тогда во входной файл PSpice достаточно включать оператор .LIB в его простейшей форме

.LIB

без указания библиотек.

PSpice осуществляет поиск в библиотеках в случае, если во входном файле имеется ссылка на имя какой-то модели элемента или подсхемы, а описания этой модели в файле нет. Если и в библиотеках модель не найдена, выдается сообщение об ошибке:

ERROR: Model ... used by ... is undefined.

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

Если желательно посмотреть описания моделей, считанных из библиотек, следует использовать опцию LIBRARY (см. пособие [3], оператор .OPTIONS). При задании этой опции описания использованных библиотечных моделей включаются в выходной файл .OUT.

Для того чтобы ускорить поиск в больших библиотеках, PSpice создает для них индексные файлы, благодаря которым поиск требуемых моделей

3.1. Описание переменных в информации об анализе

55

осуществляется очень быстро и время почти не зависит от размера библиотеки. Индексные файлы имеют те же имена, что и сами библиотеки, и создаются в тех же директориях. Файлы имеют расширение .IND. Индексный файл создается заново программой PSpice, если он отсутствует для данной библиотеки или файл библиотеки более новый, чем имеющийся индексный файл. Таким образом, при любом обновлении библиотеки индексный файл автоматически обновляется при очередном расчете какой-либо схемы. Программа информирует о создании индексного файла сообщениями:

Unable to find index file (

...ind for library file ...

Making new index file (....

ind) for library file ...

Если при этом в библиотечном файле обнаружены какие-то недопустимые операторы, выдается сообщение об ошибке:

ERROR: Unable to read library file ...lib.

В этом же случае, а также если произошел сбой при формировании индексного файла (нет места на диске, диск защищен от записи и т.п.), выдается сообщение об ошибке:

ERROR: Unable to make index for library file a.lib.

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

Начиная с Design Center 6 в PSpice могут использоваться библиотеки входных сигналов, подготовленные в текстовом редакторе или с помощью программы StmEd (см. работу [2], п. 3). Для подключения этой библиотеки служит оператор

.STMLIB <имя библиотечного файла>.

3. В И Д Ы А Н А Л И З А В P S P I C E

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

3.1.ОПИСАНИЕ ПЕРЕМЕННЫХ В ИНФОРМАЦИИ ОБ АНАЛИЗЕ

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

[3].

Форматы описания переменных, являющихся результатом расчета по постоянному току или результатом расчета переходных процессов, представлены в табл. 3.1.

 

Форматы описания переменных

Таблица 3.1

 

 

 

 

 

 

Формат

Переменная

Пример

Пояснение примера

V(<узел>)

напряжение в узле

V(5)

потенциал узла 3

V(<узел+>,<узел->)

разность потенциалов

V(5,6)

разность потенциалов узлов

 

узла+ и узла-

 

5 и 6

V(<имя>)

падение напряжения на

V(R1)

падение напряжения на

 

двухполюснике

 

сопротивлении R1

Vx(<имя>)

напряжение на выводе

VB(Q1)

напряжение базы

 

'x' элемента

 

транзистора Q1

Vxy(<имя>)

напряжение между

VGS(M1)

напряжение

 

выводами 'x' и 'y'

 

затвор-исток транзистора M1

 

элемента

 

напряжение на выводах A

Vz(<имя>)

напряжение на конце

VA(T1)

 

длинной линии

 

линии T1

I(<имя>)

ток двухполюсника

I(D1)

ток диода D1

Ix(<имя>)

ток, втекающий в вывод

IB(Q1)

ток базы транзистора Q1

 

элемента

 

ток на выводах A линии T1

Iz(<имя>)

ток на конце длинной

IA(T1)

 

линии

 

сигнал цифрового узла DA

D(<имя>)

цифровой сигнал

D(DA)

 

цифрового узла

 

 

Форматы V(<имя>) и I(<имя>) применимы к двухполюсным элементам

C, D, E, F, G, H, I, L, R, V.

Форматы Vx(<имя>), Vxy(<имя>) и Ix(<имя>) применимы к трех- и четырех-полюсным элементам, для которых “x” и “y” в зависимости от вида элемента могут принимать следующие значения :

биполярный транзистор Q: C - коллектор, B - база, E - эмиттер, S - подложка;

МДП-транзистор M: D - сток, G - затвор, S - исток, B - подложка;

3.1. Описание переменных в информации об анализе

57

полевые транзисторы J и B:

D - сток, G - затвор, S - исток.

Если имя узла символьное и начинается не с цифры, то в форматах V(<узел>) и V(<узел+>,<узел->) оно заключается в квадратные скобки.

Например, V([OUT]).

Не все токи могут фигурировать в качестве выходных величин. Нельзя непосредственно печатать токи элементов F и G - зависимых источников тока. Если все же эти токи требуются, надо включить последовательно в интересующую цепь источник нулевого напряжения и печатать ток этого источника.

Для обозначения переменной, относящейся к внутреннему узлу или элементу подсхемы, перед узлом или элементом указывается имя подсхемы (или цепочка имен, если подсхемы вложенные), завершающееся символом "." . Например, V(X1.3) - напряжение узла 3 подсхемы X1. Или V(XEXT2.XINT1.R3) - напряжение резистора R3 подсхемы XINT1, входящей в подсхему XEXT2.

Переменные, соответствующие частотному анализу, являются комплексными величинами. Для их обозначения используются те же форматы, которые приведены в табл. 3.1. Но к ним добавляются суффиксы, приведенные в табл. 3.2.

 

 

 

 

 

Таблица 3.2

 

 

Суффиксы, применяемые к комплексным переменным

 

 

 

 

 

 

Пояснение примера

 

Суффикс

 

Значение

Пример

 

 

суффикс

 

модуль

V(2,3)

модуль разности потенциалов узлов 2

 

отсутствует

 

 

 

 

и 3

 

M

 

модуль

VM(2)

 

модуль напряжения узла 2

 

DB

 

модуль в децибеллах

VDB(R1)

модуль напряжения на резисторе R1

 

 

 

 

 

 

в децибеллах

 

P

 

фаза

VBEP(Q1)

 

фаза напряжения база-эмиттер

 

 

 

 

 

 

транзистора Q1

 

G

 

групповая задержка

IAG(T1)

 

ток выводов A линии T1

 

 

 

d(фаза)/d(частота)

 

 

действительная часть базового тока

 

R

 

действительная часть

IBR(Q1)

 

 

 

 

 

 

 

транзистора Q1

 

I

 

мнимая часть

II(R1)

 

мнимая часть тока резистора R1

 

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

59

3.2.РАСЧЕТ ПО ПОСТОЯННОМУ ТОКУ

3.2.1.МЕТОД РАСЧЕТА, ЕГО ТОЧНОСТЬ И СХОДИМОСТЬ

Впроцессе расчета схемы по постоянному току все реактивности из схемы убираются; в частности, емкости и индуктивности считаются равными нулю, что эквивалентно разрыву емкостей и короткому замыканию индуктивностей.

Исходная система уравнений для расчета формируется методом узловых

потенциалов и сводится к системе уравнений Iy(U)=0, где Iy - вектор узловых токов (т.е. вектор сумм токов в узлах схемы), U - вектор узловых потенциалов. Система уравнений решается методом Ньютона-Рафсона. Это итерационный метод, начинающийся с некоторого начального приближения

U(0). Каждое следующее приближение U(k+1) рассчитывается из предыдущего U(k) по формуле U(k+1)=U(k)+t U, где U - поправка Ньютона, определяемая решением системы линейных уравнений Iy(U(k))+Y(U(k)) U=0, Y - матрица

узловых проводимостей, t1 - коэффициент Рафсона, обеспечивающий нерасходимость метода. Геометрическая интерпретация метода Ньютона в одномерном случае приведена на рис. 3.1. Как видно, метод сводится к тому, что в точке U(k), начальной для очередной итерации, проводится касательная к Iy(U) и в качестве очередного приближения U(k+1) берется точка, в которой касательная равна нулю.

Из рис. 3.1 видно, что последовательность U(k) сходится к корню, но никогда (за исключением линейного случая) его не достигает. Поэтому должен использоваться какой-нибудь критерий окончания работы алгоритма, прерывающий вычисления по достижении требуемой точности. Таких критериев используется два (см. рис. 3.1б):

-по напряжению - расчет может заканчиваться в случае, если норма вектора || U|| < εu, ε где εu - заданная погрешность по напряжению;

-по току - расчет может заканчиваться в случае, если норма вектора ||Iy||<εi, где εi - заданная погрешность по току.

60

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

Рис. 3.1. Одномерная иллюстрация метода Ньютона

Вычисления заканчиваются, если выполнены оба указанных условия. Погрешности εu и εi определяются заданными пользователем абсолютными и относительными погрешностями напряжения и тока. Прежде всего надо уяснить, почему задаются и абсолютные, и относительные погрешности. Ограничиться только абсолютными погрешностями в общем случае нельзя, поскольку в схеме могут быть узлы с существенно различающимися уровнями токов и напряжений. Например, при расчете операционных усилителей входные напряжения могут быть порядка миливольт, а входные токи - порядка наноампер; в то же время на выходе операционного усилителя напряжения составляют вольты, а токи - милиамперы. Рассчитывать сигналы в таких разных узлах с одной и той же абсолютной погрешностью невозможно: если, например, выбрать погрешности порядка нановольт и пикоампер, исходя из входного узла, то невозможно будет с такой точностью рассчитать сигналы в выходном узле (PSpice осуществляет вычисления с удвоенной точностью, что соответствует примерно 12десятичным разрядам, однако за счет накопления ошибок округления достоверными являются обычно не более 6 - 9-десятичных цифр результата). Ограничиться при расчетах только относительными погрешностями тоже невозможно, так как если, например, в каком-то узле напряжение должно быть равно нулю, то любая сколь угодно