Управление PMSM, загружаемое двойным двигателем (Dyno)

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

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

Эти уравнения описывают расчет d-ось и q-ось компонентов Мотора 2 ссылок током статора.

$$I{d^{ref}} = Ima{g^{ref}} \times {\rm{cos}}{\theta _e}$$

$$I{q^{ref}} = Ima{g^{ref}} \times {\rm{sin}}{\theta _e}$$

где:

  • $I{d^{ref}}$ является d-осевой компонент опорного тока статора Motor 2.

  • $I{q^{ref}}$ является q-осевой компонент опорного тока статора Motor 2.

  • $Ima{g^{ref}}$ - величина опорного тока статора Мотора 2.

  • ${\theta _e}$ - электрическое положение опорного тока статора Двигателя 2.

Пример выполняется на аппаратной плате контроллера. Можно ввести опорную скорость для Motor 1 и текущую опорную для Motor 2 с помощью модели хоста. Модель хоста использует последовательную связь для связи с аппаратной платой контроллера.

Токовые циклы управления в алгоритмах управления Двигателем 1 и Двигателем 2 смещены на Ts/2, где Ts является циклом управления частотой выполнения.

Модели

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

Можно использовать эту модель как для симуляции, так и для генерации кода. Можно также использовать команду open_system, чтобы открыть модель Simulink ®. Для примера используйте эту команду для основанного на F28379D контроллера:

open_system('mcb_pmsm_foc_f28379d_dyno.slx');

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

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

  • Motor Control Blockset™

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

  • Motor Control Blockset™

  • Embedded Coder ®

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

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

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

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

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

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

В данном примере обновляйте параметры двигателя для обоих двигателей в скрипте инициализации модели.

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

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

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

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

3. Щелкните Data Inspector на вкладке Simulation, чтобы просмотреть и проанализировать результаты симуляции.

4. Введите другую ссылку по скорости для Двигателя 1 и другую ссылку по току (нагрузку) для Двигателя 2. Наблюдайте измеренную скорость и другие зарегистрированные сигналы в Data Inspector.

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

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

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

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

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

Для подключений, связанных с предыдущим аппаратным строением, смотрите Инструкции для Setup Dyno (Dual Motor).

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

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

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

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

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

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

В данном примере обновляйте значения смещения QEP в pmsm_motor1.PositionOffset и pmsm_motor2.PositionOffset переменных в скрипте инициализации.

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

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

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

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

open_system('mcb_pmsm_foc_host_model_dyno.slx');

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

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

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

12. Обновите Motor 1 - Задающая Скорость (RPM), Motor 2 - Imag Ref (A) и Motor 2 - Imag Pos (град.) в модели хоста.

Примечание: Будьте осторожны при использовании значений, отличных от 90 или 270 степеней в поле Motor 2 - Imag Pos (град). Эти значения генерируют ток вдоль d-ось, которая создает эффект намагниченности. Избыток тока по d-ось может создать насыщение и может повредить магниты мотора.

13. Выберите сигналы отладки, которые вы хотите контролировать, чтобы наблюдать их в блоке Time Scope модели хоста.

Другие вещи, чтобы попробовать

Можно также использовать SoC- Blockset™ для разработки приложения управления двигателем в реальном времени для настройки двух двигателей, которое использует несколько ядер процессора, чтобы получить проектную модульность, улучшенную эффективность контроллера и другие цели проекта. Для получения дополнительной информации смотрите Управление Двигателем Разделов для Многопроцессорных MCU.

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