User Tools

Site Tools


geda:ngspice_and_gschem.ru

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
geda:ngspice_and_gschem.ru [2012/04/23 06:37]
vzh Reworded
geda:ngspice_and_gschem.ru [2014/04/23 03:50]
vzh Updated using po4a
Line 1: Line 1:
 +//Эта страница доступна также на следующих языках://​
 +[[ngspice_and_gschem|English]]
 +
 ====== Обзор ====== ====== Обзор ======
  
 **gschem** можно использовать для создания таких электрических схем, работу **gschem** можно использовать для создания таких электрических схем, работу
-которых можно затем промоделировать с помощью **ngspice**. Это удобно +которых можно затем промоделировать с помощью **ngspice**. Это удобно тем, 
-тем, что прежде чем отдать свой проект в производство,​ его +что прежде чем отдать свой проект в производство,​ его можно шаг за шагом 
-можно шаг за шагом улучшать и каждый раз проверять моделированием. +улучшать и каждый раз проверять моделированием. ​ Цель настоящего руководства 
-Цель настоящего руководства не в том, чтобы научить вас премудростям +не в том, чтобы научить вас премудростям [[geda:​glossary.ru#​SPICE]],​ а в 
-[[geda:​glossary.ru#​SPICE]],​ а в том, чтобы на очень простом примере объяснить +том, чтобы на очень простом примере объяснить нужные для работы шаги. Более 
-нужные для работы шаги. Более подробную документацию по SPICE и gEDA можно +подробную документацию по SPICE и gEDA можно найти на страницах:​ 
-найти на страницах:​+
   * [[http://​ngspice.sourceforge.net/​index.html|ngspice]]   * [[http://​ngspice.sourceforge.net/​index.html|ngspice]]
   * [[gEDA:​csygas.ru|gEDA и SPICE]]   * [[gEDA:​csygas.ru|gEDA и SPICE]]
 +
 +
  
 Может быть полезен и [[geda:​faq-simulation.ru|FAQ по моделированию]] в Wiki. Может быть полезен и [[geda:​faq-simulation.ru|FAQ по моделированию]] в Wiki.
 +
  
 Этот учебник основывается на //''​TwoStageAmp.sch''//,​ одном из примеров в Этот учебник основывается на //''​TwoStageAmp.sch''//,​ одном из примеров в
-документации gEDA, и в нём шаг за шагом воспроизводится первая половина этого +документации gEDA, и в нём шаг за шагом воспроизводится первая половина 
-примера.+этого примера. 
 + 
  
  
 ====== Настройка ====== ====== Настройка ======
 +
 Допустим,​ вы уже умеете создавать схемы в **gschem**. Если вы не знаете,​ как Допустим,​ вы уже умеете создавать схемы в **gschem**. Если вы не знаете,​ как
 это делается,​ посмотрите [[gsch2pcb_tutorial.ru|Учебник по gsch2pcb]]. Итак, это делается,​ посмотрите [[gsch2pcb_tutorial.ru|Учебник по gsch2pcb]]. Итак,
Line 31: Line 40:
 Заметьте,​ что здесь созданы три именованных Заметьте,​ что здесь созданы три именованных
 [[geda:​glossary.ru#​Соединение|соединения]]:​ //Vin//, //Vout// и [[geda:​glossary.ru#​Соединение|соединения]]:​ //Vin//, //Vout// и
-//Vbase//. Хотя так делать и не обязательно,​ но таким образом легче отслеживать +//Vbase//. Хотя так делать и не обязательно,​ но таким образом легче 
-важные точки схемы. Чтобы создать именованное соединение,​ надо либо щёлкнуть +отслеживать важные точки схемы. Чтобы создать именованное соединение,​ надо 
-правой кнопкой,​ либо нажать ​[**e**][**e**], когда соединение выделено,​ а затем в окне +либо щёлкнуть правой кнопкой,​ либо нажать ​<key>e</​key><​key>​e</​key>​, когда 
-редактирования атрибутов добавить атрибут ''​netname''​ и в качестве значения +соединение выделено,​ а затем в окне редактирования атрибутов добавить 
-для него задать нужное имя соединения. Хотя теперь у нас уже есть схема +атрибут ''​netname''​ и в качестве значения для него задать нужное имя 
-для моделирования,​ чтобы получить какие-либо результаты,​ нам надо ещё +соединения. Хотя теперь у нас уже есть схема для моделирования,​ чтобы 
-добавить некоторую информацию специально для SPICE. +получить какие-либо результаты,​ нам надо ещё добавить некоторую информацию 
 +специально для SPICE.
  
 ====== Добавим кое-что для SPICE ====== ====== Добавим кое-что для SPICE ======
 +
 Чтобы схема была пригодна для моделирования,​ нам нужно сделать четыре вещи. Чтобы схема была пригодна для моделирования,​ нам нужно сделать четыре вещи.
-Нужно подключить входной сигнал,​ описать свойства +Нужно подключить входной сигнал,​ описать свойства транзистора,​ явно 
-транзистора,​ явно определить //Vcc// и добавить несколько строк в файл SPICE. +определить //Vcc// и добавить несколько строк в файл SPICE. ​ Когда всё это 
-Когда всё это будет сделано,​ схема будет выглядеть так:+будет сделано,​ схема будет выглядеть так:
  
 {{geda:​schematicfinished2.png|}} {{geda:​schematicfinished2.png|}}
Line 54: Line 64:
 {{geda:​dialogvac.png|}} {{geda:​dialogvac.png|}}
  
-Отметьте себе, что в атрибуте ''​value''​ --- строка для SPICE. Больше о синтаксисе +Отметьте себе, что в атрибуте ''​value''​ --- строка для SPICE. Больше о 
-SPICE можно узнать,​ перейдя по вышеприведённым ссылкам.+синтаксисе SPICE можно узнать,​ перейдя по вышеприведённым ссылкам.
  
-//Vcc// настраивается в целом также, только в меню компонентов нужно +//Vcc// настраивается в целом так же, только в меню компонентов нужно 
-выбрать **SPICE simulation elements** -> //''​vdc-1.sym''//​. Свойства этого символа +выбрать **SPICE simulation elements** -> //''​vdc-1.sym''//​. Свойства этого 
-нужно отредактировать вот так:+символа нужно отредактировать вот так:
  
 {{geda:​dialogvdc1.png|}} {{geda:​dialogvdc1.png|}}
Line 70: Line 80:
 [[http://​www.h-renrew.de/​h/​spicelib/​doc/​index.html | spicelib]]. В данном [[http://​www.h-renrew.de/​h/​spicelib/​doc/​index.html | spicelib]]. В данном
 примере мы рассмотрим вездесущий 2N3904. Вот его модель:​ примере мы рассмотрим вездесущий 2N3904. Вот его модель:​
 +
 +
   .model 2N3904 ​  ​NPN(Is=6.734f Xti=3 Eg=1.11 Vaf=74.03 Bf=416.4 Ne=1.259   .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   +               ​Ise=6.734f Ikf=66.78m Xtb=1.5 Br=.7371 Nc=2 Isc=0 Ikr=0 Rc=1
Line 77: Line 89:
   *               ​88-09-08 bam    creation   *               ​88-09-08 bam    creation
  
-В каталоге проекта //''​simpleSPICE''//​ создайте подкаталог //''​models''//,​ а в + 
-нём файл //''​2N3904.mod''//,​ содержащий вышеуказанный текст. Обязательно добавьте +В каталоге проекта //''​simpleSPICE''//​ создайте подкаталог //''​models''//,​ а 
-пустую строку в конце файла, так как очень важно, чтобы в итоговом файле SPICE +в нём файл //''​2N3904.mod''//,​ содержащий вышеуказанный текст. Обязательно 
-всё задавалось в виде отдельных строк. Хорошо,​ теперь,​ когда у нас есть модель +добавьте пустую строку в конце файла, так как очень важно, чтобы в итоговом 
-транзистора,​ нам надо её подключить. Отредактируйте свойства транзистора вот +файле SPICE всё задавалось в виде отдельных строк. Хорошо,​ теперь,​ когда у 
-так:+нас есть модель транзистора,​ нам надо её подключить. Отредактируйте свойства 
 +транзистора вот так:
  
 {{geda:​dialogtrans.png|}} {{geda:​dialogtrans.png|}}
Line 93: Line 106:
  
 Хорошо,​ нужно добавить ещё два символа. Первый --- это Хорошо,​ нужно добавить ещё два символа. Первый --- это
-//''​spice-include-1.sym''//,​ подключающий текстовый файл с описанием +//''​spice-include-1.sym''//,​ подключающий текстовый файл с описанием нужного 
-нужного вам вида SPICE-моделирования,​ а второй --- +вам вида SPICE-моделирования,​ а второй --- //''​spice-directive-1.sym''//,​ 
-//''​spice-directive-1.sym''//,​ позволяющий добавлять дополнительные строки +позволяющий добавлять дополнительные строки к этому файлу SPICE. ​ Свойства 
-к этому файлу SPICE. +этих символов можно настроить следующим образом:​
-Свойства этих символов можно настроить следующим образом:​+
  
 {{geda:​dialoginclude.png}} {{geda:​dialoginclude.png}}
Line 108: Line 120:
  
 ====== Моделирование ====== ====== Моделирование ======
 +
 Хотя схема уже на месте, нам всё же надо описать,​ как будет производиться Хотя схема уже на месте, нам всё же надо описать,​ как будет производиться
-моделирование. Эта информация должна быть записана в //''​./​Simulation.cmd''//,​ +моделирование. ​ Эта информация должна быть записана в 
-на который ссылается символ включения,​ добавленный нами в предыдущем разделе. +//''​./​Simulation.cmd''//,​ на который ссылается символ включения,​ добавленный 
-Итак, создайте файл //''​./​Simulation.cmd''//​ вот с таким содержимым:​+нами в предыдущем разделе. ​ Итак, создайте файл //''​./​Simulation.cmd''//​ вот 
 +с таким содержимым:​ 
 + 
   .OP   .OP
   .AC DEC 20 1Hz 100MegHz   .AC DEC 20 1Hz 100MegHz
Line 120: Line 136:
  
  
-Здесь задаётся [[geda:​glossary.ru#​частотный анализ]] (''​.AC''​),​ в то время как строки для +Здесь задаётся [[geda:​glossary.ru#​частотный анализ]] (''​.AC''​),​ в то время 
-[[geda:​glossary.ru#​Расчёт статического режима|расчёта режима по +как строки для [[geda:​glossary.ru#​Расчёт статического режима|расчёта режима 
-постоянному току]] (''​.DC''​) закомментированы. Затем идёт вывод графиков+по постоянному току]] (''​.DC''​) закомментированы. Затем идёт вывод графиков
 //Vout// и //Vin//, а также печать их числовых значений. Как отмечено ранее, //Vout// и //Vin//, а также печать их числовых значений. Как отмечено ранее,
 узнать о SPICE можно, перейдя по вышеприведённым ссылкам. узнать о SPICE можно, перейдя по вышеприведённым ссылкам.
Line 128: Line 144:
 Теперь,​ когда мы описали желаемый вид моделирования,​ откройте терминал,​ Теперь,​ когда мы описали желаемый вид моделирования,​ откройте терминал,​
 перейдите в каталог //''​simpleSPICE''//​ и наберите команду:​ перейдите в каталог //''​simpleSPICE''//​ и наберите команду:​
 +
   gnetlist -g spice-sdb -o spice.net simplespice.sch   gnetlist -g spice-sdb -o spice.net simplespice.sch
  
 которая выдаст файл //''​spice.net''//​ для SPICE. Теперь моделирование можно которая выдаст файл //''​spice.net''//​ для SPICE. Теперь моделирование можно
 запустить в режиме пакетной обработки,​ набрав:​ запустить в режиме пакетной обработки,​ набрав:​
 +
   ngspice -b spice.net > result.txt   ngspice -b spice.net > result.txt
  
-что выдаст в //''​result.txt''//​ большое количество текста. В этом файле должен +что выдаст в //''​result.txt''//​ большое количество текста. В этом файле 
-быть как запрошенный нами числовой вывод, так и грубый график результатов в +должен быть как запрошенный нами числовой вывод, так и грубый график 
-текстовом виде. Заметьте,​ что входной сигнал //10 мВ// усилился примерно до +результатов в текстовом виде. Заметьте,​ что входной сигнал //10 мВ// 
-//-280 мВ// в широком диапазоне частот. Если вы хотите увидеть графическое +усилился примерно до //-280 мВ// в широком диапазоне частот. Если вы хотите 
-представление графиков,​ **ngspice** можно заставить работать в интерактивном +увидеть графическое представление графиков,​ **ngspice** можно заставить 
-режиме,​ удалив ключ ''​-b''​. Более подробно это описано на веб-сайте +работать в интерактивном режиме,​ удалив ключ ''​-b''​. Более подробно это 
-**ngspice**. Так или иначе, теперь для построения графиков и анализа у нас +описано на веб-сайте **ngspice**. Так или иначе, теперь для построения 
-есть результаты моделирования в замечательном текстовом формате,​ который +графиков и анализа у нас есть результаты моделирования в замечательном 
-хорошо подходит для дальнейшей обработки скриптами на чём-то вроде **python** +текстовом формате,​ который хорошо подходит для дальнейшей обработки 
-или **octave**.+скриптами на чём-то вроде **python** или **octave**.
  
geda/ngspice_and_gschem.ru.txt · Last modified: 2015/08/25 08:24 by vzh