В этом примере показано, как сгенерировать подсистему Simulink ® Real-Time Interface для Simscape™ двухуровневой модели объекта управления преобразования. Затем можно развернуть модель интерфейса на модуле Speedgoat FPGA IO. Этот пример использует модуль Speedgoat IO334-325k.
Симуляция модели объекта управления на ПЛИС обеспечивает:
Симуляция в реальном времени: Оборудование в цикле обеспечивает симуляцию в реальном времени вашей модели объекта управления Simscape на целевом компьютере.
Аппаратное ускорение: ускоренная симуляция сложных физических систем на оборудовании, в то время как перенастраиваемые FPGA обеспечивают быстрое прототипирование.
Чтобы использовать рабочий процесс:
Разработайте модель Simscape и преобразуйте ее в модель реализации с помощью Simscape HDL Workflow Advisor.
Сгенерируйте HDL-код и разверните код в модуле Speedgoat ввода-вывода с помощью HDL Workflow Advisor.
Перед развертыванием алгоритма на модуле 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 на основе несущей для:
Дискретизируйте ссылку волну.
Сравните выборку с треугольной несущей волной.
Сгенерируйте импульс включения, если выборка выше, чем сигнал несущей, или импульс выключения, если выборка ниже, чем несущая волна.
Симулируйте модель.
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, который выполняет расчеты пространства состояний. Когда вы перемещаетесь внутри этой подсистемы, вы видите несколько задержек, сумматоров и блоков Matrix Multiply, которые моделируют уравнения пространства состояний. Блоки From и Goto внутри этой подсистемы обеспечивают тот же вход, что и исходная модель, HDL Subsystem
.
open_system('gmStateSpaceHDL_TwoLevelConverter_HDL/Simscape_system/HDL Subsystem/HDL Algorithm')
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».
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 Workflow Advisor в скрипт. Скрипт является файлом MATLAB ®, который можно запустить из командной строки. Затем можно изменить и запустить скрипт или импортировать настройки в интерфейс пользователя HDL Workflow Advisor.
Чтобы экспортировать скрипт Рабочий Процесс, после запуска задач в Advisor, выберите Файл > Экспорт в скрипт. В данном примере при экспорте в скрипт в этом файле показаны сохраненные настройки.
edit('hdlworkflow_slrt.m')
Чтобы импортировать HDL скрипт рабочего процесса, в HDL Workflow Advisor, выберите Файл > Импорт из скрипта. Выберите файл скрипта и нажмите Открыть. HDL Workflow Advisor обновляет задачи с помощью импортированных параметров скрипта.
Для примера, который показывает, как запустить приложение реального времени путем развертывания битового потока FPGA, смотрите Оборудование в цикле Реализация модели Simscape на ввод-вывод модулях Speedgoat FPGA.