Оценка коэффициентов усиления из параметров двигателя

Выполните настройку параметров управления для циклов управления скорости и крутящего момента, которые являются частью векторного алгоритма управления (FOC). Motor Control Blockset™ предоставляет вам несколько методов для вычисления коэффициентов усиления цикла управления от системы или передаточных функций блоков, которые доступны для двигателей, инвертора и контроллера:

  • Используйте блок Field Oriented Control Autotuner.

  • Использование Simulink® Control Design™.

  • Используйте скрипт инициализации модели.

Векторный автомат управления

Блок Field-Oriented Control Autotuner блока Motor Control Blockset позволяет вам автоматически настроить циклы управления ПИД в приложении Field-Oriented Control (FOC) в режиме реального времени. Можно автоматически настроить ПИД-регуляторы, сопоставленные со следующими циклами (для получения дополнительной информации см. раздел «Как использовать векторный блок автоматического управления»):

  • Контур тока прямой оси (d-ось)

  • Контур тока квадратурной оси (q-ось)

  • Цикл скорости

Для каждого цикла, который настраивает блок, Field-Oriented Control Autotuner блок выполняет эксперимент автотунирования в закрытом цикле, не используя параметрическую модель, связанную с этим циклом. Блок позволяет вам задать порядок, в котором блок настраивает циклы управления. Когда эксперимент по настройке запускается для одного цикла, блок не влияет на другие циклы. Для получения дополнительной информации об автотуннере FOC см. раздел «Автоматическое управление в поле» и «Настройка ПИ-контроллеров с использованием автоматического управления в поле».

Simulink Control Design

Simulink Control Design позволяет вам проектировать и анализировать системы управления, смоделированные в Simulink. Вы можете автоматически настроить произвольные SISO и MIMO архитектуры управления, включая ПИД-регуляторы. Можно развернуть автонастройку ПИД-регулятора на встроенное программное обеспечение, чтобы автоматически вычислить коэффициенты ПИД в режиме реального времени.

Можно найти рабочие точки и вычислить точные линеаризации моделей Simulink при различных рабочих условиях. Simulink Control Design предоставляет инструменты, которые позволяют вычислять основанные на симуляции частотные характеристики без изменения вашей модели. Для получения дополнительной информации смотрите https://www.mathworks.com/help/slcontrol/index.html.

Скрипт инициализации модели

В этом разделе объясняется, как примеры Motor Control Blockset оценивают усиления управления, необходимые для реализации векторного управления. Для примера для PMSM, который соединяется с квадратурным энкодером, эти шаги описывают процедуру вычисления значений усиления цикла управления из деталей системы с помощью скрипта инициализации:

  1. Откройте скрипт инициализации (.m) файл примера в MATLAB®. Чтобы найти связанное имя файла скрипта:

    1. Выберите Modeling > Model Settings > Model Properties, чтобы открыть диалоговое окно свойств модели.

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

  2. Этот рисунок показывает пример скрипта инициализации (.m) файл.

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

  4. Скрипт инициализации модели, сопоставленный с целевой моделью, вызывает эти функции и настраивает рабочую область с необходимыми переменными.

    Скрипт инициализации моделиФункция, называемая скриптом инициализации моделиОписание
    Скрипт, сопоставленный с целевой моделью

    mcb_SetPMSMMotorParameters

    Вход функции является тип двигателя (для примера, BLY171D).

    Функция заполняет структуру с именем pmsm в рабочем пространстве MATLAB, которое используется моделью.

    Он также вычисляет поток постоянных магнитов и номинальный крутящий момент для выбранного двигателя.

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

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

    mcb_SetInverterParameters

    Вход функции имеет тип инвертора (для примера, BoostXL-DRV8305).

    Функция заполняет структуру с именем inverter в рабочем пространстве MATLAB, которое используется моделью.

    Функция также вычисляет сопротивление инвертора для выбранного инвертора.

    Вы можете расширить функцию, добавив дополнительный случай switch-case для нового инвертора.

    mcb_SetProcessorDetails

    Входами для функции являются тип процессора (для примера, F28379D) и частота переключения модуляции ширины импульса (PWM).

    Функция заполняет структуру с именем target в рабочем пространстве MATLAB, которое используется моделью.

    Функция также вычисляет период счетчика PWM, который является параметром для блока ePWM в целевой модели.

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

    mcb_getBaseSpeed

    Входами для функции являются параметры двигателя и инвертора.

    Функция вычисляет номинальную скорость для PMSM.

    Тип help mcb_getBaseSpeed в командном окне MATLAB или см. раздел «Получение номинальной скорости» для получения дополнительной информации.

    mcb_SetPUSystem

    Входами для функции являются параметры двигателя и инвертора.

    Функция устанавливает базовые значения системы в относительных единицах для напряжения, тока, скорости, крутящего момента и степени.

    Функция заполняет структуру с именем PU_System в рабочем пространстве MATLAB, которое используется моделью.

    mcb.internal.SetControllerParameters

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

    Функция вычисляет Пропорциональные Интегральные (PI) параметры (Kp, Ki) для векторной реализации управления.

    Функция заполняет структуру с именем PI_params в рабочем пространстве MATLAB, которое используется моделью.

    Для получения дополнительной информации смотрите раздел «Получение коэффициентов усиления контроллера».

    mcb_updateInverterParameters

    Входами для функции являются параметры двигателя и инвертора.

    Функция обновляет параметры инвертора на основе выбранного оборудования и двигателя.

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

Примечание

Можно попробовать запустить MATLAB в режиме администратора в Windows® система, если вы не можете обновить скрипты инициализации модели, сопоставленные с примерами моделей.

Категория параметров управленияИмя управляющего параметраПеременная рабочего пространства MATLAB
Параметры двигателяНомер модели производителяpmsm.model
Серийный номер производителяpmsm.sn
Пары полюсовpmsm.p
Сопротивление статора (Ом)pmsm.Rs
d-составляющая индуктивность обмотки статора (Генри)pmsm.Ld
q-составляющая индуктивность обмотки статора (Генри)pmsm.Lq
Коэффициент противо-ЭДС, постоянная (V_line (пик )/krpm)pmsm.Ke
Инерция двигателя (kg.m2)pmsm.J
Константа трения (N.m.s)pmsm.F
Поток постоянных магнитов (WB)pmsm.FluxPM
Tratedpmsm.T_rated
Nbasepmsm.N_base
Iratedpmsm.I_rated
Позиционные декодерыКоррекция смещений индекса QEP и Холлаpmsm.PositionOffset
Количество рисок квадратурного энкодера на оборотpmsm.QEPSlits
Параметры инвертораНомер модели производителяinverter.model
Серийный номер производителяinverter.sn
Постоянная ссылка напряжение инвертора (V)inverter.V_dc
Максимально допустимые токи инвертором (A)inverter.I_trip
Сопротивление в состоянии МОП-транзисторов (Ом)inverter.Rds_on
Сопротивление шунта для измерения тока (Ом)inverter.Rshunt
Сопротивление платы на фазу, ощущаемое двигателем (Ом)inverter.R_board
Смещения АЦП для датчика тока (Ia и Ib)

inverter.CtSensAOffset

inverter.CtSensBOffset

Максимальный предел автоматически калиброванных смещений АЦП для датчика тока (Ia и Ib)inverter.CtSensOffsetMax
Минимальный предел автоматически калиброванных смещений АЦП для датчика тока (Ia и Ib)inverter.CtSensOffsetMin
Включите автоматическую калибровку для ADC токаinverter.ADCOffsetCalibEnable
Коэффициент усиления АЦП, сконфигурированный SPIinverter.ADCGain

Тип инвертора:

1 - Активный высокоактивный инвертор

0 - Активный низкоактивный инвертор

inverter.EnableLogic

Тип усилителя измерения тока:

1 - неинвертирующий усилитель

-1 - Инвертирующий усилитель

inverter.invertingAmp
Опорное напряжение для схемы измерения тока инвертора (V)inverter.ISenseVref

Выход напряжение схемы измерения тока инвертора, соответствующее 1 тока Ампера (В/А)

Можно вычислить этот параметр, используя значения таблицы данных сопротивления шунта (inverter.Rshunt) и коэффициент усиления усилителя тока инвертора.

inverter.ISenseVoltPerAmp = inverter.Rshunt ✖ усиление усилителя измерения тока

inverter.ISenseVoltPerAmp
Максимальный измеряемый пиково-нейтральный ток схемой (A) измерения тока инвертораinverter.ISenseMax
ПроцессорНомер модели производителяtarget.model
Серийный номер производителяtarget.sn
Частота центрального процессораtarget.CPU_frequency
Частота ШИМtarget.PWM_frequency
Период счетчика ШИМtarget.PWM_Counter_Period
Опорное напряжение для АЦП (V)Target.ADC_Vref
Максимальный выходной параметр для 12-битного АЦПTarget.ADC_MaxCount
Скорость передачи данных для последовательной передачи данныхTarget.SCI_baud_rate
Система в относительных единицахБазовое напряжение (V)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
Параметры контроллераПропорциональная составляющая для контроллера q-составляющей токаPI_params.Kp_i
Интегральная составляющая для контроллера q-составляющей токаPI_params.Ki_i
Пропорциональная составляющая для контроллера d-составляющей токаPI_params.Kp_id
Интегральная составляющая для контроллера d-составляющей тока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
Параметры задержки контроллераКоэффициентом затухания (и) текущим циклом управленияDelays.OM_damping_factor
Симметричный оптимальный коэффициент цикла управления скоростиDelays.SO_factor_speed

Примечание

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

Скрипт инициализации модели использует эти функции для выполнения расчетов:

Категория параметров управленияФункцияФункциональность
Номинальная скорость двигателяmcb_getBaseSpeed

Вычисляет номинальную скорость PMSM при номинальном напряжении и номинальной нагрузке.

Для получения дополнительной информации введите help mcb_getBaseSpeed в командной строке MATLAB или см. раздел «Получение номинальной скорости».

Характеристики мотора для данного двигателя и инвертораmcb_getCharacteristics

Получите эти характеристики мотора.

  • Крутящий момент в отличие от характеристик скорости

  • Степень в отличие от скоростных характеристик

  • Iq в отличие от скорости и Id в отличие от характеристик скорости

Для получения дополнительной информации введите help mcb_getCharacteristics в командной строке MATLAB.

Параметры алгоритма управленияmcb.internal.SetControllerParameters

Вычислите усиления для следующих ПИ-контроллеров:

  • Коэффициент усиления цикла управления током (крутящий момент) (Kp, Ki) для токов Id и Iq

  • Коэффициент усиления цикла управления скорости (Kp, Ki)

  • Усиление управления ослаблением поля (Kp, Ki)

Для получения дополнительной информации смотрите раздел «Получение коэффициентов усиления контроллера».

Управляйте анализом для двигателя и инвертора, которые вы используетеmcb_getControlAnalysis

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

Примечание

Для этой функции требуется Control System Toolbox™.

Для получения дополнительной информации введите help mcb_getControlAnalysis в командной строке MATLAB.

Получите номинальную скорость

Функция mcb_getBaseSpeed вычисляет номинальную скорость PMSM при заданном напряжении питания. Номинальная скорость является максимальной скоростью двигателя при номинальном напряжении и номинальной нагрузке, вне области ослабления поля.

Когда вы вызываете эту функцию (для примера, base_speed = mcb_getBaseSpeed(pmsm,inverter)), она возвращает номинальную скорость (в об/мин) для заданной комбинации PMSM и инвертора. Функция принимает следующие входы:

  • Структура параметра PMSM.

  • Структура параметра инвертора.

Эти уравнения описывают расчеты, которые выполняет функция:

Ограничение напряжения инвертора определяется путем вычисления d напряжения оси и q оси:

vdo= ωeLqiq

vqo=ωe(Ldid+ λpm)

vmax= vdc 3 Rsimax  vdo2+ vqo2

Текущий предельный круг определяет ограничение тока, которое может быть рассмотрено как:

imax2= id 2+ iq2

В предыдущем уравнении, id равен нулю для поверхностных PMSMs. Для внутренних PMSM, значения id и iq учитываются соответствующие MTPA.

Используя предыдущие отношения, мы можем вычислить номинальную скорость как:

ωbase= 1p vmax(Lqiq)2+(Ldid+ λpm)2

где:

  • ωe - электрическая скорость, соответствующая частоте напряжений статора (Radians/sec).

  • ωbase - механическая номинальная скорость двигателя (Radians/sec).

  • id - d ток оси (Amperes).

  • iq - q ток оси (Amperes).

  • vdo - d напряжение оси, id равен нулю (В).

  • vqo - q напряжение оси, iq равен нулю (В).

  • Ld - d индуктивность обмотки оси (Генри).

  • Lq - q индуктивность обмотки оси (Генри).

  • Rs - сопротивление обмотки фазы статора (Ом).

  • λpm - редактирование потока постоянных магнитов (Вебер).

  • vd - d напряжение оси (В).

  • vq - q напряжение оси (В).

  • vmax - это максимальная фундаментальная линия для напряжения нейтрали (пик), подаваемого на двигатель (В).

  • vdc - напряжение постоянного тока, подаваемое на инвертор (В).

  • imax - максимальный ток фазы (пик) двигателя (Amperes).

  • p - количество пар полюсов мотора.

Получение характеристик мотора

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

Функция возвращает эти характеристики для заданного PMSM:

  • Крутящий момент в отличие от Скорости

  • Степень в отличие от Скорости

  • Iq в отличие от Скорости

  • Id в отличие от Скорости

Получение коэффициентов усиления контроллера

Функция mcb.internal.SetControllerParameters вычисляет коэффициент усиления для ПИ-контроллеров, используемой в векторных системах управления двигателем.

Можно использовать эту команду для вызова функции mcb.internal.SetControllerParameters:

PI_params = mcb.internal.SetControllerParameters(pmsm,inverter,PU_System,T_pwm,Ts,Ts_speed);

Функция возвращает усиления этих ПИ-контроллеров, используемых в алгоритме FOC:

  • Контур тока прямой оси (d-ось)

  • Контур тока квадратурной оси (q-ось)

  • Цикл скорости

  • Ослабление цикла управления

Функция принимает эти входы:

  • pmsm object

  • inverter object

  • PU system params

  • T_pwm

  • Ts_control

  • Ts_speed

Функция не строит график никакой характеристики.

Проект компенсаторов зависит от классического анализа частотной характеристики, применяемого к системам управления двигателем. Мы использовали проект на основе Modulus Optimum (MO) для токовых контроллеров и проект на основе Symmetrical Optimum (SO) для контроллера скорости.

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

Можно изменить отклики системы по умолчанию дополнительным входам функции, которая задает системные задержки, коэффициент затухания и симметричный оптимальный коэффициент:

PI_params = mcb.internal.SetControllerParameters(pmsm,inverter,PU_System,T_pwm,Ts,Ts_speed,Delays);

Коэффициент затухания (ζ) определяет динамическое поведение стандартной формы системы второго порядка, где 0 <ζ <1 [1]. Недостаточно демпфированная система приближается к конечному значению быстрее, чем критически демпфированная или избыточно демпфированная система. Среди систем, которые реагируют без колебаний, критически демпфированная система показывает самый быстрый ответ. Перегруженная система всегда медленно реагирует на любые входы. Этот параметр имеет значение по умолчанию 12.

Симметричный оптимальный коэффициент (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 выполняет основной контроль системы управления током ВОК PMSM. Функция выполняет частотный диапазон анализ для вычисленных коэффициентов ПИ-контроллеров, используемых в векторных системах управления двигателем.

Примечание

Для выполнения этой функции требуется Control System Toolbox.

Когда вы вызываете эту функцию (для примера, mcb_getControlAnalysis(pmsm,inverter,PU_System,PI_params,Ts,Ts_speed)), он выполняет следующие функции для текущего цикла управления или подсистемы:

  • Передаточная функция для системы управления током с обратной связью

  • Корневой годограф

  • Bode-схема

  • Запасы устойчивости (PM&GM)

  • Переходная характеристика

  • Карта PZ

Далее графики функций соответствующие графики:

Ссылки

[1] Огата, К. (2010). Современная техника управления. Зал Прентис.

[2] Leonhard, W. (2001). Управление электроприводами. Springer Science & Business Media. стр 86.

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