Этот пример демонстрирует, как реализовать алгоритм управления, содержащий несколько уровней на 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".
Введите Ctrl-B или выберите Deploy to Hardware, чтобы сгенерировать многопоточное и HDL-код. Сгенерированный исполняемый файл и поток битов FPGA будут загружены на плату Zynq автоматически. Этот шаг требует, чтобы плата Zynq была соединена с компьютером и что среда настраивается правильно. Для получения дополнительной информации смотрите Поддержку Установки Платформы Xilinx Zynq (Пакет Поддержки Embedded Coder для Платформы Xilinx Zynq).
Откройте осциллограф путем выбора View Simulation Results и запустите симуляцию, чтобы получить следующий выход:
Сравните эту симуляцию выход с выходом исполняемого файла, который работает на плате Zynq ZC702. Для того, чтобы сделать это сравнение, получите доступ к модели приемника UDP путем выбора View Deployment Results. Когда модель приемника UDP будет выбрана, запустите симуляцию. Команда выполнения отправит сигнал в плату Zynq ZC702, чтобы начать запускать исполняемый файл на плате. Данные моделирования будут отправлены через UDP с платы Zynq ZC702 на хост-машину. Полученный сигнал UDP отображен на осциллографе модели UDP Receiver.
close_system('slexFocZynqExample', 0);