User Tools

Site Tools


geda:csygas.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:csygas.ru [2014/04/28 08:54]
vzh Update
geda:csygas.ru [2014/07/28 08:49]
vzh Updated
Line 420: Line 420:
  
 ==== Нуллор ==== ==== Нуллор ====
-[[wp>​nullor|Нуллор]] ​является теоретическим представлением идеального +[[wp>​nullor|Нуллор]] ​- это идеальный элементсостоящий из //​нуллатора// и 
-операционного усилителя ​с бесконечными коэффициентами усиления по току и +//​норатора//,​ имеющий нулевое входное и бесконечное выходное сопротивление,​ 
-напряжению, бесконечными ​проходной проводимостью и передаточным +бесконечные коэффициенты усиления по току и напряжению,​ бесконечные 
-сопротивлением и с параметрами ​передачи равными нулю. Фактически в +проходную проводимость и передаточное ​сопротивление и параметры передачи 
-**gnet-spice-sdb** ​для представления нуллора используется источник +равные нулю.  Нуллор является универсальным активным элементом,​ то есть в 
-напряжения,​ управляемый напряжением (ИНУН).  ​Поэтому для ​этого источника +идеале с его помощью можно реализовать любые линейные или нелинейные функции 
-необходимо установить коэффициент усиления ​по напряжению.+при наличии подходящего набора линейных и нелинейных ​пассивных элементов. ​ В 
 +частности с помощью нуллора, резисторов и конденсаторов формируется полный 
 +набор линейных схем. 
 + 
 +Нуллор в зависимости от схемы включения может использоваться для анализа или 
 +синтеза реальных схем, что достигается заменой реальных операционных 
 +усилителей,​ токовых конвейеров,​ усилительных триодов (ламп или транзисторов) 
 +нуллорами и небольшим набором пассивных элементов, отражающих их параметры. 
 +Идеальные транзисторы на основе нуллора успешно используются в моделировании 
 +по переменному ​току ​для синтеза различных составных транзисторных схем ​и 
 +составных транзисторов. ​ Схемы с операционными усилителями на базе нуллора 
 +используются для реализаций фильтров. ​ Существуют также методики для 
 +верификацииавтоматической диагностики ошибок, автоматической настройки 
 +смещения в аналоговых схемах и т. д. 
 + 
 +=== Нуллор в SPICE === 
 +При ​отсутствии модели ​нуллора в программе моделирования общего назначения 
 +нуллор ​можно смоделировать с помощью [[#зависимые источники|зависимого 
 +источника]] с большим значением коэффициента усиления, например 
 +10<​sup>​9</​sup>​. Тип зависимого ​источника (ИНУН, ИТУН, ИНУТ или ИТУТ) 
 +выбирается в зависимости от оцениваемого входного сигнала, напряжения или 
 +тока и нужного выходного сигнала. Управляемый источник с бесконечным 
 +усилением ​любого из указанных четырёх ​типов зависимых источников 
 +представляет собой эквивалент нуллора. 
 + 
 +Трёх-выводной нуллор может использоваться для моделирования ​по переменному 
 +току //​идеальных транзисторов//​ и других //​триодов//​. ​ //​Идеальный 
 +операционный усилитель// реализуется ​с помощью ​источника напряжения,​ 
 +управляемого ​напряжением, с бесконечным (фактически,​ достаточно большим) 
 +коэффициентом усиления.  ​Токовый конвейер (CCII) является ​эквивалентом 
 +трёх-выводного нуллора. 
 + 
 +Обычно нуллор используется ​для ​моделирования в малосигнальном частотном 
 +анализе (в частотном домене). ​ При наличии отрицательной обратной связи 
 +нуллор может использоваться ​как идеальный операционный усилитель даже для 
 +выполнения временного анализа (см. [[#​пример схемы - сумматор|пример]] 
 +ниже). 
 + 
 +=== Нуллор в gEDA === 
 +В **ngspice** и **gnucap** ​специальной модели для нуллора нет
 +Поэтому в качестве ​нуллора в spice-sdb ​используется ИНУН с 
 +высоким ​коэффициентом усиления.
  
 Для включения нуллора в список соединений SPICE нужно сделать следующее:​ Для включения нуллора в список соединений SPICE нужно сделать следующее:​
Line 432: Line 473:
   - Дважды щёлкнуть по блоку и добавить/​отредактировать следующие атрибуты:​   - Дважды щёлкнуть по блоку и добавить/​отредактировать следующие атрибуты:​
     * ''​refdes'':​ N?     * ''​refdes'':​ N?
-    * ''​value'':​ задаётся коэффициент усиления нуллора по напряжению.+    * ''​value'':​ задаётся коэффициент усиления нуллора по напряжению, обычно 1000Meg (необязателен с версии geda-gaf 1.9.2). 
 + 
 +== Пример:​ нуллор == 
 +  * ''​refdes=N1''​ 
 +  * ''​value=1000Meg''​ 
 + 
 +Результирующие строки SPICE: 
 +  E_N1 1 2 3 4 1000Meg 
 +  IMeasure_N1 3 4 dc 0 
 +  IOut_N1 1 2 dc 0 
 + 
 +Этот код содержит:​ 
 +  * управляемый источник напряжения E_N1; 
 +  * источник тока, измеряющий напряжение IMeasure_N1;​ 
 +  * выходной источник тока IOut_N1. 
 + 
 +Таким образом код нуллора в **gnet-spice-sdb** ---  это просто зависимый от 
 +напряжения источник напряжения,​ на входе и на выходе которого стоят нулевые 
 +источники тока для предотвращения отказа в работе программы моделирования,​ 
 +когда вход или выход нуллора ни к чему не подключены. 
 + 
 +Примечание:​ в результате экспериментов я (vzh) обнаружил,​ что наличие или 
 +отсутствие этих источников никак не влияет на моделирование и не решает 
 +поставленной задачи для современной версии **ngspice**. В случае,​ когда вход 
 +или выход нуллора является плавающим,​ то есть не имеет какого-либо 
 +соединения с землёй,​ **ngspice** всё же выдаст ошибку. ​ Для устранения 
 +ошибки можно подключить одну из этих входных или выходных точек к земле 
 +через высокоомный резистор. ​ **gnucap** всегда правильно обсчитывает нуллор,​ 
 +но в таком случае на не связанных с землёй узлах будет произвольно 
 +меняющееся большое напряжение,​ так что измерять необходимо не потенциал 
 +отдельных узлов относительно земли, а именно напряжение на входе или выходе 
 +нуллора. 
 + 
 +Если нужен нуллор с другим типом чувствительности,​ его можно сделать на 
 +основе символа любого из управляемых источников (одного из 
 +//''​vcvs-1.sym''//,​ //''​vccs-1.sym''//,​ //''​cccs-1.sym''//,​ 
 +//''​ccvs-1.sym''//​),​ просто установив достаточно большое значение атрибута 
 +''​value'',​ скажем,​ «1000Meg». 
 + 
 +=== Пример схемы - сумматор === 
 +В данном примере нуллор используется в качестве модели идеального 
 +операционного усилителя. 
 + 
 +{{ :​geda:​summing.png }} 
 + 
 +Файл схемы для **gschem**: {{ :​geda:​summing.sch }} 
 + 
 +Командный файл для моделирования в **gnucap** и/или **ngspice**:​ 
 +<file spice summing.cmd>​ 
 +.print tran v(nodes) 
 +.tran .0001 1 0 >​summing.dat 
 +</​file>​ 
 + 
 +Обратите внимание на часть строки ''>​summing.dat''​ в командном файле. Она 
 +игнорируется программой **ngspice**,​ в то время как **gnucap** использует её 
 +для вывода данных в указанный файл в пакетном режиме (при использовании 
 +перенаправления командной оболочки выходные данные были бы выведены вместе 
 +со строками приглашения **gnucap**, что нам не нужно. 
 + 
 +Команда для создания списка соединений (обратите внимание на ключ ''​sort_mode'',​ он необходим,​ 
 +чтобы программа **gnucap** работала правильно):​ 
 +  gnetlist -g spice-sdb -O sort_mode -o summing.net summing.sch 
 + 
 +Команда для моделирования с помощью **ngspice**:​ 
 +  ngspice -b -r summing.dat summing.net 
 + 
 +Команда для моделирования с помощью **gnucap**:​ 
 +  gnucap -b summing.net 
 + 
 +Команда для просмотра полученных сигналов:​ 
 +  gwave summing.dat 
  
 ==== Компоненты SPICE ==== ==== Компоненты SPICE ====
Line 731: Line 843:
 облегчить написание скриптов для расчётов SPICE. Это очень мощное средство:​ облегчить написание скриптов для расчётов SPICE. Это очень мощное средство:​
 для **tclspice** можно написать скрипт на Tcl, который запустит цикл, для **tclspice** можно написать скрипт на Tcl, который запустит цикл,
-подстроит значения компонентов,​ запустит анализ,​ а затем ​оценит+подстроит значения компонентов,​ запустит анализ,​ а затем ​рассчитает
 характеристики схемы с подстроенными компонентами,​ прежде чем запускать характеристики схемы с подстроенными компонентами,​ прежде чем запускать
 новый цикл. Очевидно,​ эту возможность можно использовать для выполнения новый цикл. Очевидно,​ эту возможность можно использовать для выполнения
Line 901: Line 1013:
 |**SPICE-vcvs**| ​ **E?​** ​ |  **(5)** ​ |  -  |  -  |  -  |  -  |  Источник напряжения,​\\ управляемый напряжением ​ | |**SPICE-vcvs**| ​ **E?​** ​ |  **(5)** ​ |  -  |  -  |  -  |  -  |  Источник напряжения,​\\ управляемый напряжением ​ |
 |**SPICE-vccs**| ​ **G?​** ​ |  **(5)** ​ |  -  |  -  |  -  |  -  |  Источник тока,\\ управляемый напряжением ​ | |**SPICE-vccs**| ​ **G?​** ​ |  **(5)** ​ |  -  |  -  |  -  |  -  |  Источник тока,\\ управляемый напряжением ​ |
-|**SPICE-nullor**| ​ **E?**  |  **(5)**  |  -  |  -  |  -  |  -  |    |+|**SPICE-nullor**| ​ **N?**  |  **(15)**  |  -  |  -  |  -  |  -  |    |
 |**DIODE**| ​ **D?​** ​ |  Тип прибора ​ |  Однострочная SPICE-модель ​ |  Имя файла модели ​ |  **Название модели** ​ |  -  |  (12)  | |**DIODE**| ​ **D?​** ​ |  Тип прибора ​ |  Однострочная SPICE-модель ​ |  Имя файла модели ​ |  **Название модели** ​ |  -  |  (12)  |
 |**PMOS_TRANSISTOR**| ​ **M?​** ​ |  Тип прибора ​ |  Однострочная SPICE-модель ​ |  Имя файла модели ​ |  **Название модели** ​ |  -  |  (12)  | |**PMOS_TRANSISTOR**| ​ **M?​** ​ |  Тип прибора ​ |  Однострочная SPICE-модель ​ |  Имя файла модели ​ |  **Название модели** ​ |  -  |  (12)  |
Line 931: Line 1043:
 (12) Для моделирования нужно включить или модель,​ или файл\\ (12) Для моделирования нужно включить или модель,​ или файл\\
 (13) Помещает директиву ''​.INCLUDE''​ в список соединений SPICE\\ (13) Помещает директиву ''​.INCLUDE''​ в список соединений SPICE\\
-(14) Помещает директиву ''​.OPTIONS''​ в список соединений SPICE+(14) Помещает директиву ''​.OPTIONS''​ в список соединений SPICE\\ 
 +(15) Достаточно высокий коэффициент усиления,​ например,​ 1000Meg; не обязательно задавать в последних версиях geda-gaf (с версии 1.9.2)
  
 Выражение «поддерживаемый генератором списка соединений» означает,​ что Выражение «поддерживаемый генератором списка соединений» означает,​ что
geda/csygas.ru.txt · Last modified: 2014/07/28 08:49 by vzh