1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5 <link rel=
"stylesheet" media=
"screen" type=
"text/css" href=
"./style.css" />
6 <link rel=
"stylesheet" media=
"screen" type=
"text/css" href=
"./design.css" />
7 <link rel=
"stylesheet" media=
"print" type=
"text/css" href=
"./print.css" />
9 <meta http-equiv=
"Content-Type" content=
"text/html; charset=utf-8" />
14 <em>Эта страница доступна также на следующих языках:
</em> <a href=
"geda-spice_polys.html" class=
"wikilink1" title=
"geda-spice_polys.html">English
</a>
17 <h1 class=
"sectionedit1" id=
"конструкции_spice_poly">Конструкции SPICE POLY
</h1>
21 Это набросок того, что я узнал о POLY. Я не уверен, что всё абсолютно точно,
22 поэтому не стесняйтесь и исправляйте.
26 Различные версии SPICE используют разные методы моделирования нелинейных
27 зависимых источников, например ASRC, Bxxxx, Exxxx, Gxxxx, Fxxxx, Hxxxx и
32 Некоторые, например NGspice, используют произвольные выражения с блоками
33 условий, другие, например GNUcap, используют полиномы и аппроксимацию
34 кривых. Функции POLY, видимо, являются здесь наименьшим общим знаменателем,
35 однако в SPICE3 они не поддерживаются. Полиномы были первым средством,
36 используемым для аппроксимации нелинейных зависимостей, потому что эти
37 функции работают хорошо, и SPICE может легко найти производную в какой-либо
38 точке, используемой в числовых методах решения. Отрицательная сторона здесь
39 — необходимость кое-какой дополнительной работы в других программах для
40 получения коэффициентов своего полиномиального выражения.
44 Вот несколько общих проблем с полиномиальными аппроксимациями:
47 <li class=
"level1"><div class=
"li"> Они быстро становятся бесполезными вне ограниченной области. Действительно, поскольку модели BSIM используют полиномиальные приближения в некоторых расчётах, они склонны к нефизическому поведению в рабочих точках вне области их аппроксимации.
</div>
49 <li class=
"level1"><div class=
"li"> Чтобы получить приличную аппроксимацию функции, форма которой «не очень похожа на полином», в полиноме должно быть много членов.
</div>
54 Другой метод – использование произвольных выражений с чем-то вроде
55 функциональности
<em>if-then-else
</em> или кусочно-линейных функций. Их проще
56 формулировать, но в этом случае существует риск потери непрерывности, что
57 может вызвать серьёзные проблемы со сходимостью. Однако они гораздо более
58 удобны для того, чтобы наспех что-нибудь скомпоновать.
62 Большие усилия потрачены на получение лучшего из обеих сфер. Функции
63 кусочно-линейной аппроксимации PWL (piecewise linear functions) часто
64 используют маленькие кривые для сглаживания переходов от одной производной к
65 следующей. И выражения, в которых используются функции
<em>if-then-else
</em>,
66 строятся таким образом, чтобы получались плавные переходы между разными
67 значениями. Вообще, в библиотеках полиномиальные аппроксимации используются
68 там, где это можно сделать, и ограничиваются теми областями, где они
69 полезны. Примерами этого в Gnucap являются операторы
<code>fit
</code> и
<code>table
</code>.
73 Однако, если вы хотите попробовать свои модели в других версиях SPICE, вам,
74 вероятно, придётся дополнительно потрудиться, чтобы описать их поведение в
75 элементах оператора POLY, который, к сожалению, (на момент данного
76 написания) недостаточно хорошо документирован ни в Ngspice, ни в Gnucap.
77 Приведу здесь одно место, где есть документация:
81 <a href=
"http://newton.ex.ac.uk/teaching/CDHW/Electronics2/userguide/secC.html" class=
"urlextern" title=
"http://newton.ex.ac.uk/teaching/CDHW/Electronics2/userguide/secC.html" rel=
"nofollow">http://newton.ex.ac.uk/teaching/CDHW/Electronics2/userguide/secC.html
</a>
85 Я думаю, для аппроксимации кривых можно использовать такие программы, как
86 <a href=
"http://www.gnuplot.info" class=
"urlextern" title=
"http://www.gnuplot.info" rel=
"nofollow">Gnuplot
</a>,
87 <a href=
"http://plasma-gate.weizmann.ac.il/Grace" class=
"urlextern" title=
"http://plasma-gate.weizmann.ac.il/Grace" rel=
"nofollow">Grace
</a> или
88 <a href=
"http://www.simfit.man.ac.uk" class=
"urlextern" title=
"http://www.simfit.man.ac.uk" rel=
"nofollow">Simfit
</a>.
92 Учтите, чтобы конструкция POLY поддерживалась в программе Ngspice, при её
93 сборке нужно установить некоторые ключи. Смотрите
94 <a href=
"http://www.brorson.com/gEDA/SPICE/x496.html" class=
"urlextern" title=
"http://www.brorson.com/gEDA/SPICE/x496.html" rel=
"nofollow">http://www.brorson.com/gEDA/SPICE/x496.html
</a>.
98 —
<em><a href=
"mailto:clif@eugeneweb.com" class=
"mail" title=
"clif@eugeneweb.com">Clif Eugene
</a> 2010/
11/
23 01:
31</em>
102 <!-- EDIT1 SECTION "Конструкции SPICE POLY" [120-] --></body>