Этот пример демонстрирует, как реализовать алгоритм управления, содержащий несколько уровней на Zynq. Чтобы использовать в своих интересах и ядра и оборудование FPGA, пример использует графический подход разделения, таким образом, что код от различных разделов распределяется на ядрах и оборудовании.
В этом примере мы показываем рабочий процесс для генерации кода для алгоритма управления двигателем и тестирования сгенерированного кода на оценочной плате Xilinx® Zynq™-7000 SoC ZC702. Алгоритм управления двигателем в примере является Ориентированным на поле Алгоритмом управления, состоявшим из контроллера скорости (быстрый компонент), и контроллер крутящего момента (замедлите компонент). Один типичный рабочий процесс должен сгенерировать код для этих двух компонентов контроллера, загрузить сгенерированный код на оценочную плату и соединить оценочную плату с реальным двигателем. Цель этого примера состоит в том, чтобы показать, как следовать за этим рабочим процессом. Это проиллюстрировано в блок-схеме ниже
Для этого примера, чтобы быть автономной и с тех пор существует избыточная производительность компьютера на целевом процессоре, мы моделируем двигатель с помощью одной из задач центрального процессора оценочной платы.
Пример принимает, что оценочная плата Xilinx® Zynq™-7000 SoC ZC702 соединяется с вашим компьютером. Можно найти шаги связи и установки в документации.
Этот пример требует, чтобы Embedded Coder™ сгенерировал многопоточный код, HDL Coder(TM), чтобы сгенерировать HDL-код и Simscape Power Systems(TM), чтобы смоделировать постоянный магнит синхронная машина в примере. Вы не можете сгенерировать HDL-код в системах Macintosh.
Модель в качестве примера состоит из двух областей Simulink. В области Permanent Magnet Synchronous Machine существует два блока: блок "Speed and Torque Inputs", который предоставляет ссылочные входные параметры системе с обратной связью и блок "Invertor and Motor", который является объектом, которым мы стремимся управлять в этом примере. Блок "Invertor and Motor" также содержит периферийные устройства: осциллограф, который может использоваться в исследовании результатов симуляции и отправителя UDP. Сгенерированный код для отправителя UDP ответственен за отправку данных моделирования с оценочной платы Zynq ZC702 на хост-машину. Ориентированное на поле Управление содержит контроллер скорости "Блоков контроллера" и "Контроллер крутящего момента". Загрузите модель путем ввода
slexFocZynqExample
Целевая архитектура в примере является оценочным комплектом Xilinx Zynq ZC702. Это может быть проверено путем доступа к диалоговому окну "Concurrent Execution", выполняющему шаги:
- Перейдите к Симуляции> Параметры конфигурации Модели,
- Нажмите "Configure Tasks" в панели Решателя под разделом Additional Options.
Оценочная плата имеет ARM центральный процессор Cortex-A9 и программируемая пользователем вентильная матрица (FPGA). Существует две задачи, работающие на центральном процессоре ARM. "Закрутите контроллер", сопоставлен с первой задачей и блоками, которые составляют объект (блок "Speed and Torque Inputs" и "Инвертор, и Двигатель") сопоставлены со второй задачей. "Контроллер скорости", действующий в высокой частоте в цикле управления, сопоставлен с FPGA. Эти настройки могут быть изменены в разделе "Tasks and Mapping" диалогового окна "Concurrent Execution".
Нажмите Ctrl-B или нажмите на "Deploy to Hardware", чтобы сгенерировать многопоточное и HDL-код. Сгенерированный исполняемый файл и поток битов FPGA будут загружены на плату Zynq автоматически. Для того, чтобы выполнить этот шаг, плата Zynq должна быть соединена с компьютером, и среда должна быть установлена правильно. Можно консультировать документацию для получения дополнительной информации.
Во-первых, откройте осциллограф путем двойного клика "по Результатам симуляции Представления" и запустите симуляцию (Симуляция> Запуск), чтобы получить следующий выход:
Сравните эту симуляцию выход с выходом исполняемого файла, который работает на плате Zynq ZC702. Для того, чтобы сделать это сравнение, получите доступ к модели получателя UDP путем двойного клика на "Результатах Развертывания Представления". Когда модель получателя UDP будет выбрана, запустите симуляцию (Симуляция> Запуск). Команда выполнения отправит сигнал в плату Zynq ZC702, чтобы начать запускать исполняемый файл на плате. Данные моделирования будут отправлены через UDP с платы Zynq ZC702 на хост-машину. Полученный сигнал UDP отображен на осциллографе модели UDP Receiver.
close_system('slexFocZynqExample', 0);