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
Last revision Both sides next revision
geda:spice_polys.ru [2011/09/29 08:36]
vzh Translation of spice_polys into Russian
geda:spice_polys.ru [2012/04/19 04:53]
vzh Spelling
Line 1: Line 1:
 +====== Конструкции 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