Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > ffa379e674c6e907833924c14996ed7e > files > 232

geda-docs-1.8.1-6.mga4.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
  <title></title>
  <link rel="stylesheet" media="screen" type="text/css" href="./style.css" />
  <link rel="stylesheet" media="screen" type="text/css" href="./design.css" />
  <link rel="stylesheet" media="print" type="text/css" href="./print.css" />

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>


<h1 class="sectionedit544"><a name="конструкции_spice_poly" id="конструкции_spice_poly">Конструкции SPICE POLY</a></h1>
<div class="level1">

<p>
Это набросок того, что я узнал о POLY. Я не уверен, что всё абсолютно
точно, поэтому не стесняйтесь и исправляйте.
</p>

<p>
Различные версии SPICE используют разные методы моделирования нелинейных
зависимых источников, например ASRC, Bxxxx, Exxxx, Gxxxx, Fxxxx, Hxxxx и т. д.
</p>

<p>
Некоторые, например NGspice, используют произвольные выражения с блоками
условий, другие, например GNUcap, используют полиномы и аппроксимацию кривых.
Функции POLY, видимо, являются здесь наименьшим общим знаменателем, однако в
SPICE3 они не поддерживаются. Полиномы были первым средством, используемым для
аппроксимации нелинейных зависимостей, потому что эти функции работают хорошо,
и SPICE может легко найти производную в какой-либо точке, используемой в
числовых методах решения.  Отрицательная сторона здесь — необходимость
кое-какой дополнительной работы в других программах для получения
коэффициентов своего полиномиального выражения.
</p>

<p>
Вот несколько общих проблем с полиномиальными аппроксимациями:
</p>
<ol>
<li class="level1"><div class="li"> Они быстро становятся бесполезными вне ограниченной области.  Действительно, поскольку модели BSIM используют полиномиальные приближения в некоторых расчётах, они склонны к нефизическому поведению в рабочих точках вне области их аппроксимации.</div>
</li>
<li class="level1"><div class="li"> Чтобы получить приличную аппроксимацию функции, форма которой “не очень похожа на полином”, в полиноме должно быть много членов.</div>
</li>
</ol>

<p>
Другой метод – использование произвольных выражений с чем-то вроде
функциональности <em>if-then-else</em> или кусочно-линейных функций. Их проще
формулировать, но в этом случае существует риск потери непрерывности, что
может вызвать серьёзные проблемы со сходимостью. Однако они гораздо более
удобны для того, чтобы наспех что-нибудь скомпоновать.
</p>

<p>
Большие усилия потрачены на получение лучшего из обеих сфер. Функции
кусочно-линейной аппроксимации PWL (piecewise linear functions) часто
используют маленькие кривые для сглаживания переходов от одной производной к
следующей. И выражения, в которых используются функции <em>if-then-else</em>,
строятся таким образом, чтобы получались плавные переходы между разными
значениями. Вообще, в библиотеках полиномиальные аппроксимации используются
там, где это можно сделать, и ограничиваются теми областями, где они полезны.
Примерами этого в Gnucap являются операторы <code>fit</code> и <code>table</code>.
</p>

<p>
Однако, если вы хотите попробовать свои модели в других версиях SPICE, вам,
вероятно, придётся дополнительно потрудиться, чтобы описать их поведение в
элементах оператора POLY, который, к сожалению, (на момент данного
написания) недостаточно хорошо документирован ни в Ngspice, ни в Gnucap.
Приведу здесь одно место, где есть документация:
</p>

<p>
<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>
</p>

<p>
Я думаю, для аппроксимации кривых можно использовать такие программы,
как <a href="http://www.gnuplot.info" class="urlextern" title="http://www.gnuplot.info"  rel="nofollow">Gnuplot</a>,
<a href="http://plasma-gate.weizmann.ac.il/Grace" class="urlextern" title="http://plasma-gate.weizmann.ac.il/Grace"  rel="nofollow">Grace</a> или
<a href="http://www.simfit.man.ac.uk" class="urlextern" title="http://www.simfit.man.ac.uk"  rel="nofollow">Simfit</a>.
</p>

<p>
Учтите, чтобы конструкция POLY поддерживалась в программе Ngspice, при её
сборке нужно установить некоторые ключи. Смотрите
<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>.
</p>

<p>
 — <em><a href="mailto:&#x63;&#x6c;&#x69;&#x66;&#x40;&#x65;&#x75;&#x67;&#x65;&#x6e;&#x65;&#x77;&#x65;&#x62;&#x2e;&#x63;&#x6f;&#x6d;" class="mail" title="&#x63;&#x6c;&#x69;&#x66;&#x40;&#x65;&#x75;&#x67;&#x65;&#x6e;&#x65;&#x77;&#x65;&#x62;&#x2e;&#x63;&#x6f;&#x6d;">Clif Eugene</a> 2010/11/23 01:31</em>
</p>

</div>
</body>
</html>