Sophie

Sophie

distrib > Mageia > 5 > x86_64 > media > core-release > by-pkgid > f2f28f61487f3042d93877451f0a311f > files > 204

geda-docs-1.8.2-4.mga5.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="sectionedit1506"><a name="обзор" id="обзор">Обзор</a></h1>
<div class="level1">

<p>
<strong>gschem</strong> можно использовать для создания таких электрических схем, работу
которых можно затем промоделировать с помощью <strong>ngspice</strong>. Это удобно
тем, что прежде чем отдать свой проект в производство, его
можно шаг за шагом улучшать и каждый раз проверять моделированием.
Цель настоящего руководства не в том, чтобы научить вас премудростям
<a href="geda-glossary.ru.html#spice" class="wikilink1" title="geda-glossary.ru.html">SPICE</a>, а в том, чтобы на очень простом примере объяснить
нужные для работы шаги. Более подробную документацию по SPICE и gEDA можно
найти на страницах:
</p>
<ul>
<li class="level1"><div class="li"> <a href="http://ngspice.sourceforge.net/index.html" class="urlextern" title="http://ngspice.sourceforge.net/index.html"  rel="nofollow">ngspice</a></div>
</li>
<li class="level1"><div class="li"> <a href="geda-csygas.ru.html" class="wikilink1" title="geda-csygas.ru.html">gEDA и SPICE</a></div>
</li>
</ul>

<p>
Может быть полезен и <a href="geda-faq-simulation.ru.html" class="wikilink1" title="geda-faq-simulation.ru.html">FAQ по моделированию</a> в Wiki.
</p>

<p>
Этот учебник основывается на <em><code>TwoStageAmp.sch</code></em>, одном из примеров в
документации gEDA, и в нём шаг за шагом воспроизводится первая половина этого
примера.
</p>

</div>
<!-- EDIT1506 SECTION "Обзор" [1-1394] -->
<h1 class="sectionedit1507"><a name="настройка" id="настройка">Настройка</a></h1>
<div class="level1">

<p>
Допустим, вы уже умеете создавать схемы в <strong>gschem</strong>. Если вы не знаете, как
это делается, посмотрите <a href="geda-gsch2pcb_tutorial.ru.html" class="wikilink1" title="geda-gsch2pcb_tutorial.ru.html">Учебник по gsch2pcb</a>. Итак,
начнём с создания каталога проекта <em><code>simpleSPICE</code></em> и файла схемы
<em><code>simplespice.sch</code></em> в этом каталоге.
</p>

<p>
Сделайте в <strong>gschem</strong> примерно такую схему:
</p>

<p>
<a href="media/geda/simple1.png" class="media" target="_blank" title="geda:simple1.png"><img src="media/geda/simple1.png" class="media" alt="" /></a>
</p>

<p>
Заметьте, что здесь созданы три именованных
<a href="geda-glossary.ru.html#соединение" class="wikilink1" title="geda-glossary.ru.html">соединения</a>: <em>Vin</em>, <em>Vout</em> и
<em>Vbase</em>. Хотя так делать и не обязательно, но таким образом легче отслеживать
важные точки схемы. Чтобы создать именованное соединение, надо либо щёлкнуть
правой кнопкой, либо нажать [<strong>e</strong>][<strong>e</strong>], когда соединение выделено, а затем в окне
редактирования атрибутов добавить атрибут <code>netname</code> и в качестве значения
для него задать нужное имя соединения. Хотя теперь у нас уже есть схема
для моделирования, чтобы получить какие-либо результаты, нам надо ещё
добавить некоторую информацию специально для SPICE.
</p>

</div>
<!-- EDIT1507 SECTION "Настройка" [1395-2997] -->
<h1 class="sectionedit1508"><a name="добавим_кое-что_для_spice" id="добавим_кое-что_для_spice">Добавим кое-что для SPICE</a></h1>
<div class="level1">

<p>
Чтобы схема была пригодна для моделирования, нам нужно сделать четыре вещи.
Нужно подключить входной сигнал, описать свойства
транзистора, явно определить <em>Vcc</em> и добавить несколько строк в файл SPICE.
Когда всё это будет сделано, схема будет выглядеть так:
</p>

<p>
<a href="media/geda/schematicfinished2.png" class="media" target="_blank" title="geda:schematicfinished2.png"><img src="media/geda/schematicfinished2.png" class="media" title="" alt="" /></a>
</p>

<p>
Чтобы добавить входной сигнал, нужно выбрать его символ в меню компонентов
<strong>SPICE simulation elements</strong> → <strong>vac-1.sym</strong>, и после вставки в схему
отредактировать его свойства вот так:
</p>

<p>
<a href="media/geda/dialogvac.png" class="media" target="_blank" title="geda:dialogvac.png"><img src="media/geda/dialogvac.png" class="media" title="" alt="" /></a>
</p>

<p>
Отметьте себе, что в атрибуте <code>value</code> — строка для SPICE. Больше о синтаксисе
SPICE можно узнать, перейдя по вышеприведённым ссылкам.
</p>

<p>
<em>Vcc</em> настраивается в целом также, только в меню компонентов нужно
выбрать <strong>SPICE simulation elements</strong> → <em><code>vdc-1.sym</code></em>. Свойства этого символа
нужно отредактировать вот так:
</p>

<p>
<a href="media/geda/dialogvdc1.png" class="media" target="_blank" title="geda:dialogvdc1.png"><img src="media/geda/dialogvdc1.png" class="media" title="" alt="" /></a>
</p>

<p>
Настройка транзистора немного сложнее. Сначала нам нужна SPICE-модель для
интересующего нас транзистора. Обычно модели можно найти на веб-сайтах
производителей или в спецификации компонента, но для работы со своей любимой
программой моделирования их может быть придётся изменить. Самый лёгкий путь
— взять модель из библиотеки
<a href="http://www.h-renrew.de/h/spicelib/doc/index.html" class="urlextern" title="http://www.h-renrew.de/h/spicelib/doc/index.html"  rel="nofollow"> spicelib</a>. В данном
примере мы рассмотрим вездесущий 2N3904. Вот его модель:
</p>
<pre class="code">.model 2N3904   NPN(Is=6.734f Xti=3 Eg=1.11 Vaf=74.03 Bf=416.4 Ne=1.259
+               Ise=6.734f Ikf=66.78m Xtb=1.5 Br=.7371 Nc=2 Isc=0 Ikr=0 Rc=1
+               Cjc=3.638p Mjc=.3085 Vjc=.75 Fc=.5 Cje=4.493p Mje=.2593 Vje=.75
+               Tr=239.5n Tf=301.2p Itf=.4 Vtf=4 Xtf=2 Rb=10)
*               Fairchild        pid=23          case=TO92
*               88-09-08 bam    creation</pre>

<p>
В каталоге проекта <em><code>simpleSPICE</code></em> создайте подкаталог <em><code>models</code></em>, а в
нём файл <em><code>2N3904.mod</code></em>, содержащий вышеуказанный текст. Обязательно добавьте
пустую строку в конце файла, так как очень важно, чтобы в итоговом файле SPICE
всё задавалось в виде отдельных строк. Хорошо, теперь, когда у нас есть модель
транзистора, нам надо её подключить. Отредактируйте свойства транзистора вот
так:
</p>

<p>
<a href="media/geda/dialogtrans.png" class="media" target="_blank" title="geda:dialogtrans.png"><img src="media/geda/dialogtrans.png" class="media" title="" alt="" /></a>
</p>

<p>
Теперь нам нужно ещё сообщить о созданной нами модели программе <strong>gschem</strong>.
Это производится добавлением в схему символа <em><code>spice-model-1.sym</code></em>.
Отредактируйте его свойства так:
</p>

<p>
<a href="media/geda/dialogmodel.png" class="media" target="_blank" title="geda:dialogmodel.png"><img src="media/geda/dialogmodel.png" class="media" title="" alt="" /></a>
</p>

<p>
Хорошо, нужно добавить ещё два символа. Первый — это
<em><code>spice-include-1.sym</code></em>, подключающий текстовый файл с описанием
нужного вам вида SPICE-моделирования, а второй —
<em><code>spice-directive-1.sym</code></em>, позволяющий добавлять дополнительные строки
к этому файлу SPICE.
Свойства этих символов можно настроить следующим образом:
</p>

<p>
<a href="media/geda/dialoginclude.png" class="media" target="_blank" title="geda:dialoginclude.png"><img src="media/geda/dialoginclude.png" class="media" alt="" /></a>
</p>

<p>
<a href="media/geda/dialogdirective.png" class="media" target="_blank" title="geda:dialogdirective.png"><img src="media/geda/dialogdirective.png" class="media" alt="" /></a>
</p>

<p>
Поздравляем! Теперь наша схема готова для моделирования.
</p>

</div>
<!-- EDIT1508 SECTION "Добавим кое-что для SPICE" [2998-7351] -->
<h1 class="sectionedit1509"><a name="моделирование" id="моделирование">Моделирование</a></h1>
<div class="level1">

<p>
Хотя схема уже на месте, нам всё же надо описать, как будет производиться
моделирование. Эта информация должна быть записана в <em><code>./Simulation.cmd</code></em>,
на который ссылается символ включения, добавленный нами в предыдущем разделе.
Итак, создайте файл <em><code>./Simulation.cmd</code></em> вот с таким содержимым:
</p>
<pre class="code">.OP
.AC DEC 20 1Hz 100MegHz
* .DC VINPUT 0 5 .01
* .DC VINPUT 1 2 .01
.plot ac v(Vout) v(Vin)
.print ac v(Vout) v(Vin)</pre>

<p>
Здесь задаётся <a href="geda-glossary.ru.html#частотный_анализ" class="wikilink1" title="geda-glossary.ru.html">частотный анализ</a> (<code>.AC</code>), в то время как строки для
<a href="geda-glossary.ru.html#расчёт_статического_режима" class="wikilink1" title="geda-glossary.ru.html">расчёта режима по
постоянному току</a> (<code>.DC</code>) закомментированы. Затем идёт вывод графиков
<em>Vout</em> и <em>Vin</em>, а также печать их числовых значений. Как отмечено ранее,
узнать о SPICE можно, перейдя по вышеприведённым ссылкам.
</p>

<p>
Теперь, когда мы описали желаемый вид моделирования, откройте терминал,
перейдите в каталог <em><code>simpleSPICE</code></em> и наберите команду:
</p>
<pre class="code">gnetlist -g spice-sdb -o spice.net simplespice.sch</pre>

<p>
которая выдаст файл <em><code>spice.net</code></em> для SPICE. Теперь моделирование можно
запустить в режиме пакетной обработки, набрав:
</p>
<pre class="code">ngspice -b spice.net &gt; result.txt</pre>

<p>
что выдаст в <em><code>result.txt</code></em> большое количество текста. В этом файле должен
быть как запрошенный нами числовой вывод, так и грубый график результатов в
текстовом виде. Заметьте, что входной сигнал <em>10 мВ</em> усилился примерно до
<em>-280 мВ</em> в широком диапазоне частот. Если вы хотите увидеть графическое
представление графиков, <strong>ngspice</strong> можно заставить работать в интерактивном
режиме, удалив ключ <code>-b</code>. Более подробно это описано на веб-сайте
<strong>ngspice</strong>. Так или иначе, теперь для построения графиков и анализа у нас
есть результаты моделирования в замечательном текстовом формате, который
хорошо подходит для дальнейшей обработки скриптами на чём-то вроде <strong>python</strong>
или <strong>octave</strong>.
</p>

</div>
<!-- EDIT1509 SECTION "Моделирование" [7352-] --></body>
</html>