Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все / - ПР / Multisim_Руководство пользователя_2007 / Multisim_Руководство пользователя_2007.pdf
Скачиваний:
618
Добавлен:
22.03.2015
Размер:
11.35 Mб
Скачать

3.Для кривой при нулевом напряжении смещения используйте эту точку для ввода значения емкости в поле Capacitance at 0 Bias Voltage (CJ1).

4.Для промежуточной кривой введите ее напряжение смещения в поле Intermediate Bias Voltage и введите значение емкости для точки, отмеченной вами в поле

Capacitance (CJ2).

5.Для кривой с наибольшим напряжением введите ее напряжение смещения в поле Highest Voltage. (В нашем примере это значение 50% от номинального Zener напряжения, Vzt модели, как указано в таблице “Electrical Characteristics”). Введите значение емкости для точки, которую вы отметили в поле Capacitance (CJM).

6.13 Создание модели с использованием кода

Этот раздел объясняет, как моделировать компонент, используя промышленно-стандартный, высокого уровня язык программирования Си. Компонент затем можно добавить в базу данных Multisim. Чтобы использовать моделирующего кода вы должны иметь компилятор Си, такой как Microsoft Visual C++ версии 4.1 или выше, и быть знакомы с программированием и компиляцией Си-кода. Этот раздел не предназначен для пользователей Multisim без вникания в программирование.

Multisim имеет встроенные модели для большинства типов устройств, но невозможно предложить модели для всех возможных устройств. Их поведение может быть крайне трудным для моделирования, как групп SPICE компонентов, но может быть легче описано в терминах уравнений поведения. В результате, поведение таких устройств может быть выполнено с использованием моделирующего кода.

Примечание: См. также «Редактирование моделей компонентов».

6.13.1 Что такое моделирующий код (Code Modeling)?

Моделирующий код — это поведение моделируемых устройств, чьи управляющие уравнения известны.

Примечание: Этот раздел подан как базовое руководство к написанию кода модели и включает полезные примеры. Однако написание кода — это сложный процесс, так что приготовьтесь к тому, что вам потребуется время и практика для получения должной сноровки.

Код модели состоит из набора определений интерфейса и реализации Си функций, описывающих поведение устройства. Имена и место расположения этих файлов важно. Модель создается комбинацией двух файлов (Ifspec.ifs и Cfunc.mod). Результирующий файл, которому присваивается то же имя, что и папке, содержащей его исходные файлы, размещается в папке codemodl.

National Instruments Corporation

269

Multisim User Guide

6.13.2 Создание кода модели

Специфические примеры компиляции и использования кода модели есть в « Пример GAINTEST». Для получения лучших результатов проделайте все следующие шаги из командной строки.

Для создание кода модели:

1.Установите ваши переменные окружения для Microsoft Visual C++, запустив VcVars32.bat (установленный по умолчанию в папке c:/Program Files/Microsoft

Visual Studio/Vc98/Bin).

2.Найдите директорию в той же, что и исполняемые файлы Multisim, названную codemodl. Внутри этой директории должна быть единственная поддиректория, названная USER. Вы должны создать новые поддиректории внутри USER, по одной для каждой вашей код-модели. Имя поддиректории будет заканчиваться по имени исполняемого файла код-модели.

3.Создайте новый файл интерфейса внутри вашей поддиректории модели, названной Ifspec.ifs для задания базовых определений и интерфейса вашей модели (порты ввода/ вывода и параметры).

4.Создайте новый файл реализации внутри поддиректории вашей модели, названный Cfunc.mod. Этот файл содержит действительный код модели.

5.Это критично, чтобы файл Cfunc.mod включал список всех моделей в файле в следующем формате:

SPICEdev * FAR DynDEVices[] = { &<function_name>_info

};

где <function_name> — это «C_Function_Name», определенный в вашем файле Ifspec.ifs. Это специфическое требование Multisim, так что эта строка может нуждаться в добавлении к коду моделей, используемому из других исходников. Рекомендуется, чтобы вы использовали имя функции, начинающееся с «cm_».

6.Для компиляции файлов в форму, которая может быть использована Multisim, зайдите в папку codemodl\USER и выполните следующую команду:

MAKE_DLL <subdirectory>

где <subdirectory> — это директория, где вы положили файлы вашей код-модели.

7.Если компиляция прошла успешно, вы найдете новый .dll файл внутри поддиректории, который и есть исполняемый код-модели. Вы должны скопировать или переместить это .dll файл в основную codemodl директорию, чтобы Multisim могла найти его.

8.Важно: если Multisim работает, вы должны выйти и запустить программу вновь, чтобы получить доступ к новым код-моделям. Multisim загружает пользовательские код-модели только при старте.

9.С тем, чтобы использовать вашу код-модель в Multisim выберите модель обычным образом в обозревателе компонент и выберите «Load from File». Установите тип файла в диалоге, как «Code Model DLL(*.dll)» и перейдите к директории codemodl, если

нужно. Выберите .dll файл, который только что создали.

10. Если у вас нет измененной структуры директории codemodl, имя модели и имя spice

National Instruments Corporation

270

Multisim User Guide

модели будут автоматически получены из файла ifspec.ifs. Формат выглядел бы следующим образом:

.MODEL <DLL> <name>(<params>)

где <DLL> — это .dll имя вашей модели (без расширения .dll), <name> — это «Spice_Model_Name» из вашего Ifspec.ifs, а <params> — это дополнительный список типа «<param_name> = <default value>», разделенных пробелами (не запятыми), и предназначено для замещения любых предопределенных параметров данных в Ifspec.ifs.

Удалите строку «_INSERT_PARAMS» и впечатайте ваши нужные параметры или оставьте круглые скобки пустыми, если вы хотите использовать все по умолчанию.

GAINTEST пример

Пример GAINTEST включен в установку Multisim. (Примечание: Этот пример подразумевает знакомство с Component Wizard).

1.Установите ваши переменные окружения для Microsoft Visual C++, запустив VcVars32.bat (установленный по умолчанию в папке c:/Program Files/Microsoft

Visual Studio/Vc98/Bin).

2.В вашей директории исполняемых файлов Multisim перейдите в поддиректорию, названную codemodl\USER\GAINTEST. Заметьте, что она содержит только два файла: Ifspec.ifs и Cfunc.mod.

3.Если хотите, вы можете проверить файл Ifspec.ifs для GAINTEST модели. Там определено много важных характеристик GAINTEST модели:

C_Function_Name (cm_gaintest)

Spice_Model_Name (gaintest)

Один входной порт (analog: voltage, differential voltage, current или differential current)

Один выходной порт (те же опции, что у входного)

Три параметра модели (in_offset, gain и out_offset). Заметьте, что каждый параметр дан в описании простым текстом, тип данных и предопределенное значение. Все три имеют Null_Allowed определенным, как «yes», поскольку они все — дополнительные параметры. Если любой из этих параметров опущен при вызове модели, используется предопределенное значение.

4.Если вы хотите, вы можете проверить файл Cfunc.mod для GAINTEST модели. Этот файл содержит действительную код-модель — простую функцию на языке Си с тем же именем, что определено как C_Function_Name в файле Ifspec.ifs. Отметьте использование служебных слов XSpice, таких как INPUT, OUTPUT, PARAM, PARTIAL и AC_GAIN. Также отметьте использование параметров модели, определенных в файле

Ifspec.ifs.

5. Заметьте, что GAINTEST Cfunc.mod файл включает следующее:

SPICEdev * FAR DynDEVices[] = { &cm_gaintest_info

};

как требуется в Multisim.

National Instruments Corporation

271

Multisim User Guide

6.Для завершения GAINTEST модели перейдите к папке codemodl\USER и выполните следующую команду:

MAKE_DLL GAINTEST

После успешной компиляции заметьте, что были созданы два новых файла в директории GAINTEST: Gaintest.c и Gaintest.dll.

Файл Gaintest.c содержит всю информацию из Ifspec.ifs и Cfunc.mod файлов, расширенную в формат, понимаемый компилятором Microsoft Visual C, и Multisim реализацию XSpice. Если вы проверите этот файл, вы заметите, что все служебные слова XSpice были замещены довольно сложными структурами и ссылками массива.

Файл Gaintest.dll содержит скомпилированный код модели, готовый к исполнению.

7.Переместите этот Gaintest.dll в основную codemodl директорию, чтобы программа Multisim могла найти его.

8.Если Multisim запущена, вы должны выйти и перезапустить ее, поскольку так она сможет загрузить новую GAINTEST модель. Multisim распознает новые код-модели только при запуске программы.

9.В Multisim запустите обозреватель компонентов (component wizard) следующим образом:

Создайте аналоговый компонент (только для симуляции).

Дайте элементу два вывода, один вход и один выход.

На шаге «Select Simulation Model» щелкните по кнопке Load from File. В диалоге выбора, который появится, измените фильтр на «Code Model DLL(*.dll)» и перейдите в директорию codemodl, если нужно.

Выберите файл Gaintest.dll и щелкните по Open.

Имя модели должно измениться на «GAINTEST», а данные модели на «MODEL GAINTEST gaintest(_INSERT_PARAMS)».

В разделе Model Data измените _INSERT_PARAMS to gain=2.0 (это создаст элемент, который умножит входное напряжение на два).

В разделе картирования выводов измените SPICE Model Type на «XSpice model(a)».

И, наконец, поместите эту модель в какое-то разумное место вашей User Database.

10.Создайте новую схему и разместите последовательно ваш новый элемент. Вы можете проверить, что любое напряжение, подводимое к элементу (постоянное или переменное), будет удвоено на выходе. Если вы хотите, вы можете редактировать модель в схеме, изменяя параметр усиления или добавляя значения для парметров in_offset или out_offset.

National Instruments Corporation

272

Multisim User Guide