exponenta event banner

Бесконсенсорный полевой контроль PMSM

В этом примере реализован способ управления, ориентированный на поле (ВОК), для управления скоростью трехфазного синхронного двигателя с постоянными магнитами (ПМСМ). Дополнительные сведения о ВОК см. в разделе Полевое управление (ВОК).

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

Блок наблюдателя скользящего режима (SMO) генерирует скользящее движение при ошибке между измеренным и оцененным положением. Блок создает оценочное значение, которое близко пропорционально измеренному положению. Блок использует напряжения$({V_\alpha },{V_\beta })$ и токи статора$({I_\alpha },{I_\beta })$ в качестве входных сигналов и оценивает электродвижущую силу (ЭДС) модели двигателя. Он использует ЭДС для дальнейшей оценки положения ротора и частоты вращения ротора. Блок Flux Observer использует идентичные входные данные для$({V_\alpha },{V_\beta },{I_\alpha },{I_\beta })$ оценки потока статора, генерируемого крутящего момента и положения ротора.

При использовании flux observer в примере можно запускать двигатели PMSM и BLDC без щеток.

Безсенсорные наблюдатели и алгоритмы имеют известные ограничения в отношении работы двигателя за пределами базовой скорости. Мы рекомендуем использовать безсенсорные примеры только для операций с базовой скоростью.

Модели

Пример включает следующие модели:

Эти модели можно использовать как для моделирования, так и для создания кода. Для открытия модели можно также использовать команду open_system. Например, используйте эту команду для контроллера на основе F28069M:

open_system('mcb_pmsm_foc_sensorless_f28069MLaunchPad.slx');

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

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

Для моделирования модели:

1. Для модели: mcb_pmsm_foc_sensorless_f28069MLaunchPad

  • Blockset™ управления двигателем

  • Designer™ с фиксированной точкой

2. Для модели: mcb_pmsm_foc_sensorless_f28379d

  • Blockset™ управления двигателем

Для создания кода и развертывания модели:

1. Для модели: mcb_pmsm_foc_sensorless_f28069MLaunchPad

  • Blockset™ управления двигателем

  • Встроенный кодер ®

  • Пакет поддержки встроенного кодера ® для процессоров Texas Instruments™ C2000™

  • Designer™ с фиксированной точкой

2. Для модели: mcb_pmsm_foc_sensorless_f28379d

  • Blockset™ управления двигателем

  • Встроенный кодер ®

  • Пакет поддержки встроенного кодера ® для процессоров Texas Instruments™ C2000™

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

Предпосылки

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

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

Инструмент оценки параметров обновляет переменную motorParam (в рабочем пространстве MATLAB ®) с помощью расчетных параметров двигателя.

2. При получении параметров двигателя из таблицы данных или из других источников обновите параметры двигателя и инвертора в сценарии инициализации модели, связанном с моделями Simulink ®. Инструкции см. в разделе Оценка контрольных выигрышей от параметров двигателя.

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

Параметры Sliding Mode Observer требуют настройки, если используется Sliding Mode Observer с параметрами двигателя, оцененными с помощью инструмента оценки параметров.

Моделирование модели

В этом примере поддерживается моделирование. Выполните следующие действия для моделирования модели.

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

2. Чтобы смоделировать модель, щелкните Выполнить (Run) на вкладке Моделирование (Simulation).

3. Для просмотра и анализа результатов моделирования щелкните Инспектор данных (Data Inspector) на вкладке Моделирование (Simulation).

Создание кода и развертывание модели на целевом оборудовании

В этом разделе содержится инструкция по созданию кода и запуску алгоритма ВОК на целевом оборудовании.

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

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

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

Для получения информации о соединениях, связанных с предыдущими конфигурациями аппаратных средств, см. раздел Конфигурации LAUNCHXL-F28069M и LAUNCHXL-F28379D.

Создание кода и выполнение модели на целевом оборудовании

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

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

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

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

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

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

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

7. В целевой модели щелкните гиперссылку на главную модель, чтобы открыть связанную с ней модель. Для открытия главной модели можно также использовать команду open_system. Например, используйте эту команду для контроллера на основе F28069M:

open_system('mcb_host_model_f28069m.slx');

Дополнительные сведения о последовательной связи между моделью хоста и целевой моделью см. в разделе Связь хоста с целевой моделью.

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

9. Обновите значение Ссылочная скорость (Reference Speed) в главной модели.

ПРИМЕЧАНИе.Перед запуском двигателя с требуемой опорной скоростью (с помощью режима скольжения Observer или Flux Observer) запустите двигатель с частотой 0,1 x pmsm.N_base скорость с помощью управления с разомкнутым контуром. Затем переход на управление по замкнутому контуру путем увеличения скорости до 0,25 x pmsm.N_base (где, pmsm.N_base - переменная рабочего пространства MATLAB для базовой скорости двигателя).

10. Щелкните Выполнить (Run) на вкладке Моделирование (Simulation), чтобы запустить главную модель.

11. Измените положение переключателя «Пуск/Останов двигателя» на «Вкл» для запуска двигателя в режиме разомкнутого контура (по умолчанию двигатель вращается на 10% базовой скорости).

ПРИМЕЧАНИЕ: Не запускайте двигатель (в данном примере) в режиме разомкнутого контура в течение длительного времени. Двигатель может тянуть высокие токи и вырабатывать избыточное тепло.

Мы разработали систему управления с разомкнутым контуром для запуска двигателя с опорной скоростью, которая меньше или равна 10% базовой скорости.

При выполнении этого примера на оборудовании с низкой опорной скоростью из-за известной проблемы PMSM может не следовать за низкой опорной скоростью.

12. Увеличьте контрольную скорость двигателя выше 10% от базовой скорости для переключения с управления с разомкнутым контуром на управление с замкнутым контуром.

ПРИМЕЧАНИе.Чтобы изменить направление вращения двигателя, уменьшите базовую скорость двигателя до значения менее 10% от базовой скорости. Это приводит двигатель в состояние разомкнутого контура. Измените направление вращения, но оставьте величину опорной скорости постоянной. Затем перейдите в состояние замкнутого контура.

13. Просмотрите отладочные сигналы от подсистемы RX в области времени модели хоста.

Примечание:

  • Высокая опорная скорость и высокий опорный крутящий момент могут влиять на характеристики блока наблюдателя скользящего режима.

  • При использовании контроллера на основе F28379D можно также выбрать сигналы отладки, которые необходимо контролировать.

Другие возможности

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

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