Управление положением PMSM Используя квадратурный энкодер

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

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

Для получения дополнительной информации о FOC с обратной связью, смотрите Ориентированное на поле управление (FOC) и Блок управления приводом С обратной связью.

Модель

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

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

open_system('mcb_pmsm_PosCtrl_f28379d.slx');

Для получения дополнительной информации о настройке поддерживаемого оборудования, смотрите Необходимую Аппаратную тему в Сгенерировать Коде и Разверните Модель в раздел Target Hardware.

Необходимый MathWorks® Products

Симулировать модель:

  • Motor Control Blockset™

Сгенерировать код и развернуть модель:

  • Motor Control Blockset™

  • Embedded Coder®

  • Embedded Coder® Support Package для процессоров Instruments™ C2000™ Техаса

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

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

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

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

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

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

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

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

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

2. Нажмите работает на вкладке Simulation, чтобы симулировать модель.

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.

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

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

2. Завершите аппаратные связи.

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

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

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

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

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

7. Click Build, Deploy & Start на вкладке Hardware, чтобы развернуть целевую модель в оборудование.

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

open_system('mcb_pmsm_host_model_PosCtrl.slx');

Для получения дополнительной информации на последовательной передаче между хостом и целевыми моделями, смотрите Целевую Хостом Коммуникацию.

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

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

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

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

11. Нажмите работает на вкладке Simulation, чтобы запустить модель хоста.

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

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

  • Регулировка скорости - ссылка скорости Отображения и обратная связь скорости сигнализируют в осциллографе.

  • Управление ID - ссылка ID Отображения и обратная связь ID сигнализируют в осциллографе.

  • Управление IQ - ссылка IQ Отображения и обратная связь IQ сигнализируют в осциллографе.

  • Ia & Ib - Display Ia и Ib текущие сигналы в осциллографе.

  • Управление положением - ссылка положения Отображения и обратная связь положения сигнализируют в осциллографе.

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