Sensorless, ориентированный на поле на управление PMSM

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

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

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

Если вы используете наблюдателя потока, пример может запустить и PMSM и бесщеточный DC (BLDC) двигатели.

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

Модели

Пример включает эти модели:

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

open_system('mcb_pmsm_foc_sensorless_f28069MLaunchPad.slx');

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

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

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

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® Support Package для процессоров Instruments™ C2000™ Техаса

  • Fixed-Point Designer™

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

  • 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 на вкладке Simulation.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

open_system('mcb_host_model_f28069m.slx');

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

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

9. Обновите значение Задающей скорости в модели хоста.

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

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

11. Смените положение переключателя Start / Stop Motor к На, чтобы начать запускать двигатель в условии разомкнутого контура (по умолчанию, моторные вращения в 10% номинальной скорости).

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

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

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

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

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

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

Примечание:

  • Высокая задающая скорость и высокий ссылочный крутящий момент могут влиять на эффективность блока Sliding Mode Observer.

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

Другие вещи попробовать

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

Можно также использовать SoC Blockset™, чтобы разработать sensorless приложение блока управления приводом в реальном времени, которое использует несколько ядер процессора, чтобы получить модульный принцип проекта, улучшал производительность контроллера и другие цели проекта. Для получения дополнительной информации смотрите Блок управления приводом Раздела для Многопроцессорного MCUs.