Управление положением PMSM с помощью квадратурного энкодера

Этот пример реализует метод векторного управления (FOC), чтобы контролировать положение трехфазного синхронного двигателя с постоянными магнитами (PMSM). Алгоритм FOC требует обратной связи о положении ротора, которую он получает от квадратурного датчика энкодера.

Можно использовать этот пример для реализации приложений управления положением при помощи FOC с обратной связью. Пример управляет двигателем, чтобы достичь входного значения опорного положения. Можно также сконфигурировать максимальное количество вращений (в любом направлении) для двигателя в скрипте инициализации модели.

Для получения дополнительной информации о ФОК с обратной связью смотрите Векторное управление (ФОК) и Управление двигателем с обратной связью.

Модель

Пример включает в себя модель mcb_pmsm_PosCtrl_f28379d.

Можно использовать эту модель как для симуляции, так и для генерации кода. Можно также открыть модель Simulink ® с помощью этой команды в Командном окне MATLAB ®.

open_system('mcb_pmsm_PosCtrl_f28379d.slx');

Для получения дополнительной информации о поддерживаемом строении оборудования смотрите тему «Необходимое аппаратное обеспечение» в разделах «Генерация кода» и «Развертывание модели на целевом компьютере».

Необходимые продукты MathWorks ®

Чтобы симулировать модель:

  • Motor Control Blockset™

Чтобы сгенерировать код и развернуть модель:

  • Motor Control Blockset™

  • Embedded Coder ®

  • Пакет поддержки Embedded Coder ® для процессоров Instruments™ C2000™ в Техасе

  • Fixed-Point Designer™ (требуется только для оптимизированной генерации кода)

Необходимые условия

1. Получите параметры двигателя. Модель Simulink ® использует параметры по умолчанию, которые можно заменить значениями из таблицы данных двигателей или из других источников.

Однако, если у вас есть оборудование управления двигателем, можно оценить параметры для двигателя, который вы хотите использовать, используя инструмент оценки параметра Motor Control Blockset. Для получения инструкций смотрите Оценку параметров двигателя с помощью Parameter Estimation Tool Motor Control Blockset. Инструмент оценки параметра обновляет motorParam переменная (в рабочей области MATLAB ®) с предполагаемыми параметрами двигателя.

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

Если вы используете инструмент оценки параметра, можно обновить параметры инвертора, но не обновляйте параметры двигателя в скрипте инициализации модели. Скрипт автоматически извлекает параметры двигателя из обновленного motorParam переменная рабочей области.

Моделируйте модель

Этот пример поддерживает симуляцию. Выполните следующие шаги, чтобы симулировать модель.

1. Откройте модель, включенную в этот пример.

2. Щелкните Запуском на вкладке Симуляции, чтобы симулировать модель.

3. Нажмите Data Inspector в разделе Review Results, чтобы просмотреть и проанализировать результаты симуляции.

Сгенерируйте код и развертывайте модель на целевом компьютере

В этом разделе показано, как сгенерировать код и запустить алгоритм FOC на целевом компьютере.

Этот пример использует хост и целевую модель. Модель хоста является пользовательским интерфейсом к аппаратной плате контроллера. Можно запустить главную модель на хост-компьютер. Прежде чем вы сможете запустить модель хоста на хост-компьютер, разверните целевую модель на плате оборудования контроллера. Модель хоста использует последовательную связь, чтобы командовать целевой моделью Simulink ® и запустить двигатель в системе управления с обратной связью.

Необходимое оборудование

Пример поддерживает это аппаратное строение. Можно также использовать имя целевой модели, чтобы открыть модель из командной строки MATLAB ®.

LAUNCHXL-F28379D контроллер + (BOOSTXL-DRV8305 или BOOSTXL-3PHGANINV) инвертор: mcb_pmsm_PosCtrl_f28379d

Примечание.При использовании инвертора BOOSTXL-3PHGANINV убедитесь, что между нижним слоем BOOSTXL-3PHGANINV и платой LAUNCHXL установлена надлежащая изоляция.

Для подключений, связанных с этим аппаратным строением, смотрите LAUNCHXL-F28069M и LAUNCHXL-F28379D Configurations.

Сгенерируйте код и запустите модель на целевом компьютере

1. Симулируйте целевую модель и наблюдайте результаты симуляции.

2. Завершите аппаратные подключения.

3. Модель по умолчанию вычисляет значения смещения АЦП для измерения тока фазы. Чтобы отключить эту функциональность, обновите значение inverter.ADCOffsetCalibEnable переменная в скрипте инициализации модели в 0.

Также можно вычислить значения смещения АЦП и обновить их вручную в скрипте инициализации модели. Для получения инструкций смотрите Запуск 3-Phase электродвигателей переменного тока в разомкнутом контуре управления и Калибровка смещения АЦП.

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

5. Откройте целевую модель. Если вы хотите изменить настройки аппаратного строения по умолчанию для модели, см. Раздел «Параметры конфигурации модели».

6. Загрузите образец программы для CPU2 платы LAUNCHXL-F28379D. Например, загрузите программу, которая управляет CPU2 синим светодиодом при помощи GPIO31 (c28379D_cpu2_blink.slx). Это гарантирует, что CPU2 не настроена по ошибке использовать периферийные устройства платы, предназначенные для CPU1.

7. Щелкните Сборка, Развертывание и запуск на вкладке Оборудование, чтобы развернуть целевую модель на оборудовании.

8. Щелкните гиперссылку модели хоста в целевой модели, чтобы открыть связанную модель хоста. Можно также использовать open_system команда для открытия модели хоста.

open_system('mcb_pmsm_host_model_PosCtrl.slx');

Для получения дополнительной информации о последовательной связи между хостом и целевыми моделями, смотрите Host-Target Communication.

9. В диалоговом окне блока Host Serial Setup в модели хоста выберите имя.

10. Обновите значение Reference Position [Degrees] в модели хоста. По умолчанию максимальное количество вращений (в положительном или отрицательном направлении) составляет пять. Вы можете изменить это значение путем установки PosCtrlPosLimit переменная в скрипте инициализации модели. Вы можете открыть этот скрипт с помощью гиперссылки с именем Init в целевой модели.

Максимальный предел поворота (степени) = PosCtrlPosLimit x 360

Примечание: Вы не можете контролировать скорость вращения двигателя, но можете ограничить его, установив PosCtrlSpeedLimit переменная (в относительных единицах). Для получения дополнительной информации о системе в относительных единицах см. раздел Система в относительных единицах.

11. Щелкните Запуском на вкладке Симуляции, чтобы запустить модель хоста.

12. Смените положение переключателя Start/Stop Motor на Start, чтобы начать вращать двигатель.

13. Наблюдайте сигналы отладки от подсистемы RX в Time Scope модели хоста. Можно выбрать сигналы отладки, которые вы хотите контролировать, в разделе Scope signals модели хоста.

  • Регулирование Скорости - отображение ссылок скорости и обратной связи скорости в возможности.

  • Id Control - Отображать опорные сигналы Id и сигналы обратной связи Id в возможности.

  • Управление Q - отображение ссылки Q и обратной связи Q в возможности.

  • Ia & Ib - отображение токовых сигналов Ia и Ib в возможности.

  • Управление положением - отображение опорных сигналов положения и обратной связи положения в возможности.

Для просмотра документации необходимо авторизоваться на сайте