В этом примере показано, как создать подсистему интерфейса Simulink ® Real-Time для Simscape™ двухуровневой модели установки преобразователей. Затем модель интерфейса можно развернуть на модуле ввода-вывода Speedgoat FPGA. В этом примере используется модуль Speedgoat IO334-325k.
Моделирование модели установки на FPGA обеспечивает:
Моделирование в реальном времени: Аппаратное моделирование в цикле обеспечивает моделирование в реальном времени модели завода Simscape на целевом оборудовании.

Аппаратное ускорение: ускоренное моделирование сложных физических систем на аппаратном обеспечении, а реконфигурируемые FPGA обеспечивают быстрое создание прототипов.
Для использования рабочего процесса:
Разработайте модель Simscape и преобразуйте ее в модель реализации с помощью Simscape HDL Workflow Advisor.
Создайте код HDL и разверните его в модуле ввода-вывода Speedgoat с помощью помощника по рабочим процессам HDL.
Перед развертыванием алгоритма на модуле ввода-вывода Speedgoat:
1. Установите последнюю версию Xilinx ® Vivado ®, указанную в документе Поддержка языка HDL и Поддерживаемые сторонние инструменты и оборудование.
Затем установите путь к установленному исполняемому файлу 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 Library и пакеты интеграции кодеров HDL Speedgoat. См. раздел Установка пакетов интеграции кодеров HDL 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 на основе несущей для:
Образец опорной волны.
Сравните образец с треугольной несущей волной.
Генерируют импульс включения, если выборка выше сигнала несущей, или импульс выключения, если выборка ниже волны несущей.
Моделирование модели.
sim('TwoLevelConverter_HDL') open_system('TwoLevelConverter_HDL/Load Scope')

Для создания модели реализации используйте 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, который выполняет вычисления состояния-пространства. При навигации внутри этой подсистемы отображается несколько блоков задержки, сумматоров и матричного умножения, которые моделируют уравнения состояния-пространства. Блоки From и Goto внутри этой подсистемы обеспечивают тот же вход, что и исходная модель, для HDL Subsystem.
open_system('gmStateSpaceHDL_TwoLevelConverter_HDL/Simscape_system/HDL Subsystem/HDL Algorithm')

Консультант по рабочим процессам HDL помогает создавать коды HDL и разрабатывать FPGA. Используйте Advisor для:
Проверьте модель на совместимость генерации кода HDL и исправьте несовместимые настройки.
Создание кода HDL, тестового стенда и сценариев для создания и запуска кода и тестового стенда.
Выполните анализ синтеза и синхронизации.
Развертывание созданного кода на модулях SoC, FPGA и Speedgoat I/O.
Чтобы открыть помощник по рабочим процессам HDL для подсистемы внутри модели, используйте hdladvisor функция.
load_system('sschdlexTwoLevelConverterIgbtExample') hdladvisor('sschdlexTwoLevelConverterIgbtExample/Simscape_system')
Левая панель содержит папки, представляющие группу связанных задач. При развертывании папок и выборе задачи на правой панели отображается информация об этой задаче. Правая панель содержит простые элементы управления для выполнения задачи с расширенными параметрами и параметрами, управляющими созданием кода и тестового стенда. Чтобы узнать больше о каждой задаче, щелкните ее правой кнопкой мыши и выберите «Что это?». См. раздел Начало работы с консультантом по рабочим процессам HDL.
1. Откройте помощник по рабочим процессам HDL для модели внедрения.
hdladvisor('gmStateSpaceHDL_TwoLevelConverter_HDL/Simscape_system/HDL Subsystem')
2. В задаче Задать целевое устройство и средство синтеза укажите целевой рабочий процесс как Simulink Real-Time FPGA I/O и целевая платформа в качестве Speedgoat IO334-325K

3. Запустите задачу «Задать целевое ссылочное проектирование», выберите значение x4 для параметра PCIe lanesи выберите «Запустить эту задачу».
4. В задаче Set Target Interface сопоставьте входные и выходные данные. single порты типа данных для PCIe Interface и выберите Запустить эту задачу.

5. Щелкните правой кнопкой мыши на задаче Generate RTL Code and IP Core и выберите Run to Selected Task. Поскольку в модели используются векторные типы данных, ошибка создания кода RTL и ядра IP вызвана ScalarizePorts свойство должно иметь значение dutlevel. Щелкните ссылку, чтобы изменить этот параметр, и повторно запустите задачу.
6. Запустите рабочий процесс для задачи создания интерфейса Simulink в реальном времени. В задаче Создать проект можно открыть проект Vivado и просмотреть реализованный дизайн. После завершения задачи создания интерфейса Simulink Real-Time щелкните ссылку, чтобы открыть модель интерфейса Simulink Real-Time.

Для быстрого создания прототипов можно экспортировать параметры помощника по рабочим процессам HDL в сценарий. Сценарий представляет собой файл MATLAB ®, который можно запустить из командной строки. Затем можно изменить и запустить сценарий или импортировать настройки в пользовательский интерфейс помощника по рабочим процессам HDL.
Чтобы экспортировать сценарий рабочего процесса HDL, после выполнения задач в помощнике выберите «Файл» > «Экспорт в сценарий». Например, при экспорте в сценарий в этом файле отображаются сохраненные параметры.
edit('hdlworkflow_slrt.m')
Чтобы импортировать сценарий рабочего процесса HDL, в помощнике по рабочему процессу HDL выберите «Файл» > «Импорт из сценария». Выберите файл сценария и нажмите кнопку «Открыть». Помощник по рабочим процессам HDL обновляет задачи с помощью импортированных параметров сценария.
Пример запуска приложения в реальном времени путем развертывания битового потока FPGA см. в разделе Аппаратная реализация модели Simscape на модулях ввода-вывода FPGA Speedgoat.