Сгенерируйте подсистему интерфейса Simulink Real-Time для модели Simscape двухуровневого конвертера

В этом примере показано, как сгенерировать подсистему Simulink ® Real-Time Interface для Simscape™ двухуровневой модели объекта управления преобразования. Затем можно развернуть модель интерфейса на модуле Speedgoat FPGA IO. Этот пример использует модуль Speedgoat IO334-325k.

Симуляция в реальном времени

Симуляция модели объекта управления на ПЛИС обеспечивает:

  • Симуляция в реальном времени: Оборудование в цикле обеспечивает симуляцию в реальном времени вашей модели объекта управления Simscape на целевом компьютере.

  • Аппаратное ускорение: ускоренная симуляция сложных физических систем на оборудовании, в то время как перенастраиваемые FPGA обеспечивают быстрое прототипирование.

Чтобы использовать рабочий процесс:

  1. Разработайте модель Simscape и преобразуйте ее в модель реализации с помощью Simscape HDL Workflow Advisor.

  2. Сгенерируйте HDL-код и разверните код в модуле Speedgoat ввода-вывода с помощью HDL Workflow Advisor.

Setup и строение

Перед развертыванием алгоритма на модуле Speedgoat IO:

1. Установите последнюю версию Xilinx ® Vivado ®, указанную в HDL Language Support и поддерживаемых сторонних программах и оборудовании.

Затем установите инструмент путь к установленному исполняемому файлу Xilinx Vivado при помощи hdlsetuptoolpath функция.

hdlsetuptoolpath('ToolName','Xilinx Vivado','ToolPath','C:\Xilinx\Vivado\2019.2\bin\vivado.bat')

2. Для симуляции в реальном времени настройте среду разработки и настройки целевого компьютера. См. Запуск с Simulink Real-Time (Simulink Real-Time).

3. Установите библиотеку Speedgoat и пакеты Speedgoat HDL Coder Integration. См. раздел Установка пакетов HDL Coder Интегрирование Speedgoat.

Идеальная модель двухуровневого конвертера

Чтобы открыть эту модель, введите:

open_system('sschdlexTwoLevelConverterIdealExample')

Сохраните эту модель локально как TwoLevelConverter_HDL.slx чтобы запустить этот рабочий процесс.

open_system('TwoLevelConverter_HDL')
set_param('TwoLevelConverter_HDL','SimulationCommand','update')

open_system('TwoLevelConverter_HDL/Simscape_system')

Подсистема Simscape получает импульсы управления с шестью переключателями как вход. Подсистема Simscape действует как генератор, который использует двухуровневый метод PWM на основе несущей для:

  1. Дискретизируйте ссылку волну.

  2. Сравните выборку с треугольной несущей волной.

  3. Сгенерируйте импульс включения, если выборка выше, чем сигнал несущей, или импульс выключения, если выборка ниже, чем несущая волна.

Симулируйте модель.

sim('TwoLevelConverter_HDL')
open_system('TwoLevelConverter_HDL/Load Scope')

Сгенерируйте модель реализации HDL

Чтобы сгенерировать модель реализации, используйте Simscape HDL Workflow Advisor. Запуск sschdladvisor функция для вашей модели:

sschdladvisor('TwoLevelConverter_HDL')
### Running Simscape HDL Workflow Advisor for <a href="matlab:(TwoLevelConverter_HDL)">TwoLevelConverter_HDL</a>

Чтобы сгенерировать модель реализации, в Simscape HDL Workflow Advisor сохраните настройки по умолчанию для задач, а затем запустите задачи. Вы видите ссылку на модель в задаче Генерация модели реализации. Эта модель имеет то же имя что и исходная модель с префиксом gmStateSpaceHDL.

Чтобы открыть модель реализации, введите:

load_system('gmStateSpaceHDL_TwoLevelConverter_HDL')
open_system('gmStateSpaceHDL_TwoLevelConverter_HDL/Simscape_system')
set_param('gmStateSpaceHDL_TwoLevelConverter_HDL','SimulationCommand','update')

Модель реализации заменяет подсистему Simscape алгоритмом HDL, который выполняет расчеты пространства состояний. Когда вы перемещаетесь внутри этой подсистемы, вы видите несколько задержек, сумматоров и блоков Matrix Multiply, которые моделируют уравнения пространства состояний. Блоки From и Goto внутри этой подсистемы обеспечивают тот же вход, что и исходная модель, HDL Subsystem.

open_system('gmStateSpaceHDL_TwoLevelConverter_HDL/Simscape_system/HDL Subsystem/HDL Algorithm')

HDL Workflow Advisor

HDL Workflow Advisor поможет вам с генерацией HDL-кода и процессом проекта FPGA. Используйте Advisor для:

  • Проверьте модель на совместимость генерации HDL-кода и исправьте несовместимые настройки.

  • Сгенерируйте HDL-код, испытательный стенд и скрипты для создания и запуска кода и испытательного стенда.

  • Выполните синтез и временной анализ.

  • Развертывание сгенерированного кода на модулях SoCs, FPGA и Speedgoat ввода-вывода.

Чтобы открыть HDL Workflow Advisor для подсистемы в модели, используйте hdladvisor функция.

load_system('sschdlexTwoLevelConverterIgbtExample')
hdladvisor('sschdlexTwoLevelConverterIgbtExample/Simscape_system')

Левая панель содержит папки, которые представляют группу связанных задач. При развертывании папок и выборе задачи сведения об этой задаче отображаются на правой панели. Правая панель содержит простые элементы управления для выполнения задачи в продвинутых параметрах и параметрах настройки, которые код системы управления и испытательный стенд генерацию. Чтобы узнать больше о каждой задаче, щелкните правой кнопкой мыши эту задачу и выберите «Что это?» См. Раздел «Начало работы с HDL Workflow Advisor».

Развертывание двухуровневой идеальной модели конвертера на модуле Speedgoat IO334-325K

1. Откройте HDL Workflow Advisor для модели реализации.

hdladvisor('gmStateSpaceHDL_TwoLevelConverter_HDL/Simscape_system/HDL Subsystem')

2. В задаче Set Target Device и Synthesis Tool задайте Целевой рабочий процесс следующим Simulink Real-Time FPGA I/O и целевую платформу как Speedgoat IO334-325K

3. Запустите задачу Set Target Reference Design, выберите значение x4 для параметра PCIe lanesи выберите Run This Task.

4. В задаче Set Target Interface сопоставьте вход и выход single порты типа данных в PCIe Interface и выберите Run This Task.

5. Щелкните правой кнопкой мыши задачу Generate RTL Code and IP Core и выберите Run to Selected Task. Когда модель использует типы векторных данных, Генерация кода RTL и IP-ядра прекращает работать, потому что ScalarizePorts свойство должно быть установлено в dutlevel. Щелкните ссылку, чтобы изменить эту настройку и повторить задачу.

6. Запустите рабочий процесс для задачи интерфейса Generate Simulink Real-Time. В задаче Create Project можно открыть проект Vivado и увидеть реализованный дизайн. После выполнения задачи интерфейса Generate Simulink Real-Time щелкните ссылку, чтобы открыть модель интерфейса Simulink Real-Time.

Экспорт рабочего процесса HDL в скрипт

Для быстрого прототипирования можно экспортировать настройки HDL Workflow Advisor в скрипт. Скрипт является файлом MATLAB ®, который можно запустить из командной строки. Затем можно изменить и запустить скрипт или импортировать настройки в интерфейс пользователя HDL Workflow Advisor.

Чтобы экспортировать скрипт Рабочий Процесс, после запуска задач в Advisor, выберите Файл > Экспорт в скрипт. В данном примере при экспорте в скрипт в этом файле показаны сохраненные настройки.

edit('hdlworkflow_slrt.m')

Чтобы импортировать HDL скрипт рабочего процесса, в HDL Workflow Advisor, выберите Файл > Импорт из скрипта. Выберите файл скрипта и нажмите Открыть. HDL Workflow Advisor обновляет задачи с помощью импортированных параметров скрипта.

Для примера, который показывает, как запустить приложение реального времени путем развертывания битового потока FPGA, смотрите Оборудование в цикле Реализация модели Simscape на ввод-вывод модулях Speedgoat FPGA.

См. также

Функции

Похожие темы