Настройте ПИ-контроллеры Используя поле ориентированный автотюнер управления

Этот пример вычисляет значения усиления ПИ-контроллеров, доступных в скорости и текущих циклах управления при помощи блока Field Oriented Control Autotuner. Для получения дополнительной информации об этом блоке, смотрите Поле Ориентированный Автотюнер Управления. Для получения дополнительной информации об ориентированном на поле управлении, смотрите Ориентированное на поле управление (FOC).

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

Модель

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

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

open_system('mcb_pmsm_foc_autotuner_f28379d.slx');

Блок Field Oriented Control Autotuner итеративно настраивает d- и q- ось текущие циклы управления и регулировки скорости и вычисляет усиления текущих ПИ-контроллеров и ПИ-контроллеров скорости. Используйте эту команду, чтобы определить местоположение блока Field Oriented Control Autotuner, доступного в модели:

open_system('mcb_pmsm_foc_autotuner_f28379d/Current Control/Control_System/Closed Loop Control/FOC_Autotuner/FOC_Autotuner');

Блок обрабатывает текущую обратную связь и обратную связь скорости от объекта. Это также обрабатывает напряжение выход d- и q- ось текущие ПИ-контроллеры, чтобы вычислить усиления ПИ-контроллера (Kp и Ki).

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

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

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

  • Motor Control Blockset™

  • Simulink Control Design™

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

  • Motor Control Blockset™

  • Simulink Control Design™

  • Embedded Coder®

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

Необходимые условия для развертывания симуляции и оборудования

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

2. В разделе Inverter & Target Parameters скрипта инициализации модели проверьте что mcb_SetInverterParameters функционируйте использует аргумент BoostXL-DRV8305. Это позволяет скрипту использовать предварительно запрограммированные параметры для инвертора BOOSTXL-DRV8305.

3. Сконфигурируйте эти параметры правильно в скрипте инициализации модели. Эти переменные важны для настраивающего усиление алгоритма, чтобы вычислить усиления ПИ-контроллера. Если значения этих переменных являются неправильными, модель может не принести двигатель к устойчивому состоянию скорости.

  • pmsm.p

  • pmsm.I_rated

  • pmsm.PositionOffset

  • pmsm.QEPSlits

4. Если вы используете двигатель, который не перечислен в mcb_SetPMSMMotorParameters функция (используемый в Системных параметрах//Аппаратный раздел параметров скрипта инициализации модели), настройте значения по умолчанию следующих начальных усилений, доступных в Начальном разделе параметров PI скрипта инициализации модели. Это гарантирует, что двигатель достигает устойчивого состояния операции регулировки скорости:

  • PI_params.Kp_Id

  • PI_params.Ki_Id

  • PI_params.Kp_Iq

  • PI_params.Ki_Iq

  • PI_params.Kp_Speed

  • PI_params.Ki_Speed

Когда вы или симулируете или запускаете пример на целевом компьютере, пример использует грубые значения усилений ПИ-контроллера, чтобы достигнуть устойчивого состояния операции регулировки скорости.

Примечание: При использовании этого примера, если двигатель (перечислено ли это или не в mcb_SetPMSMMotorParameters функция), не запускает, пытаются настроить значения по умолчанию этих параметров.

5. В разделе параметров Автотюнера FOC скрипта инициализации модели проверяйте и обновите параметры блока Field Oriented Control Autotuner. Это устанавливает ссылочную полосу пропускания и значения запаса по фазе и для скорости и для текущих ПИ-контроллеров.

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

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

1. Откройте целевую модель.

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

3. Наблюдайте вычисленные значения усиления ПИ-контроллера в блоках Отображения, доступных в mcb_pmsm_foc_autotuner_f28379d/Current Control/PI_Params_Display_and_Logging подсистема.

Вычисленные усиления не могут быть точными, потому что шаг 4 в разделе Prerequisites for Simulation и Hardware Deployment проверяет точность только четырех параметров двигателя.

Если вы хотите вычислить и протестировать усиления ПИ-контроллера с помощью симуляции, выполнить эти шаги прежде, чем нажатие, работает на вкладке Simulation целевой модели.

  • В Системных параметрах//Аппаратный раздел параметров скрипта инициализации модели, проверьте что mcb_SetPMSMMotorParameters функционируйте использует аргумент, который представляет ваш двигатель (например, Teknic2310P). Откройте mcb_SetPMSMMotorParameters функция, чтобы видеть предварительно запрограммированные случаи, которые хранят параметры двигателя обычно используемого PMSMs.

Если mcb_SetPMSMMotorParameters функция не перечисляет ваш PMSM, определяет параметры для вашего двигателя.

Инструмент оценки параметра обновляет motorParam переменная (в рабочей области MATLAB®) с предполагаемыми параметрами двигателя.

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

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

После того, как вы симулируете целевую модель и определяете усиления, обновляете любую целевую модель (или модель Motor Control Blockset в качестве примера или ваша собственная модель) с вычисленными значениями усиления, чтобы быстро принести двигатель к устойчивому состоянию скорости.

Разверните пример в целевой компьютер, чтобы настроить усиления ПИ-контроллера более точно при помощи фактического оборудования, соединенного с двигателем. Для получения дополнительной информации см. Сгенерировать Код и Разверните Модель в раздел Target Hardware.

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

Этот раздел показывает, как сгенерировать код и запустить алгоритм для настройки усилений ПИ-контроллера на целевом компьютере. Выполнение примера на оборудовании позволяет вам вычислить усиления ПИ-контроллера более точно путем обработки обратной связи от фактического объекта в режиме реального времени.

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

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

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

Контроллер LAUNCHXL-F28379D + инвертор BOOSTXL-DRV8305: mcb_pmsm_foc_autotuner_f28379d

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

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

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

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

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

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

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

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

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

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

open_system('mcb_host_autotuner_f28379d.slx');

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

8. В Хосте Последовательное диалоговое окно параметров блоков Setup выберите имя Порта, с которым вы соединили целевой компьютер.

9. Поверните Моторный переключатель ползунка к положению Запуска, чтобы начать запускать двигатель.

10. Обновите значение задающей скорости в поле Speed Ref [RPM]. Рекомендуется, чтобы вы использовали значение, которое является приблизительно половиной расчетной скорости двигателя.

11. В разделе сигналов Отладки выберите Speed_Ref & Speed_Feedback и контролируйте сигналы скорости в осциллографе времени SelectedSignals. Ожидайте, пока двигатель не достигнет устойчивой скорости.

Пример может начать настраиваться только в устойчивом состоянии скорости.

12. Проверяйте, что переключатель ползунка Параметров PI находится в положении Автотюнера.

13. Поверните переключатель ползунка Автотюнера к положению Запуска, чтобы начать автоматически настраивать усиления ПИ-контроллера. Настраивающий процесс вводит возмущения в зависимости от целей контроллера (полоса пропускания и запас по фазе) в контроллере выход. Пример использует отклик системы для возмущений, чтобы вычислить оптимальные значения усиления контроллера.

Модель выполняет эти тесты итеративно на двигателе и определяет точный набор Kp и Ki усиления для текущих ПИ-контроллеров и ПИ-контроллеров скорости.

Настраивающееся Состояние отображает состояние изменений от Tuning not started к Tuning in progress.

Примечание: Когда настройка происходит, гарантируйте, что переключатель ползунка Параметров PI остается в положении Автотюнера.

14. Когда настраивающий процесс успешно завершается, Настраивающееся состояние изменений отображения Состояния от Tuning in progress к Tuning complete.

Целевая модель обновляет скорость и текущие ПИ-контроллеры, работающие на целевом компьютере с вычисленным Kp и Ki усиления. Кроме того, модель хоста отображает эти значения.

15. Если настраивающий усиление алгоритм сталкивается с ошибкой во время настраивающего процесса, Настраивающееся отображение Состояния показывает Tuning failed. Поверните переключатель ползунка Автотюнера к положению Остановки и смотрите раздел Troubleshooting для инструкций по поиску и устранению неисправностей.

16. Если вы успешно завершили настраивающий процесс, поверните переключатель ползунка Автотюнера к положению Остановки. Поверните переключатель ползунка Параметров PI к положению По умолчанию, чтобы включить рабочий режим по умолчанию целевой модели. В этом режиме целевая модель использует вычисленные значения усиления, чтобы управлять моторным FOC использования.

17. Подтвердите вычисленные значения усиления. Для инструкций смотрите раздел Validate Computed PI Controller Gains.

Подтвердите вычисленные усиления ПИ-контроллера

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

2. Выберите сигнал отладки Speed_Ref & Speed_Feedback в разделе сигналов Отладки модели хоста.

3. Откройте осциллограф времени SelectedSignals, чтобы контролировать сигналы обратной связи задающей скорости и скорости.

4. Обновите задающую скорость (для вашего приложения блока управления приводом) в поле Speed Ref [RPM] и контролируйте сигналы в осциллографе времени.

5. В окне SelectedSignals перейдите к Инструментам> Измерения и выберите Cursor Measurements, чтобы отобразить область Cursor Measurements.

6. Перетащите курсор 1 к позиции, которая указывает на нулевой Speed_Ref (непосредственно перед тем, как Speed_ref повышается). Перетащите курсор 2 к позиции где Speed_Feedback соответствует Speed_Ref впервые.

ΔT указывает на фактическое время отклика алгоритма FOC (время, потраченное двигателем, чтобы достигнуть 100% задающей скорости от нулевой задающей скорости).

7. Для ПИ-контроллера скорости используйте PI_params.SpeedBW переменная, доступная в скрипте инициализации модели, чтобы определить полосу пропускания ПИ-контроллера скорости. Вычислите теоретическое время отклика с помощью этого отношения:

$$Response{\rm{\_}}time = \left( {{2 \over {PI{\rm{\_}}params.SpeedBW}}} \right)$$

Сравните теоретический Response_time с фактическим временем отклика ΔT, чтобы подтвердить усиления ПИ-контроллера скорости.

Точно так же можно подтвердить текущие усиления ПИ-контроллера путем анализа переходных процессов d и q текущие ПИ-контроллеры.

Поиск и устранение проблем

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

1. Идентифицируйте цикл (любой d текущий, q текущий, или скорость), для которого перестал работать настраивающий процесс.

Целевая модель настраивает ПИ-контроллеры в этой последовательности:

d токовый контроллер → q токовый контроллер → контроллер скорости

Настройка отказа одного контроллера в этой последовательности приводит к неправильному усилению, настраивающемуся для последующих контроллеров.

Проверяйте вычисленные усиления на эти три контроллера, использующие блоки Отображения, доступные в модели хоста. Нулевой Kp или Ki значение усиления контроллера указывает, что настраивающий процесс перестал работать для соответствующего контроллера.

Выполните последующие шаги для первого ПИ-контроллера в предыдущей последовательности, для которой перестала работать настройка.

2. Выберите ссылку контроллера и сигналы обратной связи для контроллера, идентифицированного на шаге 1 на разделе сигналов Отладки (например, Iq_Ref & Iq_Feedback для q токовый контроллер) и открытый осциллограф времени SelectedSignals.

3. Проверяйте, что переключатель ползунка Параметров PI находится в положении Автотюнера.

4. Поверните переключатель ползунка Автотюнера к положению Запуска, чтобы запустить настраивающий процесс снова.

5. Контролируйте сигнал обратной связи для контроллера, идентифицированного на шаге 1 (например, Iq_Feedback) в осциллографе времени SelectedSignals.

Случай 1: Выполните эти шаги, если пиковое значение сигнала обратной связи контроллера удовлетворяет одному из этих условий:

  • Значение слишком высоко (больше, чем 1)

  • Значение является слишком низким (меньше, чем PI_params.CurrentSineAmp для токовых контроллеров или меньше, чем PI_params.SpeedSineAmp для контроллера скорости)

Примечание: PI_params.CurrentSineAmp и PI_params.SpeedSineAmp переменные заданы в скрипте инициализации модели.

a. Если контроллером, идентифицированным на шаге 1, является d или q токовый контроллер, измените PI_params.CurrentSineAmp переменная, таким образом, что это меньше пикового значения сигнала обратной связи контроллера.

b. Если диспетчер, идентифицированный на шаге 1, является диспетчером скорости, измените PI_params.SpeedSineAmp переменная, таким образом, что это меньше пикового значения сигнала обратной связи контроллера.

c. Поверните переключатель ползунка Автотюнера к положению Остановки и затем к позиции Запуска, чтобы запустить настраивающий процесс снова.

Случай 2: Выполните эти шаги, если пиковое значение сигнала обратной связи контроллера находится в диапазоне:

  • $\left[ {PI{\rm{\_}}params.CurrentSineAmp,1} \right]$ (для токовых контроллеров)

  • $\left[ {PI{\rm{\_}}params.SpeedSineAmp,1} \right]$ (для контроллера скорости)

Примечание: PI_params.CurrentSineAmp и PI_params.SpeedSineAmp переменные заданы в скрипте инициализации модели.

a. Обновите параметры блока Field Oriented Control Autotuner (которые устанавливают ссылочную полосу пропускания и значения запаса по фазе), доступный в разделе параметров Автотюнера FOC скрипта инициализации модели.

b. Поверните переключатель ползунка Автотюнера к положению Остановки и затем к позиции Запуска, чтобы запустить настраивающий процесс снова.

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