Многоядерное программирование ориентированного на поле управления на Zynq

Этот пример демонстрирует, как реализовать алгоритм управления, содержащий несколько уровней на Zynq. Чтобы использовать в своих интересах и ядра и оборудование FPGA, пример использует графический подход разделения, таким образом, что код от различных разделов распределяется на ядрах и оборудовании.

Введение

В этом примере мы показываем рабочий процесс для генерации кода для алгоритма управления двигателем и тестирования сгенерированного кода на оценочной плате Xilinx® Zynq™-7000 SoC ZC702. Алгоритм управления двигателем в примере является Ориентированным на поле Алгоритмом управления, состоявшим из контроллера скорости (быстрый компонент), и контроллер крутящего момента (замедлите компонент). Один типичный рабочий процесс должен сгенерировать код для этих двух компонентов контроллера, загрузить сгенерированный код на оценочную плату, и затем соединить оценочную плату с реальным двигателем. Этот рабочий процесс проиллюстрирован в блок-схеме ниже.

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

Пример принимает, что оценочная плата Xilinx® Zynq™-7000 SoC ZC702 соединяется с вашим компьютером. Можно найти шаги связи и установки в Поддержке Установки Платформы Xilinx Zynq (Пакет Поддержки Embedded Coder для Платформы Xilinx Zynq) документацией.

Этот пример требует, чтобы Embedded Coder™ сгенерировал многопоточный код, HDL Coder™, чтобы сгенерировать HDL-код и Степень Simscape Systems™, чтобы смоделировать постоянный магнит синхронная машина в примере. Вы не можете сгенерировать 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.

Во вкладке Modeling выберите Model Settings. В диалоговом окне Model Configuration Parameters, на вкладке Solver, выбирают задачи Allow выполниться одновременно на цели, затем нажать Configure Tasks.

Оценочная плата имеет ARM центральный процессор Cortex-A9 и программируемая пользователем вентильная матрица (FPGA). Существует две задачи, работающие на центральном процессоре ARM. "Контроллер крутящего момента" сопоставлен с первой задачей и блоками, которые составляют объект (блок "Speed and Torque Inputs" и "Инвертор, и Двигатель") сопоставлены со второй задачей. "Контроллер скорости", который действует на высокой частоте в цикле управления, сопоставлен с FPGA. Эти настройки могут быть изменены в разделе "Tasks and Mapping" диалогового окна "Concurrent Execution".

Сгенерируйте многопоточный и HDL-код

Введите Ctrl-B или выберите Deploy to Hardware, чтобы сгенерировать многопоточное и HDL-код. Сгенерированный исполняемый файл и поток битов FPGA будут загружены на плату Zynq автоматически. Этот шаг требует, чтобы плата Zynq была соединена с компьютером и что среда настраивается правильно. Для получения дополнительной информации смотрите Поддержку Установки Платформы Xilinx Zynq (Пакет Поддержки Embedded Coder для Платформы Xilinx Zynq).

Получите данные Zynq

Откройте осциллограф путем выбора View Simulation Results и запустите симуляцию, чтобы получить следующий выход:

Сравните эту симуляцию выход с выходом исполняемого файла, который работает на плате Zynq ZC702. Для того, чтобы сделать это сравнение, получите доступ к модели приемника UDP путем выбора View Deployment Results. Когда модель приемника UDP будет выбрана, запустите симуляцию. Команда выполнения отправит сигнал в плату Zynq ZC702, чтобы начать запускать исполняемый файл на плате. Данные моделирования будут отправлены через UDP с платы Zynq ZC702 на хост-машину. Полученный сигнал UDP отображен на осциллографе модели UDP Receiver.

Закройте модель

close_system('slexFocZynqExample', 0);