Шестиступенчатая коммутация двигателя BLDC с помощью обратной связи датчика

Этот пример использует 120-градусный режим проводимости, чтобы реализовать шестиступенчатый метод коммутации, чтобы контролировать скорость и направление вращения трехфазного бесщеточного двигателя постоянного тока (BLDC). Пример использует последовательность переключений, сгенерированную блоком Six Step Commutation, чтобы управлять трехфазными напряжениями статора и, следовательно, контролировать скорость и направление ротора. Для получения дополнительной информации об этом блоке, смотрите Шесть Шагов Коммутации.

Шестиступенчатый алгоритм коммутации требует последовательности Холла или значения обратной связи положения ротора (которое получается либо от квадратурного энкодера, либо от датчика Холла).

Квадратурный датчик энкодера состоит из диска с двумя дорожками или каналами, которые закодированы на 90 электрических степенях вне фазы. Это создает два импульса (A и B), которые имеют различие фаз 90 степеней и импульс индекса (I). Контроллер использует фазовую зависимость между каналами A и B и переход состояний канала, чтобы определить скорость, положение и направление вращения двигателя.

Датчик эффекта Холла изменяет свое выходное напряжение на основе силы приложенного магнитного поля. Согласно стандартного строения, двигатель BLDC состоит из трех датчиков Холла, расположенных электрически на 120 степени друг от друга. BLDC со стандартным размещением Hall (где датчики расположены электрически на 120 степени друг от друга) может обеспечить шесть допустимых комбинаций двоичных состояний: например, 001,010,011,100,101 и 110. Датчик обеспечивает угловое положение ротора в степенях, кратных 60, которые контроллер использует, чтобы определить сектор 60 градусов, где ротор присутствует.

Контроллер управляет двигателем при помощи последовательности Холла или положения ротора. Он возбуждает следующие две фазы обмотки статора, так что ротор всегда поддерживает угол крутящего момента (угол между осью D ротора и магнитным полем статора) 90 степени с отклонением 30 степеней.

Модели

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

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

open_system('mcb_bldc_sixstep_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. Выберите в модели переключатель QEP или Speed_Feedback Hall.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5. Если вы используете датчик Холла, вычислите значение последовательности Холла и обновите его в переменной bldc.hallsequence в скрипте инициализации модели, сопоставленном с целевой моделью. Для получения инструкций смотрите Hall Sensor Sequence Calibration of BLDC Motor.

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

7. Выберите в целевой модели переключатель QEP или Speed_Feedback Hall.

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

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

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

open_system('mcb_bldc_host_model_f28379d.slx');

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

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

12. Обновите значение задающей скорости в поле Задающей скорости (RPM) в модели хоста.

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

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

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

16. Наблюдайте сигналы отладки от подсистемы RX в блоках Scope и Display в модели хоста.

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