Выполните настройку параметров управления для петель управления скоростью и крутящим моментом, которые являются частью алгоритма полевого управления (ВОК). Motor Control Blockset™ предоставляет несколько методов вычисления выигрышей контура управления от системных или блочных функций передачи, доступных для двигателей, инвертора и контроллера:
Используйте блок Autotuner Field Oriented Control.
Используйте Design™ управления Simulink ®.
Используйте сценарий инициализации модели.

Блок Autotuner Field-Oriented Control в блоке управления двигателем позволяет автоматически настраивать контуры управления PID в приложении Field-Oriented Control (FOC) в режиме реального времени. Можно автоматически настроить контроллеры PID, связанные со следующими контурами (дополнительные сведения см. в разделе Как использовать блок Autotuner с ориентацией на поле):
Контур тока прямой оси (d-оси)
Контур тока квадратурной оси (оси q)
Петля скорости
Для каждого цикла, который настраивает блок, блок Autotuner, ориентированный на полевое управление, выполняет эксперимент по автоматическому запуску в замкнутом цикле без использования параметрической модели, связанной с этим циклом. Блок позволяет указать порядок, в котором блок настраивает контуры управления. Когда эксперимент настройки выполняется для одного цикла, блок не влияет на другие циклы. Дополнительные сведения об autotuner ВОК см. в разделах Autotuner Field Oriented Control и Tune PI Controllers Using Field Oriented Control Autotuner.
Simulink Control Design позволяет проектировать и анализировать системы управления, смоделированные в Simulink. Можно автоматически настраивать произвольные архитектуры управления SISO и MIMO, включая контроллеры PID. Можно развернуть автоматическую загрузку PID во встроенное программное обеспечение для автоматического вычисления прироста PID в режиме реального времени.
Можно найти рабочие точки и вычислить точные линеаризации моделей Simulink при различных рабочих условиях. Модуль Simulink Control Design предоставляет инструменты, позволяющие вычислять частотные характеристики на основе моделирования без изменения модели. Дополнительные сведения см. в разделе https://www.mathworks.com/help/slcontrol/index.html.
В этом разделе объясняется, как в примерах набора блоков управления двигателем оценивается выигрыш от управления, необходимый для реализации управления, ориентированного на область. Например, для PMSM, который соединен с квадратурным кодером, эти этапы описывают процедуру вычисления значений усиления контура управления из системных деталей с использованием сценария инициализации:
Откройте сценарий инициализации (.m) файла примера в MATLAB ®. Чтобы найти имя связанного файла сценария:
Выберите меню «Моделирование» > «Параметры модели» > «Свойства модели», чтобы открыть диалоговое окно свойств модели.

В диалоговом окне «Свойства модели» перейдите на вкладку «Обратные вызовы» > InitFcn, чтобы найти имя файла сценария, который Simulink открывает перед выполнением примера.

На этом рисунке показан пример сценария инициализации (.m) файл.

Используйте рабочую область для редактирования значений управляющих переменных. Например, для обновления сопротивления статора (Rs), используйте переменную pmsm для добавления значения параметра к Rs поле.

Сценарий инициализации модели, связанный с целевой моделью, вызывает эти функции и настраивает рабочую область с необходимыми переменными.
| Сценарий инициализации модели | Функция, вызываемая сценарием инициализации модели | Описание |
|---|---|---|
| Сценарий, связанный с целевой моделью |
| Входным сигналом функции является тип двигателя (например, BLY171D). Функция заполняет структуру с именем Он также вычисляет поток постоянного магнита и номинальный крутящий момент для выбранного двигателя. Можно расширить функцию, добавив дополнительный корпус переключателя для нового двигателя. Эта функция также загружает структуру. |
| Вход в функцию является типом инвертора (например, BoostXL-DRV8305). Функция заполняет структуру с именем Функция также вычисляет сопротивление инвертора для выбранного инвертора. Можно расширить функцию, добавив дополнительный регистр переключателя для нового инвертора. | |
| Входами в функцию являются тип процессора (например, F28379D) и частота переключения широтно-импульсной модуляции (ШИМ). Функция заполняет структуру с именем Функция также вычисляет период счетчика ШИМ, который является параметром для блока ePWM в целевой модели. Вы можете расширить функцию, добавив дополнительный регистр коммутатора для нового процессора. | |
| Входами в функцию являются параметры двигателя и инвертора. Функция вычисляет базовую скорость для PMSM. Напечатать | |
| Входами в функцию являются параметры двигателя и инвертора. Функция устанавливает базовые значения напряжения, тока, скорости, крутящего момента и мощности для каждой системы. Функция заполняет структуру с именем | |
| Входами в функцию являются параметры двигателя и инвертора, базовые значения на единицу системы, период переключения ШИМ, время выборки для системы управления и время выборки для регулятора скорости. Функция вычисляет параметры пропорционального интеграла (PI) (Kp, Ki) для реализации управления, ориентированного на поле. Функция заполняет структуру с именем Дополнительные сведения см. в разделе Получение выигрышей контроллера. | |
| Входами в функцию являются параметры двигателя и инвертора. Функция обновляет параметры инвертора на основе выбранных аппаратных средств и двигателя. |
В этой таблице описываются полезные переменные для каждого параметра управления, который можно обновить.
Примечание
Можно попробовать запустить MATLAB в режиме администратора в системе Windows ®, если не удается обновить сценарии инициализации модели, связанные с примерами моделей.
| Категория управляющих параметров | Имя управляющего параметра | Переменная рабочей области MATLAB |
|---|---|---|
| Параметры двигателя | Номер модели производителя | pmsm.model |
| Серийный номер производителя | pmsm.sn | |
| Пары полюсов | pmsm.p | |
| Сопротивление статора (Ом) | pmsm.Rs | |
| индуктивность обмотки статора d-оси (Генрих) | pmsm.Ld | |
| индуктивность обмотки статора по оси q (Генрих) | pmsm.Lq | |
| Обратная постоянная ЭДС (V_line (пик )/krpm) | pmsm.Ke | |
| Инерция двигателя (кг.м2) | pmsm.J | |
| Постоянная трения (N.m.s) | pmsm.F | |
| Поток постоянного магнита (WB) | pmsm.FluxPM | |
| Trated | pmsm.T_rated | |
| Nbase | pmsm.N_base | |
| Irated | pmsm.I_rated | |
| Декодеры положения | Коррекция индекса QEP и смещения положения Холла | pmsm.PositionOffset |
| Квадратурные щели кодировщика на оборот | pmsm.QEPSlits | |
| Параметры инвертора | Номер модели производителя | inverter.model |
| Серийный номер производителя | inverter.sn | |
| Напряжение линии постоянного тока инвертора (В) | inverter.V_dc | |
| Максимально допустимые токи инвертора (А) | inverter.I_trip | |
| Сопротивление МОП (Ом) | inverter.Rds_on | |
| Шунтирующее сопротивление для измерения тока (Ом) | inverter.Rshunt | |
| Межфазное сопротивление платы, видимое двигателем (Ом) | inverter.R_board | |
| Смещения АЦП для датчика тока (Ia и Ib) |
| |
| Максимальный предел автоматически калиброванных смещений АЦП для датчика тока (Ia и Ib) | inverter.CtSensOffsetMax | |
| Минимальный предел автоматически калиброванных смещений АЦП для датчика тока (Ia и Ib) | inverter.CtSensOffsetMin | |
| Включить автоматическую калибровку для АЦП текущего считывания | inverter.ADCOffsetCalibEnable | |
| Коэффициент усиления АЦП, сконфигурированный SPI | inverter.ADCGain | |
Тип инвертора: 1 - Активный высокоактивный инвертор 0 - Активный низкоактивный инвертор | inverter.EnableLogic | |
Тип усилителя измерения тока: 1 - Неинвертирующий усилитель -1 - Инвертирующий усилитель | inverter.invertingAmp | |
| Опорное напряжение для схемы измерения тока инвертора (В) | inverter.ISenseVref | |
Выходное напряжение тока инвертора ощущение схемы, соответствующей току 1 ампера (V/A) Этот параметр можно вычислить, используя значения текущего сопротивления шунтированию (
| inverter.ISenseVoltPerAmp | |
| Максимальный измеряемый пиковый нейтральный ток с помощью схемы измерения тока инвертора (A) | inverter.ISenseMax | |
| Процессор | Номер модели производителя | target.model |
| Серийный номер производителя | target.sn | |
| Частота ЦП | target.CPU_frequency | |
| Частота ШИМ | target.PWM_frequency | |
| Период счетчика PWM | target.PWM_Counter_Period | |
| Опорное напряжение для АЦП (В) | Target.ADC_Vref | |
| Максимальный выход счетчика для 12-разрядного АЦП | Target.ADC_MaxCount | |
| Скорость передачи для последовательной связи | Target.SCI_baud_rate | |
| Система на единицу измерения | Базовое напряжение (В) | PU_System.V_base |
| Базовый ток (A) | PU_System.I_base | |
| Базовая скорость (об/мин) | PU_System.N_base | |
| Базовый крутящий момент (Нм) | PU_System.T_base | |
| Базовая мощность (Вт) | PU_System.P_base | |
| Тип данных для целевого устройства | Выбор типа данных (фиксированная или плавающая точка) | dataType |
| Значения времени выборки | Частота переключения для преобразователя | PWM_frequency |
| Период времени переключения ШИМ | T_pwm | |
| Время выборки для контроллеров тока | Ts | |
| Время отбора проб для контроллера скорости | Ts_speed | |
| Время образца моделирования | Ts_simulink | |
| Время моделирования образца для двигателя | Ts_motor | |
| Время имитации образца для инвертора | Ts_inverter | |
| Параметры контроллера | Пропорциональный коэффициент усиления для Iq-контроллера | PI_params.Kp_i |
| Интегральное усиление для Iq-контроллера | PI_params.Ki_i | |
| Пропорциональный коэффициент усиления для контроллера Id | PI_params.Kp_id | |
| Интегральное усиление для контроллера Id | PI_params.Ki_id | |
| Пропорциональный коэффициент усиления для контроллера скорости | PI_params.Kp_speed | |
| Интегральный коэффициент усиления для контроллера скорости | PI_params.Ki_speed | |
| Пропорциональный коэффициент усиления для контроллера ослабления поля | PI_params.Kp_fwc | |
| Интегральное усиление для контроллера ослабления поля | PI_params.Ki_fwc | |
| Параметры задержки датчика | Задержка датчика тока | Delays.Current_Sensor |
| Задержка датчика скорости | Delays.Speed_Sensor | |
| Задержка фильтра нижних частот | Delays.Speed_Filter | |
| Параметры задержки контроллера | Коэффициент демпфирования (start) контура регулирования тока | Delays.OM_damping_factor |
| Симметричный оптимальный коэффициент контура регулирования скорости | Delays.SO_factor_speed |
Примечание
Для предопределенных процессоров и драйверов в сценарии инициализации модели используются значения по умолчанию.
Сценарий инициализации модели использует следующие функции для выполнения вычислений:
| Категория управляющих параметров | Функция | Функциональность |
|---|---|---|
| Базовая скорость двигателя | mcb_getBaseSpeed | Вычисляет базовую скорость PMSM при номинальном напряжении и номинальной нагрузке. Для получения подробной информации введите |
| Характеристики двигателя для данного двигателя и инвертора | mcb_getCharacteristics | Получить эти характеристики двигателя.
Для получения подробной информации введите |
| Параметры алгоритма управления | mcb.internal.SetControllerParameters | Вычислите выигрыш для этих контроллеров PI:
Дополнительные сведения см. в разделе Получение выигрышей контроллера. |
| Анализ управления для используемого двигателя и инвертора | mcb_getControlAnalysis | Выполняет анализ частотной области для вычисленных коэффициентов усиления PI-контроллеров, используемых в полевой системе управления электродвигателями. Примечание Для этой функции требуется Toolbox™ системы управления. Для получения подробной информации введите |
Функция mcb_getBaseSpeed вычисляет базовую скорость PMSM при заданном напряжении питания. Базовая частота вращения - максимальная частота вращения двигателя при номинальном напряжении и номинальной нагрузке вне области ослабления поля.
При вызове этой функции (например, base_speed = mcb_getBaseSpeed(pmsm,inverter)), она возвращает базовую скорость (в об/мин) для данной комбинации PMSM и инвертора. Функция принимает следующие входные данные:
Структура параметров PMSM.
Структура параметров инвертора.
Эти уравнения описывают вычисления, которые выполняет функция:
Ограничение напряжения инвертора определяется вычислением напряжений d-оси и q-оси:
starteLqiq
λ pm)
vqo2
Текущий предельный круг определяет текущее ограничение, которое может рассматриваться как:
iq2
В предыдущем уравнении равен нулю для поверхностных PMSM. Для внутренних PMSM учитываются значения id и iq, соответствующие MTPA.
Используя предыдущие взаимосвязи, мы можем вычислить базовую скорость как:
λ pm) 2
где:
- электрическая скорость, соответствующая частоте напряжений статора (радиан/с).
- механическая базовая скорость двигателя (радиан/сек).
- ток по оси d (Ампер).
- ток по оси q (Ампер).
- напряжение по оси d, когда равно нулю (Вольты).
- напряжение по оси q, когда равно нулю (Вольты).
- индуктивность обмотки d-оси (Генри).
- индуктивность обмотки по оси q (Генрих).
- сопротивление обмотки фазы статора (Ом).
- связь постоянного магнитного потока (Weber).
- напряжение по оси d (вольт).
- напряжение по оси q (вольт).
- максимальная основная линия к нейтральному напряжению (пику), подаваемому на двигатель (Вольты).
- напряжение постоянного тока, подаваемое на инвертор (В).
- максимальный фазовый ток (пик) двигателя (Ампер).
- число пар полюсов двигателя.
Функция mcb_getCharacteristics вычисляет характеристики крутящего момента и частоты вращения двигателя, что помогает разработать алгоритм управления двигателем.
Функция возвращает следующие характеристики для данного PMSM:
Крутящий момент в отличие от скорости
Мощность в отличие от скорости
Iq в отличие от скорости
Id в отличие от Speed

Функция mcb.internal.SetControllerParameters вычисляет коэффициенты усиления для ПИ-контроллеров, используемых в полевых системах управления электродвигателями.
Эту команду можно использовать для вызова функции. mcb.internal.SetControllerParameters:
PI_params = mcb.internal.SetControllerParameters(pmsm,inverter,PU_System,T_pwm,Ts,Ts_speed);
Функция возвращает коэффициенты усиления этих PI-контроллеров, используемых в алгоритме ВОК:
Контур тока прямой оси (d-оси)
Контур тока квадратурной оси (оси q)
Петля скорости
Контур управления ослаблением поля
Функция принимает следующие входные данные:
pmsm object
inverter object
PU system params
T_pwm
Ts_control
Ts_speed
Функция не отображает какой-либо признак.
Конструкция компенсаторов зависит от классического анализа частотной характеристики, применяемого к системам управления двигателем. Мы использовали конструкцию на основе модуля Optimum (MO) для контроллеров тока и конструкцию на основе симметричного оптимума (SO) для контроллера скорости.
Функция автоматически вычисляет другие требуемые параметры (например, задержки, коэффициент демпфирования) на основе входных аргументов.
Системные ответы по умолчанию можно изменить с помощью дополнительного ввода в функцию, которая определяет системные задержки, коэффициент демпфирования и симметричный оптимальный коэффициент:
PI_params = mcb.internal.SetControllerParameters(pmsm,inverter,PU_System,T_pwm,Ts,Ts_speed,Delays);
Коэффициент демпфирования (start) определяет динамическое поведение стандартной формы системы второго порядка, где 0 < ζ < 1 [1]. Система с пониженным демпфированием приближается к конечному значению быстрее, чем система с критическим демпфированием или система с избыточным демпфированием. Среди систем, которые реагируют без колебаний, система с критическим демпфированием показывает самую быструю реакцию. Система с избыточным усилением всегда медленно реагирует на любые входные сигналы. Этот параметр имеет значение по умолчанию .
Симметричный оптимальный коэффициент (a) определяет размещение частоты пересечения на геометрическом среднем двух угловых частот, чтобы получить максимальный запас по фазе, который приводит к оптимальному демпфированию контура скорости, где a > 1 [2]. Этот параметр имеет значение по умолчанию 1.2.
В этом примере объясняется, как настроить параметры:
% Sensor Delays Delays.Current_Sensor = 2*Ts; %Current Sensor Delay Delays.Speed_Sensor = Ts; %Speed Sensor Delay Delays.Speed_Filter = 20e-3; %Delay for Speed filter (LPF) % Controller Delays Delays.OM_damping_factor = 1/sqrt(2); %Damping factor for current control loop Delays.SO_factor_speed = 1.5; %Symmetrical optimum factor 1 < x < 20 % Controller design PI_params = mcb.internal.SetControllerParameters(pmsm,inverter,PU_System,T_pwm,Ts,Ts_speed,Delays);
Функция mcb_getControlAnalysis выполняет базовый контрольный анализ системы регулирования тока ВОК ПМСМ. Функция выполняет анализ частотной области для вычисленных коэффициентов усиления PI-контроллера, используемых в полевых системах управления электродвигателями.
Примечание
Для выполнения этой функции требуется панель инструментов системы управления.
При вызове этой функции (например, mcb_getControlAnalysis(pmsm,inverter,PU_System,PI_params,Ts,Ts_speed)) выполняет следующие функции для контура или подсистемы управления током:
Передаточная функция системы регулирования тока замкнутого контура
Корневой локус
Блок-схема
Пределы устойчивости (PM&GM)
Ответ на шаг
Карта PZ
Функция выводит на график соответствующие графики:

[1] Огата, К. (2010). Современная техника управления. Зал Прентиса.
[2] Леонхард, У. (2001). Управление электроприводами. Springer Science & Business Media. стр 86.