User Tools

Site Tools


geda:spice_polys.ru

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
geda:spice_polys.ru [2011/09/29 08:36]
vzh Translation of spice_polys into Russian
geda:spice_polys.ru [2014/04/17 07:04]
vzh Update (using po4a)
Line 1: Line 1:
 +//Эта страница доступна также на следующих языках://​ [[spice_polys|English]]
 +
 +====== Конструкции SPICE POLY ======
 +
 +Это набросок того, что я узнал о POLY. Я не уверен,​ что всё абсолютно точно,
 +поэтому не стесняйтесь и исправляйте.
 +
 +Различные версии SPICE используют разные методы моделирования нелинейных
 +зависимых источников,​ например ASRC, Bxxxx, Exxxx, Gxxxx, Fxxxx, Hxxxx и
 +т. д.
 +
 +Некоторые,​ например NGspice, используют произвольные выражения с блоками
 +условий,​ другие,​ например GNUcap, используют полиномы и аппроксимацию
 +кривых. Функции POLY, видимо,​ являются здесь наименьшим общим знаменателем,​
 +однако в SPICE3 они не поддерживаются. Полиномы были первым средством,​
 +используемым для аппроксимации нелинейных зависимостей,​ потому что эти
 +функции работают хорошо,​ и SPICE может легко найти производную в какой-либо
 +точке, используемой в числовых методах решения. ​ Отрицательная сторона здесь
 +--- необходимость кое-какой дополнительной работы в других программах для
 +получения коэффициентов своего полиномиального выражения.
 +
 +Вот несколько общих проблем с полиномиальными аппроксимациями:​
 +
 +  - Они быстро становятся бесполезными вне ограниченной области. ​ Действительно,​ поскольку модели BSIM используют полиномиальные приближения в некоторых расчётах,​ они склонны к нефизическому поведению в рабочих точках вне области их аппроксимации.
 +  - Чтобы получить приличную аппроксимацию функции,​ форма которой «не очень похожа на полином»,​ в полиноме должно быть много членов.
 +
 +Другой метод -- использование произвольных выражений с чем-то вроде
 +функциональности //​if-then-else//​ или кусочно-линейных функций. Их проще
 +формулировать,​ но в этом случае существует риск потери непрерывности,​ что
 +может вызвать серьёзные проблемы со сходимостью. Однако они гораздо более
 +удобны для того, чтобы наспех что-нибудь скомпоновать.
 +
 +Большие усилия потрачены на получение лучшего из обеих сфер. Функции
 +кусочно-линейной аппроксимации PWL (piecewise linear functions) часто
 +используют маленькие кривые для сглаживания переходов от одной производной к
 +следующей. И выражения,​ в которых используются функции //​if-then-else//,​
 +строятся таким образом,​ чтобы получались плавные переходы между разными
 +значениями. Вообще,​ в библиотеках полиномиальные аппроксимации используются
 +там, где это можно сделать,​ и ограничиваются теми областями,​ где они
 +полезны. ​ Примерами этого в Gnucap являются операторы ''​fit''​ и ''​table''​.
 +
 +Однако,​ если вы хотите попробовать свои модели в других версиях SPICE, вам,
 +вероятно,​ придётся дополнительно потрудиться,​ чтобы описать их поведение в
 +элементах оператора POLY, который,​ к сожалению,​ (на момент данного
 +написания) недостаточно хорошо документирован ни в Ngspice, ни в Gnucap.
 +Приведу здесь одно место, где есть документация:​
 +
 +http://​newton.ex.ac.uk/​teaching/​CDHW/​Electronics2/​userguide/​secC.html
 +
 +Я думаю, для аппроксимации кривых можно использовать такие программы,​ как
 +[[http://​www.gnuplot.info|Gnuplot]],​
 +[[http://​plasma-gate.weizmann.ac.il/​Grace|Grace]] или
 +[[http://​www.simfit.man.ac.uk|Simfit]].
 +
 +Учтите,​ чтобы конструкция POLY поддерживалась в программе Ngspice, при её
 +сборке нужно установить некоторые ключи. Смотрите
 +[[http://​www.brorson.com/​gEDA/​SPICE/​x496.html]].
 +
 +
 + --- //​[[clif@eugeneweb.com|Clif Eugene]] 2010/11/23 01:31//
  
geda/spice_polys.ru.txt · Last modified: 2014/04/17 07:04 by vzh