- •I. Быстрый Старт
- •Установка и запуск NL5
- •Установка NL5
- •Типы файлов
- •Запуск NL5
- •Создание и Симуляция Вашей Первой Схемы
- •Ввод схемы
- •Редактирование параметров компонентов
- •Установки переходного процесса (transient)
- •Данные переходного процесса
- •Запуск анализа переходного процесса
- •Установки частотной характеристики (AC)
- •Данные AC
- •Запуск AC анализа
- •Лицензия NL5
- •Single PC License
- •Portable License
- •Network License
- •Personal License
- •II. Интерфейс Пользователя
- •Графический Интерфейс Пользователя
- •Основное Окно
- •Основное Меню (Main Menu)
- •Основная инструментальная панель (Main Toolbar)
- •Строка состояния (Status Bar)
- •Панель выбора (Selection Bar)
- •Панель навигации
- •Окна документа
- •Другие окна
- •Окна диалогов
- •Помощь (Help)
- •Горячие клавиши
- •Предпочтения (Preferences)
- •Preferences (предпочтения)
- •Application (приложение)
- •Document (документ)
- •Schematic (схема)
- •Drawings (рисунки)
- •Mouse (Schematic) (мышь, схема)
- •Components (компоненты)
- •Symbols (символы компонентов)
- •Warnings (предупреждения)
- •Graphs (графики)
- •Table (таблица)
- •Legend (условные обозначения, список кривых на графике)
- •Annotation (аннотация)
- •Text (текст)
- •Mouse (Graphs) (мышь, графики)
- •Transient (переходный процесс)
- •HTTP Server
- •Печать
- •Форматирование печати
- •Формат данных
- •Нечувствительность к регистру (case-insensitivity).
- •Числа
- •Имена
- •Операторы
- •Функции
- •Выражения
- •Язык C
- •Comments (комментарии)
- •Data types (типы данных)
- •Variables (переменные)
- •Arrays (массивы)
- •Statements and operators
- •Скрипт
- •Синтаксис
- •Команды
- •Примеры скрипта
- •III. Схема
- •Окно схемы
- •Редактирование схемы
- •Курсор
- •Проводник
- •Соединение (Connection)
- •Земля
- •Компонент
- •Вид компонента (View)
- •Этикетка (Label)
- •Атрибуты
- •Рисунки (линия, прямоугольник, овал)
- •Текст и Переменные
- •Прокрутка и масштабирование
- •Выделение и сброс выделения
- •Удаление
- •Перемещение и копирование
- •Отключить и включить (Disable and Enable)
- •Повернуть, отразить, перевернуть (Rotate, Mirror, Flip)
- •Формат
- •Отменить и выполнить повторно (Undo, Redo)
- •Команды редактирования схемы
- •Клавиатура и горячие клавиши
- •Операции с мышкой
- •Компоненты и модели
- •Формулы
- •Функции
- •Редактирование конфигурируемого компонента (customized)
- •Работа с подсхемами
- •Работа с PWL моделью
- •Работа с PWL источником
- •Работа с моделью List
- •Работа с моделью Table
- •Работа с двухмерной (2D) моделью Table
- •Работа с моделью C
- •Работа с моделью DLL
- •Окно Компонентов (Componets Window)
- •Инструментальная панель
- •Список компонентов
- •Выбор модели
- •Редактирование параметров
- •Окно переменных (Variables Window)
- •Панель инструментов
- •Редактирование переменных
- •Листы (Sheets)
- •Группы
- •Проверка схемы
- •Инструменты схемы
- •Renumber (перенумерация)
- •Initial Conditions (начальные условия)
- •Clean Up (чистка)
- •Formulas (формулы)
- •Parameters (параметры)
- •Transform (преобразование)
- •Свойства (Properties)
- •Симуляция
- •Алгоритм симуляции
- •Данные симуляции
- •Установки переходного процесса (Transient Settings)
- •Advanced Settings
- •Данные переходного процесса (Transient Data)
- •Инструментальная панель
- •Traces (кривые)
- •Симуляция
- •Окно переходного процесса (Transient window)
- •График
- •Legend (условные обозначения)
- •Курсоры
- •Текст
- •Storage (накопитель данных, «хранилище»)
- •Data table (Таблица данных)
- •Прокрутка и масштабирование
- •Команды переходного процесса
- •Клавиатура и горячие клавиши
- •Операции с мышкой
- •Инструменты переходного процесса (Transient Tools)
- •DC sweep
- •XY diagram (XY-диаграмма)
- •Amplitude histogram (амплитудная гистограмма)
- •Histogram (гистограмма)
- •FFT (Быстрое Преобразование Фурье)
- •Eye diagram (Глазковая диаграмма)
- •Markers (маркеры)
- •Power (мощность)
- •Line snapshot
- •V. Частотная Характеристика (AC)
- •Симуляция
- •Метод линеаризации схемы
- •Метод «включения» источника (Sweep AC source)
- •Z-преобразование (Z-transform)
- •Данные симуляции
- •Установки AC (AC Settings)
- •Advanced Settings
- •Данные AC (AC Data)
- •Инструментальная панель
- •Traces (кривые)
- •Выполнение симуляции
- •Окно AC (AC window)
- •График
- •Legend (условные обозначения)
- •Курсоры
- •Text.
- •Storage (накопитель данных)
- •Data table (Таблица данных)
- •Прокрутка и масштабирование
- •Команды AC
- •Клавиатура и горячие клавиши
- •Операции с мышкой
- •Инструменты AC (AC Tools)
- •Histogram (гистограмма)
- •Smith Chart (Диаграмма Смита)
- •Диаграмма Найквиста
- •Диаграмма Николса
- •Markers (маркеры)
- •VI. Инструменты (Tools)
- •Скрипт
- •Выполнение скрипта
- •Console (консоль)
- •Командная строка
- •Sweep (серия)
- •Оптимизация
- •HTTP link
- •Запуск HTTP сервера
- •Посылка URL запроса
- •Запуск симуляция
- •Пример связи NL5-MATLAB
- •VII. Приложения (Attachments)
- •Label
- •2. Operators
- •3. Functions
- •4. Script commands
- •5. END USER LICENSE AGREEMENT
NL5 circuit simulator |
Руководство Пользователя |
Работа с моделью C
Функционирование компонента Code с моделью C описывается кодом, написанном на языке C (C-code). Код интерпретируется симулятором во время анализа переходного процесса. Хотя интерпретация кода выполняется относительно медленно, использование этой модели позволяет делать изменения кода очень быстро. Когда код окончательно отлажен, его можно откомпилировать и поместить в DLL для значительно более быстрой симуляции. См. главу Работа с моделью DLL для подробностей.
Выполнение кода. Принцип выполнения C-кода показан на следующей диаграмме:
Каждому входу/выходу компонента с именем поставлена в соответствие переменная с таким же именем. Напряжение на входе компонента (―in‖) измеряется вольтметром, и величина измеренного напряжения присваивается переменной с тем же именем (double in). Затем интерпретируется С-код программы и вычисляется новое значение выходной переменной (double out). И, наконец, напряжение, равное по величине значению переменной out выставляется на заземленный источник напряжения, подключенный к выходу компонента с таким же именем (―out‖).
Входы и выходы. Входы являются вольтметром с бесконечным входным сопротивление. Выходы являются заземленными источниками напряжения с нулевым выходным сопротивлением. Значения сигналам входов (напряжение, измеренное вольтметром) и выходов (напряжение источника питания) доступны через переменные типа double, имеющие такие же имена, как и выводы компонента (например x1, x2, x3, y1, y2, y3). Также входам и выходам могут быть поставлены в соответствие элементы массивов (например x[0], x[1], x[2]).
Переменные (массивы) входов и выходов являются глобальными, и должны быть определены как переменные (массивы) типа double в самом начале кода (см. главу Глобальные переменные ниже ). Если переменные (массивы)
не определены явно, они будут автоматически созданы во время инициалации анализа при t=0.
130
NL5 circuit simulator |
Руководство Пользователя |
Структура кода. Типичная структура кода следующая:
/* Global variables */
...
/* Initialization code */ init() {
...
}
/* Main code */ main() {
...
}
Если сложная инициализация глобальных переменных не требуется, код инциализации (init) может быть опущен. Тогда структура кода будет такой:
/* Global variables */
...
/* Main code */ main() {
...
}
И, наконец, если глобальные переменные не испоьзуются (кроме переменных входов/выходов), отдельная функция для основного кода (main) может быть также опущена. В этом случае весь код компонента рассматривается как основной:
/* Main code */
...
Глобальные переменные. Глобальные переменные являются public переменными. Они могут быть доступны снвружи кода: из скрипта (например, для data logging), отображены на графике транзиента, использованы для задания источников (модель Function). Также, глобальные переменные являются статическими: они существуют и сохраняют свои значения в течение всего анализа.
Глобальные переменные могут быть использованы для хранения данных, которые вычисляются один раз, а затем используются при вычислениях на каждом шаге анализа. Также они могут быть использованы для хранения данных, которые вычисляются на одном шаге анализа, и используются на следующем шаге анализа (в функции main).
Глобальные переменные должны быть определены в начале кода, вне функций init и main. Переменные могут быть инициализированы в момент определения (декларации), или внутри фунции инициализации init, если это требует сложных вычислений.
Переменные (массивы) входов и выходов всегда являются глобальными, и должны быть определены как переменные (массивы) типа double в самом начале кода. Если эти переменные
131
NL5 circuit simulator |
Руководство Пользователя |
(массивы) не определены явно, они будут автоматически созданы во время инициалации анализа при t=0.
Для доступа к глобальным переменным С-кода извне используется следующий формат:
component_name.variable_name
Для элементов масива:
component_name.array_name[index]
Например, чтобы отобразить глобальную переменную на графике, добавьте кривую типа function, и введите имя переменной (или выражение с этой переменной) в следующем формате:
X1.out1
Xcode.array[3]
X1.X2.temp (X1 – subcircuit, X2 – Code component)
Код инициализации выполняется один раз в начале симуляции при t=0. Имя функции с кодом инициализации должно быть init. Код используется для инициализации глобальных переменных, требующей сложных вычислений. Этот код не является обязательным и может быть опущен.
В основном коде вычисляются выходные переменные, используя текущие значения входных переменных. Если у компонента не задан вывод clock, этот код выполняется на каждом шаге симуляции. Если вывод clock существует, код выполняется только при нарастающем фронте сигнала синхронизации на этом выводе. Имя функции с основным кодом должно быть main.
Переменные, определенные в основной коде, являются локальными, и существуют только во время выполнения основного кода. Используйте глобальные переменные для хранения данных, которые вычисляются на одном шаге анализа, и используются на следующем шаге анализа.
Наряду с глобальными и локальными переменными, в основном коде могут быть использованы следующие, доступные только для чтения (read-only), переменные:
Параметры компонентов (например, R1, C2, V.period, и т.п.), t – текущее время переходного процесса
V(name) – напряжение на компоненте name I(name) – ток через компонент name P(name) – мощность на компоненте name
где name - это имя любого компонента в схеме.
132
NL5 circuit simulator |
Руководство Пользователя |
Основной код может быть модифицирован во время выполнения переходного анализа: приостановите анализ (Transient | Pause), сделайте изменения и продолжите анализ (Transient | Continue).
Начальные условия (“IC”) – это текстовая строка, которая может содержать код, присваивающий начальные значения переменным входов/выходов и глобальным переменным, определенным в инициализационная части кода. Например:
y1=1.2;y2=0;y3=2.345;integral=-4.19;counter=100
где y1, y2 и y3 – выходные переменные; integral и counter – глобальные переменные.
Строка IC может быть автоматически модифицирована некоторыми командами:
Команда Transient | Save IC заполняет строку текущими значениями переменных.
Команда Schematic | Tools, страница Initial Condition: при установленном флажке Clear C-code IC эта строка будет очищена.
Если строка не пустая, этот код будет исполнен сразу после выполнения кода инициализации (init) , перед первым шагом симуляции при t=0.
Редактирование C-кода. Для редактирования кода щелкните кнопку в строке параметра. Появится следующее диалоговое окно:
Введите код, затем щелкните кнопку OK, чтобы применить изменения и закрыть окно, или Cancel, чтобы игнорировать изменения и закрыть окно.
Следующие кнопки расположены на инструментальной панели окна:
Open code – загрузить код из файла.Save code – сохранить код в файле.Clear –очистить текст.
133
NL5 circuit simulator |
Руководство Пользователя |
Clear code and set template – oчистить текст и поместить шаблон кода:
Check – проверить текст программы на наличие синтаксических ошибок.
Show line numbers (no editing allowed in this mode) Показать номера строк. В этом режиме редактирование кода запрещено:
Select font – выбрать шрифт текста.
134
NL5 circuit simulator |
Руководство Пользователя |
Help (F1) – Помощь. Чтобы увидеть раздел помощи для определенного оператора, функции, или команды языка C, поместите курсор редактирования на соответствующее слово в программе и щелкните кнопку, или нажмите клавишу F1:
Place cursor on for operator |
Click Help button |
Help on for operator is displayed |
|
or press F1 |
|
135