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
geda:ngspice_and_gschem.ru [2012/04/23 06:37]
vzh Reworded
geda:ngspice_and_gschem.ru [2015/08/25 08:24] (current)
vzh Po4a update
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.1335177461.txt.gz · Last modified: 2012/04/23 06:37 by vzh