Этот пример использует 120-градусный режим проводимости для реализации шестиступенчатого способа коммутации для управления скоростью и направлением вращения трехфазного бесщеточного двигателя постоянного тока (BLDC). В примере используется последовательность переключения, генерируемая шестиступенчатым коммутационным блоком, для управления трехфазными напряжениями статора и, следовательно, для управления скоростью и направлением ротора. Дополнительные сведения об этом блоке см. в разделе Шестиступенчатая коммутация.
Шестиступенчатый алгоритм коммутации требует последовательности Холла или значения обратной связи положения ротора (которое получается либо от квадратурного кодера, либо от датчика Холла).
Датчик квадратурного кодера состоит из диска с двумя дорожками или каналами, которые закодированы на 90 электрических градусов вне фазы. Это создает два импульса (A и B), которые имеют разность фаз 90 градусов и индексный импульс (I). Контроллер использует фазовое соотношение между каналами А и В и переход состояний канала для определения скорости, положения и направления вращения двигателя.
Датчик эффекта Холла изменяет свое выходное напряжение в зависимости от напряженности приложенного магнитного поля. В соответствии со стандартной конфигурацией двигатель BLDC состоит из трех датчиков Холла, расположенных электрически на расстоянии 120 градусов друг от друга. BLDC со стандартным расположением Холла (где датчики расположены электрически на расстоянии 120 градусов) может обеспечить шесть допустимых комбинаций двоичных состояний: например, 001 010 011 100 101 и 110. Датчик обеспечивает угловое положение ротора в градусах, кратных 60, которое контроллер использует для определения 60-градусного сектора, где присутствует ротор.
Контроллер управляет двигателем с помощью последовательности Холла или положения ротора. Он возбуждает следующие две фазы обмотки статора, так что ротор всегда поддерживает угол крутящего момента (угол между осью d ротора и магнитным полем статора) 90 градусов с отклонением 30 градусов.

Пример включает следующие модели:
Эти модели можно использовать как для моделирования, так и для создания кода. Для открытия модели Simulink ® можно также использовать команду open_system в командной строке MATLAB. Например, используйте эту команду для контроллера на основе F28379D:
open_system('mcb_bldc_sixstep_f28379d.slx');

Дополнительные сведения о поддерживаемой конфигурации оборудования см. в разделе Необходимое оборудование в разделе Создание кода и развертывание модели на целевом оборудовании.
Для моделирования модели:
Blockset™ управления двигателем
Для создания кода и развертывания модели:
Blockset™ управления двигателем
Встроенный кодер ®
Пакет поддержки встроенного кодера ® для процессоров Texas Instruments™ C2000™
Designer™ с фиксированной точкой (требуется только для оптимизированной генерации кода)
1. Получите параметры двигателя. Параметры двигателя по умолчанию предоставляются в модели Simulink, которую можно заменить значениями из таблицы данных двигателя или из других источников.
Однако при наличии аппаратных средств управления двигателем можно оценить параметры двигателя, которые требуется использовать, с помощью инструмента оценки параметров блока управления двигателем. Инструкции см. в разделе Оценка параметров двигателя с помощью инструмента оценки параметров блока управления двигателем.
Инструмент оценки параметров обновляет переменную motorParam (в рабочем пространстве MATLAB ®) с помощью расчетных параметров двигателя.
2. При получении параметров двигателя из таблицы данных двигателя или из других источников обновите параметры двигателя и параметры инвертора в сценарии инициализации модели, связанном с моделями Simulink. Инструкции см. в разделе Оценка контрольных выигрышей от параметров двигателя.
При использовании инструмента оценки параметров можно обновить параметры инвертора, но не обновлять параметры двигателя в сценарии инициализации модели. Сценарий автоматически извлекает параметры двигателя из обновленной переменной рабочего пространства motorParam.
В этом примере поддерживается моделирование. Выполните следующие действия для моделирования модели.
1. Откройте модель, включенную в этот пример.
2. Выберите в модели переключатель QEP или Hall Speed_Feedback.
3. Щелкните Выполнить (Run) на вкладке Моделирование (Simulation), чтобы смоделировать модель.
4. Щелкните Инспектор данных (Data Inspector) на вкладке Моделирование (Simulation), чтобы просмотреть и проанализировать результаты моделирования.
В этом разделе показано, как создать код и запустить алгоритм ВОК на целевом оборудовании.
В этом примере используются хост и целевая модель. Модель хоста представляет собой пользовательский интерфейс к аппаратной плате контроллера. Модель хоста можно запустить на хост-компьютере. Предпосылкой для использования модели хоста является развертывание целевой модели на аппаратной плате контроллера. Главная модель использует последовательную связь для команды целевой модели Simulink и запуска двигателя в замкнутом контуре управления.
Необходимое оборудование
Пример поддерживает эти конфигурации оборудования. Имя целевой модели можно также использовать для открытия модели для соответствующей конфигурации оборудования из командной строки MATLAB ®.
LAUNCHXL-F28069M контроллер + BOOSTXL-DRV8305 инвертор: mcb_bldc_sixstep_f28069mLaunchPad
LAUNCHXL-F28379D контроллер + BOOSTXL-DRV8305 инвертор: mcb_bldc_sixstep_f28379d
Соединения, связанные с этими конфигурациями оборудования, см. в разделе Конфигурации LAUNCHXL-F28069M и LAUNCHXL-F28379D.
Создание кода и выполнение модели на целевом оборудовании
1. Моделирование целевой модели и наблюдение за результатами моделирования.
2. Завершите аппаратные подключения.
3. Модель вычисляет значения смещения ADC (или текущего) по умолчанию. Чтобы отключить эту функцию, обновите значение 0 до переменного инвертора. ADCOffsetCalibEnable в сценарии инициализации модели.
Можно также вычислить значения смещения АЦП и обновить их вручную в сценарии инициализации модели. Для инструкций посмотрите Пробег 3-фазовые электродвигатели переменного тока в Контроле разомкнутого контура и Калибруйте Смещение ADC.
4. При использовании квадратурного кодера вычислите значение смещения индекса квадратурного кодера и обновите его в сценарии инициализации модели, связанном с целевой моделью. Инструкции см. в разделе Калибровка смещения квадратурного кодера для двигателя PMSM.
5. При использовании датчика Холла вычислите значение последовательности Холла и обновите его в переменной bldc.hallsquecence в сценарии инициализации модели, связанном с целевой моделью. Инструкции см. в разделе Калибровка последовательности датчиков BLDC.
6. Откройте целевую модель. Если требуется изменить настройки конфигурации оборудования по умолчанию для модели, см. раздел Параметры конфигурации модели.
7. Выберите переключатель QEP или Hall Speed_Feedback в целевой модели.
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');

Сведения о последовательной связи между моделью хоста и целевой моделью см. в разделе Связь хоста с целевой моделью.
11. В маске блока Host Serial Setup в модели хоста выберите имя порта.
12. Обновите значение опорной скорости в поле Опорная скорость (RPM) в главной модели.
13. В модели хоста выберите сигналы отладки, которые необходимо отслеживать.
14. Щелкните Выполнить (Run) на вкладке Моделирование (Simulation), чтобы запустить главную модель.
15. Для запуска двигателя измените положение переключателя «Пуск/Останов двигателя» на «Вкл».
16. Просмотрите сигналы отладки из подсистемы RX в блоках Scope и Display в модели хоста.