Этот пример реализует метод векторного управления (FOC), чтобы контролировать скорость трехфазного синхронного двигателя с постоянными магнитами (PMSM). Для получения дополнительной информации о ВОК смотрите Векторное управление (ВОК).
Этот пример использует бездатчиковый метод оценки положения. Можно выбрать наблюдатель скользящего режима или наблюдатель потока, чтобы оценить обратную связь положения для алгоритма FOC, используемого в примере.
Блок Скользящий режим Observer (SMO) генерирует скользящее движение по ошибке между измеренной и оцененной позициями. Блок вырабатывает оценочное значение, которое тесно пропорционально измеренному положению. Блок использует напряжения и токи статора в качестве входов и оценивает электродвижущую силу (ЭДС) модели электродвигателя. Он использует ЭДС, чтобы дополнительно оценить положение ротора и скорость ротора. Блок Flux Observer использует одинаковые входы, чтобы оценить поток статора, сгенерированный крутящий момент и положение ротора.
Если вы используете flux observer, в примере можно запустить как PMSM, так и бесщеточные двигатели постоянного тока (BLDC).
Бездатчиковые наблюдатели и алгоритмы имеют известные ограничения в отношении двигательных операций сверх номинальной скорости. Мы рекомендуем, чтобы вы использовали бездатчиковые примеры для операций только до номинальной скорости.
Пример включает в себя следующие модели:
Можно использовать эти модели как для симуляции, так и для генерации кода. Можно также использовать команду open_system, чтобы открыть модель. Для примера используйте эту команду для основанного на F28069M контроллера:
open_system('mcb_pmsm_foc_sensorless_f28069MLaunchPad.slx');
Для имен модели, которые можно использовать для различных аппаратных строений, смотрите тему «Необходимое оборудование» в разделах «Генерация кода» и «Развертывание модели на целевом компьютере».
Чтобы симулировать модель:
1. Для модели: mcb_pmsm_foc_sensorless_f28069MLaunchPad
Motor Control Blockset™
Fixed-Point Designer™
2. Для модели: mcb_pmsm_foc_sensorless_f28379d
Motor Control Blockset™
Чтобы сгенерировать код и развернуть модель:
1. Для модели: mcb_pmsm_foc_sensorless_f28069MLaunchPad
Motor Control Blockset™
Embedded Coder ®
Пакет поддержки Embedded Coder ® для процессоров Instruments™ C2000™ в Техасе
Fixed-Point Designer™
2. Для модели: mcb_pmsm_foc_sensorless_f28379d
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.
Скользящие режимы Observer требуют настройки, если вы используете Скользящий режим Observer с параметрами двигателя, оцененными с помощью инструмента оценки параметра.
Этот пример поддерживает симуляцию. Выполните следующие шаги, чтобы симулировать модель.
1. Откройте модель, включенную в этот пример.
2. Чтобы симулировать модель, щелкните Запуском на вкладке Симуляции.
3. Чтобы просмотреть и проанализировать результаты симуляции, нажмите Data Inspector на вкладке Simulation.
В этом разделе приведены инструкции для генерации кода и запуска алгоритма FOC на целевом компьютере.
Этот пример использует хост и целевую модель. Модель хоста является пользовательским интерфейсом к аппаратной плате контроллера. Можно запустить главную модель на хост-компьютер. Необходимым условием для использования модели хоста является развертывание целевой модели на аппаратной плате контроллера. Модель хоста использует последовательную связь, чтобы командовать целевой моделью Simulink ® и запустить двигатель в системе управления с обратной связью.
Необходимое оборудование
Этот пример поддерживает эти аппаратные строения. Можно также использовать имя целевой модели, чтобы открыть модель для соответствующего аппаратного строения, из командной строки MATLAB ®.
LAUNCHXL-F28069M контроллер + BOOSTXL-DRV8305 инвертор: mcb_pmsm_foc_sensorless_f28069MLaunchPad
LAUNCHXL-F28379D контроллер + (BOOSTXL-DRV8305 или BOOSTXL-3PHGANINV) инвертор: mcb_pmsm_foc_sensorless_f28379d
Для подключений, связанных с предыдущими аппаратными строениями, смотрите LAUNCHXL-F28069M и LAUNCHXL-F28379D Строений.
Сгенерируйте код и запустите модель на целевом компьютере
1. Симулируйте целевую модель и наблюдайте результаты симуляции.
2. Завершите аппаратные подключения.
3. Модель автоматически вычисляет аналого-цифровой преобразователь (АЦП) или значения смещения тока. Чтобы отключить эту функциональность (включенную по умолчанию), обновите значение 0 на инвертор переменной. ADCOffsetCalibEnable в скрипте инициализации модели.
Также можно вычислить значения смещения АЦП и обновить его вручную в скриптах инициализации модели. Для получения инструкций смотрите Запуск 3-Phase электродвигателей переменного тока в разомкнутом контуре управления и Калибровка смещения АЦП.
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');
Для получения дополнительной информации о последовательной связи между хостом и целевыми моделями, смотрите Host-Target Communication.
8. В маске блока Host Serial Setup модели хоста выберите имя.
9. Обновите значение Задающая скорость в модели хоста.
ПРИМЕЧАНИЕ: Прежде чем запустить двигатель в необходимую Задающую скорость (при помощи Скользящего режима Observer или Flux Observer), начните вращать двигатель в 0.1 x pmsm.N_base
скорость при помощи регулирования без разомкнутого контура. Затем переход к управлению с обратной связью путем увеличения скорости до 0,25 x pmsm.N_base
(где, pmsm.N_base
- переменная рабочего пространства MATLAB для номинальной скорости двигателя).
10. Щелкните Запуском на вкладке Симуляции, чтобы запустить модель хоста.
11. Смените положение переключателя Start/Stop Motor на On, чтобы начать вращать двигатель в разомкнутом цикле (по умолчанию двигатель вращается на 10% от номинальной скорости).
ПРИМЕЧАНИЕ: Не запускайте двигатель (используя этот пример) в разомкнутый контур условия в течение длительной длительности. Двигатель может потреблять высокие токи и производить чрезмерное тепло.
Мы разработали управление разомкнутого контура, чтобы запустить двигатель с Задающей скоростью, которая меньше или равна 10% номинальной скорости.
При запуске этого примера на оборудовании с низкой задающей скоростью из-за известной проблемы PMSM может не следовать низкой задающей скорости.
12. Увеличьте Задающую скорость двигателя сверх 10% от номинальной скорости, чтобы переключаться с разомкнутого контура на управление с обратной связью.
ПРИМЕЧАНИЕ: Чтобы изменить направление вращения двигателя, уменьшите Задающую Скорость Двигателя до значения менее 10% от номинальной скорости. Это возвращает двигатель к разомкнутому контуру условия. Измените направление вращения, но сохраните величину задающей скорости как постоянную. Затем переход к условию с обратной связью.
13. Наблюдайте сигналы отладки от подсистемы RX в Time Scope модели хоста.
Примечание:
Высокая задающая скорость и высокая ссылка крутящий момент могут повлиять на Скользящий режим блока эффективности Observer.
Если вы используете контроллер на основе F28379D, можно также выбрать сигналы отладки, которые вы хотите контролировать.
Можно использовать SoC- Blockset™ для реализации бездатчикового приложения управления двигателем с обратной связью, которое решает проблемы, связанные с синхронизацией ADC-PWM, реакцией контроллера и изучением различных настроек PWM. Для получения дополнительной информации смотрите Интеграция планирования MCU и периферийных устройств в приложении управления двигателем.
Можно также использовать SoC- Blockset™ для разработки бездатчикового приложения управления двигателем в реальном времени, которое использует несколько ядер процессора, чтобы получить проектную модульность, улучшенную эффективность контроллера и другие цели проекта. Для получения дополнительной информации смотрите Управление Двигателем Разделов для Многопроцессорных MCU.